From 64e763a84005c141b8c7215819b856b8f37745db Mon Sep 17 00:00:00 2001 From: Nolan Darilek Date: Sun, 16 May 2021 15:27:52 -0500 Subject: [PATCH] Make describing undescribed areas configurable. --- src/map.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/src/map.rs b/src/map.rs index 57d80fb..2768897 100644 --- a/src/map.rs +++ b/src/map.rs @@ -84,6 +84,7 @@ impl ITileType for TileType { #[derive(Clone, Debug)] pub struct MapConfig { pub autospawn_exits: bool, + pub describe_undescribed_areas: bool, pub speak_area_descriptions: bool, pub start_revealed: bool, } @@ -92,6 +93,7 @@ impl Default for MapConfig { fn default() -> Self { Self { autospawn_exits: true, + describe_undescribed_areas: false, speak_area_descriptions: true, start_revealed: false, } @@ -263,6 +265,7 @@ fn exit_spawner( } fn area_description( + config: Res, mut prev_area: Local>, query: Query<(&Player, &Coordinates), Changed>, map: Query<(&Map, &Areas)>, @@ -288,12 +291,20 @@ fn area_description( if should_describe_area { if let Some(ref area) = current_area { let description = if area.description.is_some() { - area.description.as_ref().unwrap().clone() + area.description.clone() + } else if config.describe_undescribed_areas { + Some(format!( + "{} by {} area.", + area.rect.width(), + area.rect.height() + )) } else { - format!("{} by {} area.", area.rect.width(), area.rect.height()) + None }; - for mut log in log.iter_mut() { - log.push(description.clone()); + if let Some(description) = description { + for mut log in log.iter_mut() { + log.push(description.clone()); + } } } }