aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2012-08-23 17:25:52 +0100
committerNay <dnpd.dd@gmail.com>2012-08-23 17:25:52 +0100
commitfdf662803ab9cd5676b869138e45f340fd459e17 (patch)
treedf9a4cada302c65150b7b4bcb5330dc7d2ea3613 /src
parentd82d25857842cc5563c9106b74b9c1f6e6431130 (diff)
parenta1b3ec2e21d8510b99c2422a76dc5af004fbdc26 (diff)
Merge remote-tracking branch 'origin/master' into 4.3.4
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.cpp12
-rw-r--r--src/server/game/Battlefield/Zones/BattlefieldWG.h11
-rwxr-xr-xsrc/server/game/Entities/GameObject/GameObject.cpp11
3 files changed, 17 insertions, 17 deletions
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
index 8e58dcdc5c0..634b1bb2cea 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.cpp
@@ -523,13 +523,13 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
case NPC_WINTERGRASP_CATAPULT:
case NPC_WINTERGRASP_DEMOLISHER:
{
- if (!creature->GetCreatorGUID() || !sObjectAccessor->FindPlayer(creature->GetCreatorGUID()))
+ if (!creature->ToTempSummon()->GetSummonerGUID() || !sObjectAccessor->FindPlayer(creature->ToTempSummon()->GetSummonerGUID()))
{
creature->setDeathState(DEAD);
creature->RemoveFromWorld();
return;
}
- Player* creator = sObjectAccessor->FindPlayer(creature->GetCreatorGUID());
+ Player* creator = sObjectAccessor->FindPlayer(creature->ToTempSummon()->GetSummonerGUID());
TeamId team = creator->GetTeamId();
if (team == TEAM_HORDE)
@@ -554,7 +554,7 @@ void BattlefieldWG::OnCreatureCreate(Creature* creature)
if (GetData(BATTLEFIELD_WG_DATA_VEHICLE_A) < GetData(BATTLEFIELD_WG_DATA_MAX_VEHICLE_A))
{
UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_A, 1);
- creature->AddAura(SPELL_ALLIANCE_FLAG,creature);
+ creature->AddAura(SPELL_ALLIANCE_FLAG, creature);
creature->setFaction(creator->getFaction());
m_vehicles[team].insert(creature->GetGUID());
UpdateVehicleCountWG();
@@ -699,10 +699,10 @@ bool BattlefieldWG::FindAndRemoveVehicleFromList(Unit* vehicle)
if (m_vehicles[itr].find(vehicle->GetGUID()) != m_vehicles[itr].end())
{
m_vehicles[itr].erase(vehicle->GetGUID());
- if (itr == WintergraspFaction[TEAM_HORDE])
- UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_H,-1);
+ if (itr == TEAM_HORDE)
+ UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_H, -1);
else
- UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_A,-1);
+ UpdateData(BATTLEFIELD_WG_DATA_VEHICLE_A, -1);
return true;
}
}
diff --git a/src/server/game/Battlefield/Zones/BattlefieldWG.h b/src/server/game/Battlefield/Zones/BattlefieldWG.h
index 924ff1ad454..be062704b52 100644
--- a/src/server/game/Battlefield/Zones/BattlefieldWG.h
+++ b/src/server/game/Battlefield/Zones/BattlefieldWG.h
@@ -1192,11 +1192,14 @@ struct BfWGGameObjectBuilding
}
// Rebuild gameobject
- m_Build->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true);
+ if (m_Build->IsDestructibleBuilding())
+ {
+ m_Build->SetDestructibleState(GO_DESTRUCTIBLE_REBUILDING, NULL, true);
- // Update worldstate
- m_State = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT - (m_Team * 3);
- m_WG->SendUpdateWorldState(m_WorldState, m_State);
+ // Update worldstate
+ m_State = BATTLEFIELD_WG_OBJECTSTATE_ALLIANCE_INTACT - (m_Team * 3);
+ m_WG->SendUpdateWorldState(m_WorldState, m_State);
+ }
UpdateCreatureAndGo();
m_Build->SetUInt32Value(GAMEOBJECT_FACTION, WintergraspFaction[m_Team]);
}
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index e1b312d83d0..18ed5632793 100755
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -135,7 +135,7 @@ void GameObject::AddToWorld()
sObjectAccessor->AddObject(this);
bool startOpen = (GetGoType() == GAMEOBJECT_TYPE_DOOR || GetGoType() == GAMEOBJECT_TYPE_BUTTON ? GetGOInfo()->door.startOpen : false);
// The state can be changed after GameObject::Create but before GameObject::AddToWorld
- bool toggledState = GetGOData() ? GetGOData()->go_state == GO_STATE_READY : false;
+ bool toggledState = GetGOData() ? GetGOData()->go_state != GO_STATE_READY : false;
if (m_model)
GetMap()->InsertGameObjectModel(*m_model);
@@ -1930,7 +1930,7 @@ void GameObject::SetLootState(LootState state, Unit* unit)
bool startOpen = (GetGoType() == GAMEOBJECT_TYPE_DOOR || GetGoType() == GAMEOBJECT_TYPE_BUTTON ? GetGOInfo()->door.startOpen : false);
// Use the current go state
- if (GetGoState() != GO_STATE_ACTIVE)
+ if (GetGoState() != GO_STATE_READY)
startOpen = !startOpen;
if (state == GO_ACTIVATED || state == GO_JUST_DEACTIVATED)
@@ -1952,13 +1952,10 @@ void GameObject::SetGoState(GOState state)
// startOpen determines whether we are going to add or remove the LoS on activation
bool startOpen = (GetGoType() == GAMEOBJECT_TYPE_DOOR || GetGoType() == GAMEOBJECT_TYPE_BUTTON ? GetGOInfo()->door.startOpen : false);
- if (GetGOData() && GetGOData()->go_state == GO_STATE_READY)
+ if (state != GO_STATE_READY)
startOpen = !startOpen;
- if (state == GO_STATE_ACTIVE || state == GO_STATE_ACTIVE_ALTERNATIVE)
- EnableCollision(startOpen);
- else if (state == GO_STATE_READY)
- EnableCollision(!startOpen);
+ EnableCollision(startOpen);
}
}