summaryrefslogtreecommitdiffstats
path: root/src/script
diff options
context:
space:
mode:
authorkrzys-h <krzys_h@interia.pl>2014-07-11 15:24:44 +0200
committerkrzys-h <krzys_h@interia.pl>2014-07-11 15:24:44 +0200
commit96d49d84aafecd78c902681f20de6207badf7e85 (patch)
tree7a835fce4f264c6c0886441c4f79e02cdf47582c /src/script
parent5223ef1fb116780298495a4d2f63e6c2c39fdfbd (diff)
parent852223262055440569ecca70f1b9da46089424c4 (diff)
downloadcolobot-96d49d84aafecd78c902681f20de6207badf7e85.tar.gz
colobot-96d49d84aafecd78c902681f20de6207badf7e85.tar.bz2
colobot-96d49d84aafecd78c902681f20de6207badf7e85.zip
Merge branch 'dev' into dev-physfs
Conflicts: data src/app/gamedata.cpp src/ui/control.cpp src/ui/edit.cpp src/ui/maindialog.cpp
Diffstat (limited to 'src/script')
-rw-r--r--src/script/script.cpp22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/script/script.cpp b/src/script/script.cpp
index f59d27e..578c07d 100644
--- a/src/script/script.cpp
+++ b/src/script/script.cpp
@@ -2865,7 +2865,6 @@ bool CScript::rShield(CBotVar* var, CBotVar* result, int& exception, void* user)
CBotTypResult CScript::cFire(CBotVar* &var, void* user)
{
-#if 0
CObject* pThis = static_cast<CObject *>(user);
ObjectType type;
@@ -2873,23 +2872,25 @@ CBotTypResult CScript::cFire(CBotVar* &var, void* user)
if ( type == OBJECT_ANT )
{
- return cOnePoint(var, user);
+ if ( var == 0 ) return CBotTypResult(CBotErrLowParam);
+ CBotTypResult ret = cPoint(var, user);
+ if ( ret.GetType() != 0 ) return ret;
+ if ( var != 0 ) return CBotTypResult(CBotErrOverParam);
}
else if ( type == OBJECT_SPIDER )
{
- return cNull(var, user);
+ if ( var != 0 ) return CBotTypResult(CBotErrOverParam);
}
else
{
- if ( var == 0 ) return CBotTypResult(CBotTypFloat);
- if ( var->GetType() > CBotTypDouble ) return CBotTypResult(CBotErrBadNum);
- var = var->GetNext();
- if ( var != 0 ) return CBotTypResult(CBotErrOverParam);
- return CBotTypResult(CBotTypFloat);
+ if ( var != 0 )
+ {
+ if ( var->GetType() > CBotTypDouble ) return CBotTypResult(CBotErrBadNum);
+ var = var->GetNext();
+ if ( var != 0 ) return CBotTypResult(CBotErrOverParam);
+ }
}
-#else
return CBotTypResult(CBotTypFloat);
-#endif
}
// Instruction "fire(delay)".
@@ -2925,6 +2926,7 @@ bool CScript::rFire(CBotVar* var, CBotVar* result, int& exception, void* user)
{
if ( var == 0 ) delay = 0.0f;
else delay = var->GetValFloat();
+ if ( delay < 0.0f ) delay = -delay;
err = script->m_primaryTask->StartTaskFire(delay);
}