Alchemy
Loading...
Searching...
No Matches

sol_sanctum_entrance.c File Reference

Sol Sanctum's entrance, in two maps: the door, the two minotaur reliefs that open passages once the Small Jewels are set in them, and the rooms of movable blocks. More...

Go to the source code of this file.

Macros

#define FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_EAST   0x300
#define FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_WEST   0x301
#define FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_EAST   0x302
#define FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_WEST   0x303
#define FLAG_SOL_SANCTUM_INNER_BLOCK_1_EAST   0x310
#define FLAG_SOL_SANCTUM_INNER_BLOCK_1_WEST   0x311
#define FLAG_SOL_SANCTUM_INNER_BLOCK_2_EAST   0x312
#define FLAG_SOL_SANCTUM_INNER_BLOCK_2_WEST   0x313
#define FLAG_SOL_SANCTUM_INNER_BLOCK_3_EAST   0x314
#define FLAG_SOL_SANCTUM_INNER_BLOCK_3_WEST   0x315
#define FLAG_SOL_SANCTUM_INNER_BLOCK_4_EAST   0x316
#define FLAG_SOL_SANCTUM_INNER_BLOCK_4_WEST   0x317
#define FLAG_SOL_SANCTUM_INNER_BLOCK_5_EAST   0x318
#define FLAG_SOL_SANCTUM_INNER_BLOCK_5_WEST   0x319
#define FLAG_SOL_SANCTUM_INNER_BLOCK_6_EAST   0x31a
#define FLAG_SOL_SANCTUM_INNER_BLOCK_6_WEST   0x31b
#define EXIT_FLAG_NONE   0xffffffff
#define PUSH_STEP(x, z)
 Packs a push step: X in the upper halfword, Z in the lower (pixels).

Functions

static void SolSanctumEntrance_ApplyEntryState (void)
 Sets up the approach: after the eruption it rumbles now and then, the collision of two rows of cells changes with FLAG_VALE_RETURNED_FROM_MT_ALEPH and FLAG_PARTY_LEFT_VALE, and with the latter the sentry stands at another spot.
static void SolSanctumEntrance_RestoreInteriorState (void)
 Restores opened passages and the current room's block positions, and plays a room's first cutscene.
static void SolSanctumEntrance_IntroduceSanctum (void)
 Kraden welcomes the party into Sol Sanctum on their first visit, asking whether it is their first time here.
static void SolSanctumEntrance_KradenSuspectsHiddenPassage (void)
 Kraden looks around the outer block room and decides a hidden passage must lead deeper in; Garet asks whether to split up.
static void SolSanctumEntrance_InspectInnerStatues (void)
 Shows the inner statues that Kraden cannot reach; he asks Isaac to try Psynergy.
static void SolSanctumEntrance_RestoreInnerBlockCells (s32 placeActors)
 Restores the inner blocks' collision cells and, when placeActors is nonzero (on entry), moves the blocks to their saved columns.
static void SolSanctumEntrance_UpdateEruptionRumbles (void)
 After the eruption the approach rumbles now and then, and each shake fades.
void InitializeSceneRecordBuffer ()
const struct SceneEntrance * SolSanctumEntrance_GetEntrances (void)
 Returns the approach's entrances (scene 19) or the halls' (scene 16), which share this overlay.
const struct SceneRegion * SolSanctumEntrance_GetRegions (void)
const u32 * SolSanctumEntrance_GetExits (void)
const struct ScenePlacement * SolSanctumEntrance_GetPlacements (void)
 Selects the actors for the current map and puzzle room.
const struct SceneEvent * SolSanctumEntrance_GetEvents (void)
 Selects the events for the current map and puzzle room, by the same entrances as SolSanctumEntrance_GetPlacements.
static void Event_OpenDoorAndEnter (void)
 Walking up to the sanctum's door: it slides open and the leader walks in.
static void Event_InspectFirstMinotaurRelief (void)
 Searching the first minotaur relief: one eye sparkles, or both once the Small Jewel is set.
