Mercury Lighthouse, in four maps. More...
Go to the source code of this file.
Macros | |
| #define | MERCURY_LIGHTHOUSE_MOVE_LEADER_TO_ENTRY Actor_MoveToAndWait |
| #define | MERCURY_LIGHTHOUSE_ANIMATE_ACTOR_AND_WAIT ((s32 (*)())Engine_ActorSetAnimationAndWait) |
| #define | NULL ((void *)0) |
| #define | MERCURY_LIGHTHOUSE_OFFSET_FIXED(value) |
| #define | DIRECTION_STEP(dx, dz) |
| Pixel step by direction: X in the upper halfword, Z in the lower. | |
Enumerations | |
| enum | MercuryLighthouse1Actor { ACTOR_STATUE_BLOCKING_MIA = ACTOR_FIRST_PLACED , ACTOR_CHANNEL_BLOCK_1 , ACTOR_CHANNEL_BLOCK_2 , ACTOR_CHANNEL_BLOCK_3 } |
| The first map: Mia, the statue that blocks her and the channel blocks. More... | |
| enum | MercuryLighthouse2Actor { ACTOR_STAIR_BLOCK = ACTOR_FIRST_PLACED , ACTOR_FOUNTAIN_BLOCK = ACTOR_FIRST_PLACED + 2 , ACTOR_GATE_STATUE , ACTOR_SLEET } |
| The second map: the stair and fountain blocks, the statue for the gate's floor switch and Sleet, Mercury Djinni 1. More... | |
| enum | MercuryLighthouse3Actor { ACTOR_FALLEN_STATUE = ACTOR_FIRST_PLACED , ACTOR_SLIDING_STATUE , ACTOR_DOOR_ROOM_BLOCK , ACTOR_DOOR_SWITCH_BLOCK , ACTOR_FIRST_CROSSING_BLOCK = ACTOR_FIRST_PLACED + 7 , ACTOR_LAST_CROSSING_BLOCK = ACTOR_FIRST_CROSSING_BLOCK + 4 , ACTOR_GAP_BLOCK } |
| The third map: the sliding statue and where it lands below, the blocks of the stone-door room, the five blocks of the crossing and one more. More... | |
| enum | MercuryLighthouse4Actor { ACTOR_DOOR_STATUE = ACTOR_FIRST_PLACED + 2 , ACTOR_PLY_TARGET , ACTOR_WATERFALL_STATUE , ACTOR_LIFT_STATUE , ACTOR_FIRST_VISITOR } |
| The fourth map: Garet, Ivan and Mia in their own party slots, the statue at the door, the Ply target, the statue by the waterfall, the statue on the lift and the people at the fountain. More... | |
| enum | { FLAG_STAIRS_RAISED = 0x302 , FLAG_FOUNTAIN_RUNNING = 0x306 , FLAG_FOUNTAIN_SHOWN = 0x307 , FLAG_CHANNEL_1_OPEN = 0x310 , FLAG_CHANNEL_2_OPEN = 0x311 , FLAG_CHANNEL_3_OPEN = 0x312 , FLAG_CHANNEL_313 = 0x313 , FLAG_DOOR_ROOM_BLOCK_PUSHED = 0x318 , FLAG_DOOR_SWITCH_BLOCK_AT_47 = 0x319 , FLAG_DOOR_SWITCH_BLOCK_AT_48 = 0x31a , FLAG_DOOR_SWITCH_BLOCK_AT_53 = 0x31b , FLAG_FIRST_CROSSING_BLOCK = 0x330 , FLAG_LAST_CROSSING_BLOCK_WEST = 0x338 , FLAG_LAST_CROSSING_BLOCK_EAST = 0x339 , FLAG_GAP_BLOCK_PLACED = 0x348 } |
| Puzzle states kept until the party leaves the lighthouse. More... | |
| enum | { FLAG_HERMES_WATER_TAKEN = FLAG_SCENE_TEMP_00 , FLAG_LEADER_ON_FLOOR_SWITCH = FLAG_SCENE_TEMP_00 + 0x56 } |
| Scene flags, kept while the party stays on the map. More... | |
| enum | { FLAG_CHEST_SLEEP_BOMB = 0xf64 , FLAG_CHEST_PSY_CRYSTAL = 0xf66 , FLAG_CHEST_NUT = 0xf67 } |
| The chests: a Sleep Bomb, a Psy Crystal and a Nut. More... | |
Functions | |
| static void | MercuryLighthouse_OpenGateWithMovedBlock (void) |
| Move on the gate statue, or after a push: resting on the floor switch at (5, 13), it sinks two pixels and the gate opens for good. | |
| static void | MercuryLighthouse_OpenStairGateWithMovedBlock (void) |
| Move on the fallen statue, or after a push: resting on the switch at (10, 23), it sinks two pixels and the stair gate opens for good. | |
| static void | MercuryLighthouse_SyncBlockFlags (void) |
| Move on a crossing block, or after a push: each block's column is saved in its pair of flags, and the last opens the crossing at column 57 or 59. | |
| static void | SceneEffect_SpawnParticleRowsAndDrawTiles (void) |
| Reveals the stair's map rows with particles along their edges. | |
| static void | MercuryLighthouse_OpenThreeStepStair (void) |
| Restores the stair tiles in three particle-covered steps. | |
| static void | SceneEffect_SpawnParticleEveryFourthFrame (void) |
| Emits particles around the leader once every four frames. | |
| static void | SceneEffect_SpawnRandomEveryFourFrames (s32 x, s32 y, s32 z) |
| Emits particles at a fixed point once every four frames. | |
| static void | SceneEffect_SpawnWithRandomOffset (s32 x, s32 y, s32 z) |
| Emits a stationary particle near the supplied position. | |
| static void | SceneEffect_SpawnRandomizedBurst (s32 x, s32 y, s32 z, s32 angle) |
| Emits a short burst with velocities spreading along the supplied angle. | |
| static void | MercuryLighthouse_RideLift (void) |
| Entrance 15 at the foot: the leader rides the lift up beside its statue, hops off onto the landing, and the lift goes back down. | |
| static void | MercuryLighthouse_MiaCastsPlyOnEntrance (void) |
| Mia casts Ply on the Ply target, moved onto the door. | |
| static void | MercuryLighthouse_ReplaceInventoryItem (s32 oldItem, s32 newItem) |
| Replaces one inventory item in the owner and slot that contain it. | |
| static void | MercuryLighthouse_StartDjinnBattle (void) |
| Talking to Sleet: the Djinni battle (Djinni 21, Mercury Djinni 1). | |
| const struct SceneEntrance * | MercuryLighthouse_GetEntrances (void) |
| const struct SceneRegion * | MercuryLighthouse_GetRegions (void) |
| const u32 * | MercuryLighthouse_GetExits (void) |
| Returns the packed exits shared by the lighthouse scenes. | |
| const struct ScenePlacement * | MercuryLighthouse_GetPlacements (void) |
| Selects the actors and obstacles for the current lighthouse scene. | |
| static void | MercuryLighthouse_SpawnTimedRiseEffect (void) |
| On the first map, as in the entrance hall, once Ply has worked there: touching trigger 21 keeps rising sparks appearing on the pillar. | |
| static void | MercuryLighthouse_ReleaseRaisedPillar (void) |
| Touching trigger 31 or 32: the raised pillar is let go. | |
| static void | MercuryLighthouse_TryPillarStep (void) |
| Walking into trigger 11, 21 or 31: one step across the water pillars. | |
| static void | MercuryLighthouse_RaiseTouchedPillar (void) |
| Touching trigger 11: the pillar underfoot rises to its full height. | |
| static void | MercuryLighthouse_InspectBlockedPassage (void) |
| Searching trigger 10 at the lighthouse's foot. | |
| const struct SceneEvent * | MercuryLighthouse_GetEvents (void) |
| Selects the puzzle interactions and dialogue for the current scene. | |
| static void | MercuryLighthouse_ExitWithSparks (void) |
| Walking north into trigger 53 on the third map: the leader rises through exit 3 (the trigger less 50), as the entrance hall's risers do. | |
| static void | MercuryLighthouse_ExitAfterSparkStep (void) |
| Walking north into trigger 63 on the third map: the same, through exit 13. | |
| static void | MercuryLighthouse_LeaveWithSparkTrail (void) |
| Walking north into trigger 55 at the foot: the same, through exit 5. | |
| static void | MercuryLighthouse_ExitWhenChannelsOpen (void) |
| With all three channel blocks in place the floor shakes, the screen fades and the party is carried down to the entrance hall (exit 13); moving one out again clears the flag. | |
| static void | MercuryLighthouse_MoveChannelBlocks (void) |
| Pushing a channel block (walking into trigger 25) on the first map: each block opens one channel when it reaches its place, and the water runs on through the ones before it. | |
| static void | MercuryLighthouse_WalkLeaderIn (void) |
| Touching trigger 2, 3 or 4 once the stairs are raised, or 46: the leader is carried to the landing in a trail of sparkles. | |
| static void | MercuryLighthouse_PushGateSwitchBlock (void) |
| Pushing the gate statue (walking into trigger 10) while the gate is shut: it moves a step, and may come to rest on the floor switch. | |
| static void | MercuryLighthouse_PressGateFloorSwitch (void) |
| Touching trigger 12 while the gate is shut: standing on the floor switch sinks the leader two pixels and opens the gate. | |
| static void | MercuryLighthouse_CloseFloorSwitch (void) |
| Touching trigger 10 or 13: stepping off the switch closes the gate again. | |
| static void | MercuryLighthouse_AnimateFountainTiles (s32 delayFrames, s32 firstStep, s32 endStep) |
| Animates the fountain's map strips between the requested steps. | |
| static void | MercuryLighthouse_RestoreFountainTiles (s32 delayFrames) |
| Restores the fountain's map strips after moving its block away. | |
| static void | MercuryLighthouse_SprayAtFountain (void) |
| Emits the scheduled spray at the fountain's fixed position. | |
| static void | MercuryLighthouse_OpenFountainWithSpray (s32 delayFrames) |
| Opens the fountain row by row and starts its continuous spray. | |
| static void | MercuryLighthouse_StopFountainSpray (void) |
| Restores the fountain tiles and stops its continuous spray. | |
| static void | MercuryLighthouse_MoveStairAndFountainBlocks (void) |
| Pushing a block on the second map (walking into trigger 1 or 45): the stair block raises the stairs at column 11 and lowers them anywhere else; the fountain block starts the fountain at row 40, the first time with the camera watching, and stops it at row 42. | |
| static void | MercuryLighthouse_PushStairSwitchBlock (void) |
| Pushing the fallen statue (walking into trigger 10 or 12) while the stair gate is shut: it moves a step and may come to rest on the floor switch. | |
| static void | MercuryLighthouse_PressStairFloorSwitch (void) |
| Touching trigger 12 while the stair gate is shut: standing on its switch opens it. | |
| static void | MercuryLighthouse_ReleaseStairFloorSwitch (void) |
| Touching trigger 10: stepping off the switch closes the stair gate. | |
| static __inline__ s32 | MercuryLighthouse_RandomDoorParticleSpeed (void) |
| Chooses the random speed component used by stone-door particles. | |
| static void | MercuryLighthouse_OpenStoneDoor (s32 side) |
| Opens the selected stone door with particles along its moving edge. | |
| static void | MercuryLighthouse_CloseStoneDoor (s32 side) |
| Restores the selected stone door's tiles with trailing particles. | |
| static s32 | MercuryLighthouse_StartStatueSlide (void) |
| The camera turns to the sliding statue, which moves on only for the door switch block positions recorded; returns 1 when it slides off its ledge. | |
| static void | MercuryLighthouse_SprayAboveStatue (void) |
| Sparkles rise from the sliding statue as it moves. | |
| static s32 | MercuryLighthouse_StartStatueSpray (struct ScriptInterpreter *interpreter) |
| The slide scripts start the sparkles as the statue sets off. | |
| static s32 | MercuryLighthouse_StopStatueSpray (void) |
| static void | MercuryLighthouse_MoveStoneDoorBlocks (void) |
| Pushing a block in the stone-door room (walking into trigger 40) on the third map: the door switch block opens a different stone door at each column, and at column 48, once the statue is in place, the statue slides out and falls to the floor below. | |
| static void | MercuryLighthouse_PushAndSaveBlockPositions (void) |
| Pushing a crossing block (walking into trigger 47): it moves a step and where the blocks rest is saved. | |
| static void | MercuryLighthouse_OpenMovedBlockCrossing (void) |
| Move on the gap block: at column 28 it fills the gap for good. | |
| static void | MercuryLighthouse_RotatePaletteRange (u16 *colors, u32 colorCount) |
| Rotates the selected palette range once every eight frames. | |
| static void | MercuryLighthouse_CycleEntrancePalette (void) |
| While the lighthouse door is shut its light shimmers: background palette 2, colors 8 to 15, rotates every eight frames. | |
| static void | MercuryLighthouse_MiaSensesSomeoneInside (void) |
| Talking to Mia at the lighthouse's foot, or Mind Read on her, before the door is open: she senses someone. | |
| static void | MercuryLighthouse_MiaDiscussesBlockedEntrance (void) |
| Talking to Mia again. "This statue is blocking the entrance.". | |
| static void | MercuryLighthouse_FadePaletteToWhite (void) |
| The door's light brightens to white as it opens. | |
| static void | MercuryLighthouse_MiaOpensEntranceWithPly (void) |
| Move on the door statue: once it stands at column 51 Mia asks whether the party did that, learns of Psynergy, and uses Ply to open the door; she goes in, and Garet and Ivan rejoin the leader. | |
| static void | MercuryLighthouse_CycleWaterfallPalette (void) |
| The waterfall shimmers: background palette 6, colors 1 to 7, rotates every eight frames. | |
| static void | MercuryLighthouse_FadePaletteToBlack (void) |
| The waterfall's colors fade to black as it stops. | |
| static void | MercuryLighthouse_RaiseActorWithSparks (s32 actorId) |
| Raises an actor into the passage with sparks for 48 ticks, two frames each. | |
| static void | MercuryLighthouse_PlyOpensWaterfallPassage (void) |
| Ply on the waterfall statue: the waterfall darkens and stops, sparkles rise and the way behind it opens. | |
| static void | MercuryLighthouse_ReadHermesFountainInscription (void) |
| Searching trigger 42 at the foot shows the fountain's sign. | |
| static void | MercuryLighthouse_InspectLockedDoor (void) |
| Searching trigger 20 on the second or third map: the door is locked tight. | |
| static void | MercuryLighthouse_InspectHealingFountain (void) |
| Searching the fountain (trigger 5) before taking its water: it seems dry, or once Saturos is beaten flows with water; carrying an Empty Bottle, the item menu then opens. | |
| static void | MercuryLighthouse_FillHermesWaterBottle (void) |
| Using the Empty Bottle at the fountain (event 0xb904: the bottle's item number and kind 4) once Saturos is beaten: the bottle becomes Hermes' Water, once a visit. | |
| static void | MercuryLighthouse_EnterRisingPassage (void) |
| Walking south into trigger 15 on the first or second map: on the first the leader steps to the hole and drops into the entrance hall (exit 8, its entrance 6); on the second the motion runs alone. | |
| s32 | MercuryLighthouse_Initialize (void) |
| Restores each lighthouse scene's puzzle state and entrance sequence. | |
| static void | MercuryLighthouse_MiaJoinsAfterRescue (void) |
| Move on the statue blocking Mia, before she has joined: once it stands at column 48, Mia thanks the party, asks whether it has business in the lighthouse and presses until it says yes, then joins with Fizz. | |
| static void | OverlayObject_SpawnKind24AtObject (struct FieldActor *source) |
| Creates the rising effect at the source actor and sets its sprite priority. | |
Mercury Lighthouse, in four maps.
The fourth is the lighthouse's foot, with the Hermes fountain, the lift and the door Mia opens; the others are floors inside, entered from the entrance hall (mercury_lighthouse_entrance.c). Sprite 0xe0 is a statue: Mia says "This statue wasn't here before" of the one blocking her on the first.
Definition in file mercury_lighthouse.c.
| #define MERCURY_LIGHTHOUSE_MOVE_LEADER_TO_ENTRY Actor_MoveToAndWait |
Definition at line 68 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_WalkLeaderIn().
| #define MERCURY_LIGHTHOUSE_ANIMATE_ACTOR_AND_WAIT ((s32 (*)())Engine_ActorSetAnimationAndWait) |
Definition at line 77 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaJoinsAfterRescue().
| #define NULL ((void *)0) |
Definition at line 94 of file mercury_lighthouse.c.
| #define MERCURY_LIGHTHOUSE_OFFSET_FIXED | ( | value | ) |
Definition at line 175 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenFountainWithSpray().
| #define DIRECTION_STEP | ( | dx, | |
| dz ) |
Pixel step by direction: X in the upper halfword, Z in the lower.
Pack negative steps through unsigned words rather than left-shifting a negative.
Definition at line 2697 of file mercury_lighthouse.c.
The first map: Mia, the statue that blocks her and the channel blocks.
| Enumerator | |
|---|---|
| ACTOR_STATUE_BLOCKING_MIA | |
| ACTOR_CHANNEL_BLOCK_1 | |
| ACTOR_CHANNEL_BLOCK_2 | |
| ACTOR_CHANNEL_BLOCK_3 | |
Definition at line 97 of file mercury_lighthouse.c.
The second map: the stair and fountain blocks, the statue for the gate's floor switch and Sleet, Mercury Djinni 1.
| Enumerator | |
|---|---|
| ACTOR_STAIR_BLOCK | |
| ACTOR_FOUNTAIN_BLOCK | |
| ACTOR_GATE_STATUE | |
| ACTOR_SLEET | |
Definition at line 106 of file mercury_lighthouse.c.
The third map: the sliding statue and where it lands below, the blocks of the stone-door room, the five blocks of the crossing and one more.
| Enumerator | |
|---|---|
| ACTOR_FALLEN_STATUE | |
| ACTOR_SLIDING_STATUE | |
| ACTOR_DOOR_ROOM_BLOCK | |
| ACTOR_DOOR_SWITCH_BLOCK | |
| ACTOR_FIRST_CROSSING_BLOCK | |
| ACTOR_LAST_CROSSING_BLOCK | |
| ACTOR_GAP_BLOCK | |
Definition at line 115 of file mercury_lighthouse.c.
The fourth map: Garet, Ivan and Mia in their own party slots, the statue at the door, the Ply target, the statue by the waterfall, the statue on the lift and the people at the fountain.
| Enumerator | |
|---|---|
| ACTOR_DOOR_STATUE | |
| ACTOR_PLY_TARGET | |
| ACTOR_WATERFALL_STATUE | |
| ACTOR_LIFT_STATUE | |
| ACTOR_FIRST_VISITOR | |
Definition at line 128 of file mercury_lighthouse.c.
| anonymous enum |
Puzzle states kept until the party leaves the lighthouse.
Definition at line 137 of file mercury_lighthouse.c.
| anonymous enum |
Scene flags, kept while the party stays on the map.
| Enumerator | |
|---|---|
| FLAG_HERMES_WATER_TAKEN | |
| FLAG_LEADER_ON_FLOOR_SWITCH | |
Definition at line 158 of file mercury_lighthouse.c.
| anonymous enum |
The chests: a Sleep Bomb, a Psy Crystal and a Nut.
| Enumerator | |
|---|---|
| FLAG_CHEST_SLEEP_BOMB | |
| FLAG_CHEST_PSY_CRYSTAL | |
| FLAG_CHEST_NUT | |
Definition at line 164 of file mercury_lighthouse.c.
|
static |
Move on the gate statue, or after a push: resting on the floor switch at (5, 13), it sinks two pixels and the gate opens for good.
Definition at line 446 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenGateWithMovedBlock(), and MercuryLighthouse_PushGateSwitchBlock().
|
static |
Move on the fallen statue, or after a push: resting on the switch at (10, 23), it sinks two pixels and the stair gate opens for good.
Definition at line 768 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenStairGateWithMovedBlock(), and MercuryLighthouse_PushStairSwitchBlock().
|
static |
Move on a crossing block, or after a push: each block's column is saved in its pair of flags, and the last opens the crossing at column 57 or 59.
Definition at line 1128 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PushAndSaveBlockPositions(), and MercuryLighthouse_SyncBlockFlags().
|
static |
Reveals the stair's map rows with particles along their edges.
Definition at line 1867 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStairAndFountainBlocks(), and SceneEffect_SpawnParticleRowsAndDrawTiles().
|
static |
Restores the stair tiles in three particle-covered steps.
Definition at line 1895 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStairAndFountainBlocks(), and MercuryLighthouse_OpenThreeStepStair().
|
static |
Emits particles around the leader once every four frames.
Definition at line 1930 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_WalkLeaderIn(), and SceneEffect_SpawnParticleEveryFourthFrame().
Emits particles at a fixed point once every four frames.
Definition at line 1955 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenFountainWithSpray(), MercuryLighthouse_SprayAboveStatue(), MercuryLighthouse_SprayAtFountain(), and SceneEffect_SpawnRandomEveryFourFrames().
Emits a stationary particle near the supplied position.
Definition at line 1978 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_RaiseActorWithSparks(), and SceneEffect_SpawnWithRandomOffset().
Emits a short burst with velocities spreading along the supplied angle.
Definition at line 1996 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveChannelBlocks(), and SceneEffect_SpawnRandomizedBurst().
|
static |
Entrance 15 at the foot: the leader rides the lift up beside its statue, hops off onto the landing, and the lift goes back down.
Definition at line 2535 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_Initialize(), and MercuryLighthouse_RideLift().
|
static |
Mia casts Ply on the Ply target, moved onto the door.
Definition at line 2623 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaCastsPlyOnEntrance(), and MercuryLighthouse_MiaOpensEntranceWithPly().
Replaces one inventory item in the owner and slot that contain it.
Definition at line 2639 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_FillHermesWaterBottle(), and MercuryLighthouse_ReplaceInventoryItem().
|
static |
Talking to Sleet: the Djinni battle (Djinni 21, Mercury Djinni 1).
Definition at line 183 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartDjinnBattle().
| const struct SceneEntrance * MercuryLighthouse_GetEntrances | ( | void | ) |
Definition at line 212 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEntrances().
| const struct SceneRegion * MercuryLighthouse_GetRegions | ( | void | ) |
Definition at line 227 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetRegions().
| const u32 * MercuryLighthouse_GetExits | ( | void | ) |
Returns the packed exits shared by the lighthouse scenes.
Definition at line 230 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetExits().
| const struct ScenePlacement * MercuryLighthouse_GetPlacements | ( | void | ) |
Selects the actors and obstacles for the current lighthouse scene.
Definition at line 233 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
|
static |
On the first map, as in the entrance hall, once Ply has worked there: touching trigger 21 keeps rising sparks appearing on the pillar.
Definition at line 253 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_SpawnTimedRiseEffect().
|
static |
Touching trigger 31 or 32: the raised pillar is let go.
Definition at line 258 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ReleaseRaisedPillar().
|
static |
Walking into trigger 11, 21 or 31: one step across the water pillars.
Definition at line 263 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_TryPillarStep().
|
static |
Touching trigger 11: the pillar underfoot rises to its full height.
Definition at line 268 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_RaiseTouchedPillar().
|
static |
Searching trigger 10 at the lighthouse's foot.
"Strange forces are at work..."
Definition at line 274 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_InspectBlockedPassage().
| const struct SceneEvent * MercuryLighthouse_GetEvents | ( | void | ) |
Selects the puzzle interactions and dialogue for the current scene.
Definition at line 281 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEvents().
|
static |
Walking north into trigger 53 on the third map: the leader rises through exit 3 (the trigger less 50), as the entrance hall's risers do.
Definition at line 300 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ExitWithSparks().
|
static |
Walking north into trigger 63 on the third map: the same, through exit 13.
Definition at line 305 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ExitAfterSparkStep().
|
static |
Walking north into trigger 55 at the foot: the same, through exit 5.
Definition at line 310 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_LeaveWithSparkTrail().
|
static |
With all three channel blocks in place the floor shakes, the screen fades and the party is carried down to the entrance hall (exit 13); moving one out again clears the flag.
Definition at line 317 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ExitWhenChannelsOpen(), and MercuryLighthouse_MoveChannelBlocks().
|
static |
Pushing a channel block (walking into trigger 25) on the first map: each block opens one channel when it reaches its place, and the water runs on through the ones before it.
Definition at line 341 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveChannelBlocks().
|
static |
Touching trigger 2, 3 or 4 once the stairs are raised, or 46: the leader is carried to the landing in a trail of sparkles.
Definition at line 405 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_WalkLeaderIn().
|
static |
Pushing the gate statue (walking into trigger 10) while the gate is shut: it moves a step, and may come to rest on the floor switch.
Definition at line 437 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PushGateSwitchBlock().
|
static |
Touching trigger 12 while the gate is shut: standing on the floor switch sinks the leader two pixels and opens the gate.
Definition at line 473 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PressGateFloorSwitch().
|
static |
Touching trigger 10 or 13: stepping off the switch closes the gate again.
Definition at line 497 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CloseFloorSwitch().
Animates the fountain's map strips between the requested steps.
Definition at line 515 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_AnimateFountainTiles(), and MercuryLighthouse_OpenFountainWithSpray().
|
static |
Restores the fountain's map strips after moving its block away.
Definition at line 544 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStairAndFountainBlocks(), and MercuryLighthouse_RestoreFountainTiles().
|
static |
Emits the scheduled spray at the fountain's fixed position.
Definition at line 583 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenFountainWithSpray(), MercuryLighthouse_SprayAtFountain(), and MercuryLighthouse_StopFountainSpray().
|
static |
Opens the fountain row by row and starts its continuous spray.
Definition at line 588 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_Initialize(), MercuryLighthouse_MoveStairAndFountainBlocks(), and MercuryLighthouse_OpenFountainWithSpray().
|
static |
Restores the fountain tiles and stops its continuous spray.
Definition at line 654 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStairAndFountainBlocks(), and MercuryLighthouse_StopFountainSpray().
|
static |
Pushing a block on the second map (walking into trigger 1 or 45): the stair block raises the stairs at column 11 and lowers them anywhere else; the fountain block starts the fountain at row 40, the first time with the camera watching, and stops it at row 42.
Definition at line 696 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStairAndFountainBlocks().
|
static |
Pushing the fallen statue (walking into trigger 10 or 12) while the stair gate is shut: it moves a step and may come to rest on the floor switch.
Definition at line 759 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PushStairSwitchBlock().
|
static |
Touching trigger 12 while the stair gate is shut: standing on its switch opens it.
Definition at line 789 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PressStairFloorSwitch().
|
static |
Touching trigger 10: stepping off the switch closes the stair gate.
Definition at line 816 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ReleaseStairFloorSwitch().
|
static |
Chooses the random speed component used by stone-door particles.
Definition at line 834 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenStoneDoor(), and MercuryLighthouse_RandomDoorParticleSpeed().
|
static |
Opens the selected stone door with particles along its moving edge.
Definition at line 844 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_Initialize(), MercuryLighthouse_MoveStoneDoorBlocks(), and MercuryLighthouse_OpenStoneDoor().
|
static |
Restores the selected stone door's tiles with trailing particles.
Definition at line 904 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CloseStoneDoor(), MercuryLighthouse_Initialize(), and MercuryLighthouse_MoveStoneDoorBlocks().
|
static |
The camera turns to the sliding statue, which moves on only for the door switch block positions recorded; returns 1 when it slides off its ledge.
Definition at line 947 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStoneDoorBlocks(), and MercuryLighthouse_StartStatueSlide().
|
static |
Sparkles rise from the sliding statue as it moves.
Definition at line 985 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_Initialize(), MercuryLighthouse_SprayAboveStatue(), MercuryLighthouse_StartStatueSpray(), and MercuryLighthouse_StopStatueSpray().
|
static |
The slide scripts start the sparkles as the statue sets off.
Definition at line 997 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartStatueSpray().
|
static |
Definition at line 1011 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStoneDoorBlocks(), and MercuryLighthouse_StopStatueSpray().
|
static |
Pushing a block in the stone-door room (walking into trigger 40) on the third map: the door switch block opens a different stone door at each column, and at column 48, once the statue is in place, the statue slides out and falls to the floor below.
Definition at line 1021 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MoveStoneDoorBlocks().
|
static |
Pushing a crossing block (walking into trigger 47): it moves a step and where the blocks rest is saved.
Definition at line 1119 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PushAndSaveBlockPositions().
|
static |
Move on the gap block: at column 28 it fills the gap for good.
Definition at line 1169 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenMovedBlockCrossing().
Rotates the selected palette range once every eight frames.
It writes the saved first color at the end before shifting, preserving the palette access order.
Definition at line 1189 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CycleEntrancePalette(), MercuryLighthouse_CycleWaterfallPalette(), and MercuryLighthouse_RotatePaletteRange().
|
static |
While the lighthouse door is shut its light shimmers: background palette 2, colors 8 to 15, rotates every eight frames.
Definition at line 1214 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CycleEntrancePalette(), MercuryLighthouse_Initialize(), and MercuryLighthouse_MiaOpensEntranceWithPly().
|
static |
Talking to Mia at the lighthouse's foot, or Mind Read on her, before the door is open: she senses someone.
"Somebody...is here." She asks whether the party hears it, says only Alex can enter besides her, and that the statue blocks her way.
Definition at line 1222 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaSensesSomeoneInside().
|
static |
Talking to Mia again. "This statue is blocking the entrance.".
Definition at line 1272 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaDiscussesBlockedEntrance().
|
static |
The door's light brightens to white as it opens.
Definition at line 1282 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_FadePaletteToWhite(), and MercuryLighthouse_MiaOpensEntranceWithPly().
|
static |
Move on the door statue: once it stands at column 51 Mia asks whether the party did that, learns of Psynergy, and uses Ply to open the door; she goes in, and Garet and Ivan rejoin the leader.
Definition at line 1321 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaOpensEntranceWithPly().
|
static |
The waterfall shimmers: background palette 6, colors 1 to 7, rotates every eight frames.
Definition at line 1484 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CycleWaterfallPalette(), MercuryLighthouse_Initialize(), and MercuryLighthouse_PlyOpensWaterfallPassage().
|
static |
The waterfall's colors fade to black as it stops.
Definition at line 1489 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_FadePaletteToBlack(), and MercuryLighthouse_PlyOpensWaterfallPassage().
|
static |
Raises an actor into the passage with sparks for 48 ticks, two frames each.
Its upward displacement accelerates by about 0.1 pixel per tick.
Definition at line 1526 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PlyOpensWaterfallPassage(), and MercuryLighthouse_RaiseActorWithSparks().
|
static |
Ply on the waterfall statue: the waterfall darkens and stops, sparkles rise and the way behind it opens.
Once Saturos is beaten the leader rises through it alone to the aerie (exit 9); before that Mia rises first and the party follows, out to the world map (exit 8).
Definition at line 1569 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PlyOpensWaterfallPassage().
|
static |
Searching trigger 42 at the foot shows the fountain's sign.
"Fountain of Healing / Water of Hermes: It brings rejuvenation to all that lives."
Definition at line 1787 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ReadHermesFountainInscription().
|
static |
Searching trigger 20 on the second or third map: the door is locked tight.
Definition at line 1795 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_InspectLockedDoor().
|
static |
Searching the fountain (trigger 5) before taking its water: it seems dry, or once Saturos is beaten flows with water; carrying an Empty Bottle, the item menu then opens.
Definition at line 1805 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_InspectHealingFountain().
|
static |
Using the Empty Bottle at the fountain (event 0xb904: the bottle's item number and kind 4) once Saturos is beaten: the bottle becomes Hermes' Water, once a visit.
Definition at line 1827 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_FillHermesWaterBottle().
|
static |
Walking south into trigger 15 on the first or second map: on the first the leader steps to the hole and drops into the entrance hall (exit 8, its entrance 6); on the second the motion runs alone.
Definition at line 1842 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_EnterRisingPassage().
| s32 MercuryLighthouse_Initialize | ( | void | ) |
Restores each lighthouse scene's puzzle state and entrance sequence.
Definition at line 2029 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_Initialize().
|
static |
Move on the statue blocking Mia, before she has joined: once it stands at column 48, Mia thanks the party, asks whether it has business in the lighthouse and presses until it says yes, then joins with Fizz.
"You've saved me again, haven't you!"
Definition at line 2436 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaJoinsAfterRescue().
|
static |
Creates the rising effect at the source actor and sets its sprite priority.
Definition at line 2654 of file mercury_lighthouse.c.
| s32 gEffectScript0[] |
Definition at line 2680 of file mercury_lighthouse.c.
| s32 gEffectScript1[] |
| s32 gEffectScript2[] |
| s32 gStagedActor_DirectionSteps[] |
Pixel step by direction: X in the upper halfword, Z in the lower.
Definition at line 2699 of file mercury_lighthouse.c.
| u32 gStagedActor_FootprintKinds[] |
Definition at line 2709 of file mercury_lighthouse.c.
| s32 gStagedActor_FootprintBounds[] |
Definition at line 2713 of file mercury_lighthouse.c.
| s32 gMercuryLighthouse_RiseScript[] |
Definition at line 2722 of file mercury_lighthouse.c.
Referenced by OverlayObject_SpawnKind24AtObject().
| s32 gMercuryLighthouse_SparkScript[] |
Definition at line 2727 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_SpawnSparkPair().
| s32 gMercuryLighthouse_RampScript[] |
Definition at line 2732 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_HopAcrossPool(), and MercuryLighthouse_RestoreLights().
| s32 gMercuryLighthouse_ScaleCounterScript[] |
Definition at line 2737 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_HopAcrossPool(), and MercuryLighthouse_LoseLights().
| s32 gMercuryLighthouse_PillarScript[] |
Definition at line 2742 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ChargeLights(), and MercuryLighthouse_RestoreLights().
| u16 gMercuryLighthouse_MoveAngles[] |
Definition at line 2747 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_HopAcrossPool().
| const s32* gEffectScripts[] |
Definition at line 2752 of file mercury_lighthouse.c.
| s32 gMercuryLighthouse_SparkBurstScript[] |
Definition at line 2758 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_PlyOpensWaterfallPassage(), and MercuryLighthouse_RaiseActorWithSparks().
| s32 gMercuryLighthouse_PushScriptA[] |
Definition at line 2778 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartStatueSlide().
| s32 gMercuryLighthouse_PushScriptB[] |
Definition at line 2788 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartStatueSlide().
| s32 gMercuryLighthouse_PushScriptD[] |
Definition at line 2799 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartStatueSlide().
| s32 gMercuryLighthouse_PushScriptC[] |
Definition at line 2810 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_StartStatueSlide().
| s32 gPaletteCycleRed = 0 |
Definition at line 2816 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CyclePalette().
| s32 gPaletteCycleGreen = 0 |
Definition at line 2818 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CyclePalette().
| s32 gPaletteCycleBlue = 0 |
Definition at line 2820 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CyclePalette().
| u16 gMercuryLighthouse_GateCells[] |
Definition at line 2822 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenGateWithMovedBlock(), and MercuryLighthouse_PressGateFloorSwitch().
| u16 gMercuryLighthouse_GateCloseCells[] |
Definition at line 2826 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_CloseFloorSwitch().
| u16 gMercuryLighthouse_FloorSwitchCells[] |
Definition at line 2830 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_OpenStairGateWithMovedBlock(), and MercuryLighthouse_PressStairFloorSwitch().
| u16 gMercuryLighthouse_FloorSwitchCloseCells[] |
Definition at line 2834 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_ReleaseStairFloorSwitch().
| u16 gMercuryLighthouse_ColumnCells[] |
Definition at line 2838 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_MiaOpensEntranceWithPly().
| struct SceneEntrance gMercuryLighthouseEntrancesOther[] |
Definition at line 2842 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEntrances().
| struct SceneEntrance gMercuryLighthouseEntrances2[] |
Definition at line 2859 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEntrances().
| struct SceneEntrance gMercuryLighthouseEntrances3[] |
Definition at line 2874 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEntrances().
| struct SceneEntrance gMercuryLighthouseEntrances4[] |
Definition at line 2895 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEntrances().
| u32 gMercuryLighthouse_Exits[] |
Definition at line 2909 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetExits().
| struct ScenePlacement gMercuryLighthousePlacementsOther[] |
Definition at line 2965 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
| struct ScenePlacement gMercuryLighthousePlacements1[] |
Definition at line 2969 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
| struct ScenePlacement gMercuryLighthousePlacements2[] |
Definition at line 2985 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
| struct ScenePlacement gMercuryLighthousePlacements3[] |
Definition at line 2999 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
| struct ScenePlacement gMercuryLighthousePlacements4[] |
Definition at line 3029 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetPlacements().
| struct SceneEvent gMercuryLighthouseEvents1[] |
Definition at line 3059 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEvents().
| struct SceneEvent gMercuryLighthouseEvents2[] |
Definition at line 3088 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEvents().
| struct SceneEvent gMercuryLighthouseEvents3[] |
Definition at line 3119 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEvents().
| struct SceneEvent gMercuryLighthouseEventsOther[] |
Definition at line 3152 of file mercury_lighthouse.c.
Referenced by MercuryLighthouse_GetEvents().