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