Alchemy
Loading...
Searching...
No Matches

sol_sanctum_statue.c File Reference

Sol Sanctum's statue hall: four statues pushed onto their seals and two that shine their beams at the centre open a hole in the hall's floor, and Kraden explains the puzzle. More...

Go to the source code of this file.

Data Structures

struct  CellCopy
 A block of map cells copied from one place in the map to another. More...
struct  SealScene
 The seal being opened: its cell animations, its flag, where the leader jumps back to and where its statue returns if the story does not go on. More...
union  [union].sScrollingSprites
 Initialization writes each three-word OAM packet; drawing updates its fields. More...

Macros

#define FLAG_SOL_SANCTUM_STATUE_HALL_VISITED   0x30a
#define FLAG_SOL_SANCTUM_STATUE_PUZZLE_EXPLAINED   0x30b
#define SOL_SANCTUM_STATUE_BACK_SCROLL_ROW_Y_OFFSET   8
#define SOL_SANCTUM_STATUE_ROW_SPRITE_COUNT   9
#define SOL_SANCTUM_STATUE_SPRITE_WIDTH   32
#define NULL   ((void *)0)
#define COPY_CELLS(copy)

Enumerations

enum  StatueHallActor {
  ACTOR_KRADEN = ACTOR_FIRST_PLACED , ACTOR_NORTHWEST_STATUE , ACTOR_LEFT_BEAM_STATUE , ACTOR_NORTHEAST_STATUE ,
  ACTOR_RIGHT_BEAM_STATUE , ACTOR_SOUTHWEST_STATUE , ACTOR_SOUTHEAST_STATUE = ACTOR_FIRST_PLACED + 7 , ACTOR_CENTER_STATUE = ACTOR_FIRST_PLACED + 9 ,
  ACTOR_MOVED_CENTER_STATUE
}
 The placed actors: Kraden, the eight statues, and the centre statue in its two places. More...

Functions

static void SolSanctumStatue_InitializeScrollingSprites (void)
 Loads three graphic strips and initializes their scrolling sprite rows.
static void Event_CenterStatueMoved (void)
 Moving the centre statue with Move, or a beam completing the pair: with both beams shining the statue slides into the opened floor and the hall shakes.
static void SolSanctumStatue_PushStatue (s32 statueId, s32 statueColumn, s32 statueRow, s32 leaderColumn, s32 leaderRow)
 Moves the leader and statue together to the centers of their target cells.
static s32 SolSanctumStatue_IsActorAtCell (s32 actorId, s32 column, s32 row)
 Returns 1 when the actor stands in the given map cell.
static void SolSanctumStatue_OpenNorthwestSeal (void)
 Configures the northwest seal animation and statue return position.
static void SolSanctumStatue_OpenNortheastSeal (void)
 Configures the northeast seal animation and statue return position.
static void SolSanctumStatue_OpenSouthwestSeal (void)
 Configures the southwest seal animation and statue return position.
static void SolSanctumStatue_OpenSoutheastSeal (void)
 Configures the southeast seal animation and statue return position.
static void SolSanctumStatue_OpenSeal (void)
 Animates the seal and either advances the story or resets its statue.
static void SolSanctumStatue_ShineLeftBeam (void)
 Draws the left beam and opens the floor when the right beam is also lit.
static void SolSanctumStatue_ShineRightBeam (void)
 Draws the right beam and opens the floor when the left beam is also lit.
static void Event_SayThenWait (s32 speaker, s32 frames)
 Shows the selected message from one speaker and waits the requested frames.
 STATIC_ASSERT (offsetof(struct SealScene, unused)==0xc4)
const struct SceneEntrance * SolSanctumStatue_GetEntrances (void)
const struct SceneRegion * SolSanctumStatue_GetRegions (void)
const u32 * SolSanctumStatue_GetExits (void)
const struct ScenePlacement * SolSanctumStatue_GetPlacements (void)
 Returns Kraden (actor 8), the eight statues (9 to 16), the centre statue (17) and its moved copy (18), then Jenna and Garet.
const struct SceneEvent * SolSanctumStatue_GetEvents (void)
 Returns the statues' Move and push events, each row only until its seal or beam is done.
