瀏覽代碼

Fixed not free tiles in front of required objects.

DjWarmonger 11 年之前
父節點
當前提交
8471d32334
共有 1 個文件被更改,包括 6 次插入1 次删除
  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);
 	}