west_lunpa_cave.c
West Lunpa Cave: a gate puzzle of switches and puddles that Frost freezes into pillars, and Bunza, whose wagon carries the party out of Lunpa.
games/tbs/src/scene/west_lunpa_cave.c on GitHub
West Lunpa Cave: a gate puzzle of switches and puddles that Frost freezes into pillars, and Bunza, whose wagon carries the party out of Lunpa.
Functions
Scene_GetExits
const u32 *Scene_GetExits(void)
Both passages and the wagon departure return through this exit table.
Scene_GetPlacements
const struct ScenePlacement *Scene_GetPlacements(void)
Only the cave scene places puddles, Hammet, Bunza and the party members.
Scene_GetEvents
const struct SceneEvent *Scene_GetEvents(void)
Routes switches, Frost targets and the reunion trigger to their handlers.
Event_FreezeHiddenPuddle
static void Event_FreezeHiddenPuddle(void)
Frost on the hidden puddle: it freezes, and no flag remembers it.
Used by gCaveEvents.
Event_FreezeSouthPuddle
static void Event_FreezeSouthPuddle(void)
Frost on the south puddle: it rises as an ice pillar the party can climb.
Used by gCaveEvents.
Gate_DrawPropped
static void Gate_DrawPropped(void)
Animates the raised gate resting on the frozen pillar, then opens collision.
Used by Event_FreezeGatePuddle, Scene_Initialize.
Event_FreezeGatePuddle
static void Event_FreezeGatePuddle(void)
Frost on the puddle under the gate: its pillar props the gate open, and if the gate was down the player sees it rise and hears the puzzle solved.
Used by gCaveEvents.
Event_FreezeNorthPuddle
static void Event_FreezeNorthPuddle(void)
Frost on the north puddle: its pillar stays frozen when the party returns.
Used by gCaveEvents.
Gate_Lower
static void Gate_Lower(void)
Lowers the gate in four-frame steps and restores the blocked cell attributes.
Used by Event_FlipLoweringSwitch, Scene_Initialize.
Event_FlipLoweringSwitch
static void Event_FlipLoweringSwitch(void)
Searching the lowering switch: the hero flips it and the gate comes down, unless it is down already or a frozen pillar props it open. "flipped the switch."
Used by gCaveEvents.
Gate_Raise
static void Gate_Raise(void)
Raises the unpropped gate and restores its passable cell attributes.
Used by Event_FlipRaisingSwitch, Scene_Initialize.
Event_FlipRaisingSwitch
static void Event_FlipRaisingSwitch(void)
Searching the raising switch: the hero flips it and the gate goes up, unless it is up already or propped open. "flipped the switch."
Used by gCaveEvents.
Event_HammetFindsBunza
static void Event_HammetFindsBunza(void)
Walking past Bunza's hiding place once Lunpa's trade has reopened: Bunza steps out, Hammet knows his voice, and the reunion and the wagon talk follow.
Used by gCaveEvents.
Reunion_Converse
static void Reunion_Converse(void)
Explains Bunza's arrival and offers his wagon as a way out of Lunpa.
Used by Event_HammetFindsBunza.
WagonChoice_Run
static void WagonChoice_Run(void)
Reconciles the party's answers until they either ride or stay behind.
Used by Reunion_Converse.
Leader_AnswersYes
static u8 Leader_AnswersYes(void)
The scene menu encodes Yes as zero; expose it as a Boolean to the dialogue.
Used by WagonChoice_Run.
Garet_AsksIfNotRiding
static u8 Garet_AsksIfNotRiding(void)
Asks whether the party really intends to refuse the ride.
Used by WagonChoice_Run.
Garet_AsksAboutUnfinishedBusiness
static u8 Garet_AsksAboutUnfinishedBusiness(void)
Asks whether unfinished business explains the refusal to ride.
Used by WagonChoice_Run.
Party_ConfirmsStaying
static u8 Party_ConfirmsStaying(void)
Reserved confirmation step; it always succeeds and displays no message.
Used by WagonChoice_Run.
Bunza_AsksAboutUnfinishedBusiness
static u8 Bunza_AsksAboutUnfinishedBusiness(void)
Lets Bunza check whether the party has unfinished business before leaving.
Used by WagonChoice_Run.
Garet_ChecksNothingLeftToDo
static u8 Garet_ChecksNothingLeftToDo(void)
Opens Garet's confirmation prompt; WagonChoice_Run collects the answer.
Used by WagonChoice_Run.
Mia_AsksIfRidingAfterAll
static u8 Mia_AsksIfRidingAfterAll(void)
Asks whether the party has changed its mind about taking the wagon.
Used by WagonChoice_Run.
Bunza_CannotWait
static u8 Bunza_CannotWait(void)
Explains that Bunza cannot wait and asks again about the party's business.
Used by WagonChoice_Run.
Garet_AsksAboutThingsToDo
static u8 Garet_AsksAboutThingsToDo(void)
Asks the leader to confirm that something still needs doing here.
Used by WagonChoice_Run.
Party_StaysBehind
static void Party_StaysBehind(void)
Sends Hammet and Bunza ahead, then returns the companions to the leader.
Used by WagonChoice_Run.
Party_RidesWagon
static void Party_RidesWagon(void)
Leads everyone down the passage and requests the wagon departure exit.
Used by WagonChoice_Run.
Scene_Initialize
s32 Scene_Initialize(void)
Restores the gate and frozen puddles from the persistent puzzle flags.
Also, functions without a comment: Scene_GetEntrances, Scene_GetRegions.
Globals, without a comment: gCaveEntrances, gCaveExits, gCaveNoPlacements, gCavePlacements, gCaveNoEvents, gCaveEvents.