1
0
mirror of https://github.com/vcmi/vcmi.git synced 2025-09-16 09:26:28 +02:00

Show generic dialog if building was already visited

This commit is contained in:
Ivan Savenko
2024-09-16 19:51:10 +00:00
parent bff2e064fc
commit 8b2821456a
3 changed files with 11 additions and 1 deletions

View File

@@ -54,6 +54,7 @@
#include "../../lib/entities/building/CBuilding.h"
#include "../../lib/mapObjects/CGHeroInstance.h"
#include "../../lib/mapObjects/CGTownInstance.h"
#include "../../lib/mapObjects/TownBuildingInstance.h"
static bool useCompactCreatureBox()
@@ -855,6 +856,9 @@ void CCastleBuildings::enterRewardable(BuildingID building)
}
else
{
if (town->rewardableBuildings.at(building)->wasVisited(town->visitingHero))
enterBuilding(building);
else
LOCPLINT->cb->visitTownBuilding(town, building);
}
}

View File

@@ -165,6 +165,11 @@ void TownRewardableBuildingInstance::grantReward(ui32 rewardID, const CGHeroInst
}
}
bool TownRewardableBuildingInstance::wasVisited(const CGHeroInstance * contextHero) const
{
return wasVisitedBefore(contextHero);
}
bool TownRewardableBuildingInstance::wasVisitedBefore(const CGHeroInstance * contextHero) const
{
switch (configuration.visitMode)

View File

@@ -70,6 +70,7 @@ class DLL_LINKAGE TownRewardableBuildingInstance : public TownBuildingInstance,
public:
void setProperty(ObjProperty what, ObjPropertyID identifier) override;
void onHeroVisit(const CGHeroInstance * h) const override;
bool wasVisited(const CGHeroInstance * contextHero) const override;
void newTurn(vstd::RNG & rand) const override;