summaryrefslogtreecommitdiff
path: root/src/ai/ai_instance.hpp
diff options
context:
space:
mode:
authortruebrain <truebrain@openttd.org>2011-11-29 23:21:24 +0000
committertruebrain <truebrain@openttd.org>2011-11-29 23:21:24 +0000
commit75c4bd280a720592ec4df26efbedd9df5baa2d8f (patch)
tree7e4a3248a93b55f9add46b9935bf3e1d8da93c84 /src/ai/ai_instance.hpp
parentbbd9facb44dc09ded5500918319b770c63c0a981 (diff)
downloadopenttd-75c4bd280a720592ec4df26efbedd9df5baa2d8f.tar.xz
(svn r23359) -Codechange: move AI_VMSuspend to Script_Suspend (and to its own file)
Diffstat (limited to 'src/ai/ai_instance.hpp')
-rw-r--r--src/ai/ai_instance.hpp58
1 files changed, 11 insertions, 47 deletions
diff --git a/src/ai/ai_instance.hpp b/src/ai/ai_instance.hpp
index 63da6f967..60caaefd2 100644
--- a/src/ai/ai_instance.hpp
+++ b/src/ai/ai_instance.hpp
@@ -13,43 +13,7 @@
#define AI_INSTANCE_HPP
#include <squirrel.h>
-
-/**
- * The callback function when an AI suspends.
- */
-typedef void (AISuspendCallbackProc)(class AIInstance *instance);
-
-/**
- * A throw-class that is given when the VM wants to suspend.
- */
-class AI_VMSuspend {
-public:
- /**
- * Create the suspend exception.
- * @param time The amount of ticks to suspend.
- * @param callback The callback to call when the AI may resume again.
- */
- AI_VMSuspend(int time, AISuspendCallbackProc *callback) :
- time(time),
- callback(callback)
- {}
-
- /**
- * Get the amount of ticks the AI should be suspended.
- * @return The amount of AI ticks to suspend the AI.
- */
- int GetSuspendTime() { return time; }
-
- /**
- * Get the callback to call when the AI can run again.
- * @return The callback function to run.
- */
- AISuspendCallbackProc *GetSuspendCallback() { return callback; }
-
-private:
- int time; ///< Amount of ticks to suspend the AI.
- AISuspendCallbackProc *callback; ///< Callback function to call when the AI can run again.
-};
+#include "../script/script_suspend.hpp"
/** Runtime information about an AI like a pointer to the squirrel vm and the current state. */
class AIInstance {
@@ -178,16 +142,16 @@ public:
void InsertEvent(class ScriptEvent *event);
private:
- class ScriptController *controller; ///< The AI main class.
- class ScriptStorage *storage; ///< Some global information for each running AI.
- class Squirrel *engine; ///< A wrapper around the squirrel vm.
- SQObject *instance; ///< Squirrel-pointer to the AI main class.
-
- bool is_started; ///< Is the AIs constructor executed?
- bool is_dead; ///< True if the AI has been stopped.
- bool is_save_data_on_stack; ///< Is the save data still on the squirrel stack?
- int suspend; ///< The amount of ticks to suspend this AI before it's allowed to continue.
- AISuspendCallbackProc *callback; ///< Callback that should be called in the next tick the AI runs.
+ class ScriptController *controller; ///< The AI main class.
+ class ScriptStorage *storage; ///< Some global information for each running AI.
+ class Squirrel *engine; ///< A wrapper around the squirrel vm.
+ SQObject *instance; ///< Squirrel-pointer to the AI main class.
+
+ bool is_started; ///< Is the AIs constructor executed?
+ bool is_dead; ///< True if the AI has been stopped.
+ bool is_save_data_on_stack; ///< Is the save data still on the squirrel stack?
+ int suspend; ///< The amount of ticks to suspend this AI before it's allowed to continue.
+ Script_SuspendCallbackProc *callback; ///< Callback that should be called in the next tick the AI runs.
/**
* Register all API functions to the VM.