Ver Fonte

Fix shipyard border calculation for RMG

Tomasz Zieliński há 2 anos atrás
pai
commit
1dc96d6844
1 ficheiros alterados com 3 adições e 1 exclusões
  1. 3 1
      lib/rmg/WaterProxy.cpp

+ 3 - 1
lib/rmg/WaterProxy.cpp

@@ -298,7 +298,9 @@ bool WaterProxy::placeShipyard(Zone & land, const Lake & lake, si32 guard, Route
 		//try to place shipyard close to boarding position and appropriate water access
 		auto path = manager->placeAndConnectObject(land.areaPossible(), rmgObject, [&rmgObject, &shipPositions, &boardingPosition](const int3 & tile)
 		{
-			rmg::Area shipyardOut(rmgObject.getArea().getBorderOutside());
+			//Must only check the border of shipyard and not the added guard
+			rmg::Area shipyardOut = rmgObject.instances().front()->getBlockedArea().getBorderOutside();
+
 			if(!shipyardOut.contains(boardingPosition) || (shipyardOut * shipPositions).empty())
 				return -1.f;