static s32 SolSanctumStatue_SelectStoryExit (void)
 Chooses the cutscene in the Luna and Sol rooms that a newly opened seal leads to, and requests its exit: the trap (exit 3) once the centre statue has moved, until FLAG_SOL_SANCTUM_STATUE_TRAP_SPRUNG is set; the falling lights (exit 4) before then, until FLAG_SOL_SANCTUM_FALLING_LIGHTS_SEEN is set.
static void SolSanctumStatue_OpenCentralHole (void)
 Animates the floor opening after both light beams meet, then lets the centre statue drop in if it stands there.
static void SolSanctumStatue_VisitStatueHall (void)
 Kraden comes back after the trap to find the hole in the floor, has the party tell how it opened, and decides the statue disarmed the trap.
static void SolSanctumStatue_ExplainStatuePuzzle (void)
 Kraden comes back after the falling lights to warn that the statues are a trap, and leaves the mystery to the party.
static void SolSanctumStatue_RunSealOpenedSequence (void)
 Pans toward the seals' lights, which flash ever faster until the stairway in the floor is uncovered, then restores the camera.
static void SolSanctumStatue_UpdateScrollingSprites (void)
 Draws the three parallax rows while they overlap the screen.
static void Event_CheckAheadFacingNorth (void)
 Walking north over cell code 10: the way ahead is checked as on any field.
static void Event_CheckAheadFacingSouth (void)
 Walking south over cell code 11: the way ahead is checked as on any field.
static UNUSED void SolSanctumStatue_MoveUnusedNorthwestStatue (void)
 Unused sequence moving the northwest statue to its seal position.
s32 SolSanctumStatue_Initialize (void)
 Restores the hall's statues, beams and seals from their flags and plays Kraden's arrival cutscenes.
static void Event_NorthwestStatueMoved (void)
 Moving the northwest statue with Move: on its seal, the seal opens.
static void Event_NortheastStatueMoved (void)
 Moving the northeast statue with Move: on its seal, the seal opens.
static void Event_SouthwestStatueMoved (void)
 Moving the southwest statue with Move: on its seal, the seal opens.
static void Event_SoutheastStatueMoved (void)
 Moving the southeast statue with Move: on its seal, the seal opens.
static void Event_LeftBeamStatueMoved (void)
 Moving the left beam statue with Move: its cell is freed, and in front of the centre it shines its beam.
static void Event_RightBeamStatueMoved (void)
 Moving the right beam statue with Move: as the left one.
static void Event_BlockCenterTriggerCells (void)
 Starting Move beside the centre statue: its cells are blocked while the leader stands in their row.
static void Event_BlockLeftTriggerCell (void)
 Starting Move beside the left beam statue: its cell is blocked while the leader stands beside it.
static void Event_BlockRightTriggerCell (void)
 Starting Move beside the right beam statue: as the left one, on actor 12.
static void Event_PushCenterStatueNorth (void)
 Walking into the centre statue from the south: the leader pushes it north.
static void Event_PushNorthwestStatue (void)
 Walking into the northwest statue: the leader pushes it onto its seal.
static void Event_PushNortheastStatue (void)
 Walking into the northeast statue: the leader pushes it onto its seal.
static void Event_PushSouthwestStatue (void)
 Walking into the southwest statue: the leader pushes it onto its seal.
static void Event_PushSoutheastStatue (void)
 Walking into the southeast statue: the leader pushes it onto its seal.
static void Event_PushLeftBeamStatueEast (void)
 Walking into the left beam statue from the west: it slides east in front of the centre and shines its beam.
static void Event_PushLeftBeamStatueSouth (void)
 Walking into the left beam statue from the north: it slides one cell south.
static void Event_PushLeftBeamStatueNorth (void)
 Walking into the left beam statue from the south: it slides one cell north.
static void Event_PushRightBeamStatueWest (void)
 Walking into the right beam statue from the east: as the left one.
static void Event_PushRightBeamStatueSouth (void)
 Walking into the right beam statue from the north: it slides one cell south.
static void Event_PushRightBeamStatueNorth (void)
 Walking into the right beam statue from the south: it slides one cell north.

Variables

