(svn r23521) -Codechange: use the actual enum values from the 'core' in the API when they refer to the in-game values in the cases where that is possible and sensible

pull/155/head
rubidium 13 years ago
parent f2eb56fec6
commit 68b25fcf3d

@ -791,7 +791,7 @@ ERROR: IsEnd() is invalid as Begin() is never called
IsHangarTile(): false
IsAirportTile(): false
GetHangarOfAirport(): -1
GetAirportType(): 255
GetAirportType(): 254
IsAirportInformationAvailable(-1): false
IsValidAirportType(-1): false
GetAirportWidth(-1): -1

@ -25,8 +25,8 @@ void SQAICompany_Register(Squirrel *engine)
SQAICompany.DefSQConst(engine, ScriptCompany::EARLIEST_QUARTER, "EARLIEST_QUARTER");
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_FIRST, "COMPANY_FIRST");
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_LAST, "COMPANY_LAST");
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_INVALID, "COMPANY_INVALID");
SQAICompany.DefSQConst(engine, ScriptCompany::COMPANY_SELF, "COMPANY_SELF");
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_MALE, "GENDER_MALE");
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_FEMALE, "GENDER_FEMALE");
SQAICompany.DefSQConst(engine, ScriptCompany::GENDER_INVALID, "GENDER_INVALID");

@ -21,12 +21,12 @@ void SQAIWaypoint_Register(Squirrel *engine)
SQAIWaypoint.PreRegister(engine, "AIBaseStation");
SQAIWaypoint.AddConstructor<void (ScriptWaypoint::*)(), 1>(engine, "x");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_RAIL, "WAYPOINT_RAIL");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_BUOY, "WAYPOINT_BUOY");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_ANY, "WAYPOINT_ANY");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::ERR_WAYPOINT_BASE, "ERR_WAYPOINT_BASE");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::ERR_WAYPOINT_TOO_CLOSE_TO_ANOTHER_WAYPOINT, "ERR_WAYPOINT_TOO_CLOSE_TO_ANOTHER_WAYPOINT");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::ERR_WAYPOINT_ADJOINS_MULTIPLE_WAYPOINTS, "ERR_WAYPOINT_ADJOINS_MULTIPLE_WAYPOINTS");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_RAIL, "WAYPOINT_RAIL");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_BUOY, "WAYPOINT_BUOY");
SQAIWaypoint.DefSQConst(engine, ScriptWaypoint::WAYPOINT_ANY, "WAYPOINT_ANY");
ScriptError::RegisterErrorMap(STR_ERROR_TOO_CLOSE_TO_ANOTHER_WAYPOINT, ScriptWaypoint::ERR_WAYPOINT_TOO_CLOSE_TO_ANOTHER_WAYPOINT);
ScriptError::RegisterErrorMap(STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING, ScriptWaypoint::ERR_WAYPOINT_ADJOINS_MULTIPLE_WAYPOINTS);

@ -13,6 +13,7 @@
#define SCRIPT_AIRPORT_HPP
#include "script_object.hpp"
#include "../../airport.h"
/**
* Class that handles all airport related functions.
@ -24,27 +25,24 @@ public:
* The types of airports available in the game.
*/
enum AirportType {
/* Note: the values _are_ important as they represent an in-game value */
AT_SMALL = 0, ///< The small airport.
AT_LARGE = 1, ///< The large airport.
AT_METROPOLITAN = 3, ///< The metropolitan airport.
AT_INTERNATIONAL = 4, ///< The international airport.
AT_COMMUTER = 5, ///< The commuter airport.
AT_INTERCON = 7, ///< The intercontinental airport.
/* Next are the airports which only have helicopter platforms */
AT_HELIPORT = 2, ///< The heliport.
AT_HELISTATION = 8, ///< The helistation.
AT_HELIDEPOT = 6, ///< The helidepot.
AT_INVALID = 255, ///< Invalid airport.
/* Note: these values represent part of the in-game AirportTypes enum */
AT_SMALL = ::AT_SMALL, ///< The small airport.
AT_LARGE = ::AT_LARGE, ///< The large airport.
AT_METROPOLITAN = ::AT_METROPOLITAN, ///< The metropolitan airport.
AT_INTERNATIONAL = ::AT_INTERNATIONAL, ///< The international airport.
AT_COMMUTER = ::AT_COMMUTER, ///< The commuter airport.
AT_INTERCON = ::AT_INTERCON, ///< The intercontinental airport.
AT_HELIPORT = ::AT_HELIPORT, ///< The heliport.
AT_HELISTATION = ::AT_HELISTATION, ///< The helistation.
AT_HELIDEPOT = ::AT_HELIDEPOT, ///< The helidepot.
AT_INVALID = ::AT_INVALID, ///< Invalid airport.
};
/**
* All plane types available.
*/
enum PlaneType {
/* Note: the values _are_ important as they represent an in-game value */
/* Note: these values represent part of the in-game values, which are not defined in an enum */
PT_HELICOPTER = 0, ///< A helicopter.
PT_SMALL_PLANE = 1, ///< A small plane.
PT_BIG_PLANE = 3, ///< A big plane.

@ -15,7 +15,7 @@
#include "script_list.hpp"
/**
* Create a list of bridges.
* Create a list of bridges types.
* @api ai
* @ingroup ScriptList
*/
@ -25,7 +25,7 @@ public:
};
/**
* Create a list of bridges that can be built on a specific length.
* Create a list of bridges types that can be built on a specific length.
* @api ai
* @ingroup ScriptList
*/

