Alchemy
Loading...
Searching...
No Matches

crossbone_isle.c File Reference

Crossbone Isle: the first room's plants, ivy and Nut, the sliding-block room, the nine guarded rooms with their Move puzzles, and the last guards. More...

Go to the source code of this file.

Macros

#define IS_IN_BLOCK_CROSSING_COLUMNS(x)
 These three columns form the crossing lane for the vertical blocks.
#define IS_IN_BLOCK_CROSSING_COLUMNS(x)
 These three columns form the crossing lane for the vertical blocks.
#define DIRECTION_STEP(dx, dz)
 Pixel step by direction: X in the upper halfword, Z in the lower.

Functions

static void CrossboneIsle_RestoreMovedRoomBlock (void)
 In a guarded room whose Move puzzle is solved, the block stays sunk in its place.
static void CrossboneIsle_LeaveClearedRoom (void)
 Back from beating a room's guards: the door opens, and the party walks through.
static void CrossboneIsle_RestoreIvy (void)
 Ivy blown away stays gone; the rest stands tall.
static void CrossboneIsle_DrawBlockPuzzleFootprints (void)
 Draws all twelve block footprints in the sliding-block room.
static UNUSED void CrossboneIsle_UnusedCallback (void)
const struct SceneEntrance * Scene_GetEntrances (void)
const struct SceneRegion * Scene_GetRegions (void)
const u32 * Scene_GetExits (void)
 Both scenes share one exit table.
const struct ScenePlacement * Scene_GetPlacements (void)
static void CrossboneIsle_SpawnBlockMovedBurst (s32 objectId)
 Emits a ring of effects around a moved block.
static void Event_FightFinalGuards (void)
 Stepping on trigger 10 in the fifth room: the last guards attack, and the party comes back to this room's entrance 5.
const struct SceneEvent * Scene_GetEvents (void)
static void Event_CatchNut (void)
 Catch on the Nut circling in the first room: the party gets it.
s32 Scene_Initialize (void)
 Restores puzzle changes and handles returning from a guard battle.
static void Event_MoveBlock (void)
 Move on a guarded room's block, and after each push: once it reaches column 40 it sinks into the floor in a ring of dust, and the way on is open.
static void Event_PushBlock (void)
 Walking into a guarded room's block (trigger 20): push it a step.
static void Event_OpenWestDoor (void)
 Walking north into the western door (trigger 4): it opens, and the party goes through.
static void Event_EnterGuardedRoom (void)
 Walking north into a guarded room's door (trigger 3): the first time, the room's guards attack; once they are beaten, the door opens.
static void Event_GrowPlant11 (s32 actorId)
 Growth on the first plant (actor 11): it grows, and its cell can be crossed.
static void Event_GrowPlant12 (s32 actorId)
 Growth on the second plant (actor 12).
static void Event_GrowPlant13 (s32 actorId)
 Growth on the third plant (actor 13).
static void Event_GrowPlant14 (s32 actorId)
 Growth on the fourth plant (actor 14), which opens two cells.
static void Event_BlowAwayIvy15 (void)
 Whirlwind on the first ivy (actor 15): it is blown away for good.
static void Event_BlowAwayIvy16 (void)
 Whirlwind on the second ivy (actor 16).
static void Event_BlowAwayIvy17 (void)
 Whirlwind on the third ivy (actor 17).
static void Event_BlowAwayIvy18 (void)
 Whirlwind on actor 18, a fourth ivy.
static void Event_PushFirstRoomBlock (void)
 Walking into one of the first room's blocks: push it if the cell beyond is clear.
static void CrossboneIsle_MoveSelectedActorAndBlock (s32 actorId, s32 xOffset, s32 zOffset)
 Moves the selected actor and puzzle block by the same pixel offset.
static void CrossboneIsle_DrawHorizontalBlockFootprint (s32 actorId, s32 sourceColumn, s32 sourceRow, s32 unused)
 Draws the three-cell horizontal footprint centered on this block.
static void CrossboneIsle_DrawVerticalBlockFootprint (s32 actorId, s32 sourceColumn, s32 sourceRow, s32 unused)
 Draws the three-cell vertical footprint centered on this block.
static void CrossboneIsle_AnimateTouchedBlock (int actorId)
 Runs the two animation changes used when touching a puzzle block.
static void Event_StepOnBlock8 (void)
 Stepping onto block 8: its animation plays from the start.
static void Event_StepOnBlock10 (void)
 Stepping onto block 10: its animation plays from the start.
static void Event_StepOnBlock11 (void)
 Stepping onto block 11: its animation plays from the start.
static void Event_StepOnBlock12 (void)
 Stepping onto block 12: its animation plays from the start.
static void Event_StepOnBlock13 (void)
 Stepping onto block 13: its animation plays from the start.
static void Event_StepOnBlock15 (void)
 Stepping onto block 15: its animation plays from the start.
static void Event_StepOnBlock17 (void)
 Stepping onto block 17: its animation plays from the start.
static void Event_StepOnBlock18 (void)
 Stepping onto block 18: its animation plays from the start.
static void Event_StepOnBlock9 (void)
 Stepping onto block 9: its animation plays from the start.
static void Event_StepOnBlock19 (void)
 Stepping onto block 19: its animation plays from the start.
static void Event_StepOnBlock14 (void)
 Stepping onto block 14: its animation plays from the start.
static void Event_StepOnBlock16 (void)
 Stepping onto block 16: its animation plays from the start.
