diff options
author | Paweł Redman <pawel.redman@gmail.com> | 2018-04-25 17:52:18 +0200 |
---|---|---|
committer | Paweł Redman <pawel.redman@gmail.com> | 2018-04-25 17:52:18 +0200 |
commit | 4fa5f46575e545437ab774c97f9dc88ec304251d (patch) | |
tree | fe18d39cd490bb788f787b08dfcf00f93a1c24e5 /src/game/rocket.cpp | |
parent | 273abc7c37e9bcdb7cf8d092ed356de01b906146 (diff) |
Remake rockets into grenades.
Diffstat (limited to 'src/game/rocket.cpp')
-rw-r--r-- | src/game/rocket.cpp | 84 |
1 files changed, 0 insertions, 84 deletions
diff --git a/src/game/rocket.cpp b/src/game/rocket.cpp deleted file mode 100644 index ccdc788..0000000 --- a/src/game/rocket.cpp +++ /dev/null @@ -1,84 +0,0 @@ -/* -This file is part of Minitrem. - -Minitrem is free software: you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation, either version 2 of the License, or -(at your option) any later version. - -Minitrem is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with Minitrem. If not, see <http://www.gnu.org/licenses/>. -*/ - -#include "game.hpp" - -namespace game { - -const v2f_t rocket_radius(1.0f, 1.0f); - -rocket_t::rocket_t(game::state_t *game, v2f_t x_, v2f_t target_, unit_t *shooter_) : entity_t(game, ET_ROCKET) -{ - x = x_; - target = target_; - v = (target - x).norm() * 10.0f; - shooter = shooter_; - - size = rectf_t(v2f_t(-0.1f, -0.1f), v2f_t(0.1f, 0.1f)); - render_size = size; - cmodel.cflags = CF_BACKGROUND; - - wake(); -} - -void rocket_t::on_spawn(void) -{ - aim_marker = std::make_unique<fx_aim_marker_t>(game, target); -} - -void rocket_t::on_think(void) -{ - float Ds, ds; - v2f_t end; - world::trace_t trace; - - Ds = (target - x) * v.norm(); - ds = v.len() * game->dt; - - if (Ds > ds) { - end = x + v * game->dt; - trace = world->ray_v_all(x, end, CF_SOLID|CF_BODY|CF_BODY_SMALL, shooter); - } else { - end = target; - trace = world->ray_v_all_p3d(x, end, CF_SOLID|CF_BODY|CF_BODY_SMALL, -1, this); - } - - if (trace.hit) { - if (trace.tile && trace.tile->type == TILE_WATER) { - fx_bullet_miss_t *bullet_miss; - - bullet_miss = new fx_bullet_miss_t(game, trace.end, true); - bullet_miss->place(world); - } else { - cmodel.ignore = true; - game->explosion(trace.end); - } - - delete this; - return; - } - - x = trace.end; - place(world, x); -} - -void rocket_t::render_to(render::state_t *render) -{ - render->render(game->now, &assets::soldier.rocket, render_bounds); -} - -}
\ No newline at end of file |