From 79bfcf830664953e9b7f350142c5b06228411acf Mon Sep 17 00:00:00 2001 From: scawful Date: Sun, 28 Dec 2025 10:58:32 -0600 Subject: [PATCH] imgui-frontend-engineer: harden C API room loader --- src/yaze.cc | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/yaze.cc b/src/yaze.cc index 92340b94..46b13925 100644 --- a/src/yaze.cc +++ b/src/yaze.cc @@ -233,14 +233,22 @@ zelda3_overworld* yaze_load_overworld(const zelda3_rom* rom) { return overworld; } -zelda3_dungeon_room* yaze_load_all_rooms(const zelda3_rom* rom, int* room_count) { - if (rom->impl == nullptr) { +zelda3_dungeon_room* yaze_load_all_rooms(const zelda3_rom* rom, + int* room_count) { + if (room_count != nullptr) { + *room_count = 0; + } + if (rom == nullptr || rom->impl == nullptr) { return nullptr; } - yaze::Rom* internal_rom = static_cast(rom->impl); - zelda3_dungeon_room* rooms = new zelda3_dungeon_room[256]; + + constexpr int kRoomCount = 256; + auto* rooms = new zelda3_dungeon_room[kRoomCount](); + for (int i = 0; i < kRoomCount; ++i) { + rooms[i].id = static_cast(i); + } if (room_count != nullptr) { - *room_count = 256; + *room_count = kRoomCount; } return rooms; }