Alchemy
Loading...
Searching...
No Matches

planet_diver.c File Reference

Planet Diver, Haunt and the orbiting spirals. More...

Go to the source code of this file.

Data Structures

struct  ImpactChip
 One chip of the impact, laid over the same 28-byte records as PARTICLES but with its velocities in other places than struct EffectStep's. More...

Macros

#define PLANET_DIVER_IMPACT_CHIPS   ((struct ImpactChip *)Ram_MapCellBuffer)
 Ram_MapCellBuffer seen as Planet Diver's chips.
#define PLANET_DIVER_FRAMES   88
#define PLANET_DIVER_CLEARED_CHIPS   1024
 map-buffer chip slots cleared first
#define PLANET_DIVER_CHIPS   256
 chips the fireball bursts into
#define HAUNT_SCATTERED   512
 skull slots scattered at the start
#define HAUNT_SKULLS   8
 skulls drawn around each target
#define HAUNT_SLOTS   64
 particles reserved for each target
#define ORBITING_SPIRALS_LIFE   60
 frames each target's spirals turn

Functions

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 bursts into chips that bounce on the ground.
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, 16 pixels out from the centre; each target takes its damage pose halfway through.

Detailed Description

Planet Diver, Haunt and the orbiting spirals.

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

Definition in file planet_diver.c.

Macro Definition Documentation

◆ PLANET_DIVER_IMPACT_CHIPS

#define PLANET_DIVER_IMPACT_CHIPS   ((struct ImpactChip *)Ram_MapCellBuffer)

Ram_MapCellBuffer seen as Planet Diver's chips.

Definition at line 36 of file planet_diver.c.

Referenced by BattleFx_RunPlanetDiver().

◆ PLANET_DIVER_FRAMES

#define PLANET_DIVER_FRAMES   88

Definition at line 38 of file planet_diver.c.

Referenced by BattleFx_RunPlanetDiver().

◆ PLANET_DIVER_CLEARED_CHIPS

#define PLANET_DIVER_CLEARED_CHIPS   1024

map-buffer chip slots cleared first

Definition at line 39 of file planet_diver.c.

Referenced by BattleFx_RunPlanetDiver().

◆ PLANET_DIVER_CHIPS

#define PLANET_DIVER_CHIPS   256

chips the fireball bursts into

Definition at line 40 of file planet_diver.c.

Referenced by BattleFx_RunPlanetDiver().

◆ HAUNT_SCATTERED

#define HAUNT_SCATTERED   512

skull slots scattered at the start

Definition at line 232 of file planet_diver.c.

Referenced by BattleFx_RunHaunt().

◆ HAUNT_SKULLS

#define HAUNT_SKULLS   8

skulls drawn around each target

Definition at line 233 of file planet_diver.c.

Referenced by BattleFx_RunHaunt().

◆ HAUNT_SLOTS

#define HAUNT_SLOTS   64

particles reserved for each target

Definition at line 234 of file planet_diver.c.

Referenced by BattleFx_RunHaunt().

◆ ORBITING_SPIRALS_LIFE

#define ORBITING_SPIRALS_LIFE   60

frames each target's spirals turn

Definition at line 366 of file planet_diver.c.

Referenced by BattleFx_RunOrbitingSpirals().

Function Documentation

◆ BattleFx_RunPlanetDiver()

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 bursts into chips that bounce on the ground.

Abilities: Planet Diver (kind 60).

88 frames. effect->side says which way the ball falls; actors[0] is where it lands.

Moves the user's object: it leaps on frame 4 and falls from frame 18. The flash's sheet and palette are replaced by the fireball's on frame 16.

Definition at line 52 of file planet_diver.c.

Referenced by BattleFx_RunPlanetDiver().

◆ BattleFx_RunHaunt()

void BattleFx_RunHaunt ( struct BattleEffectArgument * effect)

Skulls close in on each target in turn.

Abilities: Haunt (kind 39).

Around each target, 32 frames apart, eight skulls appear one every 4 frames, scattered up to 64 pixels away, and close in on a point 20 pixels above the target while the group spins; the target flashes 32 frames into its turn, and a skull that reaches the centre is no longer drawn. The effect layer ripples throughout. PARTICLES holds 64 skulls per target, of which the first 8 are used.

Adds BattleFx_ArmBg2AffineHBlankDma, which feeds the ripple in work->bg2xLines to BG2X line by line, and removes it before it returns.

Definition at line 249 of file planet_diver.c.

Referenced by BattleFx_RunHaunt().

◆ BattleFx_RunOrbitingSpirals()

void BattleFx_RunOrbitingSpirals ( struct BattleEffectArgument * effect)

Four spirals circle 40 pixels above each target in turn, 16 frames apart, for 60 frames each, 16 pixels out from the centre; each target takes its damage pose halfway through.

Abilities: none (kind 34).

The effect layer ripples throughout, through BattleFx_ArmBg2AffineHBlankDma, which it adds and removes. It never lets the battle show damage, and leaves the targets' flash timers alone.

Definition at line 377 of file planet_diver.c.

Referenced by BattleFx_RunOrbitingSpirals().