Sol Sanctum collapsing as the volcano erupts: Saturos and his group take Jenna and Kraden away, and the Wise One rescues Isaac and Garet. More...
Go to the source code of this file.
Macros | |
| #define | ELEMENTAL_ARC_SCALE_X_DECREASE 7372 |
| #define | EMBER_EMISSION_DISABLED 999 |
| #define | ARC_SCAN_STILL_ACTIVE 888 |
Enumerations | |
| enum | { ACTOR_WISE_ONE = 15 , ACTOR_FIRST_ROCK = 16 , ROCK_COUNT = 16 } |
| enum | { OBJECT_ELEMENTAL_STAR = 22 } |
Functions | |
| static void | SolSanctumEruption_RaiseAndShrinkActor (s32 actorId) |
| Lifts one departing actor and shrinks it together with the paired effect. | |
| static void | SolSanctumEruption_ThrowEruptionRing (void) |
| Launches sixteen rocks outward, then resets their actors for ember emission. | |
| static void | SolSanctumEruption_ResetEmberEmission (void) |
| Resets the sixteen ember slots and their emission timers. | |
| static void | SolSanctumEruption_StepEmbers (void) |
| Retires landed embers and launches the next free one at the current frequency, shaking the map after each. | |
| static void | SolSanctumEruption_UpdateEmberFrequency (void) |
| Varies the ember emission interval and its duration. | |
| 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. | |
| static void | SolSanctumEruption_PlaceBeforeStar (s32 actor) |
| Places an actor before the star, facing south, and draws it above the chamber floor. | |
| static void | SolSanctumEruption_DrawFirstCollapseTiles (s32 alternate) |
| Selects the first collapsing tile patch and redraws the map. | |
| static void | SolSanctumEruption_DrawSecondCollapseTiles (s32 alternate) |
| Selects the second collapsing tile patch and redraws the map. | |
| static void | SolSanctumEruption_FlickerFirstCollapseTiles (void) |
| Randomly alternates the first tile patch on even frames. | |
| static void | SolSanctumEruption_FlickerSecondCollapseTiles (void) |
| Randomly alternates the second tile patch on even frames, as the first. | |
| static void | SolSanctumEruption_RaiseElementalArcs (u32 mode) |
| Stages and raises ten arc effects at one of the four chamber positions. | |
| static void | SolSanctumEruption_UpdateElementalArcs (void) |
| Stretches each active arc for eight frames, then lifts it out of view. | |
| static void | SolSanctumEruption_FadeCameraTo (s32 x, s32 z) |
| Fades out, moves the camera and its focus actor, then fades back in. | |
| static void | SolSanctumEruption_RestoreCornerCellAttributes (void) |
| Restores eight corner-cell attributes from the chamber templates. | |
| static void | SolSanctumEruption_SetMaterializationTint (s32 enabled, s32 frames, s32 waitFrames) |
| Fades the object palette into or out of the materialization tint. | |
| static void | SolSanctumEruption_FlashMaterializingActor (struct FieldActor *actor) |
| Flashes the palette and spawns paired vertical effects every sixteen frames. | |
| static void | SolSanctumEruption_SpawnEffectPair (struct FieldActor *parent) |
| Creates two vertical effects sharing the parent position and cached tiles. | |
| static void | SolSanctumEruption_UpdateWiseOnePalette (void) |
| Cycles the Wise One's palette while it glows. | |
| const struct SceneEntrance * | SolSanctumEruption_GetEntrances (void) |
| const struct SceneRegion * | SolSanctumEruption_GetRegions (void) |
| const u32 * | SolSanctumEruption_GetExits (void) |
| 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. | |
| const struct SceneEvent * | SolSanctumEruption_GetEvents (void) |
| Returns the empty event table: the scene is one cutscene. | |
| static void | SolSanctumEruption_PlaceHostageGroup (void) |
| Stages Saturos, Menardi, Alex and Felix around Jenna and Kraden. | |
| 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. | |
| static UNUSED void | SolSanctumEruption_UnusedCallbackA (void) |
| static UNUSED void | SolSanctumEruption_UnusedCallbackB (void) |
| s32 | SolSanctumEruption_Initialize (void) |
| Plays the eruption at entrance 10, the arrival from the Elemental Star room. | |
| static s32 | SolSanctumEruption_AlignEmberToHeading (struct ScriptInterpreter *interpreter) |
| Keeps a flying ember sprite rotated a quarter-turn from its facing. | |
| static void | SolSanctumEruption_FinishMaterialization (void) |
| Ends the Wise One's palette animation and clears its attached effect. | |
| static void | SolSanctumEruption_CycleActorPalette (struct FieldActor *actor) |
| Cycles six palettes while spawning the actor's vertical effects. | |
Variables | |
| s32 | gEruption_ArcOriginsHead [] |
| s32 | gEruption_ArcOrigins [] |
| struct SceneEntrance | gSolSanctumEruption_Entrances [] |
| u32 | gSolSanctumEruption_Exits [] |
| struct ScenePlacement | gSolSanctumEruption_Placements [] |
| struct SceneEvent | gSolSanctumEruption_Events [] |
| u16 | gSolSanctumEruption_StarCells [] |
| s32 | gEruption_EmberScript [] |
| u8 | gSolSanctum_RingDrift [][3] |
| u8 | gSolSanctum_RingSwing [][3] |
| s8 | gSolSanctum_RingDirection [][3] |
| s32 | gSolSanctumRing_MaxScales [] |
| s32 | gSolSanctumRing_ScaleSteps [] |
Sol Sanctum collapsing as the volcano erupts: Saturos and his group take Jenna and Kraden away, and the Wise One rescues Isaac and Garet.
Definition in file sol_sanctum_eruption.c.
| #define ELEMENTAL_ARC_SCALE_X_DECREASE 7372 |
Definition at line 76 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_UpdateElementalArcs().
| #define EMBER_EMISSION_DISABLED 999 |
Definition at line 77 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_StepEmbers().
| #define ARC_SCAN_STILL_ACTIVE 888 |
Definition at line 78 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_RaiseElementalArcs().
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_WISE_ONE | |
| ACTOR_FIRST_ROCK | |
| ROCK_COUNT | |
Definition at line 72 of file sol_sanctum_eruption.c.
| anonymous enum |
| Enumerator | |
|---|---|
| OBJECT_ELEMENTAL_STAR | |
Definition at line 74 of file sol_sanctum_eruption.c.
|
static |
Lifts one departing actor and shrinks it together with the paired effect.
Definition at line 519 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), and SolSanctumEruption_RaiseAndShrinkActor().
|
static |
Launches sixteen rocks outward, then resets their actors for ember emission.
Definition at line 584 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), and SolSanctumEruption_ThrowEruptionRing().
|
static |
Resets the sixteen ember slots and their emission timers.
Definition at line 637 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), and SolSanctumEruption_ResetEmberEmission().
|
static |
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.
Definition at line 655 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_StepEmbers().
|
static |
Varies the ember emission interval and its duration.
Run each frame as a callback beside SolSanctumEruption_StepEmbers.
Definition at line 746 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_UpdateEmberFrequency().
|
static |
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).
Definition at line 792 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Places an actor before the star, facing south, and draws it above the chamber floor.
Definition at line 1454 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlaceBeforeStar(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Selects the first collapsing tile patch and redraws the map.
Definition at line 1464 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_DrawFirstCollapseTiles(), SolSanctumEruption_FlickerFirstCollapseTiles(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Selects the second collapsing tile patch and redraws the map.
Definition at line 1483 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_DrawSecondCollapseTiles(), SolSanctumEruption_FlickerSecondCollapseTiles(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
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.
Definition at line 1500 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FlickerFirstCollapseTiles(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Randomly alternates the second tile patch on even frames, as the first.
Definition at line 1511 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FlickerSecondCollapseTiles(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Stages and raises ten arc effects at one of the four chamber positions.
Definition at line 1522 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_RaiseElementalArcs().
|
static |
Stretches each active arc for eight frames, then lifts it out of view.
Run each frame as a callback while SolSanctumEruption_RaiseElementalArcs runs.
Definition at line 1632 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_RaiseElementalArcs(), and SolSanctumEruption_UpdateElementalArcs().
Fades out, moves the camera and its focus actor, then fades back in.
Definition at line 1661 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FadeCameraTo(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Restores eight corner-cell attributes from the chamber templates.
Definition at line 1686 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_RestoreCornerCellAttributes().
Fades the object palette into or out of the materialization tint.
Definition at line 1699 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlayHostageScene(), SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_SetMaterializationTint().
|
static |
Flashes the palette and spawns paired vertical effects every sixteen frames.
Definition at line 1716 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FlashMaterializingActor(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Creates two vertical effects sharing the parent position and cached tiles.
Definition at line 1741 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_CycleActorPalette(), SolSanctumEruption_FlashMaterializingActor(), and SolSanctumEruption_SpawnEffectPair().
|
static |
Cycles the Wise One's palette while it glows.
Run each frame as a callback that SolSanctumEruption_PlayWiseOneRescue adds and SolSanctumEruption_FinishMaterialization removes.
Definition at line 1792 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FinishMaterialization(), SolSanctumEruption_PlayWiseOneRescue(), and SolSanctumEruption_UpdateWiseOnePalette().
| const struct SceneEntrance * SolSanctumEruption_GetEntrances | ( | void | ) |
Definition at line 80 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetEntrances().
| const struct SceneRegion * SolSanctumEruption_GetRegions | ( | void | ) |
Definition at line 84 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetRegions().
| const u32 * SolSanctumEruption_GetExits | ( | void | ) |
Definition at line 86 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetExits().
| 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.
Definition at line 94 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetPlacements().
| const struct SceneEvent * SolSanctumEruption_GetEvents | ( | void | ) |
Returns the empty event table: the scene is one cutscene.
Definition at line 99 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetEvents().
|
inlinestatic |
Stages Saturos, Menardi, Alex and Felix around Jenna and Kraden.
Definition at line 104 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_PlaceHostageGroup(), and SolSanctumEruption_PlayHostageScene().
|
static |
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.
Definition at line 118 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_Initialize(), and SolSanctumEruption_PlayHostageScene().
|
static |
Definition at line 560 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_UnusedCallbackA().
|
static |
Definition at line 562 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_UnusedCallbackB().
| 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.
Definition at line 566 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_Initialize().
|
static |
Keeps a flying ember sprite rotated a quarter-turn from its facing.
Run by each ember's object script, gEruption_EmberScript.
Definition at line 577 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_AlignEmberToHeading().
|
inlinestatic |
Ends the Wise One's palette animation and clears its attached effect.
Definition at line 780 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_FinishMaterialization(), and SolSanctumEruption_PlayWiseOneRescue().
|
static |
Cycles six palettes while spawning the actor's vertical effects.
Definition at line 1728 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_CycleActorPalette(), and SolSanctumEruption_UpdateWiseOnePalette().
| s32 gEruption_ArcOriginsHead[] |
Definition at line 1798 of file sol_sanctum_eruption.c.
| s32 gEruption_ArcOrigins[] |
Definition at line 1811 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_RaiseElementalArcs().
| struct SceneEntrance gSolSanctumEruption_Entrances[] |
Definition at line 1824 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetEntrances().
| u32 gSolSanctumEruption_Exits[] |
Definition at line 1829 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetExits().
| struct ScenePlacement gSolSanctumEruption_Placements[] |
Definition at line 1835 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetPlacements().
| struct SceneEvent gSolSanctumEruption_Events[] |
Definition at line 1891 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_GetEvents().
| u16 gSolSanctumEruption_StarCells[] |
Definition at line 1895 of file sol_sanctum_eruption.c.
| s32 gEruption_EmberScript[] |
Definition at line 1899 of file sol_sanctum_eruption.c.
Referenced by SolSanctumEruption_StepEmbers().
| u8 gSolSanctum_RingDrift[][3] |
Definition at line 1904 of file sol_sanctum_eruption.c.
| u8 gSolSanctum_RingSwing[][3] |
Definition at line 1917 of file sol_sanctum_eruption.c.
| s8 gSolSanctum_RingDirection[][3] |
Definition at line 1930 of file sol_sanctum_eruption.c.
| s32 gSolSanctumRing_MaxScales[] |
| s32 gSolSanctumRing_ScaleSteps[] |
Definition at line 1948 of file sol_sanctum_eruption.c.