yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
yaze::zelda3::draw_routines Namespace Reference

Functions

void DrawCorner4x4 (const DrawContext &ctx)
 Draw a 4x4 grid corner pattern.
 
void Draw4x4Corner_BothBG (const DrawContext &ctx)
 Draw a 4x4 corner for both BG layers.
 
void DrawWeirdCornerBottom_BothBG (const DrawContext &ctx)
 Draw a weird corner bottom pattern for both BG layers.
 
void DrawWeirdCornerTop_BothBG (const DrawContext &ctx)
 Draw a weird corner top pattern for both BG layers.
 
void RegisterCornerRoutines (std::vector< DrawRoutineInfo > &registry)
 Register all corner draw routines to the registry.
 
void DrawDiagonalAcute_1to16 (const DrawContext &ctx)
 Draw diagonal acute (/) pattern - draws 5 tiles vertically, moves up-right.
 
void DrawDiagonalGrave_1to16 (const DrawContext &ctx)
 Draw diagonal grave () pattern - draws 5 tiles vertically, moves down-right.
 
void DrawDiagonalAcute_1to16_BothBG (const DrawContext &ctx)
 Draw diagonal acute (/) pattern for both BG layers.
 
void DrawDiagonalGrave_1to16_BothBG (const DrawContext &ctx)
 Draw diagonal grave () pattern for both BG layers.
 
void RegisterDiagonalRoutines (std::vector< DrawRoutineInfo > &registry)
 Register all diagonal draw routines to the registry.
 
void DrawDownwards2x2_1to15or32 (const DrawContext &ctx)
 Draw 2x2 tiles downward pattern (1-15 or 32 iterations)
 
void DrawDownwards4x2_1to15or26 (const DrawContext &ctx)
 Draw 4x2 tiles downward pattern (1-15 or 26 iterations)
 
void DrawDownwards4x2_1to16_BothBG (const DrawContext &ctx)
 Draw 4x2 tiles downward pattern for both BG layers.
 
void DrawDownwardsDecor4x2spaced4_1to16 (const DrawContext &ctx)
 Draw 4x2 decoration downward with spacing (1-16 iterations)
 
void DrawDownwards2x2_1to16 (const DrawContext &ctx)
 Draw 2x2 tiles downward pattern (1-16 iterations)
 
void DrawDownwardsHasEdge1x1_1to16_plus3 (const DrawContext &ctx)
 Draw 1x1 tiles with edge detection +3 offset downward.
 
void DrawDownwardsEdge1x1_1to16 (const DrawContext &ctx)
 Draw 1x1 edge tiles downward (1-16 iterations)
 
void DrawDownwardsLeftCorners2x1_1to16_plus12 (const DrawContext &ctx)
 Draw left corner 2x1 tiles with +12 offset downward.
 
void DrawDownwardsRightCorners2x1_1to16_plus12 (const DrawContext &ctx)
 Draw right corner 2x1 tiles with +12 offset downward.
 
void RegisterDownwardsRoutines (std::vector< DrawRoutineInfo > &registry)
 Register all downwards draw routines to the registry.
 
void DrawRightwards2x2_1to15or32 (const DrawContext &ctx)
 Draw 2x2 tiles rightward (1-15 or 32 repetitions)
 
void DrawRightwards2x4_1to15or26 (const DrawContext &ctx)
 Draw 2x4 tiles rightward (1-15 or 26 repetitions)
 
void DrawRightwards2x4_1to16 (const DrawContext &ctx)
 Draw 2x4 tiles rightward with adjacent spacing (1-16 repetitions)
 
void DrawRightwards2x4_1to16_BothBG (const DrawContext &ctx)
 Draw 2x4 tiles rightward with adjacent spacing to both BG layers.
 
void DrawRightwards2x2_1to16 (const DrawContext &ctx)
 Draw 2x2 tiles rightward (1-16 repetitions)
 
void DrawRightwards1x2_1to16_plus2 (const DrawContext &ctx)
 Draw 1x2 tiles rightward with +2 offset.
 
void DrawRightwardsHasEdge1x1_1to16_plus3 (const DrawContext &ctx)
 Draw 1x1 tiles with edge detection +3 offset.
 
void DrawRightwardsHasEdge1x1_1to16_plus2 (const DrawContext &ctx)
 Draw 1x1 tiles with edge detection +2 offset.
 
void DrawRightwardsTopCorners1x2_1to16_plus13 (const DrawContext &ctx)
 Draw top corner 1x2 tiles with +13 offset.
 
void DrawRightwardsBottomCorners1x2_1to16_plus13 (const DrawContext &ctx)
 Draw bottom corner 1x2 tiles with +13 offset.
 
void DrawRightwards4x4_1to16 (const DrawContext &ctx)
 Draw 4x4 block rightward.
 
void DrawRightwards1x1Solid_1to16_plus3 (const DrawContext &ctx)
 Draw 1x1 solid tiles +3 offset.
 
void DrawRightwardsDecor4x4spaced2_1to16 (const DrawContext &ctx)
 Draw 4x4 decoration with spacing.
 
void DrawRightwardsStatue2x3spaced2_1to16 (const DrawContext &ctx)
 Draw 2x3 statue with spacing.
 
void DrawRightwardsPillar2x4spaced4_1to16 (const DrawContext &ctx)
 Draw 2x4 pillar with spacing.
 
void DrawRightwardsDecor4x3spaced4_1to16 (const DrawContext &ctx)
 Draw 4x3 decoration with spacing.
 
void DrawRightwardsDoubled2x2spaced2_1to16 (const DrawContext &ctx)
 Draw doubled 2x2 with spacing.
 