static s32 CrossboneIsle_TryHop (struct FieldActor *actor, struct FieldPosition *requested)
 Tests a step, then moves the leader with the block-pushing animation.
static s32 Event_HopNorth (void)
 Walking north against a block's edge: hop 32 pixels north if the landing is clear.
static s32 Event_HopSouth (void)
 Walking south against a block's edge: hop 32 pixels south if the landing is clear.
static s32 Event_HopWest (void)
 Walking west against a block's edge: hop 32 pixels west if the landing is clear.
static s32 Event_HopEast (void)
 Walking east against a block's edge: hop 32 pixels east if the landing is clear.
static void Event_SlideBlock8North (void)
 Walking north onto block 8: it slides north with the leader on it until another block or the wall stops it.
static void CrossboneIsle_RedrawHorizontalBlockRoute (s32 actorId, s32 column, s32 row)
 Copies a horizontal block's old footprint to its new row, then clears the old row.
static void CrossboneIsle_RedrawVerticalBlockRoute (s32 actorId, s32 column, s32 row)
 Copies a vertical block's old footprint to its new column, then clears the old one.
static void Event_SlideBlock8South (void)
 Walking south onto block 8: it slides south with the leader on it until another block or the wall stops it.
static void Event_SlideBlock10North (void)
 Walking north onto block 10: it slides north with the leader on it until another block or the wall stops it.
static void Event_SlideBlock10South (void)
 Walking south onto block 10: it slides south with the leader on it until another block or the wall stops it.
static void Event_SlideBlock11West (void)
 Walking west onto block 11: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock11East (void)
 Walking east onto block 11: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock12West (void)
 Walking west onto block 12: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock12East (void)
 Walking east onto block 12: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock13West (void)
 Walking west onto block 13: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock13East (void)
 Walking east onto block 13: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock15West (void)
 Walking west onto block 15: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock15East (void)
 Walking east onto block 15: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock17North (void)
 Walking north onto block 17: it slides north with the leader on it until another block or the wall stops it.
static void Event_SlideBlock17South (void)
 Walking south onto block 17: it slides south with the leader on it until another block or the wall stops it.
static void Event_SlideBlock18North (void)
 Walking north onto block 18: it slides north with the leader on it until another block or the wall stops it.
static void Event_SlideBlock18South (void)
 Walking south onto block 18: it slides south with the leader on it until another block or the wall stops it.
static void Event_SlideBlock9North (void)
 Walking north onto block 9: it slides north with the leader on it until another block or the wall stops it.
static void Event_SlideBlock9South (void)
 Walking south onto block 9: it slides south with the leader on it until another block or the wall stops it.
static void Event_SlideBlock19West (void)
 Walking west onto block 19: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock19East (void)
 Walking east onto block 19: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock14West (void)
 Walking west onto block 14: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock14East (void)
 Walking east onto block 14: it slides east with the leader on it until another block or the wall stops it.
static void Event_SlideBlock16West (void)
 Walking west onto block 16: it slides west with the leader on it until another block or the wall stops it.
static void Event_SlideBlock16East (void)
 Walking east onto block 16: it slides east with the leader on it until another block or the wall stops it.

Variables

s32 gStagedActor_DirectionSteps []
 Pixel step by direction: X in the upper halfword, Z in the lower.
u32 gStagedActor_FootprintKinds []
s32 gStagedActor_FootprintBounds []
s32 gEffectScript0 []
s32 gEffectScript1 []
s32 gEffectScript2 []
u16 gCrossboneIsle_EntranceCells []
const s32 * gEffectScripts []
struct SceneEntrance gCrossboneIsleEntrances1 []
struct SceneEntrance gCrossboneIsleEntrances2 []
struct SceneEntrance gCrossboneIsleEntrances3 []
struct SceneEntrance gCrossboneIsleEntrances4 []
struct SceneEntrance gCrossboneIsleEntrances5 []
u32 gCrossboneIsleExits []
struct ScenePlacement gCrossboneIslePlacementsOther []
struct ScenePlacement gCrossboneIslePlacements1 []
struct ScenePlacement gCrossboneIslePlacements3 []
struct ScenePlacement gCrossboneIslePlacements6To14 []
struct SceneEvent gCrossboneIsleEventsOther []
struct SceneEvent gCrossboneIsleEvents2 []
struct SceneEvent gCrossboneIsleEvents1 []
struct SceneEvent gCrossboneIsleEvents3 []
struct SceneEvent gCrossboneIsleEvents4 []
struct SceneEvent gCrossboneIsleEvents5 []

Detailed Description

Crossbone Isle: the first room's plants, ivy and Nut, the sliding-block room, the nine guarded rooms with their Move puzzles, and the last guards.

Definition in file crossbone_isle.c.

Macro Definition Documentation

◆ IS_IN_BLOCK_CROSSING_COLUMNS [1/2]

#define IS_IN_BLOCK_CROSSING_COLUMNS ( x)
Value:
((x) >= 6 && (x) <= 8)

These three columns form the crossing lane for the vertical blocks.

Definition at line 1226 of file crossbone_isle.c.

Referenced by Event_SlideBlock18North(), and Event_SlideBlock9North().

◆ IS_IN_BLOCK_CROSSING_COLUMNS [2/2]

#define IS_IN_BLOCK_CROSSING_COLUMNS ( x)
Value:
((x) >= 9 && (x) <= 11)

These three columns form the crossing lane for the vertical blocks.