static void SolSanctumEntrance_ReactToOpeningPassage (void)
 The room shakes as stone shifts; the leader looks around and jumps.
static void Event_SetFirstSmallJewel (void)
 Using the Small Jewel on the first relief: the leader sets it in and a passage opens.
static void Event_InspectSecondMinotaurRelief (void)
 Searching the second minotaur relief, as the first.
static void Event_SetSecondSmallJewel (void)
 Using the Small Jewel on the second relief: as the first, and the inner doorway opens.
static void SolSanctumEntrance_RecordBlockColumn (s32 column, s32 flagBase, s32 leftColumn, s32 rightColumn)
 Remembers which of a movable block's two destination columns it occupies.
static void Event_OuterLeftBlockMoved (void)
 Moving the outer left block with Move: the column it stops in is saved.
static void Event_OuterRightBlockMoved (void)
 Moving the outer right block with Move: the column it stops in is saved.
static void Event_InnerBlock1Moved (void)
 Moving an inner block with Move: the column it stops in is saved and the floor under all six is set again.
static void Event_InnerBlock2Moved (void)
 As Event_InnerBlock1Moved, for the second block (actor 10).
static void Event_InnerBlock3Moved (void)
 As Event_InnerBlock1Moved, for the third block (actor 11).
static void Event_InnerBlock4Moved (void)
 As Event_InnerBlock1Moved, for the fourth block (actor 12).
static void Event_InnerBlock5Moved (void)
 As Event_InnerBlock1Moved, for the fifth block (actor 13).
static void Event_InnerBlock6Moved (void)
 As Event_InnerBlock1Moved, for the sixth block (actor 14).
static void Event_PushBlock (void)
 Walking into a block: the leader pushes it one cell, and its column is saved.
s32 SolSanctumEntrance_Initialize (void)
 Restores the outdoor or interior state for this entrance.
static void Event_DoorTightlyLocked (void)
 Searching the door beside the way in.

Variables

s32 gSolSanctumEntrance_RumbleTimer
struct SceneEntrance gSolSanctumEntranceEntrancesOther []
struct SceneEntrance gSolSanctumEntranceEntrances2 []
struct SceneEntrance gSolSanctumEntranceEntrances1 []
u32 gSolSanctumEntrance_Exits []
struct ScenePlacement gSolSanctumEntrancePlacementsOther []
struct ScenePlacement gSolSanctumEntrancePlacements1 []
struct ScenePlacement gSolSanctumEntrancePlacements1Entrances11To13 []
struct ScenePlacement gSolSanctumEntrancePlacements1Entrances14To16 []
struct ScenePlacement gSolSanctumEntrancePlacements2 []
struct SceneEvent gSolSanctumEntranceEventsOther []
struct SceneEvent gSolSanctumEntranceEvents2 []
struct SceneEvent gSolSanctumEntranceEvents1 []
struct SceneEvent gSolSanctumEntranceEvents1Entrances11To13 []
struct SceneEvent gSolSanctumEntranceEvents1Entrances14To16 []
s32 gSolSanctumPushSteps []

Detailed Description

Sol Sanctum's entrance, in two maps: the door, the two minotaur reliefs that open passages once the Small Jewels are set in them, and the rooms of movable blocks.

Definition in file sol_sanctum_entrance.c.

Macro Definition Documentation

◆ FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_EAST

#define FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_EAST   0x300

◆ FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_WEST

#define FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_WEST   0x301

◆ FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_EAST

#define FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_EAST   0x302

◆ FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_WEST

#define FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_WEST   0x303

Definition at line 42 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInteriorState().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_1_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_1_EAST   0x310

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_1_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_1_WEST   0x311

Definition at line 44 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_2_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_2_EAST   0x312

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_2_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_2_WEST   0x313

Definition at line 46 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_3_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_3_EAST   0x314

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_3_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_3_WEST   0x315

Definition at line 48 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_4_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_4_EAST   0x316

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_4_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_4_WEST   0x317

Definition at line 50 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_5_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_5_EAST   0x318

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_5_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_5_WEST   0x319

