diff options
author | zuu <zuu@openttd.org> | 2013-05-29 19:31:58 +0000 |
---|---|---|
committer | zuu <zuu@openttd.org> | 2013-05-29 19:31:58 +0000 |
commit | a58427115cbf7569fad746c588cd93a9bd14b57f (patch) | |
tree | 808032e98992efdca906245fab93f5cdb555eda1 /src/script/squirrel.cpp | |
parent | 2547523c0f5a3ab09911f465b60721651d588eac (diff) | |
download | openttd-a58427115cbf7569fad746c588cd93a9bd14b57f.tar.xz |
(svn r25305) -Fix [FS#5561]: Game Script APIs that execute a DoCommand were returning the same result as in TestMode during world generation
Diffstat (limited to 'src/script/squirrel.cpp')
-rw-r--r-- | src/script/squirrel.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp index 4584b9d6c..ed87d487c 100644 --- a/src/script/squirrel.cpp +++ b/src/script/squirrel.cpp @@ -541,15 +541,19 @@ Squirrel::~Squirrel() void Squirrel::InsertResult(bool result) { sq_pushbool(this->vm, result); - vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); - vm->Pop(); + if (this->IsSuspended()) { // Called before resuming a suspended script? + vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); + vm->Pop(); + } } void Squirrel::InsertResult(int result) { sq_pushinteger(this->vm, result); - vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); - vm->Pop(); + if (this->IsSuspended()) { // Called before resuming a suspended script? + vm->GetAt(vm->_stackbase + vm->_suspended_target) = vm->GetUp(-1); + vm->Pop(); + } } /* static */ void Squirrel::DecreaseOps(HSQUIRRELVM vm, int ops) |