Definition at line 1226 of file crossbone_isle.c.

◆ DIRECTION_STEP

#define DIRECTION_STEP ( dx,
dz )
Value:
(((u32)(dx) << 16) | ((dz) & 0xffff))
unsigned int u32
Definition types.h:15

Pixel step by direction: X in the upper halfword, Z in the lower.

Definition at line 1814 of file crossbone_isle.c.

Function Documentation

◆ CrossboneIsle_RestoreMovedRoomBlock()

void CrossboneIsle_RestoreMovedRoomBlock ( void )
static

In a guarded room whose Move puzzle is solved, the block stays sunk in its place.

Definition at line 268 of file crossbone_isle.c.

Referenced by CrossboneIsle_RestoreMovedRoomBlock(), and Scene_Initialize().

◆ CrossboneIsle_LeaveClearedRoom()

void CrossboneIsle_LeaveClearedRoom ( void )
static

Back from beating a room's guards: the door opens, and the party walks through.

Definition at line 408 of file crossbone_isle.c.

Referenced by CrossboneIsle_LeaveClearedRoom(), and Scene_Initialize().

◆ CrossboneIsle_RestoreIvy()

void CrossboneIsle_RestoreIvy ( void )
static

Ivy blown away stays gone; the rest stands tall.

Definition at line 506 of file crossbone_isle.c.

Referenced by CrossboneIsle_RestoreIvy(), and Scene_Initialize().

◆ CrossboneIsle_DrawBlockPuzzleFootprints()

void CrossboneIsle_DrawBlockPuzzleFootprints ( void )
static

Draws all twelve block footprints in the sliding-block room.

Definition at line 647 of file crossbone_isle.c.

Referenced by CrossboneIsle_DrawBlockPuzzleFootprints(), and Scene_Initialize().

◆ CrossboneIsle_UnusedCallback()

UNUSED void CrossboneIsle_UnusedCallback ( void )
static

Definition at line 52 of file crossbone_isle.c.

Referenced by CrossboneIsle_UnusedCallback().

◆ Scene_GetEntrances()

const struct SceneEntrance * Scene_GetEntrances ( void )

Definition at line 54 of file crossbone_isle.c.

◆ Scene_GetRegions()

const struct SceneRegion * Scene_GetRegions ( void )

Definition at line 75 of file crossbone_isle.c.

◆ Scene_GetExits()

const u32 * Scene_GetExits ( void )

Both scenes share one exit table.

Definition at line 77 of file crossbone_isle.c.

◆ Scene_GetPlacements()

const struct ScenePlacement * Scene_GetPlacements ( void )

Definition at line 79 of file crossbone_isle.c.

◆ CrossboneIsle_SpawnBlockMovedBurst()

void CrossboneIsle_SpawnBlockMovedBurst ( s32 objectId)
static

Emits a ring of effects around a moved block.

Definition at line 98 of file crossbone_isle.c.

Referenced by CrossboneIsle_SpawnBlockMovedBurst(), and Event_MoveBlock().

◆ Event_FightFinalGuards()

void Event_FightFinalGuards ( void )
static

Stepping on trigger 10 in the fifth room: the last guards attack, and the party comes back to this room's entrance 5.

Definition at line 125 of file crossbone_isle.c.

Referenced by Event_FightFinalGuards().

◆ Scene_GetEvents()

const struct SceneEvent * Scene_GetEvents ( void )

Definition at line 134 of file crossbone_isle.c.

◆ Event_CatchNut()

void Event_CatchNut ( void )
static

Catch on the Nut circling in the first room: the party gets it.

Definition at line 156 of file crossbone_isle.c.

Referenced by Event_CatchNut(), and Event_CatchNut().

◆ Scene_Initialize()

s32 Scene_Initialize ( void )

Restores puzzle changes and handles returning from a guard battle.

Sets up whichever scene is being entered and runs its arrival events.

Definition at line 166 of file crossbone_isle.c.

◆ Event_MoveBlock()

void Event_MoveBlock ( void )
static

Move on a guarded room's block, and after each push: once it reaches column 40 it sinks into the floor in a ring of dust, and the way on is open.

Definition at line 291 of file crossbone_isle.c.

Referenced by Event_MoveBlock(), and Event_PushBlock().

◆ Event_PushBlock()

void Event_PushBlock ( void )
static

Walking into a guarded room's block (trigger 20): push it a step.

Definition at line 344 of file crossbone_isle.c.

◆ Event_OpenWestDoor()

void Event_OpenWestDoor ( void )
static

Walking north into the western door (trigger 4): it opens, and the party goes through.

Definition at line 353 of file crossbone_isle.c.

Referenced by Event_OpenWestDoor().

◆ Event_EnterGuardedRoom()

void Event_EnterGuardedRoom ( void )
static

Walking north into a guarded room's door (trigger 3): the first time, the room's guards attack; once they are beaten, the door opens.

Definition at line 361 of file crossbone_isle.c.

Referenced by Event_EnterGuardedRoom().

◆ Event_GrowPlant11()

void Event_GrowPlant11 ( s32 actorId)
static

Growth on the first plant (actor 11): it grows, and its cell can be crossed.

Definition at line 423 of file crossbone_isle.c.

Referenced by Event_GrowPlant11().

◆ Event_GrowPlant12()

void Event_GrowPlant12 ( s32 actorId)
static

Growth on the second plant (actor 12).

Definition at line 437 of file crossbone_isle.c.

Referenced by Event_GrowPlant12().