static struct SealScene sSealScene
 The scene's bss, in this order; as commons of one object the linker would sort them itself.
static union  sScrollingSprites
struct SceneEntrance gSolSanctumStatue_Entrances []
u32 gSolSanctumStatue_Exits []
struct ScenePlacement gSolSanctumStatue_Placements []
struct SceneEvent gSolSanctumStatue_Events []
s32 gSolSanctumStatue_ScrollPhase = 0

Detailed Description

Sol Sanctum's statue hall: four statues pushed onto their seals and two that shine their beams at the centre open a hole in the hall's floor, and Kraden explains the puzzle.

Definition in file sol_sanctum_statue.c.

Macro Definition Documentation

◆ FLAG_SOL_SANCTUM_STATUE_HALL_VISITED

#define FLAG_SOL_SANCTUM_STATUE_HALL_VISITED   0x30a

Definition at line 42 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_Initialize().

◆ FLAG_SOL_SANCTUM_STATUE_PUZZLE_EXPLAINED

#define FLAG_SOL_SANCTUM_STATUE_PUZZLE_EXPLAINED   0x30b

Definition at line 43 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_Initialize().

◆ SOL_SANCTUM_STATUE_BACK_SCROLL_ROW_Y_OFFSET

#define SOL_SANCTUM_STATUE_BACK_SCROLL_ROW_Y_OFFSET   8

Definition at line 48 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_UpdateScrollingSprites().

◆ SOL_SANCTUM_STATUE_ROW_SPRITE_COUNT

#define SOL_SANCTUM_STATUE_ROW_SPRITE_COUNT   9

◆ SOL_SANCTUM_STATUE_SPRITE_WIDTH

#define SOL_SANCTUM_STATUE_SPRITE_WIDTH   32

Definition at line 52 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_UpdateScrollingSprites().

◆ NULL

#define NULL   ((void *)0)

Definition at line 73 of file sol_sanctum_statue.c.

◆ COPY_CELLS

#define COPY_CELLS ( copy)
Value:
Map_CopyCellsTo((copy).srcX, (copy).srcY, (copy).destX, (copy).destY, \
(copy).width, (copy).height)

Definition at line 1435 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenSeal().

Enumeration Type Documentation

◆ StatueHallActor

The placed actors: Kraden, the eight statues, and the centre statue in its two places.

Of the statues, four are pushed onto seals and two shine beams at the centre; the other two never move.

Enumerator
ACTOR_KRADEN 
ACTOR_NORTHWEST_STATUE 
ACTOR_LEFT_BEAM_STATUE 
ACTOR_NORTHEAST_STATUE 
ACTOR_RIGHT_BEAM_STATUE 
ACTOR_SOUTHWEST_STATUE 
ACTOR_SOUTHEAST_STATUE 
ACTOR_CENTER_STATUE 
ACTOR_MOVED_CENTER_STATUE 

Definition at line 108 of file sol_sanctum_statue.c.

Function Documentation

◆ SolSanctumStatue_InitializeScrollingSprites()

void SolSanctumStatue_InitializeScrollingSprites ( void )
static

Loads three graphic strips and initializes their scrolling sprite rows.

Definition at line 835 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_Initialize(), and SolSanctumStatue_InitializeScrollingSprites().

◆ Event_CenterStatueMoved()

void Event_CenterStatueMoved ( void )
static

Moving the centre statue with Move, or a beam completing the pair: with both beams shining the statue slides into the opened floor and the hall shakes.

"Something clicked!" Reached by Move on actor 17 until FLAG_SOL_SANCTUM_CENTER_STATUE_MOVED is set, and called by SolSanctumStatue_OpenCentralHole. Sets FLAG_SOL_SANCTUM_CENTER_STATUE_MOVED, and FLAG_SOL_SANCTUM_ALL_SEALS_OPEN when the four seals are open; actor 18 takes the statue's place in the hole.

Definition at line 983 of file sol_sanctum_statue.c.

Referenced by Event_CenterStatueMoved(), and SolSanctumStatue_OpenCentralHole().

◆ SolSanctumStatue_PushStatue()

void SolSanctumStatue_PushStatue ( s32 statueId,
s32 statueColumn,
s32 statueRow,
s32 leaderColumn,
s32 leaderRow )
static

