yaze 0.3.2
Link to the Past ROM Editor
 
Loading...
Searching...
No Matches
special_routines.h
Go to the documentation of this file.
1#ifndef YAZE_ZELDA3_DUNGEON_DRAW_ROUTINES_SPECIAL_ROUTINES_H
2#define YAZE_ZELDA3_DUNGEON_DRAW_ROUTINES_SPECIAL_ROUTINES_H
3
5
6namespace yaze {
7namespace zelda3 {
8namespace draw_routines {
9
21void DrawChest(const DrawContext& ctx, int chest_index);
22
32void DrawNothing(const DrawContext& ctx);
33
42void CustomDraw(const DrawContext& ctx);
43
53void DrawDoorSwitcherer(const DrawContext& ctx);
54
69void DrawSomariaLine(const DrawContext& ctx);
70
81void DrawWaterFace(const DrawContext& ctx);
82
93void DrawLargeCanvasObject(const DrawContext& ctx, int width, int height);
94
95// ============================================================================
96// SuperSquare Routines (Phase 4)
97// ============================================================================
98
108void Draw4x4BlocksIn4x4SuperSquare(const DrawContext& ctx);
109
118void Draw3x3FloorIn4x4SuperSquare(const DrawContext& ctx);
119
129void Draw4x4FloorIn4x4SuperSquare(const DrawContext& ctx);
130
139void Draw4x4FloorOneIn4x4SuperSquare(const DrawContext& ctx);
140
149void Draw4x4FloorTwoIn4x4SuperSquare(const DrawContext& ctx);
150
159void DrawBigHole4x4_1to16(const DrawContext& ctx);
160
169void DrawSpike2x2In4x4SuperSquare(const DrawContext& ctx);
170
179void DrawTableRock4x4_1to16(const DrawContext& ctx);
180
190void DrawWaterOverlay8x8_1to16(const DrawContext& ctx);
191
192// ============================================================================
193// Stair Routines (matching assembly)
194// ============================================================================
195
205void DrawInterRoomFatStairsUp(const DrawContext& ctx);
206
215void DrawInterRoomFatStairsDownA(const DrawContext& ctx);
216
224void DrawInterRoomFatStairsDownB(const DrawContext& ctx);
225
236void DrawSpiralStairs(const DrawContext& ctx, bool going_up, bool is_upper);
237
246void DrawAutoStairs(const DrawContext& ctx);
247
256void DrawStraightInterRoomStairs(const DrawContext& ctx);
257
258// ============================================================================
259// Interactive Object Routines
260// ============================================================================
261
271void DrawPrisonCell(const DrawContext& ctx);
272
282void DrawBigKeyLock(const DrawContext& ctx);
283
293void DrawBombableFloor(const DrawContext& ctx);
294
304void DrawMovingWall(const DrawContext& ctx, bool is_west);
305
306// ============================================================================
307// Water Face Variants (based on room state)
308// ============================================================================
309
317void DrawEmptyWaterFace(const DrawContext& ctx);
318
326void DrawSpittingWaterFace(const DrawContext& ctx);
327
335void DrawDrenchingWaterFace(const DrawContext& ctx);
336
337// ============================================================================
338// Chest Platform Multi-Part Routines
339// ============================================================================
340
349void DrawClosedChestPlatform(const DrawContext& ctx);
350
358void DrawChestPlatformHorizontalWall(const DrawContext& ctx);
359
367void DrawChestPlatformVerticalWall(const DrawContext& ctx);
368
374void RegisterSpecialRoutines(std::vector<DrawRoutineInfo>& registry);
375
376} // namespace draw_routines
377} // namespace zelda3
378} // namespace yaze
379
380#endif // YAZE_ZELDA3_DUNGEON_DRAW_ROUTINES_SPECIAL_ROUTINES_H
void DrawTableRock4x4_1to16(const DrawContext &ctx)
Draw 4x4 table rock pattern.
void DrawInterRoomFatStairsDownA(const DrawContext &ctx)
Draw inter-room fat stairs going down A (Type 2 object 0x12E)
void DrawAutoStairs(const DrawContext &ctx)
Draw auto stairs (Type 2/3 objects 0x130-0x133, 0x21B-0x21D, 0x233)
void DrawSpittingWaterFace(const DrawContext &ctx)
Draw spitting water face (Type 3 object 0x201)
void DrawLargeCanvasObject(const DrawContext &ctx, int width, int height)
Draw large canvas object with arbitrary dimensions.
void DrawChest(const DrawContext &ctx, int chest_index)
Draw chest object (big or small) with open/closed state support.
void DrawDoorSwitcherer(const DrawContext &ctx)
Draw door switcher object with state-based graphics.
void Draw4x4BlocksIn4x4SuperSquare(const DrawContext &ctx)
Draw 4x4 solid blocks in a super square grid.
void DrawBigHole4x4_1to16(const DrawContext &ctx)
Draw 4x4 big hole pattern.
void Draw4x4FloorTwoIn4x4SuperSquare(const DrawContext &ctx)
Draw two 4x4 floor pattern variant.
void DrawWaterFace(const DrawContext &ctx)
Draw water face pattern (2x2)
void DrawChestPlatformVerticalWall(const DrawContext &ctx)
Draw chest platform vertical wall section.
void DrawClosedChestPlatform(const DrawContext &ctx)
Draw closed chest platform (Type 1 object 0xC1)
void DrawSpike2x2In4x4SuperSquare(const DrawContext &ctx)
Draw 2x2 spike pattern in super square units.
void DrawSpiralStairs(const DrawContext &ctx, bool going_up, bool is_upper)
Draw spiral stairs (Type 2 objects 0x138-0x13B)
void DrawSomariaLine(const DrawContext &ctx)
Draw Somaria line in various directions.
void DrawBombableFloor(const DrawContext &ctx)
Draw bombable floor (Type 3 object 0x247)
void DrawDrenchingWaterFace(const DrawContext &ctx)
Draw drenching water face (Type 3 object 0x202)
void DrawEmptyWaterFace(const DrawContext &ctx)
Draw empty water face (Type 3 object 0x200)
void CustomDraw(const DrawContext &ctx)
Custom draw routine for special objects.
void Draw4x4FloorIn4x4SuperSquare(const DrawContext &ctx)
Draw 4x4 floor pattern in super square units.
void DrawInterRoomFatStairsUp(const DrawContext &ctx)
Draw inter-room fat stairs going up (Type 2 object 0x12D)
void Draw3x3FloorIn4x4SuperSquare(const DrawContext &ctx)
Draw 3x3 floor pattern in super square units.
void DrawStraightInterRoomStairs(const DrawContext &ctx)
Draw straight inter-room stairs (Type 3 objects 0x21E-0x229)
void RegisterSpecialRoutines(std::vector< DrawRoutineInfo > &registry)
Register all special/miscellaneous draw routines to the registry.
void DrawInterRoomFatStairsDownB(const DrawContext &ctx)
Draw inter-room fat stairs going down B (Type 2 object 0x12F)
void DrawMovingWall(const DrawContext &ctx, bool is_west)
Draw moving wall (Type 1 objects 0xCD, 0xCE)
void DrawChestPlatformHorizontalWall(const DrawContext &ctx)
Draw chest platform horizontal wall section.
void DrawWaterOverlay8x8_1to16(const DrawContext &ctx)
Draw water overlay 8x8 pattern.
void Draw4x4FloorOneIn4x4SuperSquare(const DrawContext &ctx)
Draw single 4x4 floor pattern variant.
void DrawNothing(const DrawContext &ctx)
Draw nothing - represents invisible logic objects or placeholders.
void DrawBigKeyLock(const DrawContext &ctx)
Draw big key lock (Type 3 object 0x218)
void DrawPrisonCell(const DrawContext &ctx)
Draw prison cell with bars (Type 3 objects 0x20D, 0x217)