aboutsummaryrefslogtreecommitdiff
path: root/src/game/Wintergrasp.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-06-01 23:45:55 -0500
committermegamage <none@none>2009-06-01 23:45:55 -0500
commit77889ffa8bb914abc46ebf93c6c150f3d11cc1e4 (patch)
tree0b10f774146980e1fa08afaa39f563b48befa7a5 /src/game/Wintergrasp.cpp
parentd0878ec4143147bb03973b23f1519222e1636d97 (diff)
*Save/load wintergrasp building health when grid loaded/unloaded.
--HG-- branch : trunk
Diffstat (limited to 'src/game/Wintergrasp.cpp')
-rw-r--r--src/game/Wintergrasp.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/game/Wintergrasp.cpp b/src/game/Wintergrasp.cpp
index 78c27dab9fe..c295529aef0 100644
--- a/src/game/Wintergrasp.cpp
+++ b/src/game/Wintergrasp.cpp
@@ -193,7 +193,19 @@ void OPvPWintergrasp::OnGameObjectCreate(GameObject *go, bool add)
{
BuildingStateMap::const_iterator itr = m_buildingStates.find(go->GetDBTableGUIDLow());
if(itr != m_buildingStates.end())
+ {
itr->second->building = add ? go : NULL;
+ if(!add || itr->second->damageState == DAMAGE_INTACT && !itr->second->health)
+ itr->second->health = go->GetGOValue()->building.health;
+ else
+ {
+ go->GetGOValue()->building.health = itr->second->health;
+ if(itr->second->damageState == DAMAGE_DAMAGED)
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED);
+ else if(itr->second->damageState == DAMAGE_DESTROYED)
+ go->SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED);
+ }
+ }
}
}