The Controller, the class each AI should extend. More...
#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 () |
Get the name of this class to identify it towards squirrel. | |
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 |
The Controller, the class each AI should extend.
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.
static const char* AIController::GetClassName | ( | ) | [inline, static] |
Get the name of this class to identify it towards squirrel.
Definition at line 28 of file ai_controller.hpp.
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 69 of file ai_controller.cpp.
References _current_company, AIConfig::GetConfig(), and AIConfig::GetSetting().
uint AIController::GetTick | ( | ) | [static] |
Find at which tick your AI currently is.
Definition at line 64 of file ai_controller.cpp.
References _current_company.
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 74 of file ai_controller.cpp.
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 79 of file ai_controller.cpp.
References ttd_strlcpy().
Referenced by AIScanner::ImportLibrary().
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.
Definition at line 43 of file ai_controller.cpp.
References AILog::Log(), AILog::LOG_SQ_ERROR, and AILog::LOG_SQ_INFO.
Referenced by PrintFunc().
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 23 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 29 of file ai_controller.cpp.
References AIObject::CanSuspend(), and AILog::Warning().
void AIController::Start | ( | ) |