From 0f9ec2061c4ad6157c3186f1cab9c4d8558980b5 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Fri, 29 May 2015 14:30:20 +0300 Subject: Add strong typed int type BeingId. --- src/resources/db/avatardb.cpp | 5 +++-- src/resources/db/avatardb.h | 4 +++- src/resources/db/homunculusdb.cpp | 11 ++++++----- src/resources/db/homunculusdb.h | 4 +++- src/resources/db/mercenarydb.cpp | 11 ++++++----- src/resources/db/mercenarydb.h | 4 +++- src/resources/db/monsterdb.cpp | 14 ++++++++------ src/resources/db/monsterdb.h | 4 +++- src/resources/db/npcdb.cpp | 20 +++++++++++--------- src/resources/db/npcdb.h | 6 ++++-- src/resources/db/petdb.cpp | 10 ++++++---- src/resources/db/petdb.h | 4 +++- 12 files changed, 59 insertions(+), 38 deletions(-) (limited to 'src/resources/db') diff --git a/src/resources/db/avatardb.cpp b/src/resources/db/avatardb.cpp index 7e58db364..5f1ac6da7 100644 --- a/src/resources/db/avatardb.cpp +++ b/src/resources/db/avatardb.cpp @@ -76,7 +76,8 @@ void AvatarDB::loadXmlFile(const std::string &fileName) if (!xmlNameEqual(avatarNode, "avatar")) continue; - const int id = XML::getProperty(avatarNode, "id", 0); + const BeingId id = fromInt(XML::getProperty( + avatarNode, "id", 0), BeingId); BeingInfo *currentInfo = nullptr; if (mAvatarInfos.find(id) != mAvatarInfos.end()) currentInfo = mAvatarInfos[id]; @@ -131,7 +132,7 @@ void AvatarDB::unload() mLoaded = false; } -BeingInfo *AvatarDB::get(const int id) +BeingInfo *AvatarDB::get(const BeingId id) { BeingInfoIterator i = mAvatarInfos.find(id); if (i == mAvatarInfos.end()) diff --git a/src/resources/db/avatardb.h b/src/resources/db/avatardb.h index 252804f9c..9e8cecd07 100644 --- a/src/resources/db/avatardb.h +++ b/src/resources/db/avatardb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_AVATARDB_H #define RESOURCES_DB_AVATARDB_H +#include "enums/simpletypes/beingid.h" + #include #include "localconsts.h" @@ -35,7 +37,7 @@ namespace AvatarDB void unload(); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; void loadXmlFile(const std::string &fileName); } // namespace AvatarDB diff --git a/src/resources/db/homunculusdb.cpp b/src/resources/db/homunculusdb.cpp index 173b37e65..41c863a6f 100644 --- a/src/resources/db/homunculusdb.cpp +++ b/src/resources/db/homunculusdb.cpp @@ -85,10 +85,11 @@ void HomunculusDB::loadXmlFile(const std::string &fileName) const int id = XML::getProperty(homunculusNode, "id", 0); BeingInfo *currentInfo = nullptr; - if (mHomunculusInfos.find(id + offset) != mHomunculusInfos.end()) + if (mHomunculusInfos.find(fromInt(id + offset, BeingId)) + != mHomunculusInfos.end()) { logger->log("HomunculusDB: Redefinition of homunculus ID %d", id); - currentInfo = mHomunculusInfos[id + offset]; + currentInfo = mHomunculusInfos[fromInt(id + offset, BeingId)]; } if (!currentInfo) currentInfo = new BeingInfo; @@ -133,7 +134,7 @@ void HomunculusDB::loadXmlFile(const std::string &fileName) } currentInfo->setDisplay(display); - mHomunculusInfos[id + offset] = currentInfo; + mHomunculusInfos[fromInt(id + offset, BeingId)] = currentInfo; } } @@ -146,7 +147,7 @@ void HomunculusDB::unload() } -BeingInfo *HomunculusDB::get(const int id) +BeingInfo *HomunculusDB::get(const BeingId id) { BeingInfoIterator i = mHomunculusInfos.find(id); @@ -157,7 +158,7 @@ BeingInfo *HomunculusDB::get(const int id) { logger->log("HomunculusDB: Warning, unknown homunculus ID " "%d requested", - id); + toInt(id, int)); return BeingInfo::unknown; } else diff --git a/src/resources/db/homunculusdb.h b/src/resources/db/homunculusdb.h index c6ab6972a..1d879cf9f 100644 --- a/src/resources/db/homunculusdb.h +++ b/src/resources/db/homunculusdb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_HOMUNCULUSDB_H #define RESOURCES_DB_HOMUNCULUSDB_H +#include "enums/simpletypes/beingid.h" + #include "localconsts.h" #include @@ -40,7 +42,7 @@ namespace HomunculusDB void loadXmlFile(const std::string &fileName); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; } // namespace HomunculusDB #endif // RESOURCES_DB_HOMUNCULUSDB_H diff --git a/src/resources/db/mercenarydb.cpp b/src/resources/db/mercenarydb.cpp index a101bc891..13dfbbd45 100644 --- a/src/resources/db/mercenarydb.cpp +++ b/src/resources/db/mercenarydb.cpp @@ -85,10 +85,11 @@ void MercenaryDB::loadXmlFile(const std::string &fileName) const int id = XML::getProperty(mercenaryNode, "id", 0); BeingInfo *currentInfo = nullptr; - if (mMercenaryInfos.find(id + offset) != mMercenaryInfos.end()) + if (mMercenaryInfos.find(fromInt(id + offset, BeingId)) + != mMercenaryInfos.end()) { logger->log("MercenaryDB: Redefinition of mercenary ID %d", id); - currentInfo = mMercenaryInfos[id + offset]; + currentInfo = mMercenaryInfos[fromInt(id + offset, BeingId)]; } if (!currentInfo) currentInfo = new BeingInfo; @@ -132,7 +133,7 @@ void MercenaryDB::loadXmlFile(const std::string &fileName) } currentInfo->setDisplay(display); - mMercenaryInfos[id + offset] = currentInfo; + mMercenaryInfos[fromInt(id + offset, BeingId)] = currentInfo; } } @@ -145,7 +146,7 @@ void MercenaryDB::unload() } -BeingInfo *MercenaryDB::get(const int id) +BeingInfo *MercenaryDB::get(const BeingId id) { BeingInfoIterator i = mMercenaryInfos.find(id); @@ -156,7 +157,7 @@ BeingInfo *MercenaryDB::get(const int id) { logger->log("MercenaryDB: Warning, unknown mercenary ID " "%d requested", - id); + toInt(id, int)); return BeingInfo::unknown; } else diff --git a/src/resources/db/mercenarydb.h b/src/resources/db/mercenarydb.h index e3aee4b56..a642b1a7c 100644 --- a/src/resources/db/mercenarydb.h +++ b/src/resources/db/mercenarydb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_MERCENARYDB_H #define RESOURCES_DB_MERCENARYDB_H +#include "enums/simpletypes/beingid.h" + #include "localconsts.h" #include @@ -40,7 +42,7 @@ namespace MercenaryDB void loadXmlFile(const std::string &fileName); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; } // namespace MercenaryDB #endif // RESOURCES_DB_MERCENARYDB_H diff --git a/src/resources/db/monsterdb.cpp b/src/resources/db/monsterdb.cpp index cfb7f4e92..de72f487f 100644 --- a/src/resources/db/monsterdb.cpp +++ b/src/resources/db/monsterdb.cpp @@ -88,10 +88,11 @@ void MonsterDB::loadXmlFile(const std::string &fileName) const int id = XML::getProperty(monsterNode, "id", 0); BeingInfo *currentInfo = nullptr; - if (mMonsterInfos.find(id + offset) != mMonsterInfos.end()) + if (mMonsterInfos.find(fromInt(id + offset, BeingId)) + != mMonsterInfos.end()) { logger->log("MonsterDB: Redefinition of monster ID %d", id); - currentInfo = mMonsterInfos[id + offset]; + currentInfo = mMonsterInfos[fromInt(id + offset, BeingId)]; } if (!currentInfo) currentInfo = new BeingInfo; @@ -139,7 +140,7 @@ void MonsterDB::loadXmlFile(const std::string &fileName) } currentInfo->setDisplay(display); - mMonsterInfos[id + offset] = currentInfo; + mMonsterInfos[fromInt(id + offset, BeingId)] = currentInfo; } } @@ -152,17 +153,18 @@ void MonsterDB::unload() } -BeingInfo *MonsterDB::get(const int id) +BeingInfo *MonsterDB::get(const BeingId id) { BeingInfoIterator i = mMonsterInfos.find(id); if (i == mMonsterInfos.end()) { - i = mMonsterInfos.find(id + OLD_TMWATHENA_OFFSET); + i = mMonsterInfos.find(fromInt(toInt( + id, int) + OLD_TMWATHENA_OFFSET, BeingId)); if (i == mMonsterInfos.end()) { logger->log("MonsterDB: Warning, unknown monster ID %d requested", - id); + toInt(id, int)); return BeingInfo::unknown; } else diff --git a/src/resources/db/monsterdb.h b/src/resources/db/monsterdb.h index 241c8f168..c8ef85a5a 100644 --- a/src/resources/db/monsterdb.h +++ b/src/resources/db/monsterdb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_MONSTERDB_H #define RESOURCES_DB_MONSTERDB_H +#include "enums/simpletypes/beingid.h" + #include "localconsts.h" #include @@ -40,7 +42,7 @@ namespace MonsterDB void loadXmlFile(const std::string &fileName); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; } // namespace MonsterDB #endif // RESOURCES_DB_MONSTERDB_H diff --git a/src/resources/db/npcdb.cpp b/src/resources/db/npcdb.cpp index bb006e75a..8be92f186 100644 --- a/src/resources/db/npcdb.cpp +++ b/src/resources/db/npcdb.cpp @@ -81,9 +81,10 @@ void NPCDB::loadXmlFile(const std::string &fileName) if (!xmlNameEqual(npcNode, "npc")) continue; - const int id = XML::getProperty(npcNode, "id", 0); + const BeingId id = fromInt(XML::getProperty( + npcNode, "id", 0), BeingId); BeingInfo *currentInfo = nullptr; - if (id == 0) + if (id == BeingId_zero) { logger->log("NPC Database: NPC with missing ID in %s!", paths.getStringValue("npcsFile").c_str()); @@ -91,7 +92,7 @@ void NPCDB::loadXmlFile(const std::string &fileName) } else if (mNPCInfos.find(id) != mNPCInfos.end()) { - logger->log("NpcDB: Redefinition of npc ID %d", id); + logger->log("NpcDB: Redefinition of npc ID %d", toInt(id, int)); currentInfo = mNPCInfos[id]; } if (!currentInfo) @@ -105,8 +106,8 @@ void NPCDB::loadXmlFile(const std::string &fileName) currentInfo->setDeadSortOffsetY(XML::getProperty(npcNode, "deadSortOffsetY", 31)); - currentInfo->setAvatarId(static_cast(XML::getProperty( - npcNode, "avatar", 0))); + currentInfo->setAvatarId(fromInt(XML::getProperty( + npcNode, "avatar", 0), BeingId)); SpriteDisplay display; for_each_xml_child_node(spriteNode, npcNode) @@ -159,13 +160,14 @@ void NPCDB::unload() mLoaded = false; } -BeingInfo *NPCDB::get(const int id) +BeingInfo *NPCDB::get(const BeingId id) { const BeingInfoIterator i = mNPCInfos.find(id); if (i == mNPCInfos.end()) { - logger->log("NPCDB: Warning, unknown NPC ID %d requested", id); + logger->log("NPCDB: Warning, unknown NPC ID %d requested", + toInt(id, int)); return BeingInfo::unknown; } else @@ -174,10 +176,10 @@ BeingInfo *NPCDB::get(const int id) } } -uint16_t NPCDB::getAvatarFor(const int id) +BeingId NPCDB::getAvatarFor(const BeingId id) { const BeingInfo *const info = get(id); if (!info) - return 0; + return BeingId_zero; return info->getAvatarId(); } diff --git a/src/resources/db/npcdb.h b/src/resources/db/npcdb.h index e8adb744e..283671fba 100644 --- a/src/resources/db/npcdb.h +++ b/src/resources/db/npcdb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_NPCDB_H #define RESOURCES_DB_NPCDB_H +#include "enums/simpletypes/beingid.h" + #include #include "localconsts.h" @@ -38,9 +40,9 @@ namespace NPCDB void unload(); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; - uint16_t getAvatarFor(const int id); + BeingId getAvatarFor(const BeingId id); void loadXmlFile(const std::string &fileName); } // namespace NPCDB diff --git a/src/resources/db/petdb.cpp b/src/resources/db/petdb.cpp index 31893403f..242313d14 100644 --- a/src/resources/db/petdb.cpp +++ b/src/resources/db/petdb.cpp @@ -79,8 +79,9 @@ void PETDB::loadXmlFile(const std::string &fileName) continue; } - const int id = XML::getProperty(petNode, "id", -1); - if (id == -1) + const BeingId id = fromInt(XML::getProperty( + petNode, "id", -1), BeingId); + if (id == BeingId_negOne) { logger->log("PET Database: PET with missing ID in %s!", paths.getStringValue("petsFile").c_str()); @@ -185,13 +186,14 @@ void PETDB::unload() mLoaded = false; } -BeingInfo *PETDB::get(const int id) +BeingInfo *PETDB::get(const BeingId id) { const BeingInfoIterator i = mPETInfos.find(id); if (i == mPETInfos.end()) { - logger->log("PETDB: Warning, unknown PET ID %d requested", id); + logger->log("PETDB: Warning, unknown PET ID %d requested", + toInt(id, int)); return BeingInfo::unknown; } else diff --git a/src/resources/db/petdb.h b/src/resources/db/petdb.h index bb3d9f329..893a9dcde 100644 --- a/src/resources/db/petdb.h +++ b/src/resources/db/petdb.h @@ -23,6 +23,8 @@ #ifndef RESOURCES_DB_PETDB_H #define RESOURCES_DB_PETDB_H +#include "enums/simpletypes/beingid.h" + #include #include "localconsts.h" @@ -37,7 +39,7 @@ namespace PETDB void unload(); - BeingInfo *get(const int id) A_WARN_UNUSED; + BeingInfo *get(const BeingId id) A_WARN_UNUSED; } // namespace PETDB #endif // RESOURCES_DB_PETDB_H -- cgit v1.2.3-60-g2f50