@ -13,6 +13,8 @@
#define SCRIPT_CARGO_HPP
#include "script_object.hpp"
#include "../../cargotype.h"
#include "../../cargo_type.h"
/**
* Class that handles all cargo related functions.
@ -21,39 +23,42 @@
class ScriptCargo : public ScriptObject {
public:
/**
* The classes of cargo (from newgrf_cargo.h).
* The classes of cargo.
*/
enum CargoClass {
CC_PASSENGERS = 1 << 0, ///< Passengers. Cargos of this class appear at bus stops. Cargos not of this class appear at truck stops.
CC_MAIL = 1 << 1, ///< Mail
CC_EXPRESS = 1 << 2, ///< Express cargo (Goods, Food, Candy, but also possible for passengers)
CC_ARMOURED = 1 << 3, ///< Armoured cargo (Valuables, Gold, Diamonds)
CC_BULK = 1 << 4, ///< Bulk cargo (Coal, Grain etc., Ores, Fruit)
CC_PIECE_GOODS = 1 << 5, ///< Piece goods (Livestock, Wood, Steel, Paper)
CC_LIQUID = 1 << 6, ///< Liquids (Oil, Water, Rubber)
CC_REFRIGERATED = 1 << 7, ///< Refrigerated cargo (Food, Fruit)
CC_HAZARDOUS = 1 << 8, ///< Hazardous cargo (Nuclear Fuel, Explosives, etc.)
CC_COVERED = 1 << 9, ///< Covered/Sheltered Freight (Transporation in Box Vans, Silo Wagons, etc.)
/* Note: these values represent part of the in-game CargoClass enum */
CC_PASSENGERS = ::CC_PASSENGERS, ///< Passengers. Cargos of this class appear at bus stops. Cargos not of this class appear at truck stops.
CC_MAIL = ::CC_MAIL, ///< Mail
CC_EXPRESS = ::CC_EXPRESS, ///< Express cargo (Goods, Food, Candy, but also possible for passengers)
CC_ARMOURED = ::CC_ARMOURED, ///< Armoured cargo (Valuables, Gold, Diamonds)
CC_BULK = ::CC_BULK, ///< Bulk cargo (Coal, Grain etc., Ores, Fruit)
CC_PIECE_GOODS = ::CC_PIECE_GOODS, ///< Piece goods (Livestock, Wood, Steel, Paper)
CC_LIQUID = ::CC_LIQUID, ///< Liquids (Oil, Water, Rubber)
CC_REFRIGERATED = ::CC_REFRIGERATED, ///< Refrigerated cargo (Food, Fruit)
CC_HAZARDOUS = ::CC_HAZARDOUS, ///< Hazardous cargo (Nuclear Fuel, Explosives, etc.)
CC_COVERED = ::CC_COVERED, ///< Covered/Sheltered Freight (Transporation in Box Vans, Silo Wagons, etc.)
};
/**
* The effects a cargo can have on a town.
*/
enum TownEffect {
TE_NONE = 0, ///< This cargo has no effect on a town
TE_PASSENGERS = 1, ///< This cargo supplies passengers to a town
TE_MAIL = 2, ///< This cargo supplies mail to a town
TE_GOODS = 3, ///< This cargo supplies goods to a town
TE_WATER = 4, ///< This cargo supplies water to a town
TE_FOOD = 5, ///< This cargo supplies food to a town
/* Note: these values represent part of the in-game TownEffect enum */
TE_NONE = ::TE_NONE, ///< This cargo has no effect on a town
TE_PASSENGERS = ::TE_PASSENGERS, ///< This cargo supplies passengers to a town
TE_MAIL = ::TE_MAIL, ///< This cargo supplies mail to a town
TE_GOODS = ::TE_GOODS, ///< This cargo supplies goods to a town
TE_WATER = ::TE_WATER, ///< This cargo supplies water to a town
TE_FOOD = ::TE_FOOD, ///< This cargo supplies food to a town
};
/**
* Special cargo types.
*/
enum SpecialCargoID {
CT_AUTO_REFIT = 0xFD, ///< Automatically choose cargo type when doing auto-refitting.
CT_NO_REFIT = 0xFE, ///< Do not refit cargo of a vehicle.
/* Note: these values represent part of the in-game CargoTypes enum */
CT_AUTO_REFIT = ::CT_AUTO_REFIT, ///< Automatically choose cargo type when doing auto-refitting.
CT_NO_REFIT = ::CT_NO_REFIT, ///< Do not refit cargo of a vehicle.
};
/**

@ -22,16 +22,19 @@ class ScriptCompany : public ScriptObject {
public:
/** The range of possible quarters to get company information of. */
enum Quarter {
CURRENT_QUARTER = 0, ///< The current quarter.
EARLIEST_QUARTER = MAX_HISTORY_QUARTERS, ///< The earliest quarter company information is available for.
CURRENT_QUARTER = 0, ///< The current quarter.
EARLIEST_QUARTER = ::MAX_HISTORY_QUARTERS, ///< The earliest quarter company information is available for.
};
/** Different constants related to CompanyID. */
enum CompanyID {
COMPANY_FIRST = 0, ///< The first available company.
COMPANY_LAST = ::MAX_COMPANIES, ///< The last available company.
COMPANY_SELF = 254, ///< Constant that gets resolved to the correct company index for your company.
COMPANY_INVALID = -1, ///< An invalid company.
/* Note: these values represent part of the in-game Owner enum */
COMPANY_FIRST = ::COMPANY_FIRST, ///< The first available company.
COMPANY_LAST = ::MAX_COMPANIES, ///< The last available company.
/* Custom added value, only valid for this API */
COMPANY_INVALID = -1, ///< An invalid company.
COMPANY_SELF = 254, ///< Constant that gets resolved to the correct company index for your company.
};
/** Possible genders for company presidents. */

