Alchemy
Loading...
Searching...
No Matches

colosso_wall.c File Reference

Colosso's second finals course: Isaac races another warrior through the Mini-Maze, the shifting floor, the Log-Rolling Stage, the Wall and the Board Walk to the arena. More...

Go to the source code of this file.

Data Structures

struct  StageControl
 The rival's recorded-path playback state, held in the scene state; status 9 marks the rival finished. More...

Macros

#define COLOSSO_WALL_FIRST_PLATFORM   22
#define COLOSSO_WALL_LAST_PLATFORM   25
#define COLOSSO_WALL_PLATFORM_CYCLE_FRAMES   120
#define COLOSSO_WALL_PLATFORM_CROSSING_FRAME   75
#define COLOSSO_WALL_DEMONSTRATION_TIMEOUT_FRAMES   600
#define COLOSSO_WALL_LOG_TRAVEL_PIXELS   64
#define COLOSSO_WALL_OFFSET_FIXED(value)
#define COLOSSO_WALL_ALTERNATE_PORTRAIT_PALETTE_OFFSET   64
#define COLOSSO_WALL_INTRO_SCALE   384
#define COLOSSO_WALL_PULSE_FIRST_SCALE   512
#define COLOSSO_WALL_PULSE_HIGH_SCALE   384
#define COLOSSO_WALL_PULSE_LOW_SCALE   256
#define COLOSSO_WALL_SHOW_MESSAGE   ((s32 (*)())Engine_EventShowMessage)
#define COLOSSO_WALL_MOVE_ACTOR_PAIR   ((s32 (*)())ColossoWall_MovePusherAndLog)
#define COLOSSO_WALL_START_MODE_TASK   ((s32 (*)())ColossoWall_StartLetteringAnimation)
#define COLOSSO_WALL_APPLY_MATCHING_SLOT_VALUE   ((s32 (*)())Scene_GiveAndEquipItem)
#define WORK_SLOT_STAGE   59
#define DIRECTION_STEP(x, z)

Enumerations

enum  {
  OPPONENT = 8 , ROLLING_LOG_WEST = 15 , ROLLING_LOG_EAST = 16 , ROLLING_LOG_CENTER = 17 ,
  FORCE_TARGET = 18 , GROWTH_PLANT = 19 , FROST_TARGET_WEST = 20 , FROST_TARGET_EAST = 21 ,
  FALLING_OBSTACLE = 30 , LIFT_OPERATOR = 31 , RIDING_LOG_NORTH = 32 , RIDING_LOG_SOUTH = 33 ,
  GUIDE = 34 , MINI_MAZE_ATTENDANT = 35 , SHIFTING_FLOOR_ATTENDANT = 36 , LOG_ROLLING_ATTENDANT = 37 ,
  WALL_ATTENDANT = 38 , BOARD_WALK_ATTENDANT = 39 , PRIZE_A = 40 , PRIZE_B = 41
}
 The second course's actors, by the guide's and attendants' explanations: the Mini-Maze, the shifting floor, the Log-Rolling Stage, the Wall and the Board Walk lead to the arena. More...

Functions

static void ColossoWall_IntroduceSecondFinals (s32 attendantId)
 Introduces the second finals course, then gathers the party behind Isaac.
static void ColossoWall_ShowRoundStartLettering (s32 mode)
 Shows the course-opening lettering and plays its timed audio cues.
static void ColossoWall_ShowBattleResultLettering (s32 result)
 Shows the win-or-loss lettering and the appropriate competitor's reaction.
static void SceneState_EmptyHook (void)
 Retains the empty hook called before the finish sequence.
static void ColossoWall_WaitForRivalFinish (void)
static s32 ColossoWall_ApproachFinishAndTakeItem (s32 firstItem, s32 secondItem)
 Approaches the finish item on the unused side and shows the item message.
static void ColossoWall_StartRivalPath (s32 pathResource)
 Decodes the rival's recorded path and starts its playback task.
static void ColossoWall_PushAdjacentObstacle (void)
 Pushes the adjacent obstacle only when the destination and space above are clear.
static void InitializeActorZero (void)
 Sets the party leader's walking speed and acceleration.
static void InitializeSelectedActor (s32 actorId)
 Sets the specified actor's walking speed and acceleration.
const struct SceneEntrance * Scene_GetEntrances (void)
const struct SceneRegion * Scene_GetRegions (void)
const u32 * Scene_GetExits (void)
 Returns the packed course and battle-result exits.
const struct ScenePlacement * Scene_GetPlacements (void)
 Returns the course's competitors, obstacles and attendants.
static void Event_IgnoreMove (void)
 Move on the first two rocks does nothing.
static void Event_PushRock (void)
 Pushes the obstacle immediately ahead of the selected actor.
static void Event_UpdateMovedRockCell (void)
 Updates the first movable obstacle's collision after Move.
static void Event_PushRockAndUpdateCells (void)
 Pushes an obstacle, then restores the first obstacle's collision cell.
static void Event_SaveMovedRockColumns (void)
 Saves the movable obstacles' columns and rebuilds their collision cells.
static void Event_PrepareForce (void)
 Enables the child effect for Force on the course obstacle.
static void Event_KnockDownObstacle (void)
 Force on the target: the obstacle spins down into place and the way past it opens (0x330).
