summaryrefslogtreecommitdiff
path: root/src/script/api/script_tile.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/script/api/script_tile.hpp')
-rw-r--r--src/script/api/script_tile.hpp73
1 files changed, 39 insertions, 34 deletions
diff --git a/src/script/api/script_tile.hpp b/src/script/api/script_tile.hpp
index f1d40529a..f560b2a1c 100644
--- a/src/script/api/script_tile.hpp
+++ b/src/script/api/script_tile.hpp
@@ -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.
};