◆ Event_GrowPlant13()

void Event_GrowPlant13 ( s32 actorId)
static

Growth on the third plant (actor 13).

Definition at line 451 of file crossbone_isle.c.

Referenced by Event_GrowPlant13().

◆ Event_GrowPlant14()

void Event_GrowPlant14 ( s32 actorId)
static

Growth on the fourth plant (actor 14), which opens two cells.

Definition at line 465 of file crossbone_isle.c.

Referenced by Event_GrowPlant14().

◆ Event_BlowAwayIvy15()

void Event_BlowAwayIvy15 ( void )
static

Whirlwind on the first ivy (actor 15): it is blown away for good.

Definition at line 482 of file crossbone_isle.c.

Referenced by Event_BlowAwayIvy15().

◆ Event_BlowAwayIvy16()

void Event_BlowAwayIvy16 ( void )
static

Whirlwind on the second ivy (actor 16).

Definition at line 491 of file crossbone_isle.c.

Referenced by Event_BlowAwayIvy16().

◆ Event_BlowAwayIvy17()

void Event_BlowAwayIvy17 ( void )
static

Whirlwind on the third ivy (actor 17).

Definition at line 496 of file crossbone_isle.c.

Referenced by Event_BlowAwayIvy17().

◆ Event_BlowAwayIvy18()

void Event_BlowAwayIvy18 ( void )
static

Whirlwind on actor 18, a fourth ivy.

Definition at line 501 of file crossbone_isle.c.

Referenced by Event_BlowAwayIvy18().

◆ Event_PushFirstRoomBlock()

void Event_PushFirstRoomBlock ( void )
static

Walking into one of the first room's blocks: push it if the cell beyond is clear.

Definition at line 538 of file crossbone_isle.c.

Referenced by Event_PushFirstRoomBlock().

◆ CrossboneIsle_MoveSelectedActorAndBlock()

◆ CrossboneIsle_DrawHorizontalBlockFootprint()

void CrossboneIsle_DrawHorizontalBlockFootprint ( s32 actorId,
s32 sourceColumn,
s32 sourceRow,
s32 unused )
static

Draws the three-cell horizontal footprint centered on this block.

Definition at line 595 of file crossbone_isle.c.

Referenced by CrossboneIsle_DrawBlockPuzzleFootprints(), and CrossboneIsle_DrawHorizontalBlockFootprint().

◆ CrossboneIsle_DrawVerticalBlockFootprint()

void CrossboneIsle_DrawVerticalBlockFootprint ( s32 actorId,
s32 sourceColumn,
s32 sourceRow,
s32 unused )
static

Draws the three-cell vertical footprint centered on this block.

Definition at line 618 of file crossbone_isle.c.

Referenced by CrossboneIsle_DrawBlockPuzzleFootprints(), and CrossboneIsle_DrawVerticalBlockFootprint().

◆ CrossboneIsle_AnimateTouchedBlock()

◆ Event_StepOnBlock8()

void Event_StepOnBlock8 ( void )
static

Stepping onto block 8: its animation plays from the start.

Definition at line 663 of file crossbone_isle.c.

Referenced by Event_StepOnBlock8().

◆ Event_StepOnBlock10()

void Event_StepOnBlock10 ( void )
static

Stepping onto block 10: its animation plays from the start.

Definition at line 666 of file crossbone_isle.c.

Referenced by Event_StepOnBlock10().

◆ Event_StepOnBlock11()

void Event_StepOnBlock11 ( void )
static

Stepping onto block 11: its animation plays from the start.

Definition at line 669 of file crossbone_isle.c.

Referenced by Event_StepOnBlock11().

◆ Event_StepOnBlock12()

void Event_StepOnBlock12 ( void )
static

Stepping onto block 12: its animation plays from the start.

Definition at line 672 of file crossbone_isle.c.

Referenced by Event_StepOnBlock12().

◆ Event_StepOnBlock13()

void Event_StepOnBlock13 ( void )
static

Stepping onto block 13: its animation plays from the start.

Definition at line 675 of file crossbone_isle.c.

Referenced by Event_StepOnBlock13().

◆ Event_StepOnBlock15()

void Event_StepOnBlock15 ( void )
static

Stepping onto block 15: its animation plays from the start.

Definition at line 678 of file crossbone_isle.c.

Referenced by Event_StepOnBlock15().

◆ Event_StepOnBlock17()

void Event_StepOnBlock17 ( void )
static

Stepping onto block 17: its animation plays from the start.

Definition at line 681 of file crossbone_isle.c.

Referenced by Event_StepOnBlock17().

◆ Event_StepOnBlock18()

void Event_StepOnBlock18 ( void )
static

Stepping onto block 18: its animation plays from the start.

Definition at line 684 of file crossbone_isle.c.

Referenced by Event_StepOnBlock18().

◆ Event_StepOnBlock9()

void Event_StepOnBlock9 ( void )
static

Stepping onto block 9: its animation plays from the start.

Definition at line 687 of file crossbone_isle.c.

Referenced by Event_StepOnBlock9().

◆ Event_StepOnBlock19()

void Event_StepOnBlock19 ( void )
static

Stepping onto block 19: its animation plays from the start.

Definition at line 690 of file crossbone_isle.c.

Referenced by Event_StepOnBlock19().

◆ Event_StepOnBlock14()

void Event_StepOnBlock14 ( void )
static

Stepping onto block 14: its animation plays from the start.

Definition at line 693 of file crossbone_isle.c.

Referenced by Event_StepOnBlock14().

◆ Event_StepOnBlock16()

void Event_StepOnBlock16 ( void )
static

Stepping onto block 16: its animation plays from the start.

Definition at line 696 of file crossbone_isle.c.

Referenced by Event_StepOnBlock16().

◆ CrossboneIsle_TryHop()

s32 CrossboneIsle_TryHop ( struct FieldActor * actor,
struct FieldPosition * requested )
static

Tests a step, then moves the leader with the block-pushing animation.

Definition at line 699 of file crossbone_isle.c.

Referenced by CrossboneIsle_TryHop(), Event_HopEast(), Event_HopNorth(), Event_HopSouth(), and Event_HopWest().

◆ Event_HopNorth()

s32 Event_HopNorth ( void )
static

Walking north against a block's edge: hop 32 pixels north if the landing is clear.

Definition at line 754 of file crossbone_isle.c.

Referenced by Event_HopNorth(), Event_HopNorth(), Event_HopNorthUnlessAtCell30x52(), and Event_SlideBlock8North().

◆ Event_HopSouth()

s32 Event_HopSouth ( void )
static

Walking south against a block's edge: hop 32 pixels south if the landing is clear.

Definition at line 766 of file crossbone_isle.c.

Referenced by Event_HopSouth(), and Event_HopSouth().

◆ Event_HopWest()

s32 Event_HopWest ( void )
static

Walking west against a block's edge: hop 32 pixels west if the landing is clear.

Definition at line 778 of file crossbone_isle.c.

Referenced by Event_HopWest(), Event_HopWest(), and Event_HopWestUnlessAtCell32x50().

◆ Event_HopEast()

s32 Event_HopEast ( void )
static

Walking east against a block's edge: hop 32 pixels east if the landing is clear.

Definition at line 790 of file crossbone_isle.c.

Referenced by Event_HopEast(), and Event_HopEast().

◆ Event_SlideBlock8North()

void Event_SlideBlock8North ( void )
static

Walking north onto block 8: it slides north with the leader on it until another block or the wall stops it.

Definition at line 802 of file crossbone_isle.c.

Referenced by Event_SlideBlock8North().

◆ CrossboneIsle_RedrawHorizontalBlockRoute()

void CrossboneIsle_RedrawHorizontalBlockRoute ( s32 actorId,
s32 column,
s32 row )
inlinestatic

Copies a horizontal block's old footprint to its new row, then clears the old row.

Definition at line 849 of file crossbone_isle.c.

Referenced by CrossboneIsle_RedrawHorizontalBlockRoute(), Event_SlideBlock10North(), Event_SlideBlock10South(), Event_SlideBlock17North(), Event_SlideBlock17South(), and Event_SlideBlock8South().

◆ CrossboneIsle_RedrawVerticalBlockRoute()

void CrossboneIsle_RedrawVerticalBlockRoute ( s32 actorId,
s32 column,
s32 row )
inlinestatic

◆ Event_SlideBlock8South()

void Event_SlideBlock8South ( void )
static

Walking south onto block 8: it slides south with the leader on it until another block or the wall stops it.

Definition at line 878 of file crossbone_isle.c.

Referenced by Event_SlideBlock8South().

◆ Event_SlideBlock10North()

void Event_SlideBlock10North ( void )
static

Walking north onto block 10: it slides north with the leader on it until another block or the wall stops it.

Definition at line 905 of file crossbone_isle.c.

Referenced by Event_SlideBlock10North().

◆ Event_SlideBlock10South()

void Event_SlideBlock10South ( void )
static

Walking south onto block 10: it slides south with the leader on it until another block or the wall stops it.

Definition at line 936 of file crossbone_isle.c.

Referenced by Event_SlideBlock10South().

◆ Event_SlideBlock11West()

void Event_SlideBlock11West ( void )
static

Walking west onto block 11: it slides west with the leader on it until another block or the wall stops it.

Definition at line 953 of file crossbone_isle.c.

Referenced by Event_SlideBlock11West().

◆ Event_SlideBlock11East()

void Event_SlideBlock11East ( void )
static

Walking east onto block 11: it slides east with the leader on it until another block or the wall stops it.

Definition at line 976 of file crossbone_isle.c.

Referenced by Event_SlideBlock11East().

◆ Event_SlideBlock12West()

void Event_SlideBlock12West ( void )
static

Walking west onto block 12: it slides west with the leader on it until another block or the wall stops it.

Definition at line 995 of file crossbone_isle.c.

Referenced by Event_SlideBlock12West().

◆ Event_SlideBlock12East()

void Event_SlideBlock12East ( void )
static

Walking east onto block 12: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1013 of file crossbone_isle.c.

Referenced by Event_SlideBlock12East().

◆ Event_SlideBlock13West()

void Event_SlideBlock13West ( void )
static

Walking west onto block 13: it slides west with the leader on it until another block or the wall stops it.

Definition at line 1030 of file crossbone_isle.c.

Referenced by Event_SlideBlock13West().

◆ Event_SlideBlock13East()

void Event_SlideBlock13East ( void )
static

Walking east onto block 13: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1081 of file crossbone_isle.c.

Referenced by Event_SlideBlock13East().

◆ Event_SlideBlock15West()

void Event_SlideBlock15West ( void )
static

Walking west onto block 15: it slides west with the leader on it until another block or the wall stops it.

Definition at line 1103 of file crossbone_isle.c.

Referenced by Event_SlideBlock15West().

