diff --git a/rust/maprando/src/spoiler_log.rs b/rust/maprando/src/spoiler_log.rs index 73d3f7faa..2171023c7 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,25 @@ pub fn get_spoiler_log( randomizer.settings, save_animals != SaveAnimals::No, &randomizer.difficulty_tiers[0], - )?; + ) + .unwrap_or_else(|_| { + warn!("Failed to compute escape data"); + let difficulty = &randomizer.difficulty_tiers[0]; + SpoilerEscape { + 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: 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(), + } + }); let spoiler_objectives: Vec = randomizer .objectives