Sol Sanctum's hall of the Luna and Sol rooms: the rooms take on the tint of the seals' lights, and Kraden studies the symbols on the floor. More...
Go to the source code of this file.
Data Structures | |
| struct | EventGlobals |
| The work slot pointers from the event work (slot 27) onward, reaching the palette buffer work in slot 32. More... | |
Macros | |
| #define | FLAG_SOL_SANCTUM_FLOATING_EYE_SEEN 0x309 |
Functions | |
| static void | SolSanctumLunaSolRooms_IntroduceSolAndLunaRooms (void) |
| Kraden finds the room of Luna beside the room of Sol, and asks Isaac to look farther up the passage. | |
| static void | SolSanctumLunaSolRooms_DiscussFloorSymbolChangingToLuna (void) |
| Kraden notices that the symbol on the floor has changed from Sol to Luna. | |
| static s32 | SolSanctumLunaSolRooms_AreAllStatueLightsLit (void) |
| Returns 1 when all four seals are open. | |
| static void | SolSanctumLunaSolRooms_ShowMessageAndWait (s32 speaker, s32 waitFrames) |
| Advances the active dialogue and pauses for the requested frames. | |
| static void | SolSanctumLunaSolRooms_ShowFloatingEye (void) |
| Entering after the eruption the first time: in a white flash a floating eye shows itself to Isaac and Garet, and the hall shakes. | |
| void | InitializeSceneRecordBuffer (void) |
| STATIC_ASSERT (offsetof(struct EventGlobals, paletteBufferWork)==0x14) | |
| const struct SceneEntrance * | SolSanctumLunaSolRooms_GetEntrances (void) |
| const struct SceneRegion * | SolSanctumLunaSolRooms_GetRegions (void) |
| const u32 * | SolSanctumLunaSolRooms_GetExits (void) |
| const struct ScenePlacement * | SolSanctumLunaSolRooms_GetPlacements (void) |
| Returns the eight statues (actors 8 to 15), Kraden (actor 16), Jenna and Garet, all of them always placed. | |
| const struct SceneEvent * | SolSanctumLunaSolRooms_GetEvents (void) |
| Returns the floor's cell codes that tint the rooms, Kraden's talk and cutscenes, the floor symbol and the Herb's chest. | |
| static void | Event_UpdateRoomTint (void) |
| Crossing cell code 13: the room fades to the tint that matches the seals' lights. | |
| static void | Event_RestorePlainTint (void) |
| Crossing cell code 15: the room fades back to its plain colours. | |
| static void | Event_UpdateRoomTintInverse (void) |
| Crossing cell code 14: as code 13, with the tints the other way round. | |
| static void | Event_ApplySecondRoomTint (void) |
| Crossing cell code 12: the room fades to its second tint. | |
| static void | Event_ClearBackdropColor (void) |
| Crossing cell code 19: the backdrop turns black. | |
| static void | SolSanctumLunaSolRooms_DrawStatueLightTiles (s32 firstFlag, s32 sourceRow) |
| Draws the light of each open seal, from four consecutive flags, with the tiles of the given source row. | |
| static void | SolSanctumLunaSolRooms_DrawCurrentStatueLights (void) |
| Draws the active lights from the current statue flags. | |
| static void | SolSanctumLunaSolRooms_DrawSavedStatueLights (void) |
| Draws the active lights from the saved statue flags. | |
| static void | SolSanctumLunaSolRooms_DrawAlternateCurrentStatueLights (void) |
| Draws the current lights using their alternate tile rows. | |
| static void | SolSanctumLunaSolRooms_DrawAlternateSavedStatueLights (void) |
| Draws the saved lights using their alternate tile rows. | |
| static void | SolSanctumLunaSolRooms_FlashCurrentStatueLights (s32 frames) |
| Flashes both tile sets of the current statue lights at this pace. | |
| static void | SolSanctumLunaSolRooms_FlashSavedStatueLights (s32 frames) |
| Flashes both tile sets of the saved statue lights at this pace. | |
| static void | Event_KradenFindsHall (void) |
| Walking into the hall the first time: Kraden studies the symbols and asks the party to keep exploring. | |
| static void | Event_KradenStopsPartyLeaving (void) |
| Heading out of the hall before the passage is found: Kraden hurries over. | |
| static void | SolSanctumLunaSolRooms_UpdateFirstStatueLight (void) |
| Animates the first falling light and manages the shared shake pulse. | |
| static void | SolSanctumLunaSolRooms_UpdateSecondStatueLight (void) |
| Animates the second falling light with its own random restart delay, as the first. | |
| static void | SolSanctumLunaSolRooms_UpdateThirdStatueLight (void) |
| Animates the third falling light with its own random restart delay, as the first. | |
| static void | SolSanctumLunaSolRooms_UpdateFourthStatueLight (void) |
| Animates the fourth falling light with its own random restart delay, as the first. | |
| static void | SolSanctumLunaSolRooms_PrepareStatueTransition (void) |
| Opens on Kraden in the room of Luna with its first tint, as a flash crosses it. | |
| static void | SolSanctumLunaSolRooms_SpringStatueTrap (void) |
| The seals' lights flash ever faster around Kraden, who hurries back to Isaac. | |
| static void | SolSanctumLunaSolRooms_RunStatueLightSequence (void) |
| The seals' lights flash and lights fall through the room of Luna while Kraden calls on Isaac to stop. | |
| static void | SolSanctumLunaSolRooms_AnimateSavedStatueLights (void) |
| The lights of the seals Isaac has opened since flash ever faster in the room of Luna. | |
| static void | Event_KradenSeesLunaPictureChange (void) |
| Walking up to Kraden once all four seals are open: the picture of Luna has changed to Sol. | |
| static void | Event_RiseToElementalStarRoom (void) |
| Searching the floor symbol after Kraden has seen it change: the floor opens, and Isaac then Kraden rise into the Elemental Star room. | |
| s32 | SolSanctumLunaSolRooms_Initialize (void) |
| Restores puzzle tiles and plays the cutscene this entrance calls for. | |
| static void | Event_TalkToKraden (void) |
| Talking to Kraden: his answer depends on whether Isaac agreed to search. | |
Variables | |
| struct SceneEntrance | gSolSanctumLunaSolRoomsEntrances [] |
| u32 | gSolSanctumLunaSolRoomsExits [] |
| struct ScenePlacement | gSolSanctumLunaSolRoomsPlacements [] |
| struct SceneEvent | gSolSanctumLunaSolRoomsEvents [] |
Sol Sanctum's hall of the Luna and Sol rooms: the rooms take on the tint of the seals' lights, and Kraden studies the symbols on the floor.
Definition in file sol_sanctum_luna_sol_rooms.c.
| #define FLAG_SOL_SANCTUM_FLOATING_EYE_SEEN 0x309 |
Definition at line 36 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_Initialize().
|
static |
Kraden finds the room of Luna beside the room of Sol, and asks Isaac to look farther up the passage.
Called by Event_UpdateRoomTint and Event_UpdateRoomTintInverse until FLAG_SOL_SANCTUM_LUNA_SOL_ROOMS_SEEN is set, which it sets; Isaac agreeing sets FLAG_SOL_SANCTUM_ISAAC_SEARCHING_FOR_KRADEN. Leaves Kraden standing by the northern wall.
Definition at line 447 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_UpdateRoomTint(), Event_UpdateRoomTintInverse(), and SolSanctumLunaSolRooms_IntroduceSolAndLunaRooms().
|
static |
Kraden notices that the symbol on the floor has changed from Sol to Luna.
Called by Event_UpdateRoomTint once all four seals are open, until FLAG_SOL_SANCTUM_FLOOR_SYMBOL_SEEN is set, which it sets. Leaves Kraden off the map.
Definition at line 1068 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_UpdateRoomTint(), and SolSanctumLunaSolRooms_DiscussFloorSymbolChangingToLuna().
|
static |
Returns 1 when all four seals are open.
Definition at line 1401 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenSeesLunaPictureChange(), Event_UpdateRoomTint(), Event_UpdateRoomTintInverse(), SolSanctumLunaSolRooms_AreAllStatueLightsLit(), and SolSanctumLunaSolRooms_Initialize().
Advances the active dialogue and pauses for the requested frames.
Definition at line 1417 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenFindsHall(), Event_KradenSeesLunaPictureChange(), Event_RiseToElementalStarRoom(), SolSanctumLunaSolRooms_AnimateSavedStatueLights(), SolSanctumLunaSolRooms_DiscussFloorSymbolChangingToLuna(), SolSanctumLunaSolRooms_IntroduceSolAndLunaRooms(), SolSanctumLunaSolRooms_RunStatueLightSequence(), SolSanctumLunaSolRooms_ShowFloatingEye(), SolSanctumLunaSolRooms_ShowMessageAndWait(), and SolSanctumLunaSolRooms_SpringStatueTrap().
|
static |
Entering after the eruption the first time: in a white flash a floating eye shows itself to Isaac and Garet, and the hall shakes.
Called by SolSanctumLunaSolRooms_Initialize at entrance 8 until FLAG_SOL_SANCTUM_FLOATING_EYE_SEEN is set; the caller sets it. Sets FLAG_SCENE_TEMP_01 and clears _00 and _02.
Definition at line 1428 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_Initialize(), and SolSanctumLunaSolRooms_ShowFloatingEye().
| void InitializeSceneRecordBuffer | ( | void | ) |
| STATIC_ASSERT | ( | offsetof(struct EventGlobals, paletteBufferWork) | = =0x14 | ) |
| const struct SceneEntrance * SolSanctumLunaSolRooms_GetEntrances | ( | void | ) |
Definition at line 65 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetEntrances().
| const struct SceneRegion * SolSanctumLunaSolRooms_GetRegions | ( | void | ) |
Definition at line 69 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetRegions().
| const u32 * SolSanctumLunaSolRooms_GetExits | ( | void | ) |
Definition at line 71 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetExits().
| const struct ScenePlacement * SolSanctumLunaSolRooms_GetPlacements | ( | void | ) |
Returns the eight statues (actors 8 to 15), Kraden (actor 16), Jenna and Garet, all of them always placed.
Definition at line 77 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetPlacements().
| const struct SceneEvent * SolSanctumLunaSolRooms_GetEvents | ( | void | ) |
Returns the floor's cell codes that tint the rooms, Kraden's talk and cutscenes, the floor symbol and the Herb's chest.
Definition at line 83 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetEvents().
|
static |
Crossing cell code 13: the room fades to the tint that matches the seals' lights.
The first time, Kraden sees the Luna and Sol rooms; with all four seals open, he also sees the floor symbol change. Also called by Event_KradenFindsHall after the eruption. Sets one of FLAG_SCENE_TEMP_00 and _01 and clears the other two tint flags; Kraden's cutscenes set FLAG_SOL_SANCTUM_LUNA_SOL_ROOMS_SEEN and FLAG_SOL_SANCTUM_FLOOR_SYMBOL_SEEN.
Definition at line 93 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenFindsHall(), and Event_UpdateRoomTint().
|
static |
Crossing cell code 15: the room fades back to its plain colours.
Also called by Event_KradenStopsPartyLeaving after the eruption. Sets FLAG_SCENE_TEMP_00 and clears _01 and _02.
Definition at line 132 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenStopsPartyLeaving(), and Event_RestorePlainTint().
|
static |
Crossing cell code 14: as code 13, with the tints the other way round.
Sets one of FLAG_SCENE_TEMP_00 and _01 and clears the other two; the first time, Kraden sees the Luna and Sol rooms.
Definition at line 147 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_UpdateRoomTintInverse().
|
static |
Crossing cell code 12: the room fades to its second tint.
Sets FLAG_SCENE_TEMP_02 and clears _00 and _01.
Definition at line 179 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_ApplySecondRoomTint().
|
static |
Crossing cell code 19: the backdrop turns black.
Definition at line 190 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_ClearBackdropColor().
Draws the light of each open seal, from four consecutive flags, with the tiles of the given source row.
Definition at line 198 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_DrawAlternateCurrentStatueLights(), SolSanctumLunaSolRooms_DrawAlternateSavedStatueLights(), SolSanctumLunaSolRooms_DrawCurrentStatueLights(), SolSanctumLunaSolRooms_DrawSavedStatueLights(), and SolSanctumLunaSolRooms_DrawStatueLightTiles().
|
static |
Draws the active lights from the current statue flags.
Definition at line 211 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_DrawCurrentStatueLights(), SolSanctumLunaSolRooms_FlashCurrentStatueLights(), and SolSanctumLunaSolRooms_SpringStatueTrap().
|
static |
Draws the active lights from the saved statue flags.
Definition at line 217 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_AnimateSavedStatueLights(), SolSanctumLunaSolRooms_DrawSavedStatueLights(), and SolSanctumLunaSolRooms_FlashSavedStatueLights().
|
static |
Draws the current lights using their alternate tile rows.
Definition at line 223 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_DrawAlternateCurrentStatueLights(), and SolSanctumLunaSolRooms_FlashCurrentStatueLights().
|
static |
Draws the saved lights using their alternate tile rows.
Definition at line 229 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_DrawAlternateSavedStatueLights(), and SolSanctumLunaSolRooms_FlashSavedStatueLights().
|
inlinestatic |
Flashes both tile sets of the current statue lights at this pace.
Definition at line 235 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_FlashCurrentStatueLights(), SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_SpringStatueTrap().
|
inlinestatic |
Flashes both tile sets of the saved statue lights at this pace.
Definition at line 245 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_AnimateSavedStatueLights(), and SolSanctumLunaSolRooms_FlashSavedStatueLights().
|
static |
Walking into the hall the first time: Kraden studies the symbols and asks the party to keep exploring.
"This is it! We've found it!" Reached by stepping on cell code 11; plays until FLAG_SOL_SANCTUM_FOUND is set, and after the eruption tints the room as cell code 13 does. Sets FLAG_SOL_SANCTUM_FOUND and FLAG_RETREAT_BLOCKED.
Definition at line 259 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenFindsHall().
|
static |
Heading out of the hall before the passage is found: Kraden hurries over.
"That way leads out of the sanctum." Reached by stepping on cell code 9 once FLAG_SOL_SANCTUM_FOUND is set and until FLAG_SOL_SANCTUM_STAR_ROOM_PASSAGE_OPEN is; after the eruption the room only fades back to its plain colours (Event_RestorePlainTint).
Definition at line 523 of file sol_sanctum_luna_sol_rooms.c.
|
static |
Animates the first falling light and manages the shared shake pulse.
Run each frame as a callback that SolSanctumLunaSolRooms_RunStatueLightSequence adds and removes.
Definition at line 588 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_UpdateFirstStatueLight().
|
static |
Animates the second falling light with its own random restart delay, as the first.
Definition at line 634 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_UpdateSecondStatueLight().
|
static |
Animates the third falling light with its own random restart delay, as the first.
Definition at line 672 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_UpdateThirdStatueLight().
|
static |
Animates the fourth falling light with its own random restart delay, as the first.
Definition at line 710 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_UpdateFourthStatueLight().
|
static |
Opens on Kraden in the room of Luna with its first tint, as a flash crosses it.
Shared by the three cutscenes that play on arriving from the statue room. Sets FLAG_SCENE_TEMP_01 and clears _00 and _02.
Definition at line 749 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_AnimateSavedStatueLights(), SolSanctumLunaSolRooms_PrepareStatueTransition(), SolSanctumLunaSolRooms_RunStatueLightSequence(), and SolSanctumLunaSolRooms_SpringStatueTrap().
|
static |
The seals' lights flash ever faster around Kraden, who hurries back to Isaac.
"What's happening?" Called by SolSanctumLunaSolRooms_Initialize at entrance 4 until FLAG_SOL_SANCTUM_STATUE_TRAP_SPRUNG is set. Sets FLAG_SOL_SANCTUM_STATUE_TRAP_SPRUNG and takes exit 3, back to the statue room (scene 12, entrance 3).
Definition at line 783 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_Initialize(), and SolSanctumLunaSolRooms_SpringStatueTrap().
|
static |
The seals' lights flash and lights fall through the room of Luna while Kraden calls on Isaac to stop.
Called by SolSanctumLunaSolRooms_Initialize at entrance 5 until FLAG_SOL_SANCTUM_FALLING_LIGHTS_SEEN is set; the caller then sets it and closes all four seals. Takes exit 4, back to the statue room (scene 12, entrance 4).
Definition at line 838 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_Initialize(), and SolSanctumLunaSolRooms_RunStatueLightSequence().
|
static |
The lights of the seals Isaac has opened since flash ever faster in the room of Luna.
"You found it, Isaac." Called by SolSanctumLunaSolRooms_Initialize at entrance 6 once FLAG_SOL_SANCTUM_FALLING_LIGHTS_SEEN is set. Toggles each open seal's FLAG_SOL_SANCTUM_*_LIGHT_SHOWN; Kraden speaks until the caller sets FLAG_SOL_SANCTUM_KRADEN_SAID_YOU_FOUND_IT. Takes exit 5, back to the statue room (scene 12, entrance 5).
Definition at line 916 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_AnimateSavedStatueLights(), and SolSanctumLunaSolRooms_Initialize().
|
static |
Walking up to Kraden once all four seals are open: the picture of Luna has changed to Sol.
"Look, Isaac! The picture of Luna..." Reached by stepping on cell code 8, until FLAG_SOL_SANCTUM_LUNA_PICTURE_CHANGED is set, which it sets.
Definition at line 1002 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_KradenSeesLunaPictureChange().
|
static |
Searching the floor symbol after Kraden has seen it change: the floor opens, and Isaac then Kraden rise into the Elemental Star room.
Reached by searching cell code 20; does nothing until FLAG_SOL_SANCTUM_FLOOR_SYMBOL_SEEN is set. Sets FLAG_SOL_SANCTUM_STAR_ROOM_PASSAGE_OPEN the first time and takes exit 7, into the Elemental Star room (scene 17, entrance 10).
Definition at line 1096 of file sol_sanctum_luna_sol_rooms.c.
Referenced by Event_RiseToElementalStarRoom().
| s32 SolSanctumLunaSolRooms_Initialize | ( | void | ) |
Restores puzzle tiles and plays the cutscene this entrance calls for.
Called by Field_RunScene once the actors exist. Blocks Retreat (FLAG_RETREAT_BLOCKED) between finding the hall and opening the passage before the eruption; sets FLAG_SCENE_TEMP_00 on an ordinary entrance; copies each open seal into its FLAG_SOL_SANCTUM_*_LIGHT_SHOWN; plays the trap at entrance 4, the falling lights at entrance 5 (then closing the four seals), the saved lights at entrance 6, and the floating eye at entrance 8 until FLAG_SOL_SANCTUM_FLOATING_EYE_SEEN is set.
Definition at line 1258 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_Initialize().
|
static |
Talking to Kraden: his answer depends on whether Isaac agreed to search.
"Let me know what you find" once Isaac agreed, otherwise "Just wait over there." Reached by talking to Kraden (actor 16).
Definition at line 1534 of file sol_sanctum_luna_sol_rooms.c.
| struct SceneEntrance gSolSanctumLunaSolRoomsEntrances[] |
Definition at line 1546 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetEntrances().
| u32 gSolSanctumLunaSolRoomsExits[] |
Definition at line 1559 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetExits().
| struct ScenePlacement gSolSanctumLunaSolRoomsPlacements[] |
Definition at line 1567 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetPlacements().
| struct SceneEvent gSolSanctumLunaSolRoomsEvents[] |
Definition at line 1594 of file sol_sanctum_luna_sol_rooms.c.
Referenced by SolSanctumLunaSolRooms_GetEvents().