Alchemy

venus_lighthouse_aerie.c

Venus Lighthouse's aerie: the pillars the leader jumps between, the Shaman's Rod handed over for Sheba, and the battle with Saturos and Menardi, who fuse.

games/tbs/src/scene/venus_lighthouse_aerie.c on GitHub

Venus Lighthouse's aerie: the pillars the leader jumps between, the Shaman's Rod handed over for Sheba, and the battle with Saturos and Menardi, who fuse.

Functions

VenusLighthouseAerie_PulseActorScale

static s32 VenusLighthouseAerie_PulseActorScale(struct ScriptInterpreter *interpreter)

Pulses the actor scale around the countdown, then chooses its next pause.

Used by gVenusLighthouseAerie_ScaleStepAction.

Line 111

VenusLighthouseAerie_UpdateDriftingParticle

static void VenusLighthouseAerie_UpdateDriftingParticle(union FieldObject *object)

Moves a particle, damps its horizontal velocity and updates its scale and spin.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi.

Line 145

VenusLighthouseAerie_StepSpriteRotation

static void VenusLighthouseAerie_StepSpriteRotation(union FieldObject *fieldObject)

Turns the falling actor sprite until its rotation leaves the negative half-turn.

Used by VenusLighthouseAerie_PlayShebasFall.

Line 163

VenusLighthouseAerie_GetPlacements

const struct ScenePlacement *VenusLighthouseAerie_GetPlacements(void)

Returns the platforms, antagonists, companions and beacon effects.

Line 190

Event_JumpToNextPillar

static void Event_JumpToNextPillar(void)

Walking off the edge of a pillar: if the ground two tiles ahead is clear, the leader jumps across to it.

Used by gVenusLighthouseAerieEvents.

Line 199

Event_LandOnPillar

static void Event_LandOnPillar(void)

Landing on a pillar: it dips under the leader and springs back up. FLAG_SCENE_TEMP_50 is set while the leader stands on a pillar, so this runs once per landing.

Used by gVenusLighthouseAerieEvents.

Line 238

Event_SteadyPillars

static void Event_SteadyPillars(void)

Stepping back onto the floor, and before each jump: the leader walks and falls normally again and the six pillars stand still.

Used by Event_JumpToNextPillar, gVenusLighthouseAerieEvents.

Line 278

VenusLighthouseAerie_GetEvents

const struct SceneEvent *VenusLighthouseAerie_GetEvents(void)

Returns the pillar and confrontation triggers.

Line 293

VenusLighthouseAerie_Initialize

s32 VenusLighthouseAerie_Initialize(void)

Restores the platforms and runs the scene selected by the arrival.

Line 298

VenusLighthouseAerie_FaceActor

static void VenusLighthouseAerie_FaceActor(s32 actor, s32 facing)

Turns one actor and waits ten frames.

Used by Event_ConfrontSaturosAndMenardi, VenusLighthouseAerie_CombineSaturosAndMenardi, VenusLighthouseAerie_DiscussSaturosAndMenardiDefeat, VenusLighthouseAerie_EnterAndConfrontAntagonists, VenusLighthouseAerie_PlayShebasFall.

Line 381

VenusLighthouseAerie_EnterAndConfrontAntagonists

static void VenusLighthouseAerie_EnterAndConfrontAntagonists(void)

Brings the party onto the aerie and reveals the argument over Sheba.

Used by VenusLighthouseAerie_Initialize.

Line 386

VenusLighthouseAerie_ShowPartyMember

static void VenusLighthouseAerie_ShowPartyMember(s32 actorId, s32 shown)

Shows or hides one companion, setting its movement speed when shown.

Used by VenusLighthouseAerie_EnterAndConfrontAntagonists.

Line 671

Event_ConfrontSaturosAndMenardi

static void Event_ConfrontSaturosAndMenardi(void)

Walking up to Saturos and Menardi: they promise not to harm Sheba for the Shaman's Rod, Felix carries it over, they will not let her go, and the battle begins.

Used by gVenusLighthouseAerieEvents.

Line 689

VenusLighthouseAerie_FlashActorPalette

static void VenusLighthouseAerie_FlashActorPalette(struct FieldActor *actor)

Flashes an actor palette and emits paired effects every fifteenth frame.

Used by Event_ConfrontSaturosAndMenardi.

Line 1101

VenusLighthouseAerie_CycleActorPalette

static void VenusLighthouseAerie_CycleActorPalette(struct FieldActor *actor)

Cycles the actor palette and emits paired effects every fifteenth frame.

Used by VenusLighthouseAerie_UpdateShebaPalette.

