From 3fae3f59aad1f1f2eee1e1bfa088672787bc9c78 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sat, 5 Mar 2016 17:29:03 +0300 Subject: Move getNumOfHairstyles from being to itemdb. --- src/resources/db/itemdb.cpp | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/resources/db/itemdb.cpp') diff --git a/src/resources/db/itemdb.cpp b/src/resources/db/itemdb.cpp index 3b942797d..cd860df71 100644 --- a/src/resources/db/itemdb.cpp +++ b/src/resources/db/itemdb.cpp @@ -55,6 +55,8 @@ namespace StringVect mTagNames; StringIntMap mTags; std::map mSoundNames; + int mNumberOfHairstyles = 1; + int mNumberOfRaces = 1; } // namespace // Forward declarations @@ -255,6 +257,24 @@ void ItemDB::load() ".xml"); FOR_EACH (StringVectCIter, it, list) loadXmlFile(*it, tagNum); + + // Hairstyles are encoded as negative numbers. Count how far negative + // we can go. + int hairstyles = 1; + while (ItemDB::get(-hairstyles).getSprite(Gender::MALE, + BeingTypeId_zero) != paths.getStringValue("spriteErrorFile")) + { + hairstyles ++; + } + mNumberOfHairstyles = hairstyles; + + int races = 100; + while (ItemDB::get(-races).getSprite(Gender::MALE, BeingTypeId_zero) != + paths.getStringValue("spriteErrorFile")) + { + races ++; + } + mNumberOfRaces = races - 100; } void ItemDB::loadXmlFile(const std::string &fileName, int &tagNum) @@ -1072,6 +1092,11 @@ std::string ItemDB::getNamesStr(const std::vector &parts) return str; } +int ItemDB::getNumOfHairstyles() +{ + return mNumberOfHairstyles; +} + #ifdef UNITTESTS ItemDB::NamedItemInfos &ItemDB::getNamedItemInfosTest() { -- cgit v1.2.3-60-g2f50