Definition at line 52 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_6_EAST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_6_EAST   0x31a

◆ FLAG_SOL_SANCTUM_INNER_BLOCK_6_WEST

#define FLAG_SOL_SANCTUM_INNER_BLOCK_6_WEST   0x31b

Definition at line 54 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_RestoreInnerBlockCells().

◆ EXIT_FLAG_NONE

#define EXIT_FLAG_NONE   0xffffffff

Definition at line 65 of file sol_sanctum_entrance.c.

◆ PUSH_STEP

#define PUSH_STEP ( x,
z )
Value:
(((x) << 16) | ((z) & 0xffff))

Packs a push step: X in the upper halfword, Z in the lower (pixels).

Definition at line 1388 of file sol_sanctum_entrance.c.

Function Documentation

◆ SolSanctumEntrance_ApplyEntryState()

void SolSanctumEntrance_ApplyEntryState ( void )
static

Sets up the approach: after the eruption it rumbles now and then, the collision of two rows of cells changes with FLAG_VALE_RETURNED_FROM_MT_ALEPH and FLAG_PARTY_LEFT_VALE, and with the latter the sentry stands at another spot.

Called by SolSanctumEntrance_Initialize for scene 19. Sets FLAG_RETREAT_BLOCKED and starts SolSanctumEntrance_UpdateEruptionRumbles after the eruption.

Definition at line 549 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_ApplyEntryState(), and SolSanctumEntrance_Initialize().

◆ SolSanctumEntrance_RestoreInteriorState()

void SolSanctumEntrance_RestoreInteriorState ( void )
static

Restores opened passages and the current room's block positions, and plays a room's first cutscene.

Called by SolSanctumEntrance_Initialize for scene

  1. Entrance 8, the way in, sets the Retreat point there and introduces the sanctum until FLAG_SOL_SANCTUM_ENTERED is set; the outer block room plays Kraden's search until FLAG_SEARCHING_FOR_HIDDEN_PASSAGE is set, the inner one shows the statues out of reach until FLAG_SOL_SANCTUM_INNER_STATUES_SEEN is set and sets FLAG_SCENE_TEMP_34.

Definition at line 578 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_Initialize(), and SolSanctumEntrance_RestoreInteriorState().

◆ SolSanctumEntrance_IntroduceSanctum()

void SolSanctumEntrance_IntroduceSanctum ( void )
static

Kraden welcomes the party into Sol Sanctum on their first visit, asking whether it is their first time here.

Called by SolSanctumEntrance_RestoreInteriorState at entrance 8 until FLAG_SOL_SANCTUM_ENTERED is set. Sets FLAG_SOL_SANCTUM_ENTERED and clears FLAG_SHOW_LOCATION_NAME.

Definition at line 667 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_IntroduceSanctum(), and SolSanctumEntrance_RestoreInteriorState().

◆ SolSanctumEntrance_KradenSuspectsHiddenPassage()

void SolSanctumEntrance_KradenSuspectsHiddenPassage ( void )
static

Kraden looks around the outer block room and decides a hidden passage must lead deeper in; Garet asks whether to split up.

Called by SolSanctumEntrance_RestoreInteriorState in the outer block room until FLAG_SEARCHING_FOR_HIDDEN_PASSAGE is set. Sets FLAG_SEARCHING_FOR_HIDDEN_PASSAGE and clears FLAG_SHOW_LOCATION_NAME.

Definition at line 755 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_KradenSuspectsHiddenPassage(), and SolSanctumEntrance_RestoreInteriorState().

◆ SolSanctumEntrance_InspectInnerStatues()

void SolSanctumEntrance_InspectInnerStatues ( void )
static

Shows the inner statues that Kraden cannot reach; he asks Isaac to try Psynergy.

Called by SolSanctumEntrance_RestoreInteriorState in the inner block room until FLAG_SOL_SANCTUM_INNER_STATUES_SEEN is set, which it sets.

Definition at line 970 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_InspectInnerStatues(), and SolSanctumEntrance_RestoreInteriorState().

◆ SolSanctumEntrance_RestoreInnerBlockCells()