static void Event_FreezeWestTarget (void)
 Frost on the western target: it freezes and its crossing opens (0x331).
static void Event_FreezeEastTarget (void)
 Frost on the eastern target: it freezes and its crossing opens (0x332).
static void Event_GrowPlant (void)
 Growth on the plant: it grows into a strip that can be climbed (0x333).
static void Event_RunRisingSequence (void)
 Runs the rising-object sequence for the actor touching the obstacle.
static void Event_CheckAhead (void)
static void ColossoWall_MovePusherAndLog (s32 logId, s32 offsetX, s32 offsetZ)
 Moves a riding log and its pusher to aligned cell centers.
static void Event_RideLog (void)
 Moves the aligned riding log in the direction the player holds.
static void ColossoWall_RollLogToCell (s32 logId, s32 halfCellX, s32 halfCellZ)
 Rolls a log to half-cell coordinates while its pusher follows halfway.
static void ColossoWall_UpdateRollingLogCollision (void)
 Rebuilds the three rolling logs' collision rectangles at their positions.
static void Event_RollWestLogWest (void)
static void Event_RollWestLogEast (void)
static void Event_RollEastLogWest (void)
static void Event_RollEastLogEast (void)
static UNUSED void ColossoWall_RollCenterLogNorth (void)
 Rolls the center log north and rebuilds the log collision rectangles.
static UNUSED void ColossoWall_RollCenterLogSouth (void)
 Rolls the center log south and rebuilds the log collision rectangles.
static void ColossoWall_UpdateMovingPlatforms (void)
 Carries the selected actor on the moving platforms and alternates their routes.
static void ColossoWall_ResetMovingPlatforms (void)
 Stops the moving-platform task and restores its starting row.
static void ColossoWall_StartMovingPlatforms (void)
 Starts the moving-platform task and releases its pause flag.
static void ColossoWall_WaitForPlatformCrossingPhase (void)
 Waits for the demonstration's crossing phase, with a ten-second timeout.
static void Event_HaltLifts (void)
 Halt on the lift operator: the lifts stop and leave a crossing (0x334).
static void Event_ReachArena (void)
 Reaching the arena: the leader takes a prize (the Chain Mail if first, the Cotton Shirt if second), and he and his opponent face off and fight.
const struct SceneEvent * Scene_GetEvents (void)
 Returns the course's obstacle interactions and attendant dialogue.
static void ColossoWall_StageBattleResult (s32 result)
 Back from the battle: the two warriors stand in the arena as the result is shown.
s32 ColossoWall_Initialize (void)
 Restores obstacle progress and sets up the selected course entrance.
static void Event_TalkToMiniMazeAttendant (s32 attendant)
 The Mini-Maze's attendant: the first time, a warrior runs the maze; then the objective.
static void Event_TalkToShiftingFloorAttendant (s32 attendant)
 The shifting floor's attendant: the first time, a warrior rides the lifts; then, that the lifts' operator will cheer for Isaac.
static void Event_TalkToLogRollingAttendant (s32 attendant)
 The Log-Rolling Stage's attendant: a warrior rides a log across; then the objective.
static void Event_TalkToWallAttendant (s32 attendant)
 The Wall's attendant: a warrior climbs it; then the objective.
static void ColossoWall_PushBlockToCell (s32 obstacleId, s32 column, s32 row)
 Moves a demonstration obstacle to pixel coordinates while its pusher follows.
static void Event_TalkToBoardWalkAttendant (s32 attendant)
 The Board Walk's attendant: a warrior rolls a log into a path; then the objective.
static void ColossoWall_StartLetteringAnimation (u32 mode, u32 tileVariant)
 Chooses the lettering animation script and resets its task state.
static UNUSED void Text_WriteU32AsHex (u8 *destination, u32 value)
 Writes eight uppercase hexadecimal digits followed by a terminator.
static UNUSED void ColossoWall_MarkRivalFinished (void)
static void ColossoWall_SpawnRandomSceneEffect (union FieldObject *fieldObject)
 Occasionally spawns a falling particle around the linked finish effect.
static s32 ColossoWall_RaiseLinkedSceneEffect (struct ScriptInterpreter *interpreter)
 Raises the linked finish effect, starts its script and clears the link.
void FieldScene_BuildDescriptorAndInstallTask (s32 leaderId, s32 rivalId, s32 raceMode, s32 finishX, s32 finishZ, s32 firstItem, s32 secondItem)
 Allocates the race work, records both competitors and installs the gauge task.

Variables

const u8 gColossoWall_RollLogScript [] = {2, 2, 3, 3}
const u8 gColosso_LetteringPaletteOffsets []
const s16 gColossoWall_ModeRecordTwo []
const s16 gColossoWall_ModeRecordThreeAlt []
char gHexDigits [20] = "0123456789ABCDEF"
s32 gColossoWall_SparkScript []
s32 gColossoWall_RaiseScript []
u32 gColossoWall_DirectionSteps []
struct SceneEntrance gColossoWallEntrances []
u32 gColossoWallExits []
struct ScenePlacement gColossoWallPlacements []
s32 gColossoWall_SpectatorPhase = 0
s32 gColossoWall_SpectatorTimer = 0
struct SceneEvent gColossoWallEvents []
s16 gColosso_LetteringSlot = -1
s16 gColossoWall_ModeRecordDefault []
s16 gColossoWall_ModeRecordFour []
s16 gColossoWall_ModeRecordThree []
s16 gColosso_MarkerSlot = -1
s32 gColosso_RivalFinishScript []
s32 gColossoWall_ApproachScript []

