summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-21 09:08:19 +0200
committertroido <troido@protonmail.com>2020-04-21 09:08:19 +0200
commit831a957f3cec12f389741823fbc90c40a1f827fc (patch)
tree00721afd8deba869987b323d4839c375b36dc97a /src
parent2247665fad3017c41568714cea7b0d29d6b09a98 (diff)
left out Option::flatten() for rust 1.38 compatibility
Diffstat (limited to 'src')
-rw-r--r--src/controls.rs10
-rw-r--r--src/systems/attacking.rs4
2 files changed, 12 insertions, 2 deletions
diff --git a/src/controls.rs b/src/controls.rs
index 8a10824..48d71ae 100644
--- a/src/controls.rs
+++ b/src/controls.rs
@@ -82,7 +82,15 @@ impl Control {
)),
"interact" => Some(Control::Interact(
parse_directions(val.get(1)?)?,
- val.get(2).map(|v| Some(v.as_str()?.to_string())).flatten()
+ if let Some(argument) = val.get(2) {
+ match argument {
+ Value::String(arg) => Some(arg.to_string()),
+ Value::Null => None,
+ _ => {return None}
+ }
+ } else {
+ None
+ }
)),
_ => None
}
diff --git a/src/systems/attacking.rs b/src/systems/attacking.rs
index a202878..d9dc7ea 100644
--- a/src/systems/attacking.rs
+++ b/src/systems/attacking.rs
@@ -61,7 +61,9 @@ impl <'a> System<'a> for Attacking {
let mut attackers = Vec::new();
let mut attacker_names = Vec::new();
for attack in attacked.messages.drain(..) {
- let actor_name = attack.attacker.map(|ae| visibles.get(ae)).flatten().map(|v| v.name.as_str()).unwrap_or("?").to_string();
+ let actor_name = (
+ if let Some(Some(n)) = attack.attacker.map(|ae| visibles.get(ae).map(|v| v.name.as_str())) {n} else {"?"}
+ ).to_string();
match attack.typ {
AttackType::Attack(strength) => {
let damage = rand::thread_rng().gen_range(0, strength+1);