Alchemy

jupiter.c

A Jupiter Djinni joining the party.

games/tbs/src/object/psynergy_effects/jupiter.c on GitHub

A Jupiter Djinni joining the party. Part of psynergy_effects.c, compiled only through it.

Functions

Djinn_RunJupiterJoinEffect

void Djinn_RunJupiterJoinEffect(s32 djinniId)

A Jupiter Djinni joins the party: it bounces three times, spins, leaps out of sight and bursts into 24 light particles that circle and close in on the leader, who turns to the camera and plays animation 28. Called by Djinn_JoinParty for a Jupiter Djinni, which then clears the Djinni's actor slot; the Djinni's object is released here. Uses all 24 effect slots (BattleFx_InitializeSlots), tints the field palette and fades it back at the end.

Used by Djinn_JoinParty.

Line 14

BattleFx_SetObjectAlternatingWords

void BattleFx_SetObjectAlternatingWords(union FieldObject *fieldObject)

Per-frame update: makes an object pulse, switching its scale between the two values of gBattleFx_PulseScales every 4 frames. The Mars Djinni's joining sets it on the leader, and clears it to end the pulse.

Used by Djinn_RunMarsJoinEffect.

Line 93

BattleFx_AdvanceAngleWithRamp

void BattleFx_AdvanceAngleWithRamp(union FieldObject *fieldObject)

Per-frame update: spins an object ever faster, from 1/16 turn a frame up to just over 1/8 (0x2040), 0x50 more each frame for 52 frames. The caller zeroes the frame count first (FieldActor.timer), as the Mars Djinni's joining does.

Used by Djinn_RunMarsJoinEffect.

Line 106

Also, functions without a comment: BattleEffect_UpdatePhasedRadialParticle.

Structures

RampedSpinObject

struct RampedSpinObject

A spinning object: its angle, and at 0x64 the frames its spin has been speeding up for (BattleFx_AdvanceAngleWithRamp), read signed.

FieldDeclared as
unk00u8 unk00[6]
angleu16 angle
unk08u8 unk08[0x5c]
rampFramess16 rampFrames

Used by BattleFx_AdvanceAngleWithRamp.

Line 83

On this page