Detailed Description

Colosso's second finals course: Isaac races another warrior through the Mini-Maze, the shifting floor, the Log-Rolling Stage, the Wall and the Board Walk to the arena.

Definition in file colosso_wall.c.

Macro Definition Documentation

◆ COLOSSO_WALL_FIRST_PLATFORM

#define COLOSSO_WALL_FIRST_PLATFORM   22

Definition at line 60 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_UpdateMovingPlatforms().

◆ COLOSSO_WALL_LAST_PLATFORM

#define COLOSSO_WALL_LAST_PLATFORM   25

Definition at line 61 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_UpdateMovingPlatforms().

◆ COLOSSO_WALL_PLATFORM_CYCLE_FRAMES

#define COLOSSO_WALL_PLATFORM_CYCLE_FRAMES   120

Definition at line 62 of file colosso_wall.c.

Referenced by ColossoWall_UpdateMovingPlatforms().

◆ COLOSSO_WALL_PLATFORM_CROSSING_FRAME

#define COLOSSO_WALL_PLATFORM_CROSSING_FRAME   75

Definition at line 63 of file colosso_wall.c.

Referenced by ColossoWall_WaitForPlatformCrossingPhase().

◆ COLOSSO_WALL_DEMONSTRATION_TIMEOUT_FRAMES

#define COLOSSO_WALL_DEMONSTRATION_TIMEOUT_FRAMES   600

Definition at line 64 of file colosso_wall.c.

Referenced by ColossoWall_WaitForPlatformCrossingPhase().

◆ COLOSSO_WALL_LOG_TRAVEL_PIXELS

#define COLOSSO_WALL_LOG_TRAVEL_PIXELS   64

Definition at line 65 of file colosso_wall.c.

Referenced by Event_RideLog().

◆ COLOSSO_WALL_OFFSET_FIXED

#define COLOSSO_WALL_OFFSET_FIXED ( value)
Value:
((value) << 16)

Definition at line 72 of file colosso_wall.c.

Referenced by ColossoWall_MovePusherAndLog().

◆ COLOSSO_WALL_ALTERNATE_PORTRAIT_PALETTE_OFFSET

#define COLOSSO_WALL_ALTERNATE_PORTRAIT_PALETTE_OFFSET   64

Definition at line 76 of file colosso_wall.c.

◆ COLOSSO_WALL_INTRO_SCALE

#define COLOSSO_WALL_INTRO_SCALE   384

Definition at line 84 of file colosso_wall.c.

◆ COLOSSO_WALL_PULSE_FIRST_SCALE

#define COLOSSO_WALL_PULSE_FIRST_SCALE   512

Definition at line 96 of file colosso_wall.c.

◆ COLOSSO_WALL_PULSE_HIGH_SCALE

#define COLOSSO_WALL_PULSE_HIGH_SCALE   384

Definition at line 97 of file colosso_wall.c.

◆ COLOSSO_WALL_PULSE_LOW_SCALE

#define COLOSSO_WALL_PULSE_LOW_SCALE   256

Definition at line 98 of file colosso_wall.c.

◆ COLOSSO_WALL_SHOW_MESSAGE

#define COLOSSO_WALL_SHOW_MESSAGE   ((s32 (*)())Engine_EventShowMessage)

Definition at line 107 of file colosso_wall.c.

Referenced by Event_TalkToShiftingFloorAttendant().

◆ COLOSSO_WALL_MOVE_ACTOR_PAIR

#define COLOSSO_WALL_MOVE_ACTOR_PAIR   ((s32 (*)())ColossoWall_MovePusherAndLog)

Definition at line 108 of file colosso_wall.c.

Referenced by Event_TalkToLogRollingAttendant().

◆ COLOSSO_WALL_START_MODE_TASK

#define COLOSSO_WALL_START_MODE_TASK   ((s32 (*)())ColossoWall_StartLetteringAnimation)

Definition at line 109 of file colosso_wall.c.

Referenced by ColossoWall_ShowBattleResultLettering().

◆ COLOSSO_WALL_APPLY_MATCHING_SLOT_VALUE

#define COLOSSO_WALL_APPLY_MATCHING_SLOT_VALUE   ((s32 (*)())Scene_GiveAndEquipItem)

Definition at line 111 of file colosso_wall.c.

Referenced by ColossoWall_ApproachFinishAndTakeItem().

◆ WORK_SLOT_STAGE

#define WORK_SLOT_STAGE   59

◆ DIRECTION_STEP

#define DIRECTION_STEP ( x,
z )
Value:
((u32)(x) << 16 | (u16)(z))
unsigned int u32
Definition types.h:15
unsigned short u16
Definition types.h:13

Definition at line 1797 of file colosso_wall.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

The second course's actors, by the guide's and attendants' explanations: the Mini-Maze, the shifting floor, the Log-Rolling Stage, the Wall and the Board Walk lead to the arena.

