From f4fe2c7f10a8d2e253de27f1a540ca68184d5d29 Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Fri, 20 Apr 2018 12:35:21 +0200 Subject: Pseudo 3D firing and misc. fixes. --- src/game/effects.cpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/game/effects.cpp') 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 -- cgit