Altin Mine, the eleven rooms under Altin where the hydros statues flood the village. More...
Go to the source code of this file.
Macros | |
| #define | FLAG_ALTIN_PEAK_ROOM_3_SWITCH 0x323 |
| #define | FLAG_ALTIN_PEAK_ROOM_5_SWITCH 0x325 |
| #define | FLAG_ALTIN_PEAK_ROOM_6_SWITCH 0x326 |
| #define | FLAG_ALTIN_PEAK_ROOM_7_SWITCH 0x327 |
| #define | SCENE_MINE_ROOM(n) |
| #define | SEARCH_CHEST_FACING(facing) |
| A chest searched while facing the given way. | |
Enumerations | |
| enum | { ENTRANCE_AFTER_BATTLE = 99 } |
| Each room's water beast fight returns the party to this entrance. More... | |
| enum | { ACTOR_LOG = 8 } |
| The rooms' actors, from their placement tables. More... | |
| enum | { ACTOR_ROOM1_PUDDLE = 8 , ACTOR_ROOM1_WIDE_PUDDLE = 9 , ACTOR_ROOM1_BEAST = 10 } |
| Room 1: a puddle that appears with the first drain, a wide puddle and the water beast. More... | |
| enum | { ACTOR_ROOM3_BEAST = 9 , ACTOR_ROOM3_BOULDER = 10 } |
| enum | { ACTOR_ROOM5_PUDDLE = 9 , ACTOR_ROOM5_BEAST = 10 } |
| enum | { ACTOR_ROOM6_PUDDLE = 9 } |
| enum | { ACTOR_ROOM7_PUDDLE = 9 , ACTOR_ROOM7_BLOCK = 10 , ACTOR_ROOM7_SECOND_PUDDLE = 11 , ACTOR_ROOM7_THIRD_PUDDLE = 12 , ACTOR_DJINNI = 14 } |
| enum | { ACTOR_ROOM8_BOULDER = 8 } |
| enum | { ACTOR_FALLING_BOULDER = 8 , ACTOR_BOULDER_SHADOW = 9 , ACTOR_TOPPLING_ROCK = 10 , ACTOR_WALL = 11 } |
| Room 9: the boulder that falls and its shadow, the rock that topples as it comes down, and the actor Force is cast on. More... | |
| enum | { ACTOR_STATUE = 8 , ACTOR_STATUE_SHADOW = 9 } |
| Room 10: the guardian statue and its shadow. More... | |
| enum | { ACTOR_ROOM11_BOULDER = 8 , ACTOR_ROOM11_BLOCK = 9 } |
| enum | { FLAG_PUDDLE_FROZEN = FLAG_SCENE_TEMP_00 , FLAG_SECOND_PUDDLE_FROZEN = FLAG_SCENE_TEMP_01 , FLAG_THIRD_PUDDLE_FROZEN = FLAG_SCENE_TEMP_04 , FLAG_GARET_WATCHING_ROCKS = FLAG_SCENE_TEMP_05 } |
| The rooms' puzzles, kept while the party stays in the mine. More... | |
| enum | { ANIM_LEADER_JUMP = 22 , ANIM_LEADER_LEAP = 7 } |
| The leader's jump animations. More... | |
| enum | { SPRITE_BOULDER = 200 , SPRITE_SPRAY = 222 } |
| The sprites the scene makes objects from: the water beast's spray (as in Altin) and room 9's boulder, whose pieces fly in the crash. More... | |
Functions | |
| static void | AltinPeak_RunBoulderChase (s32 boulderDelay) |
| Room 9's rockfall. | |
| static void | AltinPeak_RestoreRoom1 (void) |
| Room 1: after its beast's battle the Frost Jewel is found and the water drains; the beast stays where its routes left it while the water is up, and the frozen puddles are restored once it is down. | |
| static void | AltinPeak_RestoreRoom3 (void) |
| Room 3: after its beast's battle the second drain runs; while the water is up the beast spits it; the switch is restored. | |
| static void | AltinPeak_RestoreRoom4 (void) |
| Room 4: its water is up until the second drain; entrances 6 and 7 skip the arrival event. | |
| static void | AltinPeak_RestoreRoom5 (void) |
| Room 5: after its beast's battle the third drain runs; while the water is up the beast spits it; the frozen puddle and the switch are restored. | |
| static void | AltinPeak_RestoreRoom6 (void) |
| Room 6: arriving at entrance 2 the log waits there; the frozen puddle, the water level and the switch are restored. | |
| static void | AltinPeak_RestoreRoom7 (void) |
| Room 7: the block, the three frozen puddles and the switch are restored. | |
| static void | AltinPeak_RestoreRoom9 (void) |
| Room 9: the boulder is put away; once the rockfall is over the rock lies toppled and the rubble fills the bottom of the path. | |
| static void | AltinPeak_RestoreRoom10 (void) |
| Room 10: the guardian statue stands until the Hydros statues are beaten; after their battle the party talks it over. | |
| static void | AltinPeak_RestoreRoom11 (void) |
| Room 11: arriving at entrance 2 the block stands at its pushed place. | |
| static void | AltinPeak_StartSpitting (s32 x, s32 y, s32 z, s32 facing) |
| A water beast starts spitting water from (x, y, z) toward facing (east, 0, or west, 0x8000), with its sound (SE_170). | |
| static void | AltinPeak_SpawnDebris (void) |
| Scheduler task while the boulder crashes: every third frame a piece of rock (the boulder's own sprite, small) flies out at random, with a clatter (SE_144 or SE_145) every ninth frame. | |
| static void | AltinPeak_SparkleIce (union FieldObject *object) |
| Update callback of the frozen wide puddle: its ice glints every eight frames. | |
| static void | AltinPeak_BeastFreezesWidePuddle (void) |
| Room 1's water beast casts Frost on the wide puddle. | |
| static void | AltinPeak_AwardFrostJewelAndDrain (void) |
| Back from room 1's beast battle: the beast is gone and the party finds the Frost Jewel; the camera pans to the water and the first drain runs. | |
| static void | AltinPeak_DrainAfterSecondBeast (void) |
| Back from room 3's beast battle: the beast is gone, the log waits at (328, 424), the switch is back in its first position, and the second drain runs. | |
| static void | AltinPeak_DrainAfterThirdBeast (void) |
| Back from room 5's beast battle, the same way, with the third drain. | |
| static void | AltinPeak_CelebrateHydrosVictory (void) |
| Back from the Hydros statues' battle: Garet, Ivan and Mia step out. | |
| static void | AltinPeak_UpdateFrostPillarPriority (void) |
| Scheduler task in room 7: while the leader stands higher than 48 pixels the second pillar is drawn under the party and the third further back. | |
| static void | AltinPeak_MarkActorTerrainCell (s32 actorId) |
| Makes a puddle walkable to the actor checks and marks its map cell. | |
| static void | AltinPeak_RollLog (s32 id, s32 heading) |
| Rolls the log the party leader rides: it sets off the first way it can roll, starting from heading (or its own facing for -1), follows the turns its route's cells mark until the end cell, and the leader jumps off. | |
| static void | AltinPeak_StartPaletteAnim (void) |
| Starts the water's palette cycle. | |
| static void | AltinPeak_TalkToDjinni (void) |
| Talking to the Djinni in room 7 makes it hop and starts the battle for Djinni 23. | |
| static s32 | AltinPeak_ShadowFollowBoulder (union FieldObject *object) |
| static s32 | AltinPeak_FlyDebris (struct ScriptInterpreter *interpreter) |
| Script callback for a piece of flying rock debris: it moves by its velocity, grows by its z velocity and falls under its gravity. | |
| const struct SceneEntrance * | Scene_GetEntrances (void) |
| const struct SceneRegion * | Scene_GetRegions (void) |
| Rooms 9 and 10 have regions. | |
| const u32 * | Scene_GetExits (void) |
| All the rooms share one exit table. | |
| const struct ScenePlacement * | Scene_GetPlacements (void) |
| static void | AltinPeak_RideLog (s32 log) |
| Talking to a log: the party leader jumps onto it, and once the leader has landed on top the log rolls away with the leader riding it. | |
| static void | AltinPeak_FightRoom1Beast (void) |
| Talking to (or reading the mind of) a room's water beast starts its battle; afterwards the party returns to the room's battle entrance. | |
| static void | AltinPeak_FightRoom3Beast (void) |
| static void | AltinPeak_FightRoom5Beast (void) |
| static void | AltinPeak_SettleRoom7Block (void) |
| Move on room 7's block: the cell it left becomes free again and the cell it now stands on (column 24 or 25 of row 26) takes the blocking attributes kept at (0, 0). | |
| static void | AltinPeak_FreezeRoom1Puddle (void) |
| Frost on a puddle freezes it into an ice pillar the party can stand on: the puddle's cell takes the pillar's attributes, kept elsewhere on the map, and the pillar is drawn 32 pixels lower, under the party. | |
| static void | AltinPeak_FreezeRoom1WidePuddle (void) |
| Frost on room 1's wide puddle, three cells across: the cells take the ice's attributes and the ice is left to fall to the ground. | |
| static void | AltinPeak_FreezeRoom7Puddle (void) |
| Frost on room 7's first puddle. | |
| static void | AltinPeak_FreezeRoom5Puddle (void) |
| Frost on room 5's puddle. | |
| static void | AltinPeak_FreezeRoom6Puddle (void) |
| Frost on room 6's puddle. | |
| static void | AltinPeak_FreezeRoom7SecondPuddle (void) |
| Frost on room 7's second puddle. | |
| static void | AltinPeak_FreezeRoom7ThirdPuddle (void) |
| Frost on room 7's third puddle. | |
| static void | Water_FlickerOut (void) |
| Interrupt handler while the water layer vanishes: each time, background 1 (the water) stays on only when a random percentage reaches the timer, so as the timer climbs to 100 the water flickers away. | |
| static void | AltinPeak_DrainFirstWater (void) |
| The first drain, after the Frost Jewel is found: the screen shakes, the water layer sinks 24 pixels, one step every 4 frames (a puddle growing from a tenth of its size partway down), then flickers away over 100 frames. | |
| static void | AltinPeak_DrainSecondWater (void) |
| The second drain: the same sinking and flicker over the cells the water leaves behind, which then take their dry form. | |
| static void | AltinPeak_DrainThirdWater (void) |
| The third drain, likewise. | |
| static void | AltinPeak_ToggleRoom3SwitchCells (void) |
| Flips room 3's switch to its other position, redrawing it and changing the cell its position opens or closes. | |
| static void | AltinPeak_FlipRoom3Switch (void) |
| Searching room 3's switch flips it. "You flipped the switch.". | |
| static void | AltinPeak_ToggleRoom5SwitchCells (void) |
| Flips room 5's switch, the same way. | |
| static void | AltinPeak_FlipRoom5Switch (void) |
| Searching room 5's switch flips it. | |
| static void | AltinPeak_FlipRoom6Switch (void) |
| Searching room 6's switch flips it. | |
| static void | AltinPeak_FlipRoom7Switch (void) |
| Searching room 7's switch flips it. | |
| static void | AltinPeak_PlaceBlockUnderLeader (void) |
| Stepping onto room 7's block: it is drawn under the party leader. | |
| static void | AltinPeak_RestoreBlockAutomaticPriority (void) |
| Stepping off room 7's block: it sorts against the leader again. | |
| static void | AltinPeak_PushRoom7Block (void) |
| Walking east into room 7's block pushes it one cell along with a scrape; the leader follows it and its cells are settled as after Move. | |
| static void | AltinPeak_ForceRockOver (void) |
| Force on room 9's wall: it rumbles, the rock on it rocks one way and back, then topples with a crash, and the rockfall follows. | |
| static void | AltinPeak_ReadFallingRockSign (void) |
| Searching room 9's sign, which can bring the rockfall. | |
| const struct SceneEvent * | Scene_GetEvents (void) |
| Room 1 has its own events once the first drain has lowered its water. | |
| static void | AltinPeak_UpdateBeastHops (union FieldObject *object) |
| Update callback of the hopping water beast: once a second it leaps up and lands with a splash (SE_229) that shakes the screen briefly. | |
| static __inline__ void | AltinPeak_PlayLandingShake (s32 amplitude, s32 holdFrames) |
| The beast lands with a splash, shaking the screen for holdFrames. | |
| static void | AltinPeak_ShowFirstBeastRoute (void) |
| Stepping near room 1's water beast the first time: the camera finds it, it cries out and hops away around the room, freezes the wide puddle with Frost and hops across it, then stops to watch the party leader. | |
| static void | AltinPeak_ShowSecondBeastRoute (void) |
| Stepping near the beast again: it hops back over the ice and settles down, spitting water. | |
| s32 | Scene_Initialize (void) |
| Sets up the room being entered: puzzles already solved and the water levels already lowered. | |
| static void | AltinPeak_InitSpray (struct FieldActor *spray) |
| Gives a new spray particle its look: standing still, on sprite priority 1 and at 0.3 scale. | |
| static void | AltinPeak_DriftSpray (union FieldObject *object) |
| Update callback of a spray particle: it grows while drifting away from the beast, then curls and flattens when its movement timer runs low. | |
| static void | AltinPeak_SpawnSpray (void) |
| Scheduler task while a beast spits: every fourth frame a spray particle starts from its spout, living 20 frames. | |
| static void | AltinPeak_PlayHydrosRumble (void) |
| Scheduler task while the statue wakes: a rumble (SE_183) every second. | |
| static void | AltinPeak_StartHydrosBattle (void) |
| Stepping toward room 10's guardian statue: the leader walks up to it, it rumbles and slides forward, and the battle with the Hydros statues starts. | |
| static void | AltinPeak_FlickerStatue (void) |
| Scheduler task while the statue sinks: it flickers every other frame. | |
| static UNUSED void | AltinPeak_RequestPsynergy (void) |
| Request the original unused Frost action. | |
| static void | AltinPeak_StopLogAndJumpOff (struct FieldActor *object) |
| The log reaches the end of its run: it settles in the middle of its cell and the party leader jumps off it to the south. | |
| static UNUSED void | AltinPeak_ReservedNoOp (void) |
| static void | AltinPeak_TurnLogRight (struct FieldActor *object) |
| The log turns a quarter turn right around the corner it reaches. | |
| static void | AltinPeak_TurnLogLeft (struct FieldActor *object) |
| The log turns a quarter turn left. | |
| static void | AltinPeak_StartLogCountdown (struct FieldActor *object) |
| The log rolls over a marked cell: SE_288 plays, and SE_184 and SE_233 follow as its countdown runs out. | |
| static void | AltinPeak_AdvanceLog (struct FieldActor *object) |
| Rolls the log on by a frame and picks its animation from the terrain ahead of and behind it: flat, uphill or downhill. | |
| static void | AltinPeak_StepPaletteAnim (void) |
| Scheduler task that cycles the water's palette colors through gAltinPeak_PaletteScript. | |
Altin Mine, the eleven rooms under Altin where the hydros statues flood the village.
The party rides rolling logs, freezes puddles into pillars with Frost, fights the water beasts, lowers the water three times and finds the ancient ruins at the bottom.
Definition in file altin_peak.c.
| #define FLAG_ALTIN_PEAK_ROOM_3_SWITCH 0x323 |
Definition at line 62 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterSecondBeast(), AltinPeak_RestoreRoom3(), and AltinPeak_ToggleRoom3SwitchCells().
| #define FLAG_ALTIN_PEAK_ROOM_5_SWITCH 0x325 |
Definition at line 63 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterThirdBeast(), AltinPeak_RestoreRoom5(), and AltinPeak_ToggleRoom5SwitchCells().
| #define FLAG_ALTIN_PEAK_ROOM_6_SWITCH 0x326 |
Definition at line 64 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom6Switch(), and AltinPeak_RestoreRoom6().
| #define FLAG_ALTIN_PEAK_ROOM_7_SWITCH 0x327 |
Definition at line 65 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom7Switch(), and AltinPeak_RestoreRoom7().
| #define SCENE_MINE_ROOM | ( | n | ) |
Definition at line 90 of file altin_peak.c.
Referenced by AltinPeak_FightRoom1Beast(), AltinPeak_FightRoom3Beast(), AltinPeak_FightRoom5Beast(), AltinPeak_StartHydrosBattle(), Scene_GetEntrances(), Scene_GetEvents(), Scene_GetPlacements(), Scene_GetRegions(), and Scene_Initialize().
| #define SEARCH_CHEST_FACING | ( | facing | ) |
| anonymous enum |
Each room's water beast fight returns the party to this entrance.
| Enumerator | |
|---|---|
| ENTRANCE_AFTER_BATTLE | |
Definition at line 93 of file altin_peak.c.
| anonymous enum |
The rooms' actors, from their placement tables.
Rooms 3, 5, 6 and 7 place the log the party rides first.
| Enumerator | |
|---|---|
| ACTOR_LOG | |
Definition at line 97 of file altin_peak.c.
| anonymous enum |
Room 1: a puddle that appears with the first drain, a wide puddle and the water beast.
| Enumerator | |
|---|---|
| ACTOR_ROOM1_PUDDLE | |
| ACTOR_ROOM1_WIDE_PUDDLE | |
| ACTOR_ROOM1_BEAST | |
Definition at line 101 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM3_BEAST | |
| ACTOR_ROOM3_BOULDER | |
Definition at line 107 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM5_PUDDLE | |
| ACTOR_ROOM5_BEAST | |
Definition at line 109 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM6_PUDDLE | |
Definition at line 111 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM7_PUDDLE | |
| ACTOR_ROOM7_BLOCK | |
| ACTOR_ROOM7_SECOND_PUDDLE | |
| ACTOR_ROOM7_THIRD_PUDDLE | |
| ACTOR_DJINNI | |
Definition at line 113 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM8_BOULDER | |
Definition at line 121 of file altin_peak.c.
| anonymous enum |
Room 9: the boulder that falls and its shadow, the rock that topples as it comes down, and the actor Force is cast on.
| Enumerator | |
|---|---|
| ACTOR_FALLING_BOULDER | |
| ACTOR_BOULDER_SHADOW | |
| ACTOR_TOPPLING_ROCK | |
| ACTOR_WALL | |
Definition at line 125 of file altin_peak.c.
| anonymous enum |
Room 10: the guardian statue and its shadow.
| Enumerator | |
|---|---|
| ACTOR_STATUE | |
| ACTOR_STATUE_SHADOW | |
Definition at line 133 of file altin_peak.c.
| anonymous enum |
| Enumerator | |
|---|---|
| ACTOR_ROOM11_BOULDER | |
| ACTOR_ROOM11_BLOCK | |
Definition at line 135 of file altin_peak.c.
| anonymous enum |
The rooms' puzzles, kept while the party stays in the mine.
Definition at line 138 of file altin_peak.c.
| anonymous enum |
The leader's jump animations.
| Enumerator | |
|---|---|
| ANIM_LEADER_JUMP | |
| ANIM_LEADER_LEAP | |
Definition at line 154 of file altin_peak.c.
| anonymous enum |
The sprites the scene makes objects from: the water beast's spray (as in Altin) and room 9's boulder, whose pieces fly in the crash.
| Enumerator | |
|---|---|
| SPRITE_BOULDER | |
| SPRITE_SPRAY | |
Definition at line 158 of file altin_peak.c.
|
static |
Room 9's rockfall.
The party leader steps back and looks up as the slope rumbles; the rock lies toppled and a boulder drops onto the path. The leader flees down the winding path, and after boulderDelay frames the boulder rolls after; it bounces to a stop at the bottom and crashes into the wall, throwing up rock debris and leaving rubble. Garet, if he came out at the sign, rejoins the leader. Remembered by FLAG_ALTIN_PEAK_BOULDER_FALLEN.
Definition at line 813 of file altin_peak.c.
Referenced by AltinPeak_ForceRockOver(), AltinPeak_ReadFallingRockSign(), and AltinPeak_RunBoulderChase().
|
static |
Room 1: after its beast's battle the Frost Jewel is found and the water drains; the beast stays where its routes left it while the water is up, and the frozen puddles are restored once it is down.
Definition at line 1369 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom1(), and Scene_Initialize().
|
static |
Room 3: after its beast's battle the second drain runs; while the water is up the beast spits it; the switch is restored.
Definition at line 1454 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom3(), and Scene_Initialize().
|
static |
Room 4: its water is up until the second drain; entrances 6 and 7 skip the arrival event.
Definition at line 1484 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom4(), and Scene_Initialize().
|
static |
Room 5: after its beast's battle the third drain runs; while the water is up the beast spits it; the frozen puddle and the switch are restored.
Definition at line 1500 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom5(), and Scene_Initialize().
|
static |
Room 6: arriving at entrance 2 the log waits there; the frozen puddle, the water level and the switch are restored.
Definition at line 1538 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom6(), and Scene_Initialize().
|
static |
Room 7: the block, the three frozen puddles and the switch are restored.
Definition at line 1568 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom7(), and Scene_Initialize().
|
static |
Room 9: the boulder is put away; once the rockfall is over the rock lies toppled and the rubble fills the bottom of the path.
Arriving at entrance 6, the leader starts 88 pixels down.
Definition at line 1615 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom9(), and Scene_Initialize().
|
static |
Room 10: the guardian statue stands until the Hydros statues are beaten; after their battle the party talks it over.
Definition at line 1652 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom10(), and Scene_Initialize().
|
static |
Room 11: arriving at entrance 2 the block stands at its pushed place.
Definition at line 1686 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom11(), and Scene_Initialize().
A water beast starts spitting water from (x, y, z) toward facing (east, 0, or west, 0x8000), with its sound (SE_170).
Definition at line 1773 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom1(), AltinPeak_RestoreRoom3(), AltinPeak_RestoreRoom5(), AltinPeak_ShowSecondBeastRoute(), and AltinPeak_StartSpitting().
|
static |
Scheduler task while the boulder crashes: every third frame a piece of rock (the boulder's own sprite, small) flies out at random, with a clatter (SE_144 or SE_145) every ninth frame.
Definition at line 1784 of file altin_peak.c.
Referenced by AltinPeak_RunBoulderChase(), and AltinPeak_SpawnDebris().
|
static |
Update callback of the frozen wide puddle: its ice glints every eight frames.
Definition at line 1820 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom1(), and AltinPeak_SparkleIce().
|
static |
Room 1's water beast casts Frost on the wide puddle.
Definition at line 1833 of file altin_peak.c.
Referenced by AltinPeak_BeastFreezesWidePuddle(), and AltinPeak_ShowFirstBeastRoute().
|
static |
Back from room 1's beast battle: the beast is gone and the party finds the Frost Jewel; the camera pans to the water and the first drain runs.
Definition at line 1849 of file altin_peak.c.
Referenced by AltinPeak_AwardFrostJewelAndDrain(), and AltinPeak_RestoreRoom1().
|
static |
Back from room 3's beast battle: the beast is gone, the log waits at (328, 424), the switch is back in its first position, and the second drain runs.
Definition at line 1878 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterSecondBeast(), and AltinPeak_RestoreRoom3().
|
static |
Back from room 5's beast battle, the same way, with the third drain.
Definition at line 1895 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterThirdBeast(), and AltinPeak_RestoreRoom5().
|
static |
Back from the Hydros statues' battle: Garet, Ivan and Mia step out.
Garet cheers, Ivan asks whether the leader agrees, and Mia tells of the guardian statues; the statue shakes, sinks into the floor and shows a chest behind it, and they agree to open it before they go, then rejoin the leader.
Definition at line 1959 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory(), and AltinPeak_RestoreRoom10().
|
static |
Scheduler task in room 7: while the leader stands higher than 48 pixels the second pillar is drawn under the party and the third further back.
Definition at line 2091 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom7(), and AltinPeak_UpdateFrostPillarPriority().
|
static |
Makes a puddle walkable to the actor checks and marks its map cell.
Definition at line 2107 of file altin_peak.c.
Referenced by AltinPeak_MarkActorTerrainCell(), AltinPeak_RestoreRoom1(), AltinPeak_RestoreRoom5(), AltinPeak_RestoreRoom6(), and AltinPeak_RestoreRoom7().
Rolls the log the party leader rides: it sets off the first way it can roll, starting from heading (or its own facing for -1), follows the turns its route's cells mark until the end cell, and the leader jumps off.
Definition at line 2286 of file altin_peak.c.
Referenced by AltinPeak_RideLog(), and AltinPeak_RollLog().
|
static |
Starts the water's palette cycle.
Definition at line 2376 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom1(), AltinPeak_RestoreRoom3(), AltinPeak_RestoreRoom5(), and AltinPeak_StartPaletteAnim().
|
static |
Talking to the Djinni in room 7 makes it hop and starts the battle for Djinni 23.
Definition at line 168 of file altin_peak.c.
Referenced by AltinPeak_TalkToDjinni().
|
static |
Definition at line 182 of file altin_peak.c.
Referenced by AltinPeak_RunBoulderChase(), and AltinPeak_ShadowFollowBoulder().
|
static |
Script callback for a piece of flying rock debris: it moves by its velocity, grows by its z velocity and falls under its gravity.
Definition at line 197 of file altin_peak.c.
Referenced by AltinPeak_FlyDebris().
| const struct SceneEntrance * Scene_GetEntrances | ( | void | ) |
Definition at line 212 of file altin_peak.c.
| const struct SceneRegion * Scene_GetRegions | ( | void | ) |
Rooms 9 and 10 have regions.
Definition at line 252 of file altin_peak.c.
| const u32 * Scene_GetExits | ( | void | ) |
All the rooms share one exit table.
Both scenes share one exit table.
Definition at line 265 of file altin_peak.c.
| const struct ScenePlacement * Scene_GetPlacements | ( | void | ) |
Definition at line 267 of file altin_peak.c.
|
static |
Talking to a log: the party leader jumps onto it, and once the leader has landed on top the log rolls away with the leader riding it.
Definition at line 302 of file altin_peak.c.
Referenced by AltinPeak_RideLog().
|
static |
Talking to (or reading the mind of) a room's water beast starts its battle; afterwards the party returns to the room's battle entrance.
Definition at line 339 of file altin_peak.c.
Referenced by AltinPeak_FightRoom1Beast().
|
static |
Definition at line 345 of file altin_peak.c.
Referenced by AltinPeak_FightRoom3Beast().
|
static |
Definition at line 351 of file altin_peak.c.
Referenced by AltinPeak_FightRoom5Beast().
|
static |
Move on room 7's block: the cell it left becomes free again and the cell it now stands on (column 24 or 25 of row 26) takes the blocking attributes kept at (0, 0).
Definition at line 360 of file altin_peak.c.
Referenced by AltinPeak_PushRoom7Block(), AltinPeak_RestoreRoom7(), and AltinPeak_SettleRoom7Block().
|
static |
Frost on a puddle freezes it into an ice pillar the party can stand on: the puddle's cell takes the pillar's attributes, kept elsewhere on the map, and the pillar is drawn 32 pixels lower, under the party.
Each room's puddle has its own copy, setting its own scene flag.
Definition at line 384 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom1Puddle().
|
static |
Frost on room 1's wide puddle, three cells across: the cells take the ice's attributes and the ice is left to fall to the ground.
Definition at line 399 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom1WidePuddle().
|
static |
Frost on room 7's first puddle.
Definition at line 411 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom7Puddle().
|
static |
Frost on room 5's puddle.
Definition at line 425 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom5Puddle().
|
static |
Frost on room 6's puddle.
Definition at line 439 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom6Puddle().
|
static |
Frost on room 7's second puddle.
Definition at line 453 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom7SecondPuddle().
|
static |
Frost on room 7's third puddle.
Definition at line 467 of file altin_peak.c.
Referenced by AltinPeak_FreezeRoom7ThirdPuddle().
|
static |
Interrupt handler while the water layer vanishes: each time, background 1 (the water) stays on only when a random percentage reaches the timer, so as the timer climbs to 100 the water flickers away.
Definition at line 483 of file altin_peak.c.
Referenced by AltinPeak_DrainFirstWater(), AltinPeak_DrainSecondWater(), AltinPeak_DrainThirdWater(), and Water_FlickerOut().
|
static |
The first drain, after the Frost Jewel is found: the screen shakes, the water layer sinks 24 pixels, one step every 4 frames (a puddle growing from a tenth of its size partway down), then flickers away over 100 frames.
The way on opens and the drain is remembered.
Definition at line 503 of file altin_peak.c.
Referenced by AltinPeak_AwardFrostJewelAndDrain(), and AltinPeak_DrainFirstWater().
|
static |
The second drain: the same sinking and flicker over the cells the water leaves behind, which then take their dry form.
Definition at line 547 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterSecondBeast(), and AltinPeak_DrainSecondWater().
|
static |
The third drain, likewise.
Definition at line 582 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterThirdBeast(), and AltinPeak_DrainThirdWater().
|
static |
Flips room 3's switch to its other position, redrawing it and changing the cell its position opens or closes.
Definition at line 620 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterSecondBeast(), AltinPeak_FlipRoom3Switch(), and AltinPeak_ToggleRoom3SwitchCells().
|
static |
Searching room 3's switch flips it. "You flipped the switch.".
Definition at line 633 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom3Switch().
|
static |
Flips room 5's switch, the same way.
Definition at line 644 of file altin_peak.c.
Referenced by AltinPeak_DrainAfterThirdBeast(), AltinPeak_FlipRoom5Switch(), and AltinPeak_ToggleRoom5SwitchCells().
|
static |
Searching room 5's switch flips it.
Definition at line 657 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom5Switch().
|
static |
Searching room 6's switch flips it.
Definition at line 668 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom6Switch().
|
static |
Searching room 7's switch flips it.
Definition at line 687 of file altin_peak.c.
Referenced by AltinPeak_FlipRoom7Switch().
|
static |
Stepping onto room 7's block: it is drawn under the party leader.
Definition at line 706 of file altin_peak.c.
Referenced by AltinPeak_PlaceBlockUnderLeader().
|
static |
Stepping off room 7's block: it sorts against the leader again.
Definition at line 712 of file altin_peak.c.
Referenced by AltinPeak_RestoreBlockAutomaticPriority().
|
static |
Walking east into room 7's block pushes it one cell along with a scrape; the leader follows it and its cells are settled as after Move.
Definition at line 718 of file altin_peak.c.
Referenced by AltinPeak_PushRoom7Block().
|
static |
Force on room 9's wall: it rumbles, the rock on it rocks one way and back, then topples with a crash, and the rockfall follows.
Definition at line 736 of file altin_peak.c.
Referenced by AltinPeak_ForceRockOver().
|
static |
Searching room 9's sign, which can bring the rockfall.
"Watch for falling rocks! Do not strike the wall!" Before the rockfall, while the party has no Orb of Force, Garet steps out, grumbles at the dead end and strikes the wall; the ground shakes, he tells the leader to run and runs down the path, and the rockfall follows.
Definition at line 962 of file altin_peak.c.
Referenced by AltinPeak_ReadFallingRockSign().
| const struct SceneEvent * Scene_GetEvents | ( | void | ) |
Room 1 has its own events once the first drain has lowered its water.
Definition at line 1044 of file altin_peak.c.
|
static |
Update callback of the hopping water beast: once a second it leaps up and lands with a splash (SE_229) that shakes the screen briefly.
Definition at line 1081 of file altin_peak.c.
Referenced by AltinPeak_ShowFirstBeastRoute(), AltinPeak_ShowSecondBeastRoute(), and AltinPeak_UpdateBeastHops().
The beast lands with a splash, shaking the screen for holdFrames.
Definition at line 1118 of file altin_peak.c.
Referenced by AltinPeak_PlayLandingShake(), AltinPeak_ShowFirstBeastRoute(), and AltinPeak_ShowSecondBeastRoute().
|
static |
Stepping near room 1's water beast the first time: the camera finds it, it cries out and hops away around the room, freezes the wide puddle with Frost and hops across it, then stops to watch the party leader.
Definition at line 1129 of file altin_peak.c.
Referenced by AltinPeak_ShowFirstBeastRoute().
|
static |
Stepping near the beast again: it hops back over the ice and settles down, spitting water.
Definition at line 1255 of file altin_peak.c.
Referenced by AltinPeak_ShowSecondBeastRoute().
| s32 Scene_Initialize | ( | void | ) |
Sets up the room being entered: puzzles already solved and the water levels already lowered.
Sets up whichever scene is being entered and runs its arrival events.
Returns 0.
Definition at line 1342 of file altin_peak.c.
|
static |
Gives a new spray particle its look: standing still, on sprite priority 1 and at 0.3 scale.
Definition at line 1698 of file altin_peak.c.
Referenced by AltinPeak_InitSpray(), and AltinPeak_SpawnSpray().
|
static |
Update callback of a spray particle: it grows while drifting away from the beast, then curls and flattens when its movement timer runs low.
The timer can start another curl; the separate lifetime still ends after 20 updates.
Definition at line 1710 of file altin_peak.c.
Referenced by AltinPeak_DriftSpray(), and AltinPeak_SpawnSpray().
|
static |
Scheduler task while a beast spits: every fourth frame a spray particle starts from its spout, living 20 frames.
Definition at line 1753 of file altin_peak.c.
Referenced by AltinPeak_SpawnSpray(), and AltinPeak_StartSpitting().
|
static |
Scheduler task while the statue wakes: a rumble (SE_183) every second.
Definition at line 1912 of file altin_peak.c.
Referenced by AltinPeak_PlayHydrosRumble(), and AltinPeak_StartHydrosBattle().
|
static |
Stepping toward room 10's guardian statue: the leader walks up to it, it rumbles and slides forward, and the battle with the Hydros statues starts.
Definition at line 1923 of file altin_peak.c.
Referenced by AltinPeak_StartHydrosBattle().
|
static |
Scheduler task while the statue sinks: it flickers every other frame.
Definition at line 1947 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory(), and AltinPeak_FlickerStatue().
|
static |
Request the original unused Frost action.
Definition at line 2085 of file altin_peak.c.
Referenced by AltinPeak_RequestPsynergy().
|
static |
The log reaches the end of its run: it settles in the middle of its cell and the party leader jumps off it to the south.
Definition at line 2118 of file altin_peak.c.
Referenced by AltinPeak_RollLog(), and AltinPeak_StopLogAndJumpOff().
|
static |
Definition at line 2164 of file altin_peak.c.
Referenced by AltinPeak_ReservedNoOp().
|
static |
The log turns a quarter turn right around the corner it reaches.
Definition at line 2167 of file altin_peak.c.
Referenced by AltinPeak_RollLog(), and AltinPeak_TurnLogRight().
|
static |
The log turns a quarter turn left.
Definition at line 2200 of file altin_peak.c.
Referenced by AltinPeak_RollLog(), and AltinPeak_TurnLogLeft().
|
static |
The log rolls over a marked cell: SE_288 plays, and SE_184 and SE_233 follow as its countdown runs out.
Definition at line 2234 of file altin_peak.c.
Referenced by AltinPeak_RollLog(), and AltinPeak_StartLogCountdown().
|
static |
Rolls the log on by a frame and picks its animation from the terrain ahead of and behind it: flat, uphill or downhill.
Definition at line 2241 of file altin_peak.c.
Referenced by AltinPeak_AdvanceLog(), and AltinPeak_RollLog().
|
static |
Scheduler task that cycles the water's palette colors through gAltinPeak_PaletteScript.
Definition at line 2354 of file altin_peak.c.
Referenced by AltinPeak_StartPaletteAnim(), and AltinPeak_StepPaletteAnim().
|
extern |
Referenced by AltinPeak_DriftSpray(), and AltinPeak_StartSpitting().
|
extern |
Referenced by AltinPeak_SpawnSpray(), and AltinPeak_StartSpitting().
|
extern |
Referenced by AltinPeak_DrainFirstWater(), AltinPeak_DrainSecondWater(), AltinPeak_DrainThirdWater(), and Water_FlickerOut().
| s8 gAltinPeak_PaletteScript[] |
The water's palette cycle: pairs of a color offset and the frames it holds, repeating from the top at -1.
Definition at line 2385 of file altin_peak.c.
Referenced by AltinPeak_StepPaletteAnim().
| s32 gAltinPeak_FaceLeaderScript[] |
Room 1's beast keeps turning to face the party leader.
Definition at line 2394 of file altin_peak.c.
Referenced by AltinPeak_RestoreRoom1(), and AltinPeak_ShowFirstBeastRoute().
| s32 gAltinPeak_PuddleGrowScript[] |
The new puddle grows to full size over 108 frames.
Definition at line 2400 of file altin_peak.c.
Referenced by AltinPeak_DrainFirstWater().
| s32 gAltinPeak_BoulderPath[] |
Room 9's boulder rolls straight down the path, and marks its arrival.
Definition at line 2409 of file altin_peak.c.
Referenced by AltinPeak_RunBoulderChase().
| s32 gAltinPeak_LeaderFleePath[] |
The party leader flees down the winding path ahead of the boulder, marks the arrival, steps aside and turns round.
Definition at line 2426 of file altin_peak.c.
Referenced by AltinPeak_RunBoulderChase().
| s32 gAltinPeak_DebrisScript[] |
A piece of debris flies for 60 frames and is freed.
Definition at line 2487 of file altin_peak.c.
Referenced by AltinPeak_SpawnDebris().
| s32 gAltinPeak_GaretScript[] |
Garet, Ivan and Mia step out beside the leader after the Hydros battle.
Definition at line 2497 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory().
| s32 gAltinPeak_IvanScript[] |
Definition at line 2506 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory().
| s32 gAltinPeak_MiaScript[] |
Definition at line 2515 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory().
| s32 gAltinPeak_StatueSinkScript[] |
The guardian statue and its shadow flatten into the floor over 60 frames.
Definition at line 2525 of file altin_peak.c.
Referenced by AltinPeak_CelebrateHydrosVictory().
| s32 gAltinPeak_RejoinScript[] |
| struct SceneEntrance gAltinPeak_EntrancesOther[] |
Definition at line 2545 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances1[] |
Definition at line 2550 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances2[] |
Definition at line 2558 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances3[] |
Definition at line 2565 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances4[] |
Definition at line 2575 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances5[] |
Definition at line 2587 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances6[] |
Definition at line 2595 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances7[] |
Definition at line 2606 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances8[] |
Definition at line 2614 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances9[] |
Definition at line 2624 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances10[] |
Definition at line 2635 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneEntrance gAltinPeak_Entrances11[] |
Definition at line 2643 of file altin_peak.c.
Referenced by Scene_GetEntrances().
| struct SceneRegion gAltinPeak_Regions9[] |
Definition at line 2652 of file altin_peak.c.
Referenced by Scene_GetRegions().
| struct SceneRegion gAltinPeak_Regions10[] |
Definition at line 2662 of file altin_peak.c.
Referenced by Scene_GetRegions().
| u32 gAltinPeak_Exits[] |
Definition at line 2671 of file altin_peak.c.
Referenced by Scene_GetExits().
| struct ScenePlacement gAltinPeak_PlacementsOther[] |
Definition at line 2725 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements1[] |
Definition at line 2729 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements3[] |
Definition at line 2739 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements5[] |
Definition at line 2749 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements6[] |
Definition at line 2759 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements7[] |
Definition at line 2767 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements8[] |
Definition at line 2784 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements9[] |
Definition at line 2790 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements10[] |
Definition at line 2801 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct ScenePlacement gAltinPeak_Placements11[] |
Definition at line 2812 of file altin_peak.c.
Referenced by Scene_GetPlacements().
| struct SceneEvent gAltinPeak_EventsOther[] |
Definition at line 2820 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events1[] |
Definition at line 2824 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events1Drained[] |
Definition at line 2834 of file altin_peak.c.
Referenced by AltinPeak_AwardFrostJewelAndDrain(), and Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events2[] |
Definition at line 2842 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events3[] |
Definition at line 2848 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events4[] |
Definition at line 2865 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events5[] |
Definition at line 2876 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events6[] |
Definition at line 2891 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events7[] |
Definition at line 2905 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events8[] |
Definition at line 2927 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events9[] |
Definition at line 2939 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events10[] |
Definition at line 2952 of file altin_peak.c.
Referenced by Scene_GetEvents().
| struct SceneEvent gAltinPeak_Events11[] |
Definition at line 2960 of file altin_peak.c.
Referenced by Scene_GetEvents().
| s32 gAltinPeak_RumbleTicks = 0 |
Frames since the statue's last rumble.
Definition at line 2973 of file altin_peak.c.
Referenced by AltinPeak_PlayHydrosRumble().
| u32 gAltinPeak_RollRadii[] |
The log's speed factor by its height against where it set off: 2 to the power i / 16 for i from 0 to 32, in 16.16.
Definition at line 2977 of file altin_peak.c.
Referenced by AltinPeak_AdvanceLog().