From 41fcb9f3915db02c9255dc62f03d6b4a55e5b6d3 Mon Sep 17 00:00:00 2001
From: Stijn Buys <ingar@osirion.org>
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')

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