diff options
| author | troido <troido@protonmail.com> | 2020-04-21 09:08:19 +0200 |
|---|---|---|
| committer | troido <troido@protonmail.com> | 2020-04-21 09:08:19 +0200 |
| commit | 831a957f3cec12f389741823fbc90c40a1f827fc (patch) | |
| tree | 00721afd8deba869987b323d4839c375b36dc97a /src | |
| parent | 2247665fad3017c41568714cea7b0d29d6b09a98 (diff) | |
left out Option::flatten() for rust 1.38 compatibility
Diffstat (limited to 'src')
| -rw-r--r-- | src/controls.rs | 10 | ||||
| -rw-r--r-- | src/systems/attacking.rs | 4 |
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); |
