From 4237522a5b7e6686220a55b3262f231c7d2f85fb Mon Sep 17 00:00:00 2001 From: Ovahlord Date: Mon, 18 Jun 2018 09:50:52 +0200 Subject: [PATCH] Core/Archaeology: fixed loading current branches and initialize some fields to fix restoring artifacts --- src/server/game/Handlers/SpellHandler.cpp | 2 ++ src/server/game/Skills/Archaeology/Archaeology.h | 8 ++++---- .../game/Skills/Archaeology/ArchaeologyProjects.cpp | 5 ++--- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/server/game/Handlers/SpellHandler.cpp b/src/server/game/Handlers/SpellHandler.cpp index a97e5a58f63..aef727b7cba 100644 --- a/src/server/game/Handlers/SpellHandler.cpp +++ b/src/server/game/Handlers/SpellHandler.cpp @@ -78,6 +78,8 @@ void WorldSession::HandleClientCastFlags(WorldPacket& recvPacket, uint8 castFlag recvPacket >> archData.FragId; // Currency id recvPacket >> archData.FragCount; // Currency count break; + default: + break; } } diff --git a/src/server/game/Skills/Archaeology/Archaeology.h b/src/server/game/Skills/Archaeology/Archaeology.h index 89d193b26a8..02214924df9 100644 --- a/src/server/game/Skills/Archaeology/Archaeology.h +++ b/src/server/game/Skills/Archaeology/Archaeology.h @@ -27,10 +27,10 @@ class Player; struct ArchData { - uint32 FragId; - uint32 FragCount; - uint32 KeyId; - uint32 KeyCount; + uint32 FragId = 0; + uint32 FragCount = 0; + uint32 KeyId = 0; + uint32 KeyCount = 0; }; enum ContinentState diff --git a/src/server/game/Skills/Archaeology/ArchaeologyProjects.cpp b/src/server/game/Skills/Archaeology/ArchaeologyProjects.cpp index 76cfaaca55e..b2eb515124e 100644 --- a/src/server/game/Skills/Archaeology/ArchaeologyProjects.cpp +++ b/src/server/game/Skills/Archaeology/ArchaeologyProjects.cpp @@ -65,10 +65,9 @@ void Archaeology::LoadCurrentProjectsFromDB() uint8 branch = fields[0].GetUInt8(); uint16 project = fields[1].GetUInt16(); - auto itr = _branches.find(branch); - if (itr != _branches.end()) + if (uint16 old_project = _branches[branch].Project) { - TC_LOG_ERROR("player.skills", "ERROR - Archaeology: Tried to assign project %u to branch %u, which already holds project %u!", project, branch, itr->second.Project); + TC_LOG_ERROR("player.skills", "ERROR - Archaeology: Tried to assign project %u to branch %u, which already holds project %u!", project, branch, old_project); continue; }