Venus Lighthouse, in six scenes: floor switches that slide walls aside, blocks that sink into sockets to open gates, and sparkling passages the leader steps through. More...
Go to the source code of this file.
Data Structures | |
| struct | DirXZ |
| The way a drifting floor carries the party: -1, 0 or 1 on x and on z. More... | |
| struct | Vec |
| Position record used by the shared radial-effect source below. More... | |
Macros | |
| #define | NULL ((void *)0) |
| #define | FLAG_VENUS_LIGHTHOUSE_WALL_MOVED 0x300 |
| #define | FLAG_VENUS_LIGHTHOUSE_WEST_WALL_MOVED 0x306 |
| #define | FLAG_VENUS_LIGHTHOUSE_EAST_WALL_MOVED 0x307 |
| #define | FLAG_VENUS_LIGHTHOUSE_GATE_OPEN 0x301 |
| #define | FLAG_VENUS_LIGHTHOUSE_SOCKETS_A 0x302 |
| #define | FLAG_VENUS_LIGHTHOUSE_SOCKETS_B 0x303 |
| #define | FLAG_VENUS_LIGHTHOUSE_THREE_BLOCK_GATE_OPEN 0x304 |
| #define | FLAG_VENUS_LIGHTHOUSE_PILLAR_GATE_OPEN 0x308 |
| #define | VENUS_LIGHTHOUSE_FIXED_OFFSET(value, bits) |
| #define | VENUS_LIGHTHOUSE_RUN_OPENING_SEQUENCE ((s32 (*)(void))VenusLighthouse_ArriveThroughSparkPassage) |
| #define | VENUS_DESCENT_COLLISION_X 34 |
| #define | VENUS_DESCENT_COLLISION_WIDTH 5 |
| #define | DIRECTION_STEP(dx, dz) |
Enumerations | |
| enum | { ACTOR_ENTRANCE_MAN = 8 , ACTOR_ENTRANCE_SCHOLAR = 11 , ACTOR_DOOR_SCHOLAR = 10 , ACTOR_WALL_BLOCK = 12 , ACTOR_SWITCH_BLOCK = 13 } |
| Actors the events name, by room. More... | |
Functions | |
| static void | VenusLighthouse_StepActorWithDust (struct DirXZ *direction) |
| Follows the selected actor through the passage, adjusting for walls and drops. | |
| static void | VenusLighthouse_AnimatePairedTileWaves (void) |
| Animates the two tile waves before taking the linked passage exit. | |
| static void | VenusLighthouse_EmitWestPassageParticles (void) |
| static void | VenusLighthouse_EmitEastPassageParticles (void) |
| static void | VenusLighthouse_AnimateWestTileWave (void) |
| Animates the western tile wave and starts its lingering particle task. | |
| static void | VenusLighthouse_AnimateEastTileWave (void) |
| Animates the eastern tile wave and starts its lingering particle task. | |
| static void | VenusLighthouse_RaiseLeaderWithSpray (void) |
| Lands the leader on the spray, then raises both toward the exit. | |
| static __inline__ void | SetFlagBits (u8 *flags, u8 bits) |
| static void | VenusLighthouse_ConfigurePassageEffect (struct FieldActor *object, s32 childValue) |
| Sets up a passage effect's motion, collision and child value. | |
| static struct FieldActor * | VenusLighthouse_CreateBlendedPassageEffect (s32 x, s32 y, s32 z, s32 type) |
| Creates a blended passage effect behind the actors. | |
| static struct FieldActor * | VenusLighthouse_CreateOccludingPassageEffect (s32 x, s32 y, s32 z, s32 type) |
| Creates a passage effect that preserves the overlapping actors' draw order. | |
| static void | VenusLighthouse_PushAdjacentBlock (void) |
| Pushes the adjacent block only when its destination and overhead space are clear. | |
| static UNUSED s32 | StagedActor_FillGridAttributeRectangle (u32 layerIndex, s32 x, s32 z, u32 width, u32 height, s32 collisionCode) |
| Fills collision codes in a rectangular area of the requested map layer. | |
| static void | VenusLighthouse_RestoreScriptedChildValues (void) |
| Restores child values encoded in the placed actors' script timers. | |
| static s32 | VenusLighthouse_UpdateChildFromTimer (struct ScriptInterpreter *interpreter) |
| Applies the current script timer's child value and advances the script. | |
| static s32 | VenusLighthouse_PulseChildEffect (union FieldObject *fieldObject) |
| static s32 | VenusLighthouse_EmitRisingParticles (union FieldObject *fieldObject) |
| static s32 | VenusLighthouse_ClearScriptedSpriteFlags (struct ScriptInterpreter *interpreter) |
| Clears the scripted actor's sprite flags and advances its script. | |
| static s32 | VenusLighthouse_EmitPassageSparkTrail (union FieldObject *fieldObject) |
| static void | Event_EnterSparklingPassage (void) |
| Walking north into a sparkling passage: the leader dissolves in sparks and comes out at the passage's exit. | |
| static void | VenusLighthouse_ArriveThroughSparkPassage (void) |
| Brings the leader out of a sparkling passage on a fresh entrance. | |
| static void | Event_SetLeaderAsEffectTarget (void) |
| Stepping onto this spot makes the leader the actor the room's effect follows. | |
| static void | Event_ClearEffectTarget (void) |
| Stepping onto this spot: the room's effect follows no one. | |
| static void | VenusLighthouse_LandWithRadialDust (void) |
| Drops the leader onto the floor and emits the radial landing dust. | |
| static s32 | VenusLighthouse_EmitGateParticles (union FieldObject *fieldObject) |
| static struct FieldActor * | VenusLighthouse_CreateScriptedGateEffect (s32 x, s32 z, const s32 *script) |
| Creates a scripted gate effect at the supplied pixel coordinates. | |
| static s32 | Event_JumpAcrossGap (void) |
| Walking into a one-tile gap: the leader jumps it if the far side is clear. | |
| const struct SceneEntrance * | Scene_GetEntrances (void) |
| const struct SceneRegion * | SceneData_ReturnZero (void) |
| These scenes supply no exit regions. | |
| const u32 * | SceneData_GetPrimaryTable (void) |
| Returns the packed exits shared by the lighthouse scenes. | |
| const struct ScenePlacement * | Scene_GetPlacements (void) |
| Selects and clips the placement rows using the original scene dispatch. | |
| static void | Event_SearchLockedDoor (void) |
| Searching a locked door. "The door is tightly locked.". | |
| static void | Event_HearOfTheAttack (void) |
| Talking to the man at the entrance (or reading his mind): he flickers away. | |
| static void | Event_TalkToWaitingScholar (void) |
| Talking to the scholar who has waited to see inside Venus Lighthouse. | |
| static void | Event_CarryBlockPastWall (void) |
| Carry on the block Move could not push past the wall: once it is set down beyond, it stays there (FLAG_VENUS_LIGHTHOUSE_BLOCK_CARRIED). | |
| static void | Event_ReadRelief (void) |
| Searching a relief shows its words; each relief has its own message, except in English, which keeps one. | |
| static void | Event_HidePath (void) |
| Reveal fading: the hidden path disappears again. | |
| static void | Event_RevealPath (void) |
| Reveal: the hidden path appears and can be walked on. | |
| static void | Event_JumpDown (void) |
| Walking off the ledge before the floor switch is held down: the leader jumps down to the floor below and shakes his head. | |
| static void | Event_SearchStatue (void) |
| Searching the statue: the room flashes and the path it opens changes, and the camera shows it. | |
| static void | Event_MoveBlockTowardWall (void) |
| Move on the block by the wall: once it reaches the wall, the first time only, Garet comes out. | |
| static void | Event_PushBlockTowardWall (void) |
| Pushing the block by the wall: as Move, with Garet's remark at the wall. | |
| static void | Event_MoveBlockOntoSwitch (void) |
| Move on the block by the floor switch: on the switch it sinks in and holds it down. | |
| static void | Event_StepOnFloorSwitch (void) |
| Standing on the floor switch presses it; stepping off releases it. | |
| static void | Event_TalkToScholarByDoor (void) |
| Talking to the scholar by the door: he explored once it opened, until Kraden and the others appeared; the camera looks at the door. | |
| static void | Event_FallThroughFloor (void) |
| Stepping onto the hole in the floor: the leader looks down, falls through and lands in the room below. | |
| static void | Event_MoveDepthBlock (void) |
| Move on one of the three blocks in a row: the floor under each block is solid again and the nearer block draws in front. | |
| static void | Event_PushDepthBlock (void) |
| Pushing one of the three blocks in a row. | |
| static void | Event_LiftCarryBlock (void) |
| Move or Carry starting on one of the two blocks by the gap: their tiles are marked before they move. | |
| static void | Event_MoveCarryBlock (void) |
| Move on one of the two blocks by the gap: blocks still above the floor are solid again. | |
| static void | Event_JumpOrPushCarryBlock (void) |
| Walking into a gap or a block by it: jump the gap, else push the block. | |
| static void | VenusLighthouse_FixBlockAtDestination (struct FieldActor *block) |
| Fixes a block at its destination and restores the cell beneath it. | |
| static void | VenusLighthouse_ReleaseFallenCarryBlock (struct FieldActor *block) |
| Removes a fallen Carry block, or restores collision under the remaining blocks. | |
| static void | Event_CarryBlockAcrossGap (void) |
| Carry on one of the two blocks: set down in its place it stays fixed; dropped into the gap it falls through the floor. | |
| static void | Event_StepOnWallSwitch (void) |
| Stepping on the floor switch: the wall slides aside in a cloud of dust, the first time only, and the party goes on through the next exit. | |
| static void | Event_MoveGateBlock (void) |
| Move on the block before the gate: in its socket it sinks in and the gate opens, the first time only. | |
| static void | Event_JumpOrPushGateBlock (void) |
| Walking into the gap or the block before the gate: jump the gap, else push the block, which may sink into its socket. | |
| static void | Event_MoveSwitchBlock (void) |
| Move on one of the three blocks: a block on a free socket sinks in, and with all three sunk the gate opens. | |
| static void | Event_JumpOrPushSwitchBlock (void) |
| Walking into the gap or one of the three blocks: jump the gap, else push the block, which may sink into a socket. | |
| static s32 | VenusLighthouse_FollowSupportingBlockHeight (union FieldObject *fieldObject) |
| static void | VenusLighthouse_LowerFloatingBlocks (s32 waitFrames) |
| Moves the floating supports to the heights selected by their timers. | |
| static void | VenusLighthouse_StackFloatingBlock (s32 blockId) |
| Moves a floating block atop the highest support in its map cell. | |
| static __inline__ void | FloatingBlock_Settle (struct FieldActor *block, s32 resetValue) |
| Stops a floating block and resets its vertical motion and timer. | |
| static __inline__ void | Actor_CopyPosition (struct FieldActor *destination, struct FieldActor *source) |
| Copies all three fixed-point position components without changing motion. | |
| static void | Event_CarryFloatingBlock (void) |
| Carry on one of the four floating blocks: it settles where it is set down and the platforms under the blocks rise or sink to their weight. | |
| static void | Event_PushPuzzleBlock (void) |
| Pushing a block in the pillar room. | |
| static void | Event_StepOnWestWallSwitch (void) |
| Stepping on the west floor switch: the west wall slides aside, the first time only, and the party goes on through the next exit. | |
| static void | Event_StepOnEastWallSwitch (void) |
| Stepping on the east floor switch: the east wall slides aside, the first time only, and the party goes on through the next exit. | |
| static void | Event_MovePillarSwitchBlock (void) |
| Move on one of the four blocks in the pillar room: on a free socket it sinks in, and with all four sunk the gate opens. | |
| static void | Event_JumpOrPushPillarBlock (void) |
| Walking into the gap or a pillar-room block: jump the gap, else push the block, which may sink into a socket. | |
| static void | Event_EnterRisingPassage (void) |
| Walking south into the passage: the leader rises out of the room to the floor above. | |
| const struct SceneEvent * | Scene_GetEvents (void) |
| Selects the puzzle interactions and dialogue for the current lighthouse scene. | |
| static void | VenusLighthouse_PrepareStandingActor (s32 actorId) |
| Prepares a stationary actor with the room's initial collision and draw state. | |
| static void | VenusLighthouse_VisitPillarActors (void) |
| Visits the four pillar actors through the object lookup service. | |
| s32 | Scene_RunEntrySetup (void) |
| Restores puzzle progress, actors and entrance effects for all six scenes. | |
| static void | Event_DriftNorth (void) |
| Standing on this floor carries the party north in a trail of dust; at a ledge they drop down. | |
| static void | Event_DriftSouth (void) |
| As Event_DriftNorth, south. | |
| static void | Event_DriftWest (void) |
| As Event_DriftNorth, west. | |
| static void | Event_DriftEast (void) |
| As Event_DriftNorth, east. | |
| static __inline__ void | Rubble_SetScaleAndSpin (struct EffectOptions *options) |
| Chooses the particle scales and spin used by the tile-wave animations. | |
| static void | VenusLighthouse_SpawnRandomParticles (s32 x, s32 z) |
| Emits the scheduled particles at the supplied passage coordinates. | |
| static s32 | VenusLighthouse_UpdateRisingSpray (union FieldObject *fieldObject) |
| static s32 | VenusLighthouse_DispatchPushScript (struct ScriptInterpreter *interpreter) |
| Selects the block's push script from its direction, support animation and socket. | |
Venus Lighthouse, in six scenes: floor switches that slide walls aside, blocks that sink into sockets to open gates, and sparkling passages the leader steps through.
Definition in file venus_lighthouse.c.
| #define NULL ((void *)0) |
Definition at line 19 of file venus_lighthouse.c.
| #define FLAG_VENUS_LIGHTHOUSE_WALL_MOVED 0x300 |
Definition at line 55 of file venus_lighthouse.c.
Referenced by Event_StepOnWallSwitch(), and Scene_RunEntrySetup().
| #define FLAG_VENUS_LIGHTHOUSE_WEST_WALL_MOVED 0x306 |
Definition at line 56 of file venus_lighthouse.c.
Referenced by Event_StepOnWestWallSwitch(), Scene_RunEntrySetup(), and VenusLighthouse_AnimateWestTileWave().
| #define FLAG_VENUS_LIGHTHOUSE_EAST_WALL_MOVED 0x307 |
Definition at line 57 of file venus_lighthouse.c.
Referenced by Event_StepOnEastWallSwitch(), Scene_RunEntrySetup(), and VenusLighthouse_AnimateEastTileWave().
| #define FLAG_VENUS_LIGHTHOUSE_GATE_OPEN 0x301 |
Definition at line 60 of file venus_lighthouse.c.
Referenced by Event_MoveGateBlock(), and Scene_RunEntrySetup().
| #define FLAG_VENUS_LIGHTHOUSE_SOCKETS_A 0x302 |
Definition at line 61 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock(), and Scene_RunEntrySetup().
| #define FLAG_VENUS_LIGHTHOUSE_SOCKETS_B 0x303 |
Definition at line 62 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock().
| #define FLAG_VENUS_LIGHTHOUSE_THREE_BLOCK_GATE_OPEN 0x304 |
Definition at line 63 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock(), and Scene_RunEntrySetup().
| #define FLAG_VENUS_LIGHTHOUSE_PILLAR_GATE_OPEN 0x308 |
Definition at line 64 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock(), and Scene_RunEntrySetup().
| #define VENUS_LIGHTHOUSE_FIXED_OFFSET | ( | value, | |
| bits ) |
Definition at line 71 of file venus_lighthouse.c.
Referenced by VenusLighthouse_EmitPassageSparkTrail(), VenusLighthouse_RaiseLeaderWithSpray(), and VenusLighthouse_StepActorWithDust().
| #define VENUS_LIGHTHOUSE_RUN_OPENING_SEQUENCE ((s32 (*)(void))VenusLighthouse_ArriveThroughSparkPassage) |
Definition at line 78 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup().
| #define VENUS_DESCENT_COLLISION_X 34 |
Definition at line 86 of file venus_lighthouse.c.
Referenced by Event_FallThroughFloor().
| #define VENUS_DESCENT_COLLISION_WIDTH 5 |
Definition at line 87 of file venus_lighthouse.c.
Referenced by Event_FallThroughFloor().
| #define DIRECTION_STEP | ( | dx, | |
| dz ) |
Definition at line 3314 of file venus_lighthouse.c.
| anonymous enum |
Actors the events name, by room.
Outside the entrance: the man who tells of the attack and the scholar waiting to go in. In the room with the floor switch: the scholar by the door, the block Move pushes to the wall and the block that holds the switch down.
| Enumerator | |
|---|---|
| ACTOR_ENTRANCE_MAN | |
| ACTOR_ENTRANCE_SCHOLAR | |
| ACTOR_DOOR_SCHOLAR | |
| ACTOR_WALL_BLOCK | |
| ACTOR_SWITCH_BLOCK | |
Definition at line 109 of file venus_lighthouse.c.
|
static |
Follows the selected actor through the passage, adjusting for walls and drops.
Definition at line 2788 of file venus_lighthouse.c.
Referenced by Event_DriftEast(), Event_DriftNorth(), Event_DriftSouth(), Event_DriftWest(), and VenusLighthouse_StepActorWithDust().
|
static |
Animates the two tile waves before taking the linked passage exit.
Definition at line 2884 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_AnimatePairedTileWaves().
|
static |
Definition at line 2958 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), VenusLighthouse_AnimateWestTileWave(), and VenusLighthouse_EmitWestPassageParticles().
|
static |
Definition at line 2962 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), VenusLighthouse_AnimateEastTileWave(), and VenusLighthouse_EmitEastPassageParticles().
|
static |
Animates the western tile wave and starts its lingering particle task.
Definition at line 2967 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_AnimateWestTileWave().
|
static |
Animates the eastern tile wave and starts its lingering particle task.
Definition at line 3027 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_AnimateEastTileWave().
|
static |
Lands the leader on the spray, then raises both toward the exit.
Definition at line 3124 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_RaiseLeaderWithSpray().
Definition at line 131 of file venus_lighthouse.c.
Referenced by Event_JumpDown(), and SetFlagBits().
|
static |
Sets up a passage effect's motion, collision and child value.
Definition at line 134 of file venus_lighthouse.c.
Referenced by VenusLighthouse_ConfigurePassageEffect(), VenusLighthouse_CreateBlendedPassageEffect(), and VenusLighthouse_CreateOccludingPassageEffect().
|
static |
Creates a blended passage effect behind the actors.
Definition at line 144 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock(), Event_EnterRisingPassage(), Event_FallThroughFloor(), Scene_RunEntrySetup(), VenusLighthouse_CreateBlendedPassageEffect(), and VenusLighthouse_ReleaseFallenCarryBlock().
|
static |
Creates a passage effect that preserves the overlapping actors' draw order.
Definition at line 159 of file venus_lighthouse.c.
Referenced by Event_MoveGateBlock(), Event_MovePillarSwitchBlock(), Event_MoveSwitchBlock(), and VenusLighthouse_CreateOccludingPassageEffect().
|
static |
Pushes the adjacent block only when its destination and overhead space are clear.
Definition at line 181 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushCarryBlock(), Event_JumpOrPushGateBlock(), Event_JumpOrPushPillarBlock(), Event_JumpOrPushSwitchBlock(), Event_PushBlockTowardWall(), Event_PushDepthBlock(), Event_PushPuzzleBlock(), and VenusLighthouse_PushAdjacentBlock().
|
static |
Fills collision codes in a rectangular area of the requested map layer.
Definition at line 261 of file venus_lighthouse.c.
|
static |
Restores child values encoded in the placed actors' script timers.
Definition at line 290 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_RestoreScriptedChildValues().
|
static |
Applies the current script timer's child value and advances the script.
Definition at line 304 of file venus_lighthouse.c.
Referenced by VenusLighthouse_UpdateChildFromTimer().
|
static |
Definition at line 317 of file venus_lighthouse.c.
Referenced by VenusLighthouse_PulseChildEffect().
|
static |
Definition at line 342 of file venus_lighthouse.c.
Referenced by Event_JumpDown(), and VenusLighthouse_EmitRisingParticles().
|
static |
Clears the scripted actor's sprite flags and advances its script.
Definition at line 370 of file venus_lighthouse.c.
Referenced by VenusLighthouse_ClearScriptedSpriteFlags().
|
static |
Definition at line 386 of file venus_lighthouse.c.
Referenced by Event_EnterSparklingPassage(), VenusLighthouse_ArriveThroughSparkPassage(), and VenusLighthouse_EmitPassageSparkTrail().
|
static |
Walking north into a sparkling passage: the leader dissolves in sparks and comes out at the passage's exit.
Definition at line 424 of file venus_lighthouse.c.
Referenced by Event_EnterSparklingPassage().
|
static |
Brings the leader out of a sparkling passage on a fresh entrance.
Definition at line 453 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_ArriveThroughSparkPassage().
|
static |
Stepping onto this spot makes the leader the actor the room's effect follows.
Definition at line 488 of file venus_lighthouse.c.
Referenced by Event_SetLeaderAsEffectTarget().
|
static |
Stepping onto this spot: the room's effect follows no one.
Definition at line 493 of file venus_lighthouse.c.
Referenced by Event_ClearEffectTarget().
|
static |
Drops the leader onto the floor and emits the radial landing dust.
Definition at line 500 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_LandWithRadialDust().
|
static |
Definition at line 556 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), VenusLighthouse_CreateScriptedGateEffect(), and VenusLighthouse_EmitGateParticles().
|
static |
Creates a scripted gate effect at the supplied pixel coordinates.
Definition at line 599 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock(), Event_MoveSwitchBlock(), and VenusLighthouse_CreateScriptedGateEffect().
|
static |
Walking into a one-tile gap: the leader jumps it if the far side is clear.
Returns 1 after a jump, 0 when there was none.
Definition at line 631 of file venus_lighthouse.c.
Referenced by Event_JumpAcrossGap(), Event_JumpOrPushCarryBlock(), Event_JumpOrPushGateBlock(), Event_JumpOrPushPillarBlock(), and Event_JumpOrPushSwitchBlock().
| const struct SceneEntrance * Scene_GetEntrances | ( | void | ) |
Definition at line 699 of file venus_lighthouse.c.
| const struct SceneRegion * SceneData_ReturnZero | ( | void | ) |
These scenes supply no exit regions.
Definition at line 721 of file venus_lighthouse.c.
| const u32 * SceneData_GetPrimaryTable | ( | void | ) |
Returns the packed exits shared by the lighthouse scenes.
Definition at line 724 of file venus_lighthouse.c.
Referenced by SceneData_GetPrimaryTable().
| const struct ScenePlacement * Scene_GetPlacements | ( | void | ) |
Selects and clips the placement rows using the original scene dispatch.
Definition at line 729 of file venus_lighthouse.c.
|
static |
Searching a locked door. "The door is tightly locked.".
Definition at line 766 of file venus_lighthouse.c.
|
static |
Talking to the man at the entrance (or reading his mind): he flickers away.
"Venus Lighthouse was attacked by strange wanderers..."
Definition at line 774 of file venus_lighthouse.c.
Referenced by Event_HearOfTheAttack().
|
static |
Talking to the scholar who has waited to see inside Venus Lighthouse.
Definition at line 801 of file venus_lighthouse.c.
Referenced by Event_TalkToWaitingScholar().
|
static |
Carry on the block Move could not push past the wall: once it is set down beyond, it stays there (FLAG_VENUS_LIGHTHOUSE_BLOCK_CARRIED).
Definition at line 812 of file venus_lighthouse.c.
Referenced by Event_CarryBlockPastWall().
|
static |
Searching a relief shows its words; each relief has its own message, except in English, which keeps one.
"There are words carved into the relief..."
Definition at line 825 of file venus_lighthouse.c.
Referenced by Event_ReadRelief().
|
static |
Reveal fading: the hidden path disappears again.
Definition at line 843 of file venus_lighthouse.c.
Referenced by Event_HidePath().
|
static |
Reveal: the hidden path appears and can be walked on.
Definition at line 863 of file venus_lighthouse.c.
Referenced by Event_RevealPath().
|
static |
Walking off the ledge before the floor switch is held down: the leader jumps down to the floor below and shakes his head.
Definition at line 884 of file venus_lighthouse.c.
Referenced by Event_JumpDown().
|
static |
Searching the statue: the room flashes and the path it opens changes, and the camera shows it.
"The statue speaks to Isaac's soul..."
Definition at line 924 of file venus_lighthouse.c.
Referenced by Event_SearchStatue().
|
static |
Move on the block by the wall: once it reaches the wall, the first time only, Garet comes out.
"Hmmm. We can't push the block farther than this."
Definition at line 999 of file venus_lighthouse.c.
Referenced by Event_MoveBlockTowardWall(), and Event_PushBlockTowardWall().
|
static |
Pushing the block by the wall: as Move, with Garet's remark at the wall.
Definition at line 1058 of file venus_lighthouse.c.
Referenced by Event_PushBlockTowardWall().
|
static |
Move on the block by the floor switch: on the switch it sinks in and holds it down.
Definition at line 1069 of file venus_lighthouse.c.
Referenced by Event_MoveBlockOntoSwitch().
|
static |
Standing on the floor switch presses it; stepping off releases it.
Definition at line 1089 of file venus_lighthouse.c.
Referenced by Event_StepOnFloorSwitch().
|
static |
Talking to the scholar by the door: he explored once it opened, until Kraden and the others appeared; the camera looks at the door.
Definition at line 1117 of file venus_lighthouse.c.
Referenced by Event_TalkToScholarByDoor().
|
static |
Stepping onto the hole in the floor: the leader looks down, falls through and lands in the room below.
Definition at line 1138 of file venus_lighthouse.c.
Referenced by Event_FallThroughFloor().
|
static |
Move on one of the three blocks in a row: the floor under each block is solid again and the nearer block draws in front.
Definition at line 1204 of file venus_lighthouse.c.
Referenced by Event_MoveDepthBlock(), Event_PushDepthBlock(), and Scene_RunEntrySetup().
|
static |
Pushing one of the three blocks in a row.
Definition at line 1234 of file venus_lighthouse.c.
Referenced by Event_PushDepthBlock().
|
static |
Move or Carry starting on one of the two blocks by the gap: their tiles are marked before they move.
Definition at line 1245 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushCarryBlock(), and Event_LiftCarryBlock().
|
static |
Move on one of the two blocks by the gap: blocks still above the floor are solid again.
Definition at line 1259 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushCarryBlock(), Event_MoveCarryBlock(), Scene_RunEntrySetup(), and VenusLighthouse_ReleaseFallenCarryBlock().
|
static |
Walking into a gap or a block by it: jump the gap, else push the block.
Definition at line 1274 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushCarryBlock().
|
static |
Fixes a block at its destination and restores the cell beneath it.
Definition at line 1286 of file venus_lighthouse.c.
Referenced by Event_CarryBlockAcrossGap(), Scene_RunEntrySetup(), and VenusLighthouse_FixBlockAtDestination().
|
static |
Removes a fallen Carry block, or restores collision under the remaining blocks.
Definition at line 1299 of file venus_lighthouse.c.
Referenced by Event_CarryBlockAcrossGap(), and VenusLighthouse_ReleaseFallenCarryBlock().
|
static |
Carry on one of the two blocks: set down in its place it stays fixed; dropped into the gap it falls through the floor.
Definition at line 1322 of file venus_lighthouse.c.
Referenced by Event_CarryBlockAcrossGap().
|
static |
Stepping on the floor switch: the wall slides aside in a cloud of dust, the first time only, and the party goes on through the next exit.
Definition at line 1345 of file venus_lighthouse.c.
Referenced by Event_StepOnWallSwitch().
|
static |
Move on the block before the gate: in its socket it sinks in and the gate opens, the first time only.
Definition at line 1419 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushGateBlock(), Event_MoveGateBlock(), and Scene_RunEntrySetup().
|
static |
Walking into the gap or the block before the gate: jump the gap, else push the block, which may sink into its socket.
Definition at line 1498 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushGateBlock().
|
static |
Move on one of the three blocks: a block on a free socket sinks in, and with all three sunk the gate opens.
Definition at line 1511 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushSwitchBlock(), Event_MoveSwitchBlock(), and Scene_RunEntrySetup().
|
static |
Walking into the gap or one of the three blocks: jump the gap, else push the block, which may sink into a socket.
Definition at line 1636 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushSwitchBlock().
|
static |
Definition at line 1655 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock(), and VenusLighthouse_FollowSupportingBlockHeight().
|
static |
Moves the floating supports to the heights selected by their timers.
Definition at line 1670 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock(), Scene_RunEntrySetup(), and VenusLighthouse_LowerFloatingBlocks().
|
static |
Moves a floating block atop the highest support in its map cell.
Definition at line 1705 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock(), and VenusLighthouse_StackFloatingBlock().
|
static |
Stops a floating block and resets its vertical motion and timer.
Definition at line 1745 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock(), and FloatingBlock_Settle().
|
static |
Copies all three fixed-point position components without changing motion.
Definition at line 1755 of file venus_lighthouse.c.
Referenced by Actor_CopyPosition(), and Event_CarryFloatingBlock().
|
static |
Carry on one of the four floating blocks: it settles where it is set down and the platforms under the blocks rise or sink to their weight.
Definition at line 1764 of file venus_lighthouse.c.
Referenced by Event_CarryFloatingBlock().
|
static |
Pushing a block in the pillar room.
Definition at line 1863 of file venus_lighthouse.c.
Referenced by Event_PushPuzzleBlock().
|
static |
Stepping on the west floor switch: the west wall slides aside, the first time only, and the party goes on through the next exit.
Definition at line 1872 of file venus_lighthouse.c.
Referenced by Event_StepOnWestWallSwitch().
|
static |
Stepping on the east floor switch: the east wall slides aside, the first time only, and the party goes on through the next exit.
Definition at line 1938 of file venus_lighthouse.c.
Referenced by Event_StepOnEastWallSwitch().
|
static |
Move on one of the four blocks in the pillar room: on a free socket it sinks in, and with all four sunk the gate opens.
Definition at line 2003 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushPillarBlock(), Event_MovePillarSwitchBlock(), and Scene_RunEntrySetup().
|
static |
Walking into the gap or a pillar-room block: jump the gap, else push the block, which may sink into a socket.
Definition at line 2151 of file venus_lighthouse.c.
Referenced by Event_JumpOrPushPillarBlock().
|
static |
Walking south into the passage: the leader rises out of the room to the floor above.
Definition at line 2169 of file venus_lighthouse.c.
Referenced by Event_EnterRisingPassage().
| const struct SceneEvent * Scene_GetEvents | ( | void | ) |
Selects the puzzle interactions and dialogue for the current lighthouse scene.
Definition at line 2184 of file venus_lighthouse.c.
|
static |
Prepares a stationary actor with the room's initial collision and draw state.
Definition at line 2210 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_PrepareStandingActor().
|
static |
Visits the four pillar actors through the object lookup service.
Definition at line 2230 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup(), and VenusLighthouse_VisitPillarActors().
| s32 Scene_RunEntrySetup | ( | void | ) |
Restores puzzle progress, actors and entrance effects for all six scenes.
Definition at line 2241 of file venus_lighthouse.c.
Referenced by Scene_RunEntrySetup().
|
static |
Standing on this floor carries the party north in a trail of dust; at a ledge they drop down.
Definition at line 2751 of file venus_lighthouse.c.
Referenced by Event_DriftNorth().
|
static |
As Event_DriftNorth, south.
Definition at line 2760 of file venus_lighthouse.c.
Referenced by Event_DriftSouth().
|
static |
As Event_DriftNorth, west.
Definition at line 2769 of file venus_lighthouse.c.
Referenced by Event_DriftWest().
|
static |
As Event_DriftNorth, east.
Definition at line 2778 of file venus_lighthouse.c.
Referenced by Event_DriftEast().
|
static |
Chooses the particle scales and spin used by the tile-wave animations.
Definition at line 2875 of file venus_lighthouse.c.
Referenced by Rubble_SetScaleAndSpin(), VenusLighthouse_AnimateEastTileWave(), VenusLighthouse_AnimatePairedTileWaves(), and VenusLighthouse_AnimateWestTileWave().
Emits the scheduled particles at the supplied passage coordinates.
Definition at line 2938 of file venus_lighthouse.c.
Referenced by VenusLighthouse_EmitEastPassageParticles(), VenusLighthouse_EmitWestPassageParticles(), and VenusLighthouse_SpawnRandomParticles().
|
static |
Definition at line 3089 of file venus_lighthouse.c.
Referenced by VenusLighthouse_RaiseLeaderWithSpray(), and VenusLighthouse_UpdateRisingSpray().
|
static |
Selects the block's push script from its direction, support animation and socket.
Definition at line 3198 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| s32 gEffectScript0[] |
Definition at line 3294 of file venus_lighthouse.c.
| s32 gEffectScript1[] |
| s32 gEffectScript2[] |
| u32 gStagedActor_DirectionSteps[] |
Pixel step by direction: X in the upper halfword, Z in the lower.
Definition at line 3317 of file venus_lighthouse.c.
| struct SwitchCell gVenusSwitchCells[] |
Definition at line 3326 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock(), and VenusLighthouse_DispatchPushScript().
| u32 gVenusBlockHeights[] |
Definition at line 3334 of file venus_lighthouse.c.
Referenced by VenusLighthouse_LowerFloatingBlocks().
| struct SwitchCell gVenusPillarCells[] |
Definition at line 3338 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock(), and VenusLighthouse_DispatchPushScript().
| u8 gVenusShapesPushedLeft[] |
Definition at line 3349 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| u8 gVenusShapesPushedRight[] |
Definition at line 3353 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| u8 gVenusShapesPushedUp[] |
Definition at line 3357 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| u8 gVenusShapesPushedDown[] |
Definition at line 3361 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| u8 gVenusSwitchShape0[] |
Definition at line 3365 of file venus_lighthouse.c.
| u8 gVenusSwitchShape1[] |
Definition at line 3369 of file venus_lighthouse.c.
| u8 gVenusSwitchShape2[] |
Definition at line 3373 of file venus_lighthouse.c.
| u8 gVenusSwitchShape3[] |
Definition at line 3377 of file venus_lighthouse.c.
| u8 gVenusPillarShape0[] |
Definition at line 3381 of file venus_lighthouse.c.
| u8 gVenusPillarShape1[] |
Definition at line 3385 of file venus_lighthouse.c.
| u8 gVenusPillarShape2[] |
Definition at line 3389 of file venus_lighthouse.c.
| u8 gVenusPillarShape3[] |
Definition at line 3393 of file venus_lighthouse.c.
| u8 gVenusPillarShape4[] |
Definition at line 3397 of file venus_lighthouse.c.
| u8 gVenusPillarShape5[] |
Definition at line 3401 of file venus_lighthouse.c.
| u8 gVenusPillarShape6[] |
Definition at line 3405 of file venus_lighthouse.c.
| const s32* gEffectScripts[] |
Definition at line 3409 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements2_0[] |
Definition at line 3415 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements3_Data[] |
Definition at line 3422 of file venus_lighthouse.c.
| s32 gVenusLeaderApproachScript[] |
Definition at line 3428 of file venus_lighthouse.c.
Referenced by Event_JumpDown().
| s32 gVenusLighthousePlacements2_1[] |
Definition at line 3444 of file venus_lighthouse.c.
| s32 gVenusSprayScript[] |
Definition at line 3452 of file venus_lighthouse.c.
Referenced by VenusLighthouse_UpdateRisingSpray().
| s32 gVenusLighthousePlacements4_1[] |
Definition at line 3472 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements5_3[] |
Definition at line 3477 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements6_4[] |
Definition at line 3482 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements5_2[] |
Definition at line 3487 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements5_1[] |
Definition at line 3492 of file venus_lighthouse.c.
| s32 gVenusLighthousePlacements6_3[] |
Definition at line 3497 of file venus_lighthouse.c.
| s32 gVenusPushScript[] |
Definition at line 3502 of file venus_lighthouse.c.
Referenced by Event_MoveGateBlock().
| s32 gVenusSettleScriptA[] |
Definition at line 3523 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock().
| s32 gVenusSettleScriptB[] |
Definition at line 3538 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock().
| s32 gVenusRefusedPushScript[] |
Definition at line 3550 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| s32 gVenusSwitchPushScript0_0[] |
| s32 gVenusSwitchPushScript0_1[] |
| s32 gVenusSwitchPushScript1_0[] |
| s32 gVenusSwitchPushScript1_1[] |
| s32 gVenusSwitchPushScript2_1[] |
| s32 gVenusSwitchPushScript2_0[] |
| s32 gVenusSwitchPushScript3_1[] |
| s32 gVenusSwitchPushScript3_0[] |
| s32 gVenusFirstGateScript[] |
| s32 gVenusFirstGateOpenScript[] |
Definition at line 3642 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock().
| s32 gVenusPillarPushScript7_0[] |
Definition at line 3654 of file venus_lighthouse.c.
| s32 gVenusPillarPushScript5_1[] |
Definition at line 3669 of file venus_lighthouse.c.
| s32 gVenusPillarPushScript5_0[] |
Definition at line 3684 of file venus_lighthouse.c.
| s32 gVenusPillarPushScript2_0[] |
| s32 gVenusPillarPushScript3_0[] |
Definition at line 3705 of file venus_lighthouse.c.
| s32 gVenusSecondGateScript[] |
Definition at line 3732 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock().
| s32 gVenusPillarPushScript6_0[] |
Definition at line 3753 of file venus_lighthouse.c.
| s32 gVenusPillarPushScript4_0[] |
Definition at line 3771 of file venus_lighthouse.c.
| s32 gVenusPillarPushScript0_0[] |
| u16 gVenusPushCells[] |
Definition at line 3794 of file venus_lighthouse.c.
Referenced by Event_MoveGateBlock().
| u16 gVenusSettleCells[] |
Definition at line 3798 of file venus_lighthouse.c.
Referenced by Event_MoveSwitchBlock().
| u16 gVenusGateCells[] |
Definition at line 3802 of file venus_lighthouse.c.
Referenced by Event_MovePillarSwitchBlock().
| struct SceneEntrance gVenusLighthouseEntrances1[] |
Definition at line 3806 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gVenusLighthouseEntrancesOther[] |
Definition at line 3813 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gVenusLighthouseEntrances3[] |
Definition at line 3841 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gVenusLighthouseEntrances4[] |
Definition at line 3866 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gVenusLighthouseEntrances5[] |
Definition at line 3881 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gVenusLighthouseEntrances6[] |
Definition at line 3905 of file venus_lighthouse.c.
Referenced by Scene_GetEntrances().
| u32 gVenusLighthousePrimaryTable[] |
Definition at line 3929 of file venus_lighthouse.c.
Referenced by SceneData_GetPrimaryTable().
| struct ScenePlacement gVenusLighthousePlacementsOther[] |
Definition at line 4039 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements1[] |
Definition at line 4043 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements2[] |
Definition at line 4061 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements3[] |
Definition at line 4099 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements4[] |
Definition at line 4113 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements5[] |
Definition at line 4123 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gVenusLighthousePlacements6[] |
Definition at line 4137 of file venus_lighthouse.c.
Referenced by Scene_GetPlacements().
| struct SceneEvent gVenusLighthouseEvents1[] |
Definition at line 4167 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gVenusLighthouseEvents2[] |
Definition at line 4188 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gVenusLighthouseEvents3[] |
Definition at line 4243 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gVenusLighthouseEvents4[] |
Definition at line 4286 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gVenusLighthouseEvents5[] |
Definition at line 4304 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gVenusLighthouseEvents6[] |
Definition at line 4334 of file venus_lighthouse.c.
Referenced by Scene_GetEvents().
| const u8* gVenusSwitchShapes[] |
Definition at line 4385 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| s32* gVenusSwitchPushScript0[] |
Definition at line 4392 of file venus_lighthouse.c.
| s32* gVenusSwitchPushScript1[] |
Definition at line 4399 of file venus_lighthouse.c.
| s32* gVenusSwitchPushScript2[] |
Definition at line 4406 of file venus_lighthouse.c.
| s32* gVenusSwitchPushScript3[] |
Definition at line 4413 of file venus_lighthouse.c.
| s32** gVenusSwitchPushScripts[] |
Definition at line 4420 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| const u8* gVenusPillarShapes[] |
Definition at line 4427 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().
| s32* gVenusPillarPushScript0[] |
Definition at line 4433 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript1[] |
Definition at line 4438 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript2[] |
Definition at line 4442 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript3[] |
Definition at line 4447 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript4[] |
Definition at line 4452 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript5[] |
Definition at line 4457 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript6[] |
Definition at line 4463 of file venus_lighthouse.c.
| s32* gVenusPillarPushScript7[] |
Definition at line 4468 of file venus_lighthouse.c.
| s32** gVenusPillarPushScripts[] |
Definition at line 4473 of file venus_lighthouse.c.
Referenced by VenusLighthouse_DispatchPushScript().