◆ SolSanctumStatue_IsActorAtCell()

s32 SolSanctumStatue_IsActorAtCell ( s32 actorId,
s32 column,
s32 row )
static

◆ SolSanctumStatue_OpenNorthwestSeal()

void SolSanctumStatue_OpenNorthwestSeal ( void )
static

Configures the northwest seal animation and statue return position.

Definition at line 1216 of file sol_sanctum_statue.c.

Referenced by Event_NorthwestStatueMoved(), Event_PushNorthwestStatue(), and SolSanctumStatue_OpenNorthwestSeal().

◆ SolSanctumStatue_OpenNortheastSeal()

void SolSanctumStatue_OpenNortheastSeal ( void )
static

Configures the northeast seal animation and statue return position.

Definition at line 1271 of file sol_sanctum_statue.c.

Referenced by Event_NortheastStatueMoved(), Event_PushNortheastStatue(), and SolSanctumStatue_OpenNortheastSeal().

◆ SolSanctumStatue_OpenSouthwestSeal()

void SolSanctumStatue_OpenSouthwestSeal ( void )
static

Configures the southwest seal animation and statue return position.

Definition at line 1326 of file sol_sanctum_statue.c.

Referenced by Event_PushSouthwestStatue(), Event_SouthwestStatueMoved(), and SolSanctumStatue_OpenSouthwestSeal().

◆ SolSanctumStatue_OpenSoutheastSeal()

void SolSanctumStatue_OpenSoutheastSeal ( void )
static

Configures the southeast seal animation and statue return position.

Definition at line 1381 of file sol_sanctum_statue.c.

Referenced by Event_PushSoutheastStatue(), Event_SoutheastStatueMoved(), and SolSanctumStatue_OpenSoutheastSeal().

◆ SolSanctumStatue_OpenSeal()

void SolSanctumStatue_OpenSeal ( void )
static

Animates the seal and either advances the story or resets its statue.

Called by the four OpenXSeal functions with sSealScene filled in. Sets the seal's flag; when no cutscene follows and the centre statue has not moved, the statue slides back, the leader jumps clear and the flag is cleared again.

Definition at line 1444 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenNortheastSeal(), SolSanctumStatue_OpenNorthwestSeal(), SolSanctumStatue_OpenSeal(), SolSanctumStatue_OpenSoutheastSeal(), and SolSanctumStatue_OpenSouthwestSeal().

◆ SolSanctumStatue_ShineLeftBeam()

void SolSanctumStatue_ShineLeftBeam ( void )
static

Draws the left beam and opens the floor when the right beam is also lit.

Called when the left beam statue reaches its place in front of the centre, until the centre statue has moved. Sets FLAG_SOL_SANCTUM_LEFT_BEAM_SHINING.

Definition at line 1516 of file sol_sanctum_statue.c.

Referenced by Event_LeftBeamStatueMoved(), Event_PushLeftBeamStatueEast(), and SolSanctumStatue_ShineLeftBeam().

◆ SolSanctumStatue_ShineRightBeam()

void SolSanctumStatue_ShineRightBeam ( void )
static

Draws the right beam and opens the floor when the left beam is also lit.

As the left one; sets FLAG_SOL_SANCTUM_RIGHT_BEAM_SHINING.

Definition at line 1541 of file sol_sanctum_statue.c.

Referenced by Event_PushRightBeamStatueWest(), Event_RightBeamStatueMoved(), and SolSanctumStatue_ShineRightBeam().

◆ Event_SayThenWait()

void Event_SayThenWait ( s32 speaker,
s32 frames )
static

◆ STATIC_ASSERT()

STATIC_ASSERT ( offsetof(struct SealScene, unused) = =0xc4)

◆ SolSanctumStatue_GetEntrances()

const struct SceneEntrance * SolSanctumStatue_GetEntrances ( void )

Definition at line 130 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetEntrances().

◆ SolSanctumStatue_GetRegions()

const struct SceneRegion * SolSanctumStatue_GetRegions ( void )

Definition at line 134 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetRegions().

◆ SolSanctumStatue_GetExits()

const u32 * SolSanctumStatue_GetExits ( void )

