Core/Scripts: Split OnCreatureCreate() and OnGameObjectCreate() into two virtual functions each.

Note to scripters: be aware that you will need to hook into the Remove functions if you want to do stuff at GO/creature removal.
Closes issue 5011.

--HG--
branch : trunk
This commit is contained in:
leak
2010-12-05 18:04:10 +01:00
parent dfa1e9532b
commit 6fe19b5a86
65 changed files with 1139 additions and 1132 deletions
@@ -157,58 +157,58 @@ public:
TombBossGUIDs[i] = 0;
}
void OnCreatureCreate(Creature* pCreature, bool /*add*/)
void OnCreatureCreate(Creature* creature)
{
switch(pCreature->GetEntry())
switch(creature->GetEntry())
{
case NPC_EMPEROR: EmperorGUID = pCreature->GetGUID(); break;
case NPC_PHALANX: PhalanxGUID = pCreature->GetGUID(); break;
case NPC_DOOMREL: TombBossGUIDs[0] = pCreature->GetGUID(); break;
case NPC_DOPEREL: TombBossGUIDs[1] = pCreature->GetGUID(); break;
case NPC_HATEREL: TombBossGUIDs[2] = pCreature->GetGUID(); break;
case NPC_VILEREL: TombBossGUIDs[3] = pCreature->GetGUID(); break;
case NPC_SEETHREL: TombBossGUIDs[4] = pCreature->GetGUID(); break;
case NPC_GLOOMREL: TombBossGUIDs[5] = pCreature->GetGUID(); break;
case NPC_ANGERREL: TombBossGUIDs[6] = pCreature->GetGUID(); break;
case NPC_EMPEROR: EmperorGUID = creature->GetGUID(); break;
case NPC_PHALANX: PhalanxGUID = creature->GetGUID(); break;
case NPC_DOOMREL: TombBossGUIDs[0] = creature->GetGUID(); break;
case NPC_DOPEREL: TombBossGUIDs[1] = creature->GetGUID(); break;
case NPC_HATEREL: TombBossGUIDs[2] = creature->GetGUID(); break;
case NPC_VILEREL: TombBossGUIDs[3] = creature->GetGUID(); break;
case NPC_SEETHREL: TombBossGUIDs[4] = creature->GetGUID(); break;
case NPC_GLOOMREL: TombBossGUIDs[5] = creature->GetGUID(); break;
case NPC_ANGERREL: TombBossGUIDs[6] = creature->GetGUID(); break;
case NPC_MAGMUS:
MagmusGUID = pCreature->GetGUID();
if (!pCreature->isAlive())
MagmusGUID = creature->GetGUID();
if (!creature->isAlive())
HandleGameObject(GetData64(DATA_THRONE_DOOR), true); // if Magmus is dead open door to last boss
break;
}
}
void OnGameObjectCreate(GameObject* pGo, bool /*add*/)
void OnGameObjectCreate(GameObject* go)
{
switch(pGo->GetEntry())
switch(go->GetEntry())
{
case GO_ARENA1: GoArena1GUID = pGo->GetGUID(); break;
case GO_ARENA2: GoArena2GUID = pGo->GetGUID(); break;
case GO_ARENA3: GoArena3GUID = pGo->GetGUID(); break;
case GO_ARENA4: GoArena4GUID = pGo->GetGUID(); break;
case GO_SHADOW_LOCK: GoShadowLockGUID = pGo->GetGUID(); break;
case GO_SHADOW_MECHANISM: GoShadowMechGUID = pGo->GetGUID(); break;
case GO_SHADOW_GIANT_DOOR: GoShadowGiantGUID = pGo->GetGUID(); break;
case GO_SHADOW_DUMMY: GoShadowDummyGUID = pGo->GetGUID(); break;
case GO_BAR_KEG_SHOT: GoBarKegGUID = pGo->GetGUID(); break;
case GO_BAR_KEG_TRAP: GoBarKegTrapGUID = pGo->GetGUID(); break;
case GO_BAR_DOOR: GoBarDoorGUID = pGo->GetGUID(); break;
case GO_TOMB_ENTER: GoTombEnterGUID = pGo->GetGUID(); break;
case GO_ARENA1: GoArena1GUID = go->GetGUID(); break;
case GO_ARENA2: GoArena2GUID = go->GetGUID(); break;
case GO_ARENA3: GoArena3GUID = go->GetGUID(); break;
case GO_ARENA4: GoArena4GUID = go->GetGUID(); break;
case GO_SHADOW_LOCK: GoShadowLockGUID = go->GetGUID(); break;
case GO_SHADOW_MECHANISM: GoShadowMechGUID = go->GetGUID(); break;
case GO_SHADOW_GIANT_DOOR: GoShadowGiantGUID = go->GetGUID(); break;
case GO_SHADOW_DUMMY: GoShadowDummyGUID = go->GetGUID(); break;
case GO_BAR_KEG_SHOT: GoBarKegGUID = go->GetGUID(); break;
case GO_BAR_KEG_TRAP: GoBarKegTrapGUID = go->GetGUID(); break;
case GO_BAR_DOOR: GoBarDoorGUID = go->GetGUID(); break;
case GO_TOMB_ENTER: GoTombEnterGUID = go->GetGUID(); break;
case GO_TOMB_EXIT:
GoTombExitGUID = pGo->GetGUID();
GoTombExitGUID = go->GetGUID();
if (GhostKillCount >= 7)
HandleGameObject(0, true, pGo);
HandleGameObject(0, true, go);
else
HandleGameObject(0, false, pGo);
HandleGameObject(0, false, go);
break;
case GO_LYCEUM: GoLyceumGUID = pGo->GetGUID(); break;
case GO_SF_S: GoSFSGUID = pGo->GetGUID(); break;
case GO_SF_N: GoSFNGUID = pGo->GetGUID(); break;
case GO_GOLEM_ROOM_N: GoGolemNGUID = pGo->GetGUID(); break;
case GO_GOLEM_ROOM_S: GoGolemSGUID = pGo->GetGUID(); break;
case GO_THRONE_ROOM: GoThroneGUID = pGo->GetGUID(); break;
case GO_CHEST_SEVEN: GoChestGUID = pGo->GetGUID(); break;
case GO_SPECTRAL_CHALICE: GoSpectralChaliceGUID = pGo->GetGUID(); break;
case GO_LYCEUM: GoLyceumGUID = go->GetGUID(); break;
case GO_SF_S: GoSFSGUID = go->GetGUID(); break;
case GO_SF_N: GoSFNGUID = go->GetGUID(); break;
case GO_GOLEM_ROOM_N: GoGolemNGUID = go->GetGUID(); break;
case GO_GOLEM_ROOM_S: GoGolemSGUID = go->GetGUID(); break;
case GO_THRONE_ROOM: GoThroneGUID = go->GetGUID(); break;
case GO_CHEST_SEVEN: GoChestGUID = go->GetGUID(); break;
case GO_SPECTRAL_CHALICE: GoSpectralChaliceGUID = go->GetGUID(); break;
}
}