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/api | |
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/api')
-rw-r--r-- | src/script/api/script_object.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/script/api/script_object.cpp b/src/script/api/script_object.cpp index 7da23d6f7..2852c4ae9 100644 --- a/src/script/api/script_object.cpp +++ b/src/script/api/script_object.cpp @@ -300,7 +300,12 @@ ScriptObject::ActiveInstance::~ActiveInstance() if (_generating_world) { IncreaseDoCommandCosts(res.GetCost()); - if (callback != NULL) callback(GetActiveInstance()); + if (callback != NULL) { + /* Insert return value into to stack and throw a control code that + * the return value in the stack should be used. */ + callback(GetActiveInstance()); + throw SQInteger(1); + } return true; } else if (_networking) { /* Suspend the script till the command is really executed. */ |