Line 1113

VenusLighthouseAerie_SpawnLinkedPairEffects

static void VenusLighthouseAerie_SpawnLinkedPairEffects(struct FieldActor *parent)

Spawns two vertical effects using the parent position and shared cached tiles.

Used by VenusLighthouseAerie_CycleActorPalette, VenusLighthouseAerie_FlashActorPalette.

Line 1127

VenusLighthouseAerie_AimBurst

static inline void VenusLighthouseAerie_AimBurst(s32 velocity[3], s32 angle)

Builds the horizontal velocity for an elliptical radial particle burst.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi.

Line 1185

VenusLighthouseAerie_ShowGroupEmote

static inline void VenusLighthouseAerie_ShowGroupEmote(s32 emote, s32 waitFrames)

Gives Felix, Sheba and the party the same reaction, then waits after Mia.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi.

Line 1200

VenusLighthouseAerie_CombineSaturosAndMenardi

static void VenusLighthouseAerie_CombineSaturosAndMenardi(void)

Shows the Venus Star lighting the beacon and the antagonists combining.

Used by VenusLighthouseAerie_Initialize.

Line 1211

VenusLighthouseAerie_FlashScreen

static void VenusLighthouseAerie_FlashScreen(void)

Flashes the object palette white, then restores the transformation colour.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi.

Line 1748

VenusLighthouseAerie_UpdateUpperOrbit

static void VenusLighthouseAerie_UpdateUpperOrbit(union FieldObject *fieldObject)

Orbits a particle around the upper beam and keeps its target at that position.

Used by VenusLighthouseAerie_SpawnUpperOrbitParticles.

Line 1760

VenusLighthouseAerie_UpdateRisingOrbit

static void VenusLighthouseAerie_UpdateRisingOrbit(union FieldObject *fieldObject)

Orbits a particle around the rising beam using its rise counter as a radius.

Used by VenusLighthouseAerie_UpdateBeaconRise.

Line 1775

VenusLighthouseAerie_SpawnUpperOrbitParticles

static void VenusLighthouseAerie_SpawnUpperOrbitParticles(void)

Emits rising particles around the upper beam at the current beacon stage.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi, VenusLighthouseAerie_EruptBeacon, VenusLighthouseAerie_ShowSaturosAndMenardiFall.

Line 1804

Actor_IsParked

static __inline__ s32 Actor_IsParked(struct FieldActor *actor)

Tests whether all three movement targets are unset.

Used by VenusLighthouseAerie_UpdateBeamActors.

Line 1843

VenusLighthouseAerie_UpdateBeamActors

static void VenusLighthouseAerie_UpdateBeamActors(void)

Pulses and slides Saturos and Menardi while their beam flags are active.

Used by VenusLighthouseAerie_CombineSaturosAndMenardi.

Line 1852

VenusLighthouseAerie_FinishSaturosAndMenardiBattle

static void VenusLighthouseAerie_FinishSaturosAndMenardiBattle(void)

Plays the antagonists' defeat, the party discussion and the beacon eruption.

Used by VenusLighthouseAerie_Initialize.

Line 1897

VenusLighthouseAerie_ShowShebaInDanger

static void VenusLighthouseAerie_ShowShebaInDanger(void)

A look back from the world map: Felix cries out as Sheba clings to the broken aerie, then the world map returns with its music still playing.

Used by VenusLighthouseAerie_Initialize.

Line 1907

VenusLighthouseAerie_StageShebasFall

static void VenusLighthouseAerie_StageShebasFall(void)

Stages the broken aerie for the fall sequence and the party escape.

Used by VenusLighthouseAerie_Initialize.

Line 1923

VenusLighthouseAerie_ShowSaturosAndMenardiFall

static void VenusLighthouseAerie_ShowSaturosAndMenardiFall(void)

Shows Saturos and Menardi falling into the beacon after their final defeat.

Used by VenusLighthouseAerie_FinishSaturosAndMenardiBattle.

Line 2009

VenusLighthouseAerie_DiscussSaturosAndMenardiDefeat

static void VenusLighthouseAerie_DiscussSaturosAndMenardiDefeat(void)

Lets the party discuss the battle while Felix and Sheba remain on the aerie.

Used by VenusLighthouseAerie_FinishSaturosAndMenardiBattle.

Line 2112

VenusLighthouseAerie_EruptBeacon

static void VenusLighthouseAerie_EruptBeacon(void)

Raises the beacon effects and splits the aerie beneath the group.

Used by VenusLighthouseAerie_FinishSaturosAndMenardiBattle.

Line 2227

