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
80void DrawWaterFace(const DrawContext& ctx);
81
92void DrawLargeCanvasObject(const DrawContext& ctx, int width, int height);
93
94// ============================================================================
95// SuperSquare Routines (Phase 4)
96// ============================================================================
97
107void Draw4x4BlocksIn4x4SuperSquare(const DrawContext& ctx);
108
117void Draw3x3FloorIn4x4SuperSquare(const DrawContext& ctx);
118
128void Draw4x4FloorIn4x4SuperSquare(const DrawContext& ctx);
129
138void Draw4x4FloorOneIn4x4SuperSquare(const DrawContext& ctx);
139
148void Draw4x4FloorTwoIn4x4SuperSquare(const DrawContext& ctx);
149
158void DrawBigHole4x4_1to16(const DrawContext& ctx);
159
168void DrawSpike2x2In4x4SuperSquare(const DrawContext& ctx);
169
178void DrawTableRock4x4_1to16(const DrawContext& ctx);
179
189void DrawWaterOverlay8x8_1to16(const DrawContext& ctx);
190
191// ============================================================================
192// Stair Routines (matching assembly)
193// ============================================================================
194
204void DrawInterRoomFatStairsUp(const DrawContext& ctx);
205
214void DrawInterRoomFatStairsDownA(const DrawContext& ctx);
215
223void DrawInterRoomFatStairsDownB(const DrawContext& ctx);
224
235void DrawSpiralStairs(const DrawContext& ctx, bool going_up, bool is_upper);
236
245void DrawAutoStairs(const DrawContext& ctx);
246
255void DrawStraightInterRoomStairs(const DrawContext& ctx);
256
257// ============================================================================
258// Interactive Object Routines
259// ============================================================================
260
270void DrawPrisonCell(const DrawContext& ctx);
271
281void DrawBigKeyLock(const DrawContext& ctx);
282
292void DrawBombableFloor(const DrawContext& ctx);
293
303void DrawMovingWall(const DrawContext& ctx, bool is_west);
304
305// ============================================================================
306// Water Face Variants (based on room state)
307// ============================================================================
308
316void DrawEmptyWaterFace(const DrawContext& ctx);
317
325void DrawSpittingWaterFace(const DrawContext& ctx);
326
334void DrawDrenchingWaterFace(const DrawContext& ctx);
335
336// ============================================================================
337// Chest Platform Multi-Part Routines
338// ============================================================================
339
348void DrawClosedChestPlatform(const DrawContext& ctx);
349
357void DrawChestPlatformHorizontalWall(const DrawContext& ctx);
358
366void DrawChestPlatformVerticalWall(const DrawContext& ctx);
367
373void RegisterSpecialRoutines(std::vector<DrawRoutineInfo>& registry);
374
375} // namespace draw_routines
376} // namespace zelda3
377} // namespace yaze
378
379#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 a generic 2x2 water-face helper pattern.
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)