Main menu and saving

This commit is contained in:
Michael Smith 2021-11-13 15:49:48 +01:00
parent e1b5e25e85
commit 25651d5c82

View File

@ -376,6 +376,19 @@ fn handle_keys(tcod: &mut Tcod, game: &mut Game, objects: &mut Vec<Object>) -> P
DidntTakeTurn
}
(Key { code: Text, .. }, "d", true) => {
// Show the inventory; if an item is selected, drop it
let inventory_index = inventory_menu(
&game.inventory,
"Press the key next to an item to drop it, or any other to cancel.\n",
&mut tcod.root,
);
if let Some(inventory_index) = inventory_index {
drop_item(inventory_index, game, objects);
}
DidntTakeTurn
}
_ => DidntTakeTurn,
}
}
@ -1058,6 +1071,15 @@ fn target_monster(
}
}
fn drop_item(inventory_id: usize, game: &mut Game, objects: &mut Vec<Object>) {
let mut item = game.inventory.remove(inventory_id);
item.set_pos(objects[PLAYER].x, objects[PLAYER].y);
game
.messages
.add(format!("You dropped a {}.", item.name), YELLOW);
objects.push(item);
}
fn render_all(tcod: &mut Tcod, game: &mut Game, objects: &[Object], fov_recompute: bool) {
if fov_recompute {
let player = &objects[PLAYER];