Browse Source

Fixed not free tiles in front of required objects.

DjWarmonger 11 years ago
parent
commit
8471d32334
1 changed files with 6 additions and 1 deletions
  1. 6 1
      lib/rmg/CRmgTemplateZone.cpp

+ 6 - 1
lib/rmg/CRmgTemplateZone.cpp

@@ -1434,13 +1434,18 @@ bool CRmgTemplateZone::guardObject(CMapGenerator* gen, CGObjectInstance* object,
 			if (!gen->isFree(pos))
 				gen->setOccupied(pos, ETileType::BLOCKED);
 		}
+		gen->foreach_neighbour (guardTile, [&](int3& pos) 
+		{
+			if (gen->isPossible(pos))
+				gen->setOccupied (pos, ETileType::FREE);
+		});
 
 		gen->setOccupied (guardTile, ETileType::USED);
 	}
 	else //allow no guard or other object in front of this object
 	{
 		for (auto tile : tiles)
-			if (gen->isPossible(pos))
+			if (gen->isPossible(tile))
 				gen->setOccupied (tile, ETileType::FREE);
 	}