summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/rocket.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/game/rocket.cpp b/src/game/rocket.cpp
index a03b169..5310922 100644
--- a/src/game/rocket.cpp
+++ b/src/game/rocket.cpp
@@ -54,12 +54,19 @@ void rocket_t::on_think(void)
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, nullptr);
- trace.hit = true;
+ trace = world->ray_v_all_p3d(x, end, CF_SOLID|CF_BODY|CF_BODY_SMALL, -1, this);
}
if (trace.hit) {
- game->explosion(trace.end);
+ 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 {
+ game->explosion(trace.end);
+ }
+
delete this;
return;
}