◆ Event_SlideBlock15East()

void Event_SlideBlock15East ( void )
static

Walking east onto block 15: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1138 of file crossbone_isle.c.

Referenced by Event_SlideBlock15East().

◆ Event_SlideBlock17North()

void Event_SlideBlock17North ( void )
static

Walking north onto block 17: it slides north with the leader on it until another block or the wall stops it.

Definition at line 1187 of file crossbone_isle.c.

Referenced by Event_SlideBlock17North().

◆ Event_SlideBlock17South()

void Event_SlideBlock17South ( void )
static

Walking south onto block 17: it slides south with the leader on it until another block or the wall stops it.

Definition at line 1211 of file crossbone_isle.c.

Referenced by Event_SlideBlock17South().

◆ Event_SlideBlock18North()

void Event_SlideBlock18North ( void )
static

Walking north onto block 18: it slides north with the leader on it until another block or the wall stops it.

Definition at line 1230 of file crossbone_isle.c.

Referenced by Event_SlideBlock18North().

◆ Event_SlideBlock18South()

void Event_SlideBlock18South ( void )
static

Walking south onto block 18: it slides south with the leader on it until another block or the wall stops it.

Definition at line 1305 of file crossbone_isle.c.

Referenced by Event_SlideBlock18South().

◆ Event_SlideBlock9North()

void Event_SlideBlock9North ( void )
static

Walking north onto block 9: it slides north with the leader on it until another block or the wall stops it.

Definition at line 1365 of file crossbone_isle.c.

Referenced by Event_SlideBlock9North().

◆ Event_SlideBlock9South()

void Event_SlideBlock9South ( void )
static

Walking south onto block 9: it slides south with the leader on it until another block or the wall stops it.

Definition at line 1441 of file crossbone_isle.c.

Referenced by Event_SlideBlock9South().

◆ Event_SlideBlock19West()

void Event_SlideBlock19West ( void )
static

Walking west onto block 19: it slides west with the leader on it until another block or the wall stops it.

Definition at line 1504 of file crossbone_isle.c.

Referenced by Event_SlideBlock19West().

◆ Event_SlideBlock19East()

void Event_SlideBlock19East ( void )
static

Walking east onto block 19: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1575 of file crossbone_isle.c.

Referenced by Event_SlideBlock19East().

◆ Event_SlideBlock14West()

void Event_SlideBlock14West ( void )
static

Walking west onto block 14: it slides west with the leader on it until another block or the wall stops it.

Definition at line 1627 of file crossbone_isle.c.

Referenced by Event_SlideBlock14West().

◆ Event_SlideBlock14East()

void Event_SlideBlock14East ( void )
static

Walking east onto block 14: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1680 of file crossbone_isle.c.

Referenced by Event_SlideBlock14East().

◆ Event_SlideBlock16West()

void Event_SlideBlock16West ( void )
static

Walking west onto block 16: it slides west with the leader on it until another block or the wall stops it.

Definition at line 1726 of file crossbone_isle.c.

Referenced by Event_SlideBlock16West().

◆ Event_SlideBlock16East()

void Event_SlideBlock16East ( void )
static

Walking east onto block 16: it slides east with the leader on it until another block or the wall stops it.

Definition at line 1776 of file crossbone_isle.c.

Referenced by Event_SlideBlock16East().

Variable Documentation

◆ gStagedActor_DirectionSteps