void DrawRightwardsDecor2x2spaced12_1to16 (const DrawContext &ctx)
 Draw 2x2 decoration with large spacing.
 
void RegisterRightwardsRoutines (std::vector< DrawRoutineInfo > &registry)
 Register all rightwards draw routines to the registry.
 
void DrawChest (const DrawContext &ctx, int chest_index)
 Draw chest object (big or small) with open/closed state support.
 
void DrawNothing (const DrawContext &ctx)
 Draw nothing - represents invisible logic objects or placeholders.
 
void CustomDraw (const DrawContext &ctx)
 Custom draw routine for special objects.
 
void DrawDoorSwitcherer (const DrawContext &ctx)
 Draw door switcher object with state-based graphics.
 
void DrawSomariaLine (const DrawContext &ctx)
 Draw Somaria line in various directions.
 
void DrawWaterFace (const DrawContext &ctx)
 Draw water face pattern (2x2)
 
void DrawLargeCanvasObject (const DrawContext &ctx, int width, int height)
 Draw large canvas object with arbitrary dimensions.
 
void Draw4x4BlocksIn4x4SuperSquare (const DrawContext &ctx)
 Draw 4x4 solid blocks in a super square grid.
 
void Draw3x3FloorIn4x4SuperSquare (const DrawContext &ctx)
 Draw 3x3 floor pattern in super square units.
 
void Draw4x4FloorIn4x4SuperSquare (const DrawContext &ctx)
 Draw 4x4 floor pattern in super square units.
 
void Draw4x4FloorOneIn4x4SuperSquare (const DrawContext &ctx)
 Draw single 4x4 floor pattern variant.
 
void Draw4x4FloorTwoIn4x4SuperSquare (const DrawContext &ctx)
 Draw two 4x4 floor pattern variant.
 
void DrawBigHole4x4_1to16 (const DrawContext &ctx)
 Draw 4x4 big hole pattern.
 
void DrawSpike2x2In4x4SuperSquare (const DrawContext &ctx)
 Draw 2x2 spike pattern in super square units.
 
void DrawTableRock4x4_1to16 (const DrawContext &ctx)
 Draw 4x4 table rock pattern.
 
void DrawWaterOverlay8x8_1to16 (const DrawContext &ctx)
 Draw water overlay 8x8 pattern.
 
void DrawInterRoomFatStairsUp (const DrawContext &ctx)
 Draw inter-room fat stairs going up (Type 2 object 0x12D)
 
void DrawInterRoomFatStairsDownA (const DrawContext &ctx)
 Draw inter-room fat stairs going down A (Type 2 object 0x12E)
 
void DrawInterRoomFatStairsDownB (const DrawContext &ctx)
 Draw inter-room fat stairs going down B (Type 2 object 0x12F)
 
void DrawSpiralStairs (const DrawContext &ctx, bool going_up, bool is_upper)
 Draw spiral stairs (Type 2 objects 0x138-0x13B)
 
void DrawAutoStairs (const DrawContext &ctx)
 Draw auto stairs (Type 2/3 objects 0x130-0x133, 0x21B-0x21D, 0x233)
 
void DrawStraightInterRoomStairs (const DrawContext &ctx)
 Draw straight inter-room stairs (Type 3 objects 0x21E-0x229)
 
void DrawPrisonCell (const DrawContext &ctx)
 Draw prison cell with bars (Type 3 objects 0x20D, 0x217)
 
void DrawBigKeyLock (const DrawContext &ctx)
 Draw big key lock (Type 3 object 0x218)
 
void DrawBombableFloor (const DrawContext &ctx)
 Draw bombable floor (Type 3 object 0x247)
 
void DrawMovingWall (const DrawContext &ctx, bool is_west)
 Draw moving wall (Type 1 objects 0xCD, 0xCE)
 
void DrawEmptyWaterFace (const DrawContext &ctx)
 Draw empty water face (Type 3 object 0x200)
 
void DrawSpittingWaterFace (const DrawContext &ctx)
 Draw spitting water face (Type 3 object 0x201)
 
void DrawDrenchingWaterFace (const DrawContext &ctx)
 Draw drenching water face (Type 3 object 0x202)
 
void DrawClosedChestPlatform (const DrawContext &ctx)
 Draw closed chest platform (Type 1 object 0xC1)
 
void DrawChestPlatformHorizontalWall (const DrawContext &ctx)
 Draw chest platform horizontal wall section.
 
void DrawChestPlatformVerticalWall (const DrawContext &ctx)
 Draw chest platform vertical wall section.
 
void RegisterSpecialRoutines (std::vector< DrawRoutineInfo > &registry)
 Register all special/miscellaneous draw routines to the registry.
 

Function Documentation

◆ DrawCorner4x4()

void yaze::zelda3::draw_routines::DrawCorner4x4 ( const DrawContext & ctx)

Draw a 4x4 grid corner pattern.

Type 2 corners 0x40-0x4F, 0x108-0x10F Supports multiple tile counts:

  • 16 tiles: Full 4x4 pattern (column-major)
  • 8 tiles: 2x4 pattern (column-major, Type 2 standard layout)
  • 4 tiles: 2x2 fallback pattern
Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 14 of file corner_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by Draw4x4Corner_BothBG(), DrawWeirdCornerBottom_BothBG(), DrawWeirdCornerTop_BothBG(), and RegisterCornerRoutines().

Here is the call graph for this function:

◆ Draw4x4Corner_BothBG()

void yaze::zelda3::draw_routines::Draw4x4Corner_BothBG ( const DrawContext & ctx)

Draw a 4x4 corner for both BG layers.