The lifts are actors 22 to 25 (COLOSSO_WALL_FIRST_PLATFORM to COLOSSO_WALL_LAST_PLATFORM).

Enumerator
OPPONENT 

the warrior racing Isaac to the arena

ROLLING_LOG_WEST 
ROLLING_LOG_EAST 
ROLLING_LOG_CENTER 
FORCE_TARGET 
GROWTH_PLANT 
FROST_TARGET_WEST 
FROST_TARGET_EAST 
FALLING_OBSTACLE 

knocked down by Force on FORCE_TARGET

LIFT_OPERATOR 
RIDING_LOG_NORTH 

the Log-Rolling Stage's two logs

RIDING_LOG_SOUTH 
GUIDE 

explains the second course

MINI_MAZE_ATTENDANT 
SHIFTING_FLOOR_ATTENDANT 
LOG_ROLLING_ATTENDANT 
WALL_ATTENDANT 
BOARD_WALK_ATTENDANT 
PRIZE_A 

the arena's Chain Mail and Cotton Shirt

PRIZE_B 

Definition at line 129 of file colosso_wall.c.

Function Documentation

◆ ColossoWall_IntroduceSecondFinals()

void ColossoWall_IntroduceSecondFinals ( s32 attendantId)
static

Introduces the second finals course, then gathers the party behind Isaac.

Definition at line 927 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_IntroduceSecondFinals().

◆ ColossoWall_ShowRoundStartLettering()

void ColossoWall_ShowRoundStartLettering ( s32 mode)
static

Shows the course-opening lettering and plays its timed audio cues.

Definition at line 1321 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_ShowRoundStartLettering().

◆ ColossoWall_ShowBattleResultLettering()

void ColossoWall_ShowBattleResultLettering ( s32 result)
static

Shows the win-or-loss lettering and the appropriate competitor's reaction.

Definition at line 1375 of file colosso_wall.c.

Referenced by ColossoWall_ShowBattleResultLettering(), and ColossoWall_StageBattleResult().

◆ SceneState_EmptyHook()

void SceneState_EmptyHook ( void )
static

Retains the empty hook called before the finish sequence.

Definition at line 1435 of file colosso_wall.c.

Referenced by Event_ReachArena(), and SceneState_EmptyHook().

◆ ColossoWall_WaitForRivalFinish()

void ColossoWall_WaitForRivalFinish ( void )
static

Definition at line 1441 of file colosso_wall.c.

Referenced by ColossoWall_WaitForRivalFinish(), and Event_ReachArena().

◆ ColossoWall_ApproachFinishAndTakeItem()

s32 ColossoWall_ApproachFinishAndTakeItem ( s32 firstItem,
s32 secondItem )
static

Approaches the finish item on the unused side and shows the item message.

Definition at line 1501 of file colosso_wall.c.

Referenced by ColossoWall_ApproachFinishAndTakeItem(), and Event_ReachArena().

◆ ColossoWall_StartRivalPath()

void ColossoWall_StartRivalPath ( s32 pathResource)
static

Decodes the rival's recorded path and starts its playback task.

Definition at line 1619 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_StartRivalPath().

◆ ColossoWall_PushAdjacentObstacle()

void ColossoWall_PushAdjacentObstacle ( void )
static

Pushes the adjacent obstacle only when the destination and space above are clear.

Definition at line 1640 of file colosso_wall.c.

Referenced by ColossoWall_PushAdjacentObstacle(), Event_PushRock(), and Event_PushRockAndUpdateCells().

◆ InitializeActorZero()

void InitializeActorZero ( void )
inlinestatic

Sets the party leader's walking speed and acceleration.

Definition at line 165 of file colosso_wall.c.

◆ InitializeSelectedActor()

void InitializeSelectedActor ( s32 actorId)
inlinestatic

Sets the specified actor's walking speed and acceleration.

Definition at line 170 of file colosso_wall.c.

◆ Scene_GetEntrances()

const struct SceneEntrance * Scene_GetEntrances ( void )

Definition at line 174 of file colosso_wall.c.

◆ Scene_GetRegions()

const struct SceneRegion * Scene_GetRegions ( void )

Definition at line 178 of file colosso_wall.c.

◆ Scene_GetExits()

const u32 * Scene_GetExits ( void )

Returns the packed course and battle-result exits.

Both scenes share one exit table.

Definition at line 181 of file colosso_wall.c.

◆ Scene_GetPlacements()

const struct ScenePlacement * Scene_GetPlacements ( void )

Returns the course's competitors, obstacles and attendants.

Definition at line 184 of file colosso_wall.c.

◆ Event_IgnoreMove()

void Event_IgnoreMove ( void )
static

Move on the first two rocks does nothing.

Definition at line 189 of file colosso_wall.c.

◆ Event_PushRock()

void Event_PushRock ( void )
static

Pushes the obstacle immediately ahead of the selected actor.

Definition at line 192 of file colosso_wall.c.

◆ Event_UpdateMovedRockCell()

void Event_UpdateMovedRockCell ( void )
static

Updates the first movable obstacle's collision after Move.

Definition at line 195 of file colosso_wall.c.

Referenced by Event_PushRockAndUpdateCells(), and Event_UpdateMovedRockCell().

