summaryrefslogtreecommitdiff
path: root/src/resources/db
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2015-05-29 14:30:20 +0300
committerAndrei Karas <akaras@inbox.ru>2015-05-29 14:30:20 +0300
commit0f9ec2061c4ad6157c3186f1cab9c4d8558980b5 (patch)
tree6259593b8436178ad8d981a96a8fd71eab9e04cc /src/resources/db
parent01773c71a4698c6f01fe70d864f922bda65506cb (diff)
downloadmanaplus-0f9ec2061c4ad6157c3186f1cab9c4d8558980b5.tar.gz
manaplus-0f9ec2061c4ad6157c3186f1cab9c4d8558980b5.tar.bz2
manaplus-0f9ec2061c4ad6157c3186f1cab9c4d8558980b5.tar.xz
manaplus-0f9ec2061c4ad6157c3186f1cab9c4d8558980b5.zip
Add strong typed int type BeingId.
Diffstat (limited to 'src/resources/db')
-rw-r--r--src/resources/db/avatardb.cpp5
-rw-r--r--src/resources/db/avatardb.h4
-rw-r--r--src/resources/db/homunculusdb.cpp11
-rw-r--r--src/resources/db/homunculusdb.h4
-rw-r--r--src/resources/db/mercenarydb.cpp11
-rw-r--r--src/resources/db/mercenarydb.h4
-rw-r--r--src/resources/db/monsterdb.cpp14
-rw-r--r--src/resources/db/monsterdb.h4
-rw-r--r--src/resources/db/npcdb.cpp20
-rw-r--r--src/resources/db/npcdb.h6
-rw-r--r--src/resources/db/petdb.cpp10
-rw-r--r--src/resources/db/petdb.h4
12 files changed, 59 insertions, 38 deletions
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 <string>
#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 <string>
@@ -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 <string>
@@ -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 <string>
@@ -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<uint16_t>(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 <string>
#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 <string>
#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