Definition at line 136 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetExits().

◆ SolSanctumStatue_GetPlacements()

const struct ScenePlacement * SolSanctumStatue_GetPlacements ( void )

Returns Kraden (actor 8), the eight statues (9 to 16), the centre statue (17) and its moved copy (18), then Jenna and Garet.

Definition at line 140 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetPlacements().

◆ SolSanctumStatue_GetEvents()

const struct SceneEvent * SolSanctumStatue_GetEvents ( void )

Returns the statues' Move and push events, each row only until its seal or beam is done.

Definition at line 146 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetEvents().

◆ SolSanctumStatue_SelectStoryExit()

s32 SolSanctumStatue_SelectStoryExit ( void )
static

Chooses the cutscene in the Luna and Sol rooms that a newly opened seal leads to, and requests its exit: the trap (exit 3) once the centre statue has moved, until FLAG_SOL_SANCTUM_STATUE_TRAP_SPRUNG is set; the falling lights (exit 4) before then, until FLAG_SOL_SANCTUM_FALLING_LIGHTS_SEEN is set.

Returns 1 when it requests an exit, otherwise -1.

Definition at line 155 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenSeal(), and SolSanctumStatue_SelectStoryExit().

◆ SolSanctumStatue_OpenCentralHole()

void SolSanctumStatue_OpenCentralHole ( void )
static

Animates the floor opening after both light beams meet, then lets the centre statue drop in if it stands there.

Called by the beams, the second one shining. Sets FLAG_SCENE_TEMP_07.

Definition at line 171 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenCentralHole(), SolSanctumStatue_ShineLeftBeam(), and SolSanctumStatue_ShineRightBeam().

◆ SolSanctumStatue_VisitStatueHall()

void SolSanctumStatue_VisitStatueHall ( void )
static

Kraden comes back after the trap to find the hole in the floor, has the party tell how it opened, and decides the statue disarmed the trap.

Called by SolSanctumStatue_Initialize at entrance 3 (back from the trap) until FLAG_SOL_SANCTUM_STATUE_HALL_VISITED is set, which the caller sets. Clears FLAG_SHOW_LOCATION_NAME.

Definition at line 201 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_Initialize(), and SolSanctumStatue_VisitStatueHall().

◆ SolSanctumStatue_ExplainStatuePuzzle()

void SolSanctumStatue_ExplainStatuePuzzle ( void )
static

Kraden comes back after the falling lights to warn that the statues are a trap, and leaves the mystery to the party.

Called by SolSanctumStatue_Initialize at entrance 4 (back from the falling lights) until FLAG_SOL_SANCTUM_STATUE_PUZZLE_EXPLAINED is set, which the caller sets. Clears FLAG_SHOW_LOCATION_NAME.

Definition at line 360 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_ExplainStatuePuzzle(), and SolSanctumStatue_Initialize().

◆ SolSanctumStatue_RunSealOpenedSequence()

void SolSanctumStatue_RunSealOpenedSequence ( void )
static

Pans toward the seals' lights, which flash ever faster until the stairway in the floor is uncovered, then restores the camera.

Called by SolSanctumStatue_OpenSeal once the seals are open after the centre statue has moved.

Definition at line 566 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenSeal(), and SolSanctumStatue_RunSealOpenedSequence().

◆ SolSanctumStatue_UpdateScrollingSprites()

void SolSanctumStatue_UpdateScrollingSprites ( void )
static

Draws the three parallax rows while they overlap the screen.

Run each frame as a callback that SolSanctumStatue_InitializeScrollingSprites adds.

Definition at line 645 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_InitializeScrollingSprites(), and SolSanctumStatue_UpdateScrollingSprites().

◆ Event_CheckAheadFacingNorth()

void Event_CheckAheadFacingNorth ( void )
static

Walking north over cell code 10: the way ahead is checked as on any field.

Definition at line 696 of file sol_sanctum_statue.c.

Referenced by Event_CheckAheadFacingNorth().

◆ Event_CheckAheadFacingSouth()

void Event_CheckAheadFacingSouth ( void )
static

Walking south over cell code 11: the way ahead is checked as on any field.

Definition at line 704 of file sol_sanctum_statue.c.

