The Controller, the class each Script should extend. More...
#include <script_controller.hpp>
Public Member Functions | |
ScriptController () | |
Initializer of the ScriptController. | |
~ScriptController () | |
Destructor of the ScriptController. | |
void | Start () |
This function is called to start your AI. | |
Static Public Member Functions | |
static uint | GetTick () |
Find at which tick your AI currently is. | |
static int | GetOpsTillSuspend () |
Get the number of operations the AI may still execute this tick. | |
static int | GetSetting (const char *name) |
Get the value of one of your settings you set via info.nut. | |
static uint | GetVersion () |
Get the OpenTTD version of this executable. | |
static void | SetCommandDelay (int ticks) |
Change the minimum amount of time the AI should be put in suspend mode when you execute a command. | |
static void | Sleep (int ticks) |
Sleep for X ticks. | |
static void | Print (bool error_msg, const char *message) |
When Squirrel triggers a print, this function is called. | |
static HSQOBJECT | Import (const char *library, const char *class_name, int version) |
Import a library. | |
Private Types | |
typedef std::map< const char *, const char *, StringCompare > | LoadedLibraryList |
The type for loaded libraries. | |
Private Member Functions | |
void | RegisterClasses () |
Register all classes that are known inside the NoAI API. | |
Private Attributes | |
uint | ticks |
The amount of ticks we're sleeping. | |
LoadedLibraryList | loaded_library |
The libraries we loaded. | |
int | loaded_library_count |
The amount of libraries. | |
Friends | |
class | AIScanner |
class | ScriptInstance |
The Controller, the class each Script should extend.
It creates the Script, makes sure the logic kicks in correctly, and that GetTick() has a valid value. ai
Definition at line 24 of file script_controller.hpp.
int ScriptController::GetOpsTillSuspend | ( | ) | [static] |
Get the number of operations the AI may still execute this tick.
Definition at line 70 of file script_controller.cpp.
References ScriptObject::GetActiveInstance(), and ScriptInstance::GetOpsTillSuspend().
int ScriptController::GetSetting | ( | const char * | name | ) | [static] |
Get the value of one of your settings you set via info.nut.
name | The name of the setting. |
Definition at line 75 of file script_controller.cpp.
References ScriptObject::GetActiveInstance(), and ScriptInstance::GetSetting().
uint ScriptController::GetTick | ( | ) | [static] |
Find at which tick your AI currently is.
Definition at line 65 of file script_controller.cpp.
References ScriptObject::GetActiveInstance(), ScriptInstance::GetController(), and ticks.
uint ScriptController::GetVersion | ( | ) | [static] |
Get the OpenTTD version of this executable.
The version is formatted with the bits having the following meaning: 28-31 major version 24-27 minor version 20-23 build 19 1 if it is a release, 0 if it is not. 0-18 revision number; 0 when the revision is unknown.
Definition at line 80 of file script_controller.cpp.
HSQOBJECT ScriptController::Import | ( | const char * | library, | |
const char * | class_name, | |||
int | version | |||
) | [static] |
Import a library.
library | The name of the library to import. | |
class_name | Under which name you want it to be available (or "" if you just want the returning object). | |
version | Which version you want specificly. |
Definition at line 85 of file script_controller.cpp.
References ScriptInstance::engine, error(), ScriptInstance::FindLibrary(), ScriptObject::GetActiveInstance(), ScriptInstance::GetController(), ScriptInfo::GetInstanceName(), ScriptInfo::GetMainScript(), Squirrel::GetVM(), loaded_library, loaded_library_count, Squirrel::LoadScript(), StrEmpty(), strtolower(), and ttd_strlcpy().
void ScriptController::Print | ( | bool | error_msg, | |
const char * | message | |||
) | [static] |
When Squirrel triggers a print, this function is called.
Squirrel calls this when 'print' is used, or when the script made an error.
Definition at line 44 of file script_controller.cpp.
References ScriptLog::Log(), ScriptLog::LOG_SQ_ERROR, and ScriptLog::LOG_SQ_INFO.
Referenced by PrintFunc().
void ScriptController::SetCommandDelay | ( | int | ticks | ) | [static] |
Change the minimum amount of time the AI should be put in suspend mode when you execute a command.
Normally in SP this is 1, and in MP it is what ever delay the server has been programmed to delay commands (normally between 1 and 5). To give a more 'real' effect to your AI, you can control that number here.
ticks | The minimum amount of ticks to wait. |
Definition at line 24 of file script_controller.cpp.
References ScriptObject::SetDoCommandDelay().
void ScriptController::Sleep | ( | int | ticks | ) | [static] |
Sleep for X ticks.
The code continues after this line when the X AI ticks are passed. Mind that an AI tick is different from in-game ticks and differ per AI speed.
ticks | the ticks to wait |
Definition at line 30 of file script_controller.cpp.
References ScriptObject::CanSuspend(), and ScriptLog::Warning().
void ScriptController::Start | ( | ) |