VenusLighthouseAerie_RestorePartyOnBrokenAerie

static void VenusLighthouseAerie_RestorePartyOnBrokenAerie(void)

Places the party on the broken platform and resumes its falling effects.

Used by VenusLighthouseAerie_ShowShebaInDanger.

Line 2435

VenusLighthouseAerie_TryToPreventFall

static void VenusLighthouseAerie_TryToPreventFall(void)

Shows Felix urging Sheba to hold on at the edge of the platform.

Used by VenusLighthouseAerie_ShowShebaInDanger.

Line 2510

VenusLighthouseAerie_PlayShebasFall

static void VenusLighthouseAerie_PlayShebasFall(void)

Shows Sheba falling, Felix jumping after her and the party escaping.

Used by VenusLighthouseAerie_StageShebasFall.

Line 2534

VenusLighthouseAerie_StopActorMotion

static void VenusLighthouseAerie_StopActorMotion(struct FieldActor *actor)

Clears all movement targets and velocities and resets the actor timer.

Used by VenusLighthouseAerie_AdvanceActorRise, VenusLighthouseAerie_CombineSaturosAndMenardi, VenusLighthouseAerie_EruptBeacon, VenusLighthouseAerie_PlayShebasFall, VenusLighthouseAerie_RestorePartyOnBrokenAerie, VenusLighthouseAerie_StageShebasFall, VenusLighthouseAerie_UpdateBeaconRise.

Line 2844

VenusLighthouseAerie_UpdateBeaconRise

static void VenusLighthouseAerie_UpdateBeaconRise(void)

Advances the beacon rise sequence, its flashes and orbiting particles.

Used by VenusLighthouseAerie_EruptBeacon.

Line 2855

VenusLighthouseAerie_AdvanceActorRise

static void VenusLighthouseAerie_AdvanceActorRise(struct FieldActor *actor)

Raises an enabled actor according to its gated rise counter.

Used by VenusLighthouseAerie_UpdateBeaconRise.

Line 2974

VenusLighthouseAerie_SpawnSideOrbitParticles

static void VenusLighthouseAerie_SpawnSideOrbitParticles(void)

Emits particles beside the lower beam and links each to its source actor.

Used by VenusLighthouseAerie_RestorePartyOnBrokenAerie, VenusLighthouseAerie_StageShebasFall.

Line 2991

VenusLighthouseAerie_UpdateOrbitingEffect

static void VenusLighthouseAerie_UpdateOrbitingEffect(union FieldObject *object)

Moves a linked particle along its horizontal ellipse and preserves its target.

Used by VenusLighthouseAerie_SpawnSideOrbitParticles.

Line 3044

Also, functions without a comment: VenusLighthouseAerie_GetEntrances, VenusLighthouseAerie_GetRegions, VenusLighthouseAerie_GetExits, VenusLighthouseAerie_ShowMessage, VenusLighthouseAerie_UpdateShebaPalette.

Macros

FLAG_SHAMANS_ROD_OWNER

#define FLAG_SHAMANS_ROD_OWNER 0x345

Plus the party member (0 to 3) who carried the Shaman's Rod when it was handed over before the aerie's first battle; a defeat gives it back.

Used by Event_ConfrontSaturosAndMenardi, VenusLighthouseAerie_Initialize.

Line 71

Also, macros without a comment: NULL.

Globals, without a comment: sTransitionTimer, sTransitionStep, gEffectScript0, gEffectScript1, gEffectScript2, gEffectScripts, gVenusLighthouseAerie_PairActionScript, gSceneAction_EntryGroup, gSceneAction_EntryPair, gVenusLighthouseAerie_ScaleStepAction, gVenusLighthouseAerie_BeamOpenAction, gVenusLighthouseAerie_BeamNarrowAction, gVenusLighthouseAerie_BeamRiseAction, gVenusLighthouseAerie_BeamCloseAction, gVenusLighthouseAerie_BeamEndAction, gVenusLighthouseAerie_OrbitParticleScript, gVenusLighthouseAerie_RiseParticleScript, gVenusLighthouseAerie_WalkOutAction, gVenusLighthouseAerie_RiseActionScript, gVenusLighthouseAerie_StepBackAction, gVenusLighthouseAerie_LeapAction, gVenusLighthouseAerie_PartyExitAction, gVenusLighthouseAerie_PartyHeadingAction, gVenusLighthouseAerieEntrances, gVenusLighthouseAerieExits, gVenusLighthouseAeriePlacements, gVenusLighthouseAerie_NearestActor, gVenusLighthouseAerieEvents, gVenusLighthouseAerie_BesideParticleScript.

On this page