@ -13,6 +13,7 @@
#define SCRIPT_GROUP_HPP
#include "script_vehicle.hpp"
#include "../../group_type.h"
/**
* Class that handles all group related functions.
@ -24,10 +25,10 @@ public:
* The group IDs of some special groups.
*/
enum GroupID {
/* Values are important, as they represent the internal state of the game (see group_type.h). */
GROUP_ALL = 0xFFFD, ///< All vehicles are in this group.
GROUP_DEFAULT = 0xFFFE, ///< Vehicles not put in any other group are in this one.
GROUP_INVALID = 0xFFFF, ///< An invalid group id.
/* Note: these values represent part of the in-game static values */
GROUP_ALL = ::ALL_GROUP, ///< All vehicles are in this group.
GROUP_DEFAULT = ::DEFAULT_GROUP, ///< Vehicles not put in any other group are in this one.
GROUP_INVALID = ::INVALID_GROUP, ///< An invalid group id.
};
/**

@ -14,6 +14,7 @@
#include "script_error.hpp"
#include "script_vehicle.hpp"
#include "../../order_type.h"
/**
* Class that handles all order related functions.
@ -88,31 +89,35 @@ public:
* All conditions a conditional order can depend on.
*/
enum OrderCondition {
/* Order _is_ important, as it's based on OrderConditionVariable in order_type.h. */
OC_LOAD_PERCENTAGE, ///< Skip based on the amount of load, value is in tons.
OC_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100).
OC_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see ScriptEngine::GetMaxSpeed.
OC_AGE, ///< Skip based on the age, value is in years.
OC_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value.
OC_UNCONDITIONALLY, ///< Always skip, no compare function, no value.
OC_REMAINING_LIFETIME, ///< Skip based on the remaining lifetime
OC_INVALID = -1, ///< An invalid condition, do not use.
/* Note: these values represent part of the in-game OrderConditionVariable enum */
OC_LOAD_PERCENTAGE = ::OCV_LOAD_PERCENTAGE, ///< Skip based on the amount of load, value is in tons.
OC_RELIABILITY = ::OCV_RELIABILITY, ///< Skip based on the reliability, value is percent (0..100).
OC_MAX_SPEED = ::OCV_MAX_SPEED, ///< Skip based on the maximum speed, value is in OpenTTD's internal speed unit, see ScriptEngine::GetMaxSpeed.
OC_AGE = ::OCV_AGE, ///< Skip based on the age, value is in years.
OC_REQUIRES_SERVICE = ::OCV_REQUIRES_SERVICE, ///< Skip when the vehicle requires service, no value.
OC_UNCONDITIONALLY = ::OCV_UNCONDITIONALLY, ///< Always skip, no compare function, no value.
OC_REMAINING_LIFETIME = ::OCV_REMAINING_LIFETIME, ///< Skip based on the remaining lifetime
/* Custom added value, only valid for this API */
OC_INVALID = -1, ///< An invalid condition, do not use.
};
/**
* Comparators for conditional orders.
*/
enum CompareFunction {
/* Order _is_ important, as it's based on OrderConditionComparator in order_type.h. */
CF_EQUALS, ///< Skip if both values are equal
CF_NOT_EQUALS, ///< Skip if both values are not equal
CF_LESS_THAN, ///< Skip if the value is less than the limit
CF_LESS_EQUALS, ///< Skip if the value is less or equal to the limit
CF_MORE_THAN, ///< Skip if the value is more than the limit
CF_MORE_EQUALS, ///< Skip if the value is more or equal to the limit
CF_IS_TRUE, ///< Skip if the variable is true
CF_IS_FALSE, ///< Skip if the variable is false
CF_INVALID = -1, ///< Invalid compare function, do not use.
/* Note: these values represent part of the in-game OrderConditionComparator enum */
CF_EQUALS = ::OCC_EQUALS, ///< Skip if both values are equal
CF_NOT_EQUALS = ::OCC_NOT_EQUALS, ///< Skip if both values are not equal
CF_LESS_THAN = ::OCC_LESS_THAN, ///< Skip if the value is less than the limit
CF_LESS_EQUALS = ::OCC_LESS_EQUALS, ///< Skip if the value is less or equal to the limit
CF_MORE_THAN = ::OCC_MORE_THAN, ///< Skip if the value is more than the limit
CF_MORE_EQUALS = ::OCC_MORE_EQUALS, ///< Skip if the value is more or equal to the limit
CF_IS_TRUE = ::OCC_IS_TRUE, ///< Skip if the variable is true
CF_IS_FALSE = ::OCC_IS_FALSE, ///< Skip if the variable is false
/* Custom added value, only valid for this API */
CF_INVALID = -1, ///< Invalid compare function, do not use.
};
/**

@ -13,6 +13,8 @@
#define SCRIPT_RAIL_HPP
#include "script_tile.hpp"
#include "../../signal_type.h"
#include "../../track_type.h"
/**
* Class that handles all rail related functions.
@ -41,40 +43,42 @@ public:
* Types of rail known to the game.
*/
enum RailType {
/* Note: the values _are_ important as they represent an in-game value */
RAILTYPE_INVALID = 0xFF, ///< Invalid RailType.
/* Note: these values represent part of the in-game static values */
RAILTYPE_INVALID = ::INVALID_RAILTYPE, ///< Invalid RailType.
};
/**
* A bitmap with all possible rail tracks on a tile.
*/
enum RailTrack {
/* Note: the values _are_ important as they represent an in-game value */
RAILTRACK_NE_SW = 1 << 0, ///< Track along the x-axis (north-east to south-west).
RAILTRACK_NW_SE = 1 << 1, ///< Track along the y-axis (north-west to south-east).
RAILTRACK_NW_NE = 1 << 2, ///< Track in the upper corner of the tile (north).
RAILTRACK_SW_SE = 1 << 3, ///< Track in the lower corner of the tile (south).
RAILTRACK_NW_SW = 1 << 4, ///< Track in the left corner of the tile (west).
RAILTRACK_NE_SE = 1 << 5, ///< Track in the right corner of the tile (east).
RAILTRACK_INVALID = 0xFF, ///< Flag for an invalid track.
/* Note: these values represent part of the in-game TrackBits enum */
RAILTRACK_NE_SW = ::TRACK_BIT_X, ///< Track along the x-axis (north-east to south-west).
RAILTRACK_NW_SE = ::TRACK_BIT_Y, ///< Track along the y-axis (north-west to south-east).
RAILTRACK_NW_NE = ::TRACK_BIT_UPPER, ///< Track in the upper corner of the tile (north).
RAILTRACK_SW_SE = ::TRACK_BIT_LOWER, ///< Track in the lower corner of the tile (south).
RAILTRACK_NW_SW = ::TRACK_BIT_LEFT, ///< Track in the left corner of the tile (west).
RAILTRACK_NE_SE = ::TRACK_BIT_RIGHT, ///< Track in the right corner of the tile (east).
RAILTRACK_INVALID = ::INVALID_TRACK_BIT, ///< Flag for an invalid track.
};
/**
* Types of signal known to the game.
*/
enum SignalType {
/* Note: the values _are_ important as they represent an in-game value */
SIGNALTYPE_NORMAL = 0, ///< Normal signal.
SIGNALTYPE_ENTRY = 1, ///< Entry presignal.
SIGNALTYPE_EXIT = 2, ///< Exit signal.
SIGNALTYPE_COMBO = 3, ///< Combo signal.
SIGNALTYPE_PBS = 4, ///< Normal PBS signal.
SIGNALTYPE_PBS_ONEWAY = 5, ///< No-entry PBS signal.
/* Note: these values represent part of the in-game SignalType enum */
SIGNALTYPE_NORMAL = ::SIGTYPE_NORMAL, ///< Normal signal.
SIGNALTYPE_ENTRY = ::SIGTYPE_ENTRY, ///< Entry presignal.
SIGNALTYPE_EXIT = ::SIGTYPE_EXIT, ///< Exit signal.
SIGNALTYPE_COMBO = ::SIGTYPE_COMBO, ///< Combo signal.
SIGNALTYPE_PBS = ::SIGTYPE_PBS, ///< Normal PBS signal.
SIGNALTYPE_PBS_ONEWAY = ::SIGTYPE_PBS_ONEWAY, ///< No-entry PBS signal.
SIGNALTYPE_TWOWAY = 8, ///< Bit mask for twoway signal.
SIGNALTYPE_NORMAL_TWOWAY = SIGNALTYPE_NORMAL | SIGNALTYPE_TWOWAY, ///< Normal twoway signal.
SIGNALTYPE_ENTRY_TWOWAY = SIGNALTYPE_ENTRY | SIGNALTYPE_TWOWAY, ///< Entry twoway signal.
SIGNALTYPE_EXIT_TWOWAY = SIGNALTYPE_EXIT | SIGNALTYPE_TWOWAY, ///< Exit twoway signal.
SIGNALTYPE_COMBO_TWOWAY = SIGNALTYPE_COMBO | SIGNALTYPE_TWOWAY, ///< Combo twoway signal.
SIGNALTYPE_ENTRY_TWOWAY = SIGNALTYPE_ENTRY | SIGNALTYPE_TWOWAY, ///< Entry twoway signal.
SIGNALTYPE_EXIT_TWOWAY = SIGNALTYPE_EXIT | SIGNALTYPE_TWOWAY, ///< Exit twoway signal.
SIGNALTYPE_COMBO_TWOWAY = SIGNALTYPE_COMBO | SIGNALTYPE_TWOWAY, ///< Combo twoway signal.
SIGNALTYPE_NONE = 0xFF, ///< No signal.
};

