The tunnel ruins, in two scenes of Psynergy puzzles: pillars to push or Move, blocks, bushes for Whirlwind, sinking pillars and puddles for Frost in the first; a pillar for Douse, balance platforms, statues that vanish under Reveal and more pillars in the other. More...
Go to the source code of this file.
Data Structures | |
| struct | Vec |
| Position record used by the shared radial-effect source below. More... | |
Macros | |
| #define | FIELD_STAGED_ACTOR_IMPORTS |
| #define | ACTOR_UPDATE_IDLE ((void (*)(union FieldObject *))SceneActor_SetFlagBitByRelativeDepth) |
| #define | ACTOR_UPDATE_RIDE_BLOCK ((void (*)(union FieldObject *))TunnelRuins_RideBlockBelow) |
| #define | DIRECTION_STEP(dx, dz) |
| Pixel step by direction: X in the upper halfword, Z in the lower. | |
Enumerations | |
| enum | { ACTOR_FIRST_PILLAR_A = ACTOR_FIRST_PLACED , ACTOR_FIRST_PILLAR_B , ACTOR_SECOND_PILLAR_A , ACTOR_SECOND_PILLAR_B , ACTOR_BLOCK_A , ACTOR_BLOCK_B , ACTOR_BLOCK_C , ACTOR_BUSH_A , ACTOR_BUSH_B , ACTOR_BUSH_C , ACTOR_SINKING_PILLAR_A , ACTOR_SINKING_PILLAR_B , ACTOR_PUDDLE_A , ACTOR_PUDDLE_B } |
| The ruins' first scene (SceneId_TunnelRuins1), in the order of its placements: two pairs of pillars to push or Move, three blocks, three bushes for Whirlwind, two pillars that sink into the floor, and two puddles for Frost, both placed with the first sinking pillar. More... | |
| enum | { ACTOR_DOUSE_PILLAR = ACTOR_FIRST_PLACED , ACTOR_DOUSE_PUDDLE , ACTOR_BALANCE_WEST , ACTOR_BALANCE_EAST , ACTOR_CARRY_BLOCK_A , ACTOR_CARRY_BLOCK_B , ACTOR_CARRY_BLOCK_C , ACTOR_FALSE_STATUE_A , ACTOR_FALSE_STATUE_B , ACTOR_EAST_PILLAR_A , ACTOR_EAST_PILLAR_B , ACTOR_LADY_STATUE_A , ACTOR_LADY_STATUE_B , ACTOR_LADY_STATUE_C , ACTOR_LADY_STATUE_D , ACTOR_LADY_STATUE_E } |
| The other ruins scenes: a pillar for Douse with a puddle for Frost, two balance platforms with three blocks to Carry onto them, two statues that vanish under Reveal, two pillars to push in the east, and five statues of the lady to Move before the door. More... | |
| enum | { SPRITE_PUDDLE = 227 , SPRITE_BUSH = 248 , SPRITE_PILLAR = 253 , SPRITE_BLOCK = 254 , SPRITE_SINKING_PILLAR = 255 , SPRITE_CARRY_BLOCK = 256 , SPRITE_BALANCE = 257 , SPRITE_STATUE = 258 , SPRITE_LADY_STATUE = 500 } |
| Sprites, as the sheets show them. More... | |
Functions | |
| static s32 | TunnelRuins_RideBlockBelow (union FieldObject *fieldObject) |
| static void | TunnelRuins_UpdateFirstPillarCells (void) |
| After the first pillars move: redraw their room's cells and mark the cells the pillars stand on. | |
| static void | TunnelRuins_UpdateSecondPillarCells (void) |
| After the second pillars move: the same for their room. | |
| static void | TunnelRuins_UpdateBlockCells (void) |
| After the blocks move: redraw their room's cells and mark the cells the blocks stand on. | |
| static void | TunnelRuins_MarkPushPillarCells (void) |
| Redraws the east pillars' row and marks the cells they stand on. | |
| static s32 | TunnelRuins_RefreshActorAfterShrinking (struct ScriptInterpreter *interpreter) |
| Refreshes the actor presentation after its shrink script finishes. | |
| static __inline__ s32 | TunnelRuins_GetLandingPixel (s32 coordinate) |
| Later patches land at the tile center; the base release uses the target pixel. | |
| static s32 | TunnelRuins_HopLeaderTo (struct FieldPosition *target) |
| The leader hops over the cell ahead to the target, when that cell is no wall and the target is clear; returns 1 when there is no hop. | |
| static void | Event_HopSouth (void) |
| Walking south into a gap: the leader hops 32 pixels across it. | |
| static void | Event_HopNorth (void) |
| Walking north into a gap: the leader hops 32 pixels across it. | |
| static void | TunnelRuins_UpdateTrackedActor (void) |
| The fade overlay follows the leader only south of a depth set per room. | |
| static s32 | TunnelRuins_SplashDousedPillar (union FieldObject *fieldObject) |
| static s32 | TunnelRuins_PuddleFollowsPillar (union FieldObject *fieldObject) |
| static void | TunnelRuins_WaitForActorToLand (struct FieldActor *actor) |
| Waits up to 60 frames for landing, then stops vertical motion at the terrain. | |
| static void | Event_HopDownStep (void) |
| Walking south off a step: the leader hops 12 pixels forward and slides 16 pixels down, kicking up dust behind. | |
| const struct SceneEntrance * | TunnelRuins_GetEntrances (void) |
| The entrances of the first ruins, the second, or the rooms beyond. | |
| const struct SceneRegion * | TunnelRuins_GetRegions (void) |
| const u32 * | TunnelRuins_GetExits (void) |
| const struct ScenePlacement * | TunnelRuins_GetPlacements (void) |
| The first ruins' actors or the other ruins' (the enums above), each prepared to appear only when it lies in the view. | |
| static void | Event_PushFirstPillars (void) |
| Walking into the first pair of pillars pushes them along. | |
| static void | Event_HopWest (void) |
| Walking west into a gap: the leader hops 32 pixels across it. | |
| static void | Event_PushSecondPillars (void) |
| Walking into the second pair of pillars pushes them along. | |
| static void | Event_JumpDownLedge (void) |
| Walking south off a ledge: the leader jumps down. | |
| static void | Event_HopEast (void) |
| Walking east into a gap: the leader hops 32 pixels across it. | |
| static void | Event_PushBlocks (void) |
| Walking into the blocks pushes the one in front along. | |
| static void | Event_HopSouthOrPushBlocks (void) |
| Walking south at the blocks: the leader hops a gap if there is one, and pushes the block in front otherwise. | |
| static void | Event_BlowAwayBushA (void) |
| Whirlwind on bush A blows it away. | |
| static void | Event_BlowAwayBushB (void) |
| Whirlwind on bush B blows it away, as for bush A. | |
| static void | Event_BlowAwayBushC (void) |
| Whirlwind on bush C blows it away for good. | |
| static void | Event_HopWestUnlessAtCell32x50 (void) |
| Hops west as Event_HopWest, except from cell (32, 50). | |
| static void | Event_HopNorthUnlessAtCell30x52 (void) |
| Hops north as Event_HopNorth, except from cell (30, 52). | |
| static __inline__ void | TunnelRuins_AnimateLoweringImpact (s32 sourceColumn, s32 column, s32 row) |
| Draws an impact frame of the passage and starts a decaying vertical shake. | |
| static void | Event_SinkPillarA (void) |
| Moving sinking pillar A into column 46: it sinks 16 pixels into the floor in a cloud of dust, puddle A appears on it, and the floor beside it changes in two jolts that shake the screen. | |
| static void | Event_PushSinkingPillarA (void) |
| Walking into sinking pillar A pushes it, and it sinks if it reaches column 46 (until FLAG_TUNNEL_RUINS_PILLAR_A_SUNK). | |
| static void | Event_FreezePuddleA (void) |
| Frost on puddle A freezes it into a pillar of ice. | |
| static void | Event_SinkPillarB (void) |
| Moving sinking pillar B into column 48 once Douse has soaked it: it sinks as pillar A does, and puddle B appears on it. | |
| static void | Event_PushSinkingPillarB (void) |
| Walking into sinking pillar B pushes it, and it sinks if it is soaked and reaches column 48. | |
| static void | Event_DouseBeginsOnPillarB (void) |
| As Douse begins on sinking pillar B, water splashes on it. | |
| static void | Event_DousePillarB (void) |
| Douse soaks sinking pillar B, which sinks at once if it is in column 48. | |
| static void | Event_FreezePuddleB (void) |
| Frost on puddle B freezes it into a pillar of ice. | |
| static void | Event_ReadFirstStatue (void) |
| Searching the first statue: it speaks to the leader's soul of the lady whose leave opens the way up Venus Lighthouse, or, once the statue at Venus Lighthouse has answered (flag 0x982 or 0x983), that the path will not open here. | |
| static void | Event_MoveDousePillar (void) |
| Moving the Douse pillar (until its puddle is frozen): nothing more happens. | |
| static void | Event_PushDousePillar (void) |
| Walking into the Douse pillar pushes it along. | |
| static void | Event_DouseBeginsOnPillar (void) |
| As Douse begins on the pillar, water splashes on it and it is soaked; its puddle follows it from then on. | |
| static void | Event_FreezeDousePuddle (void) |
| Frost on the pillar's puddle freezes it into a pillar of ice where it stands. | |
| static void | TunnelRuins_SettleBalance (s32 wait) |
| The balance platforms move to the heights their weights give them (their timers index gTunnelRuins_BalanceHeights), with sounds when wait is not 0; whatever then stands less than 30 pixels down can be walked on. | |
| static void | TunnelRuins_DropBlockOnStack (s32 actorId) |
| A carried block drops onto the highest platform or block in its cell and lands with a thud and a ring of dust. | |
| static void | Event_SetBlockOnBalance (void) |
| Setting down a block with Carry: one dropped into a pit is gone; one set in row 9 drops onto the balance platform below it, which sinks a step while the other rises. | |
| static void | Event_PushObject (void) |
| Walking into a pushable object pushes it along. | |
| static void | Event_MoveEastPillar (void) |
| Moving either east pillar: whether each stands a cell west of its place is kept for the next visit. | |
| static void | Event_PushEastPillar (void) |
| Walking into an east pillar pushes it along, and its place is kept. | |
| static void | Event_ShowFalseStatues (void) |
| The two false statues stand, blocking their cells: on entering their rooms and at Reveal's phase 4. | |
| static void | Event_HideFalseStatues (void) |
| At Reveal's phase 5 the two false statues vanish and their cells can be walked through. | |
| static void | Event_MoveLadyStatue (void) |
| Moving a statue of the lady: with all five on their marks (cells (25, 49), (23, 49), (25, 47), (23, 47) and (24, 48)) the camera turns to the door as it opens; moving one off again closes it. | |
| static void | Event_PushLadyStatue (void) |
| Walking into a statue of the lady pushes it along, then checks the door. | |
| static void | Event_ReadSecondStatue (void) |
| Searching the second statue. | |
| static void | Event_SearchLockedDoor (void) |
| Searching the door: it is tightly locked. | |
| const struct SceneEvent * | TunnelRuins_GetEvents (void) |
| The first ruins' events, or the other ruins'. | |
| s32 | TunnelRuins_Initialize (void) |
| On entering a room: the puzzle as it was left, and the route the statue at Venus Lighthouse chose (flag 0x982 or 0x983). | |
The tunnel ruins, in two scenes of Psynergy puzzles: pillars to push or Move, blocks, bushes for Whirlwind, sinking pillars and puddles for Frost in the first; a pillar for Douse, balance platforms, statues that vanish under Reveal and more pillars in the other.
Definition in file tunnel_ruins.c.
| #define FIELD_STAGED_ACTOR_IMPORTS |
Definition at line 19 of file tunnel_ruins.c.
| #define ACTOR_UPDATE_IDLE ((void (*)(union FieldObject *))SceneActor_SetFlagBitByRelativeDepth) |
Definition at line 400 of file tunnel_ruins.c.
Referenced by Event_FreezeDousePuddle(), and TunnelRuins_Initialize().
| #define ACTOR_UPDATE_RIDE_BLOCK ((void (*)(union FieldObject *))TunnelRuins_RideBlockBelow) |
Definition at line 406 of file tunnel_ruins.c.
Referenced by TunnelRuins_Initialize().
| #define DIRECTION_STEP | ( | dx, | |
| dz ) |
Pixel step by direction: X in the upper halfword, Z in the lower.
Definition at line 1653 of file tunnel_ruins.c.
| anonymous enum |
The ruins' first scene (SceneId_TunnelRuins1), in the order of its placements: two pairs of pillars to push or Move, three blocks, three bushes for Whirlwind, two pillars that sink into the floor, and two puddles for Frost, both placed with the first sinking pillar.
Definition at line 53 of file tunnel_ruins.c.
| anonymous enum |
The other ruins scenes: a pillar for Douse with a puddle for Frost, two balance platforms with three blocks to Carry onto them, two statues that vanish under Reveal, two pillars to push in the east, and five statues of the lady to Move before the door.
Definition at line 74 of file tunnel_ruins.c.
| anonymous enum |
Sprites, as the sheets show them.
| Enumerator | |
|---|---|
| SPRITE_PUDDLE | |
| SPRITE_BUSH | |
| SPRITE_PILLAR | |
| SPRITE_BLOCK | |
| SPRITE_SINKING_PILLAR | |
| SPRITE_CARRY_BLOCK | |
| SPRITE_BALANCE | |
| SPRITE_STATUE | |
| SPRITE_LADY_STATUE | |
Definition at line 94 of file tunnel_ruins.c.
|
static |
Definition at line 873 of file tunnel_ruins.c.
Referenced by Event_SetBlockOnBalance(), and TunnelRuins_RideBlockBelow().
|
static |
After the first pillars move: redraw their room's cells and mark the cells the pillars stand on.
Reached by Move on either of the first pillars, and called by Event_PushFirstPillars.
Definition at line 1278 of file tunnel_ruins.c.
Referenced by Event_PushFirstPillars(), TunnelRuins_Initialize(), and TunnelRuins_UpdateFirstPillarCells().
|
static |
After the second pillars move: the same for their room.
Reached by Move on either of the second pillars, and called by Event_PushSecondPillars.
Definition at line 1302 of file tunnel_ruins.c.
Referenced by Event_PushSecondPillars(), TunnelRuins_Initialize(), and TunnelRuins_UpdateSecondPillarCells().
|
static |
After the blocks move: redraw their room's cells and mark the cells the blocks stand on.
Reached by Move on any of the three blocks, and called by Event_PushBlocks.
Definition at line 1326 of file tunnel_ruins.c.
Referenced by Event_PushBlocks(), TunnelRuins_Initialize(), and TunnelRuins_UpdateBlockCells().
|
static |
Redraws the east pillars' row and marks the cells they stand on.
Definition at line 1351 of file tunnel_ruins.c.
Referenced by Event_MoveEastPillar(), TunnelRuins_Initialize(), and TunnelRuins_MarkPushPillarCells().
|
static |
Refreshes the actor presentation after its shrink script finishes.
Definition at line 137 of file tunnel_ruins.c.
Referenced by TunnelRuins_RefreshActorAfterShrinking().
Later patches land at the tile center; the base release uses the target pixel.
Definition at line 145 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetLandingPixel(), and TunnelRuins_HopLeaderTo().
|
static |
The leader hops over the cell ahead to the target, when that cell is no wall and the target is clear; returns 1 when there is no hop.
Definition at line 155 of file tunnel_ruins.c.
Referenced by Event_HopEast(), Event_HopNorth(), Event_HopSouth(), Event_HopSouthOrPushBlocks(), Event_HopWest(), and TunnelRuins_HopLeaderTo().
|
static |
Walking south into a gap: the leader hops 32 pixels across it.
Reached by walking south into cell codes 29, 30 and 50 in the first ruins and 29 in the other ruins.
Definition at line 198 of file tunnel_ruins.c.
|
static |
Walking north into a gap: the leader hops 32 pixels across it.
Reached by walking north into cell codes 29 and 30 in the first ruins and 29 in the other ruins.
Definition at line 211 of file tunnel_ruins.c.
|
static |
The fade overlay follows the leader only south of a depth set per room.
Definition at line 222 of file tunnel_ruins.c.
Referenced by TunnelRuins_Initialize(), and TunnelRuins_UpdateTrackedActor().
|
static |
Definition at line 265 of file tunnel_ruins.c.
Referenced by TunnelRuins_SplashDousedPillar().
|
static |
Definition at line 303 of file tunnel_ruins.c.
Referenced by Event_DouseBeginsOnPillar(), and TunnelRuins_PuddleFollowsPillar().
|
static |
Waits up to 60 frames for landing, then stops vertical motion at the terrain.
Definition at line 327 of file tunnel_ruins.c.
Referenced by Event_SetBlockOnBalance(), and TunnelRuins_WaitForActorToLand().
|
static |
Walking south off a step: the leader hops 12 pixels forward and slides 16 pixels down, kicking up dust behind.
Reached by walking south into cell code 25 in the first ruins and 27 in the other ruins.
Definition at line 358 of file tunnel_ruins.c.
Referenced by Event_HopDownStep().
| const struct SceneEntrance * TunnelRuins_GetEntrances | ( | void | ) |
The entrances of the first ruins, the second, or the rooms beyond.
Definition at line 413 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEntrances().
| const struct SceneRegion * TunnelRuins_GetRegions | ( | void | ) |
Definition at line 425 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetRegions().
| const u32 * TunnelRuins_GetExits | ( | void | ) |
Definition at line 432 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetExits().
| const struct ScenePlacement * TunnelRuins_GetPlacements | ( | void | ) |
The first ruins' actors or the other ruins' (the enums above), each prepared to appear only when it lies in the view.
Definition at line 436 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetPlacements().
|
static |
Walking into the first pair of pillars pushes them along.
Reached by walking into cell code 24 in the first ruins.
Definition at line 450 of file tunnel_ruins.c.
Referenced by Event_PushFirstPillars().
|
static |
Walking west into a gap: the leader hops 32 pixels across it.
Reached by walking west into the gaps' cells: codes 23, 31 and 32 in the first ruins (31 until puddle A is frozen), 26 and 30 in the other ruins.
Definition at line 461 of file tunnel_ruins.c.
|
static |
Walking into the second pair of pillars pushes them along.
Reached by walking into cell code 26 in the first ruins.
Definition at line 473 of file tunnel_ruins.c.
Referenced by Event_PushSecondPillars().
|
static |
Walking south off a ledge: the leader jumps down.
Reached by walking south into cell codes 23 and 27 (first ruins) and 26 (the other ruins).
Definition at line 484 of file tunnel_ruins.c.
Referenced by Event_JumpDownLedge().
|
static |
Walking east into a gap: the leader hops 32 pixels across it.
Reached by walking east into the gaps' cells: codes 27, 29, 31, 32 and 50 in the first ruins, some only until the puddle beside them is frozen, and 30 in the other ruins.
Definition at line 492 of file tunnel_ruins.c.
|
static |
Walking into the blocks pushes the one in front along.
Reached by walking into cell code 28 in the first ruins.
Definition at line 504 of file tunnel_ruins.c.
Referenced by Event_HopSouthOrPushBlocks(), and Event_PushBlocks().
|
static |
Walking south at the blocks: the leader hops a gap if there is one, and pushes the block in front otherwise.
Reached by walking south into cell code 28 in the first ruins.
Definition at line 516 of file tunnel_ruins.c.
Referenced by Event_HopSouthOrPushBlocks().
|
static |
Whirlwind on bush A blows it away.
Block C changes state with the bushes: with one of bushes A and B gone its rise counter is 1 and its collision bit 3 is set; with both gone, 0 and clear. Reached by Whirlwind on bush A until FLAG_SCENE_TEMP_00 is set; sets it.
Definition at line 532 of file tunnel_ruins.c.
Referenced by Event_BlowAwayBushA().
|
static |
Whirlwind on bush B blows it away, as for bush A.
Reached by Whirlwind on bush B until FLAG_SCENE_TEMP_01 is set; sets it.
Definition at line 551 of file tunnel_ruins.c.
Referenced by Event_BlowAwayBushB().
|
static |
Whirlwind on bush C blows it away for good.
Reached by Whirlwind on bush C until it is gone; sets FLAG_TUNNEL_RUINS_BUSH_BLOWN_AWAY.
Definition at line 571 of file tunnel_ruins.c.
Referenced by Event_BlowAwayBushC().
|
static |
Hops west as Event_HopWest, except from cell (32, 50).
Reached by walking west into cell code 50 in the first ruins.
Definition at line 577 of file tunnel_ruins.c.
Referenced by Event_HopWestUnlessAtCell32x50().
|
static |
Hops north as Event_HopNorth, except from cell (30, 52).
Reached by walking north into cell code 50 in the first ruins.
Definition at line 587 of file tunnel_ruins.c.
Referenced by Event_HopNorthUnlessAtCell30x52().
Draws an impact frame of the passage and starts a decaying vertical shake.
Definition at line 596 of file tunnel_ruins.c.
Referenced by Event_SinkPillarA(), Event_SinkPillarB(), and TunnelRuins_AnimateLoweringImpact().
|
static |
Moving sinking pillar A into column 46: it sinks 16 pixels into the floor in a cloud of dust, puddle A appears on it, and the floor beside it changes in two jolts that shake the screen.
Reached by Move on sinking pillar A until it has sunk, and called by Event_PushSinkingPillarA; sets FLAG_TUNNEL_RUINS_PILLAR_A_SUNK when it sinks.
Definition at line 610 of file tunnel_ruins.c.
Referenced by Event_PushSinkingPillarA(), and Event_SinkPillarA().
|
static |
Walking into sinking pillar A pushes it, and it sinks if it reaches column 46 (until FLAG_TUNNEL_RUINS_PILLAR_A_SUNK).
Reached by walking into cell code 29 in the first ruins.
Definition at line 664 of file tunnel_ruins.c.
Referenced by Event_PushSinkingPillarA().
|
static |
Frost on puddle A freezes it into a pillar of ice.
Reached by Frost on puddle A until FLAG_SCENE_TEMP_00 is set; sets it.
Definition at line 673 of file tunnel_ruins.c.
Referenced by Event_FreezePuddleA().
|
static |
Moving sinking pillar B into column 48 once Douse has soaked it: it sinks as pillar A does, and puddle B appears on it.
Reached by Move on sinking pillar B until it has sunk, and called by Event_PushSinkingPillarB and Event_DousePillarB; sets FLAG_TUNNEL_RUINS_PILLAR_B_SUNK when it sinks.
Definition at line 689 of file tunnel_ruins.c.
Referenced by Event_DousePillarB(), Event_PushSinkingPillarB(), and Event_SinkPillarB().
|
static |
Walking into sinking pillar B pushes it, and it sinks if it is soaked and reaches column 48.
Reached by walking into cell code 30, or east into 32 before Douse has soaked it, in the first ruins.
Definition at line 745 of file tunnel_ruins.c.
Referenced by Event_PushSinkingPillarB().
|
static |
As Douse begins on sinking pillar B, water splashes on it.
Reached by Douse's first phase on sinking pillar B until it is soaked.
Definition at line 754 of file tunnel_ruins.c.
Referenced by Event_DouseBeginsOnPillarB().
|
static |
Douse soaks sinking pillar B, which sinks at once if it is in column 48.
Reached by Douse on sinking pillar B until it is soaked; sets FLAG_SCENE_TEMP_02.
Definition at line 761 of file tunnel_ruins.c.
Referenced by Event_DousePillarB().
|
static |
Frost on puddle B freezes it into a pillar of ice.
Reached by Frost on puddle B until FLAG_SCENE_TEMP_01 is set; sets it.
Definition at line 768 of file tunnel_ruins.c.
Referenced by Event_FreezePuddleB().
|
static |
Searching the first statue: it speaks to the leader's soul of the lady whose leave opens the way up Venus Lighthouse, or, once the statue at Venus Lighthouse has answered (flag 0x982 or 0x983), that the path will not open here.
Reached by searching cell code 40 in the first ruins.
Definition at line 784 of file tunnel_ruins.c.
Referenced by Event_ReadFirstStatue().
|
static |
Moving the Douse pillar (until its puddle is frozen): nothing more happens.
Reached by Move on the Douse pillar until FLAG_SCENE_TEMP_04 is set.
Definition at line 799 of file tunnel_ruins.c.
Referenced by Event_MoveDousePillar(), and Event_PushDousePillar().
|
static |
Walking into the Douse pillar pushes it along.
Reached by walking into cell code 25 in the other ruins.
Definition at line 806 of file tunnel_ruins.c.
Referenced by Event_PushDousePillar().
|
static |
As Douse begins on the pillar, water splashes on it and it is soaked; its puddle follows it from then on.
Reached by Douse's first phase on the Douse pillar until it is soaked; sets FLAG_SCENE_TEMP_03 and gives the puddle its update hook.
Definition at line 817 of file tunnel_ruins.c.
Referenced by Event_DouseBeginsOnPillar().
|
static |
Frost on the pillar's puddle freezes it into a pillar of ice where it stands.
Reached by Frost on the Douse pillar's puddle until FLAG_SCENE_TEMP_04 is set; sets it.
Definition at line 835 of file tunnel_ruins.c.
Referenced by Event_FreezeDousePuddle().
|
static |
The balance platforms move to the heights their weights give them (their timers index gTunnelRuins_BalanceHeights), with sounds when wait is not 0; whatever then stands less than 30 pixels down can be walked on.
Definition at line 890 of file tunnel_ruins.c.
Referenced by Event_SetBlockOnBalance(), TunnelRuins_Initialize(), and TunnelRuins_SettleBalance().
|
static |
A carried block drops onto the highest platform or block in its cell and lands with a thud and a ring of dust.
Definition at line 930 of file tunnel_ruins.c.
Referenced by Event_SetBlockOnBalance(), and TunnelRuins_DropBlockOnStack().
|
static |
Setting down a block with Carry: one dropped into a pit is gone; one set in row 9 drops onto the balance platform below it, which sinks a step while the other rises.
Reached by Carry on any of the three blocks; sets FLAG_SCENE_TEMP_00 to _02, one for each block that rests on the balance.
Definition at line 975 of file tunnel_ruins.c.
Referenced by Event_SetBlockOnBalance().
|
static |
Walking into a pushable object pushes it along.
Reached by walking into cell codes 28 and 30 in the other ruins.
Definition at line 1060 of file tunnel_ruins.c.
Referenced by Event_PushObject(), and Event_PushObject().
|
static |
Moving either east pillar: whether each stands a cell west of its place is kept for the next visit.
Reached by Move on either east pillar; sets or clears FLAG_TUNNEL_RUINS_EAST_PILLAR_A_PUSHED_WEST and _B_PUSHED_WEST.
Definition at line 1070 of file tunnel_ruins.c.
|
static |
Walking into an east pillar pushes it along, and its place is kept.
Reached by walking east into cell code 29 in the other ruins.
Definition at line 1091 of file tunnel_ruins.c.
|
static |
The two false statues stand, blocking their cells: on entering their rooms and at Reveal's phase 4.
Reached by Reveal's phase 4, and called by TunnelRuins_Initialize in room 12.
Definition at line 1102 of file tunnel_ruins.c.
Referenced by Event_ShowFalseStatues(), and TunnelRuins_Initialize().
|
static |
At Reveal's phase 5 the two false statues vanish and their cells can be walked through.
Reached by Reveal's phase 5 anywhere in the other ruins.
Definition at line 1114 of file tunnel_ruins.c.
Referenced by Event_HideFalseStatues().
|
static |
Moving a statue of the lady: with all five on their marks (cells (25, 49), (23, 49), (25, 47), (23, 47) and (24, 48)) the camera turns to the door as it opens; moving one off again closes it.
Reached by Move on any of the five statues, and called by Event_PushLadyStatue; sets FLAG_TUNNEL_RUINS_STATUE_DOOR_OPEN as the door opens and clears it as it closes.
Definition at line 1129 of file tunnel_ruins.c.
Referenced by Event_MoveLadyStatue(), and Event_PushLadyStatue().
|
static |
Walking into a statue of the lady pushes it along, then checks the door.
Reached by walking into cell code 41 in the other ruins.
Definition at line 1239 of file tunnel_ruins.c.
Referenced by Event_PushLadyStatue().
|
static |
Searching the second statue.
"The statue seems to speak to your soul..." Reached by searching cell code 42 in the other ruins.
Definition at line 1251 of file tunnel_ruins.c.
Referenced by Event_ReadSecondStatue().
|
static |
Searching the door: it is tightly locked.
Reached by searching cell code 20 in the other ruins.
Definition at line 1260 of file tunnel_ruins.c.
| const struct SceneEvent * TunnelRuins_GetEvents | ( | void | ) |
The first ruins' events, or the other ruins'.
Definition at line 1267 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEvents().
| s32 TunnelRuins_Initialize | ( | void | ) |
On entering a room: the puzzle as it was left, and the route the statue at Venus Lighthouse chose (flag 0x982 or 0x983).
Retreat leads back to the first ruins' entrance 1, or from the other ruins' first rooms to Babi Lighthouse. The scene's initialization. Entering rooms 8 to 11 sets flag 0x973. XXX: no other code of the game reads flag 0x973; a reader elsewhere would say what it records.
Definition at line 1368 of file tunnel_ruins.c.
Referenced by TunnelRuins_Initialize().
| s32 gStagedActor_DirectionSteps[] |
Pixel step by direction: X in the upper halfword, Z in the lower.
Definition at line 1655 of file tunnel_ruins.c.
| u32 gStagedActor_FootprintKinds[] |
Definition at line 1664 of file tunnel_ruins.c.
| s32 gStagedActor_FootprintBounds[] |
Definition at line 1668 of file tunnel_ruins.c.
| s32 gEffectScript0[] |
Definition at line 1673 of file tunnel_ruins.c.
| s32 gEffectScript1[] |
| s32 gEffectScript2[] |
| u32 gTunnelRuins_BalanceHeights[] |
A balance platform's height by its weight (its timer): each block on it takes it 16 pixels further down, and the other platform up as far.
Definition at line 1690 of file tunnel_ruins.c.
Referenced by TunnelRuins_SettleBalance().
| const s32* gEffectScripts[] |
Definition at line 1695 of file tunnel_ruins.c.
| s32 gTunnelRuins_ShrinkScript[] |
Definition at line 1701 of file tunnel_ruins.c.
| s32 gTunnelRuins_StretchScript[] |
The bushes stand 8/5 as tall as their sprite.
Definition at line 1710 of file tunnel_ruins.c.
| s32 gTunnelRuins_DouseSplashScript[] |
Douse: splashes on the pillar from frame 35 for 130 frames.
Definition at line 1716 of file tunnel_ruins.c.
Referenced by Event_DouseBeginsOnPillar(), and Event_DouseBeginsOnPillarB().
| u16 gTunnelRuins_DoorOpenSteps[] |
Definition at line 1722 of file tunnel_ruins.c.
Referenced by Event_MoveLadyStatue().
| u16 gTunnelRuins_DoorCloseSteps[] |
Definition at line 1729 of file tunnel_ruins.c.
Referenced by Event_MoveLadyStatue().
| struct SceneEntrance gTunnelRuinsEntrancesOther[] |
Definition at line 1736 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEntrances().
| struct SceneEntrance gTunnelRuinsEntrances1[] |
Definition at line 1742 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEntrances().
| struct SceneEntrance gTunnelRuinsEntrances2[] |
Definition at line 1765 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEntrances().
| struct SceneRegion gTunnelRuinsRegions2[] |
Definition at line 1787 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetRegions().
| u32 gTunnelRuinsExits[] |
Definition at line 1794 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetExits().
| struct ScenePlacement gTunnelRuinsPlacements1[] |
Definition at line 1810 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetPlacements().
| struct ScenePlacement gTunnelRuinsPlacementsOther[] |
Definition at line 1845 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetPlacements().
| struct SceneEvent gTunnelRuinsEvents1[] |
Definition at line 1882 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEvents().
| struct SceneEvent gTunnelRuinsEventsOther[] |
Definition at line 1966 of file tunnel_ruins.c.
Referenced by TunnelRuins_GetEvents().