Alchemy
Loading...
Searching...
No Matches

effect_table.c

Go to the documentation of this file.
3#include "types.h"
4#include "vector3.h"
5#include "render_placement.h"
6
7// Cell layouts, timing rows and handler entries for the battle effects.
8// Keep the definitions in link order. Picture cell offsets are byte offsets
9// from the sheet start, accumulated as width times height. Each table is
10// read only by the part its prefix names, except the gBattleFx_ tables,
11// which many parts share.
12
13// The tables are plain arrays, not const, as the effect code reads them:
14// it reloads their addresses where const would let the compiler keep
15// them. Their .data is linked into the effect bank in ROM.
16
18
19// Picture layouts that several effects read from the same sheet. The ROM
20// holds a copy of each table for every effect, so each copy below is
21// defined from one of these.
22
23/// The six cells of an erupting flame puff: where each begins in the sheet.
24#define FLAME_PUFF_CELLS {0, 552, 1480, 2590, 3913, 5185}
25#define FLAME_PUFF_CELL_WIDTHS {24, 29, 30, 27, 24, 16} ///< widths
26#define FLAME_PUFF_CELL_HEIGHTS {23, 32, 37, 49, 53, 52} ///< heights
27/// How far below its anchor each cell's top goes.
28#define FLAME_PUFF_CELL_BIAS_Y {41, 32, 26, 11, 4, 2}
29/// The sides of the seven square pictures of a blast, a puff or a flash.
30#define BLAST_CELL_SIZES {16, 32, 48, 48, 48, 48, 48}
31/// Where each blast picture begins.
32#define BLAST_CELLS {0, 256, 1280, 3584, 5888, 8192, 10496}
33#define EARTH_WALL_CELL_WIDTHS {17, 19, 20} ///< the earth wall's three widths
34#define EARTH_WALL_CELL_HEIGHTS {49, 55, 64} ///< and heights
35/// Where each earth wall picture begins.
36#define EARTH_WALL_CELLS {2702, 3535, 4580}
37#define SLASH_CELL_WIDTHS {38, 54, 71, 74, 77, 65} ///< the six slash widths
38#define SLASH_CELL_HEIGHTS {7, 9, 11, 13, 13, 11} ///< and heights
39/// Each slash picture's reach from the target.
40#define SLASH_CELL_REACH {58, 42, 25, 13, 5, 0}
41/// The flash picture for each three frames at the end of a flash's life.
42#define FLASH_FADE_CELLS {5, 5, 4, 3, 2, 1}
43/// The flips a glint may be drawn in: none, and mirrored each way and both.
44#define GLINT_FLIPS {0, COMPOSITE_FLIP_X, COMPOSITE_FLIP_Y, COMPOSITE_FLIP}
45
46// Shared cell layouts, read by many parts.
47
48/// Mote cells: particle sheets hold ten, cell n (from 0) n + 1 pixels wide
49/// and twice that tall. EFFECT_DRAW_MOTE and many parts read it.
50/// It stays the first table: BattleFx_BuildBlitter (parts/blitter.c)
51/// checks that a walk of the blitter template ended at its address.
52u16 gBattleFx_MoteCells[] = {0, 2, 10, 28, 60, 110, 182, 280, 408, 570};
53/// Flare cells: the first ten are squares 2x2 to 20x20, cell n (from 0) n + 1
54/// pixels from its centre to each edge (EFFECT_DRAW_FLARE, and Neptune and
55/// Bind directly). The second ten begin at twice those offsets.
56u16 gBattleFx_FlareCells[] = {0, 4, 20, 56, 120, 220, 364, 560, 816, 1140,
57 0, 8, 40, 112, 240, 440, 728, 1120, 1632, 2280};
58/// Nine square puff cells, read by the falling, frost, healing, Djinni heal
59/// and Boreas parts.
60u16 gBattleFx_PuffCells[] = {0, 25, 74, 123, 172, 221, 246, 255, 256};
61/// Each puff cell's side.
62u8 gBattleFx_PuffSizes[] = {5, 7, 7, 7, 7, 5, 3, 1, 1};
63// The six cells of an erupting flame puff: width, height, how far below its
64// anchor its top goes (so that all six stand on about the same line) and
65// where each begins in the sheet. Each is drawn centred across x; the Mars
66// Djinni shows each for 8 frames, centred on the flame's x. Read by the
67// Djinn attacks, Flare, the casting impacts, Atalanta and the dragon cloud.
72// Six glint cells, each GlintCellWidths by GlintCellHeights pixels: read by
73// the target strikes and motes, Bolt, the vortices, the casting impacts and
74// Thor.
75u16 gBattleFx_GlintCells[] = {0, 589, 1302, 2015, 2414, 2750};
76u8 gBattleFx_GlintCellWidths[] = {19, 23, 23, 19, 16, 17};
77u8 gBattleFx_GlintCellHeights[] = {31, 31, 31, 21, 21, 24};
78
79// falling.c: Falling shard and bolt wave counts.
80
81/// Ice, by variant: shards and frames (ICE_SHARD_COUNT, ICE_FRAMES).
83 // shards, frames
84 {16, 46}, // variant 0
85 {20, 52}, // variant 1
86 {32, 80}, // variant 2
87};
88/// Douse, by variant: the FALLING_BOLT_ columns.
90 // bolts, sparks per bolt, spacing, frames
91 {6, 8, 32, 80}, // variant 0
92 {8, 16, 24, 80}, // variant 1
93 {32, 4, 8, 80}, // variant 2
94};
95
96// streaks.c: Falling streak timing and motion records.
97
98/// Each streak style's animation, hit, motion and shake, by the STREAKS_
99/// columns (streaks.c).
101 // STREAKS_ANIMATE, STREAKS_HIT, STREAKS_MOTION, STREAKS_SHAKE
102 {0, 1, 0, 0}, // STREAKS_STYLE_EMBER
103 {0, 1, 4, 0}, // STREAKS_STYLE_LIME
104 {0, 1, -1, 1}, // STREAKS_STYLE_VIOLET
105 {1, 1, -1, 1}, // STREAKS_STYLE_RED
106 {1, 1, 4, 0}, // STREAKS_STYLE_CYAN
107};
108/// Pixels the target trembles by, frame by frame.
109s8 gStreaks_Tremble[] = {-1, -1, 1, 1, 1, 1, -1, -1};
110
111// target_strike.c: Target strike timing, motion and picture cells.
112
113/// Each of the twelve target strike styles, by the TARGET_STRIKE_ columns
114/// (target_strike.c).
115// clang-format off
117 // TARGET_STRIKE_: KIND, HITS, FLAGS, COLOUR, IMAGE_FRAMES, COMPOSITE, FRAMES
119 {STRIKE_KIND_COLUMN, 1, STRIKE_SMOKE, 1, 6, COMPOSITE_MAX, 54}, // 1
120 {STRIKE_KIND_COLUMN, 3, STRIKE_SMOKE, 2, 6, COMPOSITE_MAX, 96}, // 2
121 {STRIKE_KIND_COLUMN, 3, STRIKE_ABSORB, 3, 4, COMPOSITE_MAX, 96}, // 3
122 {STRIKE_KIND_COLUMN, 3, STRIKE_ABSORB, 4, 4, COMPOSITE_MAX, 96}, // 4
128 {STRIKE_KIND_COLUMN, 1, STRIKE_SMOKE, 4, 6, COMPOSITE_MAX, 54}, // 10
130};
131// clang-format on
132// The six slash pictures: size, sheet offset and reach from the target.
135u16 gTargetStrike_Offsets[] = {3200, 3466, 3952, 4733, 5695, 6696};
137/// The column stage shown by each picture of a rise.
138u8 gTargetStrike_ColumnStages[] = {0, 1, 2, 3, 2};
139/// The flips a glint may be drawn in.
141
142// death_plunge.c: Blade rain and shattering tile pieces.
143
144// The sword pictures, by how steeply the sword falls.
145u8 gDeathPlunge_CellWidths[] = {20, 21, 22, 25};
146u8 gDeathPlunge_CellHeights[] = {32, 31, 27, 24};
147u16 gDeathPlunge_Cells[] = {0, 640, 1291, 1885};
148/// The 33 pieces of the TileAnimationMask picture: where each starts on the
149/// canvas, its size, and where its pixels begin in the decoded picture. The
150/// offsets carry one more entry, where the last piece ends.
151u8 gDeathPlunge_PieceWidths[] = {21, 20, 24, 30, 35, 69, 19, 23, 9, 22, 33,
152 10, 18, 9, 7, 9, 17, 55, 30, 25, 40, 29,
153 10, 28, 14, 5, 32, 23, 19, 32, 8, 43, 15};
154u8 gDeathPlunge_PieceHeights[] = {23, 47, 25, 40, 20, 53, 28, 29, 23, 14, 35,
155 17, 18, 14, 15, 12, 13, 37, 38, 41, 60, 41,
156 15, 45, 59, 41, 26, 50, 21, 35, 12, 57, 11};
158 0, 483, 1423, 2023, 3223, 3923, 7580, 8112, 8779,
159 8986, 9294, 10449, 10619, 10943, 11069, 11174, 11282, 11503,
160 13538, 14678, 15703, 18103, 19292, 19442, 20702, 21528, 21733,
161 22565, 23715, 24114, 25234, 25330, 27781, 27946};
162u8 gDeathPlunge_PieceStartX[] = {0, 21, 28, 46, 70, 51, 0, 13, 37, 77, 87,
163 19, 25, 35, 44, 45, 48, 65, 0, 0, 0, 5,
164 33, 15, 36, 46, 47, 50, 53, 65, 72, 77, 105};
165u8 gDeathPlunge_PieceStartY[] = {0, 0, 0, 0, 0, 0, 19, 17, 23, 28, 8,
166 36, 43, 43, 40, 47, 48, 37, 42, 67, 60, 79,
167 62, 75, 61, 62, 60, 70, 74, 85, 108, 63, 74};
168
169// death_plunge.c and spider_web.c: Canvas corner sparks and two-resource
170// picture cells.
171
172// The element burst's corner sparks: offsets and flips.
173s8 gDeathPlunge_X[] = {0, 32, 0, 32};
174s8 gDeathPlunge_Y[] = {0, 0, 32, 32};
176// The six pictures: the first four from the swirl sheet, the last two from the
177// tail sheet. gSpiderWeb_CellX has six entries for each side.
178u8 gSpiderWeb_CellWidths[] = {40, 112, 112, 112, 88, 64};
179u8 gSpiderWeb_CellHeights[] = {56, 80, 64, 64, 80, 88};
180u16 gSpiderWeb_Cells[] = {0, 2240, 11200, 18368, 0, 7040};
181u8 gSpiderWeb_CellX[] = {72, 0, 0, 0, 32, 64, 16, 16, 16, 16, 8, 0};
182s8 gSpiderWeb_CellBiasY[] = {0, 4, 24, -6, -20, -28, 0, 0};
183
184// gathering_lights.c
185
186/// Gathering lights (Demon Night, Rumble, Haunting), by mode: the lights per
187/// target and the frames before the targets' turns.
189 // lights per target, frames
190 {16, 88}, // mode 0
191 {8, 72}, // mode 1
192 {12, 80}, // mode 2
193};
194
195// mirrored_wall.c: Mirrored earth wall picture cells.
196
197// The earth wall's three images: the mirrored wall reads them at the start of
198// its sheet, the rising wall after its rebuilt rows. Both share the sizes.
202
203// djinn_beams.c: Djinni beam motes and heads.
204
205/// The picture of each step of a mote's eight-step cycle.
206u8 gDjinnBeams_MotePictures[] = {2, 1, 0, 1, 2, 3, 4, 3};
207// The three cells of the glow at a target's feet.
211
212// lobbed_shells.c: Shell explosion records and shards.
213
214/// Two bytes for each lobbed shell mode.
216 // nonzero: the shells burst into shards, not smoke; unused
217 0, 0, // mode 0
218 0, 0, // mode 1
219 0, 0, // mode 2
220 1, 0, // mode 3
221 1, 0, // mode 4
222 0, 0, // mode 5
223 0, 0, // mode 6
224};
225/// Lobbed shells: nine tumbling images in two sets, the second (cells 9 to 17)
226/// smaller.
227u8 gLobbedShells_ShardWidths[] = {9, 10, 9, 9, 9, 11, 11, 11, 12,
228 6, 7, 7, 7, 6, 6, 8, 8, 8};
229u8 gLobbedShells_ShardHeights[] = {12, 12, 12, 12, 12, 12, 12, 12, 12,
230 8, 7, 6, 6, 8, 6, 4, 3, 3};
231u16 gLobbedShells_ShardOffsets[] = {0, 108, 228, 336, 444, 552,
232 684, 816, 948, 1092, 1140, 1189,
233 1231, 1273, 1321, 1357, 1389, 1413};
234
235// condemn.c: Shattered panel coordinates.
236
237/// Where each stage of the panel is drawn: seven x positions for each side of
238/// the field, and seven y positions (above the swing) for both sides.
240 {10, 30, 0, 0, 0, 6, 52},
241 {60, 0, 0, 0, 0, 0, 0},
242};
244 {0, 20, 2, 2, 34, 64, 68},
245 {0, 9, 4, 4, 4, 4, 4},
246};
247
248// bind.c: Spinning and striking triangle vertices.
249
250/// The spinning triangle's first vertex, 24 up from its centre.
251struct Vector3 gBind_Vertex[] = {{.x = 0, .y = 24, .z = 0}};
252/// The striking triangle's first vertex, the same.
253struct Vector3 gBind_TriangleStrikeVertex[] = {{.x = 0, .y = 24, .z = 0}};
254
255// stars.c and procne.c: Ring bolt, spinning star and whirlwind comet paths.
256
257/// The two star points, 48 and 28 pixels up (16.16).
258struct Vector3 gStars_Points[] = {{.x = 0, .y = 48 << 16, .z = 0},
259 {.x = 0, .y = 28 << 16, .z = 0}};
260u8 gStars_Radii[] = {32, 16};
261u8 gProcne_GridX[] = {0, 32, 64, 0, 32, 64, 0, 32, 64};
262u8 gProcne_GridY[] = {0, 0, 0, 32, 32, 32, 64, 64, 64};
263u16 gProcne_Frames[] = {334, 347, 359, 372};
264u8 gProcne_CellWidths[] = {14, 24, 48};
265u8 gProcne_CellHeights[] = {14, 19, 24};
266u8 gProcne_CellBiasY[] = {8, 12, 17};
267u16 gProcne_Cells[] = {13824, 14020, 14476};
268
269// tiamat.c and nereid.c: Palette particle and ember column layouts.
270
271/// Ember speeds, by ember index & 3.
272u8 gTiamat_DropSpeeds[] = {0, 8, 12, 16};
273/// A spark's 1x2 picture.
275/// Ember sizes, by ember index & 3.
276u8 gTiamat_DropSizes[] = {1, 1, 2, 3};
277// The six streak pictures: size, drop below the streak and sheet offset.
282/// Nereid's four columns of fire (NEREID_COLUMN_X, NEREID_COLUMN_Y).
284 // the foot of each column of fire: x, y
285 {16, 104},
286 {32, 104},
287 {48, 104},
288 {64, 104},
289};
290/// Ember gravity while falling, by ember index & 3.
291s32 gNereid_Gravity[] = {0x8000, 0x4000, 0x4000, 0x2000};
292
293// vortices.c: Vortex mote counts and tornado shapes.
294
295/// Froth, by variant: motes and frames.
297 // motes (at most FROTH_MOTES, vortices.c), frames
298 {6, 140}, // variant 0
299 {12, 160}, // variant 1
300 {30, 200}, // variant 2
301};
302/// Whirlwind, by variant: the WHIRLWIND_ columns.
304 // tornadoes, sway, screen shake
305 {1, 16, 2}, // variant 0
306 {2, 24, 2}, // variant 1
307 {4, 32, 4}, // variant 2
308};
309
310// prism.c: Crystal counts and picture cells.
311
312/// Where each of the 16 shards starts in the crystal: x, then y.
314 {32, 60}, {33, 82}, {49, 94}, {41, 89}, {49, 76}, {32, 99},
315 {54, 69}, {34, 82}, {45, 71}, {31, 91}, {32, 69}, {26, 80},
316 {40, 68}, {41, 60}, {46, 60}, {36, 63}, {0, 0},
317};
318/// Prism, by variant: crystals and frames.
320 // crystals, frames
321 {1, 110}, // variant 0
322 {4, 134}, // variant 1
323 {12, 166}, // variant 2
324};
325// The twelve shard pictures.
326u8 gPrism_ShardWidths[] = {5, 10, 11, 14, 12, 11, 19, 18, 23, 12, 22, 22};
327u8 gPrism_ShardHeights[] = {14, 10, 7, 13, 14, 14, 32, 30, 24, 38, 20, 20};
328s32 gPrism_ShardOffsets[] = {0, 70, 170, 247, 429, 597,
329 751, 1359, 1899, 2451, 2907, 3347};
330
331// plasma.c: Lightning pillar sparks, columns and counts.
332
333/// Plasma, by variant: sparks per pillar and shake frames.
335 // sparks per pillar, shake frames
336 {384, 2}, // variant 0
337 {256, 3}, // variant 1
338 {192, 4}, // variant 2
339};
340/// Each pillar's canvas x, seven for each side.
342 {32, 64, 16, 48, 72, 96, 64},
343 {88, 56, 104, 72, 48, 24, 56},
344};
345/// How many pillars strike, by variant.
346u8 gPlasma_Counts[] = {1, 3, 7};
347
348// plasma.c: Spark group shapes and flash cells.
349
350/// The spark groups, by variant: the SPARK_GROUPS_ columns.
352 // sparks per burst, bursts, each burst's offset across
353 {128, 1, 16, 0, 0}, // variant 0
354 {255, 1, 16, 0, 0}, // variant 1
355 {192, 3, 0, 24, 48}, // variant 2
356 {340, 1, 16, 24, 48}, // variant 3
357 {32, 1, 16, 0, 0}, // variant 4
358};
359/// The flash picture for each three frames at the end of a flash's life.
361
362// volcano.c: Fire pillar counts, depths and start frames.
363
364/// How many pillars stand, by variant.
365u8 gVolcano_Counts[] = {1, 2, 4};
366/// Each pillar's depth, by variant.
367s8 gVolcano_Depths[][4] = {{0, 0, 0, 0}, {24, -24, 0, 0}, {-20, 20, -60, 60}};
368/// The frame each pillar starts.
369u8 gVolcano_StartFrames[] = {8, 18, 24, 30, 34};
370
371// target_motes.c: Target mote glint orientations.
372
373/// Glint orientations: none, and mirrored each way and both.
375
376/// The effect handlers, indexed by effect kind minus one, which
377/// BattleFx_RunTableEffect calls; kind zero is handled by the dispatcher.
378///
379/// Each handler is named for the first ability, by ability id, whose entry in
380/// gBattle_ActionFlags (battle/actflags.tsv) selects its kind, with that
381/// ability's English name (MsgAbilityName + id): kind 1 is Quake, Earthquake
382/// and Quake Sphere, so BattleFx_RunQuake. A handler several kinds share takes
383/// the name of its lowest kind's first ability, and a name another handler has
384/// already taken passes to the next ability (kind 15 is BattleFx_RunNova, as
385/// its first ability is a second Blast). Kinds that no ability uses keep
386/// descriptive names. Each row gives the kind's name, the part of effect.c
387/// that defines its handler and its first ability; the handler's own comment
388/// there lists every ability that reaches it.
390 [BATTLE_FX_QUAKE - 1] = BattleFx_RunQuake, // quake.c: Quake
391 [BATTLE_FX_SPIRE - 1] = BattleFx_RunSpire, // spire.c: Spire
392 [BATTLE_FX_GAIA - 1] = BattleFx_RunGaia, // gaia.c: Gaia
393 [BATTLE_FX_GROWTH - 1] = BattleFx_RunGrowth, // growth.c: Growth
394 [BATTLE_FX_THORN - 1] = BattleFx_RunThorn, // growth.c: Thorn
395 [BATTLE_FX_FROST - 1] = BattleFx_RunFrost, // frost.c: Frost
396 [BATTLE_FX_ICE - 1] = BattleFx_RunIce, // falling.c: Ice
397 [BATTLE_FX_PRISM - 1] = BattleFx_RunPrism, // prism.c: Prism
398 [BATTLE_FX_DOUSE - 1] = BattleFx_RunDouse, // falling.c: Douse
399 [BATTLE_FX_FROTH - 1] = BattleFx_RunFroth, // vortices.c: Froth
400 [BATTLE_FX_FLARE - 1] = BattleFx_RunFlare, // flare.c: Flare
401 [BATTLE_FX_FIRE - 1] = BattleFx_RunFire, // fire.c: Fire
402 [BATTLE_FX_VOLCANO - 1] = BattleFx_RunVolcano, // volcano.c: Volcano
403 [BATTLE_FX_BLAST - 1] = BattleFx_RunBlast, // eruption.c: Blast
404 [BATTLE_FX_NOVA - 1] = BattleFx_RunNova, // plasma.c: Blast
405 [BATTLE_FX_BOLT - 1] = BattleFx_RunBolt, // bolt.c: Bolt
406 [BATTLE_FX_RAY - 1] = BattleFx_RunRay, // ray.c: Ray
407 [BATTLE_FX_PLASMA - 1] = BattleFx_RunPlasma, // plasma.c: Plasma
408 [BATTLE_FX_SLASH - 1] = BattleFx_RunSlash, // projectiles.c: Slash
409 [BATTLE_FX_WHIRLWIND - 1] = BattleFx_RunWhirlwind, // vortices.c: Whirlwind
410 [BATTLE_FX_CURE - 1] = BattleFx_RunCure, // healing.c: Cure
411 [BATTLE_FX_PLY - 1] = BattleFx_RunPly, // healing.c: Ply
412 [BATTLE_FX_WISH - 1] = BattleFx_RunWish, // healing.c: Wish
414 BattleFx_RunCurePoison, // healing.c: Cure Poison
415 [BATTLE_FX_REVIVE - 1] = BattleFx_RunRevive, // djinn_beams.c: Revive
416 [BATTLE_FX_IMPACT - 1] = BattleFx_RunImpact, // stat_change.c: Impact
417 [BATTLE_FX_DULL - 1] = BattleFx_RunDull, // stat_change.c: Dull
418 [BATTLE_FX_GUARD - 1] = BattleFx_RunGuard, // stat_change.c: Guard
419 [BATTLE_FX_IMPAIR - 1] = BattleFx_RunImpair, // stat_change.c: Impair
420 [BATTLE_FX_WARD - 1] = BattleFx_RunWard, // stat_change.c: Ward
421 [BATTLE_FX_WEAKEN - 1] = BattleFx_RunWeaken, // stat_change.c: Weaken
422 [BATTLE_FX_TAINT - 1] = BattleFx_RunTaint, // target_motes.c: Taint
423 [BATTLE_FX_DELUDE - 1] = BattleFx_RunDelude, // target_motes.c: Delude
425 BattleFx_RunOrbitingSpirals, // planet_diver.c
427 BattleFx_RunHeartrender, // target_motes.c: Heartrender
428 [BATTLE_FX_PARALYZE - 1] = BattleFx_RunParalyze, // target_motes.c: Paralyze
429 [BATTLE_FX_SLEEP - 1] = BattleFx_RunSleep, // target_motes.c: Sleep
430 [BATTLE_FX_BIND - 1] = BattleFx_RunBind, // bind.c: Bind
431 [BATTLE_FX_HAUNT - 1] = BattleFx_RunHaunt, // planet_diver.c: Haunt
432 [BATTLE_FX_CONDEMN - 1] = BattleFx_RunCondemn, // condemn.c: Condemn
433 [BATTLE_FX_CURSE - 1] = BattleFx_RunCurse, // target_motes.c: Curse
434 [BATTLE_FX_DRAIN - 1] = BattleFx_RunDrain, // drain.c: Drain
435 [BATTLE_FX_BREAK - 1] = BattleFx_RunBreak, // drain.c: Break
436 [BATTLE_FX_WISH_44 - 1] = BattleFx_RunWish, // healing.c: Wish
437 [BATTLE_FX_WISH_45 - 1] = BattleFx_RunWish, // healing.c: Wish
438 [BATTLE_FX_IMPACT_46 - 1] = BattleFx_RunImpact, // stat_change.c: Impact
439 [BATTLE_FX_IMPAIR_47 - 1] = BattleFx_RunImpair, // stat_change.c: Impair
441 BattleFx_RunDragonCloud, // dragon_cloud.c: Dragon Cloud
443 BattleFx_RunDemonNight, // gathering_lights.c: Demon Night
445 BattleFx_RunHelmSplitter, // helm_splitter.c: Helm Splitter
447 BattleFx_RunQuickStrike, // thrash.c: Quick Strike
449 BattleFx_RunDeathPlunge, // death_plunge.c: Death Plunge
450 [BATTLE_FX_SHURIKEN - 1] = BattleFx_RunShuriken, // projectiles.c: Shuriken
452 BattleFx_RunAnnihilation, // annihilation.c: Annihilation
453 [BATTLE_FX_PUNJI - 1] = BattleFx_RunPunji, // growth.c: Punji
455 BattleFx_RunCuttingEdge, // projectiles.c: Cutting Edge
456 [BATTLE_FX_RAGNAROK - 1] = BattleFx_RunRagnarok, // ragnarok.c: Ragnarok
457 [BATTLE_FX_HEAT_WAVE - 1] =
458 BattleFx_RunHeatWave, // projectiles.c: Heat Wave
460 BattleFx_RunPlanetDiver, // planet_diver.c: Planet Diver
462 BattleFx_RunTitanBlade, // titan_blade.c: Titan Blade
464 BattleFx_RunShiningStar, // stars.c: Shining Star
465 [BATTLE_FX_BLIZZARD - 1] = BattleFx_RunBlizzard, // projectiles.c: Blizzard
467 BattleFx_RunDemonFire, // target_motes.c: Demon Fire
469 BattleFx_RunVorpalSlash, // thrash.c: Vorpal Slash
470 [BATTLE_FX_DROWN - 1] = BattleFx_RunDrown, // target_motes.c: Drown
473 BattleFx_RunAstralBlast, // stars.c: Astral Blast
474 [BATTLE_FX_GRANITE - 1] = BattleFx_RunGranite, // stat_change.c: Granite
475 [BATTLE_FX_REVIVE_201 - 1] = BattleFx_RunRevive, // djinn_beams.c: Revive
476 [BATTLE_FX_VINE - 1] = BattleFx_RunVine, // growth.c: Vine
477 [BATTLE_FX_GROUND - 1] = BattleFx_RunGround, // hail.c: Ground
478 [BATTLE_FX_PLY_204 - 1] = BattleFx_RunPly, // healing.c: Ply
479 [BATTLE_FX_SLEET - 1] = BattleFx_RunSleet, // projectiles.c: Sleet
480 [BATTLE_FX_WISH_206 - 1] = BattleFx_RunWish, // healing.c: Wish
481 [BATTLE_FX_HAIL - 1] = BattleFx_RunHail, // hail.c: Hail
482 [BATTLE_FX_TONIC - 1] = BattleFx_RunTonic, // healing.c: Tonic
483 [BATTLE_FX_DEW - 1] = BattleFx_RunDew, // djinn_beams.c: Dew
484 [BATTLE_FX_IMPACT_210 - 1] = BattleFx_RunImpact, // stat_change.c: Impact
485 [BATTLE_FX_GUARD_211 - 1] = BattleFx_RunGuard, // stat_change.c: Guard
487 BattleFx_RunPsyCrystal, // healing.c: Psy Crystal
488 [BATTLE_FX_FLASH - 1] = BattleFx_RunFlash, // stat_change.c: Flash
489 [BATTLE_FX_TORCH - 1] = BattleFx_RunTorch, // torch.c: Torch
490 [BATTLE_FX_WARD_215 - 1] = BattleFx_RunWard, // stat_change.c: Ward
491 [BATTLE_FX_ZEPHYR - 1] = BattleFx_RunZephyr, // stat_change.c: Zephyr
492 [BATTLE_FX_KITE - 1] = BattleFx_RunKite, // torch.c: Kite
493 [BATTLE_FX_BIND_218 - 1] = BattleFx_RunBind, // bind.c: Bind
494 [BATTLE_FX_GUST - 1] = BattleFx_RunGust, // burst_scene.c: Gust
495 [BATTLE_FX_VENUS - 1] = BattleFx_RunVenus, // djinn_attacks.c: Venus
496 [BATTLE_FX_MERCURY - 1] = BattleFx_RunMercury, // djinn_attacks.c: Mercury
497 [BATTLE_FX_MARS - 1] = BattleFx_RunMars, // djinn_attacks.c: Mars
498 [BATTLE_FX_JUPITER - 1] = BattleFx_RunJupiter, // djinn_attacks.c: Jupiter
499 [BATTLE_FX_SONIC_WAVE - 1] = BattleFx_RunSonicWave, // streaks.c: Sonic Wave
500 [BATTLE_FX_SHRIEK - 1] = BattleFx_RunShriek, // streaks.c: Shriek
502 BattleFx_RunBansheeHowl, // streaks.c: Banshee Howl
504 BattleFx_RunCrazyVoice, // projectiles.c: Crazy Voice
505 [BATTLE_FX_WAR_CRY - 1] = BattleFx_RunWarCry, // streaks.c: War Cry
507 BattleFx_RunWickedHowl, // streaks.c: Wicked Howl
508 [BATTLE_FX_WING_BEAT - 1] =
509 BattleFx_RunWingBeat, // projectiles.c: Wing Beat
511 BattleFx_RunWingFlutter, // projectiles.c: Wing Flutter
512 [BATTLE_FX_RUMBLE - 1] = BattleFx_RunRumble, // gathering_lights.c: Rumble
514 BattleFx_RunBoneChiller, // lobbed_shells.c: Bone Chiller
515 [BATTLE_FX_GUST_310 - 1] = BattleFx_RunGust, // burst_scene.c: Gust
517 BattleFx_RunBoneCharge, // rushing_strike.c: Bone Charge
519 BattleFx_RunMysticFlame, // target_motes.c: Mystic Flame
521 BattleFx_RunNumbingSting, // target_strike.c: Numbing Sting
523 BattleFx_RunBruteForce, // rushing_strike.c: Brute Force
525 BattleFx_RunStickyGoo, // lobbed_shells.c: Sticky Goo
527 BattleFx_RunCannibalFang, // target_strike.c: Cannibal Fang
528 [BATTLE_FX_BEAR_CLAW - 1] =
529 BattleFx_RunBearClaw, // burst_scene.c: Bear Claw
531 BattleFx_RunPoisonousBite, // target_strike.c: Poisonous Bite
533 BattleFx_RunFlyingAttack, // burst_scene.c: Flying Attack
535 BattleFx_RunUndeadSword, // undead_sword.c: Undead Sword
536 [BATTLE_FX_RANSACK - 1] = BattleFx_RunRansack, // burst_scene.c: Ransack
538 BattleFx_RunStickyPoison, // lobbed_shells.c: Sticky Poison
540 BattleFx_RunPoisonousBite, // target_strike.c: Poisonous Bite
542 BattleFx_RunElectricBite, // target_strike.c: Electric Bite
544 BattleFx_RunPoisonTail, // target_strike.c: Poison Tail
545 [BATTLE_FX_ONSLAUGHT - 1] =
546 BattleFx_RunOnslaught, // rushing_strike.c: Onslaught
548 BattleFx_RunVampiricFang, // target_strike.c: Vampiric Fang
550 BattleFx_RunBacteriaRush, // burst_scene.c: Bacteria Rush
552 BattleFx_RunFlyingAttack, // burst_scene.c: Flying Attack
554 BattleFx_RunRottenBlood, // lobbed_shells.c: Rotten Blood
556 BattleFx_RunDoubleFang, // target_strike.c: Double Fang
558 BattleFx_RunMortalBlow, // target_strike.c: Mortal Blow
560 BattleFx_RunFreebiteRush, // burst_scene.c: Freebite Rush
562 BattleFx_RunTwinBeaks, // target_strike.c: Twin Beaks
564 BattleFx_RunRabidFang, // target_strike.c: Rabid Fang
565 [BATTLE_FX_ACID_BITE - 1] =
566 BattleFx_RunAcidBite, // target_strike.c: Acid Bite
567 [BATTLE_FX_DYNAMITE - 1] = BattleFx_RunDynamite, // plasma.c: Dynamite
568 [BATTLE_FX_HEADBUTT - 1] =
569 BattleFx_RunHeadbutt, // rushing_strike.c: Headbutt
571 BattleFx_RunPoisonInk, // lobbed_shells.c: Poison Ink
573 BattleFx_RunBearClaw, // burst_scene.c: Bear Claw
574 [BATTLE_FX_RANSACK_343 - 1] = BattleFx_RunRansack, // burst_scene.c: Ransack
576 BattleFx_RunSoothingStar, // streaks.c: Soothing Star
578 BattleFx_RunSpiderWeb, // spider_web.c: Spider Web
580 BattleFx_RunHeartrender, // target_motes.c: Heartrender
582 BattleFx_RunMadSpatter, // lobbed_shells.c: Mad Spatter
583 [BATTLE_FX_SPASM - 1] = BattleFx_RunSpasm, // mirrored_wall.c: Spasm
584 [BATTLE_FX_SLEEP_STAR - 1] = BattleFx_RunSleepStar, // streaks.c: Sleep Star
585 [BATTLE_FX_DECOMPOSE - 1] =
586 BattleFx_RunDecompose, // lobbed_shells.c: Decompose
587 [BATTLE_FX_HAUNTING - 1] =
588 BattleFx_RunHaunting, // gathering_lights.c: Haunting
589 [BATTLE_FX_CURE_352 - 1] = BattleFx_RunCure, // healing.c: Cure
590 [BATTLE_FX_BERSERK - 1] = BattleFx_RunBerserk, // mirrored_wall.c: Berserk
591 [BATTLE_FX_CURSE_354 - 1] = BattleFx_RunCurse, // target_motes.c: Curse
593 BattleFx_RunSmokeBomb, // eruption.c: Smoke Bomb
595 BattleFx_RunWingStroke, // projectiles.c: Wing Stroke
597 BattleFx_RunPoisonBeat, // spider_web.c: Poison Beat
599 BattleFx_RunSpinningBeat, // spider_web.c: Spinning Beat
601 BattleFx_RunOuterSpace, // particle_streams.c: Outer Space
603 BattleFx_RunDragonDriver, // tiamat.c: Dragon Driver
605 BattleFx_RunDrainFang, // target_strike.c: Drain Fang
608 [BATTLE_FX_THRASH - 1] = BattleFx_RunThrash, // thrash.c: Thrash
609 [BATTLE_FX_RECOVERY - 1] =
610 BattleFx_RunRecovery, // mirrored_wall.c: Recovery
612 BattleFx_RunFireBlessing, // burst_shower.c: Fire Blessing
614 BattleFx_RunWaterBlessing, // burst_shower.c: Water Blessing
616 BattleFx_RunIceBlessing, // projectiles.c: Ice Blessing
618 BattleFx_RunDarkBlessing, // burst_shower.c: Dark Blessing
620 BattleFx_RunAcidBlessing, // burst_shower.c: Dark Blessing
622 BattleFx_RunStormBlessing, // burst_shower.c: Storm Blessing
624 BattleFx_RunEvilBlessing, // burst_shower.c: Evil Blessing
626 BattleFx_RunDeadlyGas, // burst_shower.c: Deadly Gas
627};
628
629// boreas.c, cybele.c and drain.c: Rock and ice scene geometry.
630
631/// Poses of objects 3 and 4 while they wave, three pairs.
633 {8, 10},
634 {9, 11},
635 {3, 4},
636};
637// The five thorn cells, which the chips use too.
638u16 gCybele_ThornOffsets[] = {3920, 3932, 3947, 3955, 3970};
639u8 gCybele_ThornWidths[] = {2, 5, 2, 5, 3};
640u8 gCybele_ThornHeights[] = {6, 3, 4, 3, 3};
641// The three leaf cells, square.
642u16 gCybele_LeafOffsets[] = {3456, 3712, 3856};
643u8 gCybele_LeafSizes[] = {16, 12, 8};
644// The five chip cells, the thorn cells again.
645u16 gCybele_ChipOffsets[] = {3920, 3932, 3947, 3955, 3970};
646u8 gCybele_ChipWidths[] = {2, 5, 2, 5, 3};
647u8 gCybele_ChipHeights[] = {6, 3, 4, 3, 3};
648// The five frames of a spark, square.
649u16 gCybele_SparkOffsets[] = {3979, 4043, 4268, 4389, 4470};
650u8 gCybele_SparkSizes[] = {8, 15, 11, 9, 5};
651// The ember cells of the blast sheet, square. Only the last, largest one is
652// drawn.
653u16 gCybele_EmberOffsets[] = {5760, 6016, 7040, 9344, 11648, 13952, 16256};
654u16 gCybele_EmberSizes[] = {16, 32, 48, 48, 48, 48, 48};
655/// Rock and ice scene: where the rocks stand (and later the boulders, 56 pixels
656/// further left), by the bottom-left corner.
657u8 gBoreas_Points[][2] = {{57, 130}, {75, 128}, {71, 104}, {101, 130},
658 {86, 126}, {85, 98}, {64, 98}, {98, 96},
659 {77, 87}, {84, 88}, {68, 67}, {81, 49},
660 {94, 70}, {70, 51}, {93, 36}, {81, 50}};
661/// The backdrop's jolt on frames 176 to 179.
662s8 gBoreas_ShakeOffsets[] = {-4, -3, -2, 0};
663// The first half's three rock pictures, drawn standing on their points.
664u16 gBoreas_RockCells[] = {0, 1152, 2064};
665u8 gBoreas_RockWidths[] = {24, 24, 20};
666u8 gBoreas_RockHeights[] = {48, 38, 26};
667/// The third object's animations from frame 209, one every 4 frames.
668u8 gBoreas_Animations[] = {2, 9, 10, 11};
669// Rock and ice scene: the chips thrown up as the rocks crumble: four large
670// ones, then from frame 192 seven small ones.
671u8 gBoreas_DebrisWidths[] = {12, 11, 8, 10, 8, 12, 5, 7, 7, 6, 7};
672u8 gBoreas_DebrisHeights[] = {10, 16, 14, 15, 4, 4, 3, 4, 6, 12, 10};
673u16 gBoreas_DebrisCells[] = {2584, 2704, 2880, 2992, 5062, 5094,
674 5142, 5157, 5185, 5227, 5299};
675// Rock and ice scene: the three 16x16 spray images.
676u8 gBoreas_SprayWidths[] = {16, 16, 16};
677u8 gBoreas_SprayHeights[] = {16, 16, 16};
678u16 gBoreas_SprayCells[] = {4294, 4550, 4806};
679// The second half's boulders (56 pixels left of the rock points) and the
680// chunks they crumble into: the same three pictures as the rocks.
681u16 gBoreas_BoulderCells[] = {0, 1152, 2064};
682u8 gBoreas_BoulderWidths[] = {24, 24, 20};
683u8 gBoreas_BoulderHeights[] = {48, 38, 26};
684u8 gBoreas_FallWidths[] = {24, 24, 20};
685u8 gBoreas_FallHeights[] = {48, 38, 26};
686u16 gBoreas_FallCells[] = {0, 1152, 2064};
687/// Ice shards: shard i falls with gravity i & 3.
688s32 gDrain_Gravities[] = {0x4000, 0x2000, 0x4000, 0x8000};
689
690// stat_change.c: Stat-reduction shard geometry.
691
692// The twelve shard cells, three frames for each of four shapes.
693u16 gStatChange_ShardCells[] = {0, 120, 180, 258, 298, 352,
694 408, 471, 567, 607, 631, 661};
695u8 gStatChange_ShardWidths[] = {10, 5, 6, 5, 6, 7, 9, 8, 4, 6, 6, 7};
696u8 gStatChange_ShardHeights[] = {12, 12, 13, 8, 9, 8, 7, 12, 10, 4, 5, 5};
697
698// quake.c
699
700/// Rock wall timing, by variant: frames in the effect, frames each pillar
701/// stands, and how far the screen shakes.
702u8 gQuake_Timings[][3] = {{80, 32, 2}, {112, 64, 4}, {144, 96, 8}};
703
704// fire.c: Homing ember counts and flare geometry.
705
706/// Embers by variant, at most FIRE_EMBERS (fire.c).
707u8 gFire_Counts[] = {16, 32, 64};
708// The six impact flare pictures: sizes, y offsets and cells.
713
714// frost.c: Rising mote geometry and timing.
715
716/// Where each ice column stands: x, then the y of its foot.
718 {53, 108}, {73, 110}, {29, 110}, {73, 108}, {33, 104}, {96, 106}, {8, 109},
719 {62, 98}, {33, 100}, {87, 100}, {21, 95}, {53, 90}, {33, 90}, {72, 91},
720 {82, 91}, {77, 86}, {52, 84}, {18, 92}, {56, 81},
721};
722/// Motes, ice columns and the burst frame, for each variant.
724 {32, 8, 85},
725 {48, 12, 97},
726 {64, 19, 109},
727};
728// The eight mote pictures.
729u8 gFrost_MoteWidths[] = {12, 10, 7, 10, 8, 8, 8, 8};
730u8 gFrost_MoteHeights[] = {9, 16, 14, 15, 8, 8, 8, 8};
731u16 gFrost_MoteCells[] = {1792, 1900, 2060, 2158, 2308, 2372, 2436, 2500};
732// The three ice column pictures, 32 wide.
733u16 gFrost_ColumnCells[] = {0, 768, 1280};
734u8 gFrost_ColumnHeights[] = {24, 16, 16};
735// The eight chip pictures (the same as the motes).
736u8 gFrost_ChipWidths[] = {12, 10, 7, 10, 8, 8, 8, 8};
737u8 gFrost_ChipHeights[] = {9, 16, 14, 15, 8, 8, 8, 8};
738u16 gFrost_ChipCells[] = {1792, 1900, 2060, 2158, 2308, 2372, 2436, 2500};
739
740// ray.c: Closing bolt sparks by variant.
741
742/// Sparks by variant; [1] is how many each bolt throws a frame.
743u8 gRay_Sparks[][2] = {{2, 4}, {2, 6}, {4, 8}};
744
745// eruption.c: Eruption counts and puff layouts.
746
747/// Motes, puffs of smoke and frames, for each variant.
748u8 gEruption_Counts[][3] = {{16, 8, 72}, {32, 16, 80}, {128, 32, 88}};
749// The seven puff pictures, square.
752
753// Unreferenced cell layouts, from 6x6 through 20x20.
754u16 gUnused_SheetCells6[] = {0, 36, 100, 200, 344, 540};
755u16 gUnused_SheetCells[] = {0, 36, 100, 200, 344, 540,
756 796, 1120, 1520, 1900, 2300};
757u8 gUnused_SheetWidths[] = {6, 8, 10, 12, 14, 16, 18, 20, 19, 20};
758u8 gUnused_SheetHeights[] = {6, 8, 10, 12, 14, 16, 18, 20, 20, 20};
759
760// atalanta.c
761
762/// Staged particle scale: Atalanta's formation objects keep this
763/// scale, one to one, throughout.
764struct SpriteScale gAtalanta_UnitScale = {{{0x10000, 0x10000}}};
765
766// growth.c: Growing vine and pillar geometry.
767
768// The three column shapes: vine and pillar widths, cells and height caps.
769u8 gGrowth_VineWidths[] = {21, 28, 19};
770u8 gGrowth_HeightLimits[] = {119, 119, 102};
771u16 gGrowth_VineCells[] = {0, 2499, 5831};
773u16 gGrowth_PillarCells[] = {0, 1080, 1888};
774// Columns by variant, and where each column's root stands.
776u8 gGrowth_ColumnX[] = {64, 72, 56, 80, 48, 88, 40, 96,
777 32, 104, 24, 72, 56, 80, 48, 88};
778s8 gGrowth_PillarHeights[] = {100, 60, 88, 96, 64, 104, 82, 98};
779// The seven pictures of a puff of dust.
780s8 gGrowth_PuffWidths[] = {5, 7, 11, 16, 23, 27, 16};
781u8 gGrowth_PuffHeights[] = {10, 14, 21, 32, 45, 50, 32};
782u16 gGrowth_PuffCells[] = {0, 50, 148, 379, 891, 1926, 3276};
783/// Each vine's root, across from the middle of the targets.
784s8 gGrowth_ColumnOffsets[] = {0, 14, -32, 8, 32, -48, 4, 12,
785 -24, 24, -12, -40, -4, -16, -32, 12};
786// Each thorn's kind (size, and mirrored when odd) and root.
787u8 gGrowth_Kinds[] = {0, 3, 2, 1, 2, 3, 2, 1};
788s8 gGrowth_X[] = {24, 80, 24, 48, 88, 40, 8, 96};
789/// Thorns by variant.
790u8 gGrowth_Counts[] = {3, 5, 8};
791// The seven pictures of a puff of dust.
792s8 gGrowth_ThornPuffWidths[] = {5, 7, 11, 17, 32, 32, 19};
793u8 gGrowth_ThornPuffHeights[] = {10, 14, 21, 34, 59, 60, 38};
794u16 gGrowth_ThornPuffCells[] = {5888, 5938, 6036, 6267, 6845, 8733, 10653};
795
796// bolt.c: Lightning bolt counts and glint palettes.
797
798/// Bolt, by variant: sparks each bolt throws, glints a frame around each
799/// target, how far the glints spread, and bolts drawn over each other.
801 {16, 0, 15, 1},
802 {32, 3, 31, 1},
803 {128, 5, 48, 3},
804};
805// The flips a glint may be drawn in, and its blend by variant.
807u8 gBolt_GlintModes[] = {2, 2, 3};
808
809// projectiles.c: Projectile volley modes and picture cells.
810
811/// Comet picture heights, by comet kind.
813/// Each projectile volley mode, by the PROJECTILE_VOLLEY_ columns
814/// (projectiles.c).
816 // PROJECTILE_VOLLEY_: SHOTS, STEPS, STAGGER, DELAY, SPARKS
817 {6, 10, 3, 32, 4}, // mode 0
818 {4, 10, 5, 32, 8}, // mode 1
819 {10, 32, 3, 32, 4}, // mode 2
820 {5, 10, 5, 32, 4}, // mode 3
821 {10, 10, 1, 32, 4}, // mode 4
822 {1, 5, 0, 32, 80}, // mode 5
823 {7, 8, 2, 32, 40}, // mode 6
824 {30, 24, 1, 32, 4}, // mode 7
825 {6, 2, 3, 32, 4}, // mode 8
826 {60, 10, 1, 32, 4}, // mode 9
827 {60, 10, 1, 32, 4}, // mode 10
828 {10, 10, 1, 32, 4}, // mode 11
829};
830// Hit flash pictures, by step (flash frame / 2).
831u8 gProjectiles_FlashWidths[] = {12, 18, 24, 30, 36, 39, 40};
832u8 gProjectiles_FlashHeights[] = {10, 15, 18, 22, 27, 28, 30};
833u8 gProjectiles_FlashSteps[] = {2, 3, 4, 4, 5, 6, 6};
834u8 gProjectiles_FlashRises[] = {0, 3, 5, 7, 10, 12, 12};
835u16 gProjectiles_FlashOffsets[] = {8192, 8312, 8582, 9014, 9674, 10646, 11738};
836/// Ice chip pictures, by shot index & 3.
837u16 gProjectiles_PelletOffsets[] = {2308, 2372, 2436, 2500};
838
839// djinn_attacks.c: Mercury Djinni flame launch frames.
840
841/// The frames on which the Djinni fires each of its five flames.
842u8 gDjinnAttacks_LaunchFrames[] = {4, 7, 10, 21, 34};
843
844// hail.c: Particle reveal and rock toss chips.
845
846// The four ice chip cells.
847u8 gHail_CellWidths[] = {8, 8, 8, 8};
848u8 gHail_CellHeights[] = {8, 8, 8, 8};
849u16 gHail_Cells[] = {2308, 2372, 2436, 2500};
850/// The composite flips a chip may take.
851u8 gHail_ChipFlips[] = {3, 7, 11, 15};
852// The rock (cell 0) and its chips in the portal sheet: size, where each begins
853// in the sheet, and its offset from the rock's corner.
854u8 gHail_ChipWidths[] = {24, 7, 7, 8, 6, 13, 10, 11, 7};
855u8 gHail_ChipHeights[] = {48, 13, 14, 24, 24, 17, 20, 14, 20};
856u16 gHail_ChipCells[] = {0, 1152, 1243, 1341, 1533, 1677, 1898, 2098, 2252};
857u8 gHail_ChipX[] = {0, 9, 9, 11, 10, 0, 3, 13, 7};
858u8 gHail_ChipY[] = {0, 18, 18, 0, 24, 20, 5, 22, 26};
859
860// spire.c and thor.c: Storm scene colours and shattering rocks.
861
862/// The colours a target flashes when a bolt strikes it, chosen at random:
863/// white, black, red, or with its colour channels rotated.
864u8 gThor_TargetPalettes[] = {7, 14, 10, 4};
865/// Flip flags for the smoke puffs, chosen at random.
867/// Where each of a rock's 21 shards starts, x then y, before the rock's
868/// offset across.
870 {65, 104}, {68, 95}, {64, 93}, {61, 93}, {64, 87}, {72, 85}, {56, 88},
871 {51, 80}, {61, 75}, {72, 81}, {69, 71}, {66, 70}, {71, 64}, {49, 71},
872 {59, 69}, {53, 68}, {78, 73}, {55, 67}, {75, 62}, {61, 65}, {53, 61},
873};
874// Each rock's offset across, the frame it appears (it lands 18 frames
875// later), and the rocks by variant.
876s8 gSpire_RockX[] = {0, -12, 12, -8, 16};
877u8 gSpire_DropFrames[] = {8, 16, 20, 24, 32};
878u8 gSpire_RockCounts[] = {1, 3, 5};
879// Shattering rocks: five shard shapes in three tumbling phases each, decoded
880// after the boulder picture.
881u8 gSpire_ShardWidths[] = {5, 11, 10, 7, 7, 12, 13, 9,
882 19, 12, 17, 22, 15, 16, 14};
883u8 gSpire_ShardHeights[] = {11, 6, 10, 11, 10, 7, 17, 21,
884 12, 21, 17, 13, 16, 16, 15};
885u16 gSpire_ShardCells[] = {0, 55, 121, 221, 298, 368, 452, 673,
886 862, 1090, 1342, 1631, 1917, 2157, 2413, 2623};
887
888// gaia.c and burst_scene.c: Burst scene records and rising wall geometry.
889
890/// Each burst scene mode, by the BURST_SCENE_ columns (burst_scene.c).
892 // BURST_SCENE_: ARC_SHEET, PALETTE, STRIKES, MOTES, INTERVAL, FRAMES, FLASH
893 {1, 0, 5, 16, 12, 80, 0}, // mode 0
894 {1, 1, 7, 16, 12, 104, 0}, // mode 1
895 {1, 2, 9, 16, 12, 128, 0}, // mode 2
896 {1, 3, 1, 16, 16, 36, 0}, // mode 3
897 {1, 3, 2, 20, 16, 52, 0}, // mode 4
898 {1, 3, 3, 24, 16, 68, 0}, // mode 5
899 {0, 2, 1, 32, 12, 28, 1}, // mode 6
900 {0, 2, 2, 32, 12, 40, 1}, // mode 7
901 {0, 2, 3, 32, 12, 52, 1}, // mode 8
902};
903// Rising wall: the nine rows of the growing wall in the rebuilt sheet.
904u16 gGaia_RowCells[] = {0, 160, 352, 640, 1024, 1504, 2080, 2752, 3776};
905u8 gGaia_RowWidths[] = {5, 6, 9, 12, 15, 18, 21, 32, 40};
906// The swelling ground's three pictures, after the rebuilt rows; they share
907// the earth wall's sizes.
908u16 gGaia_MoundCells[] = {10672, 11505, 12550};
911/// BG2's x shift, by side and variant.
912s8 gGaia_Bg2Shifts[][3] = {{-8, 0, 12}, {-72, -40, -16}};
913/// The columns rock particles[16] to particles[21] take.
914u8 gGaia_LateRockColumns[] = {136, 40, 120, 56, 104, 72};
915
916// beams.c: Beam sequence picture cells and reach.
917
918// The six cells of the growing beam picture, and how far each reaches short of
919// the user. The Lost Age reads the same tables.
922u16 gBeams_Cells[] = {0, 266, 752, 1533, 2495, 3496};
924
925// casting_impact.c: Casting impact glints and orbit cells.
926
927/// The flips a glint may take, picked at random.
929// Where each picture of the counter reveal is drawn: seven x positions for
930// each side of the field, and seven y positions, from the target's height, for
931// both.
933 {10, 30, 0, 0, 0, 6, 52},
934 {60, 0, 0, 0, 0, 0, 0},
935};
936u8 gCastingImpact_ImageY[] = {0, 20, 2, 2, 34, 64, 68};
937/// The four ice chip cells, 8x8.
938u16 gCastingImpact_IceChipCells[] = {2308, 2372, 2436, 2500, 0};
939
940// helm_splitter.c: Fire swirl picture cells.
941
942// The seven cells of the fire swirl, and where each sits from the user.
943u8 gHelmSplitter_CellWidths[] = {26, 46, 63, 77, 60, 39, 32};
944u8 gHelmSplitter_CellHeights[] = {11, 20, 37, 65, 65, 54, 39};
945u16 gHelmSplitter_Cells[] = {0, 286, 1206, 3537, 8542, 12442, 14548};
946s8 gHelmSplitter_CellBiasX[] = {53, 36, 16, 2, 2, 2, 2};
947s8 gHelmSplitter_CellBiasY[] = {2, 3, 3, 3, 4, 14, 29};
948
949// helm_splitter.c: Object formation coordinates and impact burst cells.
950
951// The offsets of BattleFx_PlaceFormationObjects' formations 1 to 3 in
952// pixels, one axis at a time: twelve in rows of 1, 3, 4 and 4; eight in rows
953// of 3, 2 and 3; eight drawn at 1.25 times their size. Formation 0, a 3x3
954// grid, needs no table.
955u8 gHelmSplitter_TwelveX[] = {52, 25, 57, 89, 7, 39, 71, 103, 21, 53, 85, 117};
956u8 gHelmSplitter_TwelveZ[] = {0, 32, 32, 32, 64, 64, 64, 64, 96, 96, 96, 96};
957u8 gHelmSplitter_RightEightX[] = {0, 32, 64, 16, 48, 0, 32, 64};
958u8 gHelmSplitter_RightEightZ[] = {0, 0, 0, 32, 32, 64, 64, 64};
959u8 gHelmSplitter_SmallEightX[] = {0, 40, 80, 0, 40, 80, 40, 80};
960u8 gHelmSplitter_SmallEightZ[] = {13, 0, 0, 53, 40, 40, 80, 80};
961// The eight cells of the impact flash.
962u8 gHelmSplitter_ImpactBurstCellWidths[] = {48, 48, 46, 36, 36, 32, 26, 6};
963u8 gHelmSplitter_ImpactBurstCellHeights[] = {96, 96, 90, 74, 74, 62, 52, 12};
964u16 gHelmSplitter_ImpactBurstCells[] = {0, 4608, 9216, 13356,
965 16020, 18684, 20668, 22020};
966
967// particle_streams.c and ramses.c: Particle stream paths and circling scene
968// geometry.
969
970/// The seven sparks that orbit the rising formation.
972 {-64, -96, 24}, {-48, -120, 32}, {-32, -80, -48}, {-16, -72, -24},
973 {16, -80, 16}, {32, -112, -32}, {48, -96, 56}};
974/// Where the seven drops fall, in pixels.
976 {32, 32}, {48, 96}, {80, 80}, {112, 100}, {176, 80}, {196, 64}, {204, 96}};
977// The seven growing flash cells of the blast sheet, square.
980// Where the formation's objects stand, in pixels from its corner.
981u8 gRamses_ObjectColumns[] = {12, 44, 28, 60, 0, 32, 64, 0, 32};
982u8 gRamses_ObjectRows[] = {0, 0, 32, 32, 64, 64, 64, 32, 32};
983// The puff cells of the blast sheet, square; only the last four are used.
986
987// ragnarok.c: Flame blade strike columns and flash cells.
988
989/// The canvas x of each strike column, three for each side.
991 {32, 24, 0},
992 {96, 104, 128},
993};
994/// The flash picture for each three frames at the end of a flash's life.
996
997// judgment.c and titan_blade.c: Falling sword flashes, dust and shockwave
998// debris.
999
1000/// The flash picture for each three frames at the end of a flash's life.
1002/// Dust gravity, by particle index & 3.
1003s32 gTitanBlade_DustGravity[] = {0x8000, 0x4000, 0x4000, 0x2000};
1004// Judgment's burst: seven quarter pictures, each half as wide as it is
1005// tall, from JUDGMENT_SHEET_BURST.
1006u8 gJudgment_BurstHeights[] = {2, 3, 4, 6, 10, 11, 12};
1007u16 gJudgment_BurstCells[] = {0, 8, 26, 58, 130, 330, 572};
1008// The six shard pictures thrown from the burst, from the sheet's start.
1009u16 gJudgment_ShardCells[] = {2396, 2985, 3698, 4411, 4810, 5146};
1010u8 gJudgment_ShardWidths[] = {19, 23, 23, 19, 16, 17};
1011u8 gJudgment_ShardHeights[] = {31, 31, 31, 21, 21, 24};
1012
1013// kirin.c: Object row coordinates.
1014
1015// Object row: pixel offsets of its nine objects.
1016u8 gKirin_Columns[] = {8, 40, 72, 104, 8, 40, 72, 104, 0};
1017u8 gKirin_Rows[] = {0, 0, 0, 24, 32, 32, 32, 56, 64};
1018
1019// neptune.c: Formation sweep coordinates and gravity.
1020
1021// The formation's eight objects: pixel offsets, scaled by 1.5 as placed.
1022u8 gNeptune_ObjectX[] = {0, 32, 64, 0, 32, 64, 96, 96};
1023u8 gNeptune_ObjectY[] = {0, 0, 0, 32, 32, 32, 0, 32};
1024/// Spray gravity, by particle index & 3.
1025s32 gNeptune_Gravity[] = {0x8000, 0x4000, 0x4000, 0x2000};
1026
1027// undead_sword.c: Rising burst spark cells.
1028
1029// The seven square spark pictures, from UNDEAD_SWORD_SPARK_SHEET.
void BattleFx_RunAnnihilation(struct BattleEffectArgument *effect)
The user closes on the first target and fire bursts from it in a shower of shards.
@ COMPOSITE_ADDITIVE
@ COMPOSITE_MAX
void BattleFx_RunBind(struct BattleEffectArgument *effect)
A triangle of light spins and shrinks onto the first target for 64 frames, then a rune stands on the ...
Definition bind.c:123
void BattleFx_RunTriangleStrike(struct BattleEffectArgument *effect)
The spinning triangle and rune of BattleFx_RunBind without the Djinni; on frame 46 the user steps up ...
Definition bind.c:297
void BattleFx_RunBolt(struct BattleEffectArgument *effect)
A bolt of lightning strikes each target in turn, 8 frames apart.
Definition bolt.c:40
void BattleFx_RunRansack(struct BattleEffectArgument *effect)
Ransack: the same five strikes as Bear Claw (mode 0).
Definition burst_scene.c:33
void BattleFx_RunGust(struct BattleEffectArgument *effect)
Gust: the burst scene in mode 6, 7 or 8 as the variant grows, one to three strikes that each fill the...
Definition burst_scene.c:11
void BattleFx_RunFlyingAttack(struct BattleEffectArgument *effect)
Flying Attack: the burst scene in mode 3, 4 or 5 as the variant grows, one to three strikes.
Definition burst_scene.c:55
void BattleFx_RunBearClaw(struct BattleEffectArgument *effect)
Bear Claw: five strikes, the burst scene in mode 0.
Definition burst_scene.c:26
void BattleFx_RunFreebiteRush(struct BattleEffectArgument *effect)
Freebite Rush: nine strikes in the blue palette (mode 2).
Definition burst_scene.c:47
void BattleFx_RunBacteriaRush(struct BattleEffectArgument *effect)
Bacteria Rush: seven strikes in the lime palette (mode 1).
Definition burst_scene.c:40
void BattleFx_RunDeadlyGas(struct BattleEffectArgument *effect)
The user fires a stream of Mars-coloured bursts at the targets, from 28 pixels in front of it.
void BattleFx_RunStormBlessing(struct BattleEffectArgument *effect)
Shows violet lightning between the user and targets instead of bursts: a bolt flickers through three ...
void BattleFx_RunFireBlessing(struct BattleEffectArgument *effect)
The user fires a stream of flash bursts at the targets, one a frame, each towards a random point near...
void BattleFx_RunEvilBlessing(struct BattleEffectArgument *effect)
The user fires a stream of demon faces at the targets, from 16 pixels in front of it.
void BattleFx_RunAcidBlessing(struct BattleEffectArgument *effect)
Fires pink bursts from 16 pixels below the normal origin.
void BattleFx_RunDarkBlessing(struct BattleEffectArgument *effect)
The user fires a stream of grey bursts at the targets, which turn solid black and stay so.
void BattleFx_RunWaterBlessing(struct BattleEffectArgument *effect)
The user fires a stream of bursts at the targets in the water-spray palette.
void BattleFx_RunCondemn(struct BattleEffectArgument *effect)
A tall panel (57x98) swings across the screen three times, each pass fading out through a ripple,...
Definition condemn.c:29
void BattleFx_RunDeathPlunge(struct BattleEffectArgument *effect)
The user runs 9/10 of the way to the first target, then both leap and turn upside down in the air; on...
void BattleFx_RunMars(struct BattleEffectArgument *effect)
Mars Djinni flames: a glowing orb flares, the small Mars Djinni dives to the ground,...
void BattleFx_RunMercury(struct BattleEffectArgument *effect)
Mercury Djinni flames: the small Mercury Djinni spirals around (96, 60) and fires five blue flames to...
void BattleFx_RunJupiter(struct BattleEffectArgument *effect)
Jupiter Djinni fall: the small Jupiter Djinni spirals while eight flameballs fall from the top right ...
void BattleFx_RunVenus(struct BattleEffectArgument *effect)
Venus Djinni columns: the small Venus Djinni sways while ten columns of flame in its colours rise fro...
void BattleFx_RunDew(struct BattleEffectArgument *effect)
With a Mercury Djinni: the same beams of light as Revive.
Definition djinn_beams.c:24
void BattleFx_RunRevive(struct BattleEffectArgument *effect)
With a Venus Djinni: beams of light, where motes drift down over each target and a column of light fa...
Definition djinn_beams.c:18
void BattleFx_RunDragonCloud(struct BattleEffectArgument *effect)
A flame leaves the user along a stored path with a fading trail of 19 copies behind it,...
void BattleFx_RunBreak(struct BattleEffectArgument *effect)
Ice shards burst up from each target in turn, 20 frames apart, tinting the target as they go,...
Definition drain.c:18
void BattleFx_RunDrain(struct BattleEffectArgument *effect)
Drain: motes of light burst from each target in turn, 20 frames apart, and are pulled into the centre...
Definition drain.c:143
void BattleFx_RunFrost(struct BattleEffectArgument *effect)
Rising motes: motes spiral upwards while ice columns spring up one every 3 frames from frame 36; at t...
Definition frost.c:33
void BattleFx_RunVine(struct BattleEffectArgument *effect)
Rising vines: sixteen green vines grow from the middle of the row of targets, 2 frames apart,...
Definition growth.c:325
void BattleFx_RunThorn(struct BattleEffectArgument *effect)
Rising thorns: thorns burst from the ground one every 8 frames, throwing up dust from their roots.
Definition growth.c:431
void BattleFx_RunPunji(struct BattleEffectArgument *effect)
Grows green pillars from the ground, scattering dust from each root.
Definition growth.c:42
void BattleFx_RunGrowth(struct BattleEffectArgument *effect)
Grows vines from the ground, scattering dust from each root.
Definition growth.c:36
s16 gParticleStreams_DropPoints[][2]
Where the seven drops fall, in pixels.
u16 gBoreas_BoulderCells[]
u8 gKirin_Rows[]
u8 gRagnarok_StrikeColumns[][3]
The canvas x of each strike column, three for each side.
struct Vector3 gStars_Points[]
The two star points, 48 and 28 pixels up (16.16).
u8 gHelmSplitter_RightEightZ[]
u16 gGrowth_PuffCells[]
u8 gTiamat_DropSpeeds[]
Ember speeds, by ember index & 3.
u16 gCybele_ThornOffsets[]
u8 gBoreas_FallHeights[]
u8 gGrowth_VineWidths[]
u8 gBurstScene_Records[][7]
Each burst scene mode, by the BURST_SCENE_ columns (burst_scene.c).
s8 gBoreas_ShakeOffsets[]
The backdrop's jolt on frames 176 to 179.
u8 gBoreas_SprayHeights[]
u8 gHail_ChipWidths[]
u16 gBattleFx_PuffArcCells[]
u8 gCybele_ThornHeights[]
u8 gDeathPlunge_PieceStartY[]
s8 gGrowth_PuffWidths[]
u16 gParticleStreams_FlashCells[]
u16 gJudgment_ShardCells[]
u8 gSpire_RockCounts[]
u8 gHelmSplitter_SmallEightZ[]
u8 gSpire_DropFrames[]
u16 gUnused_SheetCells[]
u8 gCybele_ChipHeights[]
u8 gGaia_RowWidths[]
u8 gHelmSplitter_RightEightX[]
u16 gRamses_PuffCells[]
s8 gSpiderWeb_CellBiasY[]
s8 gSpire_RockX[]
u8 gProjectiles_FlashSteps[]
#define FLAME_PUFF_CELLS
The six cells of an erupting flame puff: where each begins in the sheet.
u16 gBeams_Cells[]
u8 gCondemn_PanelX[][7]
Where each stage of the panel is drawn: seven x positions for each side of the field,...
u8 gDeathPlunge_DrawFlags[]
u8 gHelmSplitter_ImpactBurstCellHeights[]
u8 gFrost_ColumnHeights[]
s32 gTitanBlade_DustGravity[]
Dust gravity, by particle index & 3.
u8 gBoreas_BoulderWidths[]
u16 gHail_Cells[]
u8 gRagnarok_FlashCells[]
The flash picture for each three frames at the end of a flash's life.
u8 gFrost_MoteWidths[]
#define EARTH_WALL_CELL_HEIGHTS
and heights
u8 gUnused_SheetWidths[]
u8 gPlasma_FlashCells[]
The flash picture for each three frames at the end of a flash's life.
u16 gCybele_ChipOffsets[]
u8 gProjectiles_FlashHeights[]
u8 gHail_CellWidths[]
u8 gProjectiles_FlashRises[]
u8 gRamses_ObjectColumns[]
u8 gBattleFx_PuffArcCellHeights[]
u8 gGrowth_HeightLimits[]
u8 gFrost_Timings[][3]
Motes, ice columns and the burst frame, for each variant.
u8 gCastingImpact_ImageX[][7]
u8 gLobbedShells_ShardWidths[]
Lobbed shells: nine tumbling images in two sets, the second (cells 9 to 17) smaller.
u16 gGrowth_ThornPuffCells[]
u8 gHail_ChipFlips[]
The composite flips a chip may take.
u16 gSpire_ShardCells[]
#define EARTH_WALL_CELLS
Where each earth wall picture begins.
u16 gLobbedShells_ShardOffsets[]
struct Vector3 gBind_Vertex[]
The spinning triangle's first vertex, 24 up from its centre.
u8 gGatheringLights_Counts[][2]
Gathering lights (Demon Night, Rumble, Haunting), by mode: the lights per target and the frames befor...
u16 gDeathPlunge_Cells[]
u8 gDeathPlunge_CellHeights[]
u8 gCybele_ThornWidths[]
u8 gTargetMotes_GlintFlips[]
Glint orientations: none, and mirrored each way and both.
u8 gVolcano_Counts[]
How many pillars stand, by variant.
s8 gGrowth_ColumnOffsets[]
Each vine's root, across from the middle of the targets.
#define GLINT_FLIPS
The flips a glint may be drawn in: none, and mirrored each way and both.
u8 gTargetStrike_Heights[]
u8 gBattleFx_GlintCellHeights[]
#define FLAME_PUFF_CELL_BIAS_Y
How far below its anchor each cell's top goes.
u8 gGaia_MoundWidths[]
u8 gHail_ChipHeights[]
u8 gEruption_Counts[][3]
Motes, puffs of smoke and frames, for each variant.
u8 gHail_CellHeights[]
u8 gHail_ChipY[]
u8 gHelmSplitter_TwelveZ[]
u8 gVortices_Shapes[][3]
Whirlwind, by variant: the WHIRLWIND_ columns.
u8 gStatChange_ShardWidths[]
u8 gDjinnBeams_HeadHeights[]
s8 gStreaks_Tremble[]
Pixels the target trembles by, frame by frame.
u16 gPlasma_Sparks[][2]
Plasma, by variant: sparks per pillar and shake frames.
u8 gHelmSplitter_TwelveX[]
u8 gSpiderWeb_CellHeights[]
s32 gNereid_Gravity[]
Ember gravity while falling, by ember index & 3.
u8 gBolt_GlintModes[]
s8 gGrowth_X[]
#define FLAME_PUFF_CELL_HEIGHTS
heights
u8 gSpiderWeb_CellX[]
u16 gBoreas_RockCells[]
u8 gPrism_ShardStarts[][2]
Where each of the 16 shards starts in the crystal: x, then y.
u8 gBoreas_DebrisWidths[]
u8 gGrowth_Counts[]
Thorns by variant.
s8 gDeathPlunge_X[]
u8 gFire_FlareHeights[]
u8 gDeathPlunge_PieceStartX[]
u8 gBeams_CellReaches[]
u8 gFire_Counts[]
Embers by variant, at most FIRE_EMBERS (fire.c).
u16 gBattleFx_FlareCells[]
Flare cells: the first ten are squares 2x2 to 20x20, cell n (from 0) n + 1 pixels from its centre to ...
#define SLASH_CELL_HEIGHTS
and heights
u8 gLobbedShells_ShardHeights[]
u8 gBolt_GlintFlips[]
u8 gSpire_ShardOffsets[32][2]
Where each of a rock's 21 shards starts, x then y, before the rock's offset across.
u8 gGrowth_ThornPuffHeights[]
u16 gCybele_EmberSizes[]
u8 gSpire_ShardHeights[]
u16 gFrost_ChipCells[]
u16 gBoreas_FallCells[]
u8 gBattleFx_PuffSizes[]
Each puff cell's side.
u8 gGrowth_Kinds[]
u8 gCybele_ChipWidths[]
#define FLASH_FADE_CELLS
The flash picture for each three frames at the end of a flash's life.
u16 gCastingImpact_IceChipCells[]
The four ice chip cells, 8x8.
BattleFxHandler gBattleFx_EffectHandlers[BATTLE_FX_KIND_COUNT - 1]
The effect handlers, indexed by effect kind minus one, which BattleFx_RunTableEffect calls; kind zero...
u8 gPrism_ShardHeights[]
u8 gHelmSplitter_CellHeights[]
s32 gPrism_ShardOffsets[]
u8 gFalling_IceCounts[][2]
Ice, by variant: shards and frames (ICE_SHARD_COUNT, ICE_FRAMES).
u8 gJudgment_ShardWidths[]
u8 gProjectiles_CometHeights[]
Comet picture heights, by comet kind.
u16 gBattleFx_PuffCells[]
Nine square puff cells, read by the falling, frost, healing, Djinni heal and Boreas parts.
u8 gRay_Sparks[][2]
Sparks by variant; [1] is how many each bolt throws a frame.
u16 gDeathPlunge_PieceCells[]
u8 gNeptune_ObjectX[]
u16 gCybele_LeafOffsets[]
s32 gNeptune_Gravity[]
Spray gravity, by particle index & 3.
u8 gGrowth_PuffHeights[]
s16 gParticleStreams_OrbitPoints[][3]
The seven sparks that orbit the rising formation.
u8 gTargetStrike_Records[][7]
Each of the twelve target strike styles, by the TARGET_STRIKE_ columns (target_strike....
u16 gBoreas_SprayCells[]
u8 gCybele_LeafSizes[]
u8 gBattleFx_PuffArcCellBiasY[]
u8 gSpiderWeb_CellWidths[]
u16 gBattleFx_MoteCells[]
Mote cells: particle sheets hold ten, cell n (from 0) n + 1 pixels wide and twice that tall.
u16 gMirroredWall_Cells[]
u8 gPrism_Counts[][2]
Prism, by variant: crystals and frames.
u8 gGrowth_ColumnX[]
u8 gHelmSplitter_CellWidths[]
#define SLASH_CELL_WIDTHS
the six slash widths
u8 gDjinnBeams_HeadWidths[]
u8 gPlasma_Columns[][7]
Each pillar's canvas x, seven for each side.
#define SLASH_CELL_REACH
Each slash picture's reach from the target.
s8 gGrowth_PillarHeights[]
u8 gStars_Radii[]
struct Vector3 gBind_TriangleStrikeVertex[]
The striking triangle's first vertex, the same.
u8 gTiamat_StreakDrops[]
u8 gFrost_ChipWidths[]
u8 gFrost_ColumnSpots[][2]
Where each ice column stands: x, then the y of its foot.
u8 gBoreas_SprayWidths[]
u8 gPrism_ShardWidths[]
u16 gTargetStrike_Offsets[]
u8 gFrost_MoteHeights[]
u16 gSpiderWeb_Cells[]
u8 gFire_FlareBiasY[]
s32 gDrain_Gravities[]
Ice shards: shard i falls with gravity i & 3.
u8 gBattleFx_PuffArcCellWidths[]
u8 gDjinnAttacks_LaunchFrames[]
The frames on which the Djinni fires each of its five flames.
u8 gCondemn_PanelY[][7]
u8 gBeams_CellWidths[]
u16 gStatChange_ShardCells[]
u16 gPlasma_Shapes[][5]
The spark groups, by variant: the SPARK_GROUPS_ columns.
u8 gBoreas_BoulderHeights[]
u8 gJudgment_BurstHeights[]
u8 gVolcano_StartFrames[]
The frame each pillar starts.
u8 gProjectiles_Modes[][5]
Each projectile volley mode, by the PROJECTILE_VOLLEY_ columns (projectiles.c).
#define EARTH_WALL_CELL_WIDTHS
the earth wall's three widths
u8 gDeathPlunge_PieceHeights[]
u8 gQuake_Timings[][3]
Rock wall timing, by variant: frames in the effect, frames each pillar stands, and how far the screen...
s8 gGaia_Bg2Shifts[][3]
BG2's x shift, by side and variant.
u8 gCybele_ObjectPoses[][2]
Poses of objects 3 and 4 while they wave, three pairs.
u16 gJudgment_BurstCells[]
u16 gProjectiles_PelletOffsets[]
Ice chip pictures, by shot index & 3.
u16 gProcne_Cells[]
u8 gProcne_GridY[]
u8 gUnused_SheetHeights[]
u16 gFire_FlareCells[]
u8 gStatChange_ShardHeights[]
u16 gGrowth_VineCells[]
u8 gCybele_SparkSizes[]
s8 gHelmSplitter_CellBiasY[]
u16 gHelmSplitter_Cells[]
u8 gNereid_Columns[][2]
Nereid's four columns of fire (NEREID_COLUMN_X, NEREID_COLUMN_Y).
u8 gPlasma_Counts[]
How many pillars strike, by variant.
u8 gFrost_ChipHeights[]
u16 gUnused_SheetCells6[]
u8 gProcne_GridX[]
u8 gMirroredWall_CellWidths[]
u8 gVortices_Counts[][2]
Froth, by variant: motes and frames.
u8 gBolt_Counts[][4]
Bolt, by variant: sparks each bolt throws, glints a frame around each target, how far the glints spre...
u16 gFrost_ColumnCells[]
u8 gTargetStrike_Widths[]
u8 gProcne_CellWidths[]
u8 gDeathPlunge_PieceWidths[]
The 33 pieces of the TileAnimationMask picture: where each starts on the canvas, its size,...
u8 gBoreas_RockWidths[]
u16 gCybele_SparkOffsets[]
u8 gBoreas_Points[][2]
Rock and ice scene: where the rocks stand (and later the boulders, 56 pixels further left),...
u16 gBattleFx_GlintCells[]
u8 gFalling_Counts[][4]
Douse, by variant: the FALLING_BOLT_ columns.
u8 gFire_FlareWidths[]
u16 gProjectiles_FlashOffsets[]
u8 gGaia_LateRockColumns[]
The columns rock particles[16] to particles[21] take.
u16 gGaia_RowCells[]
s8 gDeathPlunge_Y[]
struct SpriteScale gAtalanta_UnitScale
Staged particle scale: Atalanta's formation objects keep this scale, one to one, throughout.
u8 gBoreas_FallWidths[]
u8 gJudgment_ShardHeights[]
u8 gDjinnBeams_MotePictures[]
The picture of each step of a mote's eight-step cycle.
#define BLAST_CELLS
Where each blast picture begins.
u16 gGaia_MoundCells[]
u16 gFrost_MoteCells[]
u8 gTargetStrike_Reach[]
u8 gHelmSplitter_ImpactBurstCellWidths[]
u8 gThor_TargetPalettes[]
The colours a target flashes when a bolt strikes it, chosen at random: white, black,...
u8 gGrowth_PillarWidths[]
u8 gTargetStrike_GlintDrawFlags[]
The flips a glint may be drawn in.
s8 gGrowth_ThornPuffWidths[]
u16 gHail_ChipCells[]
u16 gBoreas_DebrisCells[]
u16 gDjinnBeams_HeadOffsets[]
u8 gGrowth_ColumnCounts[]
u8 gDeathPlunge_CellWidths[]
u8 gGaia_MoundHeights[]
u8 gBattleFx_GlintCellWidths[]
u16 gProcne_Frames[]
u16 gParticleStreams_FlashSizes[]
#define FLAME_PUFF_CELL_WIDTHS
widths
u8 gProcne_CellBiasY[]
u8 gProcne_CellHeights[]
u8 gBoreas_Animations[]
The third object's animations from frame 209, one every 4 frames.
u8 gTiamat_StreakWidths[]
s8 gHelmSplitter_CellBiasX[]
u16 gCybele_EmberOffsets[]
s8 gStreaks_Records[][4]
Each streak style's animation, hit, motion and shake, by the STREAKS_ columns (streaks....
u8 gHelmSplitter_SmallEightX[]
u8 gCastingImpact_ImageY[]
u16 gUndeadSword_SparkSizes[]
u8 gBoreas_RockHeights[]
u16 gUndeadSword_SparkCells[]
u16 gEruption_PuffCells[]
u8 gKirin_Columns[]
u8 gRamses_ObjectRows[]
u8 gHail_ChipX[]
u8 gTitanBlade_FlashCells[]
The flash picture for each three frames at the end of a flash's life.
u16 gTiamat_StreakOffsets[]
u16 gGrowth_PillarCells[]
u8 gSpire_ShardWidths[]
u8 gBoreas_DebrisHeights[]
u8 gMirroredWall_CellHeights[]
#define BLAST_CELL_SIZES
The sides of the seven square pictures of a blast, a puff or a flash.
u8 gBeams_CellHeights[]
u16 gRamses_PuffSizes[]
u8 gTiamat_DropSizes[]
Ember sizes, by ember index & 3.
u16 gEruption_PuffSizes[]
u8 gTiamat_SparkPixels[]
A spark's 1x2 picture.
s8 gVolcano_Depths[][4]
Each pillar's depth, by variant.
u8 gThor_SmokeFlips[]
Flip flags for the smoke puffs, chosen at random.
u8 gProjectiles_FlashWidths[]
u8 gCastingImpact_GlintDrawFlags[]
The flips a glint may take, picked at random.
u8 gNeptune_ObjectY[]
u16 gHelmSplitter_ImpactBurstCells[]
u8 gTiamat_StreakHeights[]
s8 gLobbedShells_Records[]
Two bytes for each lobbed shell mode.
u8 gTargetStrike_ColumnStages[]
The column stage shown by each picture of a rise.
#define STRIKE_KIND_SLASH
sideways slashes
Definition effect_table.h:9
#define STRIKE_HEAVY
one heavy hit: a big shake and the target recoils
#define STRIKE_GLINTS
glints sparkle around the target
#define STRIKE_SMOKE
each hit raises smoke puffs from the target's feet
#define STRIKE_ABSORB
motes fly out of the target and back into the user
#define STRIKE_SPARKS
each hit scatters sparks
#define STRIKE_KIND_COLUMN
columns of light
void BattleFx_RunSmokeBomb(struct BattleEffectArgument *effect)
A fountain of grey motes and puffs of smoke bursts up beside the targets and falls back,...
Definition eruption.c:14
void BattleFx_RunBlast(struct BattleEffectArgument *effect)
A fountain of fire-coloured motes and puffs of smoke bursts up beside the targets and falls back,...
Definition eruption.c:21
void BattleFx_RunIce(struct BattleEffectArgument *effect)
Ice shards rain down diagonally onto the targets' side of the field and shatter into puffs of sparkle...
Definition falling.c:53
void BattleFx_RunDouse(struct BattleEffectArgument *effect)
Blue bolts streak down diagonally onto the targets' side of the field, each bursting into a fountain ...
Definition falling.c:280
void BattleFx_RunFire(struct BattleEffectArgument *effect)
Homing embers: embers burst from the top of the user two a frame, turn towards the targets 48 frames ...
Definition fire.c:26
void BattleFx_RunFlare(struct BattleEffectArgument *effect)
Flame arc: nine flames rise one after another, 4 frames apart, along a half circle,...
Definition flare.c:20
void BattleFx_RunGaia(struct BattleEffectArgument *effect)
Rising wall: the ground swells, a wall of rock rises from it, stands while rocks tumble up its face a...
Definition gaia.c:26
void BattleFx_RunRumble(struct BattleEffectArgument *effect)
Eight lights in Mars Djinn colours burst out of the user and are pulled into each target.
void BattleFx_RunDemonNight(struct BattleEffectArgument *effect)
Sixteen pink lights burst out of the user and are pulled into each target, with the heavy impact soun...
void BattleFx_RunHaunting(struct BattleEffectArgument *effect)
Twelve lights in Mercury Djinn colours burst out of the user and are pulled into each target.
void BattleFx_RunHail(struct BattleEffectArgument *effect)
Water burst: after a Mercury Djinni enters, ice chips burst out of the first target and waves rise al...
Definition hail.c:30
void BattleFx_RunGround(struct BattleEffectArgument *effect)
Venus Djinni rock toss: after a Venus Djinni enters, six rocks rise from the user shedding chips,...
Definition hail.c:187
void BattleFx_RunCure(struct BattleEffectArgument *effect)
Cure (mode 2): a ring of healing motes below each target closes in on it, in the blast sheet's colour...
Definition healing.c:40
void BattleFx_RunPsyCrystal(struct BattleEffectArgument *effect)
Psy Crystal: healing motes gather around each target in the Mars Djinni palette; with a prelude,...
Definition healing.c:72
void BattleFx_RunCurePoison(struct BattleEffectArgument *effect)
Cure Poison: sparkles twinkle around each target, four more a frame, and go out one by one instead of...
Definition healing.c:47
void BattleFx_RunPly(struct BattleEffectArgument *effect)
Ply: sparkles of light swirl around each target and close in on it, in the ice shard's or ice block's...
Definition healing.c:25
void BattleFx_RunTonic(struct BattleEffectArgument *effect)
Tonic (scattering style 5): sparkles twinkle around each target, turning on two axes,...
Definition healing.c:65
void BattleFx_RunWish(struct BattleEffectArgument *effect)
Wish (scattering style 1): healing motes tumble in from all around each target.
Definition healing.c:33
void BattleFx_RunHelmSplitter(struct BattleEffectArgument *effect)
The user leaps at the first target and strikes through a fire swirl; on frame 18 the target flashes a...
void BattleFx_RunMadSpatter(struct BattleEffectArgument *effect)
Gold shells that burst into shards.
void BattleFx_RunStickyPoison(struct BattleEffectArgument *effect)
Lime shells that burst into smoke.
void BattleFx_RunDecompose(struct BattleEffectArgument *effect)
Green shells that burst into smoke.
void BattleFx_RunBoneChiller(struct BattleEffectArgument *effect)
Blue shells that burst into smoke.
void BattleFx_RunStickyGoo(struct BattleEffectArgument *effect)
Shells in the spider web's colours that burst into smoke.
void BattleFx_RunRottenBlood(struct BattleEffectArgument *effect)
Green shells that burst into shards.
void BattleFx_RunPoisonInk(struct BattleEffectArgument *effect)
Shells in Mars Djinn colours that burst into smoke.
void BattleFx_RunRecovery(struct BattleEffectArgument *effect)
A wide wall of fire, without a shake.
void BattleFx_RunBerserk(struct BattleEffectArgument *effect)
The wall rises wide and shakes the screen hard.
void BattleFx_RunSpasm(struct BattleEffectArgument *effect)
The wall rises with a long gentle shake and the recovery sound.
void BattleFx_RunOuterSpace(struct BattleEffectArgument *effect)
The user leaps up, and two objects rise out of a dissolving starfield and burst into embers and flash...
void BattleFx_RunHaunt(struct BattleEffectArgument *effect)
Skulls close in on each target in turn.
void BattleFx_RunOrbitingSpirals(struct BattleEffectArgument *effect)
Four spirals circle 40 pixels above each target in turn, 16 frames apart, for 60 frames each,...
void BattleFx_RunPlanetDiver(struct BattleEffectArgument *effect)
The user flashes and leaps into the air, turns into a ball of fire, falls onto the first target and b...
void BattleFx_RunNova(struct BattleEffectArgument *effect)
Bursts at (60, 48), the canvas behind the battle's first layer (priority 1).
Definition plasma.c:198
void BattleFx_RunPlasma(struct BattleEffectArgument *effect)
Pillars of lightning strike one every 8 frames, each with a white flash, throwing sparks up from the ...
Definition plasma.c:38
void BattleFx_RunDynamite(struct BattleEffectArgument *effect)
Orange bursts at (60, 64), the canvas in front (priority 0).
Definition plasma.c:204
void BattleFx_RunPrism(struct BattleEffectArgument *effect)
Crystals drop out of the sky onto the targets' side, 8 frames apart, and shatter on the ground into 1...
Definition prism.c:27
void BattleFx_RunWingBeat(struct BattleEffectArgument *effect)
Ten small yellow sparks stream level at each target, one a frame.
void BattleFx_RunWingFlutter(struct BattleEffectArgument *effect)
Five yellow sparks fly level at each target, five frames apart.
void BattleFx_RunCuttingEdge(struct BattleEffectArgument *effect)
From the user's action pose, one large comet in ice colours flies at each target and bursts into 80 s...
void BattleFx_RunIceBlessing(struct BattleEffectArgument *effect)
Sixty ice chips stream at each target, one a frame, without knocking it back.
void BattleFx_RunSleet(struct BattleEffectArgument *effect)
Thirty ice chips fall from high above the user onto each target, without shaking the screen or knocki...
void BattleFx_RunHeatWave(struct BattleEffectArgument *effect)
From the user's action pose, seven fireballs trailing embers fly at each target, two frames apart,...
void BattleFx_RunSlash(struct BattleEffectArgument *effect)
Six comets fly at each target, three frames apart, and burst into a flash and sparks; the effect's va...
void BattleFx_RunBlizzard(struct BattleEffectArgument *effect)
From the user's action pose, sixty ice chips stream at each target, one a frame, scattered up and dow...
void BattleFx_RunCrazyVoice(struct BattleEffectArgument *effect)
Ten pellets fly slowly at each target and bounce off it, up or down at random.
void BattleFx_RunShuriken(struct BattleEffectArgument *effect)
Four spinning shurikens fly at each target, five frames apart, and vanish once past it.
void BattleFx_RunWingStroke(struct BattleEffectArgument *effect)
Ten large yellow sparks stream level at each target, one a frame, spread up and down.
void BattleFx_RunQuake(struct BattleEffectArgument *effect)
Rock wall: three rock pillars rise from the left, 4 frames apart, and sink again, throwing the target...
Definition quake.c:37
void BattleFx_RunRagnarok(struct BattleEffectArgument *effect)
A huge flaming blade swings down over the targets and two columns of light strike through them.
Definition ragnarok.c:33
void BattleFx_RunRay(struct BattleEffectArgument *effect)
Closing bolts: four bolts turn in towards the centre for 16 frames, scattering sparks from their root...
Definition ray.c:26
A sprite's screen position and scale.
void BattleFx_RunBoneCharge(struct BattleEffectArgument *effect)
Rushes the target and scatters sparks in the fire pillar palette.
void BattleFx_RunHeadbutt(struct BattleEffectArgument *effect)
Rushes the target and scatters sparks in the blast palette.
void BattleFx_RunOnslaught(struct BattleEffectArgument *effect)
Rushes the target and scatters sparks in the pink-burst palette.
void BattleFx_RunBruteForce(struct BattleEffectArgument *effect)
Rushes the target and scatters sparks in the ice-block palette.
void BattleFx_RunSpinningBeat(struct BattleEffectArgument *effect)
A magenta swipe that throws the target into the air.
Definition spider_web.c:22
void BattleFx_RunSpiderWeb(struct BattleEffectArgument *effect)
A spider web spreads over the targets, drawn as four mirrored 32x32 quarters around the point between...
Definition spider_web.c:145
void BattleFx_RunPoisonBeat(struct BattleEffectArgument *effect)
A lime swipe that knocks the target back.
Definition spider_web.c:16
void BattleFx_RunSpire(struct BattleEffectArgument *effect)
Shattering rocks: boulders drop along the row of targets, centred on it, and burst into tumbling shar...
Definition spire.c:23
void BattleFx_RunShiningStar(struct BattleEffectArgument *effect)
Eight spinning star outlines fall from 120 pixels above the user towards the first target,...
Definition stars.c:212
void BattleFx_RunAstralBlast(struct BattleEffectArgument *effect)
Three star-shaped rings of light fly from 40 pixels above the user at the first target,...
Definition stars.c:25
void BattleFx_RunGranite(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a violet streak in Venus colours.
Definition stat_change.c:30
void BattleFx_RunWard(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a shield in Jupiter colours.
Definition stat_change.c:24
void BattleFx_RunDull(struct BattleEffectArgument *effect)
Breaks the dagger picture into shards that fade through darker copies.
void BattleFx_RunZephyr(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a wisp without replacing its palette.
Definition stat_change.c:42
void BattleFx_RunImpair(struct BattleEffectArgument *effect)
A shield appears over each target and breaks into shards that fade through darker copies,...
void BattleFx_RunWeaken(struct BattleEffectArgument *effect)
A shield appears over each target and breaks into fading shards, in the pink burst's colours (style 2...
void BattleFx_RunFlash(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a violet streak in Mars colours.
Definition stat_change.c:36
void BattleFx_RunGuard(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a shield in Mars colours.
Definition stat_change.c:17
void BattleFx_RunImpact(struct BattleEffectArgument *effect)
Gathers stat-boost light and displays a dagger in Mars colours.
Definition stat_change.c:11
void BattleFx_RunWickedHowl(struct BattleEffectArgument *effect)
Red streaks.
Definition streaks.c:73
void BattleFx_RunSleepStar(struct BattleEffectArgument *effect)
Rising motes that drift onto the targets and strike.
Definition streaks.c:303
void BattleFx_RunBansheeHowl(struct BattleEffectArgument *effect)
Violet streaks.
Definition streaks.c:55
void BattleFx_RunShriek(struct BattleEffectArgument *effect)
Lime streaks.
Definition streaks.c:46
void BattleFx_RunSonicWave(struct BattleEffectArgument *effect)
Ember streaks.
Definition streaks.c:37
void BattleFx_RunSoothingStar(struct BattleEffectArgument *effect)
Rising healing motes.
Definition streaks.c:312
void BattleFx_RunWarCry(struct BattleEffectArgument *effect)
Cyan streaks.
Definition streaks.c:64
The command shared by an effect's caller, dispatcher and handlers.
Horizontal and vertical sprite scale; 0x10000 is the original size.
Three coordinates, x, y and z: a position, a velocity or a direction.
Definition vector3.h:11
void BattleFx_RunDelude(struct BattleEffectArgument *effect)
Cyan smoke that rises.
void BattleFx_RunParalyze(struct BattleEffectArgument *effect)
Rising smoke with glints.
void BattleFx_RunSleep(struct BattleEffectArgument *effect)
Twelve sheep drop onto the targets' side, one every 4 frames, tumbling through eight images (the last...
void BattleFx_RunHeartrender(struct BattleEffectArgument *effect)
Hearts.
void BattleFx_RunDemonFire(struct BattleEffectArgument *effect)
Glowing orbs in Mars Djinn colours, and the user strikes.
void BattleFx_RunMysticFlame(struct BattleEffectArgument *effect)
Glowing orbs.
void BattleFx_RunDrown(struct BattleEffectArgument *effect)
Vortex motes.
void BattleFx_RunTaint(struct BattleEffectArgument *effect)
Lime smoke (effect->variant 0) or pink smoke.
void BattleFx_RunCurse(struct BattleEffectArgument *effect)
A small flame burns above each target in turn, 16 frames apart, for 72 frames each,...
void BattleFx_RunDrainFang(struct BattleEffectArgument *effect)
Three additive columns that drain the target with large motes, Mars Djinn colours.
void BattleFx_RunElectricBite(struct BattleEffectArgument *effect)
Three lightning columns with glints.
void BattleFx_RunTwinBeaks(struct BattleEffectArgument *effect)
Two slashes with sparks, lightning colours.
void BattleFx_RunRabidFang(struct BattleEffectArgument *effect)
One column with smoke, Mars Djinn colours.
void BattleFx_RunAcidBite(struct BattleEffectArgument *effect)
Three pink columns with smoke.
void BattleFx_RunPoisonousBite(struct BattleEffectArgument *effect)
One lime column with smoke.
void BattleFx_RunPoisonTail(struct BattleEffectArgument *effect)
One lime slash with smoke.
void BattleFx_RunNumbingSting(struct BattleEffectArgument *effect)
One slash with glints, lightning colours.
void BattleFx_RunVampiricFang(struct BattleEffectArgument *effect)
Three columns that drain the target, Mars Djinn colours.
void BattleFx_RunDoubleFang(struct BattleEffectArgument *effect)
Two blue columns with sparks.
void BattleFx_RunCannibalFang(struct BattleEffectArgument *effect)
Three ember columns that drain the target into the user.
void BattleFx_RunMortalBlow(struct BattleEffectArgument *effect)
One heavy slash with sparks, Mars Djinn colours.
void BattleFx_RunSparkApproachVariant3(struct BattleEffectArgument *effect)
The user leaps at the first target, then a burst of 340 sparks rises beneath it and the canvas flashe...
Definition thrash.c:34
void BattleFx_RunThrash(struct BattleEffectArgument *effect)
The user leaps high at the first target, then a burst of 32 sparks rises beneath it.
Definition thrash.c:19
void BattleFx_RunVorpalSlash(struct BattleEffectArgument *effect)
The user steps up to the first target, four pictures flash across the effect layer,...
Definition thrash.c:53
void BattleFx_RunQuickStrike(struct BattleEffectArgument *effect)
The user leaps at the first target, four pictures flash across the effect layer, then it fills with o...
Definition thrash.c:45
void BattleFx_RunDragonDriver(struct BattleEffectArgument *effect)
The rising embers from the user's side, in the LightningBolt colours.
Definition tiamat.c:10
void BattleFx_RunTitanBlade(struct BattleEffectArgument *effect)
A huge sword drops onto the first target amid charging flashes, dust and sparks.
Definition titan_blade.c:33
void BattleFx_RunKite(struct BattleEffectArgument *effect)
Shows the extended Jupiter Djinni prelude over the first target, mirrored from the usual side; the Dj...
Definition torch.c:159
void BattleFx_RunTorch(struct BattleEffectArgument *effect)
A fiery disc fades in, its rings running outward while every scanline ripples, then fades out.
Definition torch.c:19
The integer types, TRUE, UNUSED and the fixed-address macros.
signed int s32
Definition types.h:14
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
void BattleFx_RunUndeadSword(struct BattleEffectArgument *effect)
Two mirrored columns of light rise at the first target's feet and sink again, scattering 16 sparks th...
@ BATTLE_FX_SMOKE_BOMB
Definition effect.h:182
@ BATTLE_FX_DELUDE
Definition effect.h:70
@ BATTLE_FX_RECOVERY
Definition effect.h:191
@ BATTLE_FX_WING_BEAT
Definition effect.h:135
@ BATTLE_FX_SPASM
Definition effect.h:175
@ BATTLE_FX_CURSE_354
Definition effect.h:181
@ BATTLE_FX_PSY_CRYSTAL
Definition effect.h:117
@ BATTLE_FX_HEAT_WAVE
Definition effect.h:95
@ BATTLE_FX_BIND
Definition effect.h:75
@ BATTLE_FX_ZEPHYR
Definition effect.h:121
@ BATTLE_FX_CURE_352
Definition effect.h:179
@ BATTLE_FX_BLIZZARD
Definition effect.h:99
@ BATTLE_FX_HAUNT
Definition effect.h:76
@ BATTLE_FX_EVIL_BLESSING
Definition effect.h:198
@ BATTLE_FX_DULL
Definition effect.h:64
@ BATTLE_FX_UNDEAD_SWORD
Definition effect.h:149
@ BATTLE_FX_MYSTIC_FLAME
Definition effect.h:141
@ BATTLE_FX_SOOTHING_STAR
Definition effect.h:171
@ BATTLE_FX_SLEEP_STAR
Definition effect.h:176
@ BATTLE_FX_GUST_310
Definition effect.h:139
@ BATTLE_FX_FREEBITE_RUSH
Definition effect.h:162
@ BATTLE_FX_GROWTH
Definition effect.h:41
@ BATTLE_FX_BANSHEE_HOWL
Definition effect.h:131
@ BATTLE_FX_QUICK_STRIKE
Definition effect.h:88
@ BATTLE_FX_CUTTING_EDGE
Definition effect.h:93
@ BATTLE_FX_ROTTEN_BLOOD
Definition effect.h:159
@ BATTLE_FX_ACID_BITE
Definition effect.h:165
@ BATTLE_FX_DECOMPOSE
Definition effect.h:177
@ BATTLE_FX_CURE
Definition effect.h:58
@ BATTLE_FX_RABID_FANG
Definition effect.h:164
@ BATTLE_FX_SLEET
Definition effect.h:110
@ BATTLE_FX_IMPACT
Definition effect.h:63
@ BATTLE_FX_DRAIN
Definition effect.h:79
@ BATTLE_FX_BREAK
Definition effect.h:80
@ BATTLE_FX_STICKY_GOO
Definition effect.h:144
@ BATTLE_FX_WARD
Definition effect.h:67
@ BATTLE_FX_GAIA
Definition effect.h:40
@ BATTLE_FX_DOUSE
Definition effect.h:46
@ BATTLE_FX_WICKED_HOWL
Definition effect.h:134
@ BATTLE_FX_THRASH
Definition effect.h:190
@ BATTLE_FX_BACTERIA_RUSH
Definition effect.h:157
@ BATTLE_FX_ASTRAL_BLAST
Definition effect.h:104
@ BATTLE_FX_BOLT
Definition effect.h:53
@ BATTLE_FX_THORN
Definition effect.h:42
@ BATTLE_FX_SLASH
Definition effect.h:56
@ BATTLE_FX_PRISM
Definition effect.h:45
@ BATTLE_FX_FROTH
Definition effect.h:47
@ BATTLE_FX_FLYING_ATTACK_329
Definition effect.h:158
@ BATTLE_FX_ORBITING_SPIRALS
no ability uses it
Definition effect.h:71
@ BATTLE_FX_ACID_BLESSING
Definition effect.h:196
@ BATTLE_FX_WING_STROKE
Definition effect.h:183
@ BATTLE_FX_DROWN
Definition effect.h:102
@ BATTLE_FX_WHIRLWIND
Definition effect.h:57
@ BATTLE_FX_FLARE
Definition effect.h:48
@ BATTLE_FX_ANNIHILATION
Definition effect.h:91
@ BATTLE_FX_BEAR_CLAW_342
Definition effect.h:169
@ BATTLE_FX_VINE
Definition effect.h:107
@ BATTLE_FX_ICE
Definition effect.h:44
@ BATTLE_FX_HEARTRENDER_346
Definition effect.h:173
@ BATTLE_FX_POISON_TAIL
Definition effect.h:154
@ BATTLE_FX_POISONOUS_BITE_323
Definition effect.h:152
@ BATTLE_FX_SHINING_STAR
Definition effect.h:98
@ BATTLE_FX_HELM_SPLITTER
Definition effect.h:87
@ BATTLE_FX_FROST
Definition effect.h:43
@ BATTLE_FX_KITE
Definition effect.h:122
@ BATTLE_FX_VOLCANO
Definition effect.h:50
@ BATTLE_FX_BONE_CHARGE
Definition effect.h:140
@ BATTLE_FX_IMPAIR
Definition effect.h:66
@ BATTLE_FX_REVIVE
Definition effect.h:62
@ BATTLE_FX_RUMBLE
Definition effect.h:137
@ BATTLE_FX_ONSLAUGHT
Definition effect.h:155
@ BATTLE_FX_OUTER_SPACE
Definition effect.h:186
@ BATTLE_FX_FIRE
Definition effect.h:49
@ BATTLE_FX_HAUNTING
Definition effect.h:178
@ BATTLE_FX_CURSE
Definition effect.h:78
@ BATTLE_FX_PLY_204
Definition effect.h:109
@ BATTLE_FX_SHURIKEN
Definition effect.h:90
@ BATTLE_FX_DEADLY_GAS
Definition effect.h:199
@ BATTLE_FX_GRANITE
Definition effect.h:105
@ BATTLE_FX_RAGNAROK
Definition effect.h:94
@ BATTLE_FX_GUST
Definition effect.h:124
@ BATTLE_FX_MARS
Definition effect.h:127
@ BATTLE_FX_DRAGON_CLOUD
Definition effect.h:85
@ BATTLE_FX_JUPITER
Definition effect.h:128
@ BATTLE_FX_VORPAL_SLASH
Definition effect.h:101
@ BATTLE_FX_IMPACT_210
Definition effect.h:115
@ BATTLE_FX_DEMON_FIRE
Definition effect.h:100
@ BATTLE_FX_NOVA
Definition effect.h:52
@ BATTLE_FX_RAY
Definition effect.h:54
@ BATTLE_FX_IMPACT_46
Definition effect.h:83
@ BATTLE_FX_HAIL
Definition effect.h:112
@ BATTLE_FX_QUAKE
Definition effect.h:38
@ BATTLE_FX_SHRIEK
Definition effect.h:130
@ BATTLE_FX_MORTAL_BLOW
Definition effect.h:161
@ BATTLE_FX_CURE_POISON
Definition effect.h:61
@ BATTLE_FX_BRUTE_FORCE
Definition effect.h:143
@ BATTLE_FX_WISH_44
Definition effect.h:81
@ BATTLE_FX_WING_FLUTTER
Definition effect.h:136
@ BATTLE_FX_DOUBLE_FANG
Definition effect.h:160
@ BATTLE_FX_REVIVE_201
Definition effect.h:106
@ BATTLE_FX_DARK_BLESSING
Definition effect.h:195
@ BATTLE_FX_HEARTRENDER
Definition effect.h:72
@ BATTLE_FX_PLY
Definition effect.h:59
@ BATTLE_FX_FLASH
Definition effect.h:118
@ BATTLE_FX_WARD_215
Definition effect.h:120
@ BATTLE_FX_FLYING_ATTACK
Definition effect.h:148
@ BATTLE_FX_DYNAMITE
Definition effect.h:166
@ BATTLE_FX_SPIDER_WEB
Definition effect.h:172
@ BATTLE_FX_GROUND
Definition effect.h:108
@ BATTLE_FX_FIRE_BLESSING
Definition effect.h:192
@ BATTLE_FX_WEAKEN
Definition effect.h:68
@ BATTLE_FX_SPIRE
Definition effect.h:39
@ BATTLE_FX_CANNIBAL_FANG
Definition effect.h:145
@ BATTLE_FX_GUARD
Definition effect.h:65
@ BATTLE_FX_RANSACK
Definition effect.h:150
@ BATTLE_FX_BIND_218
Definition effect.h:123
@ BATTLE_FX_TORCH
Definition effect.h:119
@ BATTLE_FX_TITAN_BLADE
Definition effect.h:97
@ BATTLE_FX_DEMON_NIGHT
Definition effect.h:86
@ BATTLE_FX_BEAR_CLAW
Definition effect.h:146
@ BATTLE_FX_POISON_BEAT
Definition effect.h:184
@ BATTLE_FX_IMPAIR_47
Definition effect.h:84
@ BATTLE_FX_ELECTRIC_BITE
Definition effect.h:153
@ BATTLE_FX_SPARK_APPROACH_VARIANT3
no ability uses it
Definition effect.h:189
@ BATTLE_FX_WAR_CRY
Definition effect.h:133
@ BATTLE_FX_BERSERK
Definition effect.h:180
@ BATTLE_FX_PLANET_DIVER
Definition effect.h:96
@ BATTLE_FX_SLEEP
Definition effect.h:74
@ BATTLE_FX_ICE_BLESSING
Definition effect.h:194
@ BATTLE_FX_VAMPIRIC_FANG
Definition effect.h:156
@ BATTLE_FX_PARALYZE
Definition effect.h:73
@ BATTLE_FX_SONIC_WAVE
Definition effect.h:129
@ BATTLE_FX_HEADBUTT
Definition effect.h:167
@ BATTLE_FX_GUARD_211
Definition effect.h:116
@ BATTLE_FX_VENUS
Definition effect.h:125
@ BATTLE_FX_DRAIN_FANG
Definition effect.h:188
@ BATTLE_FX_TONIC
Definition effect.h:113
@ BATTLE_FX_SPINNING_BEAT
Definition effect.h:185
@ BATTLE_FX_RANSACK_343
Definition effect.h:170
@ BATTLE_FX_TAINT
Definition effect.h:69
@ BATTLE_FX_DEATH_PLUNGE
Definition effect.h:89
@ BATTLE_FX_MERCURY
Definition effect.h:126
@ BATTLE_FX_CRAZY_VOICE
Definition effect.h:132
@ BATTLE_FX_CONDEMN
Definition effect.h:77
@ BATTLE_FX_TWIN_BEAKS
Definition effect.h:163
@ BATTLE_FX_PUNJI
Definition effect.h:92
@ BATTLE_FX_WATER_BLESSING
Definition effect.h:193
@ BATTLE_FX_PLASMA
Definition effect.h:55
@ BATTLE_FX_NUMBING_STING
Definition effect.h:142
@ BATTLE_FX_DRAGON_DRIVER
Definition effect.h:187
@ BATTLE_FX_BLAST
Definition effect.h:51
@ BATTLE_FX_MAD_SPATTER
Definition effect.h:174
@ BATTLE_FX_BONE_CHILLER
Definition effect.h:138
@ BATTLE_FX_POISONOUS_BITE
Definition effect.h:147
@ BATTLE_FX_WISH_45
Definition effect.h:82
@ BATTLE_FX_POISON_INK
Definition effect.h:168
@ BATTLE_FX_WISH
Definition effect.h:60
@ BATTLE_FX_DEW
Definition effect.h:114
@ BATTLE_FX_STICKY_POISON
Definition effect.h:151
@ BATTLE_FX_TRIANGLE_STRIKE
no ability uses it
Definition effect.h:103
@ BATTLE_FX_STORM_BLESSING
Definition effect.h:197
@ BATTLE_FX_WISH_206
Definition effect.h:111
@ BATTLE_FX_KIND_COUNT
one more than the last kind
Definition effect.h:200
void(*) BattleFxHandler(struct BattleEffectArgument *effect)
An effect handler: plays one effect over the battle, frame by frame, and returns when it is over.
Definition effect.h:33
Vector3, a three-coordinate vector.
void BattleFx_RunVolcano(struct BattleEffectArgument *effect)
One, two or four columns of fire (gVolcano_Counts by effect->variant) rise near the far edge on the t...
Definition volcano.c:36
void BattleFx_RunWhirlwind(struct BattleEffectArgument *effect)
Tornadoes sweep across the targets for 80 frames, sparkling with glints; the canvas flashes and the t...
Definition vortices.c:189
void BattleFx_RunFroth(struct BattleEffectArgument *effect)
Motes fly out of the top of the user, hang, and from 48 frames after each appears home in on the targ...
Definition vortices.c:36