void SolSanctumEntrance_RestoreInnerBlockCells ( s32 placeActors)
static

Restores the inner blocks' collision cells and, when placeActors is nonzero (on entry), moves the blocks to their saved columns.

Definition at line 1027 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock1Moved(), Event_InnerBlock2Moved(), Event_InnerBlock3Moved(), Event_InnerBlock4Moved(), Event_InnerBlock5Moved(), Event_InnerBlock6Moved(), SolSanctumEntrance_RestoreInnerBlockCells(), and SolSanctumEntrance_RestoreInteriorState().

◆ SolSanctumEntrance_UpdateEruptionRumbles()

void SolSanctumEntrance_UpdateEruptionRumbles ( void )
static

After the eruption the approach rumbles now and then, and each shake fades.

Run each frame as a callback that SolSanctumEntrance_ApplyEntryState adds once FLAG_SOL_SANCTUM_ERUPTED is set.

Definition at line 1126 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_ApplyEntryState(), and SolSanctumEntrance_UpdateEruptionRumbles().

◆ InitializeSceneRecordBuffer()

◆ SolSanctumEntrance_GetEntrances()

const struct SceneEntrance * SolSanctumEntrance_GetEntrances ( void )

Returns the approach's entrances (scene 19) or the halls' (scene 16), which share this overlay.

Definition at line 81 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEntrances().

◆ SolSanctumEntrance_GetRegions()

const struct SceneRegion * SolSanctumEntrance_GetRegions ( void )

Definition at line 93 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetRegions().

◆ SolSanctumEntrance_GetExits()

const u32 * SolSanctumEntrance_GetExits ( void )

Definition at line 95 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetExits().

◆ SolSanctumEntrance_GetPlacements()

const struct ScenePlacement * SolSanctumEntrance_GetPlacements ( void )

Selects the actors for the current map and puzzle room.

Inside, entrances 11 to 13 (the outer block room) and 14 to 16 (the inner one) place Kraden and the blocks, the rest of the halls Kraden and actor 9; the approach places its sentry.

Definition at line 103 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetPlacements().

◆ SolSanctumEntrance_GetEvents()

const struct SceneEvent * SolSanctumEntrance_GetEvents ( void )

Selects the events for the current map and puzzle room, by the same entrances as SolSanctumEntrance_GetPlacements.

Definition at line 129 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ Event_OpenDoorAndEnter()

void Event_OpenDoorAndEnter ( void )
static

Walking up to the sanctum's door: it slides open and the leader walks in.

Reached by walking north into the door (cell code 2) on the approach. Takes exit 2, into the halls at entrance 8.

Definition at line 153 of file sol_sanctum_entrance.c.

Referenced by Event_OpenDoorAndEnter().

◆ Event_InspectFirstMinotaurRelief()

void Event_InspectFirstMinotaurRelief ( void )
static

Searching the first minotaur relief: one eye sparkles, or both once the Small Jewel is set.

"The right eye is sparkling, but there's a hole where the left eye should be." Reached by searching the relief (cell code 20) in the halls. Once the first Small Jewel is found, and until it is set, it requests the field menu (the event work's unk172, FieldWork's menu), which opens when the search ends so that the jewel can be used.

Definition at line 186 of file sol_sanctum_entrance.c.

Referenced by Event_InspectFirstMinotaurRelief().

◆ SolSanctumEntrance_ReactToOpeningPassage()

void SolSanctumEntrance_ReactToOpeningPassage ( void )
inlinestatic

The room shakes as stone shifts; the leader looks around and jumps.

Definition at line 205 of file sol_sanctum_entrance.c.

Referenced by Event_SetFirstSmallJewel(), Event_SetSecondSmallJewel(), and SolSanctumEntrance_ReactToOpeningPassage().

◆ Event_SetFirstSmallJewel()

void Event_SetFirstSmallJewel ( void )
static

Using the Small Jewel on the first relief: the leader sets it in and a passage opens.