Used by objects 0x108-0x10F for Type 2, 0xF9B-0xF9D for Type 3 Delegates to DrawCorner4x4 for 16 tiles, or draws:

  • 8 tiles: 2x4 corner pattern (column-major)
  • 4 tiles: 2x2 pattern via DrawWaterFace
Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 50 of file corner_routines.cc.

References DrawCorner4x4(), DrawWaterFace(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterCornerRoutines().

Here is the call graph for this function:

◆ DrawWeirdCornerBottom_BothBG()

void yaze::zelda3::draw_routines::DrawWeirdCornerBottom_BothBG ( const DrawContext & ctx)

Draw a weird corner bottom pattern for both BG layers.

Used by objects 0x110-0x113 for Type 2, 0xF9E-0xFA1 for Type 3 Type 3 objects use 8 tiles in 4x2 bottom corner layout Draws in row-major order for bottom corners

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 70 of file corner_routines.cc.

References DrawCorner4x4(), DrawWaterFace(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterCornerRoutines().

Here is the call graph for this function:

◆ DrawWeirdCornerTop_BothBG()

void yaze::zelda3::draw_routines::DrawWeirdCornerTop_BothBG ( const DrawContext & ctx)

Draw a weird corner top pattern for both BG layers.

Used by objects 0x114-0x117 for Type 2, 0xFA2-0xFA5 for Type 3 Type 3 objects use 8 tiles in 4x2 top corner layout Draws in row-major order for top corners

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 89 of file corner_routines.cc.

References DrawCorner4x4(), DrawWaterFace(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterCornerRoutines().

Here is the call graph for this function:

◆ RegisterCornerRoutines()

void yaze::zelda3::draw_routines::RegisterCornerRoutines ( std::vector< DrawRoutineInfo > & registry)

Register all corner draw routines to the registry.

Parameters
registryVector of DrawRoutineInfo to register routines into

Definition at line 108 of file corner_routines.cc.

References yaze::zelda3::DrawRoutineInfo::Corner, Draw4x4Corner_BothBG(), DrawCorner4x4(), DrawWeirdCornerBottom_BothBG(), DrawWeirdCornerTop_BothBG(), and yaze::zelda3::DrawRoutineInfo::id.

Referenced by yaze::zelda3::DrawRoutineRegistry::BuildRegistry().

Here is the call graph for this function:

◆ DrawDiagonalAcute_1to16()

void yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16 ( const DrawContext & ctx)

Draw diagonal acute (/) pattern - draws 5 tiles vertically, moves up-right.

Based on bank_01.asm RoomDraw_DiagonalAcute_1to16 at $018C58 Uses RoomDraw_2x2and1 to draw 5 tiles at rows 0-4, then moves Y -= $7E

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 10 of file diagonal_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDiagonalRoutines().

Here is the call graph for this function:

◆ DrawDiagonalGrave_1to16()

void yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16 ( const DrawContext & ctx)

Draw diagonal grave () pattern - draws 5 tiles vertically, moves down-right.

Based on bank_01.asm RoomDraw_DiagonalGrave_1to16 at $018C61 Uses RoomDraw_2x2and1 to draw 5 tiles at rows 0-4, then moves Y += $82

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 43 of file diagonal_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDiagonalRoutines().

Here is the call graph for this function:

◆ DrawDiagonalAcute_1to16_BothBG()

void yaze::zelda3::draw_routines::DrawDiagonalAcute_1to16_BothBG ( const DrawContext & ctx)

Draw diagonal acute (/) pattern for both BG layers.

Used for objects 0x15, 0x18-0x1D, 0x20 Based on bank_01.asm RoomDraw_DiagonalAcute_1to16_BothBG at $018C6A

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 76 of file diagonal_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDiagonalRoutines().

Here is the call graph for this function:

◆ DrawDiagonalGrave_1to16_BothBG()

void yaze::zelda3::draw_routines::DrawDiagonalGrave_1to16_BothBG ( const DrawContext & ctx)

Draw diagonal grave () pattern for both BG layers.

Used for objects 0x16-0x17, 0x1A-0x1B, 0x1E-0x1F Based on bank_01.asm RoomDraw_DiagonalGrave_1to16_BothBG at $018CB9

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 106 of file diagonal_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDiagonalRoutines().

Here is the call graph for this function:

◆ RegisterDiagonalRoutines()

void yaze::zelda3::draw_routines::RegisterDiagonalRoutines ( std::vector< DrawRoutineInfo > & registry)

Register all diagonal draw routines to the registry.

Parameters
registryVector of DrawRoutineInfo to register routines into

Definition at line 136 of file diagonal_routines.cc.

References yaze::zelda3::DrawRoutineInfo::Diagonal, DrawDiagonalAcute_1to16(), DrawDiagonalAcute_1to16_BothBG(), DrawDiagonalGrave_1to16(), DrawDiagonalGrave_1to16_BothBG(), and yaze::zelda3::DrawRoutineInfo::id.

Referenced by yaze::zelda3::DrawRoutineRegistry::BuildRegistry().

Here is the call graph for this function:

◆ DrawDownwards2x2_1to15or32()

void yaze::zelda3::draw_routines::DrawDownwards2x2_1to15or32 ( const DrawContext & ctx)

Draw 2x2 tiles downward pattern (1-15 or 32 iterations)

Pattern: Draws 2x2 tiles downward (object 0x60) Size byte determines how many times to repeat (1-15 or 32) Based on bank_01.asm RoomDraw_Downwards2x2_1to15or32

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 10 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwards4x2_1to15or26()

void yaze::zelda3::draw_routines::DrawDownwards4x2_1to15or26 ( const DrawContext & ctx)

Draw 4x2 tiles downward pattern (1-15 or 26 iterations)

Pattern: Draws 4x2 tiles downward (objects 0x61-0x62) This is 4 columns × 2 rows = 8 tiles in ROW-MAJOR order (per ZScream) Based on bank_01.asm RoomDraw_Downwards4x2_1to15or26

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 40 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by DrawDownwards4x2_1to16_BothBG(), and RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwards4x2_1to16_BothBG()

void yaze::zelda3::draw_routines::DrawDownwards4x2_1to16_BothBG ( const DrawContext & ctx)

Draw 4x2 tiles downward pattern for both BG layers.

Pattern: Same as above but draws to both BG1 and BG2 (objects 0x63-0x64) Based on bank_01.asm RoomDraw_Downwards4x2_1to16_BothBG

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 81 of file downwards_routines.cc.

References DrawDownwards4x2_1to15or26().

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwardsDecor4x2spaced4_1to16()

void yaze::zelda3::draw_routines::DrawDownwardsDecor4x2spaced4_1to16 ( const DrawContext & ctx)

Draw 4x2 decoration downward with spacing (1-16 iterations)

Pattern: Draws 4x2 decoration downward with spacing (objects 0x65-0x66) This is 4 columns × 2 rows = 8 tiles in COLUMN-MAJOR order with 6-tile Y spacing Based on bank_01.asm RoomDraw_DownwardsDecor4x2spaced4_1to16

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 87 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwards2x2_1to16()

void yaze::zelda3::draw_routines::DrawDownwards2x2_1to16 ( const DrawContext & ctx)

Draw 2x2 tiles downward pattern (1-16 iterations)

Pattern: Draws 2x2 tiles downward (objects 0x67-0x68) Based on bank_01.asm RoomDraw_Downwards2x2_1to16

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 131 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwardsHasEdge1x1_1to16_plus3()

void yaze::zelda3::draw_routines::DrawDownwardsHasEdge1x1_1to16_plus3 ( const DrawContext & ctx)

Draw 1x1 tiles with edge detection +3 offset downward.

Pattern: 1x1 tiles with edge detection +3 offset downward (object 0x69) Based on bank_01.asm RoomDraw_DownwardsHasEdge1x1_1to16_plus3

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 161 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwardsEdge1x1_1to16()

void yaze::zelda3::draw_routines::DrawDownwardsEdge1x1_1to16 ( const DrawContext & ctx)

Draw 1x1 edge tiles downward (1-16 iterations)

Pattern: 1x1 edge tiles downward (objects 0x6A-0x6B) Based on bank_01.asm RoomDraw_DownwardsEdge1x1_1to16

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 177 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwardsLeftCorners2x1_1to16_plus12()

void yaze::zelda3::draw_routines::DrawDownwardsLeftCorners2x1_1to16_plus12 ( const DrawContext & ctx)

Draw left corner 2x1 tiles with +12 offset downward.

Pattern: Left corner 2x1 tiles with +12 offset downward (object 0x6C) Based on bank_01.asm RoomDraw_DownwardsLeftCorners2x1_1to16_plus12

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 193 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ DrawDownwardsRightCorners2x1_1to16_plus12()

void yaze::zelda3::draw_routines::DrawDownwardsRightCorners2x1_1to16_plus12 ( const DrawContext & ctx)

Draw right corner 2x1 tiles with +12 offset downward.

Pattern: Right corner 2x1 tiles with +12 offset downward (object 0x6D) Based on bank_01.asm RoomDraw_DownwardsRightCorners2x1_1to16_plus12

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 211 of file downwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterDownwardsRoutines().

Here is the call graph for this function:

◆ RegisterDownwardsRoutines()

◆ DrawRightwards2x2_1to15or32()

void yaze::zelda3::draw_routines::DrawRightwards2x2_1to15or32 ( const DrawContext & ctx)

Draw 2x2 tiles rightward (1-15 or 32 repetitions)

Pattern: Draws 2x2 tiles rightward (object 0x00) Size byte determines how many times to repeat (1-15 or 32) ROM tile order is COLUMN-MAJOR: [col0_row0, col0_row1, col1_row0, col1_row1]

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 10 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards2x4_1to15or26()

void yaze::zelda3::draw_routines::DrawRightwards2x4_1to15or26 ( const DrawContext & ctx)

Draw 2x4 tiles rightward (1-15 or 26 repetitions)

Pattern: Draws 2x4 tiles rightward (objects 0x01-0x02) Uses RoomDraw_Nx4 with N=2, tiles are COLUMN-MAJOR: [col0_row0, col0_row1, col0_row2, col0_row3, col1_row0, col1_row1, col1_row2, col1_row3]

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 37 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards2x4_1to16()

void yaze::zelda3::draw_routines::DrawRightwards2x4_1to16 ( const DrawContext & ctx)

Draw 2x4 tiles rightward with adjacent spacing (1-16 repetitions)

Pattern: Draws 2x4 tiles rightward with adjacent spacing (objects 0x03-0x04) Uses RoomDraw_Nx4 with N=2, tiles are COLUMN-MAJOR ASM: GetSize_1to16 means count = size + 1

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 80 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by DrawRightwards2x4_1to16_BothBG(), and RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards2x4_1to16_BothBG()

void yaze::zelda3::draw_routines::DrawRightwards2x4_1to16_BothBG ( const DrawContext & ctx)

Draw 2x4 tiles rightward with adjacent spacing to both BG layers.

Pattern: Same as DrawRightwards2x4_1to16 but draws to both BG1 and BG2 (objects 0x05-0x06)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 122 of file rightwards_routines.cc.

References DrawRightwards2x4_1to16().

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards2x2_1to16()

void yaze::zelda3::draw_routines::DrawRightwards2x2_1to16 ( const DrawContext & ctx)

Draw 2x2 tiles rightward (1-16 repetitions)

Pattern: Draws 2x2 tiles rightward (objects 0x07-0x08) ROM tile order is COLUMN-MAJOR: [col0_row0, col0_row1, col1_row0, col1_row1]

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 128 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards1x2_1to16_plus2()

void yaze::zelda3::draw_routines::DrawRightwards1x2_1to16_plus2 ( const DrawContext & ctx)

Draw 1x2 tiles rightward with +2 offset.

Pattern: 1x2 tiles rightward with +2 offset (object 0x21)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 152 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsHasEdge1x1_1to16_plus3()

void yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus3 ( const DrawContext & ctx)

Draw 1x1 tiles with edge detection +3 offset.

Pattern: 1x1 tiles with edge detection +3 offset (object 0x22)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 170 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsHasEdge1x1_1to16_plus2()

void yaze::zelda3::draw_routines::DrawRightwardsHasEdge1x1_1to16_plus2 ( const DrawContext & ctx)

Draw 1x1 tiles with edge detection +2 offset.

Pattern: 1x1 tiles with edge detection +2 offset (objects 0x23-0x2E, 0x3F-0x46)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 186 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsTopCorners1x2_1to16_plus13()

void yaze::zelda3::draw_routines::DrawRightwardsTopCorners1x2_1to16_plus13 ( const DrawContext & ctx)

Draw top corner 1x2 tiles with +13 offset.

Pattern: Top corner 1x2 tiles with +13 offset (object 0x2F)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 202 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsBottomCorners1x2_1to16_plus13()

void yaze::zelda3::draw_routines::DrawRightwardsBottomCorners1x2_1to16_plus13 ( const DrawContext & ctx)

Draw bottom corner 1x2 tiles with +13 offset.

Pattern: Bottom corner 1x2 tiles with +13 offset (object 0x30)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 220 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards4x4_1to16()

void yaze::zelda3::draw_routines::DrawRightwards4x4_1to16 ( const DrawContext & ctx)

Draw 4x4 block rightward.

Pattern: 4x4 block rightward (object 0x33)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 238 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwards1x1Solid_1to16_plus3()

void yaze::zelda3::draw_routines::DrawRightwards1x1Solid_1to16_plus3 ( const DrawContext & ctx)

Draw 1x1 solid tiles +3 offset.

Pattern: 1x1 solid tiles +3 offset (object 0x34)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 259 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsDecor4x4spaced2_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsDecor4x4spaced2_1to16 ( const DrawContext & ctx)

Draw 4x4 decoration with spacing.

Pattern: 4x4 decoration with spacing (objects 0x36-0x37)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 275 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsStatue2x3spaced2_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsStatue2x3spaced2_1to16 ( const DrawContext & ctx)

Draw 2x3 statue with spacing.

Pattern: 2x3 statue with spacing (object 0x38) 2 columns × 3 rows = 6 tiles in COLUMN-MAJOR order

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 295 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsPillar2x4spaced4_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsPillar2x4spaced4_1to16 ( const DrawContext & ctx)

Draw 2x4 pillar with spacing.

Pattern: 2x4 pillar with spacing (objects 0x39, 0x3D) 2 columns × 4 rows = 8 tiles in COLUMN-MAJOR order

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 316 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsDecor4x3spaced4_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsDecor4x3spaced4_1to16 ( const DrawContext & ctx)

Draw 4x3 decoration with spacing.

Pattern: 4x3 decoration with spacing (objects 0x3A-0x3B) 4 columns × 3 rows = 12 tiles in COLUMN-MAJOR order

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 337 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsDoubled2x2spaced2_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsDoubled2x2spaced2_1to16 ( const DrawContext & ctx)

Draw doubled 2x2 with spacing.

Pattern: Doubled 2x2 with spacing (object 0x3C) 4 columns × 2 rows = 8 tiles in COLUMN-MAJOR order

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 358 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ DrawRightwardsDecor2x2spaced12_1to16()

void yaze::zelda3::draw_routines::DrawRightwardsDecor2x2spaced12_1to16 ( const DrawContext & ctx)

Draw 2x2 decoration with large spacing.

Pattern: 2x2 decoration with large spacing (object 0x3E)

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 379 of file rightwards_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterRightwardsRoutines().

Here is the call graph for this function:

◆ RegisterRightwardsRoutines()

void yaze::zelda3::draw_routines::RegisterRightwardsRoutines ( std::vector< DrawRoutineInfo > & registry)

Register all rightwards draw routines to the registry.

Parameters
registryVector of DrawRoutineInfo to register routines into

Definition at line 405 of file rightwards_routines.cc.

References DrawRightwards1x1Solid_1to16_plus3(), DrawRightwards1x2_1to16_plus2(), DrawRightwards2x2_1to15or32(), DrawRightwards2x2_1to16(), DrawRightwards2x4_1to15or26(), DrawRightwards2x4_1to16(), DrawRightwards2x4_1to16_BothBG(), DrawRightwards4x4_1to16(), DrawRightwardsBottomCorners1x2_1to16_plus13(), DrawRightwardsDecor2x2spaced12_1to16(), DrawRightwardsDecor4x3spaced4_1to16(), DrawRightwardsDecor4x4spaced2_1to16(), DrawRightwardsDoubled2x2spaced2_1to16(), DrawRightwardsHasEdge1x1_1to16_plus2(), DrawRightwardsHasEdge1x1_1to16_plus3(), DrawRightwardsPillar2x4spaced4_1to16(), DrawRightwardsStatue2x3spaced2_1to16(), DrawRightwardsTopCorners1x2_1to16_plus13(), yaze::zelda3::DrawRoutineInfo::id, yaze::zelda3::DrawRoutineIds::kRightwards1x1Solid_1to16_plus3, yaze::zelda3::DrawRoutineIds::kRightwards1x2_1to16_plus2, yaze::zelda3::DrawRoutineIds::kRightwards2x2_1to15or32, yaze::zelda3::DrawRoutineIds::kRightwards2x2_1to16, yaze::zelda3::DrawRoutineIds::kRightwards2x4_1to15or26, yaze::zelda3::DrawRoutineIds::kRightwards2x4_1to16, yaze::zelda3::DrawRoutineIds::kRightwards2x4_1to16_BothBG, yaze::zelda3::DrawRoutineIds::kRightwards4x4_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsBottomCorners1x2_1to16_plus13, yaze::zelda3::DrawRoutineIds::kRightwardsDecor2x2spaced12_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsDecor4x3spaced4_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsDecor4x4spaced2_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsDoubled2x2spaced2_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsHasEdge1x1_1to16_plus2, yaze::zelda3::DrawRoutineIds::kRightwardsHasEdge1x1_1to16_plus3, yaze::zelda3::DrawRoutineIds::kRightwardsPillar2x4spaced4_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsStatue2x3spaced2_1to16, yaze::zelda3::DrawRoutineIds::kRightwardsTopCorners1x2_1to16_plus13, and yaze::zelda3::DrawRoutineInfo::Rightwards.

Referenced by yaze::zelda3::DrawRoutineRegistry::BuildRegistry().

◆ DrawChest()

void yaze::zelda3::draw_routines::DrawChest ( const DrawContext & ctx,
int chest_index )

Draw chest object (big or small) with open/closed state support.

Pattern: Chest drawing (objects 0x140-0x14F big chests, 0x150-0x15F small chests) Determines chest state from DungeonState and draws appropriate graphic. Standard chests are 2x2 (4 tiles), big chests are 4x4 (16 tiles). If we have double the tiles, use the second half for open state.

Parameters
ctxDraw context containing object, tiles, state, and target buffer
chest_indexIndex of this chest in the room (0-based)

Definition at line 11 of file special_routines.cc.

References yaze::zelda3::DungeonState::IsChestOpen(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::room_id, yaze::zelda3::DrawContext::state, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawNothing()

void yaze::zelda3::draw_routines::DrawNothing ( const DrawContext & ctx)

Draw nothing - represents invisible logic objects or placeholders.

Pattern: Logic/invisible objects that have no visual representation ASM: RoomDraw_Nothing_A ($0190F2), RoomDraw_Nothing_B ($01932E), etc. These routines typically just RTS (return from subroutine).

Parameters
ctxDraw context containing object information

Definition at line 74 of file special_routines.cc.

Referenced by RegisterSpecialRoutines().

◆ CustomDraw()

void yaze::zelda3::draw_routines::CustomDraw ( const DrawContext & ctx)

Custom draw routine for special objects.

Pattern: Custom draw routine (objects 0x31-0x32) For now, falls back to simple 1x1 tile placement.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 80 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Here is the call graph for this function:

◆ DrawDoorSwitcherer()

void yaze::zelda3::draw_routines::DrawDoorSwitcherer ( const DrawContext & ctx)

Draw door switcher object with state-based graphics.

Pattern: Door switcher (object 0x35) Special door logic that checks dungeon state to decide which graphic to use. Uses active tile (2nd tile) if door switch is active, otherwise uses default.

Parameters
ctxDraw context containing object, tiles, state, and target buffer

Definition at line 90 of file special_routines.cc.

References yaze::zelda3::DungeonState::IsDoorSwitchActive(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::room_id, yaze::zelda3::DrawContext::state, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawSomariaLine()

void yaze::zelda3::draw_routines::DrawSomariaLine ( const DrawContext & ctx)

Draw Somaria line in various directions.

Pattern: Somaria Line (objects 0x203-0x20F, 0x214) Draws a line of tiles based on direction encoded in object ID. Direction mapping: 0x03: Horizontal right 0x04: Vertical down 0x05: Diagonal down-right 0x06: Diagonal down-left 0x07-0x0F: Various other patterns

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 108 of file special_routines.cc.

References yaze::zelda3::RoomObject::id_, yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawWaterFace()

void yaze::zelda3::draw_routines::DrawWaterFace ( const DrawContext & ctx)

Draw water face pattern (2x2)

Pattern: Water Face (Type 3 objects 0xF80-0xF82) Draws a 2x2 face in COLUMN-MAJOR order. TODO: Implement state check from RoomDraw_EmptyWaterFace ($019D29) Should check Room ID, Room State, Door Flags to switch graphic.

Parameters
ctxDraw context containing object, tiles, and target buffer
Todo
Implement state check from RoomDraw_EmptyWaterFace ($019D29)

Definition at line 191 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by Draw4x4Corner_BothBG(), DrawDrenchingWaterFace(), DrawEmptyWaterFace(), DrawSpittingWaterFace(), DrawWeirdCornerBottom_BothBG(), DrawWeirdCornerTop_BothBG(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawLargeCanvasObject()

void yaze::zelda3::draw_routines::DrawLargeCanvasObject ( const DrawContext & ctx,
int width,
int height )

Draw large canvas object with arbitrary dimensions.

Generic large object drawer for custom-sized objects. Draws tiles in row-major order (left-to-right, top-to-bottom).

Parameters
ctxDraw context containing object, tiles, and target buffer
widthWidth in tiles
heightHeight in tiles

Definition at line 212 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Here is the call graph for this function:

◆ Draw4x4BlocksIn4x4SuperSquare()

void yaze::zelda3::draw_routines::Draw4x4BlocksIn4x4SuperSquare ( const DrawContext & ctx)

Draw 4x4 solid blocks in a super square grid.

ASM: RoomDraw_4x4BlocksIn4x4SuperSquare ($018B94) Objects: 0xC0, 0xC2 Draws solid 4x4 blocks using a single tile, repeated in a grid pattern.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 231 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ Draw3x3FloorIn4x4SuperSquare()

void yaze::zelda3::draw_routines::Draw3x3FloorIn4x4SuperSquare ( const DrawContext & ctx)

Draw 3x3 floor pattern in super square units.

ASM: RoomDraw_3x3FloorIn4x4SuperSquare ($018D8A) Objects: 0xC3, 0xD7

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 260 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ Draw4x4FloorIn4x4SuperSquare()

void yaze::zelda3::draw_routines::Draw4x4FloorIn4x4SuperSquare ( const DrawContext & ctx)

Draw 4x4 floor pattern in super square units.

ASM: RoomDraw_4x4FloorIn4x4SuperSquare ($018FA5) Objects: 0xC5-0xCA, 0xD1-0xD2, 0xD9, 0xDF-0xE8 Most common floor pattern in dungeons.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 288 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by Draw4x4FloorOneIn4x4SuperSquare(), Draw4x4FloorTwoIn4x4SuperSquare(), and yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ Draw4x4FloorOneIn4x4SuperSquare()

void yaze::zelda3::draw_routines::Draw4x4FloorOneIn4x4SuperSquare ( const DrawContext & ctx)

Draw single 4x4 floor pattern variant.

ASM: RoomDraw_4x4FloorOneIn4x4SuperSquare ($018FA2) Object: 0xC4

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 316 of file special_routines.cc.

References Draw4x4FloorIn4x4SuperSquare(), yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ Draw4x4FloorTwoIn4x4SuperSquare()

void yaze::zelda3::draw_routines::Draw4x4FloorTwoIn4x4SuperSquare ( const DrawContext & ctx)

Draw two 4x4 floor pattern variant.

ASM: RoomDraw_4x4FloorTwoIn4x4SuperSquare ($018F9D) Object: 0xDB

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 351 of file special_routines.cc.

References Draw4x4FloorIn4x4SuperSquare(), yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawBigHole4x4_1to16()

void yaze::zelda3::draw_routines::DrawBigHole4x4_1to16 ( const DrawContext & ctx)

Draw 4x4 big hole pattern.

Object: 0xA4 Draws a 4x4 hole pattern that repeats based on size.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 384 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawSpike2x2In4x4SuperSquare()

void yaze::zelda3::draw_routines::DrawSpike2x2In4x4SuperSquare ( const DrawContext & ctx)

Draw 2x2 spike pattern in super square units.

ASM: RoomDraw_Spike2x2In4x4SuperSquare ($019708) Object: 0xDE

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 406 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawTableRock4x4_1to16()

void yaze::zelda3::draw_routines::DrawTableRock4x4_1to16 ( const DrawContext & ctx)

Draw 4x4 table rock pattern.

Object: 0xDD Draws a 4x4 rock pattern that repeats horizontally.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 432 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawWaterOverlay8x8_1to16()

void yaze::zelda3::draw_routines::DrawWaterOverlay8x8_1to16 ( const DrawContext & ctx)

Draw water overlay 8x8 pattern.

ASM: RoomDraw_WaterOverlayA8x8_1to16 ($0195D6) Objects: 0xD8, 0xDA Semi-transparent water overlay.

Parameters
ctxDraw context containing object, tiles, and target buffer

Definition at line 453 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawInterRoomFatStairsUp()

void yaze::zelda3::draw_routines::DrawInterRoomFatStairsUp ( const DrawContext & ctx)

Draw inter-room fat stairs going up (Type 2 object 0x12D)

ASM: RoomDraw_InterRoomFatStairsUp ($01A41B) Registers stair position in game state $06B0. Draws 4x4 stair pattern.

Parameters
ctxDraw context

Definition at line 492 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by DrawInterRoomFatStairsDownA(), DrawInterRoomFatStairsDownB(), yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawInterRoomFatStairsDownA()

void yaze::zelda3::draw_routines::DrawInterRoomFatStairsDownA ( const DrawContext & ctx)

Draw inter-room fat stairs going down A (Type 2 object 0x12E)

ASM: RoomDraw_InterRoomFatStairsDownA ($01A458) Registers stair position and draws 4x4 pattern.

Parameters
ctxDraw context

Definition at line 510 of file special_routines.cc.

References DrawInterRoomFatStairsUp().

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawInterRoomFatStairsDownB()

void yaze::zelda3::draw_routines::DrawInterRoomFatStairsDownB ( const DrawContext & ctx)

Draw inter-room fat stairs going down B (Type 2 object 0x12F)

ASM: RoomDraw_InterRoomFatStairsDownB ($01A486)

Parameters
ctxDraw context

Definition at line 516 of file special_routines.cc.

References DrawInterRoomFatStairsUp().

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawSpiralStairs()

void yaze::zelda3::draw_routines::DrawSpiralStairs ( const DrawContext & ctx,
bool going_up,
bool is_upper )

Draw spiral stairs (Type 2 objects 0x138-0x13B)

ASM: RoomDraw_SpiralStairs* routines Handles upper/lower variants for going up/down.

Parameters
ctxDraw context
going_upTrue if stairs go up, false if down
is_upperTrue if upper portion, false if lower

Definition at line 522 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawAutoStairs()

void yaze::zelda3::draw_routines::DrawAutoStairs ( const DrawContext & ctx)

Draw auto stairs (Type 2/3 objects 0x130-0x133, 0x21B-0x21D, 0x233)

ASM: RoomDraw_AutoStairs* routines Multi-layer or merged layer variants.

Parameters
ctxDraw context

Definition at line 541 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawStraightInterRoomStairs()

void yaze::zelda3::draw_routines::DrawStraightInterRoomStairs ( const DrawContext & ctx)

Draw straight inter-room stairs (Type 3 objects 0x21E-0x229)

ASM: RoomDraw_StraightInterroomStairs* routines North/South, Up/Down, Upper/Lower variants.

Parameters
ctxDraw context

Definition at line 555 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawPrisonCell()

void yaze::zelda3::draw_routines::DrawPrisonCell ( const DrawContext & ctx)

Draw prison cell with bars (Type 3 objects 0x20D, 0x217)

ASM: RoomDraw_PrisonCell ($019C44) Draws to BOTH BG1 and BG2 with horizontal flip for symmetry. Uses ctx.secondary_bg for dual-layer drawing when available.

Parameters
ctxDraw context with optional secondary_bg for dual-BG drawing

Definition at line 573 of file special_routines.cc.

References yaze::zelda3::DrawContext::HasSecondaryBG(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::secondary_bg, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines().

Here is the call graph for this function:

◆ DrawBigKeyLock()

void yaze::zelda3::draw_routines::DrawBigKeyLock ( const DrawContext & ctx)

Draw big key lock (Type 3 object 0x218)

ASM: RoomDraw_BigKeyLock ($0198AE) Registers lock position in $06E0. Checks room flags to determine if already opened.

Parameters
ctxDraw context

Definition at line 632 of file special_routines.cc.

References yaze::zelda3::DungeonState::IsDoorOpen(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::room_id, yaze::zelda3::DrawContext::state, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawBombableFloor()

void yaze::zelda3::draw_routines::DrawBombableFloor ( const DrawContext & ctx)

Draw bombable floor (Type 3 object 0x247)

ASM: RoomDraw_BombableFloor ($019B7A) Registers floor position for bombing interaction. Checks if already bombed via room flags.

Parameters
ctxDraw context

Definition at line 669 of file special_routines.cc.

References yaze::zelda3::DungeonState::IsFloorBombable(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::room_id, yaze::zelda3::DrawContext::state, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawMovingWall()

void yaze::zelda3::draw_routines::DrawMovingWall ( const DrawContext & ctx,
bool is_west )

Draw moving wall (Type 1 objects 0xCD, 0xCE)

ASM: RoomDraw_MovingWallWest ($019316), RoomDraw_MovingWallEast ($01935C) Checks game state to determine if wall has moved.

Parameters
ctxDraw context
is_westTrue for west wall (0xCD), false for east wall (0xCE)

Definition at line 703 of file special_routines.cc.

References yaze::zelda3::DungeonState::IsWallMoved(), yaze::zelda3::DrawContext::object, yaze::zelda3::DrawContext::room_id, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::state, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Here is the call graph for this function:

◆ DrawEmptyWaterFace()

void yaze::zelda3::draw_routines::DrawEmptyWaterFace ( const DrawContext & ctx)

Draw empty water face (Type 3 object 0x200)

ASM: RoomDraw_EmptyWaterFace ($019D29)

Parameters
ctxDraw context

Definition at line 738 of file special_routines.cc.

References DrawWaterFace().

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawSpittingWaterFace()

void yaze::zelda3::draw_routines::DrawSpittingWaterFace ( const DrawContext & ctx)

Draw spitting water face (Type 3 object 0x201)

ASM: RoomDraw_SpittingWaterFace ($019D64)

Parameters
ctxDraw context

Definition at line 744 of file special_routines.cc.

References DrawWaterFace().

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawDrenchingWaterFace()

void yaze::zelda3::draw_routines::DrawDrenchingWaterFace ( const DrawContext & ctx)

Draw drenching water face (Type 3 object 0x202)

ASM: RoomDraw_DrenchingWaterFace ($019D83)

Parameters
ctxDraw context

Definition at line 750 of file special_routines.cc.

References DrawWaterFace().

Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawClosedChestPlatform()

void yaze::zelda3::draw_routines::DrawClosedChestPlatform ( const DrawContext & ctx)

Draw closed chest platform (Type 1 object 0xC1)

ASM: RoomDraw_ClosedChestPlatform ($018CC7) Complex multi-part structure with horizontal wall, vertical walls, corners.

Parameters
ctxDraw context

Definition at line 760 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Referenced by RegisterSpecialRoutines().

Here is the call graph for this function:

◆ DrawChestPlatformHorizontalWall()

void yaze::zelda3::draw_routines::DrawChestPlatformHorizontalWall ( const DrawContext & ctx)

Draw chest platform horizontal wall section.

ASM: RoomDraw_ChestPlatformHorizontalWallWithCorners ($018D0D)

Parameters
ctxDraw context

Definition at line 796 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Here is the call graph for this function:

◆ DrawChestPlatformVerticalWall()

void yaze::zelda3::draw_routines::DrawChestPlatformVerticalWall ( const DrawContext & ctx)

Draw chest platform vertical wall section.

ASM: RoomDraw_ChestPlatformVerticalWall ($019E70)

Parameters
ctxDraw context

Definition at line 809 of file special_routines.cc.

References yaze::zelda3::DrawContext::object, yaze::zelda3::RoomObject::size_, yaze::zelda3::DrawContext::target_bg, yaze::zelda3::DrawContext::tiles, yaze::zelda3::DrawRoutineUtils::WriteTile8(), yaze::zelda3::RoomObject::x_, and yaze::zelda3::RoomObject::y_.

Here is the call graph for this function:

◆ RegisterSpecialRoutines()