aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Tools/PlayerDump.cpp
diff options
context:
space:
mode:
authorShauren <none@none>2010-08-24 11:08:12 +0200
committerShauren <none@none>2010-08-24 11:08:12 +0200
commit41ec3bf89d699097e4d3235bba5b6d1c2b936f6d (patch)
tree90aafe9f43e89cd1ebc69dd1f2282ba8dd5e6a9e /src/server/game/Tools/PlayerDump.cpp
parent4a30a2815b53229cb092db2e1cd37c6877bbd604 (diff)
Core/PlayerDump: Generate new guids for equipement sets when loading dumps
--HG-- branch : trunk
Diffstat (limited to 'src/server/game/Tools/PlayerDump.cpp')
-rw-r--r--src/server/game/Tools/PlayerDump.cpp55
1 files changed, 32 insertions, 23 deletions
diff --git a/src/server/game/Tools/PlayerDump.cpp b/src/server/game/Tools/PlayerDump.cpp
index 3d61c646996..7c283d34b95 100644
--- a/src/server/game/Tools/PlayerDump.cpp
+++ b/src/server/game/Tools/PlayerDump.cpp
@@ -497,11 +497,6 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s
// change the data to server values
switch(type)
{
- case DTT_CHAR_TABLE:
- if (!changenth(line, 1, newguid)) // character_*.guid update
- ROLLBACK(DUMP_FILE_BROKEN);
- break;
-
case DTT_CHARACTER:
{
if (!changenth(line, 1, newguid)) // characters.guid update
@@ -535,6 +530,20 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s
ROLLBACK(DUMP_FILE_BROKEN);
break;
}
+ case DTT_CHAR_TABLE:
+ {
+ if (!changenth(line, 1, newguid)) // character_*.guid update
+ ROLLBACK(DUMP_FILE_BROKEN);
+ break;
+ }
+ case DTT_EQSET_TABLE:
+ {
+ if (!changenth(line, 1, newguid))
+ ROLLBACK(DUMP_FILE_BROKEN); // character_equipmentsets.guid
+ if (!changenth(line, 2, sObjectMgr.GenerateEquipmentSetGuid()))
+ ROLLBACK(DUMP_FILE_BROKEN); // character_equipmentsets.setguid
+ break;
+ }
case DTT_INVENTORY:
{
if (!changenth(line, 1, newguid)) // character_inventory.guid update
@@ -546,6 +555,24 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s
ROLLBACK(DUMP_FILE_BROKEN); // character_inventory.item update
break;
}
+ case DTT_MAIL: // mail
+ {
+ if (!changeGuid(line, 1, mails, sObjectMgr.m_mailid))
+ ROLLBACK(DUMP_FILE_BROKEN); // mail.id update
+ if (!changenth(line, 6, newguid)) // mail.receiver update
+ ROLLBACK(DUMP_FILE_BROKEN);
+ break;
+ }
+ case DTT_MAIL_ITEM: // mail_items
+ {
+ if (!changeGuid(line, 1, mails, sObjectMgr.m_mailid))
+ ROLLBACK(DUMP_FILE_BROKEN); // mail_items.id
+ if (!changeGuid(line, 2, items, sObjectMgr.m_hiItemGuid))
+ ROLLBACK(DUMP_FILE_BROKEN); // mail_items.item_guid
+ if (!changenth(line, 4, newguid)) // mail_items.receiver
+ ROLLBACK(DUMP_FILE_BROKEN);
+ break;
+ }
case DTT_ITEM:
{
// item, owner, data field:item, owner guid
@@ -604,24 +631,6 @@ DumpReturn PlayerDumpReader::LoadDump(const std::string& file, uint32 account, s
break;
}
- case DTT_MAIL: // mail
- {
- if (!changeGuid(line, 1, mails, sObjectMgr.m_mailid))
- ROLLBACK(DUMP_FILE_BROKEN); // mail.id update
- if (!changenth(line, 6, newguid)) // mail.receiver update
- ROLLBACK(DUMP_FILE_BROKEN);
- break;
- }
- case DTT_MAIL_ITEM: // mail_items
- {
- if (!changeGuid(line, 1, mails, sObjectMgr.m_mailid))
- ROLLBACK(DUMP_FILE_BROKEN); // mail_items.id
- if (!changeGuid(line, 2, items, sObjectMgr.m_hiItemGuid))
- ROLLBACK(DUMP_FILE_BROKEN); // mail_items.item_guid
- if (!changenth(line, 4, newguid)) // mail_items.receiver
- ROLLBACK(DUMP_FILE_BROKEN);
- break;
- }
default:
sLog.outError("Unknown dump table type: %u",type);
break;