@ -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 ,
SPR_LARGE_SMALL_WINDOW = 682 ,
/* 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_OPENTTD_BASE = 4896 ,
OPENTTD_SPRITE_COUNT = 134 ,
SPR_LARGE_SMALL_WINDOW = 682 ,
/* 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_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_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 110 ,
SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 111 , // warning sign (shown if there are any newgrf errors)
/* 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_AIRPORTX_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITES_COUNT , // The sprites used for other airport angles
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 + 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_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_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 ,
SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT ,
CANALS_SPRITE_COUNT = 65 ,
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_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_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 + 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 ,
SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT ,
ONEWAY_SPRITE_COUNT = 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.
/* Flags sprites (in same order as enum NetworkLanguage) */
SPR_ FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT ,
FLAGS_SPRITE_COUNT = 29 ,
/* 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 ,
/* 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 ,
/* F lags sprites (in same order as enum NetworkLanguage) */
SPR_ FLAGS_BASE = SPR_HALFTILE_SELECTION_BASE + 12 ,
/* 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 + 1 8,
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_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 + 1 5 ,
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 + 1 8 ,
SPR_WIRE_X_NE = SPR_ELRAIL_BASE + 19 ,
SPR_WIRE_Y_NW = SPR_ELRAIL_BASE + 20 ,
SPR_WIRE_EW_W = SPR_ELRAIL_BASE + 2 1,
SPR_WIRE_NS_N = SPR_ELRAIL_BASE + 22 ,
SPR_WIRE_X_NE_DOWN = SPR_ELRAIL_BASE + 2 3 ,
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 + 2 6 ,
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 + 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 + 1 2 ,
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 + 1 5 ,
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 + 2 0 ,
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 + 2 3 ,
/* Tunnel entries */
SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 2 7 ,
SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 2 8 ,
SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 2 9 ,
SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 30 ,
SPR_WIRE_TUNNEL_NE = SPR_ELRAIL_BASE + 2 4 ,
SPR_WIRE_TUNNEL_SE = SPR_ELRAIL_BASE + 2 5 ,
SPR_WIRE_TUNNEL_SW = SPR_ELRAIL_BASE + 2 6 ,
SPR_WIRE_TUNNEL_NW = SPR_ELRAIL_BASE + 27 ,
/* Depot entries */
SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 2 7 ,
SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 2 8 ,
SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 2 9 ,
SPR_WIRE_DEPOT_SE = SPR_ELRAIL_BASE + 30 ,
SPR_WIRE_DEPOT_SW = SPR_ELRAIL_BASE + 2 4 ,
SPR_WIRE_DEPOT_NW = SPR_ELRAIL_BASE + 2 5 ,
SPR_WIRE_DEPOT_NE = SPR_ELRAIL_BASE + 2 6 ,
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 + 3 2,
SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 3 3 ,
SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 3 4 ,
SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 3 5 ,
SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 3 6 ,
SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 3 7 ,
SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 3 8 ,
SPR_PYLON_Y_NE = SPR_ELRAIL_BASE + 28 ,
SPR_PYLON_Y_SW = SPR_ELRAIL_BASE + 29 ,
SPR_PYLON_X_NW = SPR_ELRAIL_BASE + 3 0 ,
SPR_PYLON_X_SE = SPR_ELRAIL_BASE + 3 1 ,
SPR_PYLON_EW_N = SPR_ELRAIL_BASE + 3 2 ,
SPR_PYLON_EW_S = SPR_ELRAIL_BASE + 3 3 ,
SPR_PYLON_NS_W = SPR_ELRAIL_BASE + 3 4 ,
SPR_PYLON_NS_E = SPR_ELRAIL_BASE + 3 5 ,
/* 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 + 2 8,
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 + 6 1,
SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 5 8,
SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 6 9 ,
SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 9 1,
SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 8 8,
SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 6 4 ,
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 + 1 3 ,
SPR_OTTD_D = SPR_OPENTTD_BASE + 1 4 ,
SPR_OTTD_E = SPR_OPENTTD_BASE + 1 2 ,
SPR_OTTD_D = SPR_OPENTTD_BASE + 1 3 ,
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 + 3 9 ,
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 + 4 7 ,
SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 3 6 ,
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 + 4 4 ,
/* 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 + 11 2,
SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 8 2,
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 + 11 4,
SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 8 4,
/* 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 + 6 1,
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 + 6 2,
SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 9 2,
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 + 5 7,
SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 8 9 ,
SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 8 7,
/* 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 + 4 3 ,
SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 4 4 ,
SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 4 5 ,
SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 4 6 ,
SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 4 0 ,
SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 4 1 ,
SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 4 2 ,
SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 4 3 ,
SPR_CURSOR_RAIL_STATION = 1300 ,
SPR_CURSOR_TUNNEL_RAIL = 2434 ,
SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 4 8 ,
SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 4 5 ,
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 + 5 4,
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 + 7 7 ,
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 + 2 7,
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 + 11 3,
SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 8 3,
SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2 ,
SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3 ,
SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 11 5,
SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 8 5,
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 + 1 05 ,
SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 1 07 ,
SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 1 09
SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110 ,
SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 1 11 ,
SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 1 12 ,
SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 1 13,
} ;
/// Animation macro in table/animcursors.h (_animcursors[])