1 /* 2 * This file is part of OpenTTD. 3 * OpenTTD is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 2. 4 * OpenTTD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 5 * See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with OpenTTD. If not, see <http://www.gnu.org/licenses/>. 6 */ 7 8 /** 9 * @file sprites.h 10 * This file contains all sprite-related enums and defines. These consist mainly of 11 * the sprite numbers and a bunch of masks and macros to handle sprites and to get 12 * rid of all the magic numbers in the code. 13 * 14 * @note 15 * ALL SPRITE NUMBERS BELOW 5126 are in the main files 16 * 17 * All elements which consist of two elements should 18 * have the same name and then suffixes 19 * _GROUND and _BUILD for building-type sprites 20 * _REAR and _FRONT for transport-type sprites (tiles where vehicles are on) 21 * These sprites are split because of the Z order of the elements 22 * (like some parts of a bridge are behind the vehicle, while others are before) 23 * 24 * 25 * All sprites which are described here are referenced only one to a handful of times 26 * throughout the code. When introducing new sprite enums, use meaningful names. 27 * Don't be lazy and typing, and only use abbreviations when their meaning is clear or 28 * the length of the enum would get out of hand. In that case EXPLAIN THE ABBREVIATION 29 * IN THIS FILE, and perhaps add some comments in the code where it is used. 30 * Now, don't whine about this being too much typing work if the enums are like 31 * 30 characters in length. If your editor doesn't help you simplifying your work, 32 * get a proper editor. If your Operating Systems don't have any decent editors, 33 * get a proper Operating System. 34 * 35 * @todo Split the "Sprites" enum into smaller chunks and document them 36 */ 37 38 #ifndef SPRITES_H 39 #define SPRITES_H 40 41 #include "../gfx_type.h" 42 43 static const SpriteID SPR_SELECT_TILE = 752; 44 static const SpriteID SPR_DOT = 774; // corner marker for lower/raise land 45 static const SpriteID SPR_DOT_SMALL = 4078; 46 static const SpriteID SPR_WHITE_POINT = 4079; 47 48 /* ASCII */ 49 static const SpriteID SPR_ASCII_SPACE = 2; 50 static const SpriteID SPR_ASCII_SPACE_SMALL = 226; 51 static const SpriteID SPR_ASCII_SPACE_BIG = 450; 52 53 static const SpriteID SPR_LARGE_SMALL_WINDOW = 682; 54 55 /** Extra graphic spritenumbers */ 56 static const SpriteID SPR_OPENTTD_BASE = 4896; 57 static const uint16 OPENTTD_SPRITE_COUNT = 191; 58 59 /* Halftile-selection sprites */ 60 static const SpriteID SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE; 61 static const SpriteID SPR_HALFTILE_SELECTION_DOWN = SPR_OPENTTD_BASE + 4; 62 static const SpriteID SPR_HALFTILE_SELECTION_UP = SPR_OPENTTD_BASE + 8; 63 64 static const SpriteID SPR_SQUARE = SPR_OPENTTD_BASE + 38; // coloured square (used for newgrf compatibility) 65 static const SpriteID SPR_BLOT = SPR_OPENTTD_BASE + 39; // coloured circle (used for server compatibility and installed content) 66 static const SpriteID SPR_LOCK = SPR_OPENTTD_BASE + 40; // lock icon (for password protected servers) 67 static const SpriteID SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 41; 68 static const SpriteID SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 42; 69 static const SpriteID SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43; // warning sign (shown if there are any newgrf errors) 70 static const SpriteID SPR_WINDOW_RESIZE_RIGHT= SPR_OPENTTD_BASE + 44; // resize icon to the right 71 static const SpriteID SPR_WINDOW_RESIZE_LEFT = SPR_OPENTTD_BASE + 149; // resize icon to the left 72 static const SpriteID SPR_WINDOW_SHADE = SPR_OPENTTD_BASE + 151; // shade the window icon 73 static const SpriteID SPR_WINDOW_UNSHADE = SPR_OPENTTD_BASE + 152; // unshade the window icon 74 static const SpriteID SPR_WINDOW_DEBUG = SPR_OPENTTD_BASE + 153; // NewGRF debug window icon 75 static const SpriteID SPR_IMG_PLAY_MUSIC_RTL = SPR_OPENTTD_BASE + 150; // play music button, but then for RTL users 76 /* Arrow icons pointing in all 4 directions */ 77 static const SpriteID SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45; 78 static const SpriteID SPR_ARROW_UP = SPR_OPENTTD_BASE + 46; 79 static const SpriteID SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 47; 80 static const SpriteID SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 48; 81 static const SpriteID SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 49; 82 static const SpriteID SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 50; 83 static const SpriteID SPR_PIN_UP = SPR_OPENTTD_BASE + 51; // pin icon 84 static const SpriteID SPR_PIN_DOWN = SPR_OPENTTD_BASE + 52; 85 86 static const SpriteID SPR_CLOSEBOX = 143; 87 88 static const SpriteID SPR_CIRCLE_FOLDED = SPR_OPENTTD_BASE + 147; // (+) icon 89 static const SpriteID SPR_CIRCLE_UNFOLDED = SPR_OPENTTD_BASE + 148; // (-) icon 90 91 /* on screen keyboard icons */ 92 static const SpriteID SPR_OSK_LEFT = SPR_OPENTTD_BASE + 138; 93 static const SpriteID SPR_OSK_RIGHT = SPR_OPENTTD_BASE + 139; 94 static const SpriteID SPR_OSK_CAPS = SPR_OPENTTD_BASE + 140; 95 static const SpriteID SPR_OSK_SHIFT = SPR_OPENTTD_BASE + 141; 96 static const SpriteID SPR_OSK_BACKSPACE = SPR_OPENTTD_BASE + 142; 97 static const SpriteID SPR_OSK_SPECIAL = SPR_OPENTTD_BASE + 143; 98 99 /** Clone vehicles stuff */ 100 static const SpriteID SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 106; 101 static const SpriteID SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 107; 102 static const SpriteID SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 108; 103 static const SpriteID SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 109; 104 105 static const SpriteID SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 93; 106 static const SpriteID SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 94; 107 static const SpriteID SPR_SELL_SHIP = SPR_OPENTTD_BASE + 95; 108 static const SpriteID SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 96; 109 static const SpriteID SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 97; 110 static const SpriteID SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 98; 111 static const SpriteID SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 99; 112 static const SpriteID SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 100; 113 static const SpriteID SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 101; 114 static const SpriteID SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 102; 115 static const SpriteID SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 103; 116 static const SpriteID SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 104; 117 static const SpriteID SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 105; 118 119 static const SpriteID SPR_PROFIT_NA = SPR_OPENTTD_BASE + 154; 120 static const SpriteID SPR_PROFIT_NEGATIVE = SPR_OPENTTD_BASE + 155; 121 static const SpriteID SPR_PROFIT_SOME = SPR_OPENTTD_BASE + 156; 122 static const SpriteID SPR_PROFIT_LOT = SPR_OPENTTD_BASE + 157; 123 124 static const SpriteID SPR_UNREAD_NEWS = SPR_OPENTTD_BASE + 158; 125 static const SpriteID SPR_EXCLUSIVE_TRANSPORT = SPR_OPENTTD_BASE + 159; 126 static const SpriteID SPR_GROUP_REPLACE_PROTECT = SPR_OPENTTD_BASE + 160; 127 static const SpriteID SPR_GROUP_REPLACE_ACTIVE = SPR_OPENTTD_BASE + 161; 128 129 static const SpriteID SPR_GROUP_CREATE_TRAIN = SPR_OPENTTD_BASE + 114; 130 static const SpriteID SPR_GROUP_CREATE_ROADVEH = SPR_OPENTTD_BASE + 115; 131 static const SpriteID SPR_GROUP_CREATE_SHIP = SPR_OPENTTD_BASE + 116; 132 static const SpriteID SPR_GROUP_CREATE_AIRCRAFT = SPR_OPENTTD_BASE + 117; 133 static const SpriteID SPR_GROUP_DELETE_TRAIN = SPR_OPENTTD_BASE + 118; 134 static const SpriteID SPR_GROUP_DELETE_ROADVEH = SPR_OPENTTD_BASE + 119; 135 static const SpriteID SPR_GROUP_DELETE_SHIP = SPR_OPENTTD_BASE + 120; 136 static const SpriteID SPR_GROUP_DELETE_AIRCRAFT = SPR_OPENTTD_BASE + 121; 137 static const SpriteID SPR_GROUP_RENAME_TRAIN = SPR_OPENTTD_BASE + 122; 138 static const SpriteID SPR_GROUP_RENAME_ROADVEH = SPR_OPENTTD_BASE + 123; 139 static const SpriteID SPR_GROUP_RENAME_SHIP = SPR_OPENTTD_BASE + 124; 140 static const SpriteID SPR_GROUP_RENAME_AIRCRAFT = SPR_OPENTTD_BASE + 125; 141 static const SpriteID SPR_GROUP_REPLACE_ON_TRAIN = SPR_OPENTTD_BASE + 126; 142 static const SpriteID SPR_GROUP_REPLACE_ON_ROADVEH = SPR_OPENTTD_BASE + 127; 143 static const SpriteID SPR_GROUP_REPLACE_ON_SHIP = SPR_OPENTTD_BASE + 128; 144 static const SpriteID SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_OPENTTD_BASE + 129; 145 static const SpriteID SPR_GROUP_REPLACE_OFF_TRAIN = SPR_OPENTTD_BASE + 130; 146 static const SpriteID SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_OPENTTD_BASE + 131; 147 static const SpriteID SPR_GROUP_REPLACE_OFF_SHIP = SPR_OPENTTD_BASE + 132; 148 static const SpriteID SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_OPENTTD_BASE + 133; 149 150 static const SpriteID SPR_GROUP_LIVERY_TRAIN = SPR_OPENTTD_BASE + 175; 151 static const SpriteID SPR_GROUP_LIVERY_ROADVEH = SPR_OPENTTD_BASE + 176; 152 static const SpriteID SPR_GROUP_LIVERY_SHIP = SPR_OPENTTD_BASE + 177; 153 static const SpriteID SPR_GROUP_LIVERY_AIRCRAFT = SPR_OPENTTD_BASE + 178; 154 155 static const SpriteID SPR_TOWN_RATING_NA = SPR_OPENTTD_BASE + 162; 156 static const SpriteID SPR_TOWN_RATING_APALLING = SPR_OPENTTD_BASE + 163; 157 static const SpriteID SPR_TOWN_RATING_MEDIOCRE = SPR_OPENTTD_BASE + 164; 158 static const SpriteID SPR_TOWN_RATING_GOOD = SPR_OPENTTD_BASE + 165; 159 160 static const SpriteID SPR_IMG_SWITCH_TOOLBAR = SPR_OPENTTD_BASE + 144; 161 162 static const SpriteID SPR_IMG_DELETE_LEFT = SPR_OPENTTD_BASE + 166; 163 static const SpriteID SPR_IMG_DELETE_RIGHT = SPR_OPENTTD_BASE + 167; 164 165 static const SpriteID SPR_WINDOW_DEFSIZE = SPR_OPENTTD_BASE + 168; 166 static const SpriteID SPR_RENAME = SPR_OPENTTD_BASE + 184; 167 static const SpriteID SPR_GOTO_LOCATION = SPR_OPENTTD_BASE + 185; 168 169 static const SpriteID SPR_CHAT = SPR_OPENTTD_BASE + 186; 170 static const SpriteID SPR_ADMIN = SPR_OPENTTD_BASE + 187; 171 static const SpriteID SPR_JOIN = SPR_OPENTTD_BASE + 188; 172 static const SpriteID SPR_PLAYER_SELF = SPR_OPENTTD_BASE + 189; 173 static const SpriteID SPR_PLAYER_HOST = SPR_OPENTTD_BASE + 190; 174 175 static const SpriteID SPR_IMG_CARGOFLOW = SPR_OPENTTD_BASE + 174; 176 177 static const SpriteID SPR_SIGNALS_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT; 178 static const uint16 PRESIGNAL_SPRITE_COUNT = 48; 179 static const uint16 PRESIGNAL_AND_SEMAPHORE_SPRITE_COUNT = 112; 180 static const uint16 PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT = 240; 181 182 static const SpriteID SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT; 183 static const uint16 CANALS_SPRITE_COUNT = 65; 184 185 /** Sprites for the Aqueduct. */ 186 static const SpriteID SPR_AQUEDUCT_BASE = SPR_CANALS_BASE + CANALS_SPRITE_COUNT; 187 static const SpriteID SPR_AQUEDUCT_RAMP_SW = SPR_AQUEDUCT_BASE + 0; 188 static const SpriteID SPR_AQUEDUCT_RAMP_SE = SPR_AQUEDUCT_BASE + 1; 189 static const SpriteID SPR_AQUEDUCT_RAMP_NE = SPR_AQUEDUCT_BASE + 2; 190 static const SpriteID SPR_AQUEDUCT_RAMP_NW = SPR_AQUEDUCT_BASE + 3; 191 static const SpriteID SPR_AQUEDUCT_MIDDLE_X = SPR_AQUEDUCT_BASE + 4; 192 static const SpriteID SPR_AQUEDUCT_MIDDLE_Y = SPR_AQUEDUCT_BASE + 5; 193 static const SpriteID SPR_AQUEDUCT_PILLAR_X = SPR_AQUEDUCT_BASE + 6; 194 static const SpriteID SPR_AQUEDUCT_PILLAR_Y = SPR_AQUEDUCT_BASE + 7; 195 static const uint16 AQUEDUCT_SPRITE_COUNT = 8; 196 197 /** Sprites for 'highlighting' tracks on sloped land. */ 198 static const SpriteID SPR_TRACKS_FOR_SLOPES_BASE = SPR_AQUEDUCT_BASE + AQUEDUCT_SPRITE_COUNT; 199 static const SpriteID SPR_TRACKS_FOR_SLOPES_RAIL_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 0; 200 static const SpriteID SPR_TRACKS_FOR_SLOPES_MONO_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 4; 201 static const SpriteID SPR_TRACKS_FOR_SLOPES_MAGLEV_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 8; 202 static const uint16 TRACKS_FOR_SLOPES_SPRITE_COUNT = 12; 203 204 static const SpriteID SPR_SLOPES_BASE = SPR_TRACKS_FOR_SLOPES_BASE + TRACKS_FOR_SLOPES_SPRITE_COUNT; 205 static const SpriteID SPR_SLOPES_INCLINED_OFFSET = 15; 206 static const SpriteID 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. 207 static const SpriteID SPR_TRKFOUND_BLOCK_SIZE = 22; // The normal track foundation sprites are organized in blocks of 22. 208 static const uint16 NORMAL_FOUNDATION_SPRITE_COUNT = 74; 209 /** Halftile foundations */ 210 static const SpriteID SPR_HALFTILE_FOUNDATION_BASE = SPR_SLOPES_BASE + NORMAL_FOUNDATION_SPRITE_COUNT; 211 static const SpriteID SPR_HALFTILE_BLOCK_SIZE = 4; // The half tile foundation sprites are organized in blocks of 4. 212 static const uint16 NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT = 90; 213 214 static const SpriteID SPR_AUTORAIL_BASE = SPR_HALFTILE_FOUNDATION_BASE + NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT; 215 static const uint16 AUTORAIL_SPRITE_COUNT = 55; 216 217 static const SpriteID SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + AUTORAIL_SPRITE_COUNT; 218 static const uint16 ELRAIL_SPRITE_COUNT = 48; 219 220 static const SpriteID SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + ELRAIL_SPRITE_COUNT; 221 static const uint16 TWOCCMAP_SPRITE_COUNT = 256; 222 223 /** shore tiles - action 05-0D */ 224 static const SpriteID SPR_SHORE_BASE = SPR_2CCMAP_BASE + TWOCCMAP_SPRITE_COUNT; 225 static const SpriteID SPR_SHORE_SPRITE_COUNT = 18; 226 static const SpriteID SPR_ORIGINALSHORE_START = 4062; 227 static const SpriteID SPR_ORIGINALSHORE_END = 4069; 228 229 static const SpriteID SPR_AIRPORTX_BASE = SPR_SHORE_BASE + SPR_SHORE_SPRITE_COUNT; // The sprites used for other airport angles 230 static const SpriteID SPR_NEWAIRPORT_TARMAC = SPR_AIRPORTX_BASE; 231 static const SpriteID SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1; 232 static const SpriteID SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2; 233 static const SpriteID SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3; 234 static const SpriteID SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4; 235 static const SpriteID SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5; 236 static const SpriteID SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6; 237 static const SpriteID SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7; 238 static const SpriteID SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8; 239 static const SpriteID SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9; 240 static const SpriteID SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10; 241 static const SpriteID SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11; 242 static const SpriteID SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12; 243 static const SpriteID SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13; 244 static const SpriteID SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14; 245 static const uint16 AIRPORTX_SPRITE_COUNT = 15; 246 247 /** Airport preview sprites */ 248 static const SpriteID SPR_AIRPORT_PREVIEW_BASE = SPR_AIRPORTX_BASE + AIRPORTX_SPRITE_COUNT; 249 static const SpriteID SPR_AIRPORT_PREVIEW_SMALL = SPR_AIRPORT_PREVIEW_BASE; 250 static const SpriteID SPR_AIRPORT_PREVIEW_LARGE = SPR_AIRPORT_PREVIEW_BASE + 1; 251 static const SpriteID SPR_AIRPORT_PREVIEW_HELIPORT = SPR_AIRPORT_PREVIEW_BASE + 2; 252 static const SpriteID SPR_AIRPORT_PREVIEW_METROPOLITAN = SPR_AIRPORT_PREVIEW_BASE + 3; 253 static const SpriteID SPR_AIRPORT_PREVIEW_INTERNATIONAL = SPR_AIRPORT_PREVIEW_BASE + 4; 254 static const SpriteID SPR_AIRPORT_PREVIEW_COMMUTER = SPR_AIRPORT_PREVIEW_BASE + 5; 255 static const SpriteID SPR_AIRPORT_PREVIEW_HELIDEPOT = SPR_AIRPORT_PREVIEW_BASE + 6; 256 static const SpriteID SPR_AIRPORT_PREVIEW_INTERCONTINENTAL = SPR_AIRPORT_PREVIEW_BASE + 7; 257 static const SpriteID SPR_AIRPORT_PREVIEW_HELISTATION = SPR_AIRPORT_PREVIEW_BASE + 8; 258 static const SpriteID SPR_AIRPORT_PREVIEW_COUNT = 9; 259 260 static const SpriteID SPR_ROADSTOP_BASE = SPR_AIRPORT_PREVIEW_BASE + SPR_AIRPORT_PREVIEW_COUNT; // The sprites used for drive-through road stops 261 static const SpriteID SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE; 262 static const SpriteID SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1; 263 static const SpriteID SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2; 264 static const SpriteID SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3; 265 static const SpriteID SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4; 266 static const SpriteID SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5; 267 static const SpriteID SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6; 268 static const SpriteID SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7; 269 static const uint16 ROADSTOP_SPRITE_COUNT = 8; 270 271 /** Tramway sprites */ 272 static const SpriteID SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT; 273 static const SpriteID SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4; 274 static const SpriteID SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27; 275 static const SpriteID SPR_TRAMWAY_SLOPED_OFFSET = 11; 276 static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_Y_W = SPR_TRAMWAY_BASE + 25; 277 static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_Y_E = SPR_TRAMWAY_BASE + 23; 278 static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_X_W = SPR_TRAMWAY_BASE + 24; 279 static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_X_E = SPR_TRAMWAY_BASE + 26; 280 static const SpriteID SPR_TRAMWAY_PAVED_STRAIGHT_Y = SPR_TRAMWAY_BASE + 46; 281 static const SpriteID SPR_TRAMWAY_PAVED_STRAIGHT_X = SPR_TRAMWAY_BASE + 47; 282 static const SpriteID SPR_TRAMWAY_DEPOT_WITH_TRACK = SPR_TRAMWAY_BASE + 49; 283 static const SpriteID SPR_TRAMWAY_BACK_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 55; 284 static const SpriteID SPR_TRAMWAY_FRONT_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 56; 285 static const SpriteID SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68; 286 static const SpriteID SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72; 287 static const SpriteID SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80; 288 static const SpriteID SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107; 289 static const SpriteID SPR_TRAMWAY_DEPOT_NO_TRACK = SPR_TRAMWAY_BASE + 113; 290 static const uint16 TRAMWAY_SPRITE_COUNT = 119; 291 292 /** One way road sprites */ 293 static const SpriteID SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT; 294 static const uint16 ONEWAY_SPRITE_COUNT = 6; 295 296 /** Flags sprites (in same order as enum NetworkLanguage) */ 297 static const SpriteID SPR_FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT; 298 static const uint16 FLAGS_SPRITE_COUNT = 36; 299 300 /** Tunnel sprites with grass only for custom railtype tunnel. */ 301 static const SpriteID SPR_RAILTYPE_TUNNEL_BASE = SPR_FLAGS_BASE + FLAGS_SPRITE_COUNT; 302 static const uint16 RAILTYPE_TUNNEL_BASE_COUNT = 16; 303 304 /* 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. */ 305 static const SpriteID SPR_EMPTY_BOUNDING_BOX = SPR_RAILTYPE_TUNNEL_BASE + RAILTYPE_TUNNEL_BASE_COUNT; 306 static const uint16 EMPTY_BOUNDING_BOX_SPRITE_COUNT = 1; 307 308 /* Black palette sprite, needed for painting (fictive) tiles outside map */ 309 static const SpriteID SPR_PALETTE_BASE = SPR_EMPTY_BOUNDING_BOX + EMPTY_BOUNDING_BOX_SPRITE_COUNT; 310 static const uint16 PALETTE_SPRITE_COUNT = 1; 311 312 /* From where can we start putting NewGRFs? */ 313 static const SpriteID SPR_NEWGRFS_BASE = SPR_PALETTE_BASE + PALETTE_SPRITE_COUNT; 314 315 /* Manager face sprites */ 316 static const SpriteID SPR_GRADIENT = 874; // background gradient behind manager face 317 318 /* Icon showing company colour. */ 319 static const SpriteID SPR_COMPANY_ICON = 747; 320 321 /* is itself no foundation sprite, because tileh 0 has no foundation */ 322 static const SpriteID SPR_FOUNDATION_BASE = 989; 323 324 /* Shadow cell */ 325 static const SpriteID SPR_SHADOW_CELL = 1004; 326 327 /* Objects spritenumbers */ 328 static const SpriteID SPR_TRANSMITTER = 2601; 329 static const SpriteID SPR_LIGHTHOUSE = 2602; 330 static const SpriteID SPR_TINYHQ_NORTH = 2603; 331 static const SpriteID SPR_TINYHQ_EAST = 2604; 332 static const SpriteID SPR_TINYHQ_WEST = 2605; 333 static const SpriteID SPR_TINYHQ_SOUTH = 2606; 334 static const SpriteID SPR_SMALLHQ_NORTH = 2607; 335 static const SpriteID SPR_SMALLHQ_EAST = 2608; 336 static const SpriteID SPR_SMALLHQ_WEST = 2609; 337 static const SpriteID SPR_SMALLHQ_SOUTH = 2610; 338 static const SpriteID SPR_MEDIUMHQ_NORTH = 2611; 339 static const SpriteID SPR_MEDIUMHQ_NORTH_WALL = 2612; 340 static const SpriteID SPR_MEDIUMHQ_EAST = 2613; 341 static const SpriteID SPR_MEDIUMHQ_EAST_WALL = 2614; 342 static const SpriteID SPR_MEDIUMHQ_WEST = 2615; 343 static const SpriteID SPR_MEDIUMHQ_WEST_WALL = 2616; // very tiny piece of wall 344 static const SpriteID SPR_MEDIUMHQ_SOUTH = 2617; 345 static const SpriteID SPR_LARGEHQ_NORTH_GROUND = 2618; 346 static const SpriteID SPR_LARGEHQ_NORTH_BUILD = 2619; 347 static const SpriteID SPR_LARGEHQ_EAST_GROUND = 2620; 348 static const SpriteID SPR_LARGEHQ_EAST_BUILD = 2621; 349 static const SpriteID SPR_LARGEHQ_WEST_GROUND = 2622; 350 static const SpriteID SPR_LARGEHQ_WEST_BUILD = 2623; 351 static const SpriteID SPR_LARGEHQ_SOUTH = 2624; 352 static const SpriteID SPR_HUGEHQ_NORTH_GROUND = 2625; 353 static const SpriteID SPR_HUGEHQ_NORTH_BUILD = 2626; 354 static const SpriteID SPR_HUGEHQ_EAST_GROUND = 2627; 355 static const SpriteID SPR_HUGEHQ_EAST_BUILD = 2628; 356 static const SpriteID SPR_HUGEHQ_WEST_GROUND = 2629; 357 static const SpriteID SPR_HUGEHQ_WEST_BUILD = 2630; 358 static const SpriteID SPR_HUGEHQ_SOUTH = 2631; 359 static const SpriteID SPR_CONCRETE_GROUND = 1420; 360 static const SpriteID SPR_STATUE_COMPANY = 2632; 361 static const SpriteID SPR_BOUGHT_LAND = 4790; 362 363 /* sprites for rail and rail stations*/ 364 static const SpriteID SPR_RAIL_SNOW_OFFSET = 26; 365 static const SpriteID SPR_MONO_SNOW_OFFSET = 26; 366 static const SpriteID SPR_MGLV_SNOW_OFFSET = 26; 367 368 static const SpriteID SPR_ORIGINAL_SIGNALS_BASE = 1275; 369 370 static const SpriteID SPR_RAIL_SINGLE_X = 1005; 371 static const SpriteID SPR_RAIL_SINGLE_Y = 1006; 372 static const SpriteID SPR_RAIL_SINGLE_NORTH = 1007; 373 static const SpriteID SPR_RAIL_SINGLE_SOUTH = 1008; 374 static const SpriteID SPR_RAIL_SINGLE_EAST = 1009; 375 static const SpriteID SPR_RAIL_SINGLE_WEST = 1010; 376 static const SpriteID SPR_RAIL_TRACK_Y = 1011; 377 static const SpriteID SPR_RAIL_TRACK_X = 1012; 378 static const SpriteID SPR_RAIL_TRACK_BASE = 1018; 379 static const SpriteID SPR_RAIL_TRACK_N_S = 1035; 380 static const SpriteID SPR_RAIL_TRACK_Y_SNOW = 1037; 381 static const SpriteID SPR_RAIL_TRACK_X_SNOW = 1038; 382 static const SpriteID SPR_RAIL_DEPOT_SE_1 = 1063; 383 static const SpriteID SPR_RAIL_DEPOT_SE_2 = 1064; 384 static const SpriteID SPR_RAIL_DEPOT_SW_1 = 1065; 385 static const SpriteID SPR_RAIL_DEPOT_SW_2 = 1066; 386 static const SpriteID SPR_RAIL_DEPOT_NE = 1067; 387 static const SpriteID SPR_RAIL_DEPOT_NW = 1068; 388 static const SpriteID SPR_RAIL_PLATFORM_Y_FRONT = 1069; 389 static const SpriteID SPR_RAIL_PLATFORM_X_REAR = 1070; 390 static const SpriteID SPR_RAIL_PLATFORM_Y_REAR = 1071; 391 static const SpriteID SPR_RAIL_PLATFORM_X_FRONT = 1072; 392 static const SpriteID SPR_RAIL_PLATFORM_BUILDING_X = 1073; 393 static const SpriteID SPR_RAIL_PLATFORM_BUILDING_Y = 1074; 394 static const SpriteID SPR_RAIL_PLATFORM_PILLARS_Y_FRONT = 1075; 395 static const SpriteID SPR_RAIL_PLATFORM_PILLARS_X_REAR = 1076; 396 static const SpriteID SPR_RAIL_PLATFORM_PILLARS_Y_REAR = 1077; 397 static const SpriteID SPR_RAIL_PLATFORM_PILLARS_X_FRONT = 1078; 398 static const SpriteID SPR_RAIL_ROOF_STRUCTURE_X_TILE_A = 1079; // First half of the roof structure 399 static const SpriteID SPR_RAIL_ROOF_STRUCTURE_Y_TILE_A = 1080; 400 static const SpriteID SPR_RAIL_ROOF_STRUCTURE_X_TILE_B = 1081; // Second half of the roof structure 401 static const SpriteID SPR_RAIL_ROOF_STRUCTURE_Y_TILE_B = 1082; 402 static const SpriteID SPR_RAIL_ROOF_GLASS_X_TILE_A = 1083; // First half of the roof glass 403 static const SpriteID SPR_RAIL_ROOF_GLASS_Y_TILE_A = 1084; 404 static const SpriteID SPR_RAIL_ROOF_GLASS_X_TILE_B = 1085; // second half of the roof glass 405 static const SpriteID SPR_RAIL_ROOF_GLASS_Y_TILE_B = 1086; 406 static const SpriteID SPR_MONO_SINGLE_X = 1087; 407 static const SpriteID SPR_MONO_SINGLE_Y = 1088; 408 static const SpriteID SPR_MONO_SINGLE_NORTH = 1089; 409 static const SpriteID SPR_MONO_SINGLE_SOUTH = 1090; 410 static const SpriteID SPR_MONO_SINGLE_EAST = 1091; 411 static const SpriteID SPR_MONO_SINGLE_WEST = 1092; 412 static const SpriteID SPR_MONO_TRACK_Y = 1093; 413 static const SpriteID SPR_MONO_TRACK_X = 1094; 414 static const SpriteID SPR_MONO_TRACK_BASE = 1100; 415 static const SpriteID SPR_MONO_TRACK_N_S = 1117; 416 static const SpriteID SPR_MONO_TRACK_Y_SNOW = 1119; 417 static const SpriteID SPR_MONO_TRACK_X_SNOW = 1120; 418 static const SpriteID SPR_MGLV_SINGLE_X = 1169; 419 static const SpriteID SPR_MGLV_SINGLE_Y = 1170; 420 static const SpriteID SPR_MGLV_SINGLE_NORTH = 1171; 421 static const SpriteID SPR_MGLV_SINGLE_SOUTH = 1172; 422 static const SpriteID SPR_MGLV_SINGLE_EAST = 1173; 423 static const SpriteID SPR_MGLV_SINGLE_WEST = 1174; 424 static const SpriteID SPR_MGLV_TRACK_Y = 1175; 425 static const SpriteID SPR_MGLV_TRACK_X = 1176; 426 static const SpriteID SPR_MGLV_TRACK_BASE = 1182; 427 static const SpriteID SPR_MGLV_TRACK_Y_SNOW = 1184; 428 static const SpriteID SPR_MGLV_TRACK_X_SNOW = 1185; 429 static const SpriteID SPR_MGLV_TRACK_N_S = 1199; 430 static const SpriteID SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 78; 431 static const SpriteID SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 79; 432 static const SpriteID SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 80; 433 static const SpriteID SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 81; 434 /* see _track_sloped_sprites in rail_cmd.cpp for slope offsets */ 435 436 /* Track fences */ 437 static const SpriteID SPR_TRACK_FENCE_FLAT_X = 1301; 438 static const SpriteID SPR_TRACK_FENCE_FLAT_Y = 1302; 439 static const SpriteID SPR_TRACK_FENCE_FLAT_VERT = 1303; 440 static const SpriteID SPR_TRACK_FENCE_FLAT_HORZ = 1304; 441 static const SpriteID SPR_TRACK_FENCE_SLOPE_SW = 1305; 442 static const SpriteID SPR_TRACK_FENCE_SLOPE_SE = 1306; 443 static const SpriteID SPR_TRACK_FENCE_SLOPE_NE = 1307; 444 static const SpriteID SPR_TRACK_FENCE_SLOPE_NW = 1308; 445 446 /* Base sprites for elrail. 447 * Offsets via an enum are used so a complete list of absolute 448 * sprite numbers is unnecessary. 449 */ 450 static const SpriteID SPR_WIRE_BASE = SPR_ELRAIL_BASE + 0; 451 static const SpriteID SPR_PYLON_BASE = SPR_ELRAIL_BASE + 28; 452 453 /* sprites for roads */ 454 static const SpriteID SPR_ROAD_PAVED_STRAIGHT_Y = 1313; 455 static const SpriteID SPR_ROAD_PAVED_STRAIGHT_X = 1314; 456 457 /* sprites for airports and airfields*/ 458 /* Small airports are AIRFIELD, everything else is AIRPORT */ 459 static const SpriteID SPR_HELIPORT = 2633; 460 static const SpriteID SPR_AIRPORT_APRON = 2634; 461 static const SpriteID SPR_AIRPORT_AIRCRAFT_STAND = 2635; 462 static const SpriteID SPR_AIRPORT_TAXIWAY_NS_WEST = 2636; 463 static const SpriteID SPR_AIRPORT_TAXIWAY_EW_SOUTH = 2637; 464 static const SpriteID SPR_AIRPORT_TAXIWAY_XING_SOUTH = 2638; 465 static const SpriteID SPR_AIRPORT_TAXIWAY_XING_WEST = 2639; 466 static const SpriteID SPR_AIRPORT_TAXIWAY_NS_CTR = 2640; 467 static const SpriteID SPR_AIRPORT_TAXIWAY_XING_EAST = 2641; 468 static const SpriteID SPR_AIRPORT_TAXIWAY_NS_EAST = 2642; 469 static const SpriteID SPR_AIRPORT_TAXIWAY_EW_NORTH = 2643; 470 static const SpriteID SPR_AIRPORT_TAXIWAY_EW_CTR = 2644; 471 static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_A = 2645; 472 static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_B = 2646; 473 static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_C = 2647; 474 static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_D = 2648; 475 static const SpriteID SPR_AIRPORT_RUNWAY_END = 2649; // We should have different ends 476 static const SpriteID SPR_AIRPORT_TERMINAL_A = 2650; 477 static const SpriteID SPR_AIRPORT_TOWER = 2651; 478 static const SpriteID SPR_AIRPORT_CONCOURSE = 2652; 479 static const SpriteID SPR_AIRPORT_TERMINAL_B = 2653; 480 static const SpriteID SPR_AIRPORT_TERMINAL_C = 2654; 481 static const SpriteID SPR_AIRPORT_HANGAR_FRONT = 2655; 482 static const SpriteID SPR_AIRPORT_HANGAR_REAR = 2656; 483 static const SpriteID SPR_AIRFIELD_HANGAR_FRONT = 2657; 484 static const SpriteID SPR_AIRFIELD_HANGAR_REAR = 2658; 485 static const SpriteID SPR_AIRPORT_JETWAY_1 = 2659; 486 static const SpriteID SPR_AIRPORT_JETWAY_2 = 2660; 487 static const SpriteID SPR_AIRPORT_JETWAY_3 = 2661; 488 static const SpriteID SPR_AIRPORT_PASSENGER_TUNNEL = 2662; 489 static const SpriteID SPR_AIRPORT_FENCE_Y = 2663; 490 static const SpriteID SPR_AIRPORT_FENCE_X = 2664; 491 static const SpriteID SPR_AIRFIELD_TERM_A = 2665; 492 static const SpriteID SPR_AIRFIELD_TERM_B = 2666; 493 static const SpriteID SPR_AIRFIELD_TERM_C_GROUND = 2667; 494 static const SpriteID SPR_AIRFIELD_TERM_C_BUILD = 2668; 495 static const SpriteID SPR_AIRFIELD_APRON_A = 2669; 496 static const SpriteID SPR_AIRFIELD_APRON_B = 2670; 497 static const SpriteID SPR_AIRFIELD_APRON_C = 2671; 498 static const SpriteID SPR_AIRFIELD_APRON_D = 2672; 499 static const SpriteID SPR_AIRFIELD_RUNWAY_NEAR_END = 2673; 500 static const SpriteID SPR_AIRFIELD_RUNWAY_MIDDLE = 2674; 501 static const SpriteID SPR_AIRFIELD_RUNWAY_FAR_END = 2675; 502 static const SpriteID SPR_AIRFIELD_WIND_1 = 2676; 503 static const SpriteID SPR_AIRFIELD_WIND_2 = 2677; 504 static const SpriteID SPR_AIRFIELD_WIND_3 = 2678; 505 static const SpriteID SPR_AIRFIELD_WIND_4 = 2679; 506 static const SpriteID SPR_AIRPORT_RADAR_1 = 2680; 507 static const SpriteID SPR_AIRPORT_RADAR_2 = 2681; 508 static const SpriteID SPR_AIRPORT_RADAR_3 = 2682; 509 static const SpriteID SPR_AIRPORT_RADAR_4 = 2683; 510 static const SpriteID SPR_AIRPORT_RADAR_5 = 2684; 511 static const SpriteID SPR_AIRPORT_RADAR_6 = 2685; 512 static const SpriteID SPR_AIRPORT_RADAR_7 = 2686; 513 static const SpriteID SPR_AIRPORT_RADAR_8 = 2687; 514 static const SpriteID SPR_AIRPORT_RADAR_9 = 2688; 515 static const SpriteID SPR_AIRPORT_RADAR_A = 2689; 516 static const SpriteID SPR_AIRPORT_RADAR_B = 2690; 517 static const SpriteID SPR_AIRPORT_RADAR_C = 2691; 518 static const SpriteID SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 86; 519 static const SpriteID SPR_AIRPORT_HELIDEPOT_OFFICE = 2095; 520 521 /* Road Stops 522 * Road stops have a ground tile and 3 buildings, one on each side 523 * (except the side where the entry is). These are marked _A _B and _C */ 524 static const SpriteID SPR_BUS_STOP_NE_GROUND = 2692; 525 static const SpriteID SPR_BUS_STOP_SE_GROUND = 2693; 526 static const SpriteID SPR_BUS_STOP_SW_GROUND = 2694; 527 static const SpriteID SPR_BUS_STOP_NW_GROUND = 2695; 528 static const SpriteID SPR_BUS_STOP_NE_BUILD_A = 2696; 529 static const SpriteID SPR_BUS_STOP_SE_BUILD_A = 2697; 530 static const SpriteID SPR_BUS_STOP_SW_BUILD_A = 2698; 531 static const SpriteID SPR_BUS_STOP_NW_BUILD_A = 2699; 532 static const SpriteID SPR_BUS_STOP_NE_BUILD_B = 2700; 533 static const SpriteID SPR_BUS_STOP_SE_BUILD_B = 2701; 534 static const SpriteID SPR_BUS_STOP_SW_BUILD_B = 2702; 535 static const SpriteID SPR_BUS_STOP_NW_BUILD_B = 2703; 536 static const SpriteID SPR_BUS_STOP_NE_BUILD_C = 2704; 537 static const SpriteID SPR_BUS_STOP_SE_BUILD_C = 2705; 538 static const SpriteID SPR_BUS_STOP_SW_BUILD_C = 2706; 539 static const SpriteID SPR_BUS_STOP_NW_BUILD_C = 2707; 540 static const SpriteID SPR_TRUCK_STOP_NE_GROUND = 2708; 541 static const SpriteID SPR_TRUCK_STOP_SE_GROUND = 2709; 542 static const SpriteID SPR_TRUCK_STOP_SW_GROUND = 2710; 543 static const SpriteID SPR_TRUCK_STOP_NW_GROUND = 2711; 544 static const SpriteID SPR_TRUCK_STOP_NE_BUILD_A = 2712; 545 static const SpriteID SPR_TRUCK_STOP_SE_BUILD_A = 2713; 546 static const SpriteID SPR_TRUCK_STOP_SW_BUILD_A = 2714; 547 static const SpriteID SPR_TRUCK_STOP_NW_BUILD_A = 2715; 548 static const SpriteID SPR_TRUCK_STOP_NE_BUILD_B = 2716; 549 static const SpriteID SPR_TRUCK_STOP_SE_BUILD_B = 2717; 550 static const SpriteID SPR_TRUCK_STOP_SW_BUILD_B = 2718; 551 static const SpriteID SPR_TRUCK_STOP_NW_BUILD_B = 2719; 552 static const SpriteID SPR_TRUCK_STOP_NE_BUILD_C = 2720; 553 static const SpriteID SPR_TRUCK_STOP_SE_BUILD_C = 2721; 554 static const SpriteID SPR_TRUCK_STOP_SW_BUILD_C = 2722; 555 static const SpriteID SPR_TRUCK_STOP_NW_BUILD_C = 2723; 556 557 /* Sprites for docks 558 * Docks consist of two tiles, the sloped one and the flat one */ 559 static const SpriteID SPR_DOCK_SLOPE_NE = 2727; 560 static const SpriteID SPR_DOCK_SLOPE_SE = 2728; 561 static const SpriteID SPR_DOCK_SLOPE_SW = 2729; 562 static const SpriteID SPR_DOCK_SLOPE_NW = 2730; 563 static const SpriteID SPR_DOCK_FLAT_X = 2731; // for NE and SW 564 static const SpriteID SPR_DOCK_FLAT_Y = 2732; // for NW and SE 565 static const SpriteID SPR_BUOY = 4076; // XXX this sucks, because it displays wrong stuff on canals 566 567 /* Sprites for road */ 568 static const SpriteID SPR_ROAD_Y = 1332; 569 static const SpriteID SPR_ROAD_X = 1333; 570 static const SpriteID SPR_ROAD_SLOPE_START = 1343; 571 static const SpriteID SPR_ROAD_Y_SNOW = 1351; 572 static const SpriteID SPR_ROAD_X_SNOW = 1352; 573 /* see _road_sloped_sprites_offset in road_cmd.cpp for offsets for sloped road tiles */ 574 static const SpriteID SPR_ROAD_DEPOT = 1408; 575 576 static const SpriteID SPR_EXCAVATION_X = 1414; 577 static const SpriteID SPR_EXCAVATION_Y = 1415; 578 579 /* Landscape sprites */ 580 static const SpriteID SPR_FLAT_BARE_LAND = 3924; 581 static const SpriteID SPR_FLAT_1_THIRD_GRASS_TILE = 3943; 582 static const SpriteID SPR_FLAT_2_THIRD_GRASS_TILE = 3962; 583 static const SpriteID SPR_FLAT_GRASS_TILE = 3981; 584 static const SpriteID SPR_FLAT_ROUGH_LAND = 4000; 585 static const SpriteID SPR_FLAT_ROUGH_LAND_1 = 4019; 586 static const SpriteID SPR_FLAT_ROUGH_LAND_2 = 4020; 587 static const SpriteID SPR_FLAT_ROUGH_LAND_3 = 4021; 588 static const SpriteID SPR_FLAT_ROUGH_LAND_4 = 4022; 589 static const SpriteID SPR_FLAT_ROCKY_LAND_1 = 4023; 590 static const SpriteID SPR_FLAT_ROCKY_LAND_2 = 4042; 591 static const SpriteID SPR_FLAT_WATER_TILE = 4061; 592 static const SpriteID SPR_FLAT_1_QUART_SNOW_DESERT_TILE = 4493; 593 static const SpriteID SPR_FLAT_2_QUART_SNOW_DESERT_TILE = 4512; 594 static const SpriteID SPR_FLAT_3_QUART_SNOW_DESERT_TILE = 4531; 595 static const SpriteID SPR_FLAT_SNOW_DESERT_TILE = 4550; 596 597 /* Hedge, Farmland-fence sprites */ 598 static const SpriteID SPR_HEDGE_BUSHES = 4090; 599 static const SpriteID SPR_HEDGE_BUSHES_WITH_GATE = 4096; 600 static const SpriteID SPR_HEDGE_FENCE = 4102; 601 static const SpriteID SPR_HEDGE_BLOOMBUSH_YELLOW = 4108; 602 static const SpriteID SPR_HEDGE_BLOOMBUSH_RED = 4114; 603 static const SpriteID SPR_HEDGE_STONE = 4120; 604 605 /* Farmland sprites, only flat tiles listed, various stages */ 606 static const SpriteID SPR_FARMLAND_BARE = 4126; 607 static const SpriteID SPR_FARMLAND_STATE_1 = 4145; 608 static const SpriteID SPR_FARMLAND_STATE_2 = 4164; 609 static const SpriteID SPR_FARMLAND_STATE_3 = 4183; 610 static const SpriteID SPR_FARMLAND_STATE_4 = 4202; 611 static const SpriteID SPR_FARMLAND_STATE_5 = 4221; 612 static const SpriteID SPR_FARMLAND_STATE_6 = 4240; 613 static const SpriteID SPR_FARMLAND_STATE_7 = 4259; 614 static const SpriteID SPR_FARMLAND_HAYPACKS = 4278; 615 616 /* Water-related sprites */ 617 static const SpriteID SPR_SHIP_DEPOT_SE_FRONT = 4070; 618 static const SpriteID SPR_SHIP_DEPOT_SW_FRONT = 4071; 619 static const SpriteID SPR_SHIP_DEPOT_NW = 4072; 620 static const SpriteID SPR_SHIP_DEPOT_NE = 4073; 621 static const SpriteID SPR_SHIP_DEPOT_SE_REAR = 4074; 622 static const SpriteID SPR_SHIP_DEPOT_SW_REAR = 4075; 623 /* here come sloped water sprites */ 624 static const SpriteID SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 0; // Water flowing negative Y direction 625 static const SpriteID SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 1; // positive X 626 static const SpriteID SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 2; // negative X 627 static const SpriteID SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 3; // positive Y 628 /* sprites for the locks 629 * there are 4 kinds of locks, each of them is 3 tiles long. 630 * the four kinds are running in the X and Y direction and 631 * are "lowering" either in the "+" or the "-" direction. 632 * the three tiles are the center tile (where the slope is) 633 * and a bottom and a top tile */ 634 static const SpriteID SPR_LOCK_BASE = SPR_CANALS_BASE + 4; 635 static const SpriteID SPR_LOCK_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 4; 636 static const SpriteID SPR_LOCK_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 5; 637 static const SpriteID SPR_LOCK_X_UP_CENTER_REAR = SPR_CANALS_BASE + 6; 638 static const SpriteID SPR_LOCK_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 7; 639 static const SpriteID SPR_LOCK_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 8; 640 static const SpriteID SPR_LOCK_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 9; 641 static const SpriteID SPR_LOCK_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 10; 642 static const SpriteID SPR_LOCK_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 11; 643 static const SpriteID SPR_LOCK_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 12; 644 static const SpriteID SPR_LOCK_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 13; 645 static const SpriteID SPR_LOCK_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 14; 646 static const SpriteID SPR_LOCK_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 15; 647 static const SpriteID SPR_LOCK_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 16; 648 static const SpriteID SPR_LOCK_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 17; 649 static const SpriteID SPR_LOCK_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 18; 650 static const SpriteID SPR_LOCK_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 19; 651 static const SpriteID SPR_LOCK_Y_UP_TOP_REAR = SPR_CANALS_BASE + 20; 652 static const SpriteID SPR_LOCK_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 21; 653 static const SpriteID SPR_LOCK_X_UP_TOP_REAR = SPR_CANALS_BASE + 22; 654 static const SpriteID SPR_LOCK_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 23; 655 static const SpriteID SPR_LOCK_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 24; 656 static const SpriteID SPR_LOCK_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 25; 657 static const SpriteID SPR_LOCK_X_UP_TOP_FRONT = SPR_CANALS_BASE + 26; 658 static const SpriteID SPR_LOCK_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 27; 659 static const SpriteID SPR_CANAL_DIKES_BASE = SPR_CANALS_BASE + 52; 660 661 /* Sprites for tunnels and bridges */ 662 static const SpriteID SPR_TUNNEL_ENTRY_REAR_RAIL = 2365; 663 static const SpriteID SPR_TUNNEL_ENTRY_REAR_MONO = 2373; 664 static const SpriteID SPR_TUNNEL_ENTRY_REAR_MAGLEV = 2381; 665 static const SpriteID SPR_TUNNEL_ENTRY_REAR_ROAD = 2389; 666 667 /* Level crossings */ 668 static const SpriteID SPR_CROSSING_OFF_X_RAIL = 1370; 669 static const SpriteID SPR_CROSSING_OFF_X_MONO = 1382; 670 static const SpriteID SPR_CROSSING_OFF_X_MAGLEV = 1394; 671 672 /* bridge type sprites */ 673 static const SpriteID SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 14; 674 675 /* Wooden bridge (type 0) */ 676 static const SpriteID SPR_BTWDN_RAIL_Y_REAR = 2545; 677 static const SpriteID SPR_BTWDN_RAIL_X_REAR = 2546; 678 static const SpriteID SPR_BTWDN_ROAD_Y_REAR = 2547; 679 static const SpriteID SPR_BTWDN_ROAD_X_REAR = 2548; 680 static const SpriteID SPR_BTWDN_Y_FRONT = 2549; 681 static const SpriteID SPR_BTWDN_X_FRONT = 2550; 682 static const SpriteID SPR_BTWDN_Y_PILLAR = 2551; 683 static const SpriteID SPR_BTWDN_X_PILLAR = 2552; 684 static const SpriteID SPR_BTWDN_MONO_Y_REAR = 4360; 685 static const SpriteID SPR_BTWDN_MONO_X_REAR = 4361; 686 static const SpriteID SPR_BTWDN_MGLV_Y_REAR = 4400; 687 static const SpriteID SPR_BTWDN_MGLV_X_REAR = 4401; 688 /* ramps */ 689 static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_DOWN = 2529; 690 static const SpriteID SPR_BTWDN_ROAD_RAMP_X_DOWN = 2530; 691 static const SpriteID SPR_BTWDN_ROAD_RAMP_X_UP = 2531; // for some weird reason the order is swapped 692 static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_UP = 2532; // between X and Y. 693 static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_UP = 2533; 694 static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_UP = 2534; 695 static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_DOWN = 2535; 696 static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_DOWN = 2536; 697 static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_DOWN = 2537; 698 static const SpriteID SPR_BTWDN_RAIL_RAMP_X_DOWN = 2538; 699 static const SpriteID SPR_BTWDN_RAIL_RAMP_X_UP = 2539; // for some weird reason the order is swapped 700 static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_UP = 2540; // between X and Y. 701 static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_UP = 2541; 702 static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_UP = 2542; 703 static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_DOWN = 2543; 704 static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_DOWN = 2544; 705 static const SpriteID SPR_BTWDN_MONO_RAMP_Y_DOWN = 4352; 706 static const SpriteID SPR_BTWDN_MONO_RAMP_X_DOWN = 4353; 707 static const SpriteID SPR_BTWDN_MONO_RAMP_X_UP = 4354; // for some weird reason the order is swapped 708 static const SpriteID SPR_BTWDN_MONO_RAMP_Y_UP = 4355; // between X and Y. 709 static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_UP = 4356; 710 static const SpriteID SPR_BTWDN_MONO_X_SLOPE_UP = 4357; 711 static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_DOWN = 4358; 712 static const SpriteID SPR_BTWDN_MONO_X_SLOPE_DOWN = 4359; 713 static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_DOWN = 4392; 714 static const SpriteID SPR_BTWDN_MGLV_RAMP_X_DOWN = 4393; 715 static const SpriteID SPR_BTWDN_MGLV_RAMP_X_UP = 4394; // for some weird reason the order is swapped 716 static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_UP = 4395; // between X and Y. 717 static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_UP = 4396; 718 static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_UP = 4397; 719 static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_DOWN = 4398; 720 static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_DOWN = 4399; 721 722 /* Steel Girder with arches 723 * BTSGA == Bridge Type Steel Girder Arched 724 * This is bridge type number 2 */ 725 static const SpriteID SPR_BTSGA_RAIL_X_REAR = 2499; 726 static const SpriteID SPR_BTSGA_RAIL_Y_REAR = 2500; 727 static const SpriteID SPR_BTSGA_ROAD_X_REAR = 2501; 728 static const SpriteID SPR_BTSGA_ROAD_Y_REAR = 2502; 729 static const SpriteID SPR_BTSGA_X_FRONT = 2503; 730 static const SpriteID SPR_BTSGA_Y_FRONT = 2504; 731 static const SpriteID SPR_BTSGA_X_PILLAR = 2505; 732 static const SpriteID SPR_BTSGA_Y_PILLAR = 2506; 733 static const SpriteID SPR_BTSGA_MONO_X_REAR = 4324; 734 static const SpriteID SPR_BTSGA_MONO_Y_REAR = 4325; 735 static const SpriteID SPR_BTSGA_MGLV_X_REAR = 4364; 736 static const SpriteID SPR_BTSGA_MGLV_Y_REAR = 4365; 737 738 /* BTSUS == Suspension bridge 739 * TILE_* denotes the different tiles a suspension bridge 740 * can have 741 * TILE_A and TILE_B are the "beginnings" and "ends" of the 742 * suspension system. They have small rectangular endcaps 743 * TILE_C and TILE_D look almost identical to TILE_A and 744 * TILE_B, but they do not have the "endcaps". They form the 745 * middle part 746 * TILE_E is a condensed configuration of two pillars. while they 747 * are usually 2 pillars apart, they only have 1 pillar separation 748 * here 749 * TILE_F is an extended configuration of pillars. They are 750 * plugged in when pillars should be 3 tiles apart 751 */ 752 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_A = 2453; 753 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_B = 2454; 754 static const SpriteID SPR_BTSUS_Y_FRONT_TILE_A = 2455; 755 static const SpriteID SPR_BTSUS_Y_FRONT_TILE_B = 2456; 756 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_D = 2457; 757 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_C = 2458; 758 static const SpriteID SPR_BTSUS_Y_FRONT_TILE_D = 2459; 759 static const SpriteID SPR_BTSUS_Y_FRONT_TILE_C = 2460; 760 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_A = 2461; 761 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_B = 2462; 762 static const SpriteID SPR_BTSUS_X_FRONT_TILE_A = 2463; 763 static const SpriteID SPR_BTSUS_X_FRONT_TILE_B = 2464; 764 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_D = 2465; 765 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_C = 2466; 766 static const SpriteID SPR_BTSUS_X_FRONT_TILE_D = 2467; 767 static const SpriteID SPR_BTSUS_X_FRONT_TILE_C = 2468; 768 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_A = 2469; 769 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_B = 2470; 770 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_D = 2471; 771 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_C = 2472; 772 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_A = 2473; 773 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_B = 2474; 774 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_D = 2475; 775 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_C = 2476; 776 static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_A = 2477; 777 static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_B = 2478; 778 static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_D = 2479; 779 static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_C = 2480; 780 static const SpriteID SPR_BTSUS_X_PILLAR_TILE_A = 2481; 781 static const SpriteID SPR_BTSUS_X_PILLAR_TILE_B = 2482; 782 static const SpriteID SPR_BTSUS_X_PILLAR_TILE_D = 2483; 783 static const SpriteID SPR_BTSUS_X_PILLAR_TILE_C = 2484; 784 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_E = 2485; 785 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_E = 2486; 786 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_E = 2487; 787 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_E = 2488; 788 static const SpriteID SPR_BTSUS_Y_FRONT_TILE_E = 2489; 789 static const SpriteID SPR_BTSUS_X_FRONT_TILE_E = 2490; 790 static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_E = 2491; 791 static const SpriteID SPR_BTSUS_X_PILLAR_TILE_E = 2492; 792 static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_F = 2493; 793 static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_F = 2494; 794 static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_F = 2495; 795 static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_F = 2496; 796 static const SpriteID SPR_BTSUS_X_FRONT = 2497; 797 static const SpriteID SPR_BTSUS_Y_FRONT = 2498; 798 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_A = 4334; 799 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_B = 4335; 800 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_D = 4336; 801 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_C = 4337; 802 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_A = 4338; 803 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_B = 4339; 804 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_D = 4340; 805 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_C = 4341; 806 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_E = 4342; 807 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_E = 4343; 808 static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_F = 4344; 809 static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_F = 4345; 810 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_A = 4374; 811 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_B = 4375; 812 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_D = 4376; 813 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_C = 4377; 814 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_A = 4378; 815 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_B = 4379; 816 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_D = 4380; 817 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_C = 4381; 818 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_E = 4382; 819 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_E = 4383; 820 static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_F = 4384; 821 static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_F = 4385; 822 823 /* cantilever bridges 824 * They have three different kinds of tiles: 825 * END(ing), MID(dle), BEG(ginning) */ 826 static const SpriteID SPR_BTCAN_RAIL_X_BEG = 2507; 827 static const SpriteID SPR_BTCAN_RAIL_X_MID = 2508; 828 static const SpriteID SPR_BTCAN_RAIL_X_END = 2509; 829 static const SpriteID SPR_BTCAN_RAIL_Y_END = 2510; 830 static const SpriteID SPR_BTCAN_RAIL_Y_MID = 2511; 831 static const SpriteID SPR_BTCAN_RAIL_Y_BEG = 2512; 832 static const SpriteID SPR_BTCAN_ROAD_X_BEG = 2513; 833 static const SpriteID SPR_BTCAN_ROAD_X_MID = 2514; 834 static const SpriteID SPR_BTCAN_ROAD_X_END = 2515; 835 static const SpriteID SPR_BTCAN_ROAD_Y_END = 2516; 836 static const SpriteID SPR_BTCAN_ROAD_Y_MID = 2517; 837 static const SpriteID SPR_BTCAN_ROAD_Y_BEG = 2518; 838 static const SpriteID SPR_BTCAN_X_FRONT_BEG = 2519; 839 static const SpriteID SPR_BTCAN_X_FRONT_MID = 2520; 840 static const SpriteID SPR_BTCAN_X_FRONT_END = 2521; 841 static const SpriteID SPR_BTCAN_Y_FRONT_END = 2522; 842 static const SpriteID SPR_BTCAN_Y_FRONT_MID = 2523; 843 static const SpriteID SPR_BTCAN_Y_FRONT_BEG = 2524; 844 static const SpriteID SPR_BTCAN_X_PILLAR_BEG = 2525; 845 static const SpriteID SPR_BTCAN_X_PILLAR_MID = 2526; 846 static const SpriteID SPR_BTCAN_Y_PILLAR_MID = 2527; 847 static const SpriteID SPR_BTCAN_Y_PILLAR_BEG = 2528; 848 static const SpriteID SPR_BTCAN_MONO_X_BEG = 4346; 849 static const SpriteID SPR_BTCAN_MONO_X_MID = 4347; 850 static const SpriteID SPR_BTCAN_MONO_X_END = 4348; 851 static const SpriteID SPR_BTCAN_MONO_Y_END = 4349; 852 static const SpriteID SPR_BTCAN_MONO_Y_MID = 4350; 853 static const SpriteID SPR_BTCAN_MONO_Y_BEG = 4351; 854 static const SpriteID SPR_BTCAN_MGLV_X_BEG = 4386; 855 static const SpriteID SPR_BTCAN_MGLV_X_MID = 4387; 856 static const SpriteID SPR_BTCAN_MGLV_X_END = 4388; 857 static const SpriteID SPR_BTCAN_MGLV_Y_END = 4389; 858 static const SpriteID SPR_BTCAN_MGLV_Y_MID = 4390; 859 static const SpriteID SPR_BTCAN_MGLV_Y_BEG = 4391; 860 861 /* little concrete bridge */ 862 static const SpriteID SPR_BTCON_RAIL_X = 2493; 863 static const SpriteID SPR_BTCON_RAIL_Y = 2494; 864 static const SpriteID SPR_BTCON_ROAD_X = 2495; 865 static const SpriteID SPR_BTCON_ROAD_Y = 2496; 866 static const SpriteID SPR_BTCON_X_FRONT = 2497; 867 static const SpriteID SPR_BTCON_Y_FRONT = 2498; 868 static const SpriteID SPR_BTCON_X_PILLAR = 2505; 869 static const SpriteID SPR_BTCON_Y_PILLAR = 2506; 870 static const SpriteID SPR_BTCON_MONO_X = 4344; 871 static const SpriteID SPR_BTCON_MONO_Y = 4345; 872 static const SpriteID SPR_BTCON_MGLV_X = 4384; 873 static const SpriteID SPR_BTCON_MGLV_Y = 4385; 874 875 /* little steel girder bridge */ 876 static const SpriteID SPR_BTGIR_RAIL_X = 2553; 877 static const SpriteID SPR_BTGIR_RAIL_Y = 2554; 878 static const SpriteID SPR_BTGIR_ROAD_X = 2555; 879 static const SpriteID SPR_BTGIR_ROAD_Y = 2556; 880 static const SpriteID SPR_BTGIR_X_FRONT = 2557; 881 static const SpriteID SPR_BTGIR_Y_FRONT = 2558; 882 static const SpriteID SPR_BTGIR_X_PILLAR = 2505; 883 static const SpriteID SPR_BTGIR_Y_PILLAR = 2506; 884 static const SpriteID SPR_BTGIR_MONO_X = 4362; 885 static const SpriteID SPR_BTGIR_MONO_Y = 4363; 886 static const SpriteID SPR_BTGIR_MGLV_X = 4402; 887 static const SpriteID SPR_BTGIR_MGLV_Y = 4403; 888 889 /* tubular bridges 890 * tubular bridges have 3 kinds of tiles: 891 * a start tile (with only half a tube on the far side, marked _BEG 892 * a middle tile (full tunnel), marked _MID 893 * and an end tile (half a tube on the near side, marked _END 894 */ 895 static const SpriteID SPR_BTTUB_X_FRONT_BEG = 2559; 896 static const SpriteID SPR_BTTUB_X_FRONT_MID = 2560; 897 static const SpriteID SPR_BTTUB_X_FRONT_END = 2561; 898 static const SpriteID SPR_BTTUB_Y_FRONT_END = 2562; 899 static const SpriteID SPR_BTTUB_Y_FRONT_MID = 2563; 900 static const SpriteID SPR_BTTUB_Y_FRONT_BEG = 2564; 901 static const SpriteID SPR_BTTUB_X_PILLAR_BEG = 2565; 902 static const SpriteID SPR_BTTUB_X_PILLAR_MID = 2566; 903 static const SpriteID SPR_BTTUB_Y_PILLAR_MID = 2567; 904 static const SpriteID SPR_BTTUB_Y_PILLAR_BEG = 2568; 905 static const SpriteID SPR_BTTUB_X_RAIL_REAR_BEG = 2569; 906 static const SpriteID SPR_BTTUB_X_RAIL_REAR_MID = 2570; 907 static const SpriteID SPR_BTTUB_X_RAIL_REAR_END = 2571; 908 static const SpriteID SPR_BTTUB_Y_RAIL_REAR_BEG = 2572; 909 static const SpriteID SPR_BTTUB_Y_RAIL_REAR_MID = 2573; 910 static const SpriteID SPR_BTTUB_Y_RAIL_REAR_END = 2574; 911 static const SpriteID SPR_BTTUB_X_ROAD_REAR_BEG = 2575; 912 static const SpriteID SPR_BTTUB_X_ROAD_REAR_MID = 2576; 913 static const SpriteID SPR_BTTUB_X_ROAD_REAR_END = 2577; 914 static const SpriteID SPR_BTTUB_Y_ROAD_REAR_BEG = 2578; 915 static const SpriteID SPR_BTTUB_Y_ROAD_REAR_MID = 2579; 916 static const SpriteID SPR_BTTUB_Y_ROAD_REAR_END = 2580; 917 static const SpriteID SPR_BTTUB_X_MONO_REAR_BEG = 2581; 918 static const SpriteID SPR_BTTUB_X_MONO_REAR_MID = 2582; 919 static const SpriteID SPR_BTTUB_X_MONO_REAR_END = 2583; 920 static const SpriteID SPR_BTTUB_Y_MONO_REAR_BEG = 2584; 921 static const SpriteID SPR_BTTUB_Y_MONO_REAR_MID = 2585; 922 static const SpriteID SPR_BTTUB_Y_MONO_REAR_END = 2586; 923 static const SpriteID SPR_BTTUB_X_MGLV_REAR_BEG = 2587; 924 static const SpriteID SPR_BTTUB_X_MGLV_REAR_MID = 2588; 925 static const SpriteID SPR_BTTUB_X_MGLV_REAR_END = 2589; 926 static const SpriteID SPR_BTTUB_Y_MGLV_REAR_BEG = 2590; 927 static const SpriteID SPR_BTTUB_Y_MGLV_REAR_MID = 2591; 928 static const SpriteID SPR_BTTUB_Y_MGLV_REAR_END = 2592; 929 930 931 /* ramps (for all bridges except wood and tubular?)*/ 932 static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_DOWN = 2437; 933 static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_UP = 2438; 934 static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_DOWN = 2439; 935 static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_UP = 2440; 936 static const SpriteID SPR_BTGEN_RAIL_RAMP_X_UP = 2441; 937 static const SpriteID SPR_BTGEN_RAIL_RAMP_X_DOWN = 2442; 938 static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_UP = 2443; 939 static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_DOWN = 2444; 940 static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_DOWN = 2445; 941 static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_UP = 2446; 942 static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_DOWN = 2447; 943 static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_UP = 2448; 944 static const SpriteID SPR_BTGEN_ROAD_RAMP_X_UP = 2449; 945 static const SpriteID SPR_BTGEN_ROAD_RAMP_X_DOWN = 2450; 946 static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_UP = 2451; 947 static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_DOWN = 2452; 948 static const SpriteID SPR_BTGEN_MONO_X_SLOPE_DOWN = 4326; 949 static const SpriteID SPR_BTGEN_MONO_X_SLOPE_UP = 4327; 950 static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_DOWN = 4328; 951 static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_UP = 4329; 952 static const SpriteID SPR_BTGEN_MONO_RAMP_X_UP = 4330; 953 static const SpriteID SPR_BTGEN_MONO_RAMP_X_DOWN = 4331; 954 static const SpriteID SPR_BTGEN_MONO_RAMP_Y_UP = 4332; 955 static const SpriteID SPR_BTGEN_MONO_RAMP_Y_DOWN = 4333; 956 static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_DOWN = 4366; 957 static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_UP = 4367; 958 static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_DOWN = 4368; 959 static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_UP = 4369; 960 static const SpriteID SPR_BTGEN_MGLV_RAMP_X_UP = 4370; 961 static const SpriteID SPR_BTGEN_MGLV_RAMP_X_DOWN = 4371; 962 static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_UP = 4372; 963 static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_DOWN = 4373; 964 965 /* Vehicle view sprites */ 966 static const SpriteID SPR_CENTRE_VIEW_VEHICLE = 683; 967 static const SpriteID SPR_SEND_TRAIN_TODEPOT = 685; 968 static const SpriteID SPR_SEND_ROADVEH_TODEPOT = 686; 969 static const SpriteID SPR_SEND_AIRCRAFT_TODEPOT = 687; 970 static const SpriteID SPR_SEND_SHIP_TODEPOT = 688; 971 972 static const SpriteID SPR_IGNORE_SIGNALS = 689; 973 static const SpriteID SPR_SHOW_ORDERS = 690; 974 static const SpriteID SPR_SHOW_VEHICLE_DETAILS = 691; 975 static const SpriteID SPR_REFIT_VEHICLE = 692; 976 static const SpriteID SPR_FORCE_VEHICLE_TURN = 715; 977 978 /* Vehicle sprite-flags (red/green) */ 979 static const SpriteID SPR_FLAG_VEH_STOPPED = 3090; 980 static const SpriteID SPR_FLAG_VEH_RUNNING = 3091; 981 982 static const SpriteID SPR_VEH_BUS_SW_VIEW = 3097; 983 static const SpriteID SPR_VEH_BUS_SIDE_VIEW = 3098; 984 985 /* Rotor sprite numbers */ 986 static const SpriteID SPR_ROTOR_STOPPED = 3901; 987 static const SpriteID SPR_ROTOR_MOVING_1 = 3902; 988 static const SpriteID SPR_ROTOR_MOVING_3 = 3904; 989 990 /* Town/house sprites */ 991 static const SpriteID SPR_LIFT = 1443; 992 993 /* used in town_land.h 994 * CNST1..3 = Those are the different stages of construction 995 * The last 2 hexas correspond to the type of building it represent, if any */ 996 static const SpriteID SPR_CNST1_TALLOFFICE_00 = 1421; 997 static const SpriteID SPR_CNST2_TALLOFFICE_00 = 1422; 998 static const SpriteID SPR_CNST3_TALLOFFICE_00 = 1423; 999 static const SpriteID SPR_GROUND_TALLOFFICE_00 = 1424; 1000 static const SpriteID SPR_BUILD_TALLOFFICE_00 = 1425; // temperate 1001 static const SpriteID SPR_CNST1_OFFICE_01 = 1426; 1002 static const SpriteID SPR_CNST2_OFFICE_01 = 1427; 1003 static const SpriteID SPR_BUILD_OFFICE_01 = 1428; // temperate 1004 static const SpriteID SPR_GROUND_OFFICE_01 = 1429; 1005 static const SpriteID SPR_CNST1_SMLBLCKFLATS_02 = 1430; // Small Block of Flats 1006 static const SpriteID SPR_CNST2_SMLBLCKFLATS_02 = 1431; 1007 static const SpriteID SPR_BUILD_SMLBLCKFLATS_02 = 1432; // temperate 1008 static const SpriteID SPR_GROUND_SMLBLCKFLATS_02 = 1433; 1009 static const SpriteID SPR_CNST1_TEMPCHURCH = 1434; 1010 static const SpriteID SPR_CNST2_TEMPCHURCH = 1435; 1011 static const SpriteID SPR_BUILD_TEMPCHURCH = 1436; 1012 static const SpriteID SPR_GROUND_TEMPCHURCH = 1437; 1013 static const SpriteID SPR_CNST1_LARGEOFFICE_04 = 1440; 1014 static const SpriteID SPR_CNST2_LARGEOFFICE_04 = 1441; 1015 static const SpriteID SPR_BUILD_LARGEOFFICE_04 = 1442; // temperate, sub-arctic, subtropical 1016 static const SpriteID SPR_BUILD_LARGEOFFICE_04_SNOW = 4569; // same, with snow 1017 /* These are in fact two houses for the same houseID. so V1 and V2 */ 1018 static const SpriteID SPR_CNST1_TOWNHOUSE_06_V1 = 1444; 1019 static const SpriteID SPR_CNST2_TOWNHOUSE_06_V1 = 1445; 1020 static const SpriteID SPR_BUILD_TOWNHOUSE_06_V1 = 1446; // 1st variation 1021 static const SpriteID SPR_GRND_TOWNHOUSE_06_V1 = 1447; 1022 static const SpriteID SPR_GRND_STADIUM_N = 1479; // stadium ground at north 1023 static const SpriteID SPR_GRND_STADIUM_E = 1480; // stadium ground at east 1024 static const SpriteID SPR_GRND_STADIUM_W = 1481; // stadium ground at west 1025 static const SpriteID SPR_GRND_STADIUM_S = 1482; // stadium ground at south 1026 static const SpriteID SPR_CNST1_TOWNHOUSE_06_V2 = 1501; // used as ground, but is stage1 1027 static const SpriteID SPR_CNST1_TOWNHOUSE_06_V2_P = 1502; // pipes extensions for previous 1028 static const SpriteID SPR_CNST2_TOWNHOUSE_06_V2_G = 1503; // Ground of cnst stage 2 1029 static const SpriteID SPR_CNST2_TOWNHOUSE_06_V2 = 1504; // real cnst stage 2 1030 static const SpriteID SPR_GRND_TOWNHOUSE_06_V2 = 1505; 1031 static const SpriteID SPR_BUILD_TOWNHOUSE_06_V2 = 1506; // 2nd variation 1032 static const SpriteID SPR_CNST1_HOTEL_07_NW = 1448; 1033 static const SpriteID SPR_CNST2_HOTEL_07_NW = 1449; 1034 static const SpriteID SPR_BUILD_HOTEL_07_NW = 1450; 1035 static const SpriteID SPR_CNST1_HOTEL_07_SE = 1451; 1036 static const SpriteID SPR_CNST2_HOTEL_07_SE = 1452; 1037 static const SpriteID SPR_BUILD_HOTEL_07_SE = 1453; 1038 static const SpriteID SPR_STATUE_HORSERIDER_09 = 1454; 1039 static const SpriteID SPR_FOUNTAIN_0A = 1455; 1040 static const SpriteID SPR_PARKSTATUE_0B = 1456; 1041 static const SpriteID SPR_PARKALLEY_0C = 1457; 1042 static const SpriteID SPR_CNST1_OFFICE_0D = 1458; 1043 static const SpriteID SPR_CNST2_OFFICE_0D = 1459; 1044 static const SpriteID SPR_BUILD_OFFICE_0D = 1460; 1045 static const SpriteID SPR_CNST1_SHOPOFFICE_0E = 1461; 1046 static const SpriteID SPR_CNST2_SHOPOFFICE_0E = 1462; 1047 static const SpriteID SPR_BUILD_SHOPOFFICE_0E = 1463; 1048 static const SpriteID SPR_CNST1_SHOPOFFICE_0F = 1464; 1049 static const SpriteID SPR_CNST2_SHOPOFFICE_0F = 1465; 1050 static const SpriteID SPR_BUILD_SHOPOFFICE_0F = 1466; 1051 static const SpriteID SPR_GRND_HOUSE_TOY1 = 4675; 1052 static const SpriteID SPR_GRND_HOUSE_TOY2 = 4676; 1053 1054 /* Easter egg/disaster sprites */ 1055 static const SpriteID SPR_BLIMP = 3905; // Zeppelin 1056 static const SpriteID SPR_BLIMP_CRASHING = 3906; 1057 static const SpriteID SPR_BLIMP_CRASHED = 3907; 1058 static const SpriteID SPR_UFO_SMALL_SCOUT = 3908; // XCOM - UFO Defense 1059 static const SpriteID SPR_UFO_SMALL_SCOUT_DARKER = 3909; 1060 static const SpriteID SPR_SUB_SMALL_NE = 3910; // Silent Service 1061 static const SpriteID SPR_SUB_SMALL_SE = 3911; 1062 static const SpriteID SPR_SUB_SMALL_SW = 3912; 1063 static const SpriteID SPR_SUB_SMALL_NW = 3913; 1064 static const SpriteID SPR_SUB_LARGE_NE = 3914; 1065 static const SpriteID SPR_SUB_LARGE_SE = 3915; 1066 static const SpriteID SPR_SUB_LARGE_SW = 3916; 1067 static const SpriteID SPR_SUB_LARGE_NW = 3917; 1068 static const SpriteID SPR_F_15 = 3918; // F-15 Strike Eagle 1069 static const SpriteID SPR_F_15_FIRING = 3919; 1070 static const SpriteID SPR_UFO_HARVESTER = 3920; // XCOM - UFO Defense 1071 static const SpriteID SPR_XCOM_SKYRANGER = 3921; 1072 static const SpriteID SPR_AH_64A = 3922; // Gunship 1073 static const SpriteID SPR_AH_64A_FIRING = 3923; 1074 1075 /* main_gui.cpp */ 1076 static const SpriteID SPR_IMG_TERRAFORM_UP = 694; 1077 static const SpriteID SPR_IMG_TERRAFORM_DOWN = 695; 1078 static const SpriteID SPR_IMG_DYNAMITE = 703; 1079 static const SpriteID SPR_IMG_ROCKS = 4084; 1080 static const SpriteID SPR_IMG_DESERT = 4085; 1081 static const SpriteID SPR_IMG_TRANSMITTER = 4086; 1082 static const SpriteID SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 91; 1083 static const SpriteID SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 88; 1084 static const SpriteID SPR_IMG_BUILD_RIVER = SPR_OPENTTD_BASE + 136; 1085 static const SpriteID SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 64; 1086 static const SpriteID SPR_IMG_PAUSE = 726; 1087 static const SpriteID SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 90; 1088 static const SpriteID SPR_IMG_SETTINGS = 751; 1089 static const SpriteID SPR_IMG_SAVE = 724; 1090 static const SpriteID SPR_IMG_SMALLMAP = 708; 1091 static const SpriteID SPR_IMG_TOWN = 4077; 1092 static const SpriteID SPR_IMG_SUBSIDIES = 679; 1093 static const SpriteID SPR_IMG_COMPANY_LIST = 1299; 1094 static const SpriteID SPR_IMG_COMPANY_FINANCE = 737; 1095 static const SpriteID SPR_IMG_COMPANY_GENERAL = 743; 1096 static const SpriteID SPR_IMG_GRAPHS = 745; 1097 static const SpriteID SPR_IMG_COMPANY_LEAGUE = 684; 1098 static const SpriteID SPR_IMG_SHOW_COUNTOURS = 738; 1099 static const SpriteID SPR_IMG_SHOW_VEHICLES = 739; 1100 static const SpriteID SPR_IMG_SHOW_ROUTES = 740; 1101 static const SpriteID SPR_IMG_INDUSTRY = 741; 1102 static const SpriteID SPR_IMG_PLANTTREES = 742; 1103 static const SpriteID SPR_IMG_TRAINLIST = 731; 1104 static const SpriteID SPR_IMG_TRUCKLIST = 732; 1105 static const SpriteID SPR_IMG_SHIPLIST = 733; 1106 static const SpriteID SPR_IMG_AIRPLANESLIST = 734; 1107 static const SpriteID SPR_IMG_ZOOMIN = 735; 1108 static const SpriteID SPR_IMG_ZOOMOUT = 736; 1109 static const SpriteID SPR_IMG_BUILDRAIL = 727; 1110 static const SpriteID SPR_IMG_BUILDROAD = 728; 1111 static const SpriteID SPR_IMG_BUILDTRAMS = SPR_OPENTTD_BASE + 179; 1112 static const SpriteID SPR_IMG_BUILDWATER = 729; 1113 static const SpriteID SPR_IMG_BUILDAIR = 730; 1114 static const SpriteID SPR_IMG_LANDSCAPING = 4083; 1115 static const SpriteID SPR_IMG_MUSIC = 713; 1116 static const SpriteID SPR_IMG_MESSAGES = 680; 1117 static const SpriteID SPR_IMG_QUERY = 723; 1118 static const SpriteID SPR_IMG_SIGN = 4082; 1119 static const SpriteID SPR_IMG_BUY_LAND = 4791; 1120 static const SpriteID SPR_IMG_STORY_BOOK = SPR_OPENTTD_BASE + 169; 1121 1122 /* OpenTTD in gamescreen */ 1123 static const SpriteID SPR_OTTD_O = 4842; 1124 static const SpriteID SPR_OTTD_P = 4841; 1125 static const SpriteID SPR_OTTD_E = SPR_OPENTTD_BASE + 12; 1126 static const SpriteID SPR_OTTD_D = SPR_OPENTTD_BASE + 13; 1127 static const SpriteID SPR_OTTD_N = 4839; 1128 static const SpriteID SPR_OTTD_T = 4836; 1129 /* Letters not used: R,A,S,Y,C (4837, 4838, 4840, 4843, 4844) */ 1130 1131 static const SpriteID SPR_HIGHSCORE_CHART_BEGIN = 4804; 1132 static const SpriteID SPR_TYCOON_IMG1_BEGIN = 4814; 1133 static const SpriteID SPR_TYCOON_IMG2_BEGIN = 4824; 1134 1135 /* Industry sprites */ 1136 static const SpriteID SPR_IT_SUGAR_MINE_SIEVE = 4775; 1137 static const SpriteID SPR_IT_SUGAR_MINE_CLOUDS = 4784; 1138 static const SpriteID SPR_IT_SUGAR_MINE_PILE = 4780; 1139 static const SpriteID SPR_IT_TOFFEE_QUARRY_TOFFEE = 4766; 1140 static const SpriteID SPR_IT_TOFFEE_QUARRY_SHOVEL = 4767; 1141 static const SpriteID SPR_IT_BUBBLE_GENERATOR_SPRING = 4746; 1142 static const SpriteID SPR_IT_BUBBLE_GENERATOR_BUBBLE = 4747; 1143 static const SpriteID SPR_IT_TOY_FACTORY_STAMP_HOLDER = 4717; 1144 static const SpriteID SPR_IT_TOY_FACTORY_STAMP = 4718; 1145 static const SpriteID SPR_IT_TOY_FACTORY_CLAY = 4719; 1146 static const SpriteID SPR_IT_TOY_FACTORY_ROBOT = 4720; 1147 static const SpriteID SPR_IT_POWER_PLANT_TRANSFORMERS = 2054; 1148 1149 /* small icons of cargo available in station waiting*/ 1150 static const SpriteID SPR_CARGO_PASSENGERS = 4297; 1151 static const SpriteID SPR_CARGO_COAL = 4298; 1152 static const SpriteID SPR_CARGO_MAIL = 4299; 1153 static const SpriteID SPR_CARGO_OIL = 4300; 1154 static const SpriteID SPR_CARGO_LIVESTOCK = 4301; 1155 static const SpriteID SPR_CARGO_GOODS = 4302; 1156 static const SpriteID SPR_CARGO_GRAIN = 4303; // shared sprite with SPR_CARGO_WHEAT, SPR_CARGO_MAIZE 1157 static const SpriteID SPR_CARGO_WHEAT = 4303; // shared sprite with SPR_CARGO_GRAIN, SPR_CARGO_MAIZE 1158 static const SpriteID SPR_CARGO_MAIZE = 4303; // shared sprite with SPR_CARGO_GRAIN, SPR_CARGO_WHEAT 1159 static const SpriteID SPR_CARGO_WOOD = 4304; 1160 static const SpriteID SPR_CARGO_IRON_ORE = 4305; 1161 static const SpriteID SPR_CARGO_STEEL = 4306; 1162 static const SpriteID SPR_CARGO_VALUABLES = 4307; // shared between temperate and arctic ( SPR_CARGO_GOLD ) 1163 static const SpriteID SPR_CARGO_GOLD = 4307; // shared between temperate and arctic ( SPR_CARGO_VALUABLES ) 1164 static const SpriteID SPR_CARGO_FRUIT = 4308; 1165 static const SpriteID SPR_CARGO_COPPER_ORE = 4309; 1166 static const SpriteID SPR_CARGO_WATER = 4310; // shared between desert and toyland ( SPR_CARGO_COLA ) 1167 static const SpriteID SPR_CARGO_COLA = 4310; // shared between desert and toyland ( SPR_CARGO_WATER ) 1168 static const SpriteID SPR_CARGO_DIAMONDS = 4311; 1169 static const SpriteID SPR_CARGO_FOOD = 4312; 1170 static const SpriteID SPR_CARGO_PAPER = 4313; 1171 static const SpriteID SPR_CARGO_RUBBER = 4314; 1172 static const SpriteID SPR_CARGO_SWEETS = 4315; 1173 static const SpriteID SPR_CARGO_SUGAR = 4316; 1174 static const SpriteID SPR_CARGO_TOYS = 4317; 1175 static const SpriteID SPR_CARGO_CANDYFLOSS = 4318; 1176 static const SpriteID SPR_CARGO_FIZZY_DRINKS = 4319; 1177 static const SpriteID SPR_CARGO_TOFFEE = 4320; 1178 static const SpriteID SPR_CARGO_BUBBLES = 4321; 1179 static const SpriteID SPR_CARGO_PLASTIC = 4322; 1180 static const SpriteID SPR_CARGO_BATTERIES = 4323; 1181 static const SpriteID SPR_CARGO_NOTHING = SPR_ASCII_SPACE; // Placeholder for void cargo slots. 1182 1183 /* Effect vehicles */ 1184 static const SpriteID SPR_BULLDOZER_NE = 1416; 1185 static const SpriteID SPR_BULLDOZER_SE = 1417; 1186 static const SpriteID SPR_BULLDOZER_SW = 1418; 1187 static const SpriteID SPR_BULLDOZER_NW = 1419; 1188 1189 static const SpriteID SPR_SMOKE_0 = 2040; 1190 static const SpriteID SPR_SMOKE_1 = 2041; 1191 static const SpriteID SPR_SMOKE_2 = 2042; 1192 static const SpriteID SPR_SMOKE_3 = 2043; 1193 static const SpriteID SPR_SMOKE_4 = 2044; 1194 1195 static const SpriteID SPR_DIESEL_SMOKE_0 = 3073; 1196 static const SpriteID SPR_DIESEL_SMOKE_1 = 3074; 1197 static const SpriteID SPR_DIESEL_SMOKE_2 = 3075; 1198 static const SpriteID SPR_DIESEL_SMOKE_3 = 3076; 1199 static const SpriteID SPR_DIESEL_SMOKE_4 = 3077; 1200 static const SpriteID SPR_DIESEL_SMOKE_5 = 3078; 1201 1202 static const SpriteID SPR_STEAM_SMOKE_0 = 3079; 1203 static const SpriteID SPR_STEAM_SMOKE_1 = 3080; 1204 static const SpriteID SPR_STEAM_SMOKE_2 = 3081; 1205 static const SpriteID SPR_STEAM_SMOKE_3 = 3082; 1206 static const SpriteID SPR_STEAM_SMOKE_4 = 3083; 1207 1208 static const SpriteID SPR_ELECTRIC_SPARK_0 = 3084; 1209 static const SpriteID SPR_ELECTRIC_SPARK_1 = 3085; 1210 static const SpriteID SPR_ELECTRIC_SPARK_2 = 3086; 1211 static const SpriteID SPR_ELECTRIC_SPARK_3 = 3087; 1212 static const SpriteID SPR_ELECTRIC_SPARK_4 = 3088; 1213 static const SpriteID SPR_ELECTRIC_SPARK_5 = 3089; 1214 1215 static const SpriteID SPR_CHIMNEY_SMOKE_0 = 3701; 1216 static const SpriteID SPR_CHIMNEY_SMOKE_1 = 3702; 1217 static const SpriteID SPR_CHIMNEY_SMOKE_2 = 3703; 1218 static const SpriteID SPR_CHIMNEY_SMOKE_3 = 3704; 1219 static const SpriteID SPR_CHIMNEY_SMOKE_4 = 3705; 1220 static const SpriteID SPR_CHIMNEY_SMOKE_5 = 3706; 1221 static const SpriteID SPR_CHIMNEY_SMOKE_6 = 3707; 1222 static const SpriteID SPR_CHIMNEY_SMOKE_7 = 3708; 1223 1224 static const SpriteID SPR_EXPLOSION_LARGE_0 = 3709; 1225 static const SpriteID SPR_EXPLOSION_LARGE_1 = 3710; 1226 static const SpriteID SPR_EXPLOSION_LARGE_2 = 3711; 1227 static const SpriteID SPR_EXPLOSION_LARGE_3 = 3712; 1228 static const SpriteID SPR_EXPLOSION_LARGE_4 = 3713; 1229 static const SpriteID SPR_EXPLOSION_LARGE_5 = 3714; 1230 static const SpriteID SPR_EXPLOSION_LARGE_6 = 3715; 1231 static const SpriteID SPR_EXPLOSION_LARGE_7 = 3716; 1232 static const SpriteID SPR_EXPLOSION_LARGE_8 = 3717; 1233 static const SpriteID SPR_EXPLOSION_LARGE_9 = 3718; 1234 static const SpriteID SPR_EXPLOSION_LARGE_A = 3719; 1235 static const SpriteID SPR_EXPLOSION_LARGE_B = 3720; 1236 static const SpriteID SPR_EXPLOSION_LARGE_C = 3721; 1237 static const SpriteID SPR_EXPLOSION_LARGE_D = 3722; 1238 static const SpriteID SPR_EXPLOSION_LARGE_E = 3723; 1239 static const SpriteID SPR_EXPLOSION_LARGE_F = 3724; 1240 1241 static const SpriteID SPR_EXPLOSION_SMALL_0 = 3725; 1242 static const SpriteID SPR_EXPLOSION_SMALL_1 = 3726; 1243 static const SpriteID SPR_EXPLOSION_SMALL_2 = 3727; 1244 static const SpriteID SPR_EXPLOSION_SMALL_3 = 3728; 1245 static const SpriteID SPR_EXPLOSION_SMALL_4 = 3729; 1246 static const SpriteID SPR_EXPLOSION_SMALL_5 = 3730; 1247 static const SpriteID SPR_EXPLOSION_SMALL_6 = 3731; 1248 static const SpriteID SPR_EXPLOSION_SMALL_7 = 3732; 1249 static const SpriteID SPR_EXPLOSION_SMALL_8 = 3733; 1250 static const SpriteID SPR_EXPLOSION_SMALL_9 = 3734; 1251 static const SpriteID SPR_EXPLOSION_SMALL_A = 3735; 1252 static const SpriteID SPR_EXPLOSION_SMALL_B = 3736; 1253 1254 static const SpriteID SPR_BREAKDOWN_SMOKE_0 = 3737; 1255 static const SpriteID SPR_BREAKDOWN_SMOKE_1 = 3738; 1256 static const SpriteID SPR_BREAKDOWN_SMOKE_2 = 3739; 1257 static const SpriteID SPR_BREAKDOWN_SMOKE_3 = 3740; 1258 1259 static const SpriteID SPR_BUBBLE_0 = 4748; 1260 static const SpriteID SPR_BUBBLE_1 = 4749; 1261 static const SpriteID SPR_BUBBLE_2 = 4750; 1262 static const SpriteID SPR_BUBBLE_GENERATE_0 = 4751; 1263 static const SpriteID SPR_BUBBLE_GENERATE_1 = 4752; 1264 static const SpriteID SPR_BUBBLE_GENERATE_2 = 4753; 1265 static const SpriteID SPR_BUBBLE_GENERATE_3 = 4754; 1266 static const SpriteID SPR_BUBBLE_BURST_0 = 4755; 1267 static const SpriteID SPR_BUBBLE_BURST_1 = 4756; 1268 static const SpriteID SPR_BUBBLE_BURST_2 = 4757; 1269 static const SpriteID SPR_BUBBLE_ABSORB_0 = 4758; 1270 static const SpriteID SPR_BUBBLE_ABSORB_1 = 4759; 1271 static const SpriteID SPR_BUBBLE_ABSORB_2 = 4760; 1272 static const SpriteID SPR_BUBBLE_ABSORB_3 = 4761; 1273 static const SpriteID SPR_BUBBLE_ABSORB_4 = 4762; 1274 1275 /* Electrified rail build menu */ 1276 static const SpriteID SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 36; 1277 static const SpriteID SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 37; 1278 static const SpriteID SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 38; 1279 static const SpriteID SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 39; 1280 static const SpriteID SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 44; 1281 1282 /* airport_gui.cpp */ 1283 static const SpriteID SPR_IMG_AIRPORT = 744; 1284 1285 /* dock_gui.cpp */ 1286 static const SpriteID SPR_IMG_SHIP_DEPOT = 748; 1287 static const SpriteID SPR_IMG_SHIP_DOCK = 746; 1288 static const SpriteID SPR_IMG_BUOY = 693; 1289 static const SpriteID SPR_IMG_AQUEDUCT = SPR_OPENTTD_BASE + 145; 1290 1291 /* music_gui.cpp */ 1292 static const SpriteID SPR_IMG_SKIP_TO_PREV = 709; 1293 static const SpriteID SPR_IMG_SKIP_TO_NEXT = 710; 1294 static const SpriteID SPR_IMG_STOP_MUSIC = 711; 1295 static const SpriteID SPR_IMG_PLAY_MUSIC = 712; 1296 1297 /* road_gui.cpp */ 1298 static const SpriteID SPR_IMG_ROAD_Y_DIR = 1309; 1299 static const SpriteID SPR_IMG_ROAD_X_DIR = 1310; 1300 static const SpriteID SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 82; 1301 static const SpriteID SPR_IMG_ROAD_DEPOT = 1295; 1302 static const SpriteID SPR_IMG_BUS_STATION = 749; 1303 static const SpriteID SPR_IMG_TRUCK_BAY = 750; 1304 static const SpriteID SPR_IMG_BRIDGE = 2594; 1305 static const SpriteID SPR_IMG_ROAD_TUNNEL = 2429; 1306 static const SpriteID SPR_IMG_REMOVE = 714; 1307 static const SpriteID SPR_IMG_ROAD_ONE_WAY = SPR_OPENTTD_BASE + 134; 1308 static const SpriteID SPR_IMG_TRAMWAY_Y_DIR = SPR_TRAMWAY_BASE + 0; 1309 static const SpriteID SPR_IMG_TRAMWAY_X_DIR = SPR_TRAMWAY_BASE + 1; 1310 static const SpriteID SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 84; 1311 1312 /* rail_gui.cpp */ 1313 static const SpriteID SPR_IMG_RAIL_NS = 1251; 1314 static const SpriteID SPR_IMG_RAIL_NE = 1252; 1315 static const SpriteID SPR_IMG_RAIL_EW = 1253; 1316 static const SpriteID SPR_IMG_RAIL_NW = 1254; 1317 static const SpriteID SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 53; 1318 static const SpriteID SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 57; 1319 static const SpriteID SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 63; 1320 static const SpriteID SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 69; 1321 1322 static const SpriteID SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 76; 1323 1324 static const SpriteID SPR_IMG_DEPOT_RAIL = 1294; 1325 static const SpriteID SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 61; 1326 static const SpriteID SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 67; 1327 static const SpriteID SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 73; 1328 1329 static const SpriteID SPR_IMG_RAIL_STATION = 1298; 1330 static const SpriteID SPR_IMG_RAIL_SIGNALS = 1291; 1331 1332 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_NORM = 1287; 1333 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_ENTRY = SPR_SIGNALS_BASE + 12; 1334 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_EXIT = SPR_SIGNALS_BASE + 28; 1335 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_COMBO = SPR_SIGNALS_BASE + 44; 1336 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_PBS = SPR_SIGNALS_BASE + 124; 1337 static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_PBS_OWAY = SPR_SIGNALS_BASE + 140; 1338 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_NORM = SPR_SIGNALS_BASE + 60; 1339 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_ENTRY = SPR_SIGNALS_BASE + 76; 1340 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_EXIT = SPR_SIGNALS_BASE + 92; 1341 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_COMBO = SPR_SIGNALS_BASE + 108; 1342 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_PBS = SPR_SIGNALS_BASE + 188; 1343 static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_PBS_OWAY= SPR_SIGNALS_BASE + 204; 1344 static const SpriteID SPR_IMG_SIGNAL_CONVERT = SPR_OPENTTD_BASE + 135; 1345 1346 static const SpriteID SPR_IMG_TUNNEL_RAIL = 2430; 1347 static const SpriteID SPR_IMG_TUNNEL_MONO = 2431; 1348 static const SpriteID SPR_IMG_TUNNEL_MAGLEV = 2432; 1349 1350 static const SpriteID SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 55; 1351 static const SpriteID SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 59; 1352 static const SpriteID SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 65; 1353 static const SpriteID SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 71; 1354 1355 /* story_gui.cpp */ 1356 static const SpriteID SPR_IMG_VIEW_LOCATION = SPR_OPENTTD_BASE + 170; 1357 static const SpriteID SPR_IMG_GOAL = SPR_OPENTTD_BASE + 171; 1358 static const SpriteID SPR_IMG_GOAL_COMPLETED = SPR_OPENTTD_BASE + 172; 1359 static const SpriteID SPR_IMG_GOAL_BROKEN_REF= SPR_OPENTTD_BASE + 173; 1360 1361 static const SpriteID SPR_IMG_CONVERT_ROAD = SPR_OPENTTD_BASE + 180; 1362 static const CursorID SPR_CURSOR_CONVERT_ROAD = SPR_OPENTTD_BASE + 181; 1363 static const SpriteID SPR_IMG_CONVERT_TRAM = SPR_OPENTTD_BASE + 182; 1364 static const CursorID SPR_CURSOR_CONVERT_TRAM = SPR_OPENTTD_BASE + 183; 1365 1366 /* intro_gui.cpp, genworld_gui.cpp */ 1367 static const SpriteID SPR_SELECT_TEMPERATE = 4882; 1368 static const SpriteID SPR_SELECT_TEMPERATE_PUSHED = 4883; 1369 static const SpriteID SPR_SELECT_SUB_ARCTIC = 4884; 1370 static const SpriteID SPR_SELECT_SUB_ARCTIC_PUSHED = 4885; 1371 static const SpriteID SPR_SELECT_SUB_TROPICAL = 4886; 1372 static const SpriteID SPR_SELECT_SUB_TROPICAL_PUSHED = 4887; 1373 static const SpriteID SPR_SELECT_TOYLAND = 4888; 1374 static const SpriteID SPR_SELECT_TOYLAND_PUSHED = 4889; 1375 1376 /** Cursor sprite numbers */ 1377 1378 /* Terraform 1379 * Cursors */ 1380 static const CursorID SPR_CURSOR_MOUSE = 0; 1381 static const CursorID SPR_CURSOR_ZZZ = 1; 1382 static const CursorID SPR_CURSOR_BUOY = 702; 1383 static const CursorID SPR_CURSOR_QUERY = 719; 1384 static const CursorID SPR_CURSOR_HQ = 720; 1385 static const CursorID SPR_CURSOR_SHIP_DEPOT = 721; 1386 static const CursorID SPR_CURSOR_SIGN = 722; 1387 1388 static const CursorID SPR_CURSOR_TREE = 2010; 1389 static const CursorID SPR_CURSOR_BUY_LAND = 4792; 1390 static const CursorID SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 92; 1391 1392 static const CursorID SPR_CURSOR_TOWN = 4080; 1393 static const CursorID SPR_CURSOR_INDUSTRY = 4081; 1394 static const CursorID SPR_CURSOR_ROCKY_AREA = 4087; 1395 static const CursorID SPR_CURSOR_DESERT = 4088; 1396 static const CursorID SPR_CURSOR_TRANSMITTER = 4089; 1397 1398 /* airport cursors */ 1399 static const CursorID SPR_CURSOR_AIRPORT = 2724; 1400 1401 /* dock cursors */ 1402 static const CursorID SPR_CURSOR_DOCK = 3668; 1403 static const CursorID SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 89; 1404 static const CursorID SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 87; 1405 static const CursorID SPR_CURSOR_RIVER = SPR_OPENTTD_BASE + 137; 1406 static const CursorID SPR_CURSOR_AQUEDUCT = SPR_OPENTTD_BASE + 146; 1407 1408 /* shared road & rail cursors */ 1409 static const CursorID SPR_CURSOR_BRIDGE = 2593; 1410 1411 /* rail cursors */ 1412 static const CursorID SPR_CURSOR_NS_TRACK = 1263; 1413 static const CursorID SPR_CURSOR_SWNE_TRACK = 1264; 1414 static const CursorID SPR_CURSOR_EW_TRACK = 1265; 1415 static const CursorID SPR_CURSOR_NWSE_TRACK = 1266; 1416 1417 static const CursorID SPR_CURSOR_NS_MONO = 1267; 1418 static const CursorID SPR_CURSOR_SWNE_MONO = 1268; 1419 static const CursorID SPR_CURSOR_EW_MONO = 1269; 1420 static const CursorID SPR_CURSOR_NWSE_MONO = 1270; 1421 1422 static const CursorID SPR_CURSOR_NS_MAGLEV = 1271; 1423 static const CursorID SPR_CURSOR_SWNE_MAGLEV = 1272; 1424 static const CursorID SPR_CURSOR_EW_MAGLEV = 1273; 1425 static const CursorID SPR_CURSOR_NWSE_MAGLEV = 1274; 1426 1427 static const CursorID SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 40; 1428 static const CursorID SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 41; 1429 static const CursorID SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 42; 1430 static const CursorID SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 43; 1431 1432 static const CursorID SPR_CURSOR_RAIL_STATION = 1300; 1433 1434 static const CursorID SPR_CURSOR_TUNNEL_RAIL = 2434; 1435 static const CursorID SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 45; 1436 static const CursorID SPR_CURSOR_TUNNEL_MONO = 2435; 1437 static const CursorID SPR_CURSOR_TUNNEL_MAGLEV = 2436; 1438 1439 static const CursorID SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 54; 1440 static const CursorID SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 58; 1441 static const CursorID SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 64; 1442 static const CursorID SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 70; 1443 1444 static const CursorID SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 77; 1445 1446 static const CursorID SPR_CURSOR_RAIL_DEPOT = 1296; 1447 static const CursorID SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 62; 1448 static const CursorID SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 68; 1449 static const CursorID SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 74; 1450 1451 static const CursorID SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 56; 1452 static const CursorID SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 60; 1453 static const CursorID SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 66; 1454 static const CursorID SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 72; 1455 1456 /* road cursors */ 1457 static const CursorID SPR_CURSOR_ROAD_NESW = 1311; 1458 static const CursorID SPR_CURSOR_ROAD_NWSE = 1312; 1459 static const CursorID SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 83; 1460 static const CursorID SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2; 1461 static const CursorID SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3; 1462 static const CursorID SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 85; 1463 1464 static const CursorID SPR_CURSOR_ROAD_DEPOT = 1297; 1465 static const CursorID SPR_CURSOR_BUS_STATION = 2725; 1466 static const CursorID SPR_CURSOR_TRUCK_STATION = 2726; 1467 static const CursorID SPR_CURSOR_ROAD_TUNNEL = 2433; 1468 1469 static const CursorID SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110; 1470 static const CursorID SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 111; 1471 static const CursorID SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112; 1472 static const CursorID SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 113; 1473 1474 /** Animation macro in table/animcursors.h (_animcursors[]) */ 1475 1476 static const CursorID SPR_CURSOR_DEMOLISH_FIRST = 704; 1477 static const CursorID SPR_CURSOR_DEMOLISH_1 = 705; 1478 static const CursorID SPR_CURSOR_DEMOLISH_2 = 706; 1479 static const CursorID SPR_CURSOR_DEMOLISH_LAST = 707; 1480 1481 static const CursorID SPR_CURSOR_LOWERLAND_FIRST = 699; 1482 static const CursorID SPR_CURSOR_LOWERLAND_1 = 700; 1483 static const CursorID SPR_CURSOR_LOWERLAND_LAST = 701; 1484 1485 static const CursorID SPR_CURSOR_RAISELAND_FIRST = 696; 1486 static const CursorID SPR_CURSOR_RAISELAND_1 = 697; 1487 static const CursorID SPR_CURSOR_RAISELAND_LAST = 698; 1488 1489 static const CursorID SPR_CURSOR_PICKSTATION_FIRST = 716; 1490 static const CursorID SPR_CURSOR_PICKSTATION_1 = 717; 1491 static const CursorID SPR_CURSOR_PICKSTATION_LAST = 718; 1492 1493 static const CursorID SPR_CURSOR_BUILDSIGNALS_FIRST = 1292; 1494 static const CursorID SPR_CURSOR_BUILDSIGNALS_LAST = 1293; 1495 1496 /** Flag for saying a cursor sprite is an animated cursor. */ 1497 static const CursorID ANIMCURSOR_FLAG = 1U << 31; 1498 static const CursorID ANIMCURSOR_DEMOLISH = ANIMCURSOR_FLAG | 0; ///< 704 - 707 - demolish dynamite 1499 static const CursorID ANIMCURSOR_LOWERLAND = ANIMCURSOR_FLAG | 1; ///< 699 - 701 - lower land tool 1500 static const CursorID ANIMCURSOR_RAISELAND = ANIMCURSOR_FLAG | 2; ///< 696 - 698 - raise land tool 1501 static const CursorID ANIMCURSOR_PICKSTATION = ANIMCURSOR_FLAG | 3; ///< 716 - 718 - goto-order icon 1502 static const CursorID ANIMCURSOR_BUILDSIGNALS = ANIMCURSOR_FLAG | 4; ///< 1292 - 1293 - build signal 1503 1504 /** 1505 * Bitmask setup. For the graphics system, 32 bits are used to define 1506 * the sprite to be displayed. This variable contains various information:<p> 1507 * <ul><li> SPRITE_WIDTH is the number of bits used for the actual sprite to be displayed. 1508 * This always starts at bit 0.</li> 1509 * <li> TRANSPARENT_BIT is the bit number which toggles sprite transparency</li> 1510 * <li> RECOLOUR_BIT toggles the recolouring system</li> 1511 * <li> PALETTE_SPRITE_WIDTH and PALETTE_SPRITE_START determine the position and number of 1512 * bits used for the recolouring process. For transparency, it must be 0x322.</li></ul> 1513 */ 1514 enum SpriteSetup { 1515 /* These bits are applied to sprite ID */ 1516 TRANSPARENT_BIT = 31, ///< toggles transparency in the sprite 1517 RECOLOUR_BIT = 30, ///< toggles recolouring in the sprite 1518 CUSTOM_BIT = 29, 1519 OPAQUE_BIT = 28, 1520 1521 /* This bit is applied to palette ID */ 1522 PALETTE_TEXT_RECOLOUR = 31, ///< Set if palette is actually a magic text recolour 1523 1524 PALETTE_WIDTH = 24, ///< number of bits of the sprite containing the recolour palette 1525 SPRITE_WIDTH = 24, ///< number of bits for the sprite number 1526 }; 1527 1528 /** 1529 * these masks change the colours of the palette for a sprite. 1530 * Apart from this bit, a sprite number is needed to define 1531 * the palette used for recolouring. This palette is stored 1532 * in the bits marked by PALETTE_SPRITE_MASK. 1533 * @note Do not modify this enum. Alter SpriteSetup instead 1534 * @see SpriteSetup 1535 */ 1536 enum Modifiers { 1537 SPRITE_MODIFIER_CUSTOM_SPRITE = CUSTOM_BIT, ///< Set when a sprite originates from an Action 1 1538 SPRITE_MODIFIER_OPAQUE = OPAQUE_BIT, ///< Set when a sprite must not ever be displayed transparently 1539 PALETTE_MODIFIER_TRANSPARENT = TRANSPARENT_BIT, ///< when a sprite is to be displayed transparently, this bit needs to be set. 1540 PALETTE_MODIFIER_COLOUR = RECOLOUR_BIT, ///< this bit is set when a recolouring process is in action 1541 }; 1542 1543 /** 1544 * Masks needed for sprite operations. 1545 * @note Do not modify this enum. Alter SpriteSetup instead 1546 * @see SpriteSetup 1547 */ 1548 enum SpriteMasks { 1549 MAX_SPRITES = 1 << SPRITE_WIDTH, ///< Maximum number of sprites that can be loaded at a given time 1550 SPRITE_MASK = MAX_SPRITES - 1, ///< The mask to for the main sprite 1551 1552 MAX_PALETTES = 1 << PALETTE_WIDTH, 1553 PALETTE_MASK = MAX_PALETTES - 1, ///< The mask for the auxiliary sprite (the one that takes care of recolouring) 1554 }; 1555 1556 static_assert( (1 << TRANSPARENT_BIT & SPRITE_MASK) == 0 ); 1557 static_assert( (1 << RECOLOUR_BIT & SPRITE_MASK) == 0 ); 1558 static_assert( TRANSPARENT_BIT != RECOLOUR_BIT ); 1559 static_assert( (1 << TRANSPARENT_BIT & PALETTE_MASK) == 0); 1560 static_assert( (1 << RECOLOUR_BIT & PALETTE_MASK) == 0 ); 1561 1562 1563 static const PaletteID PAL_NONE = 0; 1564 static const PaletteID PALETTE_TILE_RED_PULSATING = 771; ///< pulsating red tile drawn if you try to build a wrong tunnel or raise/lower land where it is not possible 1565 static const PaletteID PALETTE_SEL_TILE_RED = 772; ///< makes a square red. is used when removing rails or other stuff 1566 static const PaletteID PALETTE_SEL_TILE_BLUE = 773; ///< This draws a blueish square (catchment areas for example) 1567 1568 /* Company re-colour sprites */ 1569 static const PaletteID PALETTE_RECOLOUR_START = 775; ///< First recolour sprite for company colours 1570 static const PaletteID PALETTE_TO_DARK_BLUE = 775; 1571 static const PaletteID PALETTE_TO_PALE_GREEN = 776; 1572 static const PaletteID PALETTE_TO_PINK = 777; 1573 static const PaletteID PALETTE_TO_YELLOW = 778; 1574 static const PaletteID PALETTE_TO_RED = 779; 1575 static const PaletteID PALETTE_TO_LIGHT_BLUE = 780; 1576 static const PaletteID PALETTE_TO_GREEN = 781; 1577 static const PaletteID PALETTE_TO_DARK_GREEN = 782; 1578 static const PaletteID PALETTE_TO_BLUE = 783; 1579 static const PaletteID PALETTE_TO_CREAM = 784; 1580 /* maybe don't use as company colour because it doesn't display in the graphs? */ 1581 static const PaletteID PALETTE_TO_MAUVE = 785; 1582 static const PaletteID PALETTE_TO_PURPLE = 786; 1583 static const PaletteID PALETTE_TO_ORANGE = 787; 1584 static const PaletteID PALETTE_TO_BROWN = 788; 1585 static const PaletteID PALETTE_TO_GREY = 789; 1586 static const PaletteID PALETTE_TO_WHITE = 790; 1587 1588 static const PaletteID PALETTE_TO_BARE_LAND = 791; ///< sets colour to bare land stuff for rail, road and crossings 1589 /* recolour sprites 792-794 are not used */ 1590 static const PaletteID PALETTE_TO_STRUCT_BLUE = 795; ///< sets bridge or structure to blue (e.g. some town houses) 1591 static const PaletteID PALETTE_TO_STRUCT_BROWN = 796; ///< sets bridge or structure to brown (e.g. cantilever bridge) 1592 static const PaletteID PALETTE_TO_STRUCT_WHITE = 797; ///< sets bridge or structure to white (e.g. some town houses) 1593 static const PaletteID PALETTE_TO_STRUCT_RED = 798; ///< sets bridge or structure to red (e.g. concrete and cantilever bridge) 1594 static const PaletteID PALETTE_TO_STRUCT_GREEN = 799; ///< sets bridge or structure to green (e.g. bridge) 1595 static const PaletteID PALETTE_TO_STRUCT_CONCRETE = 800; ///< Sets the suspension bridge to concrete, also other structures use it 1596 static const PaletteID PALETTE_TO_STRUCT_YELLOW = 801; ///< Sets the bridge colour to yellow (suspension and tubular) 1597 static const PaletteID PALETTE_TO_TRANSPARENT = 802; ///< This sets the sprite to transparent 1598 1599 static const PaletteID PALETTE_NEWSPAPER = 803; ///< Recolour sprite for newspaper-greying. 1600 static const PaletteID PALETTE_CRASH = 804; ///< Recolour sprite greying of crashed vehicles. 1601 1602 /* Two recolourings only used by the church */ 1603 static const PaletteID PALETTE_CHURCH_RED = 1438; ///< Recolour sprite for reddish churches 1604 static const PaletteID PALETTE_CHURCH_CREAM = 1439; ///< Recolour sprite for white churches 1605 1606 static const PaletteID PALETTE_ALL_BLACK = SPR_PALETTE_BASE; ///< Exchange any color by black, needed for painting fictive tiles outside map 1607 1608 #endif /* SPRITES_H */ 1609