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); +    } +}  | 
