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 | ( | ) |
1.7.1