A Colosso finals course: Isaac races another warrior through the Rock Challenge, the Pipeworks, the Broken Bridge and the Lumber Water Crossing Area to the arena, where the two fight. More...
Go to the source code of this file.
Macros | |
| #define | COLOSSO_RIVER_FACE_DIRECTION ((s32 (*)())Engine_ActorFaceDirection) |
| #define | COLOSSO_RIVER_PLACE_STAGED_PAIR ((s32 (*)())ColossoRiver_MoveActorPairByOffset) |
| #define | COLOSSO_RIVER_SELECT_MODE_BLOCK ((s32 (*)())ColossoRiver_SelectPresentationScript) |
| #define | COLOSSO_RIVER_APPLY_MATCHING_SLOT_VALUES ((s32 (*)(s32, s32))Scene_GiveAndEquipItem) |
| #define | DIRECTION_STEP(x, z) |
| Pixel steps by direction: X in the upper halfword, Z in the lower. | |
Typedefs | |
| typedef void(*) | SceneTask(void) |
Enumerations | |
| enum | { OPPONENT = 8 , ROCK_A = 9 , ROCK_B = 10 , ROCK_C = 11 , PIPEWORKS_BLOCK = 12 , PIPE_WEST = 13 , PIPE_EAST = 14 , GROWTH_PLANT = 15 , BRIDGE_OPERATOR = 16 , LOG_NORTH_SOUTH = 17 , LOG_EAST_WEST = 18 , GUIDE = 19 , ROCK_ATTENDANT = 20 , PIPEWORKS_ATTENDANT = 21 , BRIDGE_ATTENDANT = 22 , LUMBER_ATTENDANT = 23 , PRIZE_A = 24 , PRIZE_B = 25 } |
| The course's actors, by the guide's and attendants' explanations: four stages (the Rock Challenge, the Pipeworks, the Broken Bridge and the Lumber Water Crossing Area) lead to the arena where the two warriors fight. More... | |
Functions | |
| static void | ColossoRiver_ExplainFinalsRules (s32 guide) |
| The guide shows the party the first finals course: the race through the stages to the arena, the prizes there, and where the companions cheer from. | |
| static void | ColossoRiver_ShowRoundIntroduction (s32 round) |
| The match opens: portraits of the warriors and the round announced. | |
| static void | ColossoRiver_ShowMatchResult (s32 result) |
| The result: the winner's portrait and fanfare, then the course closes. | |
| static void | ColossoRiver_NoOp (void) |
| static void | ColossoRiver_WaitForStageReady (void) |
| Waits until the stage's setup task reports readiness. | |
| static s32 | ColossoRiver_CollectFinishItem (s32 firstItem, s32 secondItem) |
| Moves to the selected finish item and presents it to the party. | |
| static void | ColossoRiver_PushObjectAhead (void) |
| Checks the next cell and pushes its object one step if clear. | |
| const struct SceneEntrance * | ColossoRiver_GetEntrances (void) |
| const struct SceneRegion * | ColossoRiver_GetRegions (void) |
| const u32 * | ColossoRiver_GetExits (void) |
| const struct ScenePlacement * | ColossoRiver_GetPlacements (void) |
| static void | ColossoRiver_UpdateBrokenBridge (void) |
| Advances the bridge animation and its walkable collision cells. | |
| static void | ColossoRiver_ResetBrokenBridge (void) |
| Stops the bridge task and restores its closed frame. | |
| static void | ColossoRiver_StartBrokenBridge (void) |
| Starts the bridge's repeating opening sequence. | |
| static void | ColossoRiver_WaitForBridgeOpening (void) |
| Waits for the crossing window, bounded by one bridge cycle. | |
| static void | Event_SettleRocks (void) |
| After a rock is moved: a rock resting on the floor becomes a step (the second rock's column is kept in byte flag 0x310). | |
| static void | Event_PushRock (void) |
| Walking into a rock pushes it one cell. | |
| static void | Event_GrowPlant (void) |
| Growth on the plant: it grows and its cell becomes walkable (0x303 keeps it grown). | |
| static void | Event_DousePipe (void) |
| Douse on the west pipe: the camera turns to the Pipeworks and the two pipes rise as it fills (0x301). | |
| static void | ColossoRiver_MoveActorPairByOffset (s32 actorId, s32 dx, s32 dz) |
| Moves the leader and a course object together between cell centers. | |
| static void | Event_RollLogNorthSouth (void) |
| Walking into the north-south log rolls it, with the leader, to the other bank. | |
| static void | Event_RollLogEastWest (void) |
| Walking into the east-west log rolls it, with the leader, the way the pad is held. | |
| static void | ColossoRiver_AnimatePipeworksWater (void) |
| Runs the five frames that show water entering the Pipeworks channel. | |
| static void | Event_PushPipeworksBlock (void) |
| Pushing the Pipeworks block west: water runs into the channel, and the first time the pipes rise (0x302, 0x301). | |
| static UNUSED void | ColossoRiver_SetCourseFlag (void) |
| static void | Event_ReachArena (void) |
| Reaching the arena: the leader takes a prize (the Iron Shield if first, the Padded Gloves if second), and he and his opponent face off and fight. | |
| static void | Event_PushRockOrCheckAhead (void) |
| Walking into something: a rock is pushed, anything else is checked. | |
| const struct SceneEvent * | ColossoRiver_GetEvents (void) |
| static void | ColossoRiver_RestoreMatchResult (s32 result) |
| Back from the battle: the two warriors stand in the arena as the result is shown. | |
| static void | ColossoRiver_MarkCourseTerrain (s32 actor) |
| Marks actors standing in the course's finish terrain. | |
| s32 | ColossoRiver_Initialize (void) |
| Restores the stages as they were left, then by the arrival: the race (1 and 2), the guide's explanation (3), or the match won (4) or lost (5). | |
| static void | Event_TalkToRockAttendant (s32 scene) |
| The Rock Challenge's attendant: the first time, a warrior shows how to push the rocks into steps; then the objective. | |
| static void | ColossoRiver_SetPipeHeight (struct FieldActor *actor, s32 height) |
| Moves a Pipeworks actor with the speed used throughout its demonstration. | |
| static void | Event_TalkToPipeworksAttendant (s32 attendant) |
| The Pipeworks' attendant: a marker shows how the pipes rise and fall like scales; then the objective. | |
| static void | Event_TalkToBridgeAttendant (s32 scene) |
| The Broken Bridge's attendant: a warrior times his crossing; then the objective. | |
| static void | Event_TalkToLumberAttendant (s32 scene) |
| The Lumber Water Crossing Area's attendant: a warrior rolls a log across; then the objective. | |
| static void | InitializeActorZero (void) |
| Sets the leader's movement speed for the shared Colosso dialogue. | |
| static void | InitializeSelectedActor (s32 actorId) |
| Sets an attendant's movement speed for the shared Colosso dialogue. | |
| static __inline__ void | AdvanceMessage (s32 amount) |
| Advances to the next message in the current explanation. | |
| static void | ColossoRiver_SelectPresentationScript (u32 mode, u32 param) |
| Selects a presentation script and resets its playback state. | |
| static UNUSED void | Text_WriteU32AsHex (u8 *buf, u32 value) |
| Writes eight hexadecimal digits and a terminating null. | |
| static UNUSED void | ColossoRiver_MarkStageReady (void) |
| Marks the shared stage state ready for the waiting event. | |
| static void | ColossoRiver_SpawnRandomEffect (union FieldObject *fieldObject) |
| Occasionally spawns an animated effect around the finish item. | |
| static s32 | ColossoRiver_PlaceFinishItemAboveActor (struct ScriptInterpreter *interpreter) |
| Presents the collected item above its collector and signals completion. | |
Variables | |
| const u8 | gColosso_LetteringPaletteOffsets [] |
| const s16 | gColossoRiver_ModeRecordTwo [] |
| const s16 | gColossoRiver_SpanB [] |
| char | gHexDigits [20] = "0123456789ABCDEF" |
| s32 | gColossoRiver_ScriptA [] |
| s32 | gColossoRiver_ScriptB [] |
| u32 | gColossoRiver_DirectionSteps [] |
| struct SceneEntrance | gColossoRiver_Entrances [] |
| u32 | gColossoRiver_Exits [] |
| struct ScenePlacement | gColossoRiver_Placements [] |
| s32 | gColossoRiver_Countdown = 0 |
| struct SceneEvent | gColossoRiver_Events [] |
| s16 | gColosso_LetteringSlot = -1 |
| s16 | gColossoRiver_RoundSpans [] |
| s16 | gColossoRiver_ModeRecordFour [] |
| s16 | gColossoRiver_SpanA [] |
| s16 | gColosso_MarkerSlot = -1 |
| s32 | gColosso_RivalFinishScript [] |
| s32 | gColossoRiver_ApproachScript [] |
A Colosso finals course: Isaac races another warrior through the Rock Challenge, the Pipeworks, the Broken Bridge and the Lumber Water Crossing Area to the arena, where the two fight.
Definition in file colosso_river.c.
| #define COLOSSO_RIVER_FACE_DIRECTION ((s32 (*)())Engine_ActorFaceDirection) |
Definition at line 70 of file colosso_river.c.
Referenced by Event_TalkToBridgeAttendant().
| #define COLOSSO_RIVER_PLACE_STAGED_PAIR ((s32 (*)())ColossoRiver_MoveActorPairByOffset) |
Definition at line 71 of file colosso_river.c.
Referenced by Event_TalkToLumberAttendant().
| #define COLOSSO_RIVER_SELECT_MODE_BLOCK ((s32 (*)())ColossoRiver_SelectPresentationScript) |
Definition at line 73 of file colosso_river.c.
Referenced by ColossoRiver_ShowMatchResult().
| #define COLOSSO_RIVER_APPLY_MATCHING_SLOT_VALUES ((s32 (*)(s32, s32))Scene_GiveAndEquipItem) |
Definition at line 75 of file colosso_river.c.
Referenced by ColossoRiver_CollectFinishItem().
| #define DIRECTION_STEP | ( | x, | |
| z ) |
Pixel steps by direction: X in the upper halfword, Z in the lower.
Definition at line 1497 of file colosso_river.c.
| typedef void(*) SceneTask(void) |
Definition at line 87 of file colosso_river.c.
| anonymous enum |
The course's actors, by the guide's and attendants' explanations: four stages (the Rock Challenge, the Pipeworks, the Broken Bridge and the Lumber Water Crossing Area) lead to the arena where the two warriors fight.
Definition at line 92 of file colosso_river.c.
|
static |
The guide shows the party the first finals course: the race through the stages to the arena, the prizes there, and where the companions cheer from.
Definition at line 683 of file colosso_river.c.
Referenced by ColossoRiver_ExplainFinalsRules(), and ColossoRiver_Initialize().
|
static |
The match opens: portraits of the warriors and the round announced.
Definition at line 1095 of file colosso_river.c.
Referenced by ColossoRiver_Initialize(), and ColossoRiver_ShowRoundIntroduction().
|
static |
The result: the winner's portrait and fanfare, then the course closes.
Definition at line 1142 of file colosso_river.c.
Referenced by ColossoRiver_RestoreMatchResult(), and ColossoRiver_ShowMatchResult().
|
static |
Definition at line 1202 of file colosso_river.c.
Referenced by ColossoRiver_NoOp(), and Event_ReachArena().
|
static |
Waits until the stage's setup task reports readiness.
Definition at line 1213 of file colosso_river.c.
Referenced by ColossoRiver_WaitForStageReady(), and Event_ReachArena().
Moves to the selected finish item and presents it to the party.
Definition at line 1273 of file colosso_river.c.
Referenced by ColossoRiver_CollectFinishItem(), and Event_ReachArena().
|
static |
Checks the next cell and pushes its object one step if clear.
Definition at line 1341 of file colosso_river.c.
Referenced by ColossoRiver_PushObjectAhead(), Event_PushRock(), and Event_TalkToRockAttendant().
| const struct SceneEntrance * ColossoRiver_GetEntrances | ( | void | ) |
Definition at line 113 of file colosso_river.c.
Referenced by ColossoRiver_GetEntrances().
| const struct SceneRegion * ColossoRiver_GetRegions | ( | void | ) |
Definition at line 117 of file colosso_river.c.
Referenced by ColossoRiver_GetRegions().
| const u32 * ColossoRiver_GetExits | ( | void | ) |
Definition at line 119 of file colosso_river.c.
Referenced by ColossoRiver_GetExits().
| const struct ScenePlacement * ColossoRiver_GetPlacements | ( | void | ) |
Definition at line 121 of file colosso_river.c.
Referenced by ColossoRiver_GetPlacements().
|
static |
Advances the bridge animation and its walkable collision cells.
Definition at line 126 of file colosso_river.c.
Referenced by ColossoRiver_Initialize(), ColossoRiver_ResetBrokenBridge(), ColossoRiver_StartBrokenBridge(), and ColossoRiver_UpdateBrokenBridge().
|
static |
Stops the bridge task and restores its closed frame.
Definition at line 156 of file colosso_river.c.
Referenced by ColossoRiver_ResetBrokenBridge(), and Event_TalkToBridgeAttendant().
|
static |
Starts the bridge's repeating opening sequence.
Definition at line 166 of file colosso_river.c.
Referenced by ColossoRiver_StartBrokenBridge(), and Event_TalkToBridgeAttendant().
|
static |
Waits for the crossing window, bounded by one bridge cycle.
Definition at line 172 of file colosso_river.c.
Referenced by ColossoRiver_WaitForBridgeOpening(), and Event_TalkToBridgeAttendant().
|
static |
After a rock is moved: a rock resting on the floor becomes a step (the second rock's column is kept in byte flag 0x310).
Definition at line 190 of file colosso_river.c.
|
static |
Walking into a rock pushes it one cell.
Definition at line 223 of file colosso_river.c.
|
static |
Growth on the plant: it grows and its cell becomes walkable (0x303 keeps it grown).
Definition at line 231 of file colosso_river.c.
|
static |
Douse on the west pipe: the camera turns to the Pipeworks and the two pipes rise as it fills (0x301).
Definition at line 241 of file colosso_river.c.
Referenced by Event_DousePipe().
Moves the leader and a course object together between cell centers.
Definition at line 269 of file colosso_river.c.
Referenced by ColossoRiver_MoveActorPairByOffset(), Event_RollLogEastWest(), and Event_RollLogNorthSouth().
|
static |
Walking into the north-south log rolls it, with the leader, to the other bank.
Definition at line 309 of file colosso_river.c.
Referenced by Event_RollLogNorthSouth().
|
static |
Walking into the east-west log rolls it, with the leader, the way the pad is held.
Definition at line 329 of file colosso_river.c.
Referenced by Event_RollLogEastWest().
|
inlinestatic |
Runs the five frames that show water entering the Pipeworks channel.
Definition at line 371 of file colosso_river.c.
Referenced by ColossoRiver_AnimatePipeworksWater(), and Event_PushPipeworksBlock().
|
static |
Pushing the Pipeworks block west: water runs into the channel, and the first time the pipes rise (0x302, 0x301).
Definition at line 385 of file colosso_river.c.
Referenced by Event_PushPipeworksBlock().
|
static |
Definition at line 458 of file colosso_river.c.
Referenced by ColossoRiver_SetCourseFlag().
|
static |
Reaching the arena: the leader takes a prize (the Iron Shield if first, the Padded Gloves if second), and he and his opponent face off and fight.
FLAG_SCENE_TEMP_11 says the arena was already reached; the arena's touch works while FLAG_SCENE_TEMP_10 is clear.
Definition at line 464 of file colosso_river.c.
|
static |
Walking into something: a rock is pushed, anything else is checked.
Definition at line 507 of file colosso_river.c.
Referenced by Event_PushRockOrCheckAhead().
| const struct SceneEvent * ColossoRiver_GetEvents | ( | void | ) |
Definition at line 516 of file colosso_river.c.
Referenced by ColossoRiver_GetEvents().
|
static |
Back from the battle: the two warriors stand in the arena as the result is shown.
Definition at line 522 of file colosso_river.c.
Referenced by ColossoRiver_Initialize(), and ColossoRiver_RestoreMatchResult().
|
static |
Marks actors standing in the course's finish terrain.
Definition at line 546 of file colosso_river.c.
Referenced by ColossoRiver_Initialize(), and ColossoRiver_MarkCourseTerrain().
| s32 ColossoRiver_Initialize | ( | void | ) |
Restores the stages as they were left, then by the arrival: the race (1 and 2), the guide's explanation (3), or the match won (4) or lost (5).
Definition at line 563 of file colosso_river.c.
Referenced by ColossoRiver_Initialize().
|
static |
The Rock Challenge's attendant: the first time, a warrior shows how to push the rocks into steps; then the objective.
Definition at line 815 of file colosso_river.c.
Referenced by Event_TalkToRockAttendant().
|
inlinestatic |
Moves a Pipeworks actor with the speed used throughout its demonstration.
Definition at line 873 of file colosso_river.c.
Referenced by ColossoRiver_SetPipeHeight(), and Event_TalkToPipeworksAttendant().
|
static |
The Pipeworks' attendant: a marker shows how the pipes rise and fall like scales; then the objective.
Definition at line 883 of file colosso_river.c.
Referenced by Event_TalkToPipeworksAttendant().
|
static |
The Broken Bridge's attendant: a warrior times his crossing; then the objective.
Definition at line 945 of file colosso_river.c.
Referenced by Event_TalkToBridgeAttendant().
|
static |
The Lumber Water Crossing Area's attendant: a warrior rolls a log across; then the objective.
Definition at line 989 of file colosso_river.c.
Referenced by Event_TalkToLumberAttendant().
|
inlinestatic |
Sets the leader's movement speed for the shared Colosso dialogue.
Definition at line 1045 of file colosso_river.c.
|
inlinestatic |
Sets an attendant's movement speed for the shared Colosso dialogue.
Definition at line 1050 of file colosso_river.c.
|
static |
Advances to the next message in the current explanation.
Definition at line 1055 of file colosso_river.c.
Referenced by AdvanceMessage().
Selects a presentation script and resets its playback state.
Definition at line 1064 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript(), and ColossoRiver_ShowRoundIntroduction().
Writes eight hexadecimal digits and a terminating null.
Definition at line 1189 of file colosso_river.c.
Referenced by Text_WriteU32AsHex(), and Text_WriteU32AsHex().
|
static |
Marks the shared stage state ready for the waiting event.
Definition at line 1205 of file colosso_river.c.
Referenced by ColossoRiver_MarkStageReady().
|
static |
Occasionally spawns an animated effect around the finish item.
Definition at line 1222 of file colosso_river.c.
Referenced by ColossoRiver_SpawnRandomEffect().
|
static |
Presents the collected item above its collector and signals completion.
Definition at line 1259 of file colosso_river.c.
Referenced by ColossoRiver_PlaceFinishItemAboveActor().
| const u8 gColosso_LetteringPaletteOffsets[] |
Definition at line 1427 of file colosso_river.c.
| const s16 gColossoRiver_ModeRecordTwo[] |
Definition at line 1435 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript().
| const s16 gColossoRiver_SpanB[] |
Definition at line 1441 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript(), and ColossoRiver_ShowMatchResult().
| char gHexDigits[20] = "0123456789ABCDEF" |
Definition at line 1452 of file colosso_river.c.
Referenced by Text_WriteU32AsHex(), and Text_WriteU32AsHex().
| s32 gColossoRiver_ScriptA[] |
Definition at line 1454 of file colosso_river.c.
Referenced by ColossoRiver_SpawnRandomEffect().
| s32 gColossoRiver_ScriptB[] |
Definition at line 1461 of file colosso_river.c.
Referenced by ColossoRiver_PlaceFinishItemAboveActor().
| u32 gColossoRiver_DirectionSteps[] |
Definition at line 1499 of file colosso_river.c.
Referenced by ColossoRiver_PushObjectAhead().
| struct SceneEntrance gColossoRiver_Entrances[] |
Definition at line 1518 of file colosso_river.c.
Referenced by ColossoRiver_GetEntrances().
| u32 gColossoRiver_Exits[] |
Definition at line 1524 of file colosso_river.c.
Referenced by ColossoRiver_GetExits().
| struct ScenePlacement gColossoRiver_Placements[] |
Definition at line 1533 of file colosso_river.c.
Referenced by ColossoRiver_GetPlacements().
| s32 gColossoRiver_Countdown = 0 |
Definition at line 1581 of file colosso_river.c.
Referenced by ColossoRiver_ResetBrokenBridge(), ColossoRiver_StartBrokenBridge(), ColossoRiver_UpdateBrokenBridge(), and ColossoRiver_WaitForBridgeOpening().
| struct SceneEvent gColossoRiver_Events[] |
Definition at line 1583 of file colosso_river.c.
Referenced by ColossoRiver_GetEvents().
| s16 gColosso_LetteringSlot = -1 |
Definition at line 1615 of file colosso_river.c.
| s16 gColossoRiver_RoundSpans[] |
Definition at line 1617 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript(), and ColossoRiver_ShowRoundIntroduction().
| s16 gColossoRiver_ModeRecordFour[] |
Definition at line 1627 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript().
| s16 gColossoRiver_SpanA[] |
Definition at line 1658 of file colosso_river.c.
Referenced by ColossoRiver_SelectPresentationScript(), and ColossoRiver_ShowMatchResult().
| s16 gColosso_MarkerSlot = -1 |
Definition at line 1670 of file colosso_river.c.
| s32 gColosso_RivalFinishScript[] |
Definition at line 1672 of file colosso_river.c.