s32 gStagedActor_DirectionSteps[]
Initial value:
= {
DIRECTION_STEP(0, 16), 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.

Pixel step by direction: X in the upper halfword, Z in the lower.

Definition at line 1816 of file crossbone_isle.c.

◆ gStagedActor_FootprintKinds

u32 gStagedActor_FootprintKinds[]
Initial value:
= {
207, 205, 228, 229, 298, 297,
}

Definition at line 1826 of file crossbone_isle.c.

◆ gStagedActor_FootprintBounds

s32 gStagedActor_FootprintBounds[]
Initial value:
= {
-32, -8, 32, 8,
-8, -32, 8, 32,
-32, -16, 32, 0,
-8, -32, 8, 32,
-32, -8, 32, 8,
-8, -32, 8, 32,
}

Definition at line 1830 of file crossbone_isle.c.

◆ gEffectScript0

s32 gEffectScript0[]
Initial value:
= {
SC_WAIT(1),
SC_WAIT(1),
SC_POS(0, 0, 0),
SC_WAIT(1),
}
#define SC_LOOP(n, to)
Repeat up to n times.
Definition objcmd.h:28
#define SC_POS(x, y, z)
Set position.
Definition objcmd.h:18
#define SC_FREE
Release.
Definition objcmd.h:43
#define SC_WAIT(n)
Wait n frames.
Definition objcmd.h:16
#define SC_TOP
Script start.
Definition objcmd.h:13

Definition at line 1839 of file crossbone_isle.c.

◆ gEffectScript1

s32 gEffectScript1[]
Initial value:
= {
SC_WAIT(1),
SC_WAIT(1),
SC_POS(0, 0, 0),
SC_WAIT(1),
}

Definition at line 1848 of file crossbone_isle.c.

◆ gEffectScript2

s32 gEffectScript2[]
Initial value:
= {
SC_WAIT(1),
SC_LOOP(126, SC_TOP),
SC_WAIT(1),
SC_POS(0, 0, 0),
SC_WAIT(1),
}

Definition at line 1857 of file crossbone_isle.c.

◆ gCrossboneIsle_EntranceCells

u16 gCrossboneIsle_EntranceCells[]
Initial value:
= {
MAP_CELL_STEP(58, 23, 1, 2, 5), MAP_CELL_STEP(59, 23, 1, 2, 5), MAP_CELL_STEPS_END,
}
#define MAP_CELL_STEP(srcX, srcY, width, height, frames)
Definition field_event.h:59
#define MAP_CELL_STEPS_END
Definition field_event.h:61

Definition at line 1866 of file crossbone_isle.c.

Referenced by CrossboneIsle_LeaveClearedRoom(), Event_EnterGuardedRoom(), and Event_OpenWestDoor().

◆ gEffectScripts

const s32* gEffectScripts[]
Initial value:
= {
(const s32 *)0xffff0000,
(const s32 *)120,
(const s32 *)0x40000098,
(const s32 *)0xffff0000,
(const s32 *)-1,
(const s32 *)0xffff,
(const s32 *)0xffff,
0,
0,
0,
0,
0,
}
s32 gEffectScript0[]
s32 gEffectScript1[]
s32 gEffectScript2[]
signed int s32
Definition types.h:14

Definition at line 1870 of file crossbone_isle.c.

◆ gCrossboneIsleEntrances1

struct SceneEntrance gCrossboneIsleEntrances1[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 280, 0, 544, FACING_NORTH, 0, 0, 0, 512, 560, 0 },
{ 2, CONDITION_ALWAYS, 136, 0, 360, FACING_SOUTH, 0, 0, 0, 512, 560, 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 1888 of file crossbone_isle.c.

Referenced by Scene_GetEntrances().

◆ gCrossboneIsleEntrances2

struct SceneEntrance gCrossboneIsleEntrances2[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 312, 0, 520, FACING_NORTH, 0, 16, 64, 416, 544, 0 },
{ 2, CONDITION_ALWAYS, 280, 0, 144, FACING_EAST, 0, 16, 64, 416, 544, 0 },
}
@ FACING_EAST
Definition field_scene.h:26

Definition at line 1894 of file crossbone_isle.c.

Referenced by Scene_GetEntrances().

◆ gCrossboneIsleEntrances3

struct SceneEntrance gCrossboneIsleEntrances3[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 312, 0, 408, FACING_NORTH, 0, 0, 16, 640, 464, 0 },
{ 2, CONDITION_ALWAYS, 200, 0, 408, FACING_NORTH, 0, 0, 16, 640, 464, 0 },
{ 99, CONDITION_ALWAYS, 272, 0, 232, FACING_SOUTH, 0, 0, 16, 640, 464, 0 },
}

Definition at line 1900 of file crossbone_isle.c.

Referenced by Scene_GetEntrances().

◆ gCrossboneIsleEntrances4

struct SceneEntrance gCrossboneIsleEntrances4[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 184, 0, 136, FACING_WEST, 0, -1, -1, -1, -1, 0 },
{ 2, CONDITION_ALWAYS, 40, 0, 184, FACING_EAST, 0, -1, -1, -1, -1, 0 },
}
@ FACING_WEST
Definition field_scene.h:30

Definition at line 1907 of file crossbone_isle.c.

Referenced by Scene_GetEntrances().

◆ gCrossboneIsleEntrances5

struct SceneEntrance gCrossboneIsleEntrances5[]
Initial value:
= {
{ 1, CONDITION_ALWAYS, 312, 0, 656, FACING_WEST, 0, -1, -1, -1, -1, 0 },
{ 5, CONDITION_ALWAYS, 216, 0, 544, FACING_NORTH, 0, -1, -1, -1, -1, 0 },
{ 1, CONDITION_ALWAYS, 840, 0, 176, FACING_WEST, 0, 432, 32, 880, 352, 0 },
{ 2, CONDITION_ALWAYS, 488, 0, 176, FACING_EAST, 0, 432, 32, 880, 352, 0 },
{ 3, CONDITION_ALWAYS, 712, 0, 152, FACING_SOUTH, 0, 432, 32, 880, 352, 0 },
{ 4, CONDITION_ALWAYS, 600, 0, 152, FACING_SOUTH, 0, 432, 32, 880, 352, 0 },
{ 5, CONDITION_ALWAYS, 712, 0, 152, FACING_NORTH, 0, 432, 32, 880, 352, 0 },
}

Definition at line 1913 of file crossbone_isle.c.

Referenced by Scene_GetEntrances().

◆ gCrossboneIsleExits

u32 gCrossboneIsleExits[]

Definition at line 1926 of file crossbone_isle.c.

Referenced by Scene_GetExits().

◆ gCrossboneIslePlacementsOther

struct ScenePlacement gCrossboneIslePlacementsOther[]
Initial value:
= {
}

Definition at line 1989 of file crossbone_isle.c.

Referenced by Scene_GetPlacements().

◆ gCrossboneIslePlacements1

