The cave that leads past Bilibin, in three sections walked in turn: the entrance section (BilibinCave3) with a Growth plant, the middle section (BilibinCave2) with Reveal and Douse, and the exit section (BilibinCave1), a puzzle of Douse, Frost and pushed actors. More...
Go to the source code of this file.
Macros | |
| #define | DIRECTION_STEP(dx, dz) |
| Packs signed pixel steps with X in the upper halfword and Z in the lower. | |
Enumerations | |
| enum | { GROWTH_TARGET = 8 } |
| Actors of the entrance section, named by the Psynergy that works on them. More... | |
| enum | { MIDDLE_DOUSE_TARGET = 9 } |
| Actors of the middle section. More... | |
| enum | { EXIT_DOUSE_TARGET = 8 , PUSHED_ACTOR_A = 11 , PUSHED_ACTOR_B = 12 , FROST_TARGET_A = 15 , FROST_TARGET_B = 16 , FROST_TARGET_C = 17 } |
| Actors of the exit section. More... | |
Functions | |
| static void | BilibinCave_RestoreGrowthSection (void) |
| Restores the collision change already made by Growth. | |
| static void | BilibinCave_RestoreDouseSection (void) |
| Opens section 2 and restores its Douse target. | |
| static void | BilibinCave_RestoreIcePuzzleSection (void) |
| Initializes section 1's animated actors and persistent puzzle states. | |
| static void | BilibinCave_EmptyActorSetupHook (s32 actorId) |
| The original setup invokes this empty hook for every animated actor. | |
| static s32 | BilibinCave_ClearScriptedActorSpriteFlags (struct ScriptInterpreter *interpreter) |
| Clears the scripted actor's sprite flags and completes this script command. | |
| const struct SceneEntrance * | BilibinCave_GetEntrances (void) |
| const struct SceneRegion * | BilibinCave_GetRegions (void) |
| const u32 * | BilibinCave_GetExits (void) |
| const struct ScenePlacement * | BilibinCave_GetPlacements (void) |
| const struct SceneEvent * | BilibinCave_GetEvents (void) |
| static void | Event_AlterCrossingCell (void) |
| Replaces the crossing cell with the attributes at source cell (1, 0). | |
| static void | Event_RestoreCrossingCell (void) |
| Restores the crossing cell from source cell (0, 0). | |
| static void | Event_RevealHiddenPath (void) |
| Replaces the narrow tile strip and its two-row collision rectangle. | |
| static void | Event_HideRevealedPath (void) |
| Restores the strip's tiles and its one-row collision rectangle. | |
| static void | Event_DouseMiddleSectionTarget (void) |
| Douse on the middle section's target: it disappears, for good. | |
| static void | Event_DouseExitSectionTarget (void) |
| Douse on the exit section's target: it disappears, and the first Frost target settles into a surface the party can walk over. | |
| static void | BilibinCave_FreezeTarget (s32 actor) |
| Clears a Frost target's child effect, then plays its freezing animation. | |
| static void | Event_FreezeFirstTarget (void) |
| Frost on the first target, before the Douse target is gone. | |
| static void | Event_FreezeSecondTarget (void) |
| Frost on the second target. | |
| static void | Event_FreezeThirdTarget (void) |
| Frost on the third target, while 0x302 is set. | |
| static void | BilibinCave_UpdateFrostTargetFromMovableActors (void) |
| After a push or Move: while either pushed actor stands on cell (35, 23) (0x303 and 0x304), the third Frost target changes with a sound, and 0x302 says so; when both leave, it changes back. | |
| static void | Event_GrowPlant (void) |
| Growth on the entrance section's target: the plant grows and its cell's collision changes; 0x305 keeps it grown. | |
| static void | Event_SetMapTriggerFlag (void) |
| Enables the map-work byte while crossing this touch trigger. | |
| static void | Event_ClearMapTriggerFlag (void) |
| Clears the same map-work byte at the opposing trigger. | |
| s32 | BilibinCave_Initialize (void) |
| Restores the current section's saved puzzle state. | |
| static void | BilibinCave_ClearActorSpriteFlags (s32 actorId) |
| Clears the drawing flags of an actor used by the cave's animations. | |
| static void | Event_PushActorAhead (void) |
| Pushes the actor ahead only when its next cell and movement probe are clear. | |
Variables | |
| s32 | gBilibinCave_ClearSpriteScript [] |
| struct SceneEntrance | gBilibinCaveEntrancesOther [] |
| struct SceneEntrance | gBilibinCaveEntrances3 [] |
| struct SceneEntrance | gBilibinCaveEntrances2 [] |
| struct SceneEntrance | gBilibinCaveEntrances1 [] |
| u32 | gBilibinCaveExits [] |
| struct ScenePlacement | gBilibinCavePlacementsOther [] |
| struct ScenePlacement | gBilibinCavePlacements3 [] |
| struct ScenePlacement | gBilibinCavePlacements2 [] |
| struct ScenePlacement | gBilibinCavePlacements1 [] |
| struct SceneEvent | gBilibinCaveEventsOther [] |
| struct SceneEvent | gBilibinCaveEvents3 [] |
| struct SceneEvent | gBilibinCaveEvents2 [] |
| struct SceneEvent | gBilibinCaveEvents1 [] |
| s32 | gBilibinCave_PushSteps [] |
The cave that leads past Bilibin, in three sections walked in turn: the entrance section (BilibinCave3) with a Growth plant, the middle section (BilibinCave2) with Reveal and Douse, and the exit section (BilibinCave1), a puzzle of Douse, Frost and pushed actors.
Definition in file bilibin_cave.c.
| #define DIRECTION_STEP | ( | dx, | |
| dz ) |
Packs signed pixel steps with X in the upper halfword and Z in the lower.
Definition at line 638 of file bilibin_cave.c.
| anonymous enum |
Actors of the entrance section, named by the Psynergy that works on them.
| Enumerator | |
|---|---|
| GROWTH_TARGET | |
Definition at line 44 of file bilibin_cave.c.
| anonymous enum |
Actors of the middle section.
| Enumerator | |
|---|---|
| MIDDLE_DOUSE_TARGET | |
Definition at line 47 of file bilibin_cave.c.
| anonymous enum |
Actors of the exit section.
Definition at line 50 of file bilibin_cave.c.
|
static |
Restores the collision change already made by Growth.
Definition at line 291 of file bilibin_cave.c.
Referenced by BilibinCave_Initialize(), and BilibinCave_RestoreGrowthSection().
|
static |
Opens section 2 and restores its Douse target.
Definition at line 300 of file bilibin_cave.c.
Referenced by BilibinCave_Initialize(), and BilibinCave_RestoreDouseSection().
|
static |
Initializes section 1's animated actors and persistent puzzle states.
Definition at line 322 of file bilibin_cave.c.
Referenced by BilibinCave_Initialize(), and BilibinCave_RestoreIcePuzzleSection().
|
static |
The original setup invokes this empty hook for every animated actor.
Definition at line 473 of file bilibin_cave.c.
Referenced by BilibinCave_EmptyActorSetupHook(), and BilibinCave_RestoreIcePuzzleSection().
|
static |
Clears the scripted actor's sprite flags and completes this script command.
Definition at line 60 of file bilibin_cave.c.
Referenced by BilibinCave_ClearScriptedActorSpriteFlags().
| const struct SceneEntrance * BilibinCave_GetEntrances | ( | void | ) |
Definition at line 67 of file bilibin_cave.c.
Referenced by BilibinCave_GetEntrances().
| const struct SceneRegion * BilibinCave_GetRegions | ( | void | ) |
Definition at line 82 of file bilibin_cave.c.
Referenced by BilibinCave_GetRegions().
| const u32 * BilibinCave_GetExits | ( | void | ) |
Definition at line 84 of file bilibin_cave.c.
Referenced by BilibinCave_GetExits().
| const struct ScenePlacement * BilibinCave_GetPlacements | ( | void | ) |
Definition at line 86 of file bilibin_cave.c.
Referenced by BilibinCave_GetPlacements().
| const struct SceneEvent * BilibinCave_GetEvents | ( | void | ) |
Definition at line 101 of file bilibin_cave.c.
Referenced by BilibinCave_GetEvents().
|
static |
Replaces the crossing cell with the attributes at source cell (1, 0).
Definition at line 117 of file bilibin_cave.c.
Referenced by Event_AlterCrossingCell().
|
static |
Restores the crossing cell from source cell (0, 0).
Definition at line 122 of file bilibin_cave.c.
Referenced by Event_RestoreCrossingCell().
|
static |
Replaces the narrow tile strip and its two-row collision rectangle.
Definition at line 127 of file bilibin_cave.c.
Referenced by Event_RevealHiddenPath().
|
static |
Restores the strip's tiles and its one-row collision rectangle.
Definition at line 143 of file bilibin_cave.c.
Referenced by Event_HideRevealedPath().
|
static |
Douse on the middle section's target: it disappears, for good.
Definition at line 159 of file bilibin_cave.c.
Referenced by Event_DouseMiddleSectionTarget().
|
static |
Douse on the exit section's target: it disappears, and the first Frost target settles into a surface the party can walk over.
Definition at line 168 of file bilibin_cave.c.
Referenced by Event_DouseExitSectionTarget().
|
inlinestatic |
Clears a Frost target's child effect, then plays its freezing animation.
Definition at line 183 of file bilibin_cave.c.
Referenced by BilibinCave_FreezeTarget(), Event_FreezeFirstTarget(), Event_FreezeSecondTarget(), and Event_FreezeThirdTarget().
|
static |
Frost on the first target, before the Douse target is gone.
Definition at line 193 of file bilibin_cave.c.
Referenced by Event_FreezeFirstTarget().
|
static |
Frost on the second target.
Definition at line 198 of file bilibin_cave.c.
Referenced by Event_FreezeSecondTarget().
|
static |
Frost on the third target, while 0x302 is set.
Definition at line 203 of file bilibin_cave.c.
Referenced by Event_FreezeThirdTarget().
|
static |
After a push or Move: while either pushed actor stands on cell (35, 23) (0x303 and 0x304), the third Frost target changes with a sound, and 0x302 says so; when both leave, it changes back.
Definition at line 210 of file bilibin_cave.c.
Referenced by BilibinCave_UpdateFrostTargetFromMovableActors(), and Event_PushActorAhead().
|
static |
Growth on the entrance section's target: the plant grows and its cell's collision changes; 0x305 keeps it grown.
Definition at line 258 of file bilibin_cave.c.
Referenced by Event_GrowPlant(), Event_GrowPlant(), Event_GrowPlant(), and Event_GrowPlant().
|
static |
Enables the map-work byte while crossing this touch trigger.
Definition at line 265 of file bilibin_cave.c.
Referenced by Event_SetMapTriggerFlag().
|
static |
Clears the same map-work byte at the opposing trigger.
Definition at line 271 of file bilibin_cave.c.
Referenced by Event_ClearMapTriggerFlag().
| s32 BilibinCave_Initialize | ( | void | ) |
Restores the current section's saved puzzle state.
Definition at line 277 of file bilibin_cave.c.
Referenced by BilibinCave_Initialize().
|
inlinestatic |
Clears the drawing flags of an actor used by the cave's animations.
Definition at line 316 of file bilibin_cave.c.
Referenced by BilibinCave_ClearActorSpriteFlags(), and BilibinCave_RestoreIcePuzzleSection().
|
static |
Pushes the actor ahead only when its next cell and movement probe are clear.
Definition at line 407 of file bilibin_cave.c.
Referenced by Event_PushActorAhead().
| s32 gBilibinCave_ClearSpriteScript[] |
Definition at line 475 of file bilibin_cave.c.
| struct SceneEntrance gBilibinCaveEntrancesOther[] |
Definition at line 480 of file bilibin_cave.c.
Referenced by BilibinCave_GetEntrances().
| struct SceneEntrance gBilibinCaveEntrances3[] |
Definition at line 485 of file bilibin_cave.c.
Referenced by BilibinCave_GetEntrances().
| struct SceneEntrance gBilibinCaveEntrances2[] |
Definition at line 493 of file bilibin_cave.c.
Referenced by BilibinCave_GetEntrances().
| struct SceneEntrance gBilibinCaveEntrances1[] |
Definition at line 504 of file bilibin_cave.c.
Referenced by BilibinCave_GetEntrances().
| u32 gBilibinCaveExits[] |
Definition at line 514 of file bilibin_cave.c.
Referenced by BilibinCave_GetExits().
| struct ScenePlacement gBilibinCavePlacementsOther[] |
Definition at line 523 of file bilibin_cave.c.
Referenced by BilibinCave_GetPlacements().
| struct ScenePlacement gBilibinCavePlacements3[] |
Definition at line 528 of file bilibin_cave.c.
Referenced by BilibinCave_GetPlacements().
| struct ScenePlacement gBilibinCavePlacements2[] |
Definition at line 534 of file bilibin_cave.c.
Referenced by BilibinCave_GetPlacements().
| struct ScenePlacement gBilibinCavePlacements1[] |
Definition at line 544 of file bilibin_cave.c.
Referenced by BilibinCave_GetPlacements().
| struct SceneEvent gBilibinCaveEventsOther[] |
Definition at line 586 of file bilibin_cave.c.
Referenced by BilibinCave_GetEvents().
| struct SceneEvent gBilibinCaveEvents3[] |
Definition at line 590 of file bilibin_cave.c.
Referenced by BilibinCave_GetEvents().
| struct SceneEvent gBilibinCaveEvents2[] |
Definition at line 600 of file bilibin_cave.c.
Referenced by BilibinCave_GetEvents().
| struct SceneEvent gBilibinCaveEvents1[] |
Definition at line 614 of file bilibin_cave.c.
Referenced by BilibinCave_GetEvents().
| s32 gBilibinCave_PushSteps[] |
Definition at line 640 of file bilibin_cave.c.
Referenced by Event_PushActorAhead().