#include <ai_controller.hpp>
Public Member Functions | |
AIController () | |
Initializer of the AIController. | |
~AIController () | |
Destructor of the AIController. | |
void | Start () |
This function is called to start your AI. | |
Static Public Member Functions | |
static const char * | GetClassName () |
static uint | GetTick () |
Find at which tick your AI currently is. | |
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. | |
Private Types | |
typedef std::map< const char *, const char *, StringCompare > | LoadedLibraryList |
Private Member Functions | |
void | RegisterClasses () |
Register all classes that are known inside the NoAI API. | |
bool | LoadedLibrary (const char *library_name, int *next_number, char *fake_class_name, int fake_class_name_len) |
Check if a library is already loaded. | |
void | AddLoadedLibrary (const char *library_name, const char *fake_class_name) |
Add a library as loaded. | |
Private Attributes | |
uint | ticks |
LoadedLibraryList | loaded_library |
int | loaded_library_count |
Friends | |
class | AIScanner |
class | AIInstance |
It creates the AI, makes sure the logic kicks in correctly, and that GetTick() has a valid value.
Definition at line 22 of file ai_controller.hpp.
void AIController::Start | ( | ) |
This function is called to start your AI.
Your AI starts here. If you return from this function, your AI dies, so make sure that doesn't happen.
uint AIController::GetTick | ( | ) | [static] |
Find at which tick your AI currently is.
Definition at line 66 of file ai_controller.cpp.
int AIController::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 71 of file ai_controller.cpp.
uint AIController::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 76 of file ai_controller.cpp.
void AIController::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 25 of file ai_controller.cpp.
References AIObject::SetDoCommandDelay().
void AIController::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 31 of file ai_controller.cpp.
References AIObject::CanSuspend(), and AILog::Warning().
void AIController::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.
error_msg | If true, it is a Squirrel error message. | |
message | The message Squirrel logged. |
Definition at line 45 of file ai_controller.cpp.
References AILog::Log(), AILog::LOG_SQ_ERROR, and AILog::LOG_SQ_INFO.
bool AIController::LoadedLibrary | ( | const char * | library_name, | |
int * | next_number, | |||
char * | fake_class_name, | |||
int | fake_class_name_len | |||
) | [private] |
Check if a library is already loaded.
If found, fake_class_name is filled with the fake class name as given via AddLoadedLibrary. If not found, next_number is set to the next number available for the fake namespace.
library_name | The library to check if already loaded. | |
next_number | The next available number for a library if not already loaded. | |
fake_class_name | The name the library has if already loaded. | |
fake_class_name_len | The maximum length of fake_class_name. |
Definition at line 81 of file ai_controller.cpp.
References ttd_strlcpy().