diff --git a/src/main.rs b/src/main.rs index 8c4e882..1631a67 100644 --- a/src/main.rs +++ b/src/main.rs @@ -44,7 +44,7 @@ extern crate lazy_static; //Consts pub const SHOW_MAPGEN: bool = false; pub const LOG_SPAWNING: bool = true; -pub const LOG_TICKS: bool = true; +pub const LOG_TICKS: bool = false; #[derive(PartialEq, Copy, Clone)] pub enum RunState { diff --git a/src/map/tiletype.rs b/src/map/tiletype.rs index 8d9c47c..d34c13e 100644 --- a/src/map/tiletype.rs +++ b/src/map/tiletype.rs @@ -51,9 +51,9 @@ pub fn tile_opaque(tt: TileType) -> bool { pub fn tile_cost(tt: TileType) -> f32 { match tt { - TileType::Road => 0.8, + TileType::Road => 0.5, TileType::Grass => 1.1, - TileType::ShallowWater => 1.2, + TileType::ShallowWater => 1.3, _ => 1.0, } } diff --git a/src/player.rs b/src/player.rs index 70b1a77..1c95998 100644 --- a/src/player.rs +++ b/src/player.rs @@ -288,7 +288,7 @@ pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) -> RunState let mut doors = ecs.write_storage::(); let names = ecs.read_storage::(); let mut swap_entities: Vec<(Entity, i32, i32)> = Vec::new(); - let mut result = RunState::AwaitingInput; + let mut result: Option; for (entity, _player, pos, viewshed) in (&entities, &mut players, &mut positions, &mut viewsheds).join() { if pos.x + delta_x < 0 @@ -296,7 +296,7 @@ pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) -> RunState || pos.y + delta_y < 0 || pos.y + delta_y > map.height - 1 { - return result; + return RunState::AwaitingInput; } let destination_idx = map.xy_idx(pos.x + delta_x, pos.y + delta_y); @@ -335,14 +335,14 @@ pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) -> RunState if let Some(name) = names.get(potential_target) { gamelog::Logger::new().append("The").item_name(&name.name).append("is in your way.").log(); } - return None; + return Some(RunState::AwaitingInput); } } return None; }); - if result == RunState::Ticking { - return result; + if result.is_some() { + return result.unwrap(); } if swap_entities.len() <= 0 { @@ -406,7 +406,7 @@ pub fn try_move_player(delta_x: i32, delta_y: i32, ecs: &mut World) -> RunState return RunState::Ticking; } } - return result; + return RunState::AwaitingInput; } fn get_item(ecs: &mut World) -> RunState { diff --git a/src/spatial/mod.rs b/src/spatial/mod.rs index 385d65e..daf3d0b 100644 --- a/src/spatial/mod.rs +++ b/src/spatial/mod.rs @@ -103,17 +103,17 @@ where /// Calls a function on every entity within a given tile idx, with the /// added ability to return a RunState mid-calc. -pub fn for_each_tile_content_with_runstate(idx: usize, mut f: F) -> RunState +pub fn for_each_tile_content_with_runstate(idx: usize, mut f: F) -> Option where F: FnMut(Entity) -> Option, { let lock = SPATIAL_MAP.lock().unwrap(); for entity in lock.tile_content[idx].iter() { if let Some(rs) = f(entity.0) { - return rs; + return Some(rs); } } - return RunState::AwaitingInput; + return None; } /// Calls a function on every entity within a given tile idx, breaking if