Alchemy

sol_sanctum_eruption.c

Sol Sanctum collapsing as the volcano erupts: Saturos and his group take Jenna and Kraden away, and the Wise One rescues Isaac and Garet.

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

Sol Sanctum collapsing as the volcano erupts: Saturos and his group take Jenna and Kraden away, and the Wise One rescues Isaac and Garet.

Functions

SolSanctumEruption_GetPlacements

const struct ScenePlacement *SolSanctumEruption_GetPlacements(void)

Returns Garet and Jenna, then the departure glow (actor 8), Kraden, Saturos, Menardi, Felix masked and unmasked, Alex, the Wise One (15) and sixteen rocks (16 to 31), all placed off the map until the cutscene moves them.

Line 94

SolSanctumEruption_GetEvents

const struct SceneEvent *SolSanctumEruption_GetEvents(void)

Returns the empty event table: the scene is one cutscene.

Line 99

SolSanctumEruption_PlaceHostageGroup

static inline void SolSanctumEruption_PlaceHostageGroup(void)

Stages Saturos, Menardi, Alex and Felix around Jenna and Kraden.

Used by SolSanctumEruption_PlayHostageScene.

Line 104

SolSanctumEruption_PlayHostageScene

static void SolSanctumEruption_PlayHostageScene(void)

Saturos's group argues over the Mars Star and leaves with Jenna and Kraden as hostages, before the Wise One rescues Isaac and Garet. Called by SolSanctumEruption_Initialize at entrance 10, the arrival from the Elemental Star room. Sets FLAG_SCENE_TEMP_46, plays SolSanctumEruption_PlayWiseOneRescue and then removes Jenna from the party.

Used by SolSanctumEruption_Initialize.

Line 118

SolSanctumEruption_RaiseAndShrinkActor

static void SolSanctumEruption_RaiseAndShrinkActor(s32 actorId)

Lifts one departing actor and shrinks it together with the paired effect.

Used by SolSanctumEruption_PlayHostageScene.

Line 519

SolSanctumEruption_Initialize

s32 SolSanctumEruption_Initialize(void)

Plays the eruption at entrance 10, the arrival from the Elemental Star room. Called by Field_RunScene once the actors exist.

Line 566

SolSanctumEruption_AlignEmberToHeading

static s32 SolSanctumEruption_AlignEmberToHeading(struct ScriptInterpreter *interpreter)

Keeps a flying ember sprite rotated a quarter-turn from its facing. Run by each ember's object script, gEruption_EmberScript.

Used by gEruption_EmberScript.

Line 576

SolSanctumEruption_ThrowEruptionRing

static void SolSanctumEruption_ThrowEruptionRing(void)

Launches sixteen rocks outward, then resets their actors for ember emission.

Used by SolSanctumEruption_PlayHostageScene.

Line 584

SolSanctumEruption_ResetEmberEmission

static void SolSanctumEruption_ResetEmberEmission(void)

Resets the sixteen ember slots and their emission timers.

Used by SolSanctumEruption_PlayHostageScene.

Line 637

SolSanctumEruption_StepEmbers

static void SolSanctumEruption_StepEmbers(void)

Retires landed embers and launches the next free one at the current frequency, shaking the map after each. Run each frame as a callback that SolSanctumEruption_PlayHostageScene adds and SolSanctumEruption_PlayWiseOneRescue removes.

Used by SolSanctumEruption_PlayHostageScene, SolSanctumEruption_PlayWiseOneRescue.

Line 655

SolSanctumEruption_UpdateEmberFrequency

static void SolSanctumEruption_UpdateEmberFrequency(void)

Varies the ember emission interval and its duration. Run each frame as a callback beside SolSanctumEruption_StepEmbers.

Used by SolSanctumEruption_PlayHostageScene, SolSanctumEruption_PlayWiseOneRescue.

Line 746

SolSanctumEruption_FinishMaterialization

static inline void SolSanctumEruption_FinishMaterialization(void)

Ends the Wise One's palette animation and clears its attached effect.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 780

SolSanctumEruption_PlayWiseOneRescue

static void SolSanctumEruption_PlayWiseOneRescue(void)

Left behind, Isaac and Garet face the Wise One, who makes the Mars Star glow, warns them of Alchemy's threat and sends them out as the volcano erupts. Isaac keeps the Star. Called by SolSanctumEruption_PlayHostageScene. Sets FLAG_SOL_SANCTUM_ERUPTED and FLAG_SOL_SANCTUM_STAR_ROOM_COLLAPSED and takes exit 5, to the Luna and Sol rooms (scene 11, entrance 8).

Used by SolSanctumEruption_PlayHostageScene.

Line 792

SolSanctumEruption_PlaceBeforeStar

static void SolSanctumEruption_PlaceBeforeStar(s32 actor)

