AIError Class Reference

Class that handles all error related functions. More...

#include <ai_error.hpp>

Inheritance diagram for AIError:
AIObject SimpleCountedObject

Public Types

enum  ErrorCategories {
  ERR_CAT_NONE = 0, ERR_CAT_GENERAL, ERR_CAT_VEHICLE, ERR_CAT_STATION,
  ERR_CAT_BRIDGE, ERR_CAT_TUNNEL, ERR_CAT_TILE, ERR_CAT_SIGN,
  ERR_CAT_RAIL, ERR_CAT_ROAD, ERR_CAT_ORDER, ERR_CAT_MARINE,
  ERR_CAT_WAYPOINT, ERR_CAT_BIT_SIZE = 8
}
 

All categories errors can be divided in.

More...
enum  ErrorMessages {
  ERR_NONE = ERR_CAT_NONE << ERR_CAT_BIT_SIZE, ERR_UNKNOWN, ERR_PRECONDITION_FAILED, ERR_PRECONDITION_STRING_TOO_LONG,
  ERR_NEWGRF_SUPPLIED_ERROR, ERR_GENERAL_BASE = ERR_CAT_GENERAL << ERR_CAT_BIT_SIZE, ERR_NOT_ENOUGH_CASH, ERR_LOCAL_AUTHORITY_REFUSES,
  ERR_ALREADY_BUILT, ERR_AREA_NOT_CLEAR, ERR_OWNED_BY_ANOTHER_COMPANY, ERR_NAME_IS_NOT_UNIQUE,
  ERR_FLAT_LAND_REQUIRED, ERR_LAND_SLOPED_WRONG, ERR_VEHICLE_IN_THE_WAY, ERR_SITE_UNSUITABLE,
  ERR_TOO_CLOSE_TO_EDGE, ERR_STATION_TOO_SPREAD_OUT
}
 

All general related error messages.

More...

Static Public Member Functions

static const char * GetClassName ()
static ErrorCategories GetErrorCategory ()
 Check the membership of the last thrown error.
static AIErrorType GetLastError ()
 Get the last error.
static char * GetLastErrorString ()
 Get the last error in string format (for human readability).
static AIErrorType StringToError (StringID internal_string_id)
 Get the error based on the OpenTTD StringID.
static void RegisterErrorMap (StringID internal_string_id, AIErrorType ai_error_msg)
 Map an internal OpenTTD error message to it's NoAI equivalent.
static void RegisterErrorMapString (AIErrorType ai_error_msg, const char *message)
 Map an internal OpenTTD error message to it's NoAI equivalent.

Private Types

typedef std::map< StringID,
AIErrorType
AIErrorMap
typedef std::map< AIErrorType,
const char * > 
AIErrorMapString

Static Private Attributes

static AIErrorMap error_map = AIError::AIErrorMap()
static AIErrorMapString error_map_string = AIError::AIErrorMapString()

Detailed Description

Class that handles all error related functions.

Definition at line 44 of file ai_error.hpp.


Member Enumeration Documentation

All categories errors can be divided in.

Enumerator:
ERR_CAT_NONE 

Error messages not related to any category.

ERR_CAT_GENERAL 

Error messages related to general things.

ERR_CAT_VEHICLE 

Error messages related to building / maintaining vehicles.

ERR_CAT_STATION 

Error messages related to building / maintaining stations.

ERR_CAT_BRIDGE 

Error messages related to building / removing bridges.

ERR_CAT_TUNNEL 

Error messages related to building / removing tunnels.

ERR_CAT_TILE 

Error messages related to raising / lowering and demolishing tiles.

ERR_CAT_SIGN 

Error messages related to building / removing signs.

ERR_CAT_RAIL 

Error messages related to building / maintaining rails.

ERR_CAT_ROAD 

Error messages related to building / maintaining roads.

ERR_CAT_ORDER 

Error messages related to managing orders.

ERR_CAT_MARINE 

Error messages related to building / removing ships, docks and channels.

ERR_CAT_WAYPOINT 

Error messages related to building / maintaining waypoints.

ERR_CAT_BIT_SIZE 

