1#ifndef YAZE_APP_ZELDA3_DUNGEON_ROOM_H
2#define YAZE_APP_ZELDA3_DUNGEON_ROOM_H
181 "Hyrule Castle (North Corridor)",
182 "Behind Sanctuary (Switch)",
184 "Turtle Rock (Crysta-Roller)",
186 "Swamp Palace (Arrghus[Boss])",
187 "Tower of Hera (Moldorm[Boss])",
188 "Cave (Healing Fairy)",
189 "Palace of Darkness",
190 "Palace of Darkness (Stalfos Trap)",
191 "Palace of Darkness (Turtle)",
192 "Ganon's Tower (Entrance)",
193 "Ganon's Tower (Agahnim2[Boss])",
194 "Ice Palace (Entrance )",
196 "Ganon Evacuation Route",
197 "Hyrule Castle (Bombable Stock )",
199 "Turtle Rock (Hokku-Bokku Key 2)",
200 "Turtle Rock (Big Key )",
202 "Swamp Palace (Swimming Treadmill)",
203 "Tower of Hera (Moldorm Fall )",
205 "Palace of Darkness (Dark Maze)",
206 "Palace of Darkness (Big Chest )",
207 "Palace of Darkness (Mimics / Moving Wall )",
208 "Ganon's Tower (Ice Armos)",
209 "Ganon's Tower (Final Hallway)",
210 "Ice Palace (Bomb Floor / Bari )",
211 "Ice Palace (Pengator / Big Key )",
212 "Agahnim's Tower (Agahnim[Boss])",
213 "Hyrule Castle (Key-rat )",
214 "Hyrule Castle (Sewer Text Trigger )",
215 "Turtle Rock (West Exit to Balcony)",
216 "Turtle Rock (Double Hokku-Bokku / Big chest )",
218 "Swamp Palace (Statue )",
219 "Tower of Hera (Big Chest)",
220 "Swamp Palace (Entrance )",
221 "Skull Woods (Mothula[Boss])",
222 "Palace of Darkness (Big Hub )",
223 "Palace of Darkness (Map Chest / Fairy )",
226 "Ice Palace (Compass )",
227 "Cave (Kakariko Well HP)",
228 "Agahnim's Tower (Maiden Sacrifice Chamber)",
229 "Tower of Hera (Hardhat Beetles )",
230 "Hyrule Castle (Sewer Key Chest )",
231 "Desert Palace (Lanmolas[Boss])",
232 "Swamp Palace (Push Block Puzzle / Pre-Big Key )",
233 "Swamp Palace (Big Key / BS )",
234 "Swamp Palace (Big Chest )",
235 "Swamp Palace (Map Chest / Water Fill )",
236 "Swamp Palace (Key Pot )",
237 "Skull Woods (Gibdo Key / Mothula Hole )",
238 "Palace of Darkness (Bombable Floor )",
239 "Palace of Darkness (Spike Block / Conveyor )",
241 "Ganon's Tower (Torch 2)",
242 "Ice Palace (Stalfos Knights / Conveyor Hellway)",
243 "Ice Palace (Map Chest )",
244 "Agahnim's Tower (Final Bridge )",
245 "Hyrule Castle (First Dark )",
246 "Hyrule Castle (6 Ropes )",
247 "Desert Palace (Torch Puzzle / Moving Wall )",
248 "Thieves Town (Big Chest )",
249 "Thieves Town (Jail Cells )",
250 "Swamp Palace (Compass Chest )",
253 "Skull Woods (Gibdo Torch Puzzle )",
254 "Palace of Darkness (Entrance )",
255 "Palace of Darkness (Warps / South Mimics )",
256 "Ganon's Tower (Mini-Helmasaur Conveyor )",
257 "Ganon's Tower (Moldorm )",
258 "Ice Palace (Bomb-Jump )",
259 "Ice Palace Clone (Fairy )",
260 "Hyrule Castle (West Corridor)",
261 "Hyrule Castle (Throne )",
262 "Hyrule Castle (East Corridor)",
263 "Desert Palace (Popos 2 / Beamos Hellway )",
264 "Swamp Palace (Upstairs Pits )",
265 "Castle Secret Entrance / Uncle Death ",
266 "Skull Woods (Key Pot / Trap )",
267 "Skull Woods (Big Key )",
268 "Skull Woods (Big Chest )",
269 "Skull Woods (Final Section Entrance )",
270 "Palace of Darkness (Helmasaur King[Boss])",
271 "Ganon's Tower (Spike Pit )",
272 "Ganon's Tower (Ganon-Ball Z)",
273 "Ganon's Tower (Gauntlet 1/2/3)",
274 "Ice Palace (Lonely Firebar)",
275 "Ice Palace (Hidden Chest / Spike Floor )",
276 "Hyrule Castle (West Entrance )",
277 "Hyrule Castle (Main Entrance )",
278 "Hyrule Castle (East Entrance )",
279 "Desert Palace (Final Section Entrance )",
280 "Thieves Town (West Attic )",
281 "Thieves Town (East Attic )",
282 "Swamp Palace (Hidden Chest / Hidden Door )",
283 "Skull Woods (Compass Chest )",
284 "Skull Woods (Key Chest / Trap )",
286 "Palace of Darkness (Rupee )",
287 "Ganon's Tower (Mimics s)",
288 "Ganon's Tower (Lanmolas )",
289 "Ganon's Tower (Gauntlet 4/5)",
290 "Ice Palace (Pengators )",
292 "Hyrule Castle (Small Corridor to Jail Cells)",
293 "Hyrule Castle (Boomerang Chest )",
294 "Hyrule Castle (Map Chest )",
295 "Desert Palace (Big Chest )",
296 "Desert Palace (Map Chest )",
297 "Desert Palace (Big Key Chest )",
298 "Swamp Palace (Water Drain )",
299 "Tower of Hera (Entrance )",
304 "Ganon's Tower (East Side Collapsing Bridge / Exploding Wall )",
305 "Ganon's Tower (Winder / Warp Maze )",
306 "Ice Palace (Hidden Chest / Bombable Floor )",
307 "Ice Palace ( Big Spike Traps )",
308 "Hyrule Castle (Jail Cell )",
310 "Hyrule Castle (Basement Chasm )",
311 "Desert Palace (West Entrance )",
312 "Desert Palace (Main Entrance )",
313 "Desert Palace (East Entrance )",
315 "Tower of Hera (Tile )",
317 "Eastern Palace (Fairy )",
319 "Ganon's Tower (Block Puzzle / Spike Skip / Map Chest )",
320 "Ganon's Tower (East and West Downstairs / Big Chest )",
321 "Ganon's Tower (Tile / Torch Puzzle )",
324 "Misery Mire (Vitreous[Boss])",
325 "Misery Mire (Final Switch )",
326 "Misery Mire (Dark Bomb Wall / Switches )",
327 "Misery Mire (Dark Cane Floor Switch Puzzle )",
329 "Ganon's Tower (Final Collapsing Bridge )",
330 "Ganon's Tower (Torches 1 )",
331 "Misery Mire (Torch Puzzle / Moving Wall )",
332 "Misery Mire (Entrance )",
333 "Eastern Palace (Eyegore Key )",
335 "Ganon's Tower (Many Spikes / Warp Maze )",
336 "Ganon's Tower (Invisible Floor Maze )",
337 "Ganon's Tower (Compass Chest / Invisible Floor )",
338 "Ice Palace (Big Chest )",
340 "Misery Mire (Pre-Vitreous )",
341 "Misery Mire (Fish )",
342 "Misery Mire (Bridge Key Chest )",
344 "Turtle Rock (Trinexx[Boss])",
345 "Ganon's Tower (Wizzrobes s)",
346 "Ganon's Tower (Moldorm Fall )",
347 "Tower of Hera (Fairy )",
348 "Eastern Palace (Stalfos Spawn )",
349 "Eastern Palace (Big Chest )",
350 "Eastern Palace (Map Chest )",
351 "Thieves Town (Moving Spikes / Key Pot )",
352 "Thieves Town (Blind The Thief[Boss])",
355 "Ice Palace (Ice Bridge )",
356 "Agahnim's Tower (Circle of Pots)",
357 "Misery Mire (Hourglass )",
358 "Misery Mire (Slug )",
359 "Misery Mire (Spike Key Chest )",
360 "Turtle Rock (Pre-Trinexx )",
361 "Turtle Rock (Dark Maze)",
362 "Turtle Rock (Chain Chomps )",
363 "Turtle Rock (Map Chest / Key Chest / Roller )",
364 "Eastern Palace (Big Key )",
365 "Eastern Palace (Lobby Cannonballs )",
366 "Eastern Palace (Dark Antifairy / Key Pot )",
367 "Thieves Town (Hellway)",
368 "Thieves Town (Conveyor Toilet)",
370 "Ice Palace (Block Puzzle )",
371 "Ice Palace Clone (Switch )",
372 "Agahnim's Tower (Dark Bridge )",
373 "Misery Mire (Compass Chest / Tile )",
374 "Misery Mire (Big Hub )",
375 "Misery Mire (Big Chest )",
376 "Turtle Rock (Final Crystal Switch Puzzle )",
377 "Turtle Rock (Laser Bridge)",
379 "Turtle Rock (Torch Puzzle)",
380 "Eastern Palace (Armos Knights[Boss])",
381 "Eastern Palace (Entrance )",
383 "Thieves Town (North West Entrance )",
384 "Thieves Town (North East Entrance )",
386 "Ice Palace (Hole to Kholdstare )",
388 "Agahnim's Tower (Dark Maze)",
389 "Misery Mire (Conveyor Slug / Big Key )",
390 "Misery Mire (Mire02 / Wizzrobes )",
393 "Turtle Rock (Laser Key )",
394 "Turtle Rock (Entrance )",
396 "Eastern Palace (Zeldagamer / Pre-Armos Knights )",
397 "Eastern Palace (Canonball ",
399 "Thieves Town (Main (South West) Entrance )",
400 "Thieves Town (South East Entrance )",
402 "Ice Palace (Kholdstare[Boss])",
404 "Agahnim's Tower (Entrance )",
405 "Cave (Lost Woods HP)",
406 "Cave (Lumberjack's Tree HP)",
408 "Cave (Lost Old Man Final Cave)",
409 "Cave (Lost Old Man Final Cave)",
414 "Cave (Spectacle Rock HP)",
418 "Cave (Spiral Cave)",
419 "Cave (Crystal Switch / 5 Chests )",
420 "Cave (Lost Old Man Starting Cave)",
421 "Cave (Lost Old Man Starting Cave)",
423 "House (Old Woman (Sahasrahla's Wife?))",
424 "House (Angry Brothers)",
425 "House (Angry Brothers)",
464 "Circle of bush Cave",
465 "Big Bomb Shop, C-House",
480 "Link's House Intro",
481 "Link's House Post-intro",
483 "Hyrule Castle West",
484 "Hyrule Castle Central",
485 "Hyrule Castle East",
486 "Death Mountain Express (Lower)",
487 "Death Mountain Express (Upper)",
489 "Desert Palace Central",
490 "Desert Palace East",
491 "Desert Palace West",
492 "Desert Palace Boss Lair",
493 "Kakariko Elder's House West",
494 "Kakariko Elder's House East",
495 "Kakariko Angry Bros West",
496 "Kakariko Angry Bros East",
498 "Under Lumberjacks' Weird Tree",
499 "Death Mountain Maze 0000",
500 "Death Mountain Maze 0001",
501 "Turtle Rock Mountainface 1",
502 "Death Mountain Cape Heart Piece Cave (Lower)",
503 "Death Mountain Cape Heart Piece Cave (Upper)",
504 "Turtle Rock Mountainface 2",
505 "Turtle Rock Mountainface 3",
506 "Death Mountain Maze 0002",
507 "Death Mountain Maze 0003",
508 "Death Mountain Maze 0004",
509 "Death Mountain Maze 0005",
510 "Death Mountain Maze 0006",
511 "Death Mountain Maze 0007",
512 "Death Mountain Maze 0008",
513 "Spectacle Rock Maze 1",
514 "Spectacle Rock Maze 2",
515 "Spectacle Rock Maze 3",
516 "Hyrule Castle Tower",
518 "Palace of Darkness",
522 "Skull Woods Big Chest",
523 "Skull Woods Boss Lair",
524 "Lost Woods Thieves' Lair",
526 "Death Mountain Escape West",
527 "Death Mountain Escape East",
528 "Death Mountain Elder's Cave (Lower)",
529 "Death Mountain Elder's Cave (Upper)",
530 "Hyrule Castle Secret Cellar",
534 "Ganon's Pyramid Sanctum (Lower)",
537 "Kakariko Western Well",
538 "Death Mountain Maze 0009",
539 "Death Mountain Maze 0010",
540 "Treasure Shell Game 1",
541 "Storyteller Cave 1",
546 "Kakariko Pub South",
547 "Kakariko Pub North",
549 "Sahasrahlah's Disco Infernum",
550 "Kakariko's Lame Shop",
551 "Village of Outcasts Chest Game",
552 "Village of Outcasts Orphanage",
554 "Kakariko Storage Shed",
555 "Kakariko Sweeper Lady's House",
557 "Aginah's Desert Cottage",
559 "Death Mountain Maze 0011",
564 "Village of Outcasts Retirement Center",
570 "Storyteller Cave 2",
571 "Hall of the Invisibility Cape",
575 "Swamp of Evil Heart Piece Hall",
577 "Blind's Old Hideout",
578 "Storyteller Cave 3",
579 "Warped Pond of Wishing",
583 "Chest Shell Game 2",
584 "Storyteller Cave 4",
585 "Storyteller Cave 5",
586 "Storyteller Cave 6",
590 "Heart Piece Cave 1",
594 "Heart Piece Cave 2",
595 "Hyrule Castle Prison",
596 "Hyrule Castle Throne Room",
597 "Hyrule Tower Agahnim's Sanctum",
598 "Skull Woods 3 (Drop In)",
599 "Skull Woods 4 (Drop In)",
600 "Skull Woods 5 (Drop In)",
601 "Skull Woods 6 (Drop In)",
602 "Lost Woods Thieves' Hideout (Drop In)",
603 "Ganon's Pyramid Sanctum (Upper)",
604 "Fairy Cave 6 (Drop In)",
605 "Hyrule Castle Secret Cellar (Drop In)",
606 "Mad Batter Lair (Drop In)",
607 "Under Lumberjacks' Weird Tree (Drop In)",
608 "Kakariko Western Well (Drop In)",
609 "Hyrule Sewers Goodies Room (Drop In)",
610 "Chris Houlihan Room (Drop In)",
611 "Heart Piece Cave 3 (Drop In)",
A class to hold a shared pointer to a Rom object.
Represents a bitmap image.
std::array< gfx::Bitmap, 3 > background_bmps_
uint8_t background_tileset_
std::vector< uint8_t > bg1_buffer_
int64_t room_size_pointer_
std::vector< uint8_t > bg2_buffer_
RoomObject AddObject(short oid, uint8_t x, uint8_t y, uint8_t size, uint8_t layer)
void LoadRoomGraphics(uchar entrance_blockset=0xFF)
auto room_size_ptr() const
std::vector< RoomObject > tile_objects_
auto set_room_size(uint64_t size)
std::array< uchar, 16 > chest_list_
std::array< uint8_t, 16 > blocks_
uint8_t staircase_rooms_[4]
z3_dungeon_destination stair2_
z3_dungeon_background2 bg2_
std::vector< z3_staircase > z3_staircases_
z3_dungeon_destination stair1_
void LoadAnimatedGraphics()
std::vector< z3_chest_data > chests_in_room_
std::vector< uint8_t > current_gfx16_
gfx::Bitmap current_graphics_
z3_dungeon_destination stair4_
z3_dungeon_destination stair3_
void CopyRoomGraphicsToBuffer()
std::vector< zelda3::Sprite > sprites_
z3_dungeon_destination pits_
uint8_t staircase_plane_[4]
constexpr int pit_pointer
constexpr int door_pos_up
constexpr int kRoomHeaderPointerBank
constexpr int rooms_sprite_pointer
constexpr int blocks_length
constexpr int sprites_data_empty_room
constexpr int door_gfx_cavexit_down
constexpr int door_gfx_right
constexpr int blocks_pointer4
constexpr int chests_length_pointer
constexpr int door_gfx_down
constexpr int chests_data_pointer1
constexpr int doorPointers
constexpr int dungeons_main_bg_palette_pointers
constexpr int torches_length_pointer
constexpr int door_gfx_left
constexpr ushort stairsObjects[]
constexpr int door_pos_left
constexpr int room_items_pointers
constexpr int door_gfx_up
constexpr int dungeons_palettes
constexpr int NumberOfRooms
constexpr int kRoomHeaderPointer
constexpr std::string_view kEntranceNames[]
constexpr int blocks_pointer2
constexpr int blocks_pointer3
constexpr int blocks_pointer1
constexpr int room_object_pointer
constexpr int sprite_blockset_pointer
constexpr std::string_view kRoomNames[]
constexpr int messages_id_dungeon
constexpr int door_pos_down
constexpr int gfx_groups_pointer
constexpr int sprites_end_data
constexpr int door_pos_right
constexpr int room_object_layout_pointer
constexpr int sprites_data
constexpr int dungeon_spr_ptrs