summaryrefslogtreecommitdiff
path: root/src/ai/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/ai/api')
-rw-r--r--src/ai/api/ai_abstractlist.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/ai/api/ai_abstractlist.cpp b/src/ai/api/ai_abstractlist.cpp
index 5fa0a1b23..f878933da 100644
--- a/src/ai/api/ai_abstractlist.cpp
+++ b/src/ai/api/ai_abstractlist.cpp
@@ -759,6 +759,7 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm) {
/* Don't allow docommand from a Valuator, as we can't resume in
* mid-code */
+ bool backup_allow = AIObject::GetAllowDoCommand();
AIObject::SetAllowDoCommand(false);
sq_addref(vm, &obj_func);
@@ -788,7 +789,7 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm) {
/* Call the function */
if (SQ_FAILED(sq_call(vm, nparam + 2, SQTrue, SQTrue))) {
- AIObject::SetAllowDoCommand(true);
+ AIObject::SetAllowDoCommand(backup_allow);
return SQ_ERROR;
}
@@ -810,7 +811,7 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm) {
sq_release(vm, &obj_func);
for (int i = 0; i < nparam; i++) sq_release(vm, &obj_params[i]);
- AIObject::SetAllowDoCommand(true);
+ AIObject::SetAllowDoCommand(backup_allow);
return sq_throwerror(vm, _SC("return value of valuator is not valid (not integer/bool)"));
}
}
@@ -826,6 +827,6 @@ SQInteger AIAbstractList::Valuate(HSQUIRRELVM vm) {
sq_release(vm, &obj_func);
for (int i = 0; i < nparam; i++) sq_release(vm, &obj_params[i]);
- AIObject::SetAllowDoCommand(true);
+ AIObject::SetAllowDoCommand(backup_allow);
return 0;
}