From a7715bfd2c8bc6d46e645860f39629be50d6b3c4 Mon Sep 17 00:00:00 2001 From: Loptr Date: Sat, 20 Dec 2025 03:58:45 +0100 Subject: [PATCH 1/4] Default escape if escape time calculation fails --- rust/maprando/src/spoiler_log.rs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/rust/maprando/src/spoiler_log.rs b/rust/maprando/src/spoiler_log.rs index 73d3f7faa..5b7842be7 100644 --- a/rust/maprando/src/spoiler_log.rs +++ b/rust/maprando/src/spoiler_log.rs @@ -1,5 +1,6 @@ use anyhow::Result; use hashbrown::HashMap; +use log::warn; use maprando_game::{ BeamType, Capacity, DoorType, FlagId, Item, LinkIdx, LinkLength, NodeId, Requirement, RoomId, StepTrailId, TraversalId, VertexId, VertexKey, @@ -1264,7 +1265,19 @@ pub fn get_spoiler_log( randomizer.settings, save_animals != SaveAnimals::No, &randomizer.difficulty_tiers[0], - )?; + ).unwrap_or_else(|_| { + warn!("Failed to compute escape data"); + SpoilerEscape { + base_igt_frames: 0, + base_igt_seconds: 0.0, + base_leniency_factor: 1.0, + difficulty_multiplier: 1.0, + raw_time_seconds: 0.0, + final_time_seconds: 0.0, + animals_route: None, + ship_route: Vec::new() + } + }); let spoiler_objectives: Vec = randomizer .objectives From 16d03bb3c17bab732295823b57f80ea547275f7b Mon Sep 17 00:00:00 2001 From: Loptr Date: Sat, 20 Dec 2025 04:08:44 +0100 Subject: [PATCH 2/4] Set default escape to max timer instead of zero --- rust/maprando/src/spoiler_log.rs | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/rust/maprando/src/spoiler_log.rs b/rust/maprando/src/spoiler_log.rs index 5b7842be7..a6f5add4c 100644 --- a/rust/maprando/src/spoiler_log.rs +++ b/rust/maprando/src/spoiler_log.rs @@ -1267,13 +1267,14 @@ pub fn get_spoiler_log( &randomizer.difficulty_tiers[0], ).unwrap_or_else(|_| { warn!("Failed to compute escape data"); + let difficulty = &randomizer.difficulty_tiers[0]; SpoilerEscape { - base_igt_frames: 0, - base_igt_seconds: 0.0, + base_igt_frames: (60.0 * 5995.0 / difficulty.escape_timer_multiplier) as usize, + base_igt_seconds: 5995.0 / difficulty.escape_timer_multiplier, base_leniency_factor: 1.0, - difficulty_multiplier: 1.0, - raw_time_seconds: 0.0, - final_time_seconds: 0.0, + difficulty_multiplier: difficulty.escape_timer_multiplier, + raw_time_seconds: 5995.0, + final_time_seconds: 5995.0, animals_route: None, ship_route: Vec::new() } From f47499c527927da5910f4b0b76f11a6e0411b0fd Mon Sep 17 00:00:00 2001 From: Loptr Date: Sat, 20 Dec 2025 04:13:12 +0100 Subject: [PATCH 3/4] Add empty animals_route if Save the Animals is turned on --- rust/maprando/src/spoiler_log.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rust/maprando/src/spoiler_log.rs b/rust/maprando/src/spoiler_log.rs index a6f5add4c..b4ba5c585 100644 --- a/rust/maprando/src/spoiler_log.rs +++ b/rust/maprando/src/spoiler_log.rs @@ -1275,7 +1275,7 @@ pub fn get_spoiler_log( difficulty_multiplier: difficulty.escape_timer_multiplier, raw_time_seconds: 5995.0, final_time_seconds: 5995.0, - animals_route: None, + animals_route: if save_animals != SaveAnimals::No { Some(Vec::new()) } else { None }, ship_route: Vec::new() } }); From c8cdcd1465c23b029372194fab7a644c29e64e9e Mon Sep 17 00:00:00 2001 From: Loptr Date: Sat, 20 Dec 2025 04:16:59 +0100 Subject: [PATCH 4/4] Fix formatting --- rust/maprando/src/spoiler_log.rs | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rust/maprando/src/spoiler_log.rs b/rust/maprando/src/spoiler_log.rs index b4ba5c585..2171023c7 100644 --- a/rust/maprando/src/spoiler_log.rs +++ b/rust/maprando/src/spoiler_log.rs @@ -1265,7 +1265,8 @@ pub fn get_spoiler_log( randomizer.settings, save_animals != SaveAnimals::No, &randomizer.difficulty_tiers[0], - ).unwrap_or_else(|_| { + ) + .unwrap_or_else(|_| { warn!("Failed to compute escape data"); let difficulty = &randomizer.difficulty_tiers[0]; SpoilerEscape { @@ -1275,8 +1276,12 @@ pub fn get_spoiler_log( difficulty_multiplier: difficulty.escape_timer_multiplier, raw_time_seconds: 5995.0, final_time_seconds: 5995.0, - animals_route: if save_animals != SaveAnimals::No { Some(Vec::new()) } else { None }, - ship_route: Vec::new() + animals_route: if save_animals != SaveAnimals::No { + Some(Vec::new()) + } else { + None + }, + ship_route: Vec::new(), } });