Referenced by Event_CheckAheadFacingSouth().

◆ SolSanctumStatue_MoveUnusedNorthwestStatue()

UNUSED void SolSanctumStatue_MoveUnusedNorthwestStatue ( void )
static

Unused sequence moving the northwest statue to its seal position.

Definition at line 712 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_MoveUnusedNorthwestStatue().

◆ SolSanctumStatue_Initialize()

s32 SolSanctumStatue_Initialize ( void )

Restores the hall's statues, beams and seals from their flags and plays Kraden's arrival cutscenes.

Called by Field_RunScene once the actors exist. Sets FLAG_RETREAT_BLOCKED; starts the parallax rows; at entrance 3 plays SolSanctumStatue_VisitStatueHall and at entrance 4 SolSanctumStatue_ExplainStatuePuzzle, each once (setting FLAG_SOL_SANCTUM_STATUE_HALL_VISITED or FLAG_SOL_SANCTUM_STATUE_PUZZLE_EXPLAINED), and not on a return after a battle.

Definition at line 730 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_Initialize().

◆ Event_NorthwestStatueMoved()

void Event_NorthwestStatueMoved ( void )
static

Moving the northwest statue with Move: on its seal, the seal opens.

Reached by Move on actor 9 until FLAG_SOL_SANCTUM_NORTHWEST_SEAL_OPEN is set.

Definition at line 883 of file sol_sanctum_statue.c.

Referenced by Event_NorthwestStatueMoved().

◆ Event_NortheastStatueMoved()

void Event_NortheastStatueMoved ( void )
static

Moving the northeast statue with Move: on its seal, the seal opens.

Reached by Move on actor 11 until FLAG_SOL_SANCTUM_NORTHEAST_SEAL_OPEN is set.

Definition at line 892 of file sol_sanctum_statue.c.

Referenced by Event_NortheastStatueMoved().

◆ Event_SouthwestStatueMoved()

void Event_SouthwestStatueMoved ( void )
static

Moving the southwest statue with Move: on its seal, the seal opens.

Reached by Move on actor 13 until FLAG_SOL_SANCTUM_SOUTHWEST_SEAL_OPEN is set.

Definition at line 901 of file sol_sanctum_statue.c.

Referenced by Event_SouthwestStatueMoved().

◆ Event_SoutheastStatueMoved()

void Event_SoutheastStatueMoved ( void )
static

Moving the southeast statue with Move: on its seal, the seal opens.

Reached by Move on actor 15 until FLAG_SOL_SANCTUM_SOUTHEAST_SEAL_OPEN is set.

Definition at line 910 of file sol_sanctum_statue.c.

Referenced by Event_SoutheastStatueMoved().

◆ Event_LeftBeamStatueMoved()

void Event_LeftBeamStatueMoved ( void )
static

Moving the left beam statue with Move: its cell is freed, and in front of the centre it shines its beam.

Reached by Move on actor 10 until FLAG_SOL_SANCTUM_LEFT_BEAM_SHINING is set.

Definition at line 919 of file sol_sanctum_statue.c.

Referenced by Event_LeftBeamStatueMoved().

◆ Event_RightBeamStatueMoved()

void Event_RightBeamStatueMoved ( void )
static

Moving the right beam statue with Move: as the left one.

Reached by Move on actor 12 until FLAG_SOL_SANCTUM_RIGHT_BEAM_SHINING is set.

Definition at line 928 of file sol_sanctum_statue.c.

Referenced by Event_RightBeamStatueMoved().

◆ Event_BlockCenterTriggerCells()

void Event_BlockCenterTriggerCells ( void )
static

Starting Move beside the centre statue: its cells are blocked while the leader stands in their row.

Reached by the first phase of Move on actor 17 until FLAG_SOL_SANCTUM_CENTER_STATUE_MOVED is set.

Definition at line 938 of file sol_sanctum_statue.c.

Referenced by Event_BlockCenterTriggerCells().

◆ Event_BlockLeftTriggerCell()

void Event_BlockLeftTriggerCell ( void )
static

Starting Move beside the left beam statue: its cell is blocked while the leader stands beside it.

Reached by the first phase of Move on actor 10 until FLAG_SOL_SANCTUM_LEFT_BEAM_SHINING is set.

