浏览代码

#1579 - check z coord as well

Andrii Danylchenko 2 年之前
父节点
当前提交
47b253e837
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      lib/CGameState.cpp

+ 6 - 0
lib/CGameState.cpp

@@ -1865,6 +1865,9 @@ void CGameState::placeHeroesInTowns()
 		{
 			for(CGTownInstance *t : k->second.towns)
 			{
+				if(h->visitablePos().z != t->visitablePos().z)
+					continue;
+
 				bool heroOnTownBlockableTile = t->blockingAt(h->visitablePos().x, h->visitablePos().y);
 
 				// current hero position is at one of blocking tiles of current town
@@ -1896,6 +1899,9 @@ void CGameState::initVisitingAndGarrisonedHeroes()
 		{
 			for(CGTownInstance *t : k->second.towns)
 			{
+				if(h->visitablePos().z != t->visitablePos().z)
+					continue;
+
 				if (t->visitableAt(h->visitablePos().x, h->visitablePos().y))
 				{
 					assert(t->visitingHero == nullptr);