Pārlūkot izejas kodu

Workaround for hota witch hut preview

Ivan Savenko 1 gadu atpakaļ
vecāks
revīzija
0ac1ef077d
1 mainītis faili ar 19 papildinājumiem un 0 dzēšanām
  1. 19 0
      lib/mapObjects/CRewardableObject.cpp

+ 19 - 0
lib/mapObjects/CRewardableObject.cpp

@@ -181,7 +181,26 @@ void CRewardableObject::heroLevelUpDone(const CGHeroInstance *hero) const
 void CRewardableObject::blockingDialogAnswered(const CGHeroInstance *hero, ui32 answer) const
 void CRewardableObject::blockingDialogAnswered(const CGHeroInstance *hero, ui32 answer) const
 {
 {
 	if(answer == 0)
 	if(answer == 0)
+	{
+		switch (configuration.visitMode)
+		{
+			case Rewardable::VISIT_UNLIMITED:
+			case Rewardable::VISIT_BONUS:
+			case Rewardable::VISIT_HERO:
+			case Rewardable::VISIT_LIMITER:
+			{
+				// workaround for object with refusable reward not getting marked as visited
+				// TODO: better solution that would also work for player-visitable objects
+				if (!wasScouted(hero->getOwner()))
+				{
+					ChangeObjectVisitors cov(ChangeObjectVisitors::VISITOR_ADD_TEAM, id, hero->id);
+					cb->sendAndApply(&cov);
+				}
+			}
+		}
+
 		return; // player refused
 		return; // player refused
+	}
 
 
 	if(answer > 0 && answer-1 < configuration.info.size())
 	if(answer > 0 && answer-1 < configuration.info.size())
 	{
 	{