Definition at line 957 of file sol_sanctum_statue.c.

Referenced by Event_BlockLeftTriggerCell().

◆ Event_BlockRightTriggerCell()

void Event_BlockRightTriggerCell ( void )
static

Starting Move beside the right beam statue: as the left one, on actor 12.

Definition at line 967 of file sol_sanctum_statue.c.

Referenced by Event_BlockRightTriggerCell().

◆ Event_PushCenterStatueNorth()

void Event_PushCenterStatueNorth ( void )
static

Walking into the centre statue from the south: the leader pushes it north.

Reached by walking north into cell code 32 until FLAG_SOL_SANCTUM_CENTER_STATUE_MOVED is set.

Definition at line 1066 of file sol_sanctum_statue.c.

Referenced by Event_PushCenterStatueNorth().

◆ Event_PushNorthwestStatue()

void Event_PushNorthwestStatue ( void )
static

Walking into the northwest statue: the leader pushes it onto its seal.

Reached by walking east into cell code 5 until FLAG_SOL_SANCTUM_NORTHWEST_SEAL_OPEN is set.

Definition at line 1091 of file sol_sanctum_statue.c.

Referenced by Event_PushNorthwestStatue().

◆ Event_PushNortheastStatue()

void Event_PushNortheastStatue ( void )
static

Walking into the northeast statue: the leader pushes it onto its seal.

Reached by walking west into cell code 6 until FLAG_SOL_SANCTUM_NORTHEAST_SEAL_OPEN is set.

Definition at line 1099 of file sol_sanctum_statue.c.

Referenced by Event_PushNortheastStatue().

◆ Event_PushSouthwestStatue()

void Event_PushSouthwestStatue ( void )
static

Walking into the southwest statue: the leader pushes it onto its seal.

Reached by walking east into cell code 7 until FLAG_SOL_SANCTUM_SOUTHWEST_SEAL_OPEN is set.

Definition at line 1107 of file sol_sanctum_statue.c.

Referenced by Event_PushSouthwestStatue().

◆ Event_PushSoutheastStatue()

void Event_PushSoutheastStatue ( void )
static

Walking into the southeast statue: the leader pushes it onto its seal.

Reached by walking west into cell code 8 until FLAG_SOL_SANCTUM_SOUTHEAST_SEAL_OPEN is set.

Definition at line 1115 of file sol_sanctum_statue.c.

Referenced by Event_PushSoutheastStatue().

◆ Event_PushLeftBeamStatueEast()

void Event_PushLeftBeamStatueEast ( void )
static

Walking into the left beam statue from the west: it slides east in front of the centre and shines its beam.

Reached by walking east into cell codes 20 and 21 until FLAG_SOL_SANCTUM_LEFT_BEAM_SHINING is set.

Definition at line 1123 of file sol_sanctum_statue.c.

Referenced by Event_PushLeftBeamStatueEast().

◆ Event_PushLeftBeamStatueSouth()

void Event_PushLeftBeamStatueSouth ( void )
static

Walking into the left beam statue from the north: it slides one cell south.

Reached by walking south into cell code 21 until the beam shines.

Definition at line 1130 of file sol_sanctum_statue.c.

Referenced by Event_PushLeftBeamStatueSouth().

◆ Event_PushLeftBeamStatueNorth()

void Event_PushLeftBeamStatueNorth ( void )
static

Walking into the left beam statue from the south: it slides one cell north.

Reached by walking north into cell codes 23 and 24 until the beam shines.

Definition at line 1144 of file sol_sanctum_statue.c.

Referenced by Event_PushLeftBeamStatueNorth().

◆ Event_PushRightBeamStatueWest()

void Event_PushRightBeamStatueWest ( void )
static

Walking into the right beam statue from the east: as the left one.

Reached by walking west into cell codes 25 and 26 until FLAG_SOL_SANCTUM_RIGHT_BEAM_SHINING is set.

Definition at line 1155 of file sol_sanctum_statue.c.

Referenced by Event_PushRightBeamStatueWest().

◆ Event_PushRightBeamStatueSouth()

void Event_PushRightBeamStatueSouth ( void )
static

