summaryrefslogtreecommitdiff
path: root/src/systems/take.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/take.rs')
-rw-r--r--src/systems/take.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/systems/take.rs b/src/systems/take.rs
index bf0f8e8..31634d2 100644
--- a/src/systems/take.rs
+++ b/src/systems/take.rs
@@ -44,17 +44,20 @@ impl <'a> System<'a> for Take {
ents.remove(&ent);
for ent in ents {
if let Some(item) = items.get(ent) {
- inventory.items.push(item.clone());
+ inventory.items.insert(0, item.clone());
if let Err(msg) = removed.insert(ent, Removed) {
println!("{:?}", msg);
}
+ break;
}
}
}
- Control::Drop(_rank) => {
- if let Some(item) = inventory.items.pop() {
- let _ = new.create(position.pos, item.ent);
+ Control::Drop(rank) => {
+ if *rank >= inventory.items.len() {
+ return
}
+ let item = inventory.items.remove(*rank);
+ let _ = new.create(position.pos, item.ent);
}
_ => {}
}