diff options
author | krzys-h <krzys_h@interia.pl> | 2013-05-12 15:54:35 +0200 |
---|---|---|
committer | krzys-h <krzys_h@interia.pl> | 2013-05-12 15:54:35 +0200 |
commit | 61841b3f40c3381bd591ca14af290e46d3d9a76c (patch) | |
tree | e48cc3beb09edf27997eb39a3c160f2955798584 /src/script/script.cpp | |
parent | 1f77efb9cb3f39fae5567c3af65fd3e9ad8736aa (diff) | |
download | colobot-61841b3f40c3381bd591ca14af290e46d3d9a76c.tar.gz colobot-61841b3f40c3381bd591ca14af290e46d3d9a76c.tar.bz2 colobot-61841b3f40c3381bd591ca14af290e46d3d9a76c.zip |
Backwards combatibility for retobject() (#209)
Diffstat (limited to 'src/script/script.cpp')
-rw-r--r-- | src/script/script.cpp | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp index ba9b8e6..0d2238d 100644 --- a/src/script/script.cpp +++ b/src/script/script.cpp @@ -449,6 +449,27 @@ CBotTypResult CScript::cGetObject(CBotVar* &var, void* user) return CBotTypResult(CBotTypPointer, "object"); } +// Instruction "retobjectbyid(rank)". + +bool CScript::rGetObjectById(CBotVar* var, CBotVar* result, int& exception, void* user) +{ + CObject* pObj; + int rank; + + rank = var->GetValInt(); + + pObj = static_cast<CObject*>(CObjectManager::GetInstancePointer()->SearchInstance(rank)); + if ( pObj == 0 ) + { + result->SetPointer(0); + } + else + { + result->SetPointer(pObj->GetBotVar()); + } + return true; +} + // Instruction "retobject(rank)". bool CScript::rGetObject(CBotVar* var, CBotVar* result, int& exception, void* user) @@ -458,7 +479,7 @@ bool CScript::rGetObject(CBotVar* var, CBotVar* result, int& exception, void* us rank = var->GetValInt(); - pObj = static_cast<CObject*>(CObjectManager::GetInstancePointer()->SearchInstance(rank)); + pObj = static_cast<CObject*>(CInstanceManager::GetInstancePointer()->SearchInstance(CLASS_OBJECT, rank)); if ( pObj == 0 ) { result->SetPointer(0); @@ -3094,6 +3115,7 @@ void CScript::InitFonctions() CBotProgram::AddFunction("setresearchdone", rSetResearchDone, CScript::cOneFloat); CBotProgram::AddFunction("retobject", rGetObject, CScript::cGetObject); + CBotProgram::AddFunction("retobjectbyid", rGetObjectById, CScript::cGetObject); CBotProgram::AddFunction("destroy", rDestroy, CScript::cDestroy); CBotProgram::AddFunction("search", rSearch, CScript::cSearch); CBotProgram::AddFunction("radar", rRadar, CScript::cRadar); |