◆ Event_PushRockAndUpdateCells()

void Event_PushRockAndUpdateCells ( void )
static

Pushes an obstacle, then restores the first obstacle's collision cell.

Definition at line 215 of file colosso_wall.c.

Referenced by Event_PushRockAndUpdateCells().

◆ Event_SaveMovedRockColumns()

void Event_SaveMovedRockColumns ( void )
static

Saves the movable obstacles' columns and rebuilds their collision cells.

Definition at line 221 of file colosso_wall.c.

Referenced by Event_SaveMovedRockColumns().

◆ Event_PrepareForce()

void Event_PrepareForce ( void )
static

Enables the child effect for Force on the course obstacle.

Definition at line 245 of file colosso_wall.c.

Referenced by Event_PrepareForce().

◆ Event_KnockDownObstacle()

void Event_KnockDownObstacle ( void )
static

Force on the target: the obstacle spins down into place and the way past it opens (0x330).

Definition at line 253 of file colosso_wall.c.

Referenced by Event_KnockDownObstacle().

◆ Event_FreezeWestTarget()

void Event_FreezeWestTarget ( void )
static

Frost on the western target: it freezes and its crossing opens (0x331).

Definition at line 301 of file colosso_wall.c.

Referenced by Event_FreezeWestTarget().

◆ Event_FreezeEastTarget()

void Event_FreezeEastTarget ( void )
static

Frost on the eastern target: it freezes and its crossing opens (0x332).

Definition at line 314 of file colosso_wall.c.

Referenced by Event_FreezeEastTarget().

◆ Event_GrowPlant()

void Event_GrowPlant ( void )
static

Growth on the plant: it grows into a strip that can be climbed (0x333).

Definition at line 327 of file colosso_wall.c.

◆ Event_RunRisingSequence()

void Event_RunRisingSequence ( void )
static

Runs the rising-object sequence for the actor touching the obstacle.

Definition at line 336 of file colosso_wall.c.

Referenced by Event_RunRisingSequence().

◆ Event_CheckAhead()

void Event_CheckAhead ( void )
static

Definition at line 340 of file colosso_wall.c.

◆ ColossoWall_MovePusherAndLog()

void ColossoWall_MovePusherAndLog ( s32 logId,
s32 offsetX,
s32 offsetZ )
static

Moves a riding log and its pusher to aligned cell centers.

Definition at line 343 of file colosso_wall.c.

Referenced by ColossoWall_MovePusherAndLog(), and Event_RideLog().

◆ Event_RideLog()

void Event_RideLog ( void )
static

Moves the aligned riding log in the direction the player holds.

Definition at line 392 of file colosso_wall.c.

Referenced by Event_RideLog().

◆ ColossoWall_RollLogToCell()

void ColossoWall_RollLogToCell ( s32 logId,
s32 halfCellX,
s32 halfCellZ )
static

Rolls a log to half-cell coordinates while its pusher follows halfway.

Definition at line 423 of file colosso_wall.c.

Referenced by ColossoWall_RollCenterLogNorth(), ColossoWall_RollCenterLogSouth(), ColossoWall_RollLogToCell(), Event_RollEastLogEast(), Event_RollEastLogWest(), Event_RollWestLogEast(), and Event_RollWestLogWest().

◆ ColossoWall_UpdateRollingLogCollision()

void ColossoWall_UpdateRollingLogCollision ( void )
static

◆ Event_RollWestLogWest()

void Event_RollWestLogWest ( void )
static

Definition at line 487 of file colosso_wall.c.

Referenced by Event_RollWestLogWest().

◆ Event_RollWestLogEast()

void Event_RollWestLogEast ( void )
static

Definition at line 492 of file colosso_wall.c.

Referenced by Event_RollWestLogEast().

◆ Event_RollEastLogWest()

void Event_RollEastLogWest ( void )
static

Definition at line 497 of file colosso_wall.c.

Referenced by Event_RollEastLogWest().

◆ Event_RollEastLogEast()

void Event_RollEastLogEast ( void )
static

Definition at line 502 of file colosso_wall.c.

Referenced by Event_RollEastLogEast().

◆ ColossoWall_RollCenterLogNorth()

UNUSED void ColossoWall_RollCenterLogNorth ( void )
static

Rolls the center log north and rebuilds the log collision rectangles.

Definition at line 508 of file colosso_wall.c.

Referenced by ColossoWall_RollCenterLogNorth().

◆ ColossoWall_RollCenterLogSouth()

UNUSED void ColossoWall_RollCenterLogSouth ( void )
static

Rolls the center log south and rebuilds the log collision rectangles.

Definition at line 514 of file colosso_wall.c.

Referenced by ColossoWall_RollCenterLogSouth().

◆ ColossoWall_UpdateMovingPlatforms()

void ColossoWall_UpdateMovingPlatforms ( void )
static

Carries the selected actor on the moving platforms and alternates their routes.

Definition at line 521 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), ColossoWall_ResetMovingPlatforms(), ColossoWall_StartMovingPlatforms(), ColossoWall_UpdateMovingPlatforms(), and Event_HaltLifts().

◆ ColossoWall_ResetMovingPlatforms()

void ColossoWall_ResetMovingPlatforms ( void )
static

Stops the moving-platform task and restores its starting row.