Walking into the right beam statue from the north: it slides one cell south.

Reached by walking south into cell code 26 until the beam shines.

Definition at line 1162 of file sol_sanctum_statue.c.

Referenced by Event_PushRightBeamStatueSouth().

◆ Event_PushRightBeamStatueNorth()

void Event_PushRightBeamStatueNorth ( void )
static

Walking into the right beam statue from the south: it slides one cell north.

Reached by walking north into cell codes 28 and 29 until the beam shines.

Definition at line 1172 of file sol_sanctum_statue.c.

Referenced by Event_PushRightBeamStatueNorth().

Variable Documentation

◆ sSealScene

struct SealScene sSealScene
static

The scene's bss, in this order; as commons of one object the linker would sort them itself.

Definition at line 122 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_OpenNortheastSeal(), SolSanctumStatue_OpenNorthwestSeal(), SolSanctumStatue_OpenSeal(), SolSanctumStatue_OpenSoutheastSeal(), and SolSanctumStatue_OpenSouthwestSeal().

◆ sScrollingSprites

◆ gSolSanctumStatue_Entrances

struct SceneEntrance gSolSanctumStatue_Entrances[]
Initial value:
= {
{0, CONDITION_ALWAYS, 287, 0, 176, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{1, CONDITION_ALWAYS, 646, 0, 329, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{2, CONDITION_ALWAYS, 647, 0, 470, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{3, CONDITION_ALWAYS, 576, 0, 136, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{4, CONDITION_ALWAYS, 576, 0, 136, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{5, CONDITION_ALWAYS, 576, 0, 136, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{6, CONDITION_ALWAYS, 576, 0, 136, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{99, CONDITION_ALWAYS, 576, 0, 136, 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 1570 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetEntrances().

◆ gSolSanctumStatue_Exits

u32 gSolSanctumStatue_Exits[]
Initial value:
= {
SCENE_EXITS(12), SCENE_EXIT(1, 11, 2), SCENE_EXIT(2, 13, 1),
SCENE_EXIT(3, 11, 4), SCENE_EXIT(4, 11, 5), SCENE_EXIT(5, 11, 6),
SCENE_EXIT(6, 11, 7), SCENE_EXIT(10, 510, 1), SCENE_EXITS_END,
}
#define SCENE_EXITS(scene)
Definition field_scene.h:72
#define SCENE_EXIT(exit, scene, entrance)
Definition field_scene.h:73
#define SCENE_EXITS_END
Definition field_scene.h:77

Definition at line 1582 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetExits().

◆ gSolSanctumStatue_Placements

struct ScenePlacement gSolSanctumStatue_Placements[]
Initial value:
= {
PIXELS(1608), 0, PIXELS(1608), FACING_SOUTH, TALK_FACE_PARTY, 0 },
PIXELS(288), 0, PIXELS(120), FACING_SOUTH, TALK_FACE_PARTY, 0 },
PIXELS(1608), 0, PIXELS(1608), FACING_SOUTH, TALK_FACE_PARTY, 0 },
PIXELS(560), 0, PIXELS(136), FACING_SOUTH, TALK_FACE_PARTY, 0 },
PIXELS(592), 0, PIXELS(136), FACING_SOUTH, TALK_FACE_PARTY, 0 },
}
#define GARET
Jerald.
#define JENNA
Jasmine.
@ FACING_STEP
Definition field_scene.h:36
@ TALK_FACE_PARTY
@ ACTOR_STAND
#define PLACEMENT_SHARE_PREVIOUS_SPRITE
@ FACING_SOUTHEAST
Definition field_scene.h:27
@ FACING_NORTH
Definition field_scene.h:32
@ FACING_NORTHWEST
Definition field_scene.h:31
#define PIXELS(value)

Definition at line 1589 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetPlacements().

◆ gSolSanctumStatue_Events

struct SceneEvent gSolSanctumStatue_Events[]

Definition at line 1620 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_GetEvents().

◆ gSolSanctumStatue_ScrollPhase

s32 gSolSanctumStatue_ScrollPhase = 0

Definition at line 1683 of file sol_sanctum_statue.c.

Referenced by SolSanctumStatue_UpdateScrollingSprites().