1515using namespace Hooks ;
1616
1717#define START_HOOK (EVENT, ENTRY ) \
18+ auto binding = GetBinding<EntryKey<GameObjectEvents>>(REGTYPE_GAMEOBJECT);\
1819 auto key = EntryKey<GameObjectEvents>(EVENT, ENTRY);\
19- if (!GameObjectEventBindings ->HasBindingsFor (key))\
20+ if (!binding ->HasBindingsFor (key))\
2021 return;
2122
2223#define START_HOOK_WITH_RETVAL (EVENT, ENTRY, RETVAL ) \
24+ auto binding = GetBinding<EntryKey<GameObjectEvents>>(REGTYPE_GAMEOBJECT);\
2325 auto key = EntryKey<GameObjectEvents>(EVENT, ENTRY);\
24- if (!GameObjectEventBindings ->HasBindingsFor (key))\
26+ if (!binding ->HasBindingsFor (key))\
2527 return RETVAL;
2628
2729void Eluna::OnDummyEffect (WorldObject* pCaster, uint32 spellId, SpellEffIndex effIndex, GameObject* pTarget)
@@ -31,15 +33,15 @@ void Eluna::OnDummyEffect(WorldObject* pCaster, uint32 spellId, SpellEffIndex ef
3133 HookPush (spellId);
3234 HookPush (effIndex);
3335 HookPush (pTarget);
34- CallAllFunctions (GameObjectEventBindings , key);
36+ CallAllFunctions (binding , key);
3537}
3638
3739void Eluna::UpdateAI (GameObject* pGameObject, uint32 diff)
3840{
3941 START_HOOK (GAMEOBJECT_EVENT_ON_AIUPDATE, pGameObject->GetEntry ());
4042 HookPush (pGameObject);
4143 HookPush (diff);
42- CallAllFunctions (GameObjectEventBindings , key);
44+ CallAllFunctions (binding , key);
4345}
4446
4547bool Eluna::OnQuestAccept (Player* pPlayer, GameObject* pGameObject, Quest const * pQuest)
@@ -48,7 +50,7 @@ bool Eluna::OnQuestAccept(Player* pPlayer, GameObject* pGameObject, Quest const*
4850 HookPush (pPlayer);
4951 HookPush (pGameObject);
5052 HookPush (pQuest);
51- return CallAllFunctionsBool (GameObjectEventBindings , key);
53+ return CallAllFunctionsBool (binding , key);
5254}
5355
5456bool Eluna::OnQuestReward (Player* pPlayer, GameObject* pGameObject, Quest const * pQuest, uint32 opt)
@@ -58,15 +60,15 @@ bool Eluna::OnQuestReward(Player* pPlayer, GameObject* pGameObject, Quest const*
5860 HookPush (pGameObject);
5961 HookPush (pQuest);
6062 HookPush (opt);
61- return CallAllFunctionsBool (GameObjectEventBindings , key);
63+ return CallAllFunctionsBool (binding , key);
6264}
6365
6466void Eluna::GetDialogStatus (const Player* pPlayer, const GameObject* pGameObject)
6567{
6668 START_HOOK (GAMEOBJECT_EVENT_ON_DIALOG_STATUS, pGameObject->GetEntry ());
6769 HookPush (pPlayer);
6870 HookPush (pGameObject);
69- CallAllFunctions (GameObjectEventBindings , key);
71+ CallAllFunctions (binding , key);
7072}
7173
7274#if ELUNA_EXPANSION >= EXP_WOTLK
@@ -75,15 +77,15 @@ void Eluna::OnDestroyed(GameObject* pGameObject, WorldObject* attacker)
7577 START_HOOK (GAMEOBJECT_EVENT_ON_DESTROYED, pGameObject->GetEntry ());
7678 HookPush (pGameObject);
7779 HookPush (attacker);
78- CallAllFunctions (GameObjectEventBindings , key);
80+ CallAllFunctions (binding , key);
7981}
8082
8183void Eluna::OnDamaged (GameObject* pGameObject, WorldObject* attacker)
8284{
8385 START_HOOK (GAMEOBJECT_EVENT_ON_DAMAGED, pGameObject->GetEntry ());
8486 HookPush (pGameObject);
8587 HookPush (attacker);
86- CallAllFunctions (GameObjectEventBindings , key);
88+ CallAllFunctions (binding , key);
8789}
8890#endif
8991
@@ -92,42 +94,42 @@ void Eluna::OnLootStateChanged(GameObject* pGameObject, uint32 state)
9294 START_HOOK (GAMEOBJECT_EVENT_ON_LOOT_STATE_CHANGE, pGameObject->GetEntry ());
9395 HookPush (pGameObject);
9496 HookPush (state);
95- CallAllFunctions (GameObjectEventBindings , key);
97+ CallAllFunctions (binding , key);
9698}
9799
98100void Eluna::OnGameObjectStateChanged (GameObject* pGameObject, uint32 state)
99101{
100102 START_HOOK (GAMEOBJECT_EVENT_ON_GO_STATE_CHANGED, pGameObject->GetEntry ());
101103 HookPush (pGameObject);
102104 HookPush (state);
103- CallAllFunctions (GameObjectEventBindings , key);
105+ CallAllFunctions (binding , key);
104106}
105107
106108void Eluna::OnSpawn (GameObject* pGameObject)
107109{
108110 START_HOOK (GAMEOBJECT_EVENT_ON_SPAWN, pGameObject->GetEntry ());
109111 HookPush (pGameObject);
110- CallAllFunctions (GameObjectEventBindings , key);
112+ CallAllFunctions (binding , key);
111113}
112114
113115void Eluna::OnAddToWorld (GameObject* pGameObject)
114116{
115117 START_HOOK (GAMEOBJECT_EVENT_ON_ADD, pGameObject->GetEntry ());
116118 HookPush (pGameObject);
117- CallAllFunctions (GameObjectEventBindings , key);
119+ CallAllFunctions (binding , key);
118120}
119121
120122void Eluna::OnRemoveFromWorld (GameObject* pGameObject)
121123{
122124 START_HOOK (GAMEOBJECT_EVENT_ON_REMOVE, pGameObject->GetEntry ());
123125 HookPush (pGameObject);
124- CallAllFunctions (GameObjectEventBindings , key);
126+ CallAllFunctions (binding , key);
125127}
126128
127129bool Eluna::OnGameObjectUse (Player* pPlayer, GameObject* pGameObject)
128130{
129131 START_HOOK_WITH_RETVAL (GAMEOBJECT_EVENT_ON_USE, pGameObject->GetEntry (), false );
130132 HookPush (pGameObject);
131133 HookPush (pPlayer);
132- return CallAllFunctionsBool (GameObjectEventBindings , key);
134+ return CallAllFunctionsBool (binding , key);
133135}
0 commit comments