(svn r23358) -Codechange: move AI_FatalError to Script_FatalError (and to its own file)

This commit is contained in:
truebrain
2011-11-29 23:21:13 +00:00
parent b4112dcf8e
commit 1e13fa3dee
12 changed files with 65 additions and 32 deletions

View File

@@ -18,6 +18,7 @@
#include "ai_config.hpp"
#include "ai_gui.hpp"
#include "../script/script_fatalerror.hpp"
#include "../script/script_storage.hpp"
#include "ai_instance.hpp"
@@ -154,7 +155,7 @@ void AIInstance::Initialize(AIInfo *info)
return;
}
ScriptObject::SetAllowDoCommand(true);
} catch (AI_FatalError e) {
} catch (Script_FatalError e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -375,7 +376,7 @@ void AIInstance::GameLoop()
} catch (AI_VMSuspend e) {
this->suspend = e.GetSuspendTime();
this->callback = e.GetSuspendCallback();
} catch (AI_FatalError e) {
} catch (Script_FatalError e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -396,7 +397,7 @@ void AIInstance::GameLoop()
} catch (AI_VMSuspend e) {
this->suspend = e.GetSuspendTime();
this->callback = e.GetSuspendCallback();
} catch (AI_FatalError e) {
} catch (Script_FatalError e) {
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();
@@ -640,9 +641,9 @@ void AIInstance::Save()
this->engine->CrashOccurred();
return;
}
} catch (AI_FatalError e) {
} catch (Script_FatalError e) {
/* If we don't mark the AI as dead here cleaning up the squirrel
* stack could throw AI_FatalError again. */
* stack could throw Script_FatalError again. */
this->is_dead = true;
this->engine->ThrowError(e.GetErrorMessage());
this->engine->ResumeError();

View File

@@ -51,29 +51,6 @@ private:
AISuspendCallbackProc *callback; ///< Callback function to call when the AI can run again.
};
/**
* A throw-class that is given when the AI made a fatal error.
*/
class AI_FatalError {
public:
/**
* Creates a "fatal error" exception.
* @param msg The message describing the cause of the fatal error.
*/
AI_FatalError(const char *msg) :
msg(msg)
{}
/**
* The error message associated with the fatal error.
* @return The error message.
*/
const char *GetErrorMessage() { return msg; }
private:
const char *msg; ///< The error message.
};
/** Runtime information about an AI like a pointer to the squirrel vm and the current state. */
class AIInstance {
public: