From 4fa5f46575e545437ab774c97f9dc88ec304251d Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Wed, 25 Apr 2018 17:52:18 +0200 Subject: Remake rockets into grenades. --- src/game/game.cpp | 31 +++++++++---------------------- 1 file changed, 9 insertions(+), 22 deletions(-) (limited to 'src/game/game.cpp') diff --git a/src/game/game.cpp b/src/game/game.cpp index f6fa420..2ad7f05 100644 --- a/src/game/game.cpp +++ b/src/game/game.cpp @@ -180,7 +180,7 @@ void state_t::select(rectf_t rect, int type) enum { COMMAND_MOVE, COMMAND_FIRE, - COMMAND_FIRE_ROCKET, + COMMAND_THROW_GRENADE, COMMAND_STOP, COMMAND_REPL_SOLDIER, @@ -195,7 +195,7 @@ enum { bool state_t::populate_pie_menu(std::vector &items) { - bool soldiers = false, repls = false, rockets = false, + bool soldiers = false, repls = false, grenades = false, scientists = false, builders = false; items.clear(); @@ -210,8 +210,8 @@ bool state_t::populate_pie_menu(std::vector &items) switch (unit->type) { case unit_t::UNIT_SOLDIER: soldiers = true; - if (!dynamic_cast(unit)->rocket_fired) - rockets = true; + if (unit->storage.grenades) + grenades = true; break; case unit_t::UNIT_SCIENTIST: @@ -237,8 +237,8 @@ bool state_t::populate_pie_menu(std::vector &items) if (soldiers) { items.push_back((interface::pie_item_t){"Fire", COMMAND_FIRE}); - if (rockets) - items.push_back((interface::pie_item_t){"Fire a rocket", COMMAND_FIRE_ROCKET}); + if (grenades) + items.push_back((interface::pie_item_t){"Throw a grenade", COMMAND_THROW_GRENADE}); } if (scientists) @@ -283,22 +283,9 @@ static void command_soldier(unit_soldier_t *soldier, v2f_t x, int number) soldier->say("Feuer!", false); break; - case COMMAND_FIRE_ROCKET: - { - v2f_t from, v; - rocket_t *rocket; - - if (soldier->rocket_fired) { - soldier->say("Keine Raketen!"); - break; - } - - soldier->rocket_fired = true; - - from = soldier->x + v2f_t(0, -0.5); - rocket = new rocket_t(soldier->game, from, x, soldier); - rocket->place(&soldier->game->world, from); - } + case COMMAND_THROW_GRENADE: + soldier->command_throw_grenade(x); + break; } } -- cgit