From 41fcb9f3915db02c9255dc62f03d6b4a55e5b6d3 Mon Sep 17 00:00:00 2001 From: Stijn Buys Date: Sat, 9 Nov 2013 00:29:58 +0000 Subject: Nudge ships on launch and cargopods on creation to prevent them from spawning inside other objects. --- src/game/base/ship.cc | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/game/base') diff --git a/src/game/base/ship.cc b/src/game/base/ship.cc index 05edf9c..08838ad 100644 --- a/src/game/base/ship.cc +++ b/src/game/base/ship.cc @@ -381,7 +381,9 @@ void Ship::eject(core::Item *item, const long eject_amount, const bool eject_mes owner()->sound("game/eject"); } - // reset cargopod physics + // reset cargopod physics + pod->nudge(); + pod->reset(); assert(pod->body()); @@ -528,10 +530,13 @@ void Ship::launch() get_axis().assign(ship_dock->axis()); - if (ship_dock->type() == core::Entity::Globe) + if (ship_dock->type() == core::Entity::Globe) { get_location().assign(ship_dock->location() + (ship_dock->axis().forward() * (PLANET_SAFE_DISTANCE + this->radius() + ship_dock->radius()))); - else + } else { get_location().assign(ship_dock->location() + (ship_dock->axis().forward() * (this->radius() + ship_dock->radius()))); + } + + nudge(); ship_dock = 0; -- cgit v1.2.3