Alchemy
Loading...
Searching...
No Matches

vortices.c File Reference

Froth and Whirlwind. More...

Go to the source code of this file.

Macros

#define FROTH_MOTE_CELL   0xc00
 the mote picture in the sheet
#define FROTH_FIRST_TARGET   32
 the first target seat in work->particles
#define FROTH_MOTES   30
 The motes set up in work->particles, before the target seats: no row of gVortices_Counts may ask for more.
#define WHIRLWIND_TORNADO_CELLS   0xc56
 The tornado pictures follow the six glint cells (gBattleFx_GlintCells) in the sheet: 40x32 sections, the top and bottom ones' three frames interleaved, then the middle one's.
#define WHIRLWIND_SECTION_BYTES   (40 * 32)

Functions

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 targets in turn; each that reaches the ground strikes in a burst, flashing and knocking back its target, while the camera swings round over frames 17 to 63.
void BattleFx_RunWhirlwind (struct BattleEffectArgument *effect)
 Tornadoes sweep across the targets for 80 frames, sparkling with glints; the canvas flashes and the targets reel seven times, 8 frames apart, from frame 16, and the battle shows the damage on frame 32.

Detailed Description

Froth and Whirlwind.

Part of effect.c, the battle effect object, compiled only through it.

Definition in file vortices.c.

Macro Definition Documentation

◆ FROTH_MOTE_CELL

#define FROTH_MOTE_CELL   0xc00

the mote picture in the sheet

Definition at line 7 of file vortices.c.

Referenced by BattleFx_RunFroth().

◆ FROTH_FIRST_TARGET

#define FROTH_FIRST_TARGET   32

the first target seat in work->particles

Definition at line 8 of file vortices.c.

Referenced by BattleFx_RunFroth().

◆ FROTH_MOTES

#define FROTH_MOTES   30

The motes set up in work->particles, before the target seats: no row of gVortices_Counts may ask for more.

Definition at line 11 of file vortices.c.

Referenced by BattleFx_RunFroth().

◆ WHIRLWIND_TORNADO_CELLS

#define WHIRLWIND_TORNADO_CELLS   0xc56

The tornado pictures follow the six glint cells (gBattleFx_GlintCells) in the sheet: 40x32 sections, the top and bottom ones' three frames interleaved, then the middle one's.

Definition at line 16 of file vortices.c.

Referenced by BattleFx_RunWhirlwind().

◆ WHIRLWIND_SECTION_BYTES

#define WHIRLWIND_SECTION_BYTES   (40 * 32)

Definition at line 17 of file vortices.c.

Referenced by BattleFx_RunWhirlwind().

Function Documentation

◆ BattleFx_RunFroth()

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 targets in turn; each that reaches the ground strikes in a burst, flashing and knocking back its target, while the camera swings round over frames 17 to 63.

Abilities: Froth, Froth Sphere, Froth Spiral (kind 10).

effect->variant picks the volley from gVortices_Counts (motes and frames) and how hard the screen shakes.

work->particles 0 to 29 are the motes, battle positions in 16.16 until a mote strikes and then its burst's canvas pixels; from 32, one seat for each target. The first 30 bytes of Ram_MapCellBuffer mark the motes that have struck. Loads the vortex palette into the first 64 background colours, sets REG_BLDALPHA and work->shakeFrames, and turns the camera through Camera_ApplyPhasedDelta (work->cameraDelta and cameraPhase), which it removes before it returns.

Definition at line 36 of file vortices.c.

Referenced by BattleFx_RunFroth().

◆ BattleFx_RunWhirlwind()

void BattleFx_RunWhirlwind ( struct BattleEffectArgument * effect)

Tornadoes sweep across the targets for 80 frames, sparkling with glints; the canvas flashes and the targets reel seven times, 8 frames apart, from frame 16, and the battle shows the damage on frame 32.

Abilities: Whirlwind, Tornado, Tempest, Gale, Typhoon, Hurricane (kind 20).

effect->variant picks the shape from gVortices_Shapes: how many tornadoes, how far they sway and how hard the screen shakes.

work->particles 0 to 15 are the glints, four for each tornado (so at most four tornadoes), offsets in pixels from its top left. Loads the tornado palette into the first 64 background colours, fades the canvas in and out through REG_BLDALPHA and keeps work->shakeFrames at 1 so the screen shakes every frame.

Definition at line 189 of file vortices.c.

Referenced by BattleFx_RunWhirlwind().