Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
Diffstat (limited to 'src/game')
-rw-r--r--src/game/base/ship.cc11
1 files changed, 8 insertions, 3 deletions
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;