summaryrefslogtreecommitdiff
path: root/src/game/game.cpp
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2018-04-25 17:52:18 +0200
committerPaweł Redman <pawel.redman@gmail.com>2018-04-25 17:52:18 +0200
commit4fa5f46575e545437ab774c97f9dc88ec304251d (patch)
treefe18d39cd490bb788f787b08dfcf00f93a1c24e5 /src/game/game.cpp
parent273abc7c37e9bcdb7cf8d092ed356de01b906146 (diff)
Remake rockets into grenades.
Diffstat (limited to 'src/game/game.cpp')
-rw-r--r--src/game/game.cpp31
1 files changed, 9 insertions, 22 deletions
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<interface::pie_item_t> &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<interface::pie_item_t> &items)
switch (unit->type) {
case unit_t::UNIT_SOLDIER:
soldiers = true;
- if (!dynamic_cast<unit_soldier_t*>(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<interface::pie_item_t> &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;
}
}