diff --git a/lib/mapObjects/MiscObjects.cpp b/lib/mapObjects/MiscObjects.cpp index ef9635d1c..5d0d0c826 100644 --- a/lib/mapObjects/MiscObjects.cpp +++ b/lib/mapObjects/MiscObjects.cpp @@ -60,18 +60,18 @@ static std::string & visitedTxt(const bool visited) return VLC->generaltexth->allTexts[id]; } -void CPlayersVisited::setPropertyDer( ui8 what, ui32 val ) +void CTeamVisited::setPropertyDer(ui8 what, ui32 val) { - if(what == CPlayersVisited::OBJPROP_VISITED) + if(what == CTeamVisited::OBJPROP_VISITED) players.insert(PlayerColor(val)); } -bool CPlayersVisited::wasVisited( PlayerColor player ) const +bool CTeamVisited::wasVisited(PlayerColor player) const { - return vstd::contains(players,player); + return wasVisited(cb->getPlayer(player)->team); } -bool CPlayersVisited::wasVisited( TeamID team ) const +bool CTeamVisited::wasVisited(TeamID team) const { for(auto i : players) { @@ -2127,7 +2127,7 @@ void CGObelisk::setPropertyDer( ui8 what, ui32 val ) break; } default: - CPlayersVisited::setPropertyDer(what, val); + CTeamVisited::setPropertyDer(what, val); break; } } diff --git a/lib/mapObjects/MiscObjects.h b/lib/mapObjects/MiscObjects.h index 2cc88b3bf..ec4395430 100644 --- a/lib/mapObjects/MiscObjects.h +++ b/lib/mapObjects/MiscObjects.h @@ -16,7 +16,8 @@ class CMap; -class DLL_LINKAGE CPlayersVisited: public CGObjectInstance +/// Legacy class, use CRewardableObject instead +class DLL_LINKAGE CTeamVisited: public CGObjectInstance { public: std::set players; //players that visited this object @@ -116,7 +117,7 @@ protected: void serializeJsonOptions(JsonSerializeFormat & handler) override; }; -class DLL_LINKAGE CGWitchHut : public CPlayersVisited +class DLL_LINKAGE CGWitchHut : public CTeamVisited { public: std::vector allowedAbilities; @@ -128,7 +129,7 @@ public: void initObj(CRandomGenerator & rand) override; template void serialize(Handler &h, const int version) { - h & static_cast(*this); + h & static_cast(*this); h & allowedAbilities & ability; } protected: @@ -224,7 +225,7 @@ protected: void serializeJsonOptions(JsonSerializeFormat & handler) override; }; -class DLL_LINKAGE CGShrine : public CPlayersVisited +class DLL_LINKAGE CGShrine : public CTeamVisited { public: SpellID spell; //id of spell or NONE if random @@ -235,7 +236,7 @@ public: template void serialize(Handler &h, const int version) { - h & static_cast(*this);; + h & static_cast(*this);; h & spell; } protected: @@ -454,7 +455,7 @@ public: } }; -class DLL_LINKAGE CCartographer : public CPlayersVisited +class DLL_LINKAGE CCartographer : public CTeamVisited { ///behaviour varies depending on surface and floor public: @@ -463,7 +464,7 @@ public: template void serialize(Handler &h, const int version) { - h & static_cast(*this); + h & static_cast(*this); } }; @@ -472,7 +473,7 @@ class DLL_LINKAGE CGDenOfthieves : public CGObjectInstance void onHeroVisit(const CGHeroInstance * h) const override; }; -class DLL_LINKAGE CGObelisk : public CPlayersVisited +class DLL_LINKAGE CGObelisk : public CTeamVisited { public: static const int OBJPROP_INC = 20; @@ -486,7 +487,7 @@ public: template void serialize(Handler &h, const int version) { - h & static_cast(*this); + h & static_cast(*this); } protected: void setPropertyDer(ui8 what, ui32 val) override; diff --git a/lib/registerTypes/RegisterTypes.h b/lib/registerTypes/RegisterTypes.h index e8e862b25..18869d99e 100644 --- a/lib/registerTypes/RegisterTypes.h +++ b/lib/registerTypes/RegisterTypes.h @@ -153,11 +153,11 @@ void registerTypesMapObjects2(Serializer &s) s.template registerType(); s.template registerType(); - s.template registerType(); - s.template registerType(); - s.template registerType(); - s.template registerType(); - s.template registerType(); + s.template registerType(); + s.template registerType(); + s.template registerType(); + s.template registerType(); + s.template registerType(); //s.template registerType(); //s.template registerType();