summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/resources/db/avatardb.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/resources/db/avatardb.cpp b/src/resources/db/avatardb.cpp
index a97059c2c..1df47e3ef 100644
--- a/src/resources/db/avatardb.cpp
+++ b/src/resources/db/avatardb.cpp
@@ -75,7 +75,12 @@ void AvatarDB::loadXmlFile(const std::string &fileName)
if (!xmlNameEqual(avatarNode, "avatar"))
continue;
- BeingInfo *const currentInfo = new BeingInfo;
+ const int id = XML::getProperty(avatarNode, "id", 0);
+ BeingInfo *currentInfo = nullptr;
+ if (mAvatarInfos.find(id) != mAvatarInfos.end())
+ currentInfo = mAvatarInfos[id];
+ else
+ currentInfo = new BeingInfo;
currentInfo->setName(XML::langProperty(
// TRANSLATORS: unknown info name
@@ -112,8 +117,7 @@ void AvatarDB::loadXmlFile(const std::string &fileName)
}
}
currentInfo->setDisplay(display);
-
- mAvatarInfos[XML::getProperty(avatarNode, "id", 0)] = currentInfo;
+ mAvatarInfos[id] = currentInfo;
}
mLoaded = true;