Alchemy
Loading...
Searching...
No Matches

fxdata.c

Go to the documentation of this file.
1/// @file
2/// Effect tables: object scripts, curves and lookup tables of the object bank.
3
7#include "objcmd.h"
8#include "types.h"
9
10// Their readers declare them in battle.h, field.h, graphics.h, scroll.h and
11// object_effect_scripts.h, and object.c declares the colour curves. Some
12// readers declare their table without const: battle.h's
13// gBattleFx_TargetRangeByMode, gAnimation_ChildPaletteCycle,
14// gBattleFx_DefinitionTable, gFieldFx_GroundParticleFrames,
15// gBattleFx_PulseScales, gBattleFx_CyclePatternWords and
16// gBattleFx_RandomChildValues, graphics.h's gDisplayTransition_NoiseWidths and
17// gDisplayTransition_EdgeOffsets, field.h's gObjectGroup_BlinkChildValues and
18// object.c's three gBattlePalette_ChannelCurve tables. All are defined const
19// all the same: in rom_main_04 .data follows scripts.o, and these tables would
20// move. So this file includes none of those headers.
21
22/// The message of each searchable tile code from 242 to 247, as an offset from
23/// MsgTileChecked and MsgTileResult.
25 2, // a jar
26 3, // a barrel
27 13, // a wooden box
28 8, // a grave
29 30, // books
30 31, // a well
31};
32
33/// {field Psynergy kind, range in pixels}, ended by -1; a kind not listed
34/// reaches 16 pixels.
35// clang-format off
37 3, 16,
38 6, 16,
39 7, 16,
40 11, 16,
41 12, 16,
42 2, 32,
43 1, 32,
44 14, 32,
45 5, 32,
46 9, 32,
47 4, 48,
48 13, 48,
49 -1,
50};
51
52/// The palette cycle of Animation_ChildPaletteCycle ((gFrameCount >> 1) & 7).
53const u8 gAnimation_ChildPaletteCycle[8] = {1, 2, 3, 4, 3, 2, 1, 0};
54
55/// Grows from half size to full size, a step every 2 frames.
57 SC_SET(SW_SCALE_X, 0x8000),
58 SC_SET(SW_SCALE_Y, 0x8000),
59 SC_WAIT(2),
60 SC_SET(SW_SCALE_X, 0xc000),
61 SC_SET(SW_SCALE_Y, 0xc000),
62 SC_WAIT(2),
63 SC_SET(SW_SCALE_X, 0xe000),
64 SC_SET(SW_SCALE_Y, 0xe000),
65 SC_WAIT(2),
66 SC_SET(SW_SCALE_X, 0xf000),
67 SC_SET(SW_SCALE_Y, 0xf000),
68 SC_WAIT(2),
69 SC_SET(SW_SCALE_X, 0x10000),
70 SC_SET(SW_SCALE_Y, 0x10000),
71 SC_END,
72};
73
74/// Pulses twice, then rests, over and over.
76 SC_WAIT(10),
77 SC_SET(SW_SCALE_X, 0x16000),
78 SC_SET(SW_SCALE_Y, 0x16000),
79 SC_WAIT(2),
80 SC_SET(SW_SCALE_X, 0x18000),
81 SC_SET(SW_SCALE_Y, 0x18000),
82 SC_WAIT(2),
83 SC_SET(SW_SCALE_X, 0x12000),
84 SC_SET(SW_SCALE_Y, 0x12000),
85 SC_WAIT(2),
86 SC_SET(SW_SCALE_X, 0x10000),
87 SC_SET(SW_SCALE_Y, 0x10000),
88 SC_WAIT(2),
89 SC_SET(SW_SCALE_X, 0x16000),
90 SC_SET(SW_SCALE_Y, 0x16000),
91 SC_WAIT(2),
92 SC_SET(SW_SCALE_X, 0x18000),
93 SC_SET(SW_SCALE_Y, 0x18000),
94 SC_WAIT(2),
95 SC_SET(SW_SCALE_X, 0x12000),
96 SC_SET(SW_SCALE_Y, 0x12000),
97 SC_WAIT(2),
98 SC_SET(SW_SCALE_X, 0x10000),
99 SC_SET(SW_SCALE_Y, 0x10000),
100 SC_WAIT(2),
101 SC_WAIT(50),
103 SC_END,
104};
105
106/// Rises for 60 frames, then disappears.
108 SC_ADD(SW_Y, -0x4000),
109 SC_WAIT(1),
110 SC_LOOP(60, SC_TOP),
111 SC_FREE,
112};
113
116 SC_FREE,
117};
118
119/// The width of the bars of window transition mode 0, by progress.
121 0, 1, 2, 2, 2, 2, 3, 3, 4, 4, 5, 6, 7, 8, 9, 11, 13,
122 16, 18, 22, 26, 30, 36, 43, 51, 60, 72, 85, 101, 120, 143, 170, 202, 240,
123};
124
125/// The wobble of the circle edge of window transition mode 8.
127 -4, -3, -3, -3, -2, -2, -1, 0, 0, 0, 1, 2, 2, 3, 3, 3,
128 4, 3, 3, 3, 2, 2, 1, 0, 0, 0, -1, -2, -2, -3, -3, -3,
129};
130
131/// 0 to 63 shuffled: the order in which the dissolve sets the pixels.
133 0, 12, 35, 3, 29, 39, 6, 7, 50, 59, 4, 11, 18, 40, 46, 31,
134 16, 42, 47, 51, 20, 23, 43, 32, 8, 52, 17, 41, 54, 15, 63, 24,
135 58, 5, 2, 26, 36, 61, 9, 34, 56, 27, 10, 48, 53, 30, 28, 22,
136 62, 45, 19, 60, 57, 49, 25, 55, 38, 14, 44, 13, 33, 37, 1, 21,
137};
138
139/// Colour channel curves (0 to 31, to channels up to 0x7c00).
141 0x0000, 0x020c, 0x042f, 0x066b, 0x08c0, 0x0b2f, 0x0db9, 0x105f,
142 0x1322, 0x1603, 0x1903, 0x1c22, 0x1f63, 0x22c5, 0x264b, 0x29f4,
143 0x2dc3, 0x31b9, 0x35d7, 0x3a1d, 0x3e8e, 0x432b, 0x47f6, 0x4cee,
144 0x5217, 0x5772, 0x5d00, 0x62c3, 0x68bc, 0x6eed, 0x7559, 0x7c00,
145};
146
148 0x0000, 0x0265, 0x04df, 0x076e, 0x0a14, 0x0cd1, 0x0fa5, 0x1291,
149 0x1596, 0x18b4, 0x1bec, 0x1f3f, 0x22ac, 0x2636, 0x29dc, 0x2da0,
150 0x3182, 0x3583, 0x39a3, 0x3de3, 0x4245, 0x46c9, 0x4b70, 0x503a,
151 0x5529, 0x5a3d, 0x5f78, 0x64da, 0x6a65, 0x7019, 0x75f7, 0x7c00,
152};
153
155 0x0000, 0x0168, 0x02f7, 0x04b1, 0x0699, 0x08b2, 0x0b01, 0x0d8a,
156 0x1052, 0x135d, 0x16b0, 0x1a52, 0x1e48, 0x2298, 0x274a, 0x2c65,
157 0x31f0, 0x37f5, 0x3e7c, 0x458e, 0x4d37, 0x5580, 0x5e77, 0x6826,
158 0x729c, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00, 0x7c00,
159};
160
161/// Speaker definitions: {sprite, portrait (0xff for none), idle line flags}.
162/// BattleFx_FindDefinition searches all 131; the last is the default.
164 {0, 16, 0x00},
165 {1, 16, 0x00},
166 {2, 16, 0x00},
167 {3, 12, 0x00},
168 {4, 28, 0x00},
169 {5, 12, 0x00},
170 {6, 12, 0x00},
171 {18, 8, 0x00},
172 {19, 8, 0x00},
173 {30, 24, 0x00},
174 {31, 20, 0x00},
175 {32, 28, 0x00},
176 {33, 20, 0x00},
177 {34, 28, 0x00},
178 {35, 28, 0x00},
179 {36, 16, 0x00},
180 {37, 8, 0x00},
181 {38, 20, 0x00},
182 {39, 12, 0x00},
183 {40, 28, 0x00},
184 {41, 16, 0x00},
185 {42, 12, 0x00},
186 {43, 28, 0x00},
187 {44, 28, 0x00},
188 {45, 20, 0x00},
189 {46, 28, 0x00},
190 {47, 28, 0x00},
191 {48, 4, 0x00},
192 {49, 24, 0x00},
193 {50, 28, 0x00},
194 {51, 24, 0x00},
195 {52, 28, 0x00},
196 {53, 28, 0x00},
197 {54, 28, 0x00},
198 {55, 24, 0x00},
199 {71, 28, 0x00},
200 {56, 20, 0x00},
201 {57, 28, 0x00},
202 {58, 28, 0x00},
203 {59, 28, 0x00},
204 {60, 20, 0x00},
205 {61, 20, 0x00},
206 {62, 28, 0x00},
207 {63, 28, 0x00},
208 {64, 28, 0x00},
209 {65, 24, 0x00},
210 {66, 16, 0x00},
211 {67, 28, 0x00},
212 {68, 24, 0x00},
213 {69, 28, 0x00},
214 {93, 16, 0x00},
215 {90, 16, 0x00},
216 {92, 16, 0x00},
217 {91, 16, 0x00},
218 {101, 28, 0x00},
219 {102, 4, 0x00},
220 {103, 24, 0x00},
221 {104, 0, 0x00},
222 {106, 12, 0x00},
223 {107, 8, 0x00},
224 {108, 16, 0x00},
225 {109, 28, 0x00},
226 {111, 20, 0x00},
227 {114, 28, 0x00},
228 {115, 20, 0x00},
229 {116, 28, 0x00},
230 {117, 24, 0x00},
231 {118, 12, 0x00},
232 {119, 28, 0x00},
233 {120, 20, 0x00},
234 {121, 24, 0x00},
235 {122, 28, 0x00},
236 {123, 28, 0x00},
237 {124, 28, 0x00},
238 {125, 28, 0x00},
239 {128, 20, 0x00},
240 {129, 16, 0x00},
241 {130, 16, 0x00},
242 {131, 12, 0x00},
243 {132, 28, 0x00},
244 {133, 16, 0x00},
245 {134, 28, 0x00},
246 {135, 28, 0x00},
247 {136, 0, 0x00},
248 {144, 28, 0x00},
249 {145, 28, 0x00},
250 {146, 28, 0x00},
251 {147, 28, 0x00},
252 {148, 12, 0x00},
253 {149, 16, 0x00},
254 {150, 28, 0x00},
255 {151, 8, 0x00},
256 {152, 28, 0x00},
257 {153, 28, 0x00},
258 {155, 0, 0x00},
259 {156, 16, 0x00},
260 {157, 28, 0x00},
261 {158, 28, 0x00},
262 {159, 16, 0x00},
263 {160, 28, 0x00},
264 {162, 20, 0x00},
265 {163, 28, 0x00},
266 {164, 24, 0x00},
267 {165, 16, 0x00},
268 {166, 20, 0x00},
269 {167, 24, 0x00},
270 {168, 8, 0x00},
271 {169, 4, 0x00},
272 {170, 28, 0x00},
273 {171, 28, 0x00},
274 {187, 28, 0xff},
275 {189, 20, 0xff},
276 {190, 28, 0xff},
277 {191, 28, 0xff},
278 {192, 16, 0xff},
279 {193, 16, 0xff},
280 {194, 24, 0xff},
281 {195, 28, 0xff},
282 {196, 0, 0xff},
283 {197, 12, 0xff},
284 {198, 28, 0xff},
285 {199, 24, 0xff},
286 {20, 255, 0xff},
287 {200, 255, 0xff},
288 {105, 255, 0xff},
289 {110, 255, 0xff},
290 {274, 255, 0xff},
291 {231, 255, 0xff},
292 {293, 255, 0xff},
293 {22, 255, 0xff},
294 {0, 16, 0x00},
295};
296
297/// Squashes as many times as the variant (1 to 3): variant v starts at word
298/// (3 - v) * 32 and runs to the end. field.h declares it const u8[], and
299/// psynergy_effects.c adds (3 - v) << 7 bytes and reads it through an s32 *.
301 // variant 3
302 SC_ADD(SW_SCALE_X, -0x4000),
303 SC_ADD(SW_SCALE_Y, 0x2000),
304 SC_WAIT(2),
305 SC_ADD(SW_SCALE_X, 0x2000),
306 SC_ADD(SW_SCALE_Y, -0x1000),
307 SC_WAIT(2),
308 SC_ADD(SW_SCALE_X, 0x1000),
309 SC_ADD(SW_SCALE_Y, -0x800),
310 SC_WAIT(2),
311 SC_ADD(SW_SCALE_X, 0x1000),
312 SC_ADD(SW_SCALE_Y, -0x800),
313 SC_WAIT(4),
314 // variant 2
315 SC_ADD(SW_SCALE_X, -0x4000),
316 SC_ADD(SW_SCALE_Y, 0x2000),
317 SC_WAIT(2),
318 SC_ADD(SW_SCALE_X, 0x2000),
319 SC_ADD(SW_SCALE_Y, -0x1000),
320 SC_WAIT(2),
321 SC_ADD(SW_SCALE_X, 0x1000),
322 SC_ADD(SW_SCALE_Y, -0x800),
323 SC_WAIT(2),
324 SC_ADD(SW_SCALE_X, 0x1000),
325 SC_ADD(SW_SCALE_Y, -0x800),
326 SC_WAIT(4),
327 // variant 1
328 SC_ADD(SW_SCALE_X, -0x4000),
329 SC_ADD(SW_SCALE_Y, 0x2000),
330 SC_WAIT(2),
331 SC_ADD(SW_SCALE_X, 0x2000),
332 SC_ADD(SW_SCALE_Y, -0x1000),
333 SC_WAIT(2),
334 SC_ADD(SW_SCALE_X, 0x1000),
335 SC_ADD(SW_SCALE_Y, -0x800),
336 SC_WAIT(2),
337 SC_ADD(SW_SCALE_X, 0x1000),
338 SC_ADD(SW_SCALE_Y, -0x800),
339 SC_WAIT(4),
340 SC_END,
341};
342
343/// A child value by frame ((gFrameCount >> 1) & 3).
344const u8 gObjectGroup_BlinkChildValues[4] = {7, 0, 0, 0};
345
346/// Sine times 4096, 256 steps to a turn.
348 0, 100, 200, 301, 401, 501, 601, 700,
349 799, 897, 995, 1092, 1189, 1284, 1379, 1474,
350 1567, 1659, 1751, 1841, 1930, 2018, 2105, 2191,
351 2275, 2358, 2439, 2519, 2598, 2675, 2750, 2824,
352 2896, 2966, 3034, 3101, 3166, 3229, 3289, 3348,
353 3405, 3460, 3513, 3563, 3612, 3658, 3702, 3744,
354 3784, 3821, 3856, 3889, 3919, 3947, 3973, 3996,
355 4017, 4035, 4051, 4065, 4076, 4084, 4091, 4094,
356 4096, 4094, 4091, 4084, 4076, 4065, 4051, 4035,
357 4017, 3996, 3973, 3947, 3919, 3889, 3856, 3821,
358 3784, 3744, 3702, 3658, 3612, 3563, 3513, 3460,
359 3405, 3348, 3289, 3229, 3166, 3101, 3034, 2966,
360 2896, 2824, 2750, 2675, 2598, 2519, 2439, 2358,
361 2275, 2191, 2105, 2018, 1930, 1841, 1751, 1659,
362 1567, 1474, 1379, 1284, 1189, 1092, 995, 897,
363 799, 700, 601, 501, 401, 301, 200, 100,
364 0, -100, -200, -301, -401, -501, -601, -700,
365 -799, -897, -995, -1092, -1189, -1284, -1379, -1474,
366 -1567, -1659, -1751, -1841, -1930, -2018, -2105, -2191,
367 -2275, -2358, -2439, -2519, -2598, -2675, -2750, -2824,
368 -2896, -2966, -3034, -3101, -3166, -3229, -3289, -3348,
369 -3405, -3460, -3513, -3563, -3612, -3658, -3702, -3744,
370 -3784, -3821, -3856, -3889, -3919, -3947, -3973, -3996,
371 -4017, -4035, -4051, -4065, -4076, -4084, -4091, -4094,
372 -4096, -4094, -4091, -4084, -4076, -4065, -4051, -4035,
373 -4017, -3996, -3973, -3947, -3919, -3889, -3856, -3821,
374 -3784, -3744, -3702, -3658, -3612, -3563, -3513, -3460,
375 -3405, -3348, -3289, -3229, -3166, -3101, -3034, -2966,
376 -2896, -2824, -2750, -2675, -2598, -2519, -2439, -2358,
377 -2275, -2191, -2105, -2018, -1930, -1841, -1751, -1659,
378 -1567, -1474, -1379, -1284, -1189, -1092, -995, -897,
379 -799, -700, -601, -501, -401, -301, -200, -100,
380};
381
382/// {dx, dy, tile, shape, size} for each of 16 frames.
384 -8, -12, 20, 0, 1,
385 -8, -12, 20, 0, 1,
386 -8, -12, 20, 0, 1,
387 -8, -12, 16, 0, 1,
388 -8, -12, 16, 0, 1,
389 -8, -12, 12, 0, 1,
390 -8, -12, 8, 0, 1,
391 0, -32, 0, 2, 2,
392 8, -48, 0, 2, 2,
393 16, -64, 0, 2, 2,
394 24, -80, 0, 2, 2,
395 32, -96, 0, 2, 2,
396 40, -112, 0, 2, 2,
397 48, -128, 0, 2, 2,
398 56, -144, 0, 2, 2,
399 64, -160, 0, 2, 2,
400};
401
402/// {dy, tile}
404 {-2, 12},
405 {-4, 12},
406 {-6, 12},
407 {-8, 8},
408 {-10, 8},
409 {-12, 8},
410 {-14, 8},
411 {-16, 8},
412 {-19, 4},
413 {-21, 4},
414 {-24, 4},
415 {-27, 4},
416 {-30, 4},
417 {-33, 4},
418 {-36, 4},
419 {-40, 4},
420 {-44, 4},
421 {-48, 0},
422 {-52, 0},
423 {-56, 0},
424 {-60, 0},
425 {-64, 0},
426 {-68, 0},
427 {-72, 0},
428 {-76, 0},
429 {-80, 0},
430 {-85, 0},
431 {-90, 0},
432 {-95, 0},
433 {-100, 0},
434 {-110, 0},
435 {-120, 0},
436};
437
438/// Two scales that alternate ((gFrameTick >> 2) & 1); nothing reads the third
439/// word.
440const u32 gBattleFx_PulseScales[3] = {0x10000, 0xf851, 16};
441
442/// [0] only frees the actor, +1 waits for it to arrive and frees it; +3 is
443/// gBattleFx_SourceHoldScript, which follows.
445 SC_FREE,
446 SC_SYNC,
447 SC_FREE,
448};
449
452 SC_WAIT(1),
454};
455
457 SC_SYNC,
458 SC_SET(SW_SPEED, 0x1000),
459 SC_ARG(0),
460 SC_WAIT(10),
461 SC_FREE,
462};
463
464/// An angle for each value of the right, left, up and down bits of the
465/// +Control Pad; 0xffff for none.
467 0xffff, 0x0000, 0x8000, 0xffff,
468 0xc000, 0xffff, 0xffff, 0xc000,
469 0x4000, 0xffff, 0xffff, 0x4000,
470 0xffff, 0x0000, 0x8000, 0xffff,
471};
472
473const u8 gBattleFx_QuadrantModes[4] = {3, 1, 2, 1};
474
475/// Word +4 is gBattleFx_HeavyImpactScript.
477 SC_WAIT(60),
478 SC_FREE,
479};
480
481/// The same four bytes as gBattleFx_QuadrantModes; nothing reads them.
482const u8 gUnused_BattleFxBytes[4] = {3, 1, 2, 1};
483
485 SC_SYNC,
487 SC_FREE,
488};
489
490/// The three scripts of gEffectScripts.
492 SC_WAIT(24),
493 SC_FREE,
494};
495
497 SC_WAIT(46),
498 SC_FREE,
499};
500
502 SC_WAIT(128),
503 SC_FREE,
504};
505
506const s8 gBattleFx_RandomChildValues[8] = {0, 0, 1, 2, 3, 4, 5, 6};
507
508/// The brightness of the world map markers ((gFrameCount >> 1) & 31).
510 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
511 16, 15, 15, 14, 12, 10, 9, 9, 8, 9, 9, 10, 12, 14, 14, 15,
512};
513
514/// An angle for each +Control Pad direction (eight of them); 0xffff for none.
516 0xffff, 0x0000, 0x8000, 0xffff,
517 0xc000, 0xe000, 0xa000, 0xc000,
518 0x4000, 0x2000, 0x6000, 0x4000,
519 0xffff, 0x0000, 0x8000, 0xffff,
520};
521// clang-format on
The battle animation state, render objects and effect entries, and the palette buffer work.
s32 Field_IsRevealActive(struct ScriptInterpreter *interpreter)
Returns 1 while Reveal is active, else 0.
Definition field_fx.c:361
const s32 gObjectMotion_VariantScripts[97]
Squashes as many times as the variant (1 to 3): variant v starts at word (3 - v) * 32 and runs to the...
Definition fxdata.c:300
const s32 gBattleFx_MarkerParticleScript[]
Definition fxdata.c:114
const u32 gBattleFx_PulseScales[3]
Two scales that alternate ((gFrameTick >> 2) & 1); nothing reads the third word.
Definition fxdata.c:440
const u8 gBattleFx_QuadrantModes[4]
Definition fxdata.c:473
const u8 gField_TileMessageOffsets[6]
The message of each searchable tile code from 242 to 247, as an offset from MsgTileChecked and MsgTil...
Definition fxdata.c:24
const s32 gBattleFx_FragmentScript[]
Definition fxdata.c:456
const u16 gWorldMap_CursorDirectionAngles[16]
An angle for each +Control Pad direction (eight of them); 0xffff for none.
Definition fxdata.c:515
const s32 gBattleFx_LongEffectScript[]
Definition fxdata.c:501
const u8 gUnused_BattleFxBytes[4]
The same four bytes as gBattleFx_QuadrantModes; nothing reads them.
Definition fxdata.c:482
const struct BattleEffectEntry gBattleFx_DefinitionTable[131]
Speaker definitions: {sprite, portrait (0xff for none), idle line flags}.
Definition fxdata.c:163
const s32 gBattleFx_BurstParticleObjectScript[]
Word +4 is gBattleFx_HeavyImpactScript.
Definition fxdata.c:476
const struct SparkleFrame gFieldFx_SparkleFrames[32]
{dy, tile}
Definition fxdata.c:403
const s32 gBattleFx_ShortEffectScript[]
The three scripts of gEffectScripts.
Definition fxdata.c:491
const s16 gDisplayScroll_WaveSine[256]
Sine times 4096, 256 steps to a turn.
Definition fxdata.c:347
const s32 gBattleFx_HeavyImpactScript[]
Definition fxdata.c:484
const u8 gWorldMap_MarkerBlendCycle[32]
The brightness of the world map markers ((gFrameCount >> 1) & 31).
Definition fxdata.c:509
const s8 gBattleFx_RandomChildValues[8]
Definition fxdata.c:506
const s32 gBattleFx_SourceHoldScript[]
Definition fxdata.c:450
const u16 gBattlePalette_ChannelCurveContrast[32]
Definition fxdata.c:154
const u8 gAnimation_ChildPaletteCycle[8]
The palette cycle of Animation_ChildPaletteCycle ((gFrameCount >> 1) & 7).
Definition fxdata.c:53
const s8 gDisplayTransition_EdgeOffsets[32]
The wobble of the circle edge of window transition mode 8.
Definition fxdata.c:126
const s16 gFieldFx_GroundParticleFrames[80]
{dx, dy, tile, shape, size} for each of 16 frames.
Definition fxdata.c:383
const s32 gBattleFx_CommonParticleScript[]
[0] only frees the actor, +1 waits for it to arrive and frees it; +3 is gBattleFx_SourceHoldScript,...
Definition fxdata.c:444
const u8 gDisplayTransition_DitherTable[64]
0 to 63 shuffled: the order in which the dissolve sets the pixels.
Definition fxdata.c:132
const u16 gBattlePalette_ChannelCurveLight[32]
Definition fxdata.c:147
const u8 gDisplayTransition_NoiseWidths[34]
The width of the bars of window transition mode 0, by progress.
Definition fxdata.c:120
const s32 gBattleFx_RisingPulseScript[]
Pulses twice, then rests, over and over.
Definition fxdata.c:75
const s32 gBattleFx_ParticleScript[]
Rises for 60 frames, then disappears.
Definition fxdata.c:107
const s16 gBattleFx_TargetRangeByMode[25]
{field Psynergy kind, range in pixels}, ended by -1; a kind not listed reaches 16 pixels.
Definition fxdata.c:36
const s32 gBattleFx_MediumEffectScript[]
Definition fxdata.c:496
const u16 gBattlePalette_ChannelCurve[32]
Colour channel curves (0 to 31, to channels up to 0x7c00).
Definition fxdata.c:140
const u8 gObjectGroup_BlinkChildValues[4]
A child value by frame ((gFrameCount >> 1) & 3).
Definition fxdata.c:344
const s32 gBattleFx_ParticleEmitterScript[]
Grows from half size to full size, a step every 2 frames.
Definition fxdata.c:56
const u16 gBattleFx_CyclePatternWords[16]
An angle for each value of the right, left, up and down bits of the +Control Pad; 0xffff for none.
Definition fxdata.c:466
s32 SpawnHeavyImpactEffect(struct ScriptInterpreter *interpreter)
A heavy impact: places object 0x11b 32 pixels below the source and scatters 12 shards from it.
Definition lift.c:177
Field object scripts: one s32 command word, then its operands, as gScriptObject_CommandTable runs the...
#define SC_SET(w, v)
Write a work value.
Definition objcmd.h:37
#define SC_LOOP(n, to)
Repeat up to n times.
Definition objcmd.h:28
#define SC_FACE_LINK
Face the linked object.
Definition objcmd.h:21
#define SC_FREE
Release.
Definition objcmd.h:43
#define SC_SYNC
Wait for arrival.
Definition objcmd.h:17
#define SC_FOREVER
Definition objcmd.h:14
#define SC_ADD(w, v)
Definition objcmd.h:38
#define SC_ARG(v)
Definition objcmd.h:44
#define SC_WAIT(n)
Wait n frames.
Definition objcmd.h:16
#define SC_TOP
Script start.
Definition objcmd.h:13
#define SC_END
Return to the main script.
Definition objcmd.h:32
@ SW_SCALE_Y
Definition objcmd.h:63
@ SW_SPEED
Definition objcmd.h:67
@ SW_Y
Definition objcmd.h:59
@ SW_SCALE_X
Definition objcmd.h:62
#define SC_CALL(fn)
Definition objcmd.h:50
A speaker definition, a row of gBattleFx_DefinitionTable: a sprite, its portrait (0xff for none) and ...
One frame of a sparkle: its height offset and tile (fxdata.c).
The integer types, TRUE, UNUSED and the fixed-address macros.
signed int s32
Definition types.h:14
unsigned int u32
Definition types.h:15
signed char s8
Definition types.h:10
signed short s16
Definition types.h:12
unsigned short u16
Definition types.h:13
unsigned char u8
Definition types.h:11