mirror of
https://github.com/vcmi/vcmi.git
synced 2025-03-25 21:38:59 +02:00
Handle "bannedTowns" (alredy used on Jebus).
This commit is contained in:
parent
cb4d818241
commit
73b78dd75e
@ -205,9 +205,17 @@ std::set<FactionID> ZoneOptions::getDefaultTownTypes() const
|
||||
return defaultTowns;
|
||||
}
|
||||
|
||||
const std::set<FactionID> & ZoneOptions::getTownTypes() const
|
||||
const std::set<FactionID> ZoneOptions::getTownTypes() const
|
||||
{
|
||||
return townTypes;
|
||||
if (townTypes.empty())
|
||||
{
|
||||
//Assume that all towns are allowed, unless banned
|
||||
return vstd::difference(getDefaultTownTypes(), bannedTownTypes);
|
||||
}
|
||||
else
|
||||
{
|
||||
return vstd::difference(townTypes, bannedTownTypes);
|
||||
}
|
||||
}
|
||||
|
||||
void ZoneOptions::setTownTypes(const std::set<FactionID> & value)
|
||||
@ -376,6 +384,7 @@ void ZoneOptions::serializeJson(JsonSerializeFormat & handler)
|
||||
handler.serializeBool("townsAreSameType", townsAreSameType, false);
|
||||
handler.serializeIdArray<FactionID, FactionID>("allowedMonsters", monsterTypes, std::set<FactionID>());
|
||||
handler.serializeIdArray<FactionID, FactionID>("allowedTowns", townTypes, std::set<FactionID>());
|
||||
handler.serializeIdArray<FactionID, FactionID>("bannedTowns", bannedTownTypes, std::set<FactionID>());
|
||||
|
||||
{
|
||||
//TODO: add support for std::map to serializeEnum
|
||||
|
@ -145,7 +145,7 @@ public:
|
||||
const CTownInfo & getPlayerTowns() const;
|
||||
const CTownInfo & getNeutralTowns() const;
|
||||
std::set<FactionID> getDefaultTownTypes() const;
|
||||
const std::set<FactionID> & getTownTypes() const;
|
||||
const std::set<FactionID> getTownTypes() const;
|
||||
const std::set<FactionID> & getMonsterTypes() const;
|
||||
|
||||
void setTownTypes(const std::set<FactionID> & value);
|
||||
@ -188,6 +188,7 @@ protected:
|
||||
bool townsAreSameType;
|
||||
|
||||
std::set<FactionID> townTypes;
|
||||
std::set<FactionID> bannedTownTypes;
|
||||
std::set<FactionID> monsterTypes;
|
||||
|
||||
std::map<TResource, ui16> mines; //obligatory mines to spawn in this zone
|
||||
|
Loading…
x
Reference in New Issue
Block a user