summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/ai/ai_instance.cpp3
-rw-r--r--src/script/squirrel.cpp2
2 files changed, 3 insertions, 2 deletions
diff --git a/src/ai/ai_instance.cpp b/src/ai/ai_instance.cpp
index 384f2b4be..1405f6226 100644
--- a/src/ai/ai_instance.cpp
+++ b/src/ai/ai_instance.cpp
@@ -142,7 +142,8 @@ AIInstance::AIInstance(AIInfo *info) :
if (strcmp(main_script, "%_dummy") == 0) {
extern void AI_CreateAIDummy(HSQUIRRELVM vm);
AI_CreateAIDummy(this->engine->GetVM());
- } else if (!this->engine->LoadScript(main_script)) {
+ } else if (!this->engine->LoadScript(main_script) || this->engine->IsSuspended()) {
+ if (this->engine->IsSuspended()) AILog::Error("This AI took too long to load script. AI is not started.");
this->Died();
return;
}
diff --git a/src/script/squirrel.cpp b/src/script/squirrel.cpp
index c9010cfcd..67a927bbe 100644
--- a/src/script/squirrel.cpp
+++ b/src/script/squirrel.cpp
@@ -473,7 +473,7 @@ static SQInteger _io_file_read(SQUserPointer file, SQUserPointer buf, SQInteger
/* Load and run the script */
if (SQ_SUCCEEDED(LoadFile(vm, script, SQTrue))) {
sq_push(vm, -2);
- if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue))) {
+ if (SQ_SUCCEEDED(sq_call(vm, 1, SQFalse, SQTrue, 100000))) {
sq_pop(vm, 1);
return true;
}