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.
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.
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.
VenusLighthouseAerie_GetPlacements
const struct ScenePlacement *VenusLighthouseAerie_GetPlacements(void)
Returns the platforms, antagonists, companions and beacon effects.
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.
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.
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.
VenusLighthouseAerie_GetEvents
const struct SceneEvent *VenusLighthouseAerie_GetEvents(void)
Returns the pillar and confrontation triggers.
VenusLighthouseAerie_Initialize
s32 VenusLighthouseAerie_Initialize(void)
Restores the platforms and runs the scene selected by the arrival.
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.
VenusLighthouseAerie_EnterAndConfrontAntagonists
static void VenusLighthouseAerie_EnterAndConfrontAntagonists(void)
Brings the party onto the aerie and reveals the argument over Sheba.
Used by VenusLighthouseAerie_Initialize.
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.
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.
VenusLighthouseAerie_FlashActorPalette
static void VenusLighthouseAerie_FlashActorPalette(struct FieldActor *actor)
Flashes an actor palette and emits paired effects every fifteenth frame.
Used by Event_ConfrontSaturosAndMenardi.
VenusLighthouseAerie_CycleActorPalette
static void VenusLighthouseAerie_CycleActorPalette(struct FieldActor *actor)
Cycles the actor palette and emits paired effects every fifteenth frame.
Used by VenusLighthouseAerie_UpdateShebaPalette.
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.
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.
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.
VenusLighthouseAerie_CombineSaturosAndMenardi
static void VenusLighthouseAerie_CombineSaturosAndMenardi(void)
Shows the Venus Star lighting the beacon and the antagonists combining.
Used by VenusLighthouseAerie_Initialize.
VenusLighthouseAerie_FlashScreen
static void VenusLighthouseAerie_FlashScreen(void)
Flashes the object palette white, then restores the transformation colour.
Used by VenusLighthouseAerie_CombineSaturosAndMenardi.
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.
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.
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.
Actor_IsParked
static __inline__ s32 Actor_IsParked(struct FieldActor *actor)
Tests whether all three movement targets are unset.
Used by VenusLighthouseAerie_UpdateBeamActors.
VenusLighthouseAerie_UpdateBeamActors
static void VenusLighthouseAerie_UpdateBeamActors(void)
Pulses and slides Saturos and Menardi while their beam flags are active.
Used by VenusLighthouseAerie_CombineSaturosAndMenardi.
VenusLighthouseAerie_FinishSaturosAndMenardiBattle
static void VenusLighthouseAerie_FinishSaturosAndMenardiBattle(void)
Plays the antagonists' defeat, the party discussion and the beacon eruption.
Used by VenusLighthouseAerie_Initialize.
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.
VenusLighthouseAerie_StageShebasFall
static void VenusLighthouseAerie_StageShebasFall(void)
Stages the broken aerie for the fall sequence and the party escape.
Used by VenusLighthouseAerie_Initialize.
VenusLighthouseAerie_ShowSaturosAndMenardiFall
static void VenusLighthouseAerie_ShowSaturosAndMenardiFall(void)
Shows Saturos and Menardi falling into the beacon after their final defeat.
Used by VenusLighthouseAerie_FinishSaturosAndMenardiBattle.
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.
VenusLighthouseAerie_EruptBeacon
static void VenusLighthouseAerie_EruptBeacon(void)
Raises the beacon effects and splits the aerie beneath the group.
Used by VenusLighthouseAerie_FinishSaturosAndMenardiBattle.
VenusLighthouseAerie_RestorePartyOnBrokenAerie
static void VenusLighthouseAerie_RestorePartyOnBrokenAerie(void)
Places the party on the broken platform and resumes its falling effects.
Used by VenusLighthouseAerie_ShowShebaInDanger.
VenusLighthouseAerie_TryToPreventFall
static void VenusLighthouseAerie_TryToPreventFall(void)
Shows Felix urging Sheba to hold on at the edge of the platform.
Used by VenusLighthouseAerie_ShowShebaInDanger.
VenusLighthouseAerie_PlayShebasFall
static void VenusLighthouseAerie_PlayShebasFall(void)
Shows Sheba falling, Felix jumping after her and the party escaping.
Used by VenusLighthouseAerie_StageShebasFall.
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.
VenusLighthouseAerie_UpdateBeaconRise
static void VenusLighthouseAerie_UpdateBeaconRise(void)
Advances the beacon rise sequence, its flashes and orbiting particles.
Used by VenusLighthouseAerie_EruptBeacon.
VenusLighthouseAerie_AdvanceActorRise
static void VenusLighthouseAerie_AdvanceActorRise(struct FieldActor *actor)
Raises an enabled actor according to its gated rise counter.
Used by VenusLighthouseAerie_UpdateBeaconRise.
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.
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.
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.
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.