Places an actor before the star, facing south, and draws it above the chamber floor.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1454

SolSanctumEruption_DrawFirstCollapseTiles

static void SolSanctumEruption_DrawFirstCollapseTiles(s32 alternate)

Selects the first collapsing tile patch and redraws the map.

Used by SolSanctumEruption_FlickerFirstCollapseTiles, SolSanctumEruption_PlayWiseOneRescue.

Line 1464

SolSanctumEruption_DrawSecondCollapseTiles

static void SolSanctumEruption_DrawSecondCollapseTiles(s32 alternate)

Selects the second collapsing tile patch and redraws the map.

Used by SolSanctumEruption_FlickerSecondCollapseTiles, SolSanctumEruption_PlayWiseOneRescue.

Line 1483

SolSanctumEruption_FlickerFirstCollapseTiles

static void SolSanctumEruption_FlickerFirstCollapseTiles(void)

Randomly alternates the first tile patch on even frames. Run each frame as a callback while the floor breaks up, until the Wise One holds it.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1500

SolSanctumEruption_FlickerSecondCollapseTiles

static void SolSanctumEruption_FlickerSecondCollapseTiles(void)

Randomly alternates the second tile patch on even frames, as the first.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1511

SolSanctumEruption_RaiseElementalArcs

static void SolSanctumEruption_RaiseElementalArcs(u32 mode)

Stages and raises ten arc effects at one of the four chamber positions.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1522

SolSanctumEruption_UpdateElementalArcs

static void SolSanctumEruption_UpdateElementalArcs(void)

Stretches each active arc for eight frames, then lifts it out of view. Run each frame as a callback while SolSanctumEruption_RaiseElementalArcs runs.

Used by SolSanctumEruption_RaiseElementalArcs.

Line 1632

SolSanctumEruption_FadeCameraTo

static void SolSanctumEruption_FadeCameraTo(s32 x, s32 z)

Fades out, moves the camera and its focus actor, then fades back in.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1661

SolSanctumEruption_RestoreCornerCellAttributes

static void SolSanctumEruption_RestoreCornerCellAttributes(void)

Restores eight corner-cell attributes from the chamber templates.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1686

SolSanctumEruption_SetMaterializationTint

static void SolSanctumEruption_SetMaterializationTint(s32 enabled, s32 frames, s32 waitFrames)

Fades the object palette into or out of the materialization tint.

Used by SolSanctumEruption_PlayHostageScene, SolSanctumEruption_PlayWiseOneRescue.

Line 1699

SolSanctumEruption_FlashMaterializingActor

static void SolSanctumEruption_FlashMaterializingActor(struct FieldActor *actor)

Flashes the palette and spawns paired vertical effects every sixteen frames.

Used by SolSanctumEruption_PlayWiseOneRescue.

Line 1715

SolSanctumEruption_CycleActorPalette

static void SolSanctumEruption_CycleActorPalette(struct FieldActor *actor)

Cycles six palettes while spawning the actor's vertical effects.

Used by SolSanctumEruption_UpdateWiseOnePalette.

Line 1728

SolSanctumEruption_SpawnEffectPair

static void SolSanctumEruption_SpawnEffectPair(struct FieldActor *parent)

Creates two vertical effects sharing the parent position and cached tiles.

Used by SolSanctumEruption_CycleActorPalette, SolSanctumEruption_FlashMaterializingActor.

Line 1741

SolSanctumEruption_UpdateWiseOnePalette

static void SolSanctumEruption_UpdateWiseOnePalette(void)

Cycles the Wise One's palette while it glows. Run each frame as a callback that SolSanctumEruption_PlayWiseOneRescue adds and SolSanctumEruption_FinishMaterialization removes.

Used by SolSanctumEruption_FinishMaterialization, SolSanctumEruption_PlayWiseOneRescue.

Line 1792

Also, functions without a comment: SolSanctumEruption_GetEntrances, SolSanctumEruption_GetRegions, SolSanctumEruption_GetExits, SolSanctumEruption_UnusedCallbackA, SolSanctumEruption_UnusedCallbackB.

Macros, without a comment: ELEMENTAL_ARC_SCALE_X_DECREASE, EMBER_EMISSION_DISABLED, ARC_SCAN_STILL_ACTIVE.

Globals, without a comment: gEruption_ArcOriginsHead, gEruption_ArcOrigins, gSolSanctumEruption_Entrances, gSolSanctumEruption_Exits, gSolSanctumEruption_Placements, gSolSanctumEruption_Events, gSolSanctumEruption_StarCells, gEruption_EmberScript, gSolSanctum_RingDrift, gSolSanctum_RingSwing, gSolSanctum_RingDirection, gSolSanctumRing_MaxScales, gSolSanctumRing_ScaleSteps.

On this page