浏览代码

Correct position of blocked tiles.

DjWarmonger 11 年之前
父节点
当前提交
8d58ce08aa
共有 1 个文件被更改,包括 4 次插入3 次删除
  1. 4 3
      lib/rmg/CRmgTemplateZone.cpp

+ 4 - 3
lib/rmg/CRmgTemplateZone.cpp

@@ -690,7 +690,7 @@ bool CRmgTemplateZone::createTreasurePile (CMapGenerator* gen, int3 &pos)
 		else
 		{
 			//update treasure pile area
-			int3 visitablePos = oi.templ.getVisitableOffset() + info.nextTreasurePos;
+			int3 visitablePos = info.nextTreasurePos;
 
 			//TODO: actually we need to check is object is either !blockVisit or removable after visit - this means object below can be accessed
 			if (oi.templ.isVisitableFromTop())
@@ -700,8 +700,9 @@ bool CRmgTemplateZone::createTreasurePile (CMapGenerator* gen, int3 &pos)
 
 			for (auto blockedOffset : oi.templ.getBlockedOffsets())
 			{
-				info.occupiedPositions.insert(info.nextTreasurePos + blockedOffset);
-				info.blockedPositions.insert(info.nextTreasurePos + blockedOffset);
+				int3 blockPos = info.nextTreasurePos + blockedOffset + oi.templ.getVisitableOffset(); //object will be moved to align vistable pos to treasure pos
+				info.occupiedPositions.insert(blockPos);
+				info.blockedPositions.insert(blockPos);
 			}
 			info.occupiedPositions.insert(visitablePos);
 		}