[12153] Remove unneeded InBattleGround() as it is already checked by GetBattleGround()

Also call OutdoorPvP handlers before instance script ones
This commit is contained in:
stfx 2012-08-29 01:10:19 +02:00 committed by Antz
parent a53ac2aca7
commit c8814791e1
5 changed files with 15 additions and 19 deletions

View file

@ -752,16 +752,16 @@ bool Creature::Create(uint32 guidlow, CreatureCreatePos& cPos, CreatureInfo cons
if (!cPos.Relocate(this)) if (!cPos.Relocate(this))
return false; return false;
// Notify the outdoor pvp script
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
outdoorPvP->HandleCreatureCreate(this);
// Notify the map's instance data. // Notify the map's instance data.
// Only works if you create the object in it, not if it is moves to that map. // Only works if you create the object in it, not if it is moves to that map.
// Normally non-players do not teleport to other maps. // Normally non-players do not teleport to other maps.
if (InstanceData* iData = GetMap()->GetInstanceData()) if (InstanceData* iData = GetMap()->GetInstanceData())
iData->OnCreatureCreate(this); iData->OnCreatureCreate(this);
// Notify the outdoor pvp script
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
outdoorPvP->HandleCreatureCreate(this);
switch (GetCreatureInfo()->rank) switch (GetCreatureInfo()->rank)
{ {
case CREATURE_ELITE_RARE: case CREATURE_ELITE_RARE:

View file

@ -166,16 +166,16 @@ bool GameObject::Create(uint32 guidlow, uint32 name_id, Map* map, uint32 phaseMa
if (goinfo->type == GAMEOBJECT_TYPE_CAPTURE_POINT && goinfo->capturePoint.radius) if (goinfo->type == GAMEOBJECT_TYPE_CAPTURE_POINT && goinfo->capturePoint.radius)
SetCapturePointSlider(sOutdoorPvPMgr.GetCapturePointSliderValue(goinfo->id)); SetCapturePointSlider(sOutdoorPvPMgr.GetCapturePointSliderValue(goinfo->id));
// Notify the outdoor pvp script
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
outdoorPvP->HandleGameObjectCreate(this);
// Notify the map's instance data. // Notify the map's instance data.
// Only works if you create the object in it, not if it is moves to that map. // Only works if you create the object in it, not if it is moves to that map.
// Normally non-players do not teleport to other maps. // Normally non-players do not teleport to other maps.
if (InstanceData* iData = map->GetInstanceData()) if (InstanceData* iData = map->GetInstanceData())
iData->OnObjectCreate(this); iData->OnObjectCreate(this);
// Notify the outdoor pvp script
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(GetZoneId()))
outdoorPvP->HandleGameObjectCreate(this);
return true; return true;
} }
@ -344,9 +344,8 @@ void GameObject::Update(uint32 update_diff, uint32 p_time)
if (IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER) if (IsBattleGroundTrap && ok->GetTypeId() == TYPEID_PLAYER)
{ {
// BattleGround gameobjects case // BattleGround gameobjects case
if (((Player*)ok)->InBattleGround()) if (BattleGround* bg = ((Player*)ok)->GetBattleGround())
if (BattleGround* bg = ((Player*)ok)->GetBattleGround()) bg->HandleTriggerBuff(GetObjectGuid());
bg->HandleTriggerBuff(GetObjectGuid());
} }
} }
} }

View file

@ -735,14 +735,12 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket& recv_data)
return; return;
} }
if (pl->InBattleGround()) if (BattleGround* bg = pl->GetBattleGround())
{ {
if (BattleGround* bg = pl->GetBattleGround()) bg->HandleAreaTrigger(pl, Trigger_ID);
bg->HandleAreaTrigger(pl, Trigger_ID);
return; return;
} }
else if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(pl->GetCachedZoneId()))
if (OutdoorPvP* outdoorPvP = sOutdoorPvPMgr.GetScript(pl->GetCachedZoneId()))
{ {
if (outdoorPvP->HandleAreaTrigger(pl, Trigger_ID)) if (outdoorPvP->HandleAreaTrigger(pl, Trigger_ID))
return; return;

View file

@ -566,8 +566,7 @@ void WorldSession::HandleMoverRelocation(MovementInfo& movementInfo)
if (movementInfo.GetPos()->z < -500.0f) if (movementInfo.GetPos()->z < -500.0f)
{ {
if (plMover->InBattleGround() if (plMover->GetBattleGround()
&& plMover->GetBattleGround()
&& plMover->GetBattleGround()->HandlePlayerUnderMap(_player)) && plMover->GetBattleGround()->HandlePlayerUnderMap(_player))
{ {
// do nothing, the handle already did if returned true // do nothing, the handle already did if returned true

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "12152" #define REVISION_NR "12153"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__