AIController Class Reference

The Controller, the class each AI should extend. More...


Public Member Functions

 AIController (CompanyID company)
 Initializer of the AIController.
void Start ()
 This function is called to start your script.

Static Public Member Functions

static uint GetTick ()
 Find at which tick your script currently is.
static int GetOpsTillSuspend ()
 Get the number of operations the script 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 script 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.


Detailed Description

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.


Constructor & Destructor Documentation

AIController::AIController ( CompanyID  company  ) 

Initializer of the AIController.

Parameters:
company The company this AI is normally serving.


Member Function Documentation

void AIController::Start (  ) 

This function is called to start your script.

Your script starts here. If you return from this function, your script dies, so make sure that doesn't happen.

Note:
Cannot be called from within your script.

static uint AIController::GetTick (  )  [static]

Find at which tick your script currently is.

Returns:
returns the current tick.

static int AIController::GetOpsTillSuspend (  )  [static]

Get the number of operations the script may still execute this tick.

Returns:
The amount of operations left to execute.
Note:
This number can go negative when certain uninteruptable operations are executed. The amount of operations that you go over the limit will be deducted from the next tick you would be allowed to run.

static int AIController::GetSetting ( const char *  name  )  [static]

Get the value of one of your settings you set via info.nut.

Parameters:
name The name of the setting.
Returns:
the value for the setting, or -1 if the setting is not known.

static 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.

Returns:
The version in newgrf format.

static void AIController::SetCommandDelay ( int  ticks  )  [static]

Change the minimum amount of time the script 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 script, you can control that number here.

Parameters:
ticks The minimum amount of ticks to wait.
Precondition:
Ticks should be positive. Too big values will influence performance of the script.
Note:
If the number is lower than the MP setting, the MP setting wins.

static void AIController::Sleep ( int  ticks  )  [static]

Sleep for X ticks.

The code continues after this line when the X script ticks are passed. Mind that an script tick is different from in-game ticks and differ per script speed.

Parameters:
ticks the ticks to wait
Precondition:
ticks > 0.
Postcondition:
the value of GetTick() will be changed exactly 'ticks' in value after calling this.

static 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.

Parameters:
error_msg If true, it is a Squirrel error message.
message The message Squirrel logged.
Note:
Use AILog.Info/Warning/Error instead of 'print'.

static HSQOBJECT AIController::Import ( const char *  library,
const char *  class_name,
int  version 
) [static]

Import a library.

Parameters:
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.
Returns:
The loaded library object. If class_name is set, it is also available (under the scope of the import) under that name.
Note:
This command can be called from the global space, and does not need an instance.


Generated on Thu May 31 21:43:01 2012 for OpenTTD NoAI API by  doxygen 1.5.6