(svn r11433) -Fix: starting OpenTTD with DOS files made it look weird out of the box.

-Change: make extra sprites (the ones not in the TTD GRFs) replaceable using Action 5.
-Feature: make replacing contiguous subsets of sprites in for some types possible in Action 5.
Note to GRF authors: when you replaced OpenTTD sprites that are not from the TTD GRF files using Action A, your GRF will not have the intended result anymore as the sprite numbers have changed. You should replace the Action A with an Action 5 from now on.
This commit is contained in:
rubidium
2007-11-15 07:42:25 +00:00
parent f28723830f
commit f546de602b
29 changed files with 394 additions and 461 deletions

View File

@@ -10,9 +10,6 @@
*
* @NOTE:
* ALL SPRITE NUMBERS BELOW 5126 are in the main files
* SPR_CANALS_BASE is in canalsw.grf
* SPR_SLOPES_BASE is in trkfoundw.grf
* SPR_OPENTTD_BASE is in openttd.grf
*
* All elements which consist of two elements should
* have the same name and then suffixes
@@ -46,118 +43,133 @@ enum Sprites {
SPR_ASCII_SPACE_SMALL = 226,
SPR_ASCII_SPACE_BIG = 450,
/* Extra graphic spritenumbers */
OPENTTD_SPRITES_COUNT = 122, // number of gfx-sprites in openttd.grf
SPR_SIGNALS_BASE = 4896,
SPR_CANALS_BASE = SPR_SIGNALS_BASE + 486,
SPR_SLOPES_BASE = SPR_CANALS_BASE + 70,
SPR_SLOPES_INCLINED_OFFSET = 15,
SPR_SLOPES_VIRTUAL_BASE = SPR_SLOPES_BASE - SPR_SLOPES_INCLINED_OFFSET, // The original foundations (see SPR_FOUNDATION_BASE below) are mapped before the additional foundations.
SPR_TRKFOUND_BLOCK_SIZE = 22, // The sprites in trkfoundw.grf are organized in blocks of 22.
/* between slopes and autorail are 4 unused sprites */
SPR_AUTORAIL_BASE = SPR_SLOPES_BASE + 78,
SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + 55,
SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + 53,
SPR_OPENTTD_BASE = SPR_2CCMAP_BASE + 256,
SPR_BLOT = SPR_OPENTTD_BASE + 29, // colored circle (mainly used as vehicle profit marker and for sever compatibility)
SPR_PIN_UP = SPR_OPENTTD_BASE + 55, // pin icon
SPR_PIN_DOWN = SPR_OPENTTD_BASE + 56,
SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 59,
SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 60,
SPR_WINDOW_RESIZE = SPR_OPENTTD_BASE + 82, // resize icon
SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 89,
// arrow icons pointing in all 4 directions
SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 83,
SPR_ARROW_UP = SPR_OPENTTD_BASE + 84,
SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 85,
SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 86,
SPR_LARGE_SMALL_WINDOW = 682,
/* Extra graphic spritenumbers */
SPR_OPENTTD_BASE = 4896,
OPENTTD_SPRITE_COUNT = 134,
/* Halftile-selection sprites */
SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE,
SPR_HALFTILE_SELECTION_DOWN = SPR_OPENTTD_BASE + 4,
SPR_HALFTILE_SELECTION_UP = SPR_OPENTTD_BASE + 8,
SPR_SQUARE = SPR_OPENTTD_BASE + 38, // colored square (used for newgrf compatibility)
SPR_BLOT = SPR_OPENTTD_BASE + 39, // colored circle (mainly used as vehicle profit marker and for server compatibility)
SPR_LOCK = SPR_OPENTTD_BASE + 40, // lock icon (for password protected servers)
SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 41,
SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 42,
SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43, // warning sign (shown if there are any newgrf errors)
SPR_WINDOW_RESIZE = SPR_OPENTTD_BASE + 44, // resize icon
/* Arrow icons pointing in all 4 directions */
SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45,
SPR_ARROW_UP = SPR_OPENTTD_BASE + 46,
SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 47,
SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 48,
SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 49,
SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 50,
SPR_PIN_UP = SPR_OPENTTD_BASE + 51, // pin icon
SPR_PIN_DOWN = SPR_OPENTTD_BASE + 52,
/* Clone vehicles stuff */
SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 87,
SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 104,
SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 106,
SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 108,
SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 106,
SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 107,
SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 108,
SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 109,
SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 91,
SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 92,
SPR_SELL_SHIP = SPR_OPENTTD_BASE + 93,
SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 94,
SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 95,
SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 96,
SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 97,
SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 98,
SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 99,
SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 100,
SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 101,
SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 102,
SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 103,
SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 93,
SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 94,
SPR_SELL_SHIP = SPR_OPENTTD_BASE + 95,
SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 96,
SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 97,
SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 98,
SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 99,
SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 100,
SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 101,
SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 102,
SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 103,
SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 104,
SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 105,
SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 110,
SPR_GROUP_CREATE_TRAIN = SPR_OPENTTD_BASE + 114,
SPR_GROUP_CREATE_ROADVEH = SPR_OPENTTD_BASE + 115,
SPR_GROUP_CREATE_SHIP = SPR_OPENTTD_BASE + 116,
SPR_GROUP_CREATE_AIRCRAFT = SPR_OPENTTD_BASE + 117,
SPR_GROUP_DELETE_TRAIN = SPR_OPENTTD_BASE + 118,
SPR_GROUP_DELETE_ROADVEH = SPR_OPENTTD_BASE + 119,
SPR_GROUP_DELETE_SHIP = SPR_OPENTTD_BASE + 120,
SPR_GROUP_DELETE_AIRCRAFT = SPR_OPENTTD_BASE + 121,
SPR_GROUP_RENAME_TRAIN = SPR_OPENTTD_BASE + 122,
SPR_GROUP_RENAME_ROADVEH = SPR_OPENTTD_BASE + 123,
SPR_GROUP_RENAME_SHIP = SPR_OPENTTD_BASE + 124,
SPR_GROUP_RENAME_AIRCRAFT = SPR_OPENTTD_BASE + 125,
SPR_GROUP_REPLACE_ON_TRAIN = SPR_OPENTTD_BASE + 126,
SPR_GROUP_REPLACE_ON_ROADVEH = SPR_OPENTTD_BASE + 127,
SPR_GROUP_REPLACE_ON_SHIP = SPR_OPENTTD_BASE + 128,
SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_OPENTTD_BASE + 129,
SPR_GROUP_REPLACE_OFF_TRAIN = SPR_OPENTTD_BASE + 130,
SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_OPENTTD_BASE + 131,
SPR_GROUP_REPLACE_OFF_SHIP = SPR_OPENTTD_BASE + 132,
SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_OPENTTD_BASE + 133,
SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 111, // warning sign (shown if there are any newgrf errors)
SPR_SIGNALS_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT,
PRESIGNAL_SPRITE_COUNT = 48,
PRESIGNAL_AND_SEMAPHORE_SPRITE_COUNT = 112,
PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT = 240,
/* Network GUI sprites */
SPR_SQUARE = SPR_OPENTTD_BASE + 20, // colored square (used for newgrf compatibility)
SPR_LOCK = SPR_OPENTTD_BASE + 19, // lock icon (for password protected servers)
SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT,
CANALS_SPRITE_COUNT = 65,
SPR_AIRPORTX_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITES_COUNT, // The sprites used for other airport angles
SPR_SLOPES_BASE = SPR_CANALS_BASE + CANALS_SPRITE_COUNT,
SPR_SLOPES_INCLINED_OFFSET = 15,
SPR_SLOPES_VIRTUAL_BASE = SPR_SLOPES_BASE - SPR_SLOPES_INCLINED_OFFSET, // The original foundations (see SPR_FOUNDATION_BASE below) are mapped before the additional foundations.
SPR_TRKFOUND_BLOCK_SIZE = 22, // The normal track foundation sprites are organized in blocks of 22.
NORMAL_FOUNDATION_SPRITE_COUNT = 74,
/* Halftile foundations */
SPR_HALFTILE_FOUNDATION_BASE = SPR_SLOPES_BASE + NORMAL_FOUNDATION_SPRITE_COUNT,
SPR_HALFTILE_BLOCK_SIZE = 4, // The half tile foundation sprites are organized in blocks of 4.
NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT = 90,
SPR_AUTORAIL_BASE = SPR_HALFTILE_FOUNDATION_BASE + NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT,
AUTORAIL_SPRITE_COUNT = 55,
SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + AUTORAIL_SPRITE_COUNT,
ELRAIL_SPRITE_COUNT = 48,
SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + ELRAIL_SPRITE_COUNT,
TWOCCMAP_SPRITE_COUNT = 256,
SPR_AIRPORTX_BASE = SPR_2CCMAP_BASE + TWOCCMAP_SPRITE_COUNT, // The sprites used for other airport angles
SPR_NEWAIRPORT_TARMAC = SPR_AIRPORTX_BASE,
SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1,
SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2,
SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3,
SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4,
SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5,
SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6,
SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7,
SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8,
SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9,
SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10,
SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11,
SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12,
SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13,
SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14,
SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1,
SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2,
SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3,
SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4,
SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5,
SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6,
SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7,
SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8,
SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9,
SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10,
SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11,
SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12,
SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13,
SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14,
AIRPORTX_SPRITE_COUNT = 15,
SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + 15, // The sprites used for drive-through road stops
SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE,
SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1,
SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2,
SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3,
SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + AIRPORTX_SPRITE_COUNT, // The sprites used for drive-through road stops
SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE,
SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1,
SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2,
SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3,
SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4,
SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5,
SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6,
SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7,
SPR_GROUP_BASE = SPR_ROADSTOP_BASE + 8, // The sprites used for the group interface
SPR_GROUP_CREATE_TRAIN = SPR_GROUP_BASE,
SPR_GROUP_CREATE_ROADVEH = SPR_GROUP_BASE + 1,
SPR_GROUP_CREATE_SHIP = SPR_GROUP_BASE + 2,
SPR_GROUP_CREATE_AIRCRAFT = SPR_GROUP_BASE + 3,
SPR_GROUP_DELETE_TRAIN = SPR_GROUP_BASE + 4,
SPR_GROUP_DELETE_ROADVEH = SPR_GROUP_BASE + 5,
SPR_GROUP_DELETE_SHIP = SPR_GROUP_BASE + 6,
SPR_GROUP_DELETE_AIRCRAFT = SPR_GROUP_BASE + 7,
SPR_GROUP_RENAME_TRAIN = SPR_GROUP_BASE + 8,
SPR_GROUP_RENAME_ROADVEH = SPR_GROUP_BASE + 9,
SPR_GROUP_RENAME_SHIP = SPR_GROUP_BASE + 10,
SPR_GROUP_RENAME_AIRCRAFT = SPR_GROUP_BASE + 11,
SPR_GROUP_REPLACE_ON_TRAIN = SPR_GROUP_BASE + 12,
SPR_GROUP_REPLACE_ON_ROADVEH = SPR_GROUP_BASE + 13,
SPR_GROUP_REPLACE_ON_SHIP = SPR_GROUP_BASE + 14,
SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_GROUP_BASE + 15,
SPR_GROUP_REPLACE_OFF_TRAIN = SPR_GROUP_BASE + 16,
SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_GROUP_BASE + 17,
SPR_GROUP_REPLACE_OFF_SHIP = SPR_GROUP_BASE + 18,
SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_GROUP_BASE + 19,
ROADSTOP_SPRITE_COUNT = 8,
/* Tramway sprites */
SPR_TRAMWAY_BASE = SPR_GROUP_BASE + 20,
SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT,
SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4,
SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27,
SPR_TRAMWAY_SLOPED_OFFSET = 11,
@@ -173,25 +185,22 @@ enum Sprites {
SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68,
SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80,
SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107,
TRAMWAY_SPRITE_COUNT = 113,
/* One way road sprites */
SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + 113,
/* Not really a sprite, but an empty bounding box. Used to construct bounding boxes, that help sorting the sprites, but do not have a sprite associated. */
SPR_EMPTY_BOUNDING_BOX = SPR_ONEWAY_BASE + 6,
/* Halftile foundations */
SPR_HALFTILE_FOUNDATION_BASE = SPR_EMPTY_BOUNDING_BOX + 1,
SPR_HALFTILE_BLOCK_SIZE = 4, // The sprites in halffndw.grf are organized in blocks of 4.
/* Halftile-selection sprites */
SPR_HALFTILE_SELECTION_BASE = SPR_HALFTILE_FOUNDATION_BASE + 4 * SPR_HALFTILE_BLOCK_SIZE,
SPR_HALFTILE_SELECTION_FLAT = SPR_HALFTILE_SELECTION_BASE,
SPR_HALFTILE_SELECTION_DOWN = SPR_HALFTILE_SELECTION_BASE + 4,
SPR_HALFTILE_SELECTION_UP = SPR_HALFTILE_SELECTION_BASE + 8,
SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT,
ONEWAY_SPRITE_COUNT = 6,
/* Flags sprites (in same order as enum NetworkLanguage) */
SPR_FLAGS_BASE = SPR_HALFTILE_SELECTION_BASE + 12,
SPR_FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT,
FLAGS_SPRITE_COUNT = 29,
/* Not really a sprite, but an empty bounding box. Used to construct bounding boxes, that help sorting the sprites, but do not have a sprite associated. */
SPR_EMPTY_BOUNDING_BOX = SPR_FLAGS_BASE + FLAGS_SPRITE_COUNT,
EMPTY_BOUNDING_BOX_SPRITE_COUNT = 1,
/* From where can we start putting NewGRFs? */
SPR_NEWGRFS_BASE = SPR_EMPTY_BOUNDING_BOX + EMPTY_BOUNDING_BOX_SPRITE_COUNT,
/* Manager face sprites */
SPR_GRADIENT = 874, // background gradient behind manager face
@@ -205,11 +214,6 @@ enum Sprites {
/* Shadow cell */
SPR_SHADOW_CELL = 1004,
/* Sliced view shadow cells */
/* Maybe we have different ones in the future */
SPR_MAX_SLICE = SPR_OPENTTD_BASE + 64,
SPR_MIN_SLICE = SPR_OPENTTD_BASE + 64,
/* Unmovables spritenumbers */
SPR_UNMOVABLE_TRANSMITTER = 2601,
SPR_UNMOVABLE_LIGHTHOUSE = 2602,
@@ -305,10 +309,10 @@ enum Sprites {
SPR_MGLV_TRACK_Y = 1175,
SPR_MGLV_TRACK_BASE = 1182,
SPR_MGLV_TRACK_N_S = 1199,
SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 15,
SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 16,
SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 17,
SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 18,
SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 78,
SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 79,
SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 80,
SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 81,
OFFSET_TILEH_IMPOSSIBLE = 0,
OFFSET_TILEH_1 = 14,
OFFSET_TILEH_2 = 15,
@@ -337,55 +341,55 @@ enum Sprites {
/* Wires. First identifier is the direction of the track, second is the required placement of the pylon.
* "short" denotes a wire that requires a pylon on each end. Third identifier is the direction of the slope
* (in positive coordinate direction) */
SPR_WIRE_X_SHORT = SPR_ELRAIL_BASE + 3,
SPR_WIRE_Y_SHORT = SPR_ELRAIL_BASE + 4,
SPR_WIRE_EW_SHORT = SPR_ELRAIL_BASE + 5,
SPR_WIRE_NS_SHORT = SPR_ELRAIL_BASE + 6,
SPR_WIRE_X_SHORT_DOWN = SPR_ELRAIL_BASE + 7,
SPR_WIRE_Y_SHORT_UP = SPR_ELRAIL_BASE + 8,
SPR_WIRE_X_SHORT_UP = SPR_ELRAIL_BASE + 9,
SPR_WIRE_Y_SHORT_DOWN = SPR_ELRAIL_BASE + 10,
SPR_WIRE_X_SHORT = SPR_ELRAIL_BASE + 0,
SPR_WIRE_Y_SHORT = SPR_ELRAIL_BASE + 1,
SPR_WIRE_EW_SHORT = SPR_ELRAIL_BASE + 2,
SPR_WIRE_NS_SHORT = SPR_ELRAIL_BASE + 3,
SPR_WIRE_X_SHORT_DOWN = SPR_ELRAIL_BASE + 4,
SPR_WIRE_Y_SHORT_UP = SPR_ELRAIL_BASE + 5,
SPR_WIRE_X_SHORT_UP = SPR_ELRAIL_BASE + 6,
SPR_WIRE_Y_SHORT_DOWN = SPR_ELRAIL_BASE + 7,
SPR_WIRE_X_SW = SPR_ELRAIL_BASE + 11,
SPR_WIRE_Y_SE = SPR_ELRAIL_BASE + 12,
SPR_WIRE_EW_E = SPR_ELRAIL_BASE + 13,
SPR_WIRE_NS_S = SPR_ELRAIL_BASE + 14,
SPR_WIRE_X_SW_DOWN = SPR_ELRAIL_BASE + 15,
SPR_WIRE_Y_SE_UP = SPR_ELRAIL_BASE + 16,
SPR_WIRE_X_SW_UP = SPR_ELRAIL_BASE + 17,
SPR_WIRE_Y_SE_DOWN = SPR_ELRAIL_BASE + 18,
SPR_WIRE_X_SW = SPR_ELRAIL_BASE + 8,
SPR_WIRE_Y_SE = SPR_ELRAIL_BASE + 9,
SPR_WIRE_EW_E = SPR_ELRAIL_BASE + 10,
SPR_WIRE_NS_S = SPR_ELRAIL_BASE + 11,
SPR_WIRE_X_SW_DOWN = SPR_ELRAIL_BASE + 12,
SPR_WIRE_Y_SE_UP = SPR_ELRAIL_BASE + 13,
SPR_WIRE_X_SW_UP = SPR_ELRAIL_BASE + 14,
SPR_WIRE_Y_SE_DOWN = SPR_ELRAIL_BASE + 15,
SPR_WIRE_X_NE = SPR_ELRAIL_BASE + 19,
SPR_WIRE_Y_NW = SPR_ELRAIL_BASE + 20,
SPR_WIRE_EW_W = SPR_ELRAIL_BASE + 21,
SPR_WIRE_NS_N = SPR_ELRAIL_BASE + 22,
SPR_WIRE_X_NE_DOWN = SPR_ELRAIL_BASE + 23,
SPR_WIRE_Y_NW_UP = SPR_ELRAIL_BASE + 24,
SPR_WIRE_X_NE_UP = SPR_ELRAIL_BASE + 25,
SPR_WIRE_Y_NW_DOWN = SPR_ELRAIL_BASE + 26,
SPR_WIRE_X_NE = SPR_ELRAIL_BASE + 16,
SPR_WIRE_Y_NW = SPR_ELRAIL_BASE + 17,
SPR_WIRE_EW_W = SPR_ELRAIL_BASE + 18,
SPR_WIRE_NS_N = SPR_ELRAIL_BASE + 19,
SPR_WIRE_X_NE_DOWN = SPR_ELRAIL_BASE + 20,
SPR_WIRE_Y_NW_UP = SPR_ELRAIL_BASE + 21,
SPR_WIRE_X_NE_UP = SPR_ELRAIL_BASE + 22,
SPR_WIRE_Y_NW_DOWN = SPR_ELRAIL_BASE + 23,
/* Tunnel entries */
SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 27,
SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 28,
SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 29,
SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 30,
SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 24,
SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 25,
SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 26,
SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 27,
/* Depot entries */
SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 27,
SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 28,
SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 29,
SPR_WIRE_DEPOT_SE = SPR_ELRAIL_BASE + 30,
SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 24,
SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 25,
SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 26,
SPR_WIRE_DEPOT_SE = SPR_ELRAIL_BASE + 27,
/* Pylons, first identifier is the direction of the track, second the placement relative to the track */
SPR_PYLON_Y_NE = SPR_ELRAIL_BASE + 31,
SPR_PYLON_Y_SW = SPR_ELRAIL_BASE + 32,
SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 33,
SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 34,
SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 35,
SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 36,
SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 37,
SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 38,
SPR_PYLON_Y_NE = SPR_ELRAIL_BASE + 28,
SPR_PYLON_Y_SW = SPR_ELRAIL_BASE + 29,
SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 30,
SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 31,
SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 32,
SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 33,
SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 34,
SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 35,
/* sprites for roads */
SPR_ROAD_PAVED_STRAIGHT_Y = 1313,
@@ -452,7 +456,7 @@ enum Sprites {
SPR_AIRPORT_RADAR_A = 2689,
SPR_AIRPORT_RADAR_B = 2690,
SPR_AIRPORT_RADAR_C = 2691,
SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 28,
SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 82,
SPR_AIRPORT_HELIDEPOT_OFFICE = 2095,
/* Road Stops */
@@ -566,40 +570,42 @@ enum Sprites {
SPR_SHIP_DEPOT_SE_REAR = 4074,
SPR_SHIP_DEPOT_SW_REAR = 4075,
//here come sloped water sprites
SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 5, //Water flowing negative Y direction
SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 6, //positive X
SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 7, //negative X
SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 8, //positive Y
SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 0, //Water flowing negative Y direction
SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 1, //positive X
SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 2, //negative X
SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 3, //positive Y
//sprites for the shiplifts
//there are 4 kinds of shiplifts, each of them is 3 tiles long.
//the four kinds are running in the X and Y direction and
//are "lowering" either in the "+" or the "-" direction.
//the three tiles are the center tile (where the slope is)
//and a bottom and a top tile
SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 9,
SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 10,
SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 11,
SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 12,
SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 13,
SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 14,
SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 15,
SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 16,
SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 17,
SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 18,
SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 19,
SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 20,
SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 21,
SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 22,
SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 23,
SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 24,
SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 25,
SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 26,
SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 27,
SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 28,
SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 29,
SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 30,
SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 31,
SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 32,
SPR_SHIPLIFT_BASE = SPR_CANALS_BASE + 4,
SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 4,
SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 5,
SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 6,
SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 7,
SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 8,
SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 9,
SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 10,
SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 11,
SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 12,
SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 13,
SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 14,
SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 15,
SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 16,
SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 17,
SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 18,
SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 19,
SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 20,
SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 21,
SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 22,
SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 23,
SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 24,
SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 25,
SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 26,
SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 27,
SPR_CANAL_DIKES_BASE = SPR_CANALS_BASE + 52,
/* Sprites for tunnels and bridges */
SPR_TUNNEL_ENTRY_REAR_RAIL = 2365,
@@ -613,7 +619,7 @@ enum Sprites {
SPR_CROSSING_OFF_X_MAGLEV = 1394,
/* bridge type sprites */
SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 30,
SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 14,
/* Wooden bridge (type 0) */
SPR_BTWDN_RAIL_Y_REAR = 2545,
@@ -1012,11 +1018,11 @@ enum Sprites {
SPR_IMG_ROCKS = 4084,
SPR_IMG_LIGHTHOUSE_DESERT = 4085, // XXX - is Desert image on the desert-climate
SPR_IMG_TRANSMITTER = 4086,
SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 61,
SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 58,
SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 69,
SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 91,
SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 88,
SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 64,
SPR_IMG_PAUSE = 726,
SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 54,
SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 90,
SPR_IMG_SETTINGS = 751,
SPR_IMG_SAVE = 724,
SPR_IMG_SMALLMAP = 708,
@@ -1052,8 +1058,8 @@ enum Sprites {
/* OPEN TRANSPORT TYCOON in gamescreen */
SPR_OTTD_O = 4842,
SPR_OTTD_P = 4841,
SPR_OTTD_E = SPR_OPENTTD_BASE + 13,
SPR_OTTD_D = SPR_OPENTTD_BASE + 14,
SPR_OTTD_E = SPR_OPENTTD_BASE + 12,
SPR_OTTD_D = SPR_OPENTTD_BASE + 13,
SPR_OTTD_N = 4839,
SPR_OTTD_T = 4836,
SPR_OTTD_R = 4837,
@@ -1202,11 +1208,11 @@ enum Sprites {
SPR_BUBBLE_ABSORB_4 = 4762,
/* Electrified rail build menu */
SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 39,
SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 40,
SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 41,
SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 42,
SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 47,
SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 36,
SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 37,
SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 38,
SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 39,
SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 44,
/* airport_gui.c */
SPR_IMG_AIRPORT = 744,
@@ -1225,7 +1231,7 @@ enum Sprites {
/* road_gui.c */
SPR_IMG_ROAD_NW = 1309,
SPR_IMG_ROAD_NE = 1310,
SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 112,
SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 82,
SPR_IMG_ROAD_DEPOT = 1295,
SPR_IMG_BUS_STATION = 749,
SPR_IMG_TRUCK_BAY = 750,
@@ -1234,24 +1240,24 @@ enum Sprites {
SPR_IMG_REMOVE = 714,
SPR_IMG_TRAMWAY_NW = SPR_TRAMWAY_BASE + 0,
SPR_IMG_TRAMWAY_NE = SPR_TRAMWAY_BASE + 1,
SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 114,
SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 84,
/* rail_gui.c */
SPR_IMG_RAIL_NS = 1251,
SPR_IMG_RAIL_NE = 1252,
SPR_IMG_RAIL_EW = 1253,
SPR_IMG_RAIL_NW = 1254,
SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 0,
SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 116,
SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 1,
SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 2,
SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 53,
SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 57,
SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 63,
SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 69,
SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 3,
SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 76,
SPR_IMG_DEPOT_RAIL = 1294,
SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 120,
SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 9,
SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 10,
SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 61,
SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 67,
SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 73,
SPR_IMG_RAIL_STATION = 1298,
SPR_IMG_RAIL_SIGNALS = 1291,
@@ -1260,10 +1266,10 @@ enum Sprites {
SPR_IMG_TUNNEL_MONO = 2431,
SPR_IMG_TUNNEL_MAGLEV = 2432,
SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 22,
SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 118,
SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 24,
SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 26,
SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 55,
SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 59,
SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 65,
SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 71,
/* intro_gui.c, genworld_gui.c */
SPR_SELECT_TEMPERATE = 4882,
@@ -1290,7 +1296,7 @@ enum CursorSprite {
SPR_CURSOR_TREE = 2010,
SPR_CURSOR_BUY_LAND = 4792,
SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 62,
SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 92,
SPR_CURSOR_TOWN = 4080,
SPR_CURSOR_INDUSTRY = 4081,
@@ -1303,8 +1309,8 @@ enum CursorSprite {
/* dock cursors */
SPR_CURSOR_DOCK = 3668,
SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 8,
SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 57,
SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 89,
SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 87,
/* shared road & rail cursors */
SPR_CURSOR_BRIDGE = 2593,
@@ -1325,52 +1331,52 @@ enum CursorSprite {
SPR_CURSOR_EW_MAGLEV = 1273,
SPR_CURSOR_NWSE_MAGLEV = 1274,
SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 43,
SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 44,
SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 45,
SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 46,
SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 40,
SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 41,
SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 42,
SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 43,
SPR_CURSOR_RAIL_STATION = 1300,
SPR_CURSOR_TUNNEL_RAIL = 2434,
SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 48,
SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 45,
SPR_CURSOR_TUNNEL_MONO = 2435,
SPR_CURSOR_TUNNEL_MAGLEV = 2436,
SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 4,
SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 117,
SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 5,
SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 6,
SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 54,
SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 58,
SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 64,
SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 70,
SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 7,
SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 77,
SPR_CURSOR_RAIL_DEPOT = 1296,
SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 121,
SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 11,
SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 12,
SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 62,
SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 68,
SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 74,
SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 23,
SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 119,
SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 25,
SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 27,
SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 56,
SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 60,
SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 66,
SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 72,
/* road cursors */
SPR_CURSOR_ROAD_NESW = 1311,
SPR_CURSOR_ROAD_NWSE = 1312,
SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 113,
SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 83,
SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2,
SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3,
SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 115,
SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 85,
SPR_CURSOR_ROAD_DEPOT = 1297,
SPR_CURSOR_BUS_STATION = 2725,
SPR_CURSOR_TRUCK_STATION = 2726,
SPR_CURSOR_ROAD_TUNNEL = 2433,
SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 88,
SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 105,
SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 107,
SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 109
SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110,
SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 111,
SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112,
SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 113,
};
/// Animation macro in table/animcursors.h (_animcursors[])