Added Query to track visit duration for Taverns and Markets
This commit is contained in:
1 parent
e322d0a084
commit
898733eed7
27 files changed
+230
-113
No files matched your search
@@ -157,6 +157,39 @@ CBlockingDialogQuery::CBlockingDialogQuery(CGameHandler * owner, const BlockingD
|
||||
addPlayer(bd.player);
|
||||
}
|
||||
|
||||
OpenWindowQuery::OpenWindowQuery(CGameHandler * owner, const CGHeroInstance *hero, EOpenWindowMode mode):
|
||||
CDialogQuery(owner),
|
||||
mode(mode)
|
||||
{
|
||||
addPlayer(hero->getOwner());
|
||||
}
|
||||
|
||||
bool OpenWindowQuery::blocksPack(const CPack *pack) const
|
||||
{
|
||||
if (mode == EOpenWindowMode::TAVERN_WINDOW)
|
||||
{
|
||||
if(dynamic_ptr_cast<HireHero>(pack) != nullptr)
|
||||
return false;
|
||||
}
|
||||
|
||||
if (mode == EOpenWindowMode::MARKET_WINDOW)
|
||||
{
|
||||
if(dynamic_ptr_cast<ExchangeArtifacts>(pack) != nullptr)
|
||||
return false;
|
||||
|
||||
if(dynamic_ptr_cast<AssembleArtifacts>(pack))
|
||||
return false;
|
||||
|
||||
if(dynamic_ptr_cast<EraseArtifactByClient>(pack))
|
||||
return false;
|
||||
|
||||
if(dynamic_ptr_cast<TradeOnMarketplace>(pack) != nullptr)
|
||||
return false;
|
||||
}
|
||||
|
||||
return CDialogQuery::blocksPack(pack);
|
||||
}
|
||||
|
||||
void CTeleportDialogQuery::notifyObjectAboutRemoval(const CObjectVisitQuery & objectVisit) const
|
||||
{
|
||||
// do not change to dynamic_ptr_cast - SIGSEGV!
|
||||
|
||||
@@ -61,7 +61,6 @@ public:
|
||||
virtual void onRemoval(PlayerColor color) override;
|
||||
};
|
||||
|
||||
|
||||
class CGarrisonDialogQuery : public CDialogQuery //used also for hero exchange dialogs
|
||||
{
|
||||
public:
|
||||
@@ -83,6 +82,15 @@ public:
|
||||
virtual void notifyObjectAboutRemoval(const CObjectVisitQuery &objectVisit) const override;
|
||||
};
|
||||
|
||||
class OpenWindowQuery : public CDialogQuery
|
||||
{
|
||||
EOpenWindowMode mode;
|
||||
public:
|
||||
OpenWindowQuery(CGameHandler * owner, const CGHeroInstance *hero, EOpenWindowMode mode);
|
||||
|
||||
virtual bool blocksPack(const CPack *pack) const override;
|
||||
};
|
||||
|
||||
class CTeleportDialogQuery : public CDialogQuery
|
||||
{
|
||||
public:
|
||||
|
||||
Reference in new issue
Block a user