summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/game/Entities/Player/Player.cpp2
-rw-r--r--src/game/Scripting/ScriptMgr.cpp5
-rw-r--r--src/game/Scripting/ScriptMgr.h4
3 files changed, 11 insertions, 0 deletions
diff --git a/src/game/Entities/Player/Player.cpp b/src/game/Entities/Player/Player.cpp
index 2c2abb6da0..4f18f20613 100644
--- a/src/game/Entities/Player/Player.cpp
+++ b/src/game/Entities/Player/Player.cpp
@@ -17796,6 +17796,8 @@ bool Player::LoadFromDB(uint32 guid, SQLQueryHolder *holder)
InitTaxiNodesForLevel();
InitRunes();
+ sScriptMgr->OnPlayerLoadFromDB(this);
+
// make sure the unit is considered out of combat for proper loading
ClearInCombat();
diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp
index 67caf6aedf..95aebda24d 100644
--- a/src/game/Scripting/ScriptMgr.cpp
+++ b/src/game/Scripting/ScriptMgr.cpp
@@ -1264,6 +1264,11 @@ void ScriptMgr::OnPlayerLogin(Player* player)
FOREACH_SCRIPT(PlayerScript)->OnLogin(player);
}
+void ScriptMgr::OnPlayerLoadFromDB(Player* player)
+{
+ FOREACH_SCRIPT(PlayerScript)->OnLoadFromDB(player);
+}
+
void ScriptMgr::OnPlayerLogout(Player* player)
{
FOREACH_SCRIPT(PlayerScript)->OnLogout(player);
diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h
index ee717b3e63..6f8b030db4 100644
--- a/src/game/Scripting/ScriptMgr.h
+++ b/src/game/Scripting/ScriptMgr.h
@@ -813,6 +813,9 @@ class PlayerScript : public ScriptObject
// Called in Spell::Cast.
virtual void OnSpellCast(Player* /*player*/, Spell* /*spell*/, bool /*skipCheck*/) { }
+ // Called during data loading
+ virtual void OnLoadFromDB(Player* /*player*/) { };
+
// Called when a player logs in.
virtual void OnLogin(Player* /*player*/) { }
@@ -1189,6 +1192,7 @@ class ScriptMgr
void OnPlayerTextEmote(Player* player, uint32 textEmote, uint32 emoteNum, uint64 guid);
void OnPlayerSpellCast(Player* player, Spell* spell, bool skipCheck);
void OnPlayerLogin(Player* player);
+ void OnPlayerLoadFromDB(Player* player);
void OnPlayerLogout(Player* player);
void OnPlayerCreate(Player* player);
void OnPlayerDelete(uint64 guid);