forked from ZQuestClassic/ZQuestClassic
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtodo.txt
287 lines (220 loc) · 7.73 KB
/
todo.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
To-Do
Allow decimal values in item editor power and attributes fields.
Add freeze, freezeexcept, and such as script instructions.
->GetByUID(int script-uid) : A way to get the current screen index
of objects using their script_UID.
Graphics->LoadESP
Graphics->LoadBossPal
DrawScreen, DrawCombo, Drawlayer--Fix CSet2 rendering
Bitmap->ScriptDrawingFunctions()
bitmap->Blit()
tie beamhearts to any counter
Add tooltips to the Quest Rev abd Min ZRev fields of the Quest Header dialogue.
Make Clamp and vbound internal zscript functions, so that they are faster.
-------------
*** FLAGS ***
-------------
Over/Under (Horizontal; scripted)
Over/Under (Vertical; scripted)
------------
*** NPCS ***
------------
Flag: Vulnerable ti clocks.
Whistle defence category.--huzzah, we need an extra page, defs 4!!
Defence type: Split --seems feasible.
MOVE the code from zq_custom.cpp that populates custom weapon
sprites for npcs, into the quest loader.
THEN, make the weapon sprite a pulldown, offset by +1
so, the list can hav e NONE as case 0, which is translated
to a value of -1 for the field.
Read the field and adjust it by 1 when the dialogue opens.
npc defence stun, no stunlock
npc WEAPON Sizing
npc hunger for floaters, fliers, wizzrobes, and such.
npc->Parent (for segmented npcs that are not cores)
Extra dropsets: stun dropset, frozen dropset.
MISSING: npcdata->FireSound; npc->FireSound
NEEDED: npc-Defence for LW_SPARKLE.
NEEDED npc->FrozenTile offsets for facing dir, or something so that ZC chooses the
tile based on the same tile offset as the npc has before being frozen.
e.g. If they are facing left, on the third tile of a 4-tile animation,
the frozen tile should be the same offset.
NOT simply setting a static tile.
Enemy flag to block brangs if the npc is already stunned.
...or just a defence type, stun(no stunlock).
Add magic powder, and an npc var: transform.
The 'transform' var can be an enemy defence (as can split, tribble)!
------------
*** LINK ***
------------
Link->HitWidth, HitHeight, HitZHeight (possibly)
Link->WarpEx()
Manually position minimap link dot; subscr.cpp,
putdot(dest,(((get_homescr()&15)-xoff)<<3)+x+(large?34:18)+(maptile?8:0),((get_homescr()&0xF0)>>1)+y+11,linkcolor);
if(show_subscreen_dmap_dots&&has_item(itype_compass, get_dlevel()))
putdot(dest,((get_homescr()&15)<<2)+x+9,((get_homescr()&0xF0)>>2)+y+8,linkcolor);
Link->Colour (int linkcolor in subscr.cpp; in drawdmap())
Both of the above are ugly, and very low-priority.
---------------
*** WEAPONS ***
---------------
Item Editor Weapons?
Weapon -> Defence Redirection / Weapon Editor Stuff
-> THis requires some changes that I am not sure that we are keeping, so I may leave it out of 2.54.
item editor wpnsprite size: adjust all hardcoded sprite usage so that they use += ( n * tilewidth ) and += ( n * tileheight )
--------------
*** FFCORE ***
--------------
FFCore ButtonRules: A (use item), B (use item),
L (inventory left), R (inventory right)
Disable / enable by script.
Tooltips for all new stuff. Try to improve extant tooltips
and provide tooltip chains.
-----------------
*** DATATYPES ***
-----------------
Set new refs to -1 on bad load, and wrap the macros so that if the
ref is -1, they do not try to access data members.
e.g. ri->shopsref = -1
( if ri->shopsref != -1 )
This will prevent the user from loading data from ref 0, without
causing crashes.
Datatypes:
rgbdata
palette
------------
*** SCCs ***
------------
BUG TO FIX: Setting a goto SCC string ID to 0 can cause ZC to hang.
Re-implement SCCs for Warp, SetDMapScreenD, GetDMapScreenD, SetScreenD,
and TriggerSecret (specific) .
Add a Misc SCC, that works as \Misc\Instruction\Arg1\Arg2\...
Instead of \Instruction\arg1\arg2, this will be a catchall for a new instruction
set that allows ~31 possible instructions--or would it be 255?
I may prefer that we reserve three of these misc instruction values for future use.
Can SCC args be negative? if so, we can set up some defaults:
Warp format should be \warp-code\dmap\screen\x\y\type\effect\sound
where -1 for dmap would be the current dmap, -1 for scereen would be the current screen
-1 through -4 for x and y would be the warp returns 1-4, -5 would be the current position.
Otherwise, we'd use 0 for current x and Y, and 1-4 for the warp return, to simulate
pit warps and dest warps, respectively.
The syntax for this, would be \warp-code\dmap\screen\warp_return\type\effect\sound
the values for warp_return are 0-4.
The SCCs to manipulate screen D should be matched: One to use with GetScreenD \set_d_code\reg\values
and a new pair for Set/GetDMapScreenD as:
\set_dmap_d_code\dmap\screen\reg\value
\get_dmap_d_code\dmap\screen\reg
Trigger secrets would target a specific secret type on the current screen:
\trigger_secret_code\secret_types
Item Pickup Flags may also be viable. I'm not sure how best to approach this one, as determining what item to target might be
tricky.
It might be mandatory to set the pickup flags for all screen items to the same value, for an SCC that does this:
\set_item_pickup_code\pickup_flag\ ( 0 or 1 for enable or disable ? )
--or just a raw pickup type
\set_item_pickup_code\pickup_types
Another possibly useful code, would be 'run ffc script'
\run_ffc_code\ffc_id\script_id\combo_id
The user would need to set the combo_id > 0.
------------
*** MISC ***
------------
Combo editor types lists
lw->, ew->, npc->Scale : Scale sprites and hitboxes around a specific value.
Subscreen scrolling speed variable.
-------------
*** RULES ***
-------------
Forward QRs to Items
qr_NOBOMBPALFLASH (may be better as a QR)
qr_LADDERANYWHERE(perhaps better by per-dmap basis?)
Implement Itemdata-based rule behaviour
Forward QRs to Combos
qr_NONBUBBLEFAIRIES //"Fairy Combos" as in flag 7. -V
Forward QRs to enemeies
qr_MEANTRAPS
qr_MEANPLACEDTRAPS
qr_PHANTOMPLACEDTRAPS
qr_SHADOWS
qr_TRANSSHADOWS
qr_SHADOWSFLICKER
qr_NOGUYPOOF
qr_WALLFLIERS
qr_ENEMIESFLICKER
qr_PEAHATCLOCKVULN
qr_BROKENSTATUES
qr_BRKNSHLDTILES
Implement Enemy based QR behaviour
Forward QRs to visual effects
qr_FFCSCROLL
qr_SMOOTHVERTICALSCROLLING
qr_NOSCROLLCONTINUE
qr_NOBORDER
qr_SUBSCREENOVERSPRITES
qr_OVALWIPE
qr_TRIANGLEWIPE
qr_SMASWIPE
qr_VERYFASTSCROLLING
Forward rules to ffscript or dmaps:
qr_NOSAVE
qr_NOCONTINUE
qr_NOGUYPOOF
qr_SELECTAWPN
qr_DROWN
qr_INSTABURNFLAGS
qr_ITEMSINPASSAGEWAYS
qr_LADDERANYWHERE(or per-item basis?)
qr_NOFAIRYGUYFIRES
qr_NOSOLIDDAMAGECOMBOS
qr_OFFSCREENWEAPONS(should this be per-weapon?)
qr_NOSCRIPTSDURINGSCROLL
qr_SHORTDGNWALK
Misc
qr_REFLECTROCKS
qr_OFFSETEWPNCOLLISIONFIX
qr_FIREPROOFLINK2 (Invincible Link is not hurt by his own fire)
------------
*** DONE ***
------------
Add CORE attribute to npcs and flag it for multi-segment cores. [[DONE]]
//Done (Probably)
->GreyscaleOn() and GreyscaleOff() should be Greyscale(bool on)
->WavyIn, WavyOut, ZapIn(), and ZapOut() shoul dbe Way(bool out), and Zap(bool out)
Link->Pushing [[DONE]]
New ZScript Vars, Functions, and Types
ZDefs merge
Quest Loading Code
Saving Code
Script Drawing ( BitmapEx )
Greyscale code
Link No FLicker
Link Hurt Sound
Prevent Active Subscreen
DMAp Palette Code
Combo editor map flags lists,
New fonts
made global special types and arrays legal.
Added comment blocks to ZScript.
Enemy Editor Sizing
ZQuest Editors: Enemy Editor Defences
Guys
Enemy Defence Code (new defence outcomes, only!)
Enemy Editor Enemy Sizing (Seems as if it should be fine.)
qr_RAFTLENS
qr_LENSSEESENEMIES(may be better on a per-npc basis, 'Seen by Lens').
qr_FIREPROOFLINK
qr_TEMPCANDLELIGHT
qr_OUCHBOMBS
qr_BRANGPICKUP
qr_NONBUBBLEMEDICINE
qr_NONBUBBLETRIFORCE
qr_NODIVING
qr_Z3BRANG_HSHOT
qr_QUICKSWORD
qr_RINGAFFECTDAMAGE
qr_SLASHFLIPFIX
qr_NOITEMMELEE
qr_NOWANDMELEE
qr_WHIRLWINDMIRROR
qr_SWORDMIRROR
qr_SLOWCHARGINGWALK
Might Do: