From d6de9f4fc9ac22d555f81c4733124270d8459979 Mon Sep 17 00:00:00 2001 From: jeboo Date: Fri, 12 Dec 2025 16:38:13 -0500 Subject: [PATCH 1/3] clear map area for omitted rooms (small maps) --- rust/maprando/src/patch.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs index 58c80a75a..be80f9a13 100644 --- a/rust/maprando/src/patch.rs +++ b/rust/maprando/src/patch.rs @@ -1172,7 +1172,17 @@ impl Patcher<'_> { } fn write_map_areas(&mut self) -> Result<()> { + // Init map area to 0xFF in case room is omitted (small maps). + for extra in self.extra_room_data.values_mut() { + extra.map_area = 0xFF; + } + for (i, room) in self.game_data.room_geometry.iter().enumerate() { + let room_idx = self.game_data.room_idx_by_ptr[&room_ptr]; + if !self.map.room_mask[room_idx] { + continue; + } + self.extra_room_data .get_mut(&room.rom_address) .unwrap() From 80abbd12904cd49feb22b3704fbf268f4dc262d0 Mon Sep 17 00:00:00 2001 From: jeboo Date: Fri, 12 Dec 2025 17:15:13 -0500 Subject: [PATCH 2/3] fix compiler error --- rust/maprando/src/patch.rs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs index be80f9a13..402b9e288 100644 --- a/rust/maprando/src/patch.rs +++ b/rust/maprando/src/patch.rs @@ -1178,8 +1178,7 @@ impl Patcher<'_> { } for (i, room) in self.game_data.room_geometry.iter().enumerate() { - let room_idx = self.game_data.room_idx_by_ptr[&room_ptr]; - if !self.map.room_mask[room_idx] { + if !self.map.room_mask[i] { continue; } From ec9cc779d92ce29c457c46378b4ae3648281f8b0 Mon Sep 17 00:00:00 2001 From: jeboo Date: Fri, 12 Dec 2025 17:37:08 -0500 Subject: [PATCH 3/3] fix indentation --- rust/maprando/src/patch.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rust/maprando/src/patch.rs b/rust/maprando/src/patch.rs index 402b9e288..69f414e28 100644 --- a/rust/maprando/src/patch.rs +++ b/rust/maprando/src/patch.rs @@ -1174,14 +1174,14 @@ impl Patcher<'_> { fn write_map_areas(&mut self) -> Result<()> { // Init map area to 0xFF in case room is omitted (small maps). for extra in self.extra_room_data.values_mut() { - extra.map_area = 0xFF; + extra.map_area = 0xFF; } for (i, room) in self.game_data.room_geometry.iter().enumerate() { if !self.map.room_mask[i] { continue; } - + self.extra_room_data .get_mut(&room.rom_address) .unwrap()