From 13faa2f8d95796857171f3cec075b0f5a240517e Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Thu, 29 Jan 2026 22:29:40 +0900 Subject: [PATCH 1/4] add an extra check that if bowling is required phantoon must exist. --- rust/maprando/src/randomize.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/rust/maprando/src/randomize.rs b/rust/maprando/src/randomize.rs index 6c5c012e3..c3bc63aac 100644 --- a/rust/maprando/src/randomize.rs +++ b/rust/maprando/src/randomize.rs @@ -3313,6 +3313,16 @@ pub fn get_objectives( if !map.room_mask[room_idx] { continue 'obj; } + + if obj_option.objective == Objective::BowlingStatue { + let phantoon_room_id = 158; + let room_ptr = game_data.room_ptr_by_id[&phantoon_room_id]; + let room_idx = game_data.room_idx_by_ptr[&room_ptr]; + + if !map.room_mask[room_idx] { + continue 'obj; + } + } } } From 1cdcff81e8d06619992e318366ae4ce29edd9693 Mon Sep 17 00:00:00 2001 From: nn <53490794+nn357@users.noreply.github.com> Date: Thu, 29 Jan 2026 22:39:27 +0900 Subject: [PATCH 2/4] Update randomize.rs --- rust/maprando/src/randomize.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/rust/maprando/src/randomize.rs b/rust/maprando/src/randomize.rs index c3bc63aac..a2aee6b4d 100644 --- a/rust/maprando/src/randomize.rs +++ b/rust/maprando/src/randomize.rs @@ -3314,16 +3314,16 @@ pub fn get_objectives( continue 'obj; } - if obj_option.objective == Objective::BowlingStatue { - let phantoon_room_id = 158; - let room_ptr = game_data.room_ptr_by_id[&phantoon_room_id]; - let room_idx = game_data.room_idx_by_ptr[&room_ptr]; + if obj_option.objective == Objective::BowlingStatue { + let phantoon_room_id = 158; + let room_ptr = game_data.room_ptr_by_id[&phantoon_room_id]; + let room_idx = game_data.room_idx_by_ptr[&room_ptr]; - if !map.room_mask[room_idx] { - continue 'obj; + if !map.room_mask[room_idx] { + continue 'obj; + } } } - } } match obj_option.setting { From b54b94a549f51db051be0729145580bfe8797018 Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Thu, 29 Jan 2026 06:54:22 -0700 Subject: [PATCH 3/4] simplify a bit --- rust/maprando/src/randomize.rs | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/rust/maprando/src/randomize.rs b/rust/maprando/src/randomize.rs index a2aee6b4d..595b74771 100644 --- a/rust/maprando/src/randomize.rs +++ b/rust/maprando/src/randomize.rs @@ -3305,24 +3305,18 @@ pub fn get_objectives( 'obj: for obj_option in &obj_settings.objective_options { // Skip objective option if it does not exist on the map. - let obj_tiles = get_objective_tiles(&[obj_option.objective]); + let mut obj_tiles = get_objective_tiles(&[obj_option.objective]); if let Some(map) = map { + if obj_option.objective == Objective::BowlingStatue { + obj_tiles.push((158, 0, 0)); // Phantoon's Room + } + for (room_id, _, _) in obj_tiles { let room_ptr = game_data.room_ptr_by_id[&room_id]; let room_idx = game_data.room_idx_by_ptr[&room_ptr]; if !map.room_mask[room_idx] { continue 'obj; } - - if obj_option.objective == Objective::BowlingStatue { - let phantoon_room_id = 158; - let room_ptr = game_data.room_ptr_by_id[&phantoon_room_id]; - let room_idx = game_data.room_idx_by_ptr[&room_ptr]; - - if !map.room_mask[room_idx] { - continue 'obj; - } - } } } From ae5e6c98489a87abd2df5ce5aa781714dffb63fe Mon Sep 17 00:00:00 2001 From: Brent Kerby Date: Thu, 29 Jan 2026 07:04:37 -0700 Subject: [PATCH 4/4] fix rust formatting --- rust/maprando/src/randomize.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/maprando/src/randomize.rs b/rust/maprando/src/randomize.rs index 595b74771..1b1cedf25 100644 --- a/rust/maprando/src/randomize.rs +++ b/rust/maprando/src/randomize.rs @@ -3308,7 +3308,7 @@ pub fn get_objectives( let mut obj_tiles = get_objective_tiles(&[obj_option.objective]); if let Some(map) = map { if obj_option.objective == Objective::BowlingStatue { - obj_tiles.push((158, 0, 0)); // Phantoon's Room + obj_tiles.push((158, 0, 0)); // Phantoon's Room } for (room_id, _, _) in obj_tiles {