mirror of
https://github.com/vcmi/vcmi.git
synced 2025-11-29 23:07:48 +02:00
Handle "bannedTowns" (alredy used on Jebus).
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user