Преглед на файлове

CPlayerInterface::buildChanged: fix update of advInt townlist

Fix issue when town icon on adventure interface is not updated from village after vcmiarmenelos cheat used.
This didn't occur during normal gameplay since usually castleInt is active when you build something.
Arseniy Shestakov преди 9 години
родител
ревизия
f020fa06fd
променени са 1 файла, в които са добавени 16 реда и са изтрити 13 реда
  1. 16 13
      client/CPlayerInterface.cpp

+ 16 - 13
client/CPlayerInterface.cpp

@@ -612,22 +612,25 @@ void CPlayerInterface::buildChanged(const CGTownInstance *town, BuildingID build
 		break;
 	}
 
-	if(!castleInt)
-		return;
-	if(castleInt->town!=town)
-		return;
-	switch(what)
+	if(castleInt)
 	{
-	case 1:
-		CCS->soundh->playSound(soundBase::newBuilding);
-		castleInt->addBuilding(buildingID);
-		break;
-	case 2:
-		castleInt->removeBuilding(buildingID);
-		break;
+		castleInt->townlist->update(town);
+
+		if(castleInt->town == town)
+		{
+			switch(what)
+			{
+			case 1:
+				CCS->soundh->playSound(soundBase::newBuilding);
+				castleInt->addBuilding(buildingID);
+				break;
+			case 2:
+				castleInt->removeBuilding(buildingID);
+				break;
+			}
+		}
 	}
 	adventureInt->townList.update(town);
-	castleInt->townlist->update(town);
 }
 
 void CPlayerInterface::battleStartBefore(const CCreatureSet *army1, const CCreatureSet *army2, int3 tile, const CGHeroInstance *hero1, const CGHeroInstance *hero2)