aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Handlers/HotfixHandler.cpp
diff options
context:
space:
mode:
authorfunjoker <torti-esser@web.de>2018-12-08 00:05:57 +0100
committerShauren <shauren.trinity@gmail.com>2018-12-08 00:05:57 +0100
commitf272a78caab463988e0d244d92e4cb0fce2c942f (patch)
tree9bcf46c45f324537064d9fc072922162b2cad0dd /src/server/game/Handlers/HotfixHandler.cpp
parent9a8f09de57c32234a9c9db6df57bb7353d679967 (diff)
Core/DataStores: Implemented sending hotfixes for db2 stores not loaded serverside (#22800)
Diffstat (limited to 'src/server/game/Handlers/HotfixHandler.cpp')
-rw-r--r--src/server/game/Handlers/HotfixHandler.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/server/game/Handlers/HotfixHandler.cpp b/src/server/game/Handlers/HotfixHandler.cpp
index 0d887769d08..4fc6426c2df 100644
--- a/src/server/game/Handlers/HotfixHandler.cpp
+++ b/src/server/game/Handlers/HotfixHandler.cpp
@@ -73,11 +73,16 @@ void WorldSession::HandleHotfixRequest(WorldPackets::Hotfix::HotfixRequest& hotf
WorldPackets::Hotfix::HotfixResponse::HotfixData hotfixData;
hotfixData.ID = hotfixId;
hotfixData.RecordID = *hotfix;
- if (storage->HasRecord(hotfixData.RecordID))
+ if (storage && storage->HasRecord(hotfixData.RecordID))
{
hotfixData.Data = boost::in_place();
storage->WriteRecord(hotfixData.RecordID, GetSessionDbcLocale(), *hotfixData.Data);
}
+ else if (std::vector<uint8> const* blobData = sDB2Manager.GetHotfixBlobData(PAIR64_HIPART(hotfixId), *hotfix))
+ {
+ hotfixData.Data = boost::in_place();
+ hotfixData.Data->append(blobData->data(), blobData->size());
+ }
hotfixQueryResponse.Hotfixes.emplace_back(std::move(hotfixData));
}