aboutsummaryrefslogtreecommitdiff
path: root/src/game/OutdoorPvPEP.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-08-10 23:38:51 -0500
committermegamage <none@none>2009-08-10 23:38:51 -0500
commitc8ed3cf1e963250cd7a64ceff493b8a370632867 (patch)
tree2653cd15347be0f53d6dc0de7f7009e36668ad84 /src/game/OutdoorPvPEP.cpp
parent31374835f6d4ef983d75af1209125d9db08442af (diff)
*Some update of opvp (no real change)
--HG-- branch : trunk
Diffstat (limited to 'src/game/OutdoorPvPEP.cpp')
-rw-r--r--src/game/OutdoorPvPEP.cpp614
1 files changed, 297 insertions, 317 deletions
diff --git a/src/game/OutdoorPvPEP.cpp b/src/game/OutdoorPvPEP.cpp
index 70054761582..db4cfd94917 100644
--- a/src/game/OutdoorPvPEP.cpp
+++ b/src/game/OutdoorPvPEP.cpp
@@ -35,95 +35,90 @@ OPvPCapturePointEP_EWT::OPvPCapturePointEP_EWT(OutdoorPvP *pvp)
AddObject(EP_EWT_FLAGS,EPTowerFlags[EP_EWT].entry,EPTowerFlags[EP_EWT].map,EPTowerFlags[EP_EWT].x,EPTowerFlags[EP_EWT].y,EPTowerFlags[EP_EWT].z,EPTowerFlags[EP_EWT].o,EPTowerFlags[EP_EWT].rot0,EPTowerFlags[EP_EWT].rot1,EPTowerFlags[EP_EWT].rot2,EPTowerFlags[EP_EWT].rot3);
}
-bool OPvPCapturePointEP_EWT::Update(uint32 diff)
+void OPvPCapturePointEP_EWT::ChangeState()
{
- if(OPvPCapturePoint::Update(diff))
+ if(fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
{
- if(m_OldState != m_State || fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
+ // if changing from controlling alliance to horde or vice versa
+ if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
{
- // if changing from controlling alliance to horde or vice versa
- if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_EWT_A));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = 0;
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_EWT_H));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = 0;
- }
-
- uint32 artkit = 21;
-
- switch(m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- if(m_ShiftPhase == m_ShiftMaxPhase)
- m_TowerState = EP_TS_A;
- else
- m_TowerState = EP_TS_A_P;
- artkit = 2;
- SummonSupportUnitAtNorthpassTower(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = ALLIANCE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- if(m_ShiftPhase == -m_ShiftMaxPhase)
- m_TowerState = EP_TS_H;
- else
- m_TowerState = EP_TS_H_P;
- artkit = 1;
- SummonSupportUnitAtNorthpassTower(HORDE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = HORDE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_EWT_FLAGS]);
- if(flag)
- {
- flag->SetGoArtKit(artkit);
- flag->SendUpdateObjectToAllExcept(NULL);
- }
- if(flag2)
- {
- flag2->SetGoArtKit(artkit);
- flag2->SendUpdateObjectToAllExcept(NULL);
- }
-
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_EWT_A));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = 0;
+ }
+ else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
+ {
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_EWT_H));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = 0;
+ }
- UpdateTowerState();
+ uint32 artkit = 21;
- // complete quest objective
- if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_EWT_CM, 0);
+ switch(m_State)
+ {
+ case OBJECTIVESTATE_ALLIANCE:
+ if(m_ShiftPhase == m_ShiftMaxPhase)
+ m_TowerState = EP_TS_A;
+ else
+ m_TowerState = EP_TS_A_P;
+ artkit = 2;
+ SummonSupportUnitAtNorthpassTower(ALLIANCE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = ALLIANCE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_A));
+ break;
+ case OBJECTIVESTATE_HORDE:
+ if(m_ShiftPhase == -m_ShiftMaxPhase)
+ m_TowerState = EP_TS_H;
+ else
+ m_TowerState = EP_TS_H_P;
+ artkit = 1;
+ SummonSupportUnitAtNorthpassTower(HORDE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_EWT] = HORDE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_EWT_H));
+ break;
+ case OBJECTIVESTATE_NEUTRAL:
+ m_TowerState = EP_TS_N;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
+ case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
+ m_TowerState = EP_TS_N_A;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
+ case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
+ m_TowerState = EP_TS_N_H;
+ break;
}
- if(m_ShiftPhase != m_OldPhase)
+ GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
+ GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_EWT_FLAGS]);
+ if(flag)
{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
+ flag->SetGoArtKit(artkit);
+ flag->SendUpdateObjectToAllExcept(NULL);
}
- return m_OldState != m_State;
+ if(flag2)
+ {
+ flag2->SetGoArtKit(artkit);
+ flag2->SendUpdateObjectToAllExcept(NULL);
+ }
+
+
+ UpdateTowerState();
+
+ // complete quest objective
+ if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
+ SendObjectiveComplete(EP_EWT_CM, 0);
}
- return false;
+}
+
+void OPvPCapturePointEP_EWT::SendChangePhase()
+{
+ // send this too, sometimes the slider disappears, dunno why :(
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
+ // send these updates to only the ones in this objective
+ uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
+ // send this too, sometimes it resets :S
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
}
void OPvPCapturePointEP_EWT::FillInitialWorldStates(WorldPacket &data)
@@ -194,96 +189,91 @@ OPvPCapturePointEP_NPT::OPvPCapturePointEP_NPT(OutdoorPvP *pvp)
AddObject(EP_NPT_FLAGS,EPTowerFlags[EP_NPT].entry,EPTowerFlags[EP_NPT].map,EPTowerFlags[EP_NPT].x,EPTowerFlags[EP_NPT].y,EPTowerFlags[EP_NPT].z,EPTowerFlags[EP_NPT].o,EPTowerFlags[EP_NPT].rot0,EPTowerFlags[EP_NPT].rot1,EPTowerFlags[EP_NPT].rot2,EPTowerFlags[EP_NPT].rot3);
}
-bool OPvPCapturePointEP_NPT::Update(uint32 diff)
+void OPvPCapturePointEP_NPT::ChangeState()
{
- if(OPvPCapturePoint::Update(diff))
+ if(fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
{
- if(m_OldState != m_State || fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
+ // if changing from controlling alliance to horde or vice versa
+ if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
{
- // if changing from controlling alliance to horde or vice versa
- if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_A));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_H));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;
- }
-
- uint32 artkit = 21;
-
- switch(m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- if(m_ShiftPhase == m_ShiftMaxPhase)
- m_TowerState = EP_TS_A;
- else
- m_TowerState = EP_TS_A_P;
- artkit = 2;
- SummonGO(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = ALLIANCE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- if(m_ShiftPhase == -m_ShiftMaxPhase)
- m_TowerState = EP_TS_H;
- else
- m_TowerState = EP_TS_H_P;
- artkit = 1;
- SummonGO(HORDE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = HORDE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- m_SummonedGOSide = 0;
- DelObject(EP_NPT_BUFF);
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);
- if(flag)
- {
- flag->SetGoArtKit(artkit);
- flag->SendUpdateObjectToAllExcept(NULL);
- }
- if(flag2)
- {
- flag2->SetGoArtKit(artkit);
- flag2->SendUpdateObjectToAllExcept(NULL);
- }
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_A));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;
+ }
+ else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
+ {
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_NPT_H));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = 0;
+ }
- UpdateTowerState();
+ uint32 artkit = 21;
- // complete quest objective
- if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_NPT_CM, 0);
+ switch(m_State)
+ {
+ case OBJECTIVESTATE_ALLIANCE:
+ if(m_ShiftPhase == m_ShiftMaxPhase)
+ m_TowerState = EP_TS_A;
+ else
+ m_TowerState = EP_TS_A_P;
+ artkit = 2;
+ SummonGO(ALLIANCE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = ALLIANCE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_A));
+ break;
+ case OBJECTIVESTATE_HORDE:
+ if(m_ShiftPhase == -m_ShiftMaxPhase)
+ m_TowerState = EP_TS_H;
+ else
+ m_TowerState = EP_TS_H_P;
+ artkit = 1;
+ SummonGO(HORDE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_NPT] = HORDE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_NPT_H));
+ break;
+ case OBJECTIVESTATE_NEUTRAL:
+ m_TowerState = EP_TS_N;
+ m_SummonedGOSide = 0;
+ DelObject(EP_NPT_BUFF);
+ break;
+ case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
+ case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
+ m_TowerState = EP_TS_N_A;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
+ case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
+ m_TowerState = EP_TS_N_H;
+ break;
}
- if(m_ShiftPhase != m_OldPhase)
+ GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
+ GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_NPT_FLAGS]);
+ if(flag)
{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
+ flag->SetGoArtKit(artkit);
+ flag->SendUpdateObjectToAllExcept(NULL);
}
- return m_OldState != m_State;
+ if(flag2)
+ {
+ flag2->SetGoArtKit(artkit);
+ flag2->SendUpdateObjectToAllExcept(NULL);
+ }
+
+ UpdateTowerState();
+
+ // complete quest objective
+ if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
+ SendObjectiveComplete(EP_NPT_CM, 0);
}
- return false;
+}
+
+void OPvPCapturePointEP_NPT::SendChangePhase()
+{
+ // send this too, sometimes the slider disappears, dunno why :(
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
+ // send these updates to only the ones in this objective
+ uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
+ // send this too, sometimes it resets :S
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
}
void OPvPCapturePointEP_NPT::FillInitialWorldStates(WorldPacket &data)
@@ -348,94 +338,89 @@ OPvPCapturePointEP_CGT::OPvPCapturePointEP_CGT(OutdoorPvP *pvp)
AddObject(EP_CGT_FLAGS,EPTowerFlags[EP_CGT].entry,EPTowerFlags[EP_CGT].map,EPTowerFlags[EP_CGT].x,EPTowerFlags[EP_CGT].y,EPTowerFlags[EP_CGT].z,EPTowerFlags[EP_CGT].o,EPTowerFlags[EP_CGT].rot0,EPTowerFlags[EP_CGT].rot1,EPTowerFlags[EP_CGT].rot2,EPTowerFlags[EP_CGT].rot3);
}
-bool OPvPCapturePointEP_CGT::Update(uint32 diff)
+void OPvPCapturePointEP_CGT::ChangeState()
{
- if(OPvPCapturePoint::Update(diff))
+ if(fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
{
- if(m_OldState != m_State || fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
+ // if changing from controlling alliance to horde or vice versa
+ if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
{
- // if changing from controlling alliance to horde or vice versa
- if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_CGT_A));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = 0;
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_CGT_H));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = 0;
- }
-
- uint32 artkit = 21;
-
- switch(m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- if(m_ShiftPhase == m_ShiftMaxPhase)
- m_TowerState = EP_TS_A;
- else
- m_TowerState = EP_TS_A_P;
- artkit = 2;
- LinkGraveYard(ALLIANCE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = ALLIANCE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- if(m_ShiftPhase == -m_ShiftMaxPhase)
- m_TowerState = EP_TS_H;
- else
- m_TowerState = EP_TS_H_P;
- artkit = 1;
- LinkGraveYard(HORDE);
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = HORDE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_CGT_FLAGS]);
- if(flag)
- {
- flag->SetGoArtKit(artkit);
- flag->SendUpdateObjectToAllExcept(NULL);
- }
- if(flag2)
- {
- flag2->SetGoArtKit(artkit);
- flag2->SendUpdateObjectToAllExcept(NULL);
- }
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_CGT_A));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = 0;
+ }
+ else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
+ {
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_CGT_H));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = 0;
+ }
- UpdateTowerState();
+ uint32 artkit = 21;
- // complete quest objective
- if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_CGT_CM, 0);
+ switch(m_State)
+ {
+ case OBJECTIVESTATE_ALLIANCE:
+ if(m_ShiftPhase == m_ShiftMaxPhase)
+ m_TowerState = EP_TS_A;
+ else
+ m_TowerState = EP_TS_A_P;
+ artkit = 2;
+ LinkGraveYard(ALLIANCE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = ALLIANCE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_A));
+ break;
+ case OBJECTIVESTATE_HORDE:
+ if(m_ShiftPhase == -m_ShiftMaxPhase)
+ m_TowerState = EP_TS_H;
+ else
+ m_TowerState = EP_TS_H_P;
+ artkit = 1;
+ LinkGraveYard(HORDE);
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_CGT] = HORDE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_CGT_H));
+ break;
+ case OBJECTIVESTATE_NEUTRAL:
+ m_TowerState = EP_TS_N;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
+ case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
+ m_TowerState = EP_TS_N_A;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
+ case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
+ m_TowerState = EP_TS_N_H;
+ break;
}
- if(m_ShiftPhase != m_OldPhase)
+ GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
+ GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_CGT_FLAGS]);
+ if(flag)
{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
+ flag->SetGoArtKit(artkit);
+ flag->SendUpdateObjectToAllExcept(NULL);
}
- return m_OldState != m_State;
+ if(flag2)
+ {
+ flag2->SetGoArtKit(artkit);
+ flag2->SendUpdateObjectToAllExcept(NULL);
+ }
+
+ UpdateTowerState();
+
+ // complete quest objective
+ if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
+ SendObjectiveComplete(EP_CGT_CM, 0);
}
- return false;
+}
+
+void OPvPCapturePointEP_CGT::SendChangePhase()
+{
+ // send this too, sometimes the slider disappears, dunno why :(
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
+ // send these updates to only the ones in this objective
+ uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
+ // send this too, sometimes it resets :S
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
}
void OPvPCapturePointEP_CGT::FillInitialWorldStates(WorldPacket &data)
@@ -497,96 +482,91 @@ OPvPCapturePointEP_PWT::OPvPCapturePointEP_PWT(OutdoorPvP *pvp)
AddObject(EP_PWT_FLAGS,EPTowerFlags[EP_PWT].entry,EPTowerFlags[EP_PWT].map,EPTowerFlags[EP_PWT].x,EPTowerFlags[EP_PWT].y,EPTowerFlags[EP_PWT].z,EPTowerFlags[EP_PWT].o,EPTowerFlags[EP_PWT].rot0,EPTowerFlags[EP_PWT].rot1,EPTowerFlags[EP_PWT].rot2,EPTowerFlags[EP_PWT].rot3);
}
-bool OPvPCapturePointEP_PWT::Update(uint32 diff)
+void OPvPCapturePointEP_PWT::ChangeState()
{
- if(OPvPCapturePoint::Update(diff))
+ if(fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
{
- if(m_OldState != m_State || fabs(m_ShiftPhase) == m_ShiftMaxPhase) // state won't change, only phase when maxed out!
+ // if changing from controlling alliance to horde or vice versa
+ if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
{
- // if changing from controlling alliance to horde or vice versa
- if( m_OldState == OBJECTIVESTATE_ALLIANCE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_PWT_A));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = 0;
- }
- else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
- {
- sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_PWT_H));
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = 0;
- }
-
- uint32 artkit = 21;
-
- switch(m_State)
- {
- case OBJECTIVESTATE_ALLIANCE:
- if(m_ShiftPhase == m_ShiftMaxPhase)
- m_TowerState = EP_TS_A;
- else
- m_TowerState = EP_TS_A_P;
- SummonFlightMaster(ALLIANCE);
- artkit = 2;
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = ALLIANCE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_A));
- break;
- case OBJECTIVESTATE_HORDE:
- if(m_ShiftPhase == -m_ShiftMaxPhase)
- m_TowerState = EP_TS_H;
- else
- m_TowerState = EP_TS_H_P;
- SummonFlightMaster(HORDE);
- artkit = 1;
- ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = HORDE;
- if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_H));
- break;
- case OBJECTIVESTATE_NEUTRAL:
- m_TowerState = EP_TS_N;
- DelCreature(EP_PWT_FLIGHTMASTER);
- m_FlightMasterSpawned = 0;
- break;
- case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
- case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
- m_TowerState = EP_TS_N_A;
- break;
- case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
- case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
- m_TowerState = EP_TS_N_H;
- break;
- }
-
- GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
- GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_PWT_FLAGS]);
- if(flag)
- {
- flag->SetGoArtKit(artkit);
- flag->SendUpdateObjectToAllExcept(NULL);
- }
- if(flag2)
- {
- flag2->SetGoArtKit(artkit);
- flag2->SendUpdateObjectToAllExcept(NULL);
- }
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_PWT_A));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = 0;
+ }
+ else if ( m_OldState == OBJECTIVESTATE_HORDE && m_OldState != m_State )
+ {
+ sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_LOOSE_PWT_H));
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = 0;
+ }
- UpdateTowerState();
+ uint32 artkit = 21;
- // complete quest objective
- if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
- SendObjectiveComplete(EP_PWT_CM, 0);
+ switch(m_State)
+ {
+ case OBJECTIVESTATE_ALLIANCE:
+ if(m_ShiftPhase == m_ShiftMaxPhase)
+ m_TowerState = EP_TS_A;
+ else
+ m_TowerState = EP_TS_A_P;
+ SummonFlightMaster(ALLIANCE);
+ artkit = 2;
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = ALLIANCE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_A));
+ break;
+ case OBJECTIVESTATE_HORDE:
+ if(m_ShiftPhase == -m_ShiftMaxPhase)
+ m_TowerState = EP_TS_H;
+ else
+ m_TowerState = EP_TS_H_P;
+ SummonFlightMaster(HORDE);
+ artkit = 1;
+ ((OutdoorPvPEP*)m_PvP)->EP_Controls[EP_PWT] = HORDE;
+ if(m_OldState != m_State) sWorld.SendZoneText(EP_GraveYardZone,objmgr.GetTrinityStringForDBCLocale(LANG_OPVP_EP_CAPTURE_PWT_H));
+ break;
+ case OBJECTIVESTATE_NEUTRAL:
+ m_TowerState = EP_TS_N;
+ DelCreature(EP_PWT_FLIGHTMASTER);
+ m_FlightMasterSpawned = 0;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_ALLIANCE_CHALLENGE:
+ case OBJECTIVESTATE_HORDE_ALLIANCE_CHALLENGE:
+ m_TowerState = EP_TS_N_A;
+ break;
+ case OBJECTIVESTATE_NEUTRAL_HORDE_CHALLENGE:
+ case OBJECTIVESTATE_ALLIANCE_HORDE_CHALLENGE:
+ m_TowerState = EP_TS_N_H;
+ break;
}
- if(m_ShiftPhase != m_OldPhase)
+ GameObject* flag = HashMapHolder<GameObject>::Find(m_CapturePointGUID);
+ GameObject* flag2 = HashMapHolder<GameObject>::Find(m_Objects[EP_PWT_FLAGS]);
+ if(flag)
{
- // send this too, sometimes the slider disappears, dunno why :(
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
- // send these updates to only the ones in this objective
- uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
- // send this too, sometimes it resets :S
- SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
+ flag->SetGoArtKit(artkit);
+ flag->SendUpdateObjectToAllExcept(NULL);
}
- return m_OldState != m_State;
+ if(flag2)
+ {
+ flag2->SetGoArtKit(artkit);
+ flag2->SendUpdateObjectToAllExcept(NULL);
+ }
+
+ UpdateTowerState();
+
+ // complete quest objective
+ if(m_TowerState == EP_TS_A || m_TowerState == EP_TS_H)
+ SendObjectiveComplete(EP_PWT_CM, 0);
}
- return false;
+}
+
+void OPvPCapturePointEP_PWT::SendChangePhase()
+{
+ // send this too, sometimes the slider disappears, dunno why :(
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_DISPLAY, 1);
+ // send these updates to only the ones in this objective
+ uint32 phase = (uint32)ceil(( m_ShiftPhase + m_ShiftMaxPhase) / ( 2 * m_ShiftMaxPhase ) * 100.0f);
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_POS, phase);
+ // send this too, sometimes it resets :S
+ SendUpdateWorldState(EP_UI_TOWER_SLIDER_N, m_NeutralValue);
}
void OPvPCapturePointEP_PWT::FillInitialWorldStates(WorldPacket &data)