1#ifndef YAZE_ZELDA3_DUNGEON_DOOR_TYPES_H
2#define YAZE_ZELDA3_DUNGEON_DOOR_TYPES_H
114 return "Normal Door";
116 return "Normal Door (Lower)";
118 return "Exit (Lower)";
120 return "Unused Cave Exit";
123 return "Waterfall Door";
125 return "Fancy Dungeon Exit";
127 return "Fancy Exit (Lower)";
131 return "Lit Cave Exit (Lower)";
134 return "Exit Marker";
136 return "Dungeon Swap Marker";
138 return "Layer Swap Marker";
141 return "Double-Sided Shutter";
143 return "Eye Watch Door";
145 return "Small Key Door";
147 return "Big Key Door";
149 return "Small Key Stairs (Up)";
151 return "Small Key Stairs (Down)";
153 return "Key Stairs Up (Lower)";
155 return "Key Stairs Down (Lower)";
160 return "Bombable Cave Exit";
162 return "Unopenable Big Key Door";
164 return "Bombable Door";
166 return "Exploding Wall";
169 return "Curtain Door";
171 return "Unusable Bottom Shutter";
173 return "Bottom-Sided Shutter";
175 return "Top-Sided Shutter";
177 return "Unusable Door 0x3A";
179 return "Unusable Door 0x3C";
181 return "Unusable Door 0x3E";
183 return "Normal Door (One-Sided)";
186 return "Unused Double Shutter";
188 return "Double Shutter (Lower)";
190 return "Explicit Room Door";
192 return "Bottom Shutter (Lower)";
194 return "Top Shutter (Lower)";
197 return "Unknown/Glitchy Door";
281 return {-3, -4, 10, 8};
346 return static_cast<DoorType>(raw_type);
constexpr DoorDirection DoorDirectionFromRaw(uint8_t raw_dir)
Convert raw direction byte to DoorDirection enum.
constexpr DoorDimensions GetDoorDimensions(DoorDirection dir)
Get door dimensions based on direction.
DoorType
Door types from ALTTP.
@ NormalDoorOneSidedShutter
Normal door (lower layer; with one-sided shutters)
@ TopShutterLower
Top-sided shutter door (lower layer)
@ FancyDungeonExitLower
Fancy dungeon exit (lower layer)
@ UnusableGlitchyStairs64
Unusable glitchy/stairs up (lower layer)
@ FancyDungeonExit
Fancy dungeon exit.
@ SmallKeyDoor
Small key door.
@ ExitLower
Exit (lower layer)
@ SmallKeyStairsDown
Small key stairs (downwards)
@ UnusableNormalDoor4C
Unusable normal door (lower layer)
@ BombableCaveExit
Bombable cave exit.
@ UnusableBombedDoor
Unusable bombed-open door (lower layer)
@ SmallKeyStairsUp
Small key stairs (upwards)
@ UnusedCaveExit
Unused cave exit (lower layer)
@ DungeonSwapMarker
Dungeon swap marker.
@ NormalDoor
Normal door (upper layer)
@ BombableDoor
Bombable door.
@ LayerSwapMarker
Layer swap marker.
@ UnusableNormalDoor3A
Unusable normal door (lower layer)
@ ExplicitRoomDoor
Explicit room door.
@ UnusableNormalDoor58
Unusable normal door (lower layer)
@ BottomShutterLower
Bottom-sided shutter door (lower layer)
@ ExplodingWall
Exploding wall.
@ TopSidedShutter
Top-sided shutter door.
@ UnusableGlitchyStairsDown66
Unusable glitchy/stairs down (lower layer)
@ UnusableGlitchyStairs5C
Unusable glitchy/stairs up (lower layer)
@ LitCaveExitLower
Lit cave exit (lower layer)
@ DoubleSidedShutterLower
Double-sided shutter (lower layer)
@ UnusableBottomShutter
Unusable bottom-sided shutter door.
@ UnusableNormalDoor4E
Unusable normal door (lower layer)
@ UnusableGlitchyStairs5E
Unusable glitchy/stairs up (lower layer)
@ UnopenableBigKeyDoor
Unopenable, double-sided big key door.
@ NormalDoorLower
Normal door (lower layer)
@ BottomSidedShutter
Bottom-sided shutter door.
@ UnusedDoubleSidedShutter
Unused double-sided shutter.
@ UnusableGlitchyDoor54
Unusable glitchy door (lower layer)
@ UnusableGlitchyStairs60
Unusable glitchy/stairs up (lower layer)
@ SmallKeyStairsDownLower
Small key stairs (lower layer; downwards)
@ CurtainDoor
Curtain door.
@ WaterfallDoor
Waterfall door.
@ BigKeyDoor
Big key door.
@ EyeWatchDoor
Eye watch door.
@ UnusableGlitchyStairsDown62
Unusable glitchy/stairs down (lower layer)
@ SmallKeyStairsUpLower
Small key stairs (lower layer; upwards)
@ UnusableGlitchyStairs5A
Unusable glitchy/stairs up (lower layer)
@ UnusableNormalDoor3E
Unusable normal door (lower layer)
@ UnusableGlitchyDoor56
Unusable glitchy door (lower layer)
@ DoubleSidedShutter
Double sided shutter door.
@ UnusableNormalDoor3C
Unusable normal door (lower layer)
@ UnusableNormalDoor50
Unusable normal door (lower layer)
constexpr std::array< DoorType, 32 > GetPlaceableDoorTypes()
Get supported door types suitable for editor placement controls.
constexpr bool IsRoomConnectionDoorType(DoorType type)
Return true when a door can represent an adjacent-room connection.
constexpr DoorFootprint GetEditorDoorFootprint(DoorDirection dir, DoorType type)
Get the visible editor footprint for a door.
constexpr std::string_view GetDoorDirectionName(DoorDirection dir)
Get human-readable name for door direction.
constexpr bool IsExitDoorType(DoorType type)
Return true for terminal exits that do not pair with another room.
constexpr DoorType DoorTypeFromRaw(uint8_t raw_type)
Convert raw type byte to DoorType enum.
constexpr std::string_view GetDoorTypeName(DoorType type)
Get human-readable name for door type.
constexpr std::array< DoorType, 32 > GetAllDoorTypes()
DoorDirection
Door direction on room walls.
@ South
Bottom wall (horizontal door, 4x3 tiles)
@ North
Top wall (horizontal door, 4x3 tiles)
@ East
Right wall (vertical door, 3x4 tiles)
@ West
Left wall (vertical door, 3x4 tiles)
constexpr DoorDimensions GetEditorDoorDimensions(DoorDirection dir, DoorType type)
Get visible editor dimensions for compatibility with UI callers.
Door dimensions in tiles (8x8 pixel tiles)
int height_pixels() const
int width_tiles
Width in 8x8 tiles.
int height_tiles
Height in 8x8 tiles.