diff options
author | megamage <none@none> | 2009-06-01 23:45:55 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-06-01 23:45:55 -0500 |
commit | 77889ffa8bb914abc46ebf93c6c150f3d11cc1e4 (patch) | |
tree | 0b10f774146980e1fa08afaa39f563b48befa7a5 /src/game/Wintergrasp.cpp | |
parent | d0878ec4143147bb03973b23f1519222e1636d97 (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.cpp | 12 |
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); + } + } } } |