"set the small gem into the empty socket.", "You hear the sound of shifting stone." Reached by using the Small Jewel on the relief (trigger 0x414: cell code 20, with its own message); does nothing until the first Small Jewel is found, or once it is set. Sets FLAG_SOL_SANCTUM_FIRST_GEM_PLACED and FLAG_ITEM_USED_UP, which takes the jewel.

Definition at line 228 of file sol_sanctum_entrance.c.

Referenced by Event_SetFirstSmallJewel().

◆ Event_InspectSecondMinotaurRelief()

void Event_InspectSecondMinotaurRelief ( void )
static

Searching the second minotaur relief, as the first.

Reached by searching it (cell code 21) in the inner block room; once the second Small Jewel is found, and until it is set, it requests the field menu.

Definition at line 266 of file sol_sanctum_entrance.c.

Referenced by Event_InspectSecondMinotaurRelief().

◆ Event_SetSecondSmallJewel()

void Event_SetSecondSmallJewel ( void )
static

Using the Small Jewel on the second relief: as the first, and the inner doorway opens.

Reached by using the Small Jewel on it (trigger 0x415: cell code 21, with its own message) in the inner block room, once the second Small Jewel is found and until it is set. Sets FLAG_SOL_SANCTUM_SECOND_GEM_PLACED and FLAG_ITEM_USED_UP.

Definition at line 296 of file sol_sanctum_entrance.c.

Referenced by Event_SetSecondSmallJewel().

◆ SolSanctumEntrance_RecordBlockColumn()

void SolSanctumEntrance_RecordBlockColumn ( s32 column,
s32 flagBase,
s32 leftColumn,
s32 rightColumn )
inlinestatic

◆ Event_OuterLeftBlockMoved()

void Event_OuterLeftBlockMoved ( void )
static

Moving the outer left block with Move: the column it stops in is saved.

Reached by Move on actor 9 in the outer block room while FLAG_SCENE_TEMP_34 is clear, and called by Event_PushBlock there. Sets one of FLAG_SOL_SANCTUM_OUTER_LEFT_BLOCK_EAST and _WEST, or clears both when the block stands in neither column.

Definition at line 342 of file sol_sanctum_entrance.c.

Referenced by Event_OuterLeftBlockMoved(), and Event_PushBlock().

◆ Event_OuterRightBlockMoved()

void Event_OuterRightBlockMoved ( void )
static

Moving the outer right block with Move: the column it stops in is saved.

Reached by Move on actor 10, as the left block. Sets one of FLAG_SOL_SANCTUM_OUTER_RIGHT_BLOCK_EAST and _WEST, or clears both.

Definition at line 357 of file sol_sanctum_entrance.c.

Referenced by Event_OuterRightBlockMoved(), and Event_PushBlock().

◆ Event_InnerBlock1Moved()

void Event_InnerBlock1Moved ( void )
static

Moving an inner block with Move: the column it stops in is saved and the floor under all six is set again.

Reached by Move on actor 9 in the inner block room, and called by Event_PushBlock there. Sets one of FLAG_SOL_SANCTUM_INNER_BLOCK_1_EAST and _WEST, or clears both.

Definition at line 378 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock1Moved(), and Event_PushBlock().

◆ Event_InnerBlock2Moved()

void Event_InnerBlock2Moved ( void )
static

As Event_InnerBlock1Moved, for the second block (actor 10).

Definition at line 392 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock2Moved(), and Event_PushBlock().

◆ Event_InnerBlock3Moved()

void Event_InnerBlock3Moved ( void )
static

As Event_InnerBlock1Moved, for the third block (actor 11).

Definition at line 406 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock3Moved(), and Event_PushBlock().

◆ Event_InnerBlock4Moved()

void Event_InnerBlock4Moved ( void )
static

As Event_InnerBlock1Moved, for the fourth block (actor 12).

Definition at line 420 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock4Moved(), and Event_PushBlock().

◆ Event_InnerBlock5Moved()

void Event_InnerBlock5Moved ( void )
static

As Event_InnerBlock1Moved, for the fifth block (actor 13).

Definition at line 434 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock5Moved(), and Event_PushBlock().