DO NOT USE! The error bitsize determines how many errors can be stored in a category and what the offsets are of all categories.

Definition at line 51 of file ai_error.hpp.

All general related error messages.

Enumerator:
ERR_NONE 

Initial error value.

ERR_UNKNOWN 

If an error occured and the error wasn't mapped.

ERR_PRECONDITION_FAILED 

If a precondition is not met.

ERR_PRECONDITION_STRING_TOO_LONG 

A string supplied was too long.

ERR_NEWGRF_SUPPLIED_ERROR 

An error returned by a NewGRF.

No possibility to get the exact error in an AI readable format

ERR_GENERAL_BASE 

Base for general errors.

ERR_NOT_ENOUGH_CASH 

Not enough cash to perform the previous action.

ERR_LOCAL_AUTHORITY_REFUSES 

Local authority won't allow the previous action.

ERR_ALREADY_BUILT 

The piece of infrastructure you tried to build is already in place.

ERR_AREA_NOT_CLEAR 

Area isn't clear, try to demolish the building on it.

ERR_OWNED_BY_ANOTHER_COMPANY 

Area / property is owned by another company.

ERR_NAME_IS_NOT_UNIQUE 

The name given is not unique for the object type.

ERR_FLAT_LAND_REQUIRED 

The building you want to build requires flat land.

ERR_LAND_SLOPED_WRONG 

Land is sloped in the wrong direction for this build action.

ERR_VEHICLE_IN_THE_WAY 

A vehicle is in the way.

ERR_SITE_UNSUITABLE 

Site is unsuitable.

ERR_TOO_CLOSE_TO_EDGE 

Too close to the edge of the map.

ERR_STATION_TOO_SPREAD_OUT 

Station is too spread out.

Definition at line 76 of file ai_error.hpp.


Member Function Documentation

AIError::ErrorCategories AIError::GetErrorCategory (  )  [static]

Check the membership of the last thrown error.

Returns:
The category the error belongs to.
Note:
The last throw error can be aquired by calling GetLastError().

Definition at line 64 of file ai_error.cpp.

References ERR_CAT_BIT_SIZE, and GetLastError().

AIErrorType AIError::GetLastError (  )  [static]

Get the last error.

Returns:
An ErrorMessages enum value.

Reimplemented from AIObject.

Definition at line 18 of file ai_error.cpp.

Referenced by GetErrorCategory(), and GetLastErrorString().

char * AIError::GetLastErrorString (  )  [static]

Get the last error in string format (for human readability).

Returns:
An ErrorMessage enum item, as string.

Definition at line 23 of file ai_error.cpp.

References GetLastError().

void AIError::RegisterErrorMap ( StringID  internal_string_id,
AIErrorType  ai_error_msg 
) [static]

Map an internal OpenTTD error message to it's NoAI equivalent.

Note:
DO NOT INVOKE THIS METHOD YOURSELF! The calls are autogenerated.
Parameters:
internal_string_id The OpenTTD StringID used for an error.
ai_error_msg The NoAI equivalent error message.

Definition at line 54 of file ai_error.cpp.

void AIError::RegisterErrorMapString ( AIErrorType  ai_error_msg,
const char *  message 
) [static]

Map an internal OpenTTD error message to it's NoAI equivalent.

Note:
DO NOT INVOKE THIS METHOD YOURSELF! The calls are autogenerated.
Parameters:
ai_error_msg The NoAI error message representation.
message The string representation of this error message, used for debug purposes.

Definition at line 59 of file ai_error.cpp.

AIErrorType AIError::StringToError ( StringID  internal_string_id  )  [static]

Get the error based on the OpenTTD StringID.

Note:
DO NOT INVOKE THIS METHOD YOURSELF!
Parameters:
internal_string_id The string to convert.
Returns:
The NoAI equivalent error message.

Definition at line 28 of file ai_error.cpp.

References ERR_NEWGRF_SUPPLIED_ERROR, ERR_UNKNOWN, and GB().

Referenced by AIObject::DoCommand().


The documentation for this class was generated from the following files:

Generated on Tue Sep 14 17:07:21 2010 for OpenTTD by  doxygen 1.6.1