eruption.c
Smoke Bomb and Blast.
games/tbs/src/effect/parts/eruption.c on GitHub
Smoke Bomb and Blast. Part of effect.c, the battle effect object, compiled only through it.
Functions
BattleFx_RunSmokeBomb
void BattleFx_RunSmokeBomb(struct BattleEffectArgument *effect)
A fountain of grey motes and puffs of smoke bursts up beside the targets and falls back, flashing each target.
Abilities: Smoke Bomb, Sleep Bomb (kind 380).
It always uses the second row of gEruption_Counts: 32 motes, 16 puffs, 80 frames.
Used by gBattleFx_EffectHandlers.
BattleFx_RunBlast
void BattleFx_RunBlast(struct BattleEffectArgument *effect)
A fountain of fire-coloured motes and puffs of smoke bursts up beside the targets and falls back, flashing each target and making it recoil.
Abilities: Blast, Mad Blast, Fiery Blast (kind 14).
Used by gBattleFx_EffectHandlers.
BattleFx_RunEruption
void BattleFx_RunEruption(struct BattleEffectArgument *effect, s32 mode)
A fountain of motes and puffs of smoke bursts up beside the targets and falls back, hitting the targets one frame apart from frame 6.
Called by BattleFx_RunBlast (mode 0) and BattleFx_RunSmokeBomb (mode 1). A sound and a 6-frame screen shake start on frame 2, and the battle shows the damage 48 frames before the end. Writes the first 64 BG colours, sets work->shakeFrames, and ends with the transfer callback removed, the blitter freed and the canvas layer closed.
effect: the targets.
mode: 0 burns (the fire streak palette, the effect's variant picks the
counts, and the targets recoil); 1 is grey (a ramp of greys,
variant 1's counts).Used by BattleFx_RunBlast, BattleFx_RunSmokeBomb.
BattleFx_SpawnObjects
void BattleFx_SpawnObjects(s32 entryCount, s32 source, u32 priority)
Creates the effect's animation objects in gBattleFxWork's objects.
Called by the summon scenes (Ramses, Nereid, Kirin, Atalanta, Cybele, Neptune, Tiamat, Procne, Boreas, Thor), Judgment and the particle streams. Fills work->objects[0] to [entryCount - 1]: object n plays animation n, with its flags cleared and its sprite priority set. A slot whose object could not be created is left NULL.
entryCount: how many objects to create. source: the resource object every one of them is made from. priority: the sprite priority they take.
Used by BattleFx_RunAtalanta, BattleFx_RunBoreas, BattleFx_RunCybele, BattleFx_RunJudgment, BattleFx_RunKirin, BattleFx_RunNeptune, BattleFx_RunNereid, BattleFx_RunPaletteParticles, BattleFx_RunParticleStreams, BattleFx_RunProcne, BattleFx_RunRamses, BattleFx_RunThor.
BattleFx_DoNothing
void BattleFx_DoNothing(void)
Does nothing. BattleFx_CallDoNothing calls it in a loop, 10000 times for Annihilation, a busy wait.
Used by BattleFx_CallDoNothing.
Macros
ERUPTION_FIELD_MOTE_CELLS
#define ERUPTION_FIELD_MOTE_CELLS 0x3200
The mote pictures in the sheet: two sets, MOTE_SET_BYTES apart.
Used by BattleFx_RunEruption.