◆ Event_InnerBlock6Moved()

void Event_InnerBlock6Moved ( void )
static

As Event_InnerBlock1Moved, for the sixth block (actor 14).

Definition at line 448 of file sol_sanctum_entrance.c.

Referenced by Event_InnerBlock6Moved(), and Event_PushBlock().

◆ Event_PushBlock()

void Event_PushBlock ( void )
static

Walking into a block: the leader pushes it one cell, and its column is saved.

Reached by walking into a block's cell: code 22, or 23 facing east and 25 facing west, in the outer block room, and code 24 in the inner one. Updates the room's block flags through the Moved events.

Definition at line 466 of file sol_sanctum_entrance.c.

◆ SolSanctumEntrance_Initialize()

s32 SolSanctumEntrance_Initialize ( void )

Restores the outdoor or interior state for this entrance.

Called by Field_RunScene once the actors exist.

Definition at line 532 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_Initialize().

◆ Event_DoorTightlyLocked()

void Event_DoorTightlyLocked ( void )
static

Searching the door beside the way in.

"The door is tightly locked." Reached by searching cell code 10 on the approach.

Definition at line 1117 of file sol_sanctum_entrance.c.

Referenced by Event_DoorTightlyLocked().

Variable Documentation

◆ gSolSanctumEntrance_RumbleTimer

s32 gSolSanctumEntrance_RumbleTimer

◆ gSolSanctumEntranceEntrancesOther