struct ScenePlacement gCrossboneIslePlacements1[]
Initial value:
= {
{ 0x16, 0xfd7, 7,
{ 0xcf, CONDITION_ALWAYS, 7,
{ 0xcf, CONDITION_ALWAYS, 7,
}
@ TALK_KEEP_FACING
@ ACTOR_STAND
#define PIXELS(value)

Definition at line 1993 of file crossbone_isle.c.

Referenced by Scene_GetPlacements().

◆ gCrossboneIslePlacements3

struct ScenePlacement gCrossboneIslePlacements3[]
Initial value:

Definition at line 2017 of file crossbone_isle.c.

Referenced by Scene_GetPlacements().

◆ gCrossboneIslePlacements6To14

struct ScenePlacement gCrossboneIslePlacements6To14[]
Initial value:

Definition at line 2045 of file crossbone_isle.c.

Referenced by Scene_GetPlacements().

◆ gCrossboneIsleEventsOther

struct SceneEvent gCrossboneIsleEventsOther[]
Initial value:
= {
{ SEARCH(SEARCH_CHEST), 100, 0xef4, 0x500004 },
}
@ ABILITY_MOVE
Definition ability_ids.h:15
static void Event_PushBlock(void)
Pushing a block: it slides one cell ahead with the leader behind it, if the cell is free.
Definition bilibin.c:645
static void Event_MoveBlock(void)
Move on a guarded room's block, and after each push: once it reaches column 40 it sinks into the floo...
static void Event_OpenWestDoor(void)
Walking north into the western door (trigger 4): it opens, and the party goes through.
static void Event_EnterGuardedRoom(void)
Walking north into a guarded room's door (trigger 3): the first time, the room's guards attack; once ...
#define SCENE_EVENTS_END
@ EVENT_TOUCH
@ EVENT_EXIT
#define PSYNERGY_ON_ACTOR(ability)
#define EVENT_SCRIPT(script)
#define EVENT_TOUCH_WALKING
#define SEARCH(target)
#define TOUCH_WALKING_INTO(facing)
@ SEARCH_CHEST

Definition at line 2051 of file crossbone_isle.c.

Referenced by Scene_GetEvents().

◆ gCrossboneIsleEvents2

struct SceneEvent gCrossboneIsleEvents2[]
Initial value:

Definition at line 2062 of file crossbone_isle.c.

Referenced by Scene_GetEvents().

◆ gCrossboneIsleEvents1

struct SceneEvent gCrossboneIsleEvents1[]
Initial value:
= {
{ 0x8413, 100, 0xec0, FIND_COINS(1) },
{ 0xc413, 100, 0xec0, FIND_COINS(1) },
{ 0xa413, 100, 0xec0, FIND_COINS(1) },
{ 0x8413, 101, 0xec1, FIND_ITEM(ITEM_MINT) },
{ 0xc413, 101, 0xec1, FIND_ITEM(ITEM_MINT) },
{ 0xa413, 101, 0xec1, FIND_ITEM(ITEM_MINT) },
}
@ ABILITY_CATCH
Definition ability_ids.h:23
@ ABILITY_WHIRLWIND
Definition ability_ids.h:13
@ ABILITY_GROWTH
Definition ability_ids.h:10
static void Event_GrowPlant12(s32 actorId)
Growth on the second plant (actor 12).
static void Event_GrowPlant13(s32 actorId)
Growth on the third plant (actor 13).
static void Event_PushFirstRoomBlock(void)
Walking into one of the first room's blocks: push it if the cell beyond is clear.
static void Event_GrowPlant11(s32 actorId)
Growth on the first plant (actor 11): it grows, and its cell can be crossed.
static void Event_GrowPlant14(s32 actorId)
Growth on the fourth plant (actor 14), which opens two cells.
static void Event_CatchNut(void)
Catch on the Nut circling in the first room: the party gets it.
static void Event_BlowAwayIvy15(void)
Whirlwind on the first ivy (actor 15): it is blown away for good.
static void Event_BlowAwayIvy17(void)
Whirlwind on the third ivy (actor 17).
static void Event_BlowAwayIvy18(void)
Whirlwind on actor 18, a fourth ivy.
static void Event_BlowAwayIvy16(void)
Whirlwind on the second ivy (actor 16).
#define FIND_ITEM(item)
#define FIND_COINS(coins)
#define FLAG_SCENE_TEMP_43
Definition flags.h:780
#define FLAG_SCENE_TEMP_40
Definition flags.h:777
#define FLAG_CROSSBONE_ISLE_FIRST_IVY_BLOWN_AWAY
The ivy in the first room: four flags from this one.
Definition flags.h:632
#define FLAG_SCENE_TEMP_41
Definition flags.h:778
#define FLAG_SCENE_TEMP_42
Definition flags.h:779
@ ITEM_MINT
Definition item_ids.h:54

Definition at line 2068 of file crossbone_isle.c.

Referenced by Scene_GetEvents().

◆ gCrossboneIsleEvents3

struct SceneEvent gCrossboneIsleEvents3[]

Definition at line 2091 of file crossbone_isle.c.

Referenced by Scene_GetEvents().

◆ gCrossboneIsleEvents4

struct SceneEvent gCrossboneIsleEvents4[]
Initial value:

Definition at line 2166 of file crossbone_isle.c.

Referenced by Scene_GetEvents().

◆ gCrossboneIsleEvents5

struct SceneEvent gCrossboneIsleEvents5[]
Initial value:
= {
{SEARCH(SEARCH_CHEST), 101, 0xef7, 0x500007},
}
static void Event_FightFinalGuards(void)
Stepping on trigger 10 in the fifth room: the last guards attack, and the party comes back to this ro...
static s32 Event_HopSouth(void)
Walking south against a block's edge: hop 32 pixels south if the landing is clear.
#define FLAG_CROSSBONE_ISLE_FINAL_GUARDS_DEFEATED
Definition flags.h:636
@ ITEM_DEMON_MAIL
Definition item_ids.h:23

Definition at line 2172 of file crossbone_isle.c.

Referenced by Scene_GetEvents().