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 > ®istry) |
| 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 > ®istry) |
| 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 > ®istry) |
| 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 > ®istry) |
| 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 > ®istry) |
| Register all special/miscellaneous draw routines to the registry. | |
| 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:
| ctx | Draw 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().

| 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:
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::RegisterCornerRoutines | ( | std::vector< DrawRoutineInfo > & | registry | ) |
Register all corner draw routines to the registry.
| registry | Vector 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::RegisterDiagonalRoutines | ( | std::vector< DrawRoutineInfo > & | registry | ) |
Register all diagonal draw routines to the registry.
| registry | Vector 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw context containing object, tiles, and target buffer |
Definition at line 81 of file downwards_routines.cc.
References DrawDownwards4x2_1to15or26().
Referenced by RegisterDownwardsRoutines().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::RegisterDownwardsRoutines | ( | std::vector< DrawRoutineInfo > & | registry | ) |
Register all downwards draw routines to the registry.
| registry | Vector of DrawRoutineInfo to register routines into |
Definition at line 229 of file downwards_routines.cc.
References DrawDownwards2x2_1to15or32(), DrawDownwards2x2_1to16(), DrawDownwards4x2_1to15or26(), DrawDownwards4x2_1to16_BothBG(), DrawDownwardsDecor4x2spaced4_1to16(), DrawDownwardsEdge1x1_1to16(), DrawDownwardsHasEdge1x1_1to16_plus3(), DrawDownwardsLeftCorners2x1_1to16_plus12(), DrawDownwardsRightCorners2x1_1to16_plus12(), and yaze::zelda3::DrawRoutineInfo::id.
Referenced by yaze::zelda3::DrawRoutineRegistry::BuildRegistry().
| 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]
| ctx | Draw 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().

| 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]
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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)
| ctx | Draw context containing object, tiles, and target buffer |
Definition at line 122 of file rightwards_routines.cc.
References DrawRightwards2x4_1to16().
Referenced by RegisterRightwardsRoutines().

| 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]
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::DrawRightwards4x4_1to16 | ( | const DrawContext & | ctx | ) |
Draw 4x4 block rightward.
Pattern: 4x4 block rightward (object 0x33)
| ctx | Draw 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().

| 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)
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::DrawRightwardsDecor4x4spaced2_1to16 | ( | const DrawContext & | ctx | ) |
Draw 4x4 decoration with spacing.
Pattern: 4x4 decoration with spacing (objects 0x36-0x37)
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::DrawRightwardsDecor2x2spaced12_1to16 | ( | const DrawContext & | ctx | ) |
Draw 2x2 decoration with large spacing.
Pattern: 2x2 decoration with large spacing (object 0x3E)
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::RegisterRightwardsRoutines | ( | std::vector< DrawRoutineInfo > & | registry | ) |
Register all rightwards draw routines to the registry.
| registry | Vector 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().
| 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.
| ctx | Draw context containing object, tiles, state, and target buffer |
| chest_index | Index 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().

| 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).
| ctx | Draw context containing object information |
Definition at line 74 of file special_routines.cc.
Referenced by RegisterSpecialRoutines().
| 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.
| ctx | Draw 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_.

| 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.
| ctx | Draw 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().

| 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
| ctx | Draw 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().

| 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.
| ctx | Draw context containing object, tiles, and target buffer |
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().

| 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).
| ctx | Draw context containing object, tiles, and target buffer |
| width | Width in tiles |
| height | Height 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_.

| 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.
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::Draw3x3FloorIn4x4SuperSquare | ( | const DrawContext & | ctx | ) |
Draw 3x3 floor pattern in super square units.
ASM: RoomDraw_3x3FloorIn4x4SuperSquare ($018D8A) Objects: 0xC3, 0xD7
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::Draw4x4FloorOneIn4x4SuperSquare | ( | const DrawContext & | ctx | ) |
Draw single 4x4 floor pattern variant.
ASM: RoomDraw_4x4FloorOneIn4x4SuperSquare ($018FA2) Object: 0xC4
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::Draw4x4FloorTwoIn4x4SuperSquare | ( | const DrawContext & | ctx | ) |
Draw two 4x4 floor pattern variant.
ASM: RoomDraw_4x4FloorTwoIn4x4SuperSquare ($018F9D) Object: 0xDB
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::DrawSpike2x2In4x4SuperSquare | ( | const DrawContext & | ctx | ) |
Draw 2x2 spike pattern in super square units.
ASM: RoomDraw_Spike2x2In4x4SuperSquare ($019708) Object: 0xDE
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw context |
Definition at line 510 of file special_routines.cc.
References DrawInterRoomFatStairsUp().
Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

| 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)
| ctx | Draw context |
Definition at line 516 of file special_routines.cc.
References DrawInterRoomFatStairsUp().
Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

| 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.
| ctx | Draw context |
| going_up | True if stairs go up, false if down |
| is_upper | True 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw 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().

| 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.
| ctx | Draw context |
| is_west | True 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_.

| void yaze::zelda3::draw_routines::DrawEmptyWaterFace | ( | const DrawContext & | ctx | ) |
Draw empty water face (Type 3 object 0x200)
ASM: RoomDraw_EmptyWaterFace ($019D29)
| ctx | Draw context |
Definition at line 738 of file special_routines.cc.
References DrawWaterFace().
Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

| void yaze::zelda3::draw_routines::DrawSpittingWaterFace | ( | const DrawContext & | ctx | ) |
Draw spitting water face (Type 3 object 0x201)
ASM: RoomDraw_SpittingWaterFace ($019D64)
| ctx | Draw context |
Definition at line 744 of file special_routines.cc.
References DrawWaterFace().
Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

| void yaze::zelda3::draw_routines::DrawDrenchingWaterFace | ( | const DrawContext & | ctx | ) |
Draw drenching water face (Type 3 object 0x202)
ASM: RoomDraw_DrenchingWaterFace ($019D83)
| ctx | Draw context |
Definition at line 750 of file special_routines.cc.
References DrawWaterFace().
Referenced by yaze::zelda3::ObjectDrawer::InitializeDrawRoutines(), and RegisterSpecialRoutines().

| 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.
| ctx | Draw 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().

| void yaze::zelda3::draw_routines::DrawChestPlatformHorizontalWall | ( | const DrawContext & | ctx | ) |
Draw chest platform horizontal wall section.
ASM: RoomDraw_ChestPlatformHorizontalWallWithCorners ($018D0D)
| ctx | Draw 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_.

| void yaze::zelda3::draw_routines::DrawChestPlatformVerticalWall | ( | const DrawContext & | ctx | ) |
Draw chest platform vertical wall section.
ASM: RoomDraw_ChestPlatformVerticalWall ($019E70)
| ctx | Draw 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_.

| void yaze::zelda3::draw_routines::RegisterSpecialRoutines | ( | std::vector< DrawRoutineInfo > & | registry | ) |
Register all special/miscellaneous draw routines to the registry.
| registry | Vector of DrawRoutineInfo to register routines into |
Definition at line 821 of file special_routines.cc.
References DrawAutoStairs(), DrawBigKeyLock(), DrawBombableFloor(), DrawChest(), DrawClosedChestPlatform(), DrawDoorSwitcherer(), DrawDrenchingWaterFace(), DrawEmptyWaterFace(), DrawInterRoomFatStairsDownA(), DrawInterRoomFatStairsDownB(), DrawInterRoomFatStairsUp(), DrawNothing(), DrawSomariaLine(), DrawSpiralStairs(), DrawSpittingWaterFace(), DrawStraightInterRoomStairs(), DrawWaterFace(), yaze::zelda3::DrawRoutineInfo::id, yaze::zelda3::DrawRoutineIds::kClosedChestPlatform, yaze::zelda3::DrawRoutineIds::kCustomObject, yaze::zelda3::DrawRoutineIds::kDownwardsHasEdge1x1_1to16_plus23, yaze::zelda3::DrawRoutineIds::kMovingWallEast, yaze::zelda3::DrawRoutineIds::kMovingWallWest, yaze::zelda3::DrawRoutineIds::kOpenChestPlatform, yaze::zelda3::DrawRoutineInfo::Special, and yaze::zelda3::DrawRoutineUtils::WriteTile8().
Referenced by yaze::zelda3::DrawRoutineRegistry::BuildRegistry().