struct SceneEntrance gSolSanctumEntranceEntrancesOther[]
Initial value:
= {
{0, CONDITION_ALWAYS, 172, 0, 149, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
}
@ SCENE_TABLE_END
Definition field_scene.h:43
@ CONDITION_ALWAYS
Definition field_scene.h:44
@ FACING_SOUTH
Definition field_scene.h:28

Definition at line 1148 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEntrances().

◆ gSolSanctumEntranceEntrances2

struct SceneEntrance gSolSanctumEntranceEntrances2[]
Initial value:
= {
{0, CONDITION_ALWAYS, 172, 0, 149, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{1, CONDITION_ALWAYS, 80, 0, 288, FACING_NORTH, 0, -1, -1, -1, -1, 0},
{2, CONDITION_ALWAYS, 120, 0, 112, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
}
@ FACING_NORTH
Definition field_scene.h:32

Definition at line 1153 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEntrances().

◆ gSolSanctumEntranceEntrances1

struct SceneEntrance gSolSanctumEntranceEntrances1[]
Initial value:
= {
{0, CONDITION_ALWAYS, 172, 0, 149, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{1, CONDITION_ALWAYS, 280, 0, 472, FACING_NORTH, 0, 5, 0, 555, 510, 0},
{2, CONDITION_ALWAYS, 72, 0, 56, FACING_SOUTH, 0, 5, 0, 555, 510, 0},
{3, CONDITION_ALWAYS, 744, 0, 152, FACING_NORTH, 0, 620, 0, 860, 195, 0},
{4, CONDITION_ALWAYS, 696, 0, 568, FACING_NORTH, 0, 575, 265, 815, 610, 0},
{5, CONDITION_ALWAYS, 696, 0, 328, FACING_SOUTH, 0, 575, 265, 815, 610, 0},
{6, CONDITION_ALWAYS, 984, 0, 152, FACING_NORTH, 0, 860, 0, 1100, 195, 0},
{7, CONDITION_ALWAYS, 984, 0, 56, FACING_SOUTH, 0, 860, 0, 1100, 195, 0},
{8, CONDITION_ALWAYS, 1224, 0, 184, FACING_NORTH, 0, 1100, 20, 1340, 220,
0},
{9, CONDITION_ALWAYS, 1224, 0, 104, FACING_SOUTH, 0, 1100, 20, 1340, 220,
0},
{10, CONDITION_ALWAYS, 1320, 0, 456, FACING_NORTH, 0, 905, 285, 1365, 490,
0},
{11, CONDITION_ALWAYS, 1672, 0, 280, FACING_NORTH, 0, 1455, 0, 1890, 310,
0},
{12, CONDITION_ALWAYS, 1512, 0, 136, FACING_SOUTH, 0, 1455, 0, 1890, 310,
0},
{13, CONDITION_ALWAYS, 1832, 0, 136, FACING_SOUTH, 0, 1455, 0, 1890, 310,
0},
{14, CONDITION_ALWAYS, 1768, 0, 568, FACING_NORTH, 0, 1540, 440, 1995, 600,
0},
{15, CONDITION_ALWAYS, 1672, 0, 520, FACING_SOUTH, 0, 1540, 440, 1995, 600,
0},
{16, CONDITION_ALWAYS, 1928, 0, 520, FACING_SOUTH, 0, 1540, 440, 1995, 600,
0},
}

Definition at line 1160 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEntrances().

◆ gSolSanctumEntrance_Exits

u32 gSolSanctumEntrance_Exits[]
Initial value:
= {
}
#define SCENE_EXITS(scene)
Definition field_scene.h:72
@ FLAG_PARTY_LEFT_VALE
Definition field_scene.h:50
#define SCENE_EXITS_END
Definition field_scene.h:77
#define SCENE_EXIT_IF(exit, scene, entrance, flag)
Definition field_scene.h:75
#define FLAG_SOL_SANCTUM_ERUPTED
The volcano has erupted and the sanctum's rooms rumble and shake.
Definition flags.h:660
#define EXIT_FLAG_NONE

Definition at line 1193 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetExits().

◆ gSolSanctumEntrancePlacementsOther

struct ScenePlacement gSolSanctumEntrancePlacementsOther[]
Initial value:
= {
}

Definition at line 1219 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetPlacements().

◆ gSolSanctumEntrancePlacements1

struct ScenePlacement gSolSanctumEntrancePlacements1[]
Initial value:
= {
0, 0, 0, FACING_NORTH, TALK_FACE_PARTY, 0 },
0, 0, 0, FACING_NORTH, TALK_FACE_PARTY, 0 },
0, 0, 0, FACING_NORTH, TALK_FACE_PARTY, 0 },
{ 0xcb, 0x0, ACTOR_STAND,
}
#define GARET
Jerald.
#define JENNA
Jasmine.
@ TALK_KEEP_FACING
@ TALK_FACE_PARTY
@ ACTOR_STAND
#define PIXELS(value)

Definition at line 1224 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetPlacements().

◆ gSolSanctumEntrancePlacements1Entrances11To13

struct ScenePlacement gSolSanctumEntrancePlacements1Entrances11To13[]

Definition at line 1236 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetPlacements().

◆ gSolSanctumEntrancePlacements1Entrances14To16

◆ gSolSanctumEntrancePlacements2

struct ScenePlacement gSolSanctumEntrancePlacements2[]
Initial value:

Definition at line 1290 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetPlacements().

◆ gSolSanctumEntranceEventsOther

struct SceneEvent gSolSanctumEntranceEventsOther[]
Initial value:
= {
}
#define SCENE_EVENTS_END

Definition at line 1296 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ gSolSanctumEntranceEvents2

struct SceneEvent gSolSanctumEntranceEvents2[]
Initial value:
= {
{ EVENT_TALK, 8, CONDITION_ALWAYS, MSGNO(MsgValeItIsVeryDangerousToGo) },
{ PSYNERGY_ON_ACTOR(ABILITY_MIND_READ), 8, CONDITION_ALWAYS, MSGNO(MsgValeIAmAllAloneInThis) },
}
@ ABILITY_MIND_READ
Definition ability_ids.h:16
@ EVENT_EXIT
@ EVENT_TALK
#define PSYNERGY_ON_ACTOR(ability)
#define EVENT_SCRIPT(script)
#define SEARCH(target)
#define TOUCH_WALKING_INTO(facing)
@ SEARCH_UNNAMED
static void Event_OpenDoorAndEnter(void)
Walking up to the sanctum's door: it slides open and the leader walks in.
static void Event_DoorTightlyLocked(void)
Searching the door beside the way in.

Definition at line 1300 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ gSolSanctumEntranceEvents1

struct SceneEvent gSolSanctumEntranceEvents1[]
Initial value:
= {
{ 0x21, 7, CONDITION_ALWAYS, 7 },
}
#define FIND_ITEM(item)
#define USE_ITEM(item)
@ SEARCH_CHEST
#define FLAG_SOL_SANCTUM_FIRST_SMALL_JEWEL_FOUND
The chests: the Small Jewel for each minotaur relief, and a Herb.
Definition flags.h:686
@ ITEM_SMALL_JEWEL
Definition item_ids.h:66
static void Event_InspectFirstMinotaurRelief(void)
Searching the first minotaur relief: one eye sparkles, or both once the Small Jewel is set.
static void Event_SetFirstSmallJewel(void)
Using the Small Jewel on the first relief: the leader sets it in and a passage opens.

Definition at line 1309 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ gSolSanctumEntranceEvents1Entrances11To13

struct SceneEvent gSolSanctumEntranceEvents1Entrances11To13[]
Initial value:
= {
{ 0x21, 7, CONDITION_ALWAYS, 7 },
}
@ ABILITY_MOVE
Definition ability_ids.h:15
static void Event_PushBlock(void)
Pushing a block: it slides one cell ahead with the leader behind it, if the cell is free.
Definition bilibin.c:645
@ FACING_EAST
Definition field_scene.h:26
@ FACING_WEST
Definition field_scene.h:30
#define TOUCH_WALKING
#define FLAG_SCENE_TEMP_34
Definition flags.h:765
static void Event_OuterRightBlockMoved(void)
Moving the outer right block with Move: the column it stops in is saved.
static void Event_OuterLeftBlockMoved(void)
Moving the outer left block with Move: the column it stops in is saved.

Definition at line 1332 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ gSolSanctumEntranceEvents1Entrances14To16

struct SceneEvent gSolSanctumEntranceEvents1Entrances14To16[]
Initial value:
= {
{ 0x21, 7, CONDITION_ALWAYS, 7 },
}
static void Event_InnerBlock3Moved(void)
As Event_InnerBlock1Moved, for the third block (actor 11).
static void Event_InnerBlock4Moved(void)
As Event_InnerBlock1Moved, for the fourth block (actor 12).
static void Event_InnerBlock1Moved(void)
Moving an inner block with Move: the column it stops in is saved and the floor under all six is set a...
static void Event_InnerBlock6Moved(void)
As Event_InnerBlock1Moved, for the sixth block (actor 14).
static void Event_SetSecondSmallJewel(void)
Using the Small Jewel on the second relief: as the first, and the inner doorway opens.
static void Event_InspectSecondMinotaurRelief(void)
Searching the second minotaur relief, as the first.
static void Event_InnerBlock5Moved(void)
As Event_InnerBlock1Moved, for the fifth block (actor 13).
static void Event_InnerBlock2Moved(void)
As Event_InnerBlock1Moved, for the second block (actor 10).

Definition at line 1357 of file sol_sanctum_entrance.c.

Referenced by SolSanctumEntrance_GetEvents().

◆ gSolSanctumPushSteps

s32 gSolSanctumPushSteps[]
Initial value:
= {
PUSH_STEP(16, 0), PUSH_STEP(16, 0), PUSH_STEP(16, 0), PUSH_STEP(0, 16),
PUSH_STEP(0, 16), PUSH_STEP(0, 16), PUSH_STEP(0, 16), PUSH_STEP(-16, 0),
PUSH_STEP(-16, 0), PUSH_STEP(-16, 0), PUSH_STEP(-16, 0), PUSH_STEP(0, -16),
PUSH_STEP(0, -16), PUSH_STEP(0, -16), PUSH_STEP(0, -16), PUSH_STEP(16, 0),
}
#define PUSH_STEP(x, z)
Packs a push step: X in the upper halfword, Z in the lower (pixels).

Definition at line 1390 of file sol_sanctum_entrance.c.

Referenced by Event_PushBlock().