Definition at line 620 of file colosso_wall.c.

Referenced by ColossoWall_ResetMovingPlatforms(), and Event_TalkToShiftingFloorAttendant().

◆ ColossoWall_StartMovingPlatforms()

void ColossoWall_StartMovingPlatforms ( void )
static

Starts the moving-platform task and releases its pause flag.

Definition at line 632 of file colosso_wall.c.

Referenced by ColossoWall_StartMovingPlatforms(), and Event_TalkToShiftingFloorAttendant().

◆ ColossoWall_WaitForPlatformCrossingPhase()

void ColossoWall_WaitForPlatformCrossingPhase ( void )
static

Waits for the demonstration's crossing phase, with a ten-second timeout.

Definition at line 638 of file colosso_wall.c.

Referenced by ColossoWall_WaitForPlatformCrossingPhase(), and Event_TalkToShiftingFloorAttendant().

◆ Event_HaltLifts()

void Event_HaltLifts ( void )
static

Halt on the lift operator: the lifts stop and leave a crossing (0x334).

Definition at line 655 of file colosso_wall.c.

Referenced by Event_HaltLifts().

◆ Event_ReachArena()

void Event_ReachArena ( void )
static

Reaching the arena: the leader takes a prize (the Chain Mail if first, the Cotton Shirt 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 676 of file colosso_wall.c.

◆ Scene_GetEvents()

const struct SceneEvent * Scene_GetEvents ( void )

Returns the course's obstacle interactions and attendant dialogue.

Definition at line 720 of file colosso_wall.c.

◆ ColossoWall_StageBattleResult()

void ColossoWall_StageBattleResult ( s32 result)
static

Back from the battle: the two warriors stand in the arena as the result is shown.

Definition at line 724 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and ColossoWall_StageBattleResult().

◆ ColossoWall_Initialize()

s32 ColossoWall_Initialize ( void )

Restores obstacle progress and sets up the selected course entrance.

Definition at line 748 of file colosso_wall.c.

Referenced by ColossoWall_Initialize().

◆ Event_TalkToMiniMazeAttendant()

void Event_TalkToMiniMazeAttendant ( s32 attendant)
static

The Mini-Maze's attendant: the first time, a warrior runs the maze; then the objective.

Definition at line 998 of file colosso_wall.c.

Referenced by Event_TalkToMiniMazeAttendant().

◆ Event_TalkToShiftingFloorAttendant()

void Event_TalkToShiftingFloorAttendant ( s32 attendant)
static

The shifting floor's attendant: the first time, a warrior rides the lifts; then, that the lifts' operator will cheer for Isaac.

Definition at line 1042 of file colosso_wall.c.

Referenced by Event_TalkToShiftingFloorAttendant().

◆ Event_TalkToLogRollingAttendant()

void Event_TalkToLogRollingAttendant ( s32 attendant)
static

The Log-Rolling Stage's attendant: a warrior rides a log across; then the objective.

Definition at line 1088 of file colosso_wall.c.

◆ Event_TalkToWallAttendant()

void Event_TalkToWallAttendant ( s32 attendant)
static

The Wall's attendant: a warrior climbs it; then the objective.

Definition at line 1141 of file colosso_wall.c.

Referenced by Event_TalkToWallAttendant().

◆ ColossoWall_PushBlockToCell()

void ColossoWall_PushBlockToCell ( s32 obstacleId,
s32 column,
s32 row )
static

Moves a demonstration obstacle to pixel coordinates while its pusher follows.

Definition at line 1198 of file colosso_wall.c.

Referenced by ColossoWall_PushBlockToCell(), and Event_TalkToBoardWalkAttendant().

◆ Event_TalkToBoardWalkAttendant()

void Event_TalkToBoardWalkAttendant ( s32 attendant)
static

The Board Walk's attendant: a warrior rolls a log into a path; then the objective.

Definition at line 1239 of file colosso_wall.c.

Referenced by Event_TalkToBoardWalkAttendant().

◆ ColossoWall_StartLetteringAnimation()

void ColossoWall_StartLetteringAnimation ( u32 mode,
u32 tileVariant )
static

Chooses the lettering animation script and resets its task state.

Definition at line 1287 of file colosso_wall.c.

Referenced by ColossoWall_ShowRoundStartLettering(), and ColossoWall_StartLetteringAnimation().

◆ Text_WriteU32AsHex()

UNUSED void Text_WriteU32AsHex ( u8 * destination,
u32 value )
static

Writes eight uppercase hexadecimal digits followed by a terminator.

Definition at line 1421 of file colosso_wall.c.

◆ ColossoWall_MarkRivalFinished()

UNUSED void ColossoWall_MarkRivalFinished ( void )
static

Definition at line 1437 of file colosso_wall.c.

Referenced by ColossoWall_MarkRivalFinished().

◆ ColossoWall_SpawnRandomSceneEffect()

void ColossoWall_SpawnRandomSceneEffect ( union FieldObject * fieldObject)
static

Occasionally spawns a falling particle around the linked finish effect.

Definition at line 1450 of file colosso_wall.c.

Referenced by ColossoWall_SpawnRandomSceneEffect().

◆ ColossoWall_RaiseLinkedSceneEffect()

s32 ColossoWall_RaiseLinkedSceneEffect ( struct ScriptInterpreter * interpreter)
static

Raises the linked finish effect, starts its script and clears the link.

Definition at line 1487 of file colosso_wall.c.

Referenced by ColossoWall_RaiseLinkedSceneEffect().

◆ FieldScene_BuildDescriptorAndInstallTask()

void FieldScene_BuildDescriptorAndInstallTask ( s32 leaderId,
s32 rivalId,
s32 raceMode,
s32 finishX,
s32 finishZ,
s32 firstItem,
s32 secondItem )

Allocates the race work, records both competitors and installs the gauge task.

Definition at line 1572 of file colosso_wall.c.

Referenced by ColossoWall_Initialize(), and FieldScene_BuildDescriptorAndInstallTask().

Variable Documentation

◆ gColossoWall_RollLogScript

const u8 gColossoWall_RollLogScript[] = {2, 2, 3, 3}

Definition at line 1728 of file colosso_wall.c.

Referenced by ColossoWall_RollLogToCell().

◆ gColosso_LetteringPaletteOffsets

const u8 gColosso_LetteringPaletteOffsets[]
Initial value:
= {
0, 32, 32, 32, 96, 64, 64,
}
#define COLOSSO_WALL_ALTERNATE_PORTRAIT_PALETTE_OFFSET

Definition at line 1731 of file colosso_wall.c.

◆ gColossoWall_ModeRecordTwo

const s16 gColossoWall_ModeRecordTwo[]
Initial value:
= {
0x1000, 512, 1, 0x2000, 0, 1, 0x1000, 256,
6, 0x2000, 16, 6, 0x7fff, 30, 0x2000, 0,
30, 0x7fff, 30, -1,
}

Definition at line 1736 of file colosso_wall.c.

Referenced by ColossoWall_StartLetteringAnimation().

◆ gColossoWall_ModeRecordThreeAlt

const s16 gColossoWall_ModeRecordThreeAlt[]
Initial value:
= {
0x1000, 128, 1, 0x2000, 0, 1, 0x1000, 256,
6, 0x2000, 16, 6, 0x7fff, 60, 0x1000, 384,
6, 0x7fff, 6, 0x1000, 240, 6, 0x7fff, 6,
0x1000, 368, 6, 0x7fff, 6, 0x1000, 224, 6,
0x7fff, 6, 0x2000, 0, 30, 0x1000, 352, 6,
0x7fff, 6, 0x1000, 208, 6, 0x7fff, 6, 0x1000,
336, 6, 0x7fff, 6, 0x1000, 192, 6, 0x7fff,
6, 0x1000, 320, 6, 0x7fff, 6, -1,
}

Definition at line 1742 of file colosso_wall.c.

Referenced by ColossoWall_ShowBattleResultLettering(), and ColossoWall_StartLetteringAnimation().

◆ gHexDigits

char gHexDigits[20] = "0123456789ABCDEF"

Definition at line 1753 of file colosso_wall.c.

◆ gColossoWall_SparkScript

s32 gColossoWall_SparkScript[]
Initial value:
= {
SC_ADD(SW_Y, -0x4000),
SC_WAIT(1),
}
#define SC_LOOP(n, to)
Repeat up to n times.
Definition objcmd.h:28
#define SC_FREE
Release.
Definition objcmd.h:43
#define SC_ADD(w, v)
Definition objcmd.h:38
#define SC_WAIT(n)
Wait n frames.
Definition objcmd.h:16
#define SC_TOP
Script start.
Definition objcmd.h:13
@ SW_Y
Definition objcmd.h:59

Definition at line 1755 of file colosso_wall.c.

Referenced by ColossoWall_SpawnRandomSceneEffect().

◆ gColossoWall_RaiseScript

s32 gColossoWall_RaiseScript[]

Definition at line 1762 of file colosso_wall.c.

Referenced by ColossoWall_RaiseLinkedSceneEffect().

◆ gColossoWall_DirectionSteps

u32 gColossoWall_DirectionSteps[]
Initial value:
= {
DIRECTION_STEP(-16, 0),
DIRECTION_STEP(-16, 0),
DIRECTION_STEP(-16, 0),
DIRECTION_STEP(-16, 0),
DIRECTION_STEP(0, -16),
DIRECTION_STEP(0, -16),
DIRECTION_STEP(0, -16),
DIRECTION_STEP(0, -16),
}
#define DIRECTION_STEP(dx, dz)
Pixel step by direction: X in the upper halfword, Z in the lower.

Definition at line 1799 of file colosso_wall.c.

Referenced by ColossoWall_PushAdjacentObstacle().

◆ gColossoWallEntrances

struct SceneEntrance gColossoWallEntrances[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 1272, 0, 168, FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
{ 2, CONDITION_ALWAYS, 1224, 0, 488, FACING_NORTH, 0, -1, -1, -1, -1, 0 },
{ 10, CONDITION_ALWAYS, 384, 0, 264, FACING_SOUTH, 0, -1, -1, -1, -1, 0 },
}
@ SCENE_TABLE_END
Definition field_scene.h:43
@ CONDITION_ALWAYS
Definition field_scene.h:44
@ FACING_NORTH
Definition field_scene.h:32
@ FACING_SOUTH
Definition field_scene.h:28

Definition at line 1818 of file colosso_wall.c.

Referenced by Scene_GetEntrances().

◆ gColossoWallExits

u32 gColossoWallExits[]
Initial value:
= {
SCENE_EXIT(10, 144, 1),
SCENE_EXIT(11, 140, 68),
SCENE_EXIT(4, 140, 31),
SCENE_EXIT(5, 138, 98),
}
#define SCENE_EXITS(scene)
Definition field_scene.h:72
#define SCENE_EXIT(exit, scene, entrance)
Definition field_scene.h:73
#define SCENE_EXITS_END
Definition field_scene.h:77

Definition at line 1825 of file colosso_wall.c.

Referenced by Scene_GetExits().

◆ gColossoWallPlacements

struct ScenePlacement gColossoWallPlacements[]

Definition at line 1834 of file colosso_wall.c.

Referenced by Scene_GetPlacements().

◆ gColossoWall_SpectatorPhase

◆ gColossoWall_SpectatorTimer

◆ gColossoWallEvents

struct SceneEvent gColossoWallEvents[]

Definition at line 1918 of file colosso_wall.c.

Referenced by Scene_GetEvents().

◆ gColosso_LetteringSlot

s16 gColosso_LetteringSlot = -1

Definition at line 1961 of file colosso_wall.c.

◆ gColossoWall_ModeRecordDefault

s16 gColossoWall_ModeRecordDefault[]
Initial value:
= {
0x4000, -188, 2048, 0x1000, COLOSSO_WALL_INTRO_SCALE, 1, 0x2000, 16,
1, 0x7fff, 14, 0x3000, 0, 20, 0x7fff, 60,
0x3000, 2048, 20, 0x7fff, 60, -1,
}
#define COLOSSO_WALL_INTRO_SCALE

Definition at line 1963 of file colosso_wall.c.

Referenced by ColossoWall_ShowRoundStartLettering(), and ColossoWall_StartLetteringAnimation().

◆ gColossoWall_ModeRecordFour

s16 gColossoWall_ModeRecordFour[]
Initial value:
= {
6, 0x2000, 16, 6, 0x7fff, 6, 0x1000, COLOSSO_WALL_PULSE_HIGH_SCALE,
6, 0x7fff, 6, 0x1000, COLOSSO_WALL_PULSE_LOW_SCALE, 6, 0x7fff, 6,
0x7fff, 6, 0x2000, 0, 30, 0x1000, COLOSSO_WALL_PULSE_HIGH_SCALE, 6,
0x7fff, 6, 0x1000, COLOSSO_WALL_PULSE_LOW_SCALE, 6, 0x7fff, 6, 0x1000,
6, 0x1000, COLOSSO_WALL_PULSE_HIGH_SCALE, 6, 0x7fff, 6, -1,
}
#define COLOSSO_WALL_PULSE_FIRST_SCALE
#define COLOSSO_WALL_PULSE_HIGH_SCALE
#define COLOSSO_WALL_PULSE_LOW_SCALE

Definition at line 1969 of file colosso_wall.c.

Referenced by ColossoWall_StartLetteringAnimation().

◆ gColossoWall_ModeRecordThree

s16 gColossoWall_ModeRecordThree[]
Initial value:
= {
0x1000, 128, 1, 0x2000, 0, 1, 0x1000, 256,
6, 0x2000, 16, 6, 0x7fff, 60, 0x1000, 384,
6, 0x7fff, 6, 0x1000, 272, 6, 0x7fff, 6,
0x1000, 400, 6, 0x7fff, 6, 0x1000, 288, 6,
0x7fff, 6, 0x2000, 0, 30, 0x1000, 416, 6,
0x7fff, 6, 0x1000, 304, 6, 0x7fff, 6, 0x1000,
432, 6, 0x7fff, 6, 0x1000, 320, 6, 0x7fff,
6, 0x1000, 448, 6, 0x7fff, 6, -1,
}

Definition at line 1981 of file colosso_wall.c.

Referenced by ColossoWall_ShowBattleResultLettering(), and ColossoWall_StartLetteringAnimation().

◆ gColosso_MarkerSlot

s16 gColosso_MarkerSlot = -1

Definition at line 1993 of file colosso_wall.c.

◆ gColosso_RivalFinishScript

s32 gColosso_RivalFinishScript[]
Initial value:
= {
SC_ARG(2),
SC_ARG(1),
SC_WAIT(6),
SC_WAIT(3),
SC_ARG(10),
SC_WAIT(150),
SC_ARG(1),
}
static s32 ColossoWall_RaiseLinkedSceneEffect(struct ScriptInterpreter *interpreter)
Raises the linked finish effect, starts its script and clears the link.
#define SC_SET(w, v)
Write a work value.
Definition objcmd.h:37
#define SC_SYNC
Wait for arrival.
Definition objcmd.h:17
#define SC_ARG(v)
Definition objcmd.h:44
#define SC_END
Return to the main script.
Definition objcmd.h:32
@ SW_FACING
Definition objcmd.h:57
#define SC_CALL(fn)
Definition objcmd.h:50

Definition at line 1995 of file colosso_wall.c.

◆ gColossoWall_ApproachScript

s32 gColossoWall_ApproachScript[]