From 804b164c75a38e46176de218e8628a00ed2e77ed Mon Sep 17 00:00:00 2001 From: Dydzio Date: Sun, 15 Jan 2023 16:19:55 +0100 Subject: [PATCH] Changed getQuantityRangeStringForId handling --- lib/CCreatureHandler.cpp | 42 ++++++++++++++++++---------------------- lib/CCreatureHandler.h | 1 + 2 files changed, 20 insertions(+), 23 deletions(-) diff --git a/lib/CCreatureHandler.cpp b/lib/CCreatureHandler.cpp index 8064ec8da..0f251af6b 100644 --- a/lib/CCreatureHandler.cpp +++ b/lib/CCreatureHandler.cpp @@ -24,6 +24,19 @@ VCMI_LIB_NAMESPACE_BEGIN +const std::map CCreature::creatureQuantityRanges = +{ + {CCreature::CreatureQuantityId::FEW, "1-4"}, + {CCreature::CreatureQuantityId::SEVERAL, "5-9"}, + {CCreature::CreatureQuantityId::PACK, "10-19"}, + {CCreature::CreatureQuantityId::LOTS, "20-49"}, + {CCreature::CreatureQuantityId::HORDE, "50-99"}, + {CCreature::CreatureQuantityId::THRONG, "100-249"}, + {CCreature::CreatureQuantityId::SWARM, "250-499"}, + {CCreature::CreatureQuantityId::ZOUNDS, "500-999"}, + {CCreature::CreatureQuantityId::LEGION, "1000+"} +}; + int32_t CCreature::getIndex() const { return idNumber.toEnum(); @@ -195,29 +208,12 @@ CCreature::CreatureQuantityId CCreature::getQuantityID(const int & quantity) std::string CCreature::getQuantityRangeStringForId(const CCreature::CreatureQuantityId & quantityId) { - switch(quantityId) - { - case CCreature::CreatureQuantityId::FEW: - return "1-4"; - case CCreature::CreatureQuantityId::SEVERAL: - return "5-9"; - case CCreature::CreatureQuantityId::PACK: - return "10-19"; - case CCreature::CreatureQuantityId::LOTS: - return "20-49"; - case CCreature::CreatureQuantityId::HORDE: - return "50-99"; - case CCreature::CreatureQuantityId::THRONG: - return "100-249"; - case CCreature::CreatureQuantityId::SWARM: - return "250-499"; - case CCreature::CreatureQuantityId::ZOUNDS: - return "500-999"; - case CCreature::CreatureQuantityId::LEGION: - return "1000+"; - default: - return "[ERROR]"; - } + if(creatureQuantityRanges.find(quantityId) != creatureQuantityRanges.end()) + return creatureQuantityRanges.at(quantityId); + + logGlobal->error("Wrong quantityId: %d", (int)quantityId); + assert(0); + return "[ERROR]"; } int CCreature::estimateCreatureCount(ui32 countID) diff --git a/lib/CCreatureHandler.h b/lib/CCreatureHandler.h index 0c0be2771..2c2e0a00c 100644 --- a/lib/CCreatureHandler.h +++ b/lib/CCreatureHandler.h @@ -248,6 +248,7 @@ public: private: void fillWarMachine(); + static const std::map creatureQuantityRanges; }; class DLL_LINKAGE CCreatureHandler : public CHandlerBase