@ -45,11 +45,12 @@ public:
* Types of road known to the game.
*/
enum RoadType {
/* Values are important, as they represent the internal state of the game. */
ROADTYPE_ROAD = 0, ///< Build road objects.
ROADTYPE_TRAM = 1, ///< Build tram objects.
/* Note: these values represent part of the in-game RoadType enum */
ROADTYPE_ROAD = ::ROADTYPE_ROAD, ///< Build road objects.
ROADTYPE_TRAM = ::ROADTYPE_TRAM, ///< Build tram objects.
ROADTYPE_INVALID = -1, ///< Invalid RoadType.
/* Custom added value, only valid for this API */
ROADTYPE_INVALID = -1, ///< Invalid RoadType.
};
/**

@ -14,6 +14,7 @@
#include "script_road.hpp"
#include "script_basestation.hpp"
#include "../../station_type.h"
/**
* Class that handles all station related functions.
@ -42,13 +43,13 @@ public:
* Type of stations known in the game.
*/
enum StationType {
/* Values are important, as they represent the internal state of the game. */
STATION_TRAIN = 0x01, ///< Train station
STATION_TRUCK_STOP = 0x02, ///< Truck station
STATION_BUS_STOP = 0x04, ///< Bus station
STATION_AIRPORT = 0x08, ///< Airport
STATION_DOCK = 0x10, ///< Dock
STATION_ANY = 0x1F, ///< All station types
/* Note: these values represent part of the in-game StationFacility enum */
STATION_TRAIN = ::FACIL_TRAIN, ///< Train station
STATION_TRUCK_STOP = ::FACIL_TRUCK_STOP, ///< Truck station
STATION_BUS_STOP = ::FACIL_BUS_STOP, ///< Bus station
STATION_AIRPORT = ::FACIL_AIRPORT, ///< Airport
STATION_DOCK = ::FACIL_DOCK, ///< Dock
STATION_ANY = STATION_TRAIN | STATION_TRUCK_STOP | STATION_BUS_STOP | STATION_AIRPORT | STATION_DOCK, ///< All station types
};
/**

@ -14,6 +14,8 @@
#include "script_error.hpp"
#include "script_company.hpp"
#include "../../slope_type.h"
#include "../../transport_type.h"
/**
* Class that handles all tile related functions.
@ -46,12 +48,13 @@ public:
* Enumeration for corners of tiles.
*/
enum Corner {
CORNER_W = 0, ///< West corner
CORNER_S = 1, ///< South corner
CORNER_E = 2, ///< East corner
CORNER_N = 3, ///< North corner
/* Note: these values represent part of the in-game Corner enum */
CORNER_W = ::CORNER_W, ///< West corner
CORNER_S = ::CORNER_S, ///< South corner
CORNER_E = ::CORNER_E, ///< East corner
CORNER_N = ::CORNER_N, ///< North corner
CORNER_INVALID = 0xFF,
CORNER_INVALID = ::CORNER_INVALID, ///< An invalid corner
};
/**
@ -62,42 +65,44 @@ public:
* is the north-part of the tile.
*/
enum Slope {
/* Values are important, as they represent the internal state of the game. */
SLOPE_FLAT = 0x00, ///< A flat tile
SLOPE_W = 1 << CORNER_W, ///< The west corner of the tile is raised
SLOPE_S = 1 << CORNER_S, ///< The south corner of the tile is raised
SLOPE_E = 1 << CORNER_E, ///< The east corner of the tile is raised
SLOPE_N = 1 << CORNER_N, ///< The north corner of the tile is raised
SLOPE_STEEP = 0x10, ///< Indicates the slope is steep (The corner opposite of the not-raised corner is raised two times)
SLOPE_NW = SLOPE_N | SLOPE_W, ///< North and west corner are raised
SLOPE_SW = SLOPE_S | SLOPE_W, ///< South and west corner are raised
SLOPE_SE = SLOPE_S | SLOPE_E, ///< South and east corner are raised
SLOPE_NE = SLOPE_N | SLOPE_E, ///< North and east corner are raised
SLOPE_EW = SLOPE_E | SLOPE_W, ///< East and west corner are raised
SLOPE_NS = SLOPE_N | SLOPE_S, ///< North and south corner are raised
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, ///< Bit mask containing all 'simple' slopes. Does not appear as a slope.
SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, ///< North, west and south corner are raised
SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, ///< West, south and east corner are raised
SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, ///< South, east and north corner are raised
SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, ///< East, north and west corner are raised
SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, ///< A steep slope falling to east (from west)
SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, ///< A steep slope falling to north (from south)
SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, ///< A steep slope falling to west (from east)
SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW, ///< A steep slope falling to south (from north)
SLOPE_INVALID = 0xFFFF, ///< An invalid slope
/* Note: these values represent part of the in-game Slope enum */
SLOPE_FLAT = ::SLOPE_FLAT, ///< A flat tile
SLOPE_W = ::SLOPE_W, ///< The west corner of the tile is raised
SLOPE_S = ::SLOPE_S, ///< The south corner of the tile is raised
SLOPE_E = ::SLOPE_E, ///< The east corner of the tile is raised
SLOPE_N = ::SLOPE_N, ///< The north corner of the tile is raised
SLOPE_STEEP = ::SLOPE_STEEP, ///< Indicates the slope is steep (The corner opposite of the not-raised corner is raised two times)
SLOPE_NW = ::SLOPE_NW, ///< North and west corner are raised
SLOPE_SW = ::SLOPE_SW, ///< South and west corner are raised
SLOPE_SE = ::SLOPE_SE, ///< South and east corner are raised
SLOPE_NE = ::SLOPE_NE, ///< North and east corner are raised
SLOPE_EW = ::SLOPE_EW, ///< East and west corner are raised
SLOPE_NS = ::SLOPE_NS, ///< North and south corner are raised
SLOPE_ELEVATED = ::SLOPE_ELEVATED, ///< Bit mask containing all 'simple' slopes. Does not appear as a slope.
SLOPE_NWS = ::SLOPE_NWS, ///< North, west and south corner are raised
SLOPE_WSE = ::SLOPE_WSE, ///< West, south and east corner are raised
SLOPE_SEN = ::SLOPE_SEN, ///< South, east and north corner are raised
SLOPE_ENW = ::SLOPE_ENW, ///< East, north and west corner are raised
SLOPE_STEEP_W = ::SLOPE_STEEP_W, ///< A steep slope falling to east (from west)
SLOPE_STEEP_S = ::SLOPE_STEEP_S, ///< A steep slope falling to north (from south)
SLOPE_STEEP_E = ::SLOPE_STEEP_E, ///< A steep slope falling to west (from east)
SLOPE_STEEP_N = ::SLOPE_STEEP_N, ///< A steep slope falling to south (from north)
/* Custom added value, only valid for this API */
SLOPE_INVALID = 0xFFFF, ///< An invalid slope
};
/**
* The different transport types a tile can have.
*/
enum TransportType {
/* Values are important, as they represent the internal state of the game. */
TRANSPORT_RAIL = 0, ///< Tile with rail.
TRANSPORT_ROAD = 1, ///< Tile with road.
TRANSPORT_WATER = 2, ///< Tile with navigable waterways.
TRANSPORT_AIR = 3, ///< Tile with airport.
/* Note: these values represent part of the in-game TransportType enum */
TRANSPORT_RAIL = ::TRANSPORT_RAIL, ///< Tile with rail.
TRANSPORT_ROAD = ::TRANSPORT_ROAD, ///< Tile with road.
TRANSPORT_WATER = ::TRANSPORT_WATER, ///< Tile with navigable waterways.
TRANSPORT_AIR = ::TRANSPORT_AIR, ///< Tile with airport.
/* Custom added value, only valid for this API */
TRANSPORT_INVALID = -1, ///< Tile without any transport type.
};

@ -14,6 +14,7 @@
#include "script_cargo.hpp"
#include "script_company.hpp"
#include "../../town_type.h"
/**
* Class that handles all town related functions.
@ -25,7 +26,7 @@ public:
* Actions that one can perform on a town.
*/
enum TownAction {
/* Values are important, as they represent the internal state of the game. */
/* Note: these values represent part of the in-game order of the _town_action_proc array */
/**
* The cargo ratings temporary gains 25% of rating (in
@ -94,12 +95,14 @@ public:
* Possible layouts for the roads in a town.
*/
enum RoadLayout {
/* Order IS important, as it matches an in-game value */
ROAD_LAYOUT_ORIGINAL, ///< Original algorithm (min. 1 distance between roads).
ROAD_LAYOUT_BETTER_ROADS, ///< Extended original algorithm (min. 2 distance between roads).
ROAD_LAYOUT_2x2, ///< Geometric 2x2 grid algorithm
ROAD_LAYOUT_3x3, ///< Geometric 3x3 grid algorithm
ROAD_LAYOUT_INVALID = -1, ///< The layout for invalid towns.
/* Note: these values represent part of the in-game TownLayout enum */
ROAD_LAYOUT_ORIGINAL = ::TL_ORIGINAL, ///< Original algorithm (min. 1 distance between roads).
ROAD_LAYOUT_BETTER_ROADS = ::TL_BETTER_ROADS, ///< Extended original algorithm (min. 2 distance between roads).
ROAD_LAYOUT_2x2 = ::TL_2X2_GRID, ///< Geometric 2x2 grid algorithm
ROAD_LAYOUT_3x3 = ::TL_3X3_GRID, ///< Geometric 3x3 grid algorithm
/* Custom added value, only valid for this API */
ROAD_LAYOUT_INVALID = -1, ///< The layout for invalid towns.
};
/**

@ -72,7 +72,6 @@ public:
* road vehicles, as maglev is a rail vehicle.
*/
enum VehicleType {
/* Order IS important, as it now matches the internal state of the game for vehicle type */
VT_RAIL, ///< Rail type vehicle.
VT_ROAD, ///< Road type vehicle (bus / truck).
VT_WATER, ///< Water type vehicle.

@ -13,6 +13,7 @@
#define SCRIPT_WAYPOINT_HPP
#include "script_basestation.hpp"
#include "../../station_type.h"
/**
* Class that handles all waypoint related functions.
@ -20,16 +21,6 @@
*/
class ScriptWaypoint : public ScriptBaseStation {
public:
/**
* Type of waypoints known in the game.
*/
enum WaypointType {
/* Values are important, as they represent the internal state of the game. */
WAYPOINT_RAIL = 0x01, ///< Rail waypoint
WAYPOINT_BUOY = 0x10, ///< Buoy
WAYPOINT_ANY = 0x11, ///< All waypoint types
};
/**
* All waypoint related error messages.
*/
@ -44,6 +35,16 @@ public:
ERR_WAYPOINT_ADJOINS_MULTIPLE_WAYPOINTS, // [STR_ERROR_WAYPOINT_ADJOINS_MORE_THAN_ONE_EXISTING]
};
/**
* Type of waypoints known in the game.
*/
enum WaypointType {
/* Note: these values represent part of the in-game StationFacility enum */
WAYPOINT_RAIL = ::FACIL_TRAIN, ///< Rail waypoint
WAYPOINT_BUOY = ::FACIL_DOCK, ///< Buoy
WAYPOINT_ANY = WAYPOINT_RAIL | WAYPOINT_BUOY, ///< All waypoint types
};
/**
* Checks whether the given waypoint is valid and owned by you.
* @param waypoint_id The waypoint to check.

@ -13,10 +13,10 @@
namespace SQConvert {
/* Allow enums to be used as Squirrel parameters */
template <> inline ScriptWaypoint::WaypointType GetParam(ForceType<ScriptWaypoint::WaypointType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWaypoint::WaypointType)tmp; }
template <> inline int Return<ScriptWaypoint::WaypointType>(HSQUIRRELVM vm, ScriptWaypoint::WaypointType res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> inline ScriptWaypoint::ErrorMessages GetParam(ForceType<ScriptWaypoint::ErrorMessages>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWaypoint::ErrorMessages)tmp; }
template <> inline int Return<ScriptWaypoint::ErrorMessages>(HSQUIRRELVM vm, ScriptWaypoint::ErrorMessages res) { sq_pushinteger(vm, (int32)res); return 1; }
template <> inline ScriptWaypoint::WaypointType GetParam(ForceType<ScriptWaypoint::WaypointType>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQInteger tmp; sq_getinteger(vm, index, &tmp); return (ScriptWaypoint::WaypointType)tmp; }
template <> inline int Return<ScriptWaypoint::WaypointType>(HSQUIRRELVM vm, ScriptWaypoint::WaypointType res) { sq_pushinteger(vm, (int32)res); return 1; }
/* Allow ScriptWaypoint to be used as Squirrel parameter */
template <> inline ScriptWaypoint *GetParam(ForceType<ScriptWaypoint *>, HSQUIRRELVM vm, int index, SQAutoFreePointers *ptr) { SQUserPointer instance; sq_getinstanceup(vm, index, &instance, 0); return (ScriptWaypoint *)instance; }

Loading…
Cancel
Save