From ccf222ec4f4d05aaa5c65a3e9e2d2e85e3dd4748 Mon Sep 17 00:00:00 2001 From: Ben Carter Date: Tue, 26 Nov 2024 00:15:04 -0500 Subject: [PATCH] fixed issue with misaligned group deaths --- src/MpDataStore.h | 8 +++++++- src/PlayerScript.cpp | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/MpDataStore.h b/src/MpDataStore.h index f9018f9..0ce7485 100644 --- a/src/MpDataStore.h +++ b/src/MpDataStore.h @@ -303,7 +303,13 @@ private: _instanceCreatureData->reserve(500); }; - inline ~MpDataStore() {} + inline ~MpDataStore() { + for (auto& [guid, playerData] : *_playerData) { + delete playerData; + } + + _playerData->clear(); + } std::unique_ptr> _playerData; diff --git a/src/PlayerScript.cpp b/src/PlayerScript.cpp index c6fe7a8..6fb5a12 100644 --- a/src/PlayerScript.cpp +++ b/src/PlayerScript.cpp @@ -107,8 +107,8 @@ public: // get the player data or set it up MpPlayerData* playerData = sMpDataStore->GetPlayerData(player->GetGUID()); if(!playerData) { - auto newPlayerData = MpPlayerData(player, data->difficulty, group->GetGUID().GetCounter()); - sMpDataStore->AddPlayerData(player->GetGUID(), &newPlayerData); + playerData = new MpPlayerData(player, data->difficulty, group->GetGUID().GetCounter()); + sMpDataStore->AddPlayerData(player->GetGUID(), playerData); } // Add this players data to the group data