summaryrefslogtreecommitdiff
path: root/src/game/effects.cpp
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2018-04-20 12:35:21 +0200
committerPaweł Redman <pawel.redman@gmail.com>2018-04-20 12:35:21 +0200
commitf4fe2c7f10a8d2e253de27f1a540ca68184d5d29 (patch)
tree4916ce9f704aa2df7a71b6186c08fea2543090fe /src/game/effects.cpp
parentfade55e67e1a6944461c16c1495dea9546243756 (diff)
Pseudo 3D firing and misc. fixes.
Diffstat (limited to 'src/game/effects.cpp')
-rw-r--r--src/game/effects.cpp24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/game/effects.cpp b/src/game/effects.cpp
index da045ef..501b296 100644
--- a/src/game/effects.cpp
+++ b/src/game/effects.cpp
@@ -182,4 +182,28 @@ void fx_explosion_t::render_to(render::state_t *render)
render->render(phase, &assets::fx.explosion, render_bounds, sf::Color::White);
}
+fx_ricochet_t::fx_ricochet_t(state_t *game_, v2f_t x_) : effect_t(game_)
+{
+ ttl = game->now + 0.3;
+
+ x = x_;
+
+ render_bounds[0] = x - v2f_t(0.12f, 0.12f);
+ render_bounds[1] = x + v2f_t(0.12f, 0.12f);
+ render_bounds = render_bounds.norm();
+ cmodel.bounds = render_bounds;
+ cmodel.cflags = 0;
+
+ ignore_waking = true;
+ wake();
+
+ assets::fx.ricochet_sound.play_3d(x);
+}
+
+void fx_ricochet_t::render_to(render::state_t *render)
+{
+ double phase = (game->now - ttl) / 0.3f;
+ render->render(phase, &assets::fx.ricochet, render_bounds, sf::Color::White);
+}
+
} // namespace game