Alchemy
Loading...
Searching...
No Matches

tunnel_ruins.c File Reference

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).

Variables

s32 gStagedActor_DirectionSteps []
 Pixel step by direction: X in the upper halfword, Z in the lower.
u32 gStagedActor_FootprintKinds []
s32 gStagedActor_FootprintBounds []
s32 gEffectScript0 []
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.
const s32 * gEffectScripts []
s32 gTunnelRuins_ShrinkScript []
s32 gTunnelRuins_StretchScript []
 The bushes stand 8/5 as tall as their sprite.
s32 gTunnelRuins_DouseSplashScript []
 Douse: splashes on the pillar from frame 35 for 130 frames.
u16 gTunnelRuins_DoorOpenSteps []
u16 gTunnelRuins_DoorCloseSteps []
struct SceneEntrance gTunnelRuinsEntrancesOther []
struct SceneEntrance gTunnelRuinsEntrances1 []
struct SceneEntrance gTunnelRuinsEntrances2 []
struct SceneRegion gTunnelRuinsRegions2 []
u32 gTunnelRuinsExits []
struct ScenePlacement gTunnelRuinsPlacements1 []
struct ScenePlacement gTunnelRuinsPlacementsOther []
struct SceneEvent gTunnelRuinsEvents1 []
struct SceneEvent gTunnelRuinsEventsOther []

Detailed Description

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.

Macro Definition Documentation

◆ FIELD_STAGED_ACTOR_IMPORTS

#define FIELD_STAGED_ACTOR_IMPORTS

Definition at line 19 of file tunnel_ruins.c.

◆ ACTOR_UPDATE_IDLE

#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().

◆ ACTOR_UPDATE_RIDE_BLOCK

#define ACTOR_UPDATE_RIDE_BLOCK   ((void (*)(union FieldObject *))TunnelRuins_RideBlockBelow)

Definition at line 406 of file tunnel_ruins.c.

Referenced by TunnelRuins_Initialize().

◆ DIRECTION_STEP

#define DIRECTION_STEP ( dx,
dz )
Value:
(((dx) << 16) | ((dz) & 0xffff))

Pixel step by direction: X in the upper halfword, Z in the lower.

Definition at line 1653 of file tunnel_ruins.c.

Enumeration Type Documentation

◆ anonymous enum

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.

Enumerator
ACTOR_FIRST_PILLAR_A 
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 

Definition at line 53 of file tunnel_ruins.c.

◆ anonymous enum

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.

Enumerator
ACTOR_DOUSE_PILLAR 
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 

Definition at line 74 of file tunnel_ruins.c.

◆ anonymous enum

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.

Function Documentation

◆ TunnelRuins_RideBlockBelow()

s32 TunnelRuins_RideBlockBelow ( union FieldObject * fieldObject)
static

Definition at line 873 of file tunnel_ruins.c.

Referenced by Event_SetBlockOnBalance(), and TunnelRuins_RideBlockBelow().

◆ TunnelRuins_UpdateFirstPillarCells()

void TunnelRuins_UpdateFirstPillarCells ( void )
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().

◆ TunnelRuins_UpdateSecondPillarCells()

void TunnelRuins_UpdateSecondPillarCells ( void )
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().

◆ TunnelRuins_UpdateBlockCells()

void TunnelRuins_UpdateBlockCells ( void )
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().

◆ TunnelRuins_MarkPushPillarCells()

void TunnelRuins_MarkPushPillarCells ( void )
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().

◆ TunnelRuins_RefreshActorAfterShrinking()

s32 TunnelRuins_RefreshActorAfterShrinking ( struct ScriptInterpreter * interpreter)
static

Refreshes the actor presentation after its shrink script finishes.

Definition at line 137 of file tunnel_ruins.c.

Referenced by TunnelRuins_RefreshActorAfterShrinking().

◆ TunnelRuins_GetLandingPixel()

__inline__ s32 TunnelRuins_GetLandingPixel ( s32 coordinate)
static

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().

◆ TunnelRuins_HopLeaderTo()

s32 TunnelRuins_HopLeaderTo ( struct FieldPosition * target)
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().

◆ Event_HopSouth()

void Event_HopSouth ( void )
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.

◆ Event_HopNorth()

void Event_HopNorth ( void )
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.

◆ TunnelRuins_UpdateTrackedActor()

void TunnelRuins_UpdateTrackedActor ( void )
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().

◆ TunnelRuins_SplashDousedPillar()

s32 TunnelRuins_SplashDousedPillar ( union FieldObject * fieldObject)
static

Definition at line 265 of file tunnel_ruins.c.

Referenced by TunnelRuins_SplashDousedPillar().

◆ TunnelRuins_PuddleFollowsPillar()

s32 TunnelRuins_PuddleFollowsPillar ( union FieldObject * fieldObject)
static

Definition at line 303 of file tunnel_ruins.c.

Referenced by Event_DouseBeginsOnPillar(), and TunnelRuins_PuddleFollowsPillar().

◆ TunnelRuins_WaitForActorToLand()

void TunnelRuins_WaitForActorToLand ( struct FieldActor * actor)
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().

◆ Event_HopDownStep()

void Event_HopDownStep ( void )
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().

◆ TunnelRuins_GetEntrances()

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().

◆ TunnelRuins_GetRegions()

const struct SceneRegion * TunnelRuins_GetRegions ( void )

Definition at line 425 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetRegions().

◆ TunnelRuins_GetExits()

const u32 * TunnelRuins_GetExits ( void )

Definition at line 432 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetExits().

◆ TunnelRuins_GetPlacements()

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().

◆ Event_PushFirstPillars()

void Event_PushFirstPillars ( void )
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().

◆ Event_HopWest()

void Event_HopWest ( void )
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.

◆ Event_PushSecondPillars()

void Event_PushSecondPillars ( void )
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().

◆ Event_JumpDownLedge()

void Event_JumpDownLedge ( void )
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().

◆ Event_HopEast()

void Event_HopEast ( void )
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.

◆ Event_PushBlocks()

void Event_PushBlocks ( void )
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().

◆ Event_HopSouthOrPushBlocks()

void Event_HopSouthOrPushBlocks ( void )
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().

◆ Event_BlowAwayBushA()

void Event_BlowAwayBushA ( void )
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().

◆ Event_BlowAwayBushB()

void Event_BlowAwayBushB ( void )
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().

◆ Event_BlowAwayBushC()

void Event_BlowAwayBushC ( void )
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().

◆ Event_HopWestUnlessAtCell32x50()

void Event_HopWestUnlessAtCell32x50 ( void )
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().

◆ Event_HopNorthUnlessAtCell30x52()

void Event_HopNorthUnlessAtCell30x52 ( void )
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().

◆ TunnelRuins_AnimateLoweringImpact()

__inline__ void TunnelRuins_AnimateLoweringImpact ( s32 sourceColumn,
s32 column,
s32 row )
static

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().

◆ Event_SinkPillarA()

void Event_SinkPillarA ( void )
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().

◆ Event_PushSinkingPillarA()

void Event_PushSinkingPillarA ( void )
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().

◆ Event_FreezePuddleA()

void Event_FreezePuddleA ( void )
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().

◆ Event_SinkPillarB()

void Event_SinkPillarB ( void )
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().

◆ Event_PushSinkingPillarB()

void Event_PushSinkingPillarB ( void )
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().

◆ Event_DouseBeginsOnPillarB()

void Event_DouseBeginsOnPillarB ( void )
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().

◆ Event_DousePillarB()

void Event_DousePillarB ( void )
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().

◆ Event_FreezePuddleB()

void Event_FreezePuddleB ( void )
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().

◆ Event_ReadFirstStatue()

void Event_ReadFirstStatue ( void )
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().

◆ Event_MoveDousePillar()

void Event_MoveDousePillar ( void )
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().

◆ Event_PushDousePillar()

void Event_PushDousePillar ( void )
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().

◆ Event_DouseBeginsOnPillar()

void Event_DouseBeginsOnPillar ( void )
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().

◆ Event_FreezeDousePuddle()

void Event_FreezeDousePuddle ( void )
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().

◆ TunnelRuins_SettleBalance()

void TunnelRuins_SettleBalance ( s32 wait)
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().

◆ TunnelRuins_DropBlockOnStack()

void TunnelRuins_DropBlockOnStack ( s32 actorId)
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().

◆ Event_SetBlockOnBalance()

void Event_SetBlockOnBalance ( void )
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().

◆ Event_PushObject()

void Event_PushObject ( void )
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().

◆ Event_MoveEastPillar()

void Event_MoveEastPillar ( void )
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.

◆ Event_PushEastPillar()

void Event_PushEastPillar ( void )
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.

◆ Event_ShowFalseStatues()

void Event_ShowFalseStatues ( void )
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().

◆ Event_HideFalseStatues()

void Event_HideFalseStatues ( void )
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().

◆ Event_MoveLadyStatue()

void Event_MoveLadyStatue ( void )
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().

◆ Event_PushLadyStatue()

void Event_PushLadyStatue ( void )
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().

◆ Event_ReadSecondStatue()

void Event_ReadSecondStatue ( void )
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().

◆ Event_SearchLockedDoor()

void Event_SearchLockedDoor ( void )
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.

◆ TunnelRuins_GetEvents()

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().

◆ TunnelRuins_Initialize()

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().

Variable Documentation

◆ gStagedActor_DirectionSteps

s32 gStagedActor_DirectionSteps[]
Initial value:
= {
DIRECTION_STEP(0, 16), DIRECTION_STEP(-16, 0), DIRECTION_STEP(-16, 0),
DIRECTION_STEP(-16, 0), DIRECTION_STEP(-16, 0), DIRECTION_STEP(0, -16),
DIRECTION_STEP(0, -16), DIRECTION_STEP(0, -16), DIRECTION_STEP(0, -16),
}
#define DIRECTION_STEP(dx, dz)
Pixel step by direction: X in the upper halfword, Z in the lower.

Pixel step by direction: X in the upper halfword, Z in the lower.

Definition at line 1655 of file tunnel_ruins.c.

◆ gStagedActor_FootprintKinds

u32 gStagedActor_FootprintKinds[]
Initial value:
= {
207, 205, 228, 229, 298, 297,
}

Definition at line 1664 of file tunnel_ruins.c.

◆ gStagedActor_FootprintBounds

s32 gStagedActor_FootprintBounds[]
Initial value:
= {
-32, -8, 32, 8, -8, -32, 8, 32, -32, -16, 32, 0,
-8, -32, 8, 32, -32, -8, 32, 8, -8, -32, 8, 32,
}

Definition at line 1668 of file tunnel_ruins.c.

◆ gEffectScript0

s32 gEffectScript0[]
Initial value:
= {
SC_WAIT(1), SC_LOOP(22, SC_TOP), SC_WAIT(1),
SC_POS(0, 0, 0), SC_WAIT(1), SC_FREE,
}
#define SC_LOOP(n, to)
Repeat up to n times.
Definition objcmd.h:28
#define SC_POS(x, y, z)
Set position.
Definition objcmd.h:18
#define SC_FREE
Release.
Definition objcmd.h:43
#define SC_WAIT(n)
Wait n frames.
Definition objcmd.h:16
#define SC_TOP
Script start.
Definition objcmd.h:13

Definition at line 1673 of file tunnel_ruins.c.

◆ gEffectScript1

s32 gEffectScript1[]
Initial value:
= {
SC_WAIT(1), SC_LOOP(44, SC_TOP), SC_WAIT(1),
SC_POS(0, 0, 0), SC_WAIT(1), SC_FREE,
}

Definition at line 1678 of file tunnel_ruins.c.

◆ gEffectScript2

s32 gEffectScript2[]
Initial value:
= {
SC_WAIT(1), SC_LOOP(126, SC_TOP), SC_WAIT(1),
SC_POS(0, 0, 0), SC_WAIT(1), SC_FREE,
}

Definition at line 1683 of file tunnel_ruins.c.

◆ gTunnelRuins_BalanceHeights

u32 gTunnelRuins_BalanceHeights[]
Initial value:
= {
-PIXELS(16), -PIXELS(16), -PIXELS(32), -PIXELS(48),
-PIXELS(64), -PIXELS(80), -PIXELS(80),
}
#define PIXELS(value)

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().

◆ gEffectScripts

const s32* gEffectScripts[]
Initial value:
= {
}
s32 gEffectScript0[]
s32 gEffectScript1[]
s32 gEffectScript2[]

Definition at line 1695 of file tunnel_ruins.c.

◆ gTunnelRuins_ShrinkScript

s32 gTunnelRuins_ShrinkScript[]
Initial value:
= {
}
#define Q16_ONE
One in the engine's signed 16.16 fixed-point format.
Definition fixed_math.h:10
#define SC_SET(w, v)
Write a work value.
Definition objcmd.h:37
#define SC_END
Return to the main script.
Definition objcmd.h:32
@ SW_SCALE_Y
Definition objcmd.h:63
@ SW_COLLISION
Definition objcmd.h:79
@ SW_SCALE_X
Definition objcmd.h:62
#define SC_CALL(fn)
Definition objcmd.h:50
static s32 TunnelRuins_RefreshActorAfterShrinking(struct ScriptInterpreter *interpreter)
Refreshes the actor presentation after its shrink script finishes.

Definition at line 1701 of file tunnel_ruins.c.

◆ gTunnelRuins_StretchScript

s32 gTunnelRuins_StretchScript[]
Initial value:
= {
}

The bushes stand 8/5 as tall as their sprite.

Definition at line 1710 of file tunnel_ruins.c.

◆ gTunnelRuins_DouseSplashScript

s32 gTunnelRuins_DouseSplashScript[]
Initial value:
= {
SC_WAIT(130), SC_SET(SW_HOOK, 0),
}
#define SC_ARG(v)
Definition objcmd.h:44
@ SW_HOOK
Definition objcmd.h:84
static s32 TunnelRuins_SplashDousedPillar(union FieldObject *fieldObject)
signed int s32
Definition types.h:14

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().

◆ gTunnelRuins_DoorOpenSteps

u16 gTunnelRuins_DoorOpenSteps[]
Initial value:
= {
MAP_CELL_STEP(28, 59, 1, 2, 4),
MAP_CELL_STEP(26, 59, 1, 2, 4),
MAP_CELL_STEP(24, 59, 1, 2, 4),
}
#define MAP_CELL_STEP(srcX, srcY, width, height, frames)
Definition field_event.h:59
#define MAP_CELL_STEPS_END
Definition field_event.h:61

Definition at line 1722 of file tunnel_ruins.c.

Referenced by Event_MoveLadyStatue().

◆ gTunnelRuins_DoorCloseSteps

u16 gTunnelRuins_DoorCloseSteps[]
Initial value:
= {
MAP_CELL_STEP(26, 59, 1, 2, 4),
MAP_CELL_STEP(28, 59, 1, 2, 4),
MAP_CELL_STEP(30, 59, 1, 2, 4),
}

Definition at line 1729 of file tunnel_ruins.c.

Referenced by Event_MoveLadyStatue().

◆ gTunnelRuinsEntrancesOther

struct SceneEntrance gTunnelRuinsEntrancesOther[]
Initial value:
= {
{0, CONDITION_ALWAYS, 744, 0, 104, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{10, CONDITION_ALWAYS, 440, 0, 552, 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 1736 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetEntrances().

◆ gTunnelRuinsEntrances1

struct SceneEntrance gTunnelRuinsEntrances1[]
Initial value:
= {
{0, CONDITION_ALWAYS, 744, 0, 104, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{1, CONDITION_ALWAYS, 104, 0, 152, FACING_SOUTH, 0, 48, 48, 288, 368, 0},
{2, CONDITION_ALWAYS, 200, 0, 328, FACING_NORTH, 0, 48, 48, 288, 368, 0},
{3, CONDITION_ALWAYS, 184, 0, 552, FACING_SOUTH, 0, 64, 464, 304, 816, 0},
{4, CONDITION_ALWAYS, 168, 0, 816, FACING_NORTH, 0, 64, 464, 304, 816, 0},
{5, CONDITION_ALWAYS, 520, 0, 104, FACING_SOUTH, 0, 336, 48, 576, 288, 0},
{6, CONDITION_ALWAYS, 392, 0, 192, FACING_NORTH, 0, 336, 48, 576, 288, 0},
{7, CONDITION_ALWAYS, 520, 0, 256, FACING_NORTH, 0, 336, 48, 576, 288, 0},
{8, CONDITION_ALWAYS, 568, 0, 440, FACING_SOUTH, 0, 384, 352, 624, 640, 0},
{9, CONDITION_ALWAYS, 440, 0, 648, FACING_NORTH, 0, 384, 352, 624, 640, 0},
{10, CONDITION_ALWAYS, 744, 0, 104, FACING_SOUTH, 0, 624, 40, 864, 288, 0},
{11, CONDITION_ALWAYS, 680, 0, 256, FACING_NORTH, 0, 624, 40, 864, 288, 0},
{12, CONDITION_ALWAYS, 504, 0, 792, FACING_SOUTH, 0, 368, 720, 608, 976, 0},
{13, CONDITION_ALWAYS, 568, 0, 872, FACING_SOUTH, 0, 368, 720, 608, 976, 0},
{14, CONDITION_ALWAYS, 776, 0, 432, FACING_NORTH, 0, 688, 368, 928, 640, 0},
{15, CONDITION_ALWAYS, 840, 0, 608, FACING_NORTH, 0, 688, 368, 928, 640, 0},
{16, CONDITION_ALWAYS, 744, 0, 792, FACING_SOUTH, 0, 688, 736, 928, 976, 0},
{17, CONDITION_ALWAYS, 744, 0, 944, FACING_NORTH, 0, 688, 736, 928, 976, 0},
{18, CONDITION_ALWAYS, 872, 0, 880, FACING_NORTH, 0, 688, 736, 928, 976, 0},
}
@ FACING_NORTH
Definition field_scene.h:32

Definition at line 1742 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetEntrances().

◆ gTunnelRuinsEntrances2

struct SceneEntrance gTunnelRuinsEntrances2[]
Initial value:
= {
{0, CONDITION_ALWAYS, 172, 0, 149, FACING_SOUTH, 0, -1, -1, -1, -1, 0},
{1, CONDITION_ALWAYS, 632, 0, 344, FACING_SOUTH, 0, 592, 64, 880, 400, 0},
{2, CONDITION_ALWAYS, 840, 0, 120, FACING_SOUTH, 0, 592, 64, 880, 400, 0},
{3, CONDITION_ALWAYS, 824, 0, 344, FACING_SOUTH, 0, 592, 64, 880, 400, 0},
{4, CONDITION_ALWAYS, 216, 0, 104, FACING_SOUTH, 0, 32, 48, 272, 320, 0},
{5, CONDITION_ALWAYS, 216, 0, 296, FACING_NORTH, 0, 32, 48, 272, 320, 0},
{6, CONDITION_ALWAYS, 360, 0, 104, FACING_SOUTH, 0, 304, 48, 544, 352, 0},
{7, CONDITION_ALWAYS, 488, 0, 328, FACING_NORTH, 0, 304, 48, 544, 352, 0},
{8, CONDITION_ALWAYS, 120, 0, 568, FACING_NORTH, 0, 80, 400, 448, 592, 0},
{9, CONDITION_ALWAYS, 216, 0, 456, FACING_SOUTH, 0, 80, 400, 448, 592, 0},
{10, CONDITION_ALWAYS, 312, 0, 568, FACING_NORTH, 0, 80, 400, 448, 592, 0},
{11, CONDITION_ALWAYS, 408, 0, 456, FACING_SOUTH, 0, 80, 400, 448, 592, 0},
{12, CONDITION_ALWAYS, 136, 0, 712, FACING_SOUTH, 0, 16, 656, 256, 880, 0},
{13, CONDITION_ALWAYS, 392, 0, 712, FACING_SOUTH, 0, 288, 656, 560, 864, 0},
{14, CONDITION_ALWAYS, 520, 0, 776, FACING_SOUTH, 0, 288, 656, 560, 864, 0},
{15, CONDITION_ALWAYS, 648, 0, 952, FACING_NORTH, 0, 608, 816, 848, 976, 0},
{16, CONDITION_ALWAYS, 776, 0, 904, FACING_SOUTH, 0, 608, 816, 848, 976, 0},
{17, CONDITION_ALWAYS, 696, 0, 680, FACING_SOUTH, 0, 624, 592, 864, 768, 0},
}

Definition at line 1765 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetEntrances().

◆ gTunnelRuinsRegions2

struct SceneRegion gTunnelRuinsRegions2[]
Initial value:
= {
{624, 16, 336, 640, 32, 352, -1, 15},
{816, 16, 336, 832, 32, 352, -1, 16},
{832, 16, 112, 848, 32, 128, -1, 17},
{-1, 0, 0, 0, 0, 0, 0, 0},
}

Definition at line 1787 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetRegions().

◆ gTunnelRuinsExits

u32 gTunnelRuinsExits[]
Initial value:
= {
SCENE_EXITS(172), SCENE_EXIT(1, 174, 1), SCENE_EXIT(2, 172, 3),
SCENE_EXIT(3, 172, 2), SCENE_EXIT(4, 172, 5), SCENE_EXIT(5, 172, 4),
SCENE_EXIT(6, 172, 8), SCENE_EXIT(7, 172, 10), SCENE_EXIT(8, 172, 6),
SCENE_EXIT(9, 172, 12), SCENE_EXIT(10, 172, 7), SCENE_EXIT(11, 172, 16),
SCENE_EXIT(12, 172, 9), SCENE_EXIT(13, 172, 14), SCENE_EXIT(14, 172, 13),
SCENE_EXIT(15, 173, 4), SCENE_EXIT(16, 172, 11), SCENE_EXIT(17, 173, 6),
SCENE_EXIT(18, 173, 17), SCENE_EXIT(0, 173, 0), SCENE_EXIT(1, 172, 15),
SCENE_EXIT(2, 173, 9), SCENE_EXIT(3, 172, 17), SCENE_EXIT(4, 173, 11),
SCENE_EXIT(5, 173, 5), SCENE_EXIT(6, 173, 7), SCENE_EXIT(7, 173, 12),
SCENE_EXIT(8, 173, 13), SCENE_EXIT(9, 173, 8), SCENE_EXIT(10, 173, 10),
SCENE_EXIT(11, 173, 15), SCENE_EXIT(12, 172, 18), SCENE_EXIT(13, 173, 14),
SCENE_EXIT(14, 183, 18), SCENE_EXIT(15, 176, 4), SCENE_EXIT(16, 176, 5),
}
#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 1794 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetExits().

◆ gTunnelRuinsPlacements1

struct ScenePlacement gTunnelRuinsPlacements1[]

Definition at line 1810 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetPlacements().

◆ gTunnelRuinsPlacementsOther

struct ScenePlacement gTunnelRuinsPlacementsOther[]

Definition at line 1845 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetPlacements().

◆ gTunnelRuinsEvents1

struct SceneEvent gTunnelRuinsEvents1[]

Definition at line 1882 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetEvents().

◆ gTunnelRuinsEventsOther

struct SceneEvent gTunnelRuinsEventsOther[]

Definition at line 1966 of file tunnel_ruins.c.

Referenced by TunnelRuins_GetEvents().