diff options
author | Machiavelli <none@none> | 2009-06-17 17:14:25 +0200 |
---|---|---|
committer | Machiavelli <none@none> | 2009-06-17 17:14:25 +0200 |
commit | d9057a8189abf953569f62c6a2b0e1aeb242fb32 (patch) | |
tree | 8b43dad76a1fea951fab889010d843d33fff6d0a /src/game/InstanceData.cpp | |
parent | 87790145c548bfa18d1c964f062268905ab7137c (diff) | |
parent | e405e6f9ede8c9ce5db647fdffb1dd6c008856eb (diff) |
*Merge
--HG--
branch : trunk
Diffstat (limited to 'src/game/InstanceData.cpp')
-rw-r--r-- | src/game/InstanceData.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/game/InstanceData.cpp b/src/game/InstanceData.cpp index d2b341b2d2c..551db4eb2cb 100644 --- a/src/game/InstanceData.cpp +++ b/src/game/InstanceData.cpp @@ -242,3 +242,40 @@ std::string InstanceData::GetBossSaveData() saveStream << (uint32)i->state << " "; return saveStream.str(); } + +void InstanceData::DoUseDoorOrButton(uint64 uiGuid, uint32 uiWithRestoreTime, bool bUseAlternativeState) +{ + if (!uiGuid) + return; + + GameObject* pGo = instance->GetGameObject(uiGuid); + + if (pGo) + { + if (pGo->GetGoType() == GAMEOBJECT_TYPE_DOOR || pGo->GetGoType() == GAMEOBJECT_TYPE_BUTTON) + { + if (pGo->getLootState() == GO_READY) + pGo->UseDoorOrButton(uiWithRestoreTime,bUseAlternativeState); + else if (pGo->getLootState() == GO_ACTIVATED) + pGo->ResetDoorOrButton(); + } + else + error_log("SD2: Script call DoUseDoorOrButton, but gameobject entry %u is type %u.",pGo->GetEntry(),pGo->GetGoType()); + } +} + +void InstanceData::DoRespawnGameObject(uint64 uiGuid, uint32 uiTimeToDespawn) +{ + if (GameObject* pGo = instance->GetGameObject(uiGuid)) + { + //not expect any of these should ever be handled + if (pGo->GetGoType()==GAMEOBJECT_TYPE_FISHINGNODE || pGo->GetGoType()==GAMEOBJECT_TYPE_DOOR || + pGo->GetGoType()==GAMEOBJECT_TYPE_BUTTON || pGo->GetGoType()==GAMEOBJECT_TYPE_TRAP) + return; + + if (pGo->isSpawned()) + return; + + pGo->SetRespawnTime(uiTimeToDespawn); + } +} |