diff options
author | rubidium <rubidium@openttd.org> | 2010-01-21 01:46:40 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-01-21 01:46:40 +0000 |
commit | e130e4e9bacf704fc6e9eebf20d35fe5918227af (patch) | |
tree | 4c2d152b8bfd2664029eaaeda276959ade7867d0 /src | |
parent | db33e32b4dd58027f5d3bc8dd55792df7cf2158d (diff) | |
download | openttd-e130e4e9bacf704fc6e9eebf20d35fe5918227af.tar.xz |
(svn r18874) -Codechange: Change enum Sprites { to static const StringID = for each SPR_ entry and similar for cursors and palettes. This avoids the need for a cast in some places and thus provides better type-safety.
Diffstat (limited to 'src')
-rw-r--r-- | src/table/sprites.h | 2812 |
1 files changed, 1398 insertions, 1414 deletions
diff --git a/src/table/sprites.h b/src/table/sprites.h index 4198e8b8a..a47573598 100644 --- a/src/table/sprites.h +++ b/src/table/sprites.h @@ -41,1361 +41,1359 @@ #include "../gfx_type.h" -enum Sprites { - SPR_SELECT_TILE = 752, - SPR_DOT = 774, // corner marker for lower/raise land - SPR_DOT_SMALL = 4078, - SPR_WHITE_POINT = 4079, - - /* ASCII */ - SPR_ASCII_SPACE = 2, - SPR_ASCII_SPACE_SMALL = 226, - SPR_ASCII_SPACE_BIG = 450, - - SPR_LARGE_SMALL_WINDOW = 682, - - /* Extra graphic spritenumbers */ - SPR_OPENTTD_BASE = 4896, - OPENTTD_SPRITE_COUNT = 153, - - /* Halftile-selection sprites */ - SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE, - SPR_HALFTILE_SELECTION_DOWN = SPR_OPENTTD_BASE + 4, - SPR_HALFTILE_SELECTION_UP = SPR_OPENTTD_BASE + 8, - - SPR_SQUARE = SPR_OPENTTD_BASE + 38, // coloured square (used for newgrf compatibility) - SPR_BLOT = SPR_OPENTTD_BASE + 39, // coloured circle (mainly used as vehicle profit marker and for server compatibility) - SPR_LOCK = SPR_OPENTTD_BASE + 40, // lock icon (for password protected servers) - SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 41, - SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 42, - SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43, // warning sign (shown if there are any newgrf errors) - SPR_WINDOW_RESIZE_RIGHT= SPR_OPENTTD_BASE + 44, // resize icon to the right - SPR_WINDOW_RESIZE_LEFT = SPR_OPENTTD_BASE + 149, // resize icon to the left - SPR_WINDOW_SHADE = SPR_OPENTTD_BASE + 151, // shade the window icon - SPR_WINDOW_UNSHADE = SPR_OPENTTD_BASE + 152, // unshade the window icon - SPR_IMG_PLAY_MUSIC_RTL = SPR_OPENTTD_BASE + 150, // play music button, but then for RTL users - /* Arrow icons pointing in all 4 directions */ - SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45, - SPR_ARROW_UP = SPR_OPENTTD_BASE + 46, - SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 47, - SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 48, - SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 49, - SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 50, - SPR_PIN_UP = SPR_OPENTTD_BASE + 51, // pin icon - SPR_PIN_DOWN = SPR_OPENTTD_BASE + 52, - - SPR_CIRCLE_FOLDED = SPR_OPENTTD_BASE + 147, // (+) icon - SPR_CIRCLE_UNFOLDED = SPR_OPENTTD_BASE + 148, // (-) icon - - /* on screen keyboard icons */ - SPR_OSK_LEFT = SPR_OPENTTD_BASE + 138, - SPR_OSK_RIGHT = SPR_OPENTTD_BASE + 139, - SPR_OSK_CAPS = SPR_OPENTTD_BASE + 140, - SPR_OSK_SHIFT = SPR_OPENTTD_BASE + 141, - SPR_OSK_BACKSPACE = SPR_OPENTTD_BASE + 142, - SPR_OSK_SPECIAL = SPR_OPENTTD_BASE + 143, - - /* Clone vehicles stuff */ - SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 106, - SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 107, - SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 108, - SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 109, - - SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 93, - SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 94, - SPR_SELL_SHIP = SPR_OPENTTD_BASE + 95, - SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 96, - SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 97, - SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 98, - SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 99, - SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 100, - SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 101, - SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 102, - SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 103, - SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 104, - SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 105, - - SPR_GROUP_CREATE_TRAIN = SPR_OPENTTD_BASE + 114, - SPR_GROUP_CREATE_ROADVEH = SPR_OPENTTD_BASE + 115, - SPR_GROUP_CREATE_SHIP = SPR_OPENTTD_BASE + 116, - SPR_GROUP_CREATE_AIRCRAFT = SPR_OPENTTD_BASE + 117, - SPR_GROUP_DELETE_TRAIN = SPR_OPENTTD_BASE + 118, - SPR_GROUP_DELETE_ROADVEH = SPR_OPENTTD_BASE + 119, - SPR_GROUP_DELETE_SHIP = SPR_OPENTTD_BASE + 120, - SPR_GROUP_DELETE_AIRCRAFT = SPR_OPENTTD_BASE + 121, - SPR_GROUP_RENAME_TRAIN = SPR_OPENTTD_BASE + 122, - SPR_GROUP_RENAME_ROADVEH = SPR_OPENTTD_BASE + 123, - SPR_GROUP_RENAME_SHIP = SPR_OPENTTD_BASE + 124, - SPR_GROUP_RENAME_AIRCRAFT = SPR_OPENTTD_BASE + 125, - SPR_GROUP_REPLACE_ON_TRAIN = SPR_OPENTTD_BASE + 126, - SPR_GROUP_REPLACE_ON_ROADVEH = SPR_OPENTTD_BASE + 127, - SPR_GROUP_REPLACE_ON_SHIP = SPR_OPENTTD_BASE + 128, - SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_OPENTTD_BASE + 129, - SPR_GROUP_REPLACE_OFF_TRAIN = SPR_OPENTTD_BASE + 130, - SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_OPENTTD_BASE + 131, - SPR_GROUP_REPLACE_OFF_SHIP = SPR_OPENTTD_BASE + 132, - SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_OPENTTD_BASE + 133, - - SPR_IMG_SWITCH_TOOLBAR = SPR_OPENTTD_BASE + 144, - - SPR_SIGNALS_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT, - PRESIGNAL_SPRITE_COUNT = 48, - PRESIGNAL_AND_SEMAPHORE_SPRITE_COUNT = 112, - PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT = 240, - - SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT, - CANALS_SPRITE_COUNT = 65, - - /* Sprites for the Aqueduct. */ - SPR_AQUEDUCT_BASE = SPR_CANALS_BASE + CANALS_SPRITE_COUNT, - SPR_AQUEDUCT_RAMP_SW = SPR_AQUEDUCT_BASE + 0, - SPR_AQUEDUCT_RAMP_SE = SPR_AQUEDUCT_BASE + 1, - SPR_AQUEDUCT_RAMP_NE = SPR_AQUEDUCT_BASE + 2, - SPR_AQUEDUCT_RAMP_NW = SPR_AQUEDUCT_BASE + 3, - SPR_AQUEDUCT_MIDDLE_X = SPR_AQUEDUCT_BASE + 4, - SPR_AQUEDUCT_MIDDLE_Y = SPR_AQUEDUCT_BASE + 5, - SPR_AQUEDUCT_PILLAR_X = SPR_AQUEDUCT_BASE + 6, - SPR_AQUEDUCT_PILLAR_Y = SPR_AQUEDUCT_BASE + 7, - AQUEDUCT_SPRITE_COUNT = 8, - - /* Sprites for 'highlighting' tracks on sloped land. */ - SPR_TRACKS_FOR_SLOPES_BASE = SPR_AQUEDUCT_BASE + AQUEDUCT_SPRITE_COUNT, - SPR_TRACKS_FOR_SLOPES_RAIL_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 0, - SPR_TRACKS_FOR_SLOPES_MONO_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 4, - SPR_TRACKS_FOR_SLOPES_MAGLEV_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 8, - TRACKS_FOR_SLOPES_SPRITE_COUNT = 12, - - SPR_SLOPES_BASE = SPR_TRACKS_FOR_SLOPES_BASE + TRACKS_FOR_SLOPES_SPRITE_COUNT, - SPR_SLOPES_INCLINED_OFFSET = 15, - SPR_SLOPES_VIRTUAL_BASE = SPR_SLOPES_BASE - SPR_SLOPES_INCLINED_OFFSET, // The original foundations (see SPR_FOUNDATION_BASE below) are mapped before the additional foundations. - SPR_TRKFOUND_BLOCK_SIZE = 22, // The normal track foundation sprites are organized in blocks of 22. - NORMAL_FOUNDATION_SPRITE_COUNT = 74, - /* Halftile foundations */ - SPR_HALFTILE_FOUNDATION_BASE = SPR_SLOPES_BASE + NORMAL_FOUNDATION_SPRITE_COUNT, - SPR_HALFTILE_BLOCK_SIZE = 4, // The half tile foundation sprites are organized in blocks of 4. - NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT = 90, - - SPR_AUTORAIL_BASE = SPR_HALFTILE_FOUNDATION_BASE + NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT, - AUTORAIL_SPRITE_COUNT = 55, - - SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + AUTORAIL_SPRITE_COUNT, - ELRAIL_SPRITE_COUNT = 48, - - SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + ELRAIL_SPRITE_COUNT, - TWOCCMAP_SPRITE_COUNT = 256, - - /* shore tiles - action 05-0D */ - SPR_SHORE_BASE = SPR_2CCMAP_BASE + TWOCCMAP_SPRITE_COUNT, - SPR_SHORE_SPRITE_COUNT = 18, - SPR_ORIGINALSHORE_START = 4062, - SPR_ORIGINALSHORE_END = 4069, - - SPR_AIRPORTX_BASE = SPR_SHORE_BASE + SPR_SHORE_SPRITE_COUNT, // The sprites used for other airport angles - SPR_NEWAIRPORT_TARMAC = SPR_AIRPORTX_BASE, - SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1, - SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2, - SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3, - SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4, - SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5, - SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6, - SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7, - SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8, - SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9, - SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10, - SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11, - SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12, - SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13, - SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14, - AIRPORTX_SPRITE_COUNT = 15, - - SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + AIRPORTX_SPRITE_COUNT, // The sprites used for drive-through road stops - SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE, - SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1, - SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2, - SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3, - SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4, - SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5, - SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6, - SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7, - ROADSTOP_SPRITE_COUNT = 8, - - /* Tramway sprites */ - SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT, - SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4, - SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27, - SPR_TRAMWAY_SLOPED_OFFSET = 11, - SPR_TRAMWAY_BUS_STOP_DT_Y_W = SPR_TRAMWAY_BASE + 25, - SPR_TRAMWAY_BUS_STOP_DT_Y_E = SPR_TRAMWAY_BASE + 23, - SPR_TRAMWAY_BUS_STOP_DT_X_W = SPR_TRAMWAY_BASE + 24, - SPR_TRAMWAY_BUS_STOP_DT_X_E = SPR_TRAMWAY_BASE + 26, - SPR_TRAMWAY_PAVED_STRAIGHT_Y = SPR_TRAMWAY_BASE + 46, - SPR_TRAMWAY_PAVED_STRAIGHT_X = SPR_TRAMWAY_BASE + 47, - SPR_TRAMWAY_BACK_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 55, - SPR_TRAMWAY_FRONT_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 56, - SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72, - SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68, - SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80, - SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107, - TRAMWAY_SPRITE_COUNT = 113, - - /* One way road sprites */ - SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT, - ONEWAY_SPRITE_COUNT = 6, - - /* Flags sprites (in same order as enum NetworkLanguage) */ - SPR_FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT, - FLAGS_SPRITE_COUNT = 36, - - /* Not really a sprite, but an empty bounding box. Used to construct bounding boxes, that help sorting the sprites, but do not have a sprite associated. */ - SPR_EMPTY_BOUNDING_BOX = SPR_FLAGS_BASE + FLAGS_SPRITE_COUNT, - EMPTY_BOUNDING_BOX_SPRITE_COUNT = 1, - - /* From where can we start putting NewGRFs? */ - SPR_NEWGRFS_BASE = SPR_EMPTY_BOUNDING_BOX + EMPTY_BOUNDING_BOX_SPRITE_COUNT, - - /* Manager face sprites */ - SPR_GRADIENT = 874, // background gradient behind manager face - - /* Icon showing company colour. */ - SPR_COMPANY_ICON = 747, - - /* is itself no foundation sprite, because tileh 0 has no foundation */ - SPR_FOUNDATION_BASE = 989, - - /* Shadow cell */ - SPR_SHADOW_CELL = 1004, - - /* Unmovables spritenumbers */ - SPR_UNMOVABLE_TRANSMITTER = 2601, - SPR_UNMOVABLE_LIGHTHOUSE = 2602, - SPR_TINYHQ_NORTH = 2603, - SPR_TINYHQ_EAST = 2604, - SPR_TINYHQ_WEST = 2605, - SPR_TINYHQ_SOUTH = 2606, - SPR_SMALLHQ_NORTH = 2607, - SPR_SMALLHQ_EAST = 2608, - SPR_SMALLHQ_WEST = 2609, - SPR_SMALLHQ_SOUTH = 2610, - SPR_MEDIUMHQ_NORTH = 2611, - SPR_MEDIUMHQ_NORTH_WALL = 2612, - SPR_MEDIUMHQ_EAST = 2613, - SPR_MEDIUMHQ_EAST_WALL = 2614, - SPR_MEDIUMHQ_WEST = 2615, - SPR_MEDIUMHQ_WEST_WALL = 2616, // very tiny piece of wall - SPR_MEDIUMHQ_SOUTH = 2617, - SPR_LARGEHQ_NORTH_GROUND = 2618, - SPR_LARGEHQ_NORTH_BUILD = 2619, - SPR_LARGEHQ_EAST_GROUND = 2620, - SPR_LARGEHQ_EAST_BUILD = 2621, - SPR_LARGEHQ_WEST_GROUND = 2622, - SPR_LARGEHQ_WEST_BUILD = 2623, - SPR_LARGEHQ_SOUTH = 2624, - SPR_HUGEHQ_NORTH_GROUND = 2625, - SPR_HUGEHQ_NORTH_BUILD = 2626, - SPR_HUGEHQ_EAST_GROUND = 2627, - SPR_HUGEHQ_EAST_BUILD = 2628, - SPR_HUGEHQ_WEST_GROUND = 2629, - SPR_HUGEHQ_WEST_BUILD = 2630, - SPR_HUGEHQ_SOUTH = 2631, - SPR_CONCRETE_GROUND = 1420, - SPR_STATUE_COMPANY = 2632, - SPR_BOUGHT_LAND = 4790, - - /* sprites for rail and rail stations*/ - SPR_RAIL_SNOW_OFFSET = 26, - SPR_MONO_SNOW_OFFSET = 26, - SPR_MGLV_SNOW_OFFSET = 26, - - SPR_ORIGINAL_SIGNALS_BASE = 1275, - - SPR_RAIL_SINGLE_X = 1005, - SPR_RAIL_SINGLE_Y = 1006, - SPR_RAIL_SINGLE_NORTH = 1007, - SPR_RAIL_SINGLE_SOUTH = 1008, - SPR_RAIL_SINGLE_EAST = 1009, - SPR_RAIL_SINGLE_WEST = 1010, - SPR_RAIL_TRACK_Y = 1011, - SPR_RAIL_TRACK_X = 1012, - SPR_RAIL_TRACK_BASE = 1018, - SPR_RAIL_TRACK_N_S = 1035, - SPR_RAIL_TRACK_Y_SNOW = 1037, - SPR_RAIL_TRACK_X_SNOW = 1038, - SPR_RAIL_DEPOT_SE_1 = 1063, - SPR_RAIL_DEPOT_SE_2 = 1064, - SPR_RAIL_DEPOT_SW_1 = 1065, - SPR_RAIL_DEPOT_SW_2 = 1066, - SPR_RAIL_DEPOT_NE = 1067, - SPR_RAIL_DEPOT_NW = 1068, - SPR_RAIL_PLATFORM_Y_FRONT = 1069, - SPR_RAIL_PLATFORM_X_REAR = 1070, - SPR_RAIL_PLATFORM_Y_REAR = 1071, - SPR_RAIL_PLATFORM_X_FRONT = 1072, - SPR_RAIL_PLATFORM_BUILDING_X = 1073, - SPR_RAIL_PLATFORM_BUILDING_Y = 1074, - SPR_RAIL_PLATFORM_PILLARS_Y_FRONT = 1075, - SPR_RAIL_PLATFORM_PILLARS_X_REAR = 1076, - SPR_RAIL_PLATFORM_PILLARS_Y_REAR = 1077, - SPR_RAIL_PLATFORM_PILLARS_X_FRONT = 1078, - SPR_RAIL_ROOF_STRUCTURE_X_TILE_A = 1079, // First half of the roof structure - SPR_RAIL_ROOF_STRUCTURE_Y_TILE_A = 1080, - SPR_RAIL_ROOF_STRUCTURE_X_TILE_B = 1081, // Second half of the roof structure - SPR_RAIL_ROOF_STRUCTURE_Y_TILE_B = 1082, - SPR_RAIL_ROOF_GLASS_X_TILE_A = 1083, // First half of the roof glass - SPR_RAIL_ROOF_GLASS_Y_TILE_A = 1084, - SPR_RAIL_ROOF_GLASS_X_TILE_B = 1085, // second half of the roof glass - SPR_RAIL_ROOF_GLASS_Y_TILE_B = 1086, - SPR_MONO_SINGLE_X = 1087, - SPR_MONO_SINGLE_Y = 1088, - SPR_MONO_SINGLE_NORTH = 1089, - SPR_MONO_SINGLE_SOUTH = 1090, - SPR_MONO_SINGLE_EAST = 1091, - SPR_MONO_SINGLE_WEST = 1092, - SPR_MONO_TRACK_Y = 1093, - SPR_MONO_TRACK_BASE = 1100, - SPR_MONO_TRACK_N_S = 1117, - SPR_MGLV_SINGLE_X = 1169, - SPR_MGLV_SINGLE_Y = 1170, - SPR_MGLV_SINGLE_NORTH = 1171, - SPR_MGLV_SINGLE_SOUTH = 1172, - SPR_MGLV_SINGLE_EAST = 1173, - SPR_MGLV_SINGLE_WEST = 1174, - SPR_MGLV_TRACK_Y = 1175, - SPR_MGLV_TRACK_BASE = 1182, - SPR_MGLV_TRACK_N_S = 1199, - SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 78, - SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 79, - SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 80, - SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 81, - OFFSET_TILEH_IMPOSSIBLE = 0, - OFFSET_TILEH_1 = 14, - OFFSET_TILEH_2 = 15, - OFFSET_TILEH_3 = 22, - OFFSET_TILEH_4 = 13, - OFFSET_TILEH_6 = 21, - OFFSET_TILEH_7 = 17, - OFFSET_TILEH_8 = 12, - OFFSET_TILEH_9 = 23, - OFFSET_TILEH_11 = 18, - OFFSET_TILEH_12 = 20, - OFFSET_TILEH_13 = 19, - OFFSET_TILEH_14 = 16, - - /* Track fences */ - SPR_TRACK_FENCE_FLAT_X = 1301, - SPR_TRACK_FENCE_FLAT_Y = 1302, - SPR_TRACK_FENCE_FLAT_VERT = 1303, - SPR_TRACK_FENCE_FLAT_HORZ = 1304, - SPR_TRACK_FENCE_SLOPE_SW = 1305, - SPR_TRACK_FENCE_SLOPE_SE = 1306, - SPR_TRACK_FENCE_SLOPE_NE = 1307, - SPR_TRACK_FENCE_SLOPE_NW = 1308, - - /* Base sprites for elrail. - * Offsets via an enum are used so a complete list of absolute - * sprite numbers is unnecessary. - */ - SPR_WIRE_BASE = SPR_ELRAIL_BASE + 0, - SPR_PYLON_BASE = SPR_ELRAIL_BASE + 28, - - /* sprites for roads */ - SPR_ROAD_PAVED_STRAIGHT_Y = 1313, - SPR_ROAD_PAVED_STRAIGHT_X = 1314, - - /* sprites for airports and airfields*/ - /* Small airports are AIRFIELD, everything else is AIRPORT */ - SPR_HELIPORT = 2633, - SPR_AIRPORT_APRON = 2634, - SPR_AIRPORT_AIRCRAFT_STAND = 2635, - SPR_AIRPORT_TAXIWAY_NS_WEST = 2636, - SPR_AIRPORT_TAXIWAY_EW_SOUTH = 2637, - SPR_AIRPORT_TAXIWAY_XING_SOUTH = 2638, - SPR_AIRPORT_TAXIWAY_XING_WEST = 2639, - SPR_AIRPORT_TAXIWAY_NS_CTR = 2640, - SPR_AIRPORT_TAXIWAY_XING_EAST = 2641, - SPR_AIRPORT_TAXIWAY_NS_EAST = 2642, - SPR_AIRPORT_TAXIWAY_EW_NORTH = 2643, - SPR_AIRPORT_TAXIWAY_EW_CTR = 2644, - SPR_AIRPORT_RUNWAY_EXIT_A = 2645, - SPR_AIRPORT_RUNWAY_EXIT_B = 2646, - SPR_AIRPORT_RUNWAY_EXIT_C = 2647, - SPR_AIRPORT_RUNWAY_EXIT_D = 2648, - SPR_AIRPORT_RUNWAY_END = 2649, // We should have different ends - SPR_AIRPORT_TERMINAL_A = 2650, - SPR_AIRPORT_TOWER = 2651, - SPR_AIRPORT_CONCOURSE = 2652, - SPR_AIRPORT_TERMINAL_B = 2653, - SPR_AIRPORT_TERMINAL_C = 2654, - SPR_AIRPORT_HANGAR_FRONT = 2655, - SPR_AIRPORT_HANGAR_REAR = 2656, - SPR_AIRFIELD_HANGAR_FRONT = 2657, - SPR_AIRFIELD_HANGAR_REAR = 2658, - SPR_AIRPORT_JETWAY_1 = 2659, - SPR_AIRPORT_JETWAY_2 = 2660, - SPR_AIRPORT_JETWAY_3 = 2661, - SPR_AIRPORT_PASSENGER_TUNNEL = 2662, - SPR_AIRPORT_FENCE_Y = 2663, - SPR_AIRPORT_FENCE_X = 2664, - SPR_AIRFIELD_TERM_A = 2665, - SPR_AIRFIELD_TERM_B = 2666, - SPR_AIRFIELD_TERM_C_GROUND = 2667, - SPR_AIRFIELD_TERM_C_BUILD = 2668, - SPR_AIRFIELD_APRON_A = 2669, - SPR_AIRFIELD_APRON_B = 2670, - SPR_AIRFIELD_APRON_C = 2671, - SPR_AIRFIELD_APRON_D = 2672, - SPR_AIRFIELD_RUNWAY_NEAR_END = 2673, - SPR_AIRFIELD_RUNWAY_MIDDLE = 2674, - SPR_AIRFIELD_RUNWAY_FAR_END = 2675, - SPR_AIRFIELD_WIND_1 = 2676, - SPR_AIRFIELD_WIND_2 = 2677, - SPR_AIRFIELD_WIND_3 = 2678, - SPR_AIRFIELD_WIND_4 = 2679, - SPR_AIRPORT_RADAR_1 = 2680, - SPR_AIRPORT_RADAR_2 = 2681, - SPR_AIRPORT_RADAR_3 = 2682, - SPR_AIRPORT_RADAR_4 = 2683, - SPR_AIRPORT_RADAR_5 = 2684, - SPR_AIRPORT_RADAR_6 = 2685, - SPR_AIRPORT_RADAR_7 = 2686, - SPR_AIRPORT_RADAR_8 = 2687, - SPR_AIRPORT_RADAR_9 = 2688, - SPR_AIRPORT_RADAR_A = 2689, - SPR_AIRPORT_RADAR_B = 2690, - SPR_AIRPORT_RADAR_C = 2691, - SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 86, - SPR_AIRPORT_HELIDEPOT_OFFICE = 2095, - - /* Road Stops - * Road stops have a ground tile and 3 buildings, one on each side - * (except the side where the entry is). These are marked _A _B and _C */ - SPR_BUS_STOP_NE_GROUND = 2692, - SPR_BUS_STOP_SE_GROUND = 2693, - SPR_BUS_STOP_SW_GROUND = 2694, - SPR_BUS_STOP_NW_GROUND = 2695, - SPR_BUS_STOP_NE_BUILD_A = 2696, - SPR_BUS_STOP_SE_BUILD_A = 2697, - SPR_BUS_STOP_SW_BUILD_A = 2698, - SPR_BUS_STOP_NW_BUILD_A = 2699, - SPR_BUS_STOP_NE_BUILD_B = 2700, - SPR_BUS_STOP_SE_BUILD_B = 2701, - SPR_BUS_STOP_SW_BUILD_B = 2702, - SPR_BUS_STOP_NW_BUILD_B = 2703, - SPR_BUS_STOP_NE_BUILD_C = 2704, - SPR_BUS_STOP_SE_BUILD_C = 2705, - SPR_BUS_STOP_SW_BUILD_C = 2706, - SPR_BUS_STOP_NW_BUILD_C = 2707, - SPR_TRUCK_STOP_NE_GROUND = 2708, - SPR_TRUCK_STOP_SE_GROUND = 2709, - SPR_TRUCK_STOP_SW_GROUND = 2710, - SPR_TRUCK_STOP_NW_GROUND = 2711, - SPR_TRUCK_STOP_NE_BUILD_A = 2712, - SPR_TRUCK_STOP_SE_BUILD_A = 2713, - SPR_TRUCK_STOP_SW_BUILD_A = 2714, - SPR_TRUCK_STOP_NW_BUILD_A = 2715, - SPR_TRUCK_STOP_NE_BUILD_B = 2716, - SPR_TRUCK_STOP_SE_BUILD_B = 2717, - SPR_TRUCK_STOP_SW_BUILD_B = 2718, - SPR_TRUCK_STOP_NW_BUILD_B = 2719, - SPR_TRUCK_STOP_NE_BUILD_C = 2720, - SPR_TRUCK_STOP_SE_BUILD_C = 2721, - SPR_TRUCK_STOP_SW_BUILD_C = 2722, - SPR_TRUCK_STOP_NW_BUILD_C = 2723, - - /* Sprites for docks - * Docks consist of two tiles, the sloped one and the flat one */ - SPR_DOCK_SLOPE_NE = 2727, - SPR_DOCK_SLOPE_SE = 2728, - SPR_DOCK_SLOPE_SW = 2729, - SPR_DOCK_SLOPE_NW = 2730, - SPR_DOCK_FLAT_X = 2731, // for NE and SW - SPR_DOCK_FLAT_Y = 2732, // for NW and SE - SPR_BUOY = 4076, // XXX this sucks, because it displays wrong stuff on canals - - /* Sprites for road */ - SPR_ROAD_Y = 1332, - SPR_ROAD_X = 1333, - SPR_ROAD_Y_SNOW = 1351, - SPR_ROAD_X_SNOW = 1352, - - SPR_EXCAVATION_X = 1414, - SPR_EXCAVATION_Y = 1415, - - /* Landscape sprites */ - SPR_FLAT_BARE_LAND = 3924, - SPR_FLAT_1_THIRD_GRASS_TILE = 3943, - SPR_FLAT_2_THIRD_GRASS_TILE = 3962, - SPR_FLAT_GRASS_TILE = 3981, - SPR_FLAT_ROUGH_LAND = 4000, - SPR_FLAT_ROUGH_LAND_1 = 4019, - SPR_FLAT_ROUGH_LAND_2 = 4020, - SPR_FLAT_ROUGH_LAND_3 = 4021, - SPR_FLAT_ROUGH_LAND_4 = 4022, - SPR_FLAT_ROCKY_LAND_1 = 4023, - SPR_FLAT_ROCKY_LAND_2 = 4042, - SPR_FLAT_WATER_TILE = 4061, - SPR_FLAT_1_QUART_SNOW_DESERT_TILE = 4493, - SPR_FLAT_2_QUART_SNOW_DESERT_TILE = 4512, - SPR_FLAT_3_QUART_SNOW_DESERT_TILE = 4531, - SPR_FLAT_SNOW_DESERT_TILE = 4550, - - /* Hedge, Farmland-fence sprites */ - SPR_HEDGE_BUSHES = 4090, - SPR_HEDGE_BUSHES_WITH_GATE = 4096, - SPR_HEDGE_FENCE = 4102, - SPR_HEDGE_BLOOMBUSH_YELLOW = 4108, - SPR_HEDGE_BLOOMBUSH_RED = 4114, - SPR_HEDGE_STONE = 4120, - - /* Farmland sprites, only flat tiles listed, various stages */ - SPR_FARMLAND_BARE = 4126, - SPR_FARMLAND_STATE_1 = 4145, - SPR_FARMLAND_STATE_2 = 4164, - SPR_FARMLAND_STATE_3 = 4183, - SPR_FARMLAND_STATE_4 = 4202, - SPR_FARMLAND_STATE_5 = 4221, - SPR_FARMLAND_STATE_6 = 4240, - SPR_FARMLAND_STATE_7 = 4259, - SPR_FARMLAND_HAYPACKS = 4278, - - /* Water-related sprites */ - SPR_SHIP_DEPOT_SE_FRONT = 4070, - SPR_SHIP_DEPOT_SW_FRONT = 4071, - SPR_SHIP_DEPOT_NW = 4072, - SPR_SHIP_DEPOT_NE = 4073, - SPR_SHIP_DEPOT_SE_REAR = 4074, - SPR_SHIP_DEPOT_SW_REAR = 4075, - /* here come sloped water sprites */ - SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 0, // Water flowing negative Y direction - SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 1, // positive X - SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 2, // negative X - SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 3, // positive Y - /* sprites for the shiplifts - * there are 4 kinds of shiplifts, each of them is 3 tiles long. - * the four kinds are running in the X and Y direction and - * are "lowering" either in the "+" or the "-" direction. - * the three tiles are the center tile (where the slope is) - * and a bottom and a top tile */ - SPR_SHIPLIFT_BASE = SPR_CANALS_BASE + 4, - SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 4, - SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 5, - SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 6, - SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 7, - SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 8, - SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 9, - SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 10, - SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 11, - SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 12, - SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 13, - SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 14, - SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 15, - SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 16, - SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 17, - SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 18, - SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 19, - SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 20, - SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 21, - SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 22, - SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 23, - SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 24, - SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 25, - SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 26, - SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 27, - SPR_CANAL_DIKES_BASE = SPR_CANALS_BASE + 52, - - /* Sprites for tunnels and bridges */ - SPR_TUNNEL_ENTRY_REAR_RAIL = 2365, - SPR_TUNNEL_ENTRY_REAR_MONO = 2373, - SPR_TUNNEL_ENTRY_REAR_MAGLEV = 2381, - SPR_TUNNEL_ENTRY_REAR_ROAD = 2389, - - /* Level crossings */ - SPR_CROSSING_OFF_X_RAIL = 1370, - SPR_CROSSING_OFF_X_MONO = 1382, - SPR_CROSSING_OFF_X_MAGLEV = 1394, - - /* bridge type sprites */ - SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 14, - - /* Wooden bridge (type 0) */ - SPR_BTWDN_RAIL_Y_REAR = 2545, - SPR_BTWDN_RAIL_X_REAR = 2546, - SPR_BTWDN_ROAD_Y_REAR = 2547, - SPR_BTWDN_ROAD_X_REAR = 2548, - SPR_BTWDN_Y_FRONT = 2549, - SPR_BTWDN_X_FRONT = 2550, - SPR_BTWDN_Y_PILLAR = 2551, - SPR_BTWDN_X_PILLAR = 2552, - SPR_BTWDN_MONO_Y_REAR = 4360, - SPR_BTWDN_MONO_X_REAR = 4361, - SPR_BTWDN_MGLV_Y_REAR = 4400, - SPR_BTWDN_MGLV_X_REAR = 4401, - /* ramps */ - SPR_BTWDN_ROAD_RAMP_Y_DOWN = 2529, - SPR_BTWDN_ROAD_RAMP_X_DOWN = 2530, - SPR_BTWDN_ROAD_RAMP_X_UP = 2531, // for some weird reason the order is swapped - SPR_BTWDN_ROAD_RAMP_Y_UP = 2532, // between X and Y. - SPR_BTWDN_ROAD_Y_SLOPE_UP = 2533, - SPR_BTWDN_ROAD_X_SLOPE_UP = 2534, - SPR_BTWDN_ROAD_Y_SLOPE_DOWN = 2535, - SPR_BTWDN_ROAD_X_SLOPE_DOWN = 2536, - SPR_BTWDN_RAIL_RAMP_Y_DOWN = 2537, - SPR_BTWDN_RAIL_RAMP_X_DOWN = 2538, - SPR_BTWDN_RAIL_RAMP_X_UP = 2539, // for some weird reason the order is swapped - SPR_BTWDN_RAIL_RAMP_Y_UP = 2540, // between X and Y. - SPR_BTWDN_RAIL_Y_SLOPE_UP = 2541, - SPR_BTWDN_RAIL_X_SLOPE_UP = 2542, - SPR_BTWDN_RAIL_Y_SLOPE_DOWN = 2543, - SPR_BTWDN_RAIL_X_SLOPE_DOWN = 2544, - SPR_BTWDN_MONO_RAMP_Y_DOWN = 4352, - SPR_BTWDN_MONO_RAMP_X_DOWN = 4353, - SPR_BTWDN_MONO_RAMP_X_UP = 4354, // for some weird reason the order is swapped - SPR_BTWDN_MONO_RAMP_Y_UP = 4355, // between X and Y. - SPR_BTWDN_MONO_Y_SLOPE_UP = 4356, - SPR_BTWDN_MONO_X_SLOPE_UP = 4357, - SPR_BTWDN_MONO_Y_SLOPE_DOWN = 4358, - SPR_BTWDN_MONO_X_SLOPE_DOWN = 4359, - SPR_BTWDN_MGLV_RAMP_Y_DOWN = 4392, - SPR_BTWDN_MGLV_RAMP_X_DOWN = 4393, - SPR_BTWDN_MGLV_RAMP_X_UP = 4394, // for some weird reason the order is swapped - SPR_BTWDN_MGLV_RAMP_Y_UP = 4395, // between X and Y. - SPR_BTWDN_MGLV_Y_SLOPE_UP = 4396, - SPR_BTWDN_MGLV_X_SLOPE_UP = 4397, - SPR_BTWDN_MGLV_Y_SLOPE_DOWN = 4398, - SPR_BTWDN_MGLV_X_SLOPE_DOWN = 4399, - - /* Steel Girder with arches - * BTSGA == Bridge Type Steel Girder Arched - * This is bridge type number 2 */ - SPR_BTSGA_RAIL_X_REAR = 2499, - SPR_BTSGA_RAIL_Y_REAR = 2500, - SPR_BTSGA_ROAD_X_REAR = 2501, - SPR_BTSGA_ROAD_Y_REAR = 2502, - SPR_BTSGA_X_FRONT = 2503, - SPR_BTSGA_Y_FRONT = 2504, - SPR_BTSGA_X_PILLAR = 2505, - SPR_BTSGA_Y_PILLAR = 2506, - SPR_BTSGA_MONO_X_REAR = 4324, - SPR_BTSGA_MONO_Y_REAR = 4325, - SPR_BTSGA_MGLV_X_REAR = 4364, - SPR_BTSGA_MGLV_Y_REAR = 4365, - - /* BTSUS == Suspension bridge - * TILE_* denotes the different tiles a suspension bridge - * can have - * TILE_A and TILE_B are the "beginnings" and "ends" of the - * suspension system. they have small rectangluar endcaps - * TILE_C and TILE_D look almost identical to TILE_A and - * TILE_B, but they do not have the "endcaps". They form the - * middle part - * TILE_E is a condensed configuration of two pillars. while they - * are usually 2 pillars apart, they only have 1 pillar separation - * here - * TILE_F is an extended configuration of pillars. they are - * plugged in when pillars should be 3 tiles apart - */ - SPR_BTSUS_ROAD_Y_REAR_TILE_A = 2453, - SPR_BTSUS_ROAD_Y_REAR_TILE_B = 2454, - SPR_BTSUS_Y_FRONT_TILE_A = 2455, - SPR_BTSUS_Y_FRONT_TILE_B = 2456, - SPR_BTSUS_ROAD_Y_REAR_TILE_D = 2457, - SPR_BTSUS_ROAD_Y_REAR_TILE_C = 2458, - SPR_BTSUS_Y_FRONT_TILE_D = 2459, - SPR_BTSUS_Y_FRONT_TILE_C = 2460, - SPR_BTSUS_ROAD_X_REAR_TILE_A = 2461, - SPR_BTSUS_ROAD_X_REAR_TILE_B = 2462, - SPR_BTSUS_X_FRONT_TILE_A = 2463, - SPR_BTSUS_X_FRONT_TILE_B = 2464, - SPR_BTSUS_ROAD_X_REAR_TILE_D = 2465, - SPR_BTSUS_ROAD_X_REAR_TILE_C = 2466, - SPR_BTSUS_X_FRONT_TILE_D = 2467, - SPR_BTSUS_X_FRONT_TILE_C = 2468, - SPR_BTSUS_RAIL_Y_REAR_TILE_A = 2469, - SPR_BTSUS_RAIL_Y_REAR_TILE_B = 2470, - SPR_BTSUS_RAIL_Y_REAR_TILE_D = 2471, - SPR_BTSUS_RAIL_Y_REAR_TILE_C = 2472, - SPR_BTSUS_RAIL_X_REAR_TILE_A = 2473, - SPR_BTSUS_RAIL_X_REAR_TILE_B = 2474, - SPR_BTSUS_RAIL_X_REAR_TILE_D = 2475, - SPR_BTSUS_RAIL_X_REAR_TILE_C = 2476, - SPR_BTSUS_Y_PILLAR_TILE_A = 2477, - SPR_BTSUS_Y_PILLAR_TILE_B = 2478, - SPR_BTSUS_Y_PILLAR_TILE_D = 2479, - SPR_BTSUS_Y_PILLAR_TILE_C = 2480, - SPR_BTSUS_X_PILLAR_TILE_A = 2481, - SPR_BTSUS_X_PILLAR_TILE_B = 2482, - SPR_BTSUS_X_PILLAR_TILE_D = 2483, - SPR_BTSUS_X_PILLAR_TILE_C = 2484, - SPR_BTSUS_RAIL_Y_REAR_TILE_E = 2485, - SPR_BTSUS_RAIL_X_REAR_TILE_E = 2486, - SPR_BTSUS_ROAD_Y_REAR_TILE_E = 2487, - SPR_BTSUS_ROAD_X_REAR_TILE_E = 2488, - SPR_BTSUS_Y_FRONT_TILE_E = 2489, - SPR_BTSUS_X_FRONT_TILE_E = 2490, - SPR_BTSUS_Y_PILLAR_TILE_E = 2491, - SPR_BTSUS_X_PILLAR_TILE_E = 2492, - SPR_BTSUS_RAIL_X_REAR_TILE_F = 2493, - SPR_BTSUS_RAIL_Y_REAR_TILE_F = 2494, - SPR_BTSUS_ROAD_X_REAR_TILE_F = 2495, - SPR_BTSUS_ROAD_Y_REAR_TILE_F = 2496, - SPR_BTSUS_X_FRONT = 2497, - SPR_BTSUS_Y_FRONT = 2498, - SPR_BTSUS_MONO_Y_REAR_TILE_A = 4334, - SPR_BTSUS_MONO_Y_REAR_TILE_B = 4335, - SPR_BTSUS_MONO_Y_REAR_TILE_D = 4336, - SPR_BTSUS_MONO_Y_REAR_TILE_C = 4337, - SPR_BTSUS_MONO_X_REAR_TILE_A = 4338, - SPR_BTSUS_MONO_X_REAR_TILE_B = 4339, - SPR_BTSUS_MONO_X_REAR_TILE_D = 4340, - SPR_BTSUS_MONO_X_REAR_TILE_C = 4341, - SPR_BTSUS_MONO_Y_REAR_TILE_E = 4342, - SPR_BTSUS_MONO_X_REAR_TILE_E = 4343, - SPR_BTSUS_MONO_X_REAR_TILE_F = 4344, - SPR_BTSUS_MONO_Y_REAR_TILE_F = 4345, - SPR_BTSUS_MGLV_Y_REAR_TILE_A = 4374, - SPR_BTSUS_MGLV_Y_REAR_TILE_B = 4375, - SPR_BTSUS_MGLV_Y_REAR_TILE_D = 4376, - SPR_BTSUS_MGLV_Y_REAR_TILE_C = 4377, - SPR_BTSUS_MGLV_X_REAR_TILE_A = 4378, - SPR_BTSUS_MGLV_X_REAR_TILE_B = 4379, - SPR_BTSUS_MGLV_X_REAR_TILE_D = 4380, - SPR_BTSUS_MGLV_X_REAR_TILE_C = 4381, - SPR_BTSUS_MGLV_Y_REAR_TILE_E = 4382, - SPR_BTSUS_MGLV_X_REAR_TILE_E = 4383, - SPR_BTSUS_MGLV_X_REAR_TILE_F = 4384, - SPR_BTSUS_MGLV_Y_REAR_TILE_F = 4385, - - /* cantilever bridges - * They have three different kinds of tiles: - * END(ing), MID(dle), BEG(ginning) */ - SPR_BTCAN_RAIL_X_BEG = 2507, - SPR_BTCAN_RAIL_X_MID = 2508, - SPR_BTCAN_RAIL_X_END = 2509, - SPR_BTCAN_RAIL_Y_END = 2510, - SPR_BTCAN_RAIL_Y_MID = 2511, - SPR_BTCAN_RAIL_Y_BEG = 2512, - SPR_BTCAN_ROAD_X_BEG = 2513, - SPR_BTCAN_ROAD_X_MID = 2514, - SPR_BTCAN_ROAD_X_END = 2515, - SPR_BTCAN_ROAD_Y_END = 2516, - SPR_BTCAN_ROAD_Y_MID = 2517, - SPR_BTCAN_ROAD_Y_BEG = 2518, - SPR_BTCAN_X_FRONT_BEG = 2519, - SPR_BTCAN_X_FRONT_MID = 2520, - SPR_BTCAN_X_FRONT_END = 2521, - SPR_BTCAN_Y_FRONT_END = 2522, - SPR_BTCAN_Y_FRONT_MID = 2523, - SPR_BTCAN_Y_FRONT_BEG = 2524, - SPR_BTCAN_X_PILLAR_BEG = 2525, - SPR_BTCAN_X_PILLAR_MID = 2526, - SPR_BTCAN_Y_PILLAR_MID = 2527, - SPR_BTCAN_Y_PILLAR_BEG = 2528, - SPR_BTCAN_MONO_X_BEG = 4346, - SPR_BTCAN_MONO_X_MID = 4347, - SPR_BTCAN_MONO_X_END = 4348, - SPR_BTCAN_MONO_Y_END = 4349, - SPR_BTCAN_MONO_Y_MID = 4350, - SPR_BTCAN_MONO_Y_BEG = 4351, - SPR_BTCAN_MGLV_X_BEG = 4386, - SPR_BTCAN_MGLV_X_MID = 4387, - SPR_BTCAN_MGLV_X_END = 4388, - SPR_BTCAN_MGLV_Y_END = 4389, - SPR_BTCAN_MGLV_Y_MID = 4390, - SPR_BTCAN_MGLV_Y_BEG = 4391, - - /* little concrete bridge */ - SPR_BTCON_RAIL_X = 2493, - SPR_BTCON_RAIL_Y = 2494, - SPR_BTCON_ROAD_X = 2495, - SPR_BTCON_ROAD_Y = 2496, - SPR_BTCON_X_FRONT = 2497, - SPR_BTCON_Y_FRONT = 2498, - SPR_BTCON_X_PILLAR = 2505, - SPR_BTCON_Y_PILLAR = 2506, - SPR_BTCON_MONO_X = 4344, - SPR_BTCON_MONO_Y = 4345, - SPR_BTCON_MGLV_X = 4384, - SPR_BTCON_MGLV_Y = 4385, - - /* little steel girder bridge */ - SPR_BTGIR_RAIL_X = 2553, - SPR_BTGIR_RAIL_Y = 2554, - SPR_BTGIR_ROAD_X = 2555, - SPR_BTGIR_ROAD_Y = 2556, - SPR_BTGIR_X_FRONT = 2557, - SPR_BTGIR_Y_FRONT = 2558, - SPR_BTGIR_X_PILLAR = 2505, - SPR_BTGIR_Y_PILLAR = 2506, - SPR_BTGIR_MONO_X = 4362, - SPR_BTGIR_MONO_Y = 4363, - SPR_BTGIR_MGLV_X = 4402, - SPR_BTGIR_MGLV_Y = 4403, - - /* tubular bridges - * tubular bridges have 3 kinds of tiles: - * a start tile (with only half a tube on the far side, marked _BEG - * a middle tile (full tunnel), marked _MID - * and an end tile (half a tube on the near side, maked _END - */ - SPR_BTTUB_X_FRONT_BEG = 2559, - SPR_BTTUB_X_FRONT_MID = 2560, - SPR_BTTUB_X_FRONT_END = 2561, - SPR_BTTUB_Y_FRONT_END = 2562, - SPR_BTTUB_Y_FRONT_MID = 2563, - SPR_BTTUB_Y_FRONT_BEG = 2564, - SPR_BTTUB_X_PILLAR_BEG = 2565, - SPR_BTTUB_X_PILLAR_MID = 2566, - SPR_BTTUB_Y_PILLAR_MID = 2567, - SPR_BTTUB_Y_PILLAR_BEG = 2568, - SPR_BTTUB_X_RAIL_REAR_BEG = 2569, - SPR_BTTUB_X_RAIL_REAR_MID = 2570, - SPR_BTTUB_X_RAIL_REAR_END = 2571, - SPR_BTTUB_Y_RAIL_REAR_BEG = 2572, - SPR_BTTUB_Y_RAIL_REAR_MID = 2573, - SPR_BTTUB_Y_RAIL_REAR_END = 2574, - SPR_BTTUB_X_ROAD_REAR_BEG = 2575, - SPR_BTTUB_X_ROAD_REAR_MID = 2576, - SPR_BTTUB_X_ROAD_REAR_END = 2577, - SPR_BTTUB_Y_ROAD_REAR_BEG = 2578, - SPR_BTTUB_Y_ROAD_REAR_MID = 2579, - SPR_BTTUB_Y_ROAD_REAR_END = 2580, - SPR_BTTUB_X_MONO_REAR_BEG = 2581, - SPR_BTTUB_X_MONO_REAR_MID = 2582, - SPR_BTTUB_X_MONO_REAR_END = 2583, - SPR_BTTUB_Y_MONO_REAR_BEG = 2584, - SPR_BTTUB_Y_MONO_REAR_MID = 2585, - SPR_BTTUB_Y_MONO_REAR_END = 2586, - SPR_BTTUB_X_MGLV_REAR_BEG = 2587, - SPR_BTTUB_X_MGLV_REAR_MID = 2588, - SPR_BTTUB_X_MGLV_REAR_END = 2589, - SPR_BTTUB_Y_MGLV_REAR_BEG = 2590, - SPR_BTTUB_Y_MGLV_REAR_MID = 2591, - SPR_BTTUB_Y_MGLV_REAR_END = 2592, - - - /* ramps (for all bridges except wood and tubular?)*/ - SPR_BTGEN_RAIL_X_SLOPE_DOWN = 2437, - SPR_BTGEN_RAIL_X_SLOPE_UP = 2438, - SPR_BTGEN_RAIL_Y_SLOPE_DOWN = 2439, - SPR_BTGEN_RAIL_Y_SLOPE_UP = 2440, - SPR_BTGEN_RAIL_RAMP_X_UP = 2441, - SPR_BTGEN_RAIL_RAMP_X_DOWN = 2442, - SPR_BTGEN_RAIL_RAMP_Y_UP = 2443, - SPR_BTGEN_RAIL_RAMP_Y_DOWN = 2444, - SPR_BTGEN_ROAD_X_SLOPE_DOWN = 2445, - SPR_BTGEN_ROAD_X_SLOPE_UP = 2446, - SPR_BTGEN_ROAD_Y_SLOPE_DOWN = 2447, - SPR_BTGEN_ROAD_Y_SLOPE_UP = 2448, - SPR_BTGEN_ROAD_RAMP_X_UP = 2449, - SPR_BTGEN_ROAD_RAMP_X_DOWN = 2450, - SPR_BTGEN_ROAD_RAMP_Y_UP = 2451, - SPR_BTGEN_ROAD_RAMP_Y_DOWN = 2452, - SPR_BTGEN_MONO_X_SLOPE_DOWN = 4326, - SPR_BTGEN_MONO_X_SLOPE_UP = 4327, - SPR_BTGEN_MONO_Y_SLOPE_DOWN = 4328, - SPR_BTGEN_MONO_Y_SLOPE_UP = 4329, - SPR_BTGEN_MONO_RAMP_X_UP = 4330, - SPR_BTGEN_MONO_RAMP_X_DOWN = 4331, - SPR_BTGEN_MONO_RAMP_Y_UP = 4332, - SPR_BTGEN_MONO_RAMP_Y_DOWN = 4333, - SPR_BTGEN_MGLV_X_SLOPE_DOWN = 4366, - SPR_BTGEN_MGLV_X_SLOPE_UP = 4367, - SPR_BTGEN_MGLV_Y_SLOPE_DOWN = 4368, - SPR_BTGEN_MGLV_Y_SLOPE_UP = 4369, - SPR_BTGEN_MGLV_RAMP_X_UP = 4370, - SPR_BTGEN_MGLV_RAMP_X_DOWN = 4371, - SPR_BTGEN_MGLV_RAMP_Y_UP = 4372, - SPR_BTGEN_MGLV_RAMP_Y_DOWN = 4373, - - /* Vehicle view sprites */ - SPR_CENTRE_VIEW_VEHICLE = 683, - SPR_SEND_TRAIN_TODEPOT = 685, - SPR_SEND_ROADVEH_TODEPOT = 686, - SPR_SEND_AIRCRAFT_TODEPOT = 687, - SPR_SEND_SHIP_TODEPOT = 688, - - SPR_IGNORE_SIGNALS = 689, - SPR_SHOW_ORDERS = 690, - SPR_SHOW_VEHICLE_DETAILS = 691, - SPR_REFIT_VEHICLE = 692, - SPR_FORCE_VEHICLE_TURN = 715, - - /* Vehicle sprite-flags (red/green) */ - SPR_FLAG_VEH_STOPPED = 3090, - SPR_FLAG_VEH_RUNNING = 3091, - - SPR_VEH_BUS_SW_VIEW = 3097, - SPR_VEH_BUS_SIDE_VIEW = 3098, - - /* Rotor sprite numbers */ - SPR_ROTOR_STOPPED = 3901, - SPR_ROTOR_MOVING_1 = 3902, - SPR_ROTOR_MOVING_3 = 3904, - - /* Town/house sprites */ - SPR_LIFT = 1443, - - /* used in town_land.h - * CNST1..3 = Those are the different stages of construction - * The last 2 hexas correspond to the type of building it represent, if any */ - SPR_CNST1_TALLOFFICE_00 = 1421, - SPR_CNST2_TALLOFFICE_00 = 1422, - SPR_CNST3_TALLOFFICE_00 = 1423, - SPR_GROUND_TALLOFFICE_00 = 1424, - SPR_BUILD_TALLOFFICE_00 = 1425, // temperate - SPR_CNST1_OFFICE_01 = 1426, - SPR_CNST2_OFFICE_01 = 1427, - SPR_BUILD_OFFICE_01 = 1428, // temperate - SPR_GROUND_OFFICE_01 = 1429, - SPR_CNST1_SMLBLCKFLATS_02 = 1430, // Small Block of Flats - SPR_CNST2_SMLBLCKFLATS_02 = 1431, - SPR_BUILD_SMLBLCKFLATS_02 = 1432, // temperate - SPR_GROUND_SMLBLCKFLATS_02 = 1433, - SPR_CNST1_TEMPCHURCH = 1434, - SPR_CNST2_TEMPCHURCH = 1435, - SPR_BUILD_TEMPCHURCH = 1436, - SPR_GROUND_TEMPCHURCH = 1437, - SPR_CNST1_LARGEOFFICE_04 = 1440, - SPR_CNST2_LARGEOFFICE_04 = 1441, - SPR_BUILD_LARGEOFFICE_04 = 1442, // temperate, sub-arctic, subtropical - SPR_BUILD_LARGEOFFICE_04_SNOW = 4569, // same, with snow - /* These are in fact two houses for the same houseID. so V1 and V2 */ - SPR_CNST1_TOWNHOUSE_06_V1 = 1444, - SPR_CNST2_TOWNHOUSE_06_V1 = 1445, - SPR_BUILD_TOWNHOUSE_06_V1 = 1446, // 1st variation - SPR_GRND_TOWNHOUSE_06_V1 = 1447, - SPR_CNST1_TOWNHOUSE_06_V2 = 1501, // used as ground, but is stage1 - SPR_CNST1_TOWNHOUSE_06_V2_P = 1502, // pipes extensions for previous - SPR_CNST2_TOWNHOUSE_06_V2_G = 1503, // Ground of cnst stage 2 - SPR_CNST2_TOWNHOUSE_06_V2 = 1504, // real cnst stage 2 - SPR_GRND_TOWNHOUSE_06_V2 = 1505, - SPR_BUILD_TOWNHOUSE_06_V2 = 1506, // 2nd variation - SPR_CNST1_HOTEL_07_NW = 1448, - SPR_CNST2_HOTEL_07_NW = 1449, - SPR_BUILD_HOTEL_07_NW = 1450, - SPR_CNST1_HOTEL_07_SE = 1451, - SPR_CNST2_HOTEL_07_SE = 1452, - SPR_BUILD_HOTEL_07_SE = 1453, - SPR_STATUE_HORSERIDER_09 = 1454, - SPR_FOUNTAIN_0A = 1455, - SPR_PARKSTATUE_0B = 1456, - SPR_PARKALLEY_0C = 1457, - SPR_CNST1_OFFICE_0D = 1458, - SPR_CNST2_OFFICE_0D = 1459, - SPR_BUILD_OFFICE_0D = 1460, - SPR_CNST1_SHOPOFFICE_0E = 1461, - SPR_CNST2_SHOPOFFICE_0E = 1462, - SPR_BUILD_SHOPOFFICE_0E = 1463, - SPR_CNST1_SHOPOFFICE_0F = 1464, - SPR_CNST2_SHOPOFFICE_0F = 1465, - SPR_BUILD_SHOPOFFICE_0F = 1466, - - /* Easter egg/disaster sprites */ - SPR_BLIMP = 3905, // Zeppelin - SPR_BLIMP_CRASHING = 3906, - SPR_BLIMP_CRASHED = 3907, - SPR_UFO_SMALL_SCOUT = 3908, // XCOM - UFO Defense - SPR_UFO_SMALL_SCOUT_DARKER = 3909, - SPR_SUB_SMALL_NE = 3910, // Silent Service - SPR_SUB_SMALL_SE = 3911, - SPR_SUB_SMALL_SW = 3912, - SPR_SUB_SMALL_NW = 3913, - SPR_SUB_LARGE_NE = 3914, - SPR_SUB_LARGE_SE = 3915, - SPR_SUB_LARGE_SW = 3916, - SPR_SUB_LARGE_NW = 3917, - SPR_F_15 = 3918, // F-15 Strike Eagle - SPR_F_15_FIRING = 3919, - SPR_UFO_HARVESTER = 3920, // XCOM - UFO Defense - SPR_XCOM_SKYRANGER = 3921, - SPR_AH_64A = 3922, // Gunship - SPR_AH_64A_FIRING = 3923, - - /* main_gui.c */ - SPR_IMG_TERRAFORM_UP = 694, - SPR_IMG_TERRAFORM_DOWN = 695, - SPR_IMG_DYNAMITE = 703, - SPR_IMG_ROCKS = 4084, - SPR_IMG_LIGHTHOUSE_DESERT = 4085, // XXX - is Desert image on the desert-climate - SPR_IMG_TRANSMITTER = 4086, - SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 91, - SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 88, - SPR_IMG_BUILD_RIVER = SPR_OPENTTD_BASE + 136, - SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 64, - SPR_IMG_PAUSE = 726, - SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 90, - SPR_IMG_SETTINGS = 751, - SPR_IMG_SAVE = 724, - SPR_IMG_SMALLMAP = 708, - SPR_IMG_TOWN = 4077, - SPR_IMG_SUBSIDIES = 679, - SPR_IMG_COMPANY_LIST = 1299, - SPR_IMG_COMPANY_FINANCE = 737, - SPR_IMG_COMPANY_GENERAL = 743, - SPR_IMG_GRAPHS = 745, - SPR_IMG_COMPANY_LEAGUE = 684, - SPR_IMG_SHOW_COUNTOURS = 738, - SPR_IMG_SHOW_VEHICLES = 739, - SPR_IMG_SHOW_ROUTES = 740, - SPR_IMG_INDUSTRY = 741, - SPR_IMG_PLANTTREES = 742, - SPR_IMG_TRAINLIST = 731, - SPR_IMG_TRUCKLIST = 732, - SPR_IMG_SHIPLIST = 733, - SPR_IMG_AIRPLANESLIST = 734, - SPR_IMG_ZOOMIN = 735, - SPR_IMG_ZOOMOUT = 736, - SPR_IMG_BUILDRAIL = 727, - SPR_IMG_BUILDROAD = 728, - SPR_IMG_BUILDWATER = 729, - SPR_IMG_BUILDAIR = 730, - SPR_IMG_LANDSCAPING = 4083, - SPR_IMG_MUSIC = 713, - SPR_IMG_MESSAGES = 680, - SPR_IMG_QUERY = 723, - SPR_IMG_SIGN = 4082, - SPR_IMG_BUY_LAND = 4791, - - /* OPEN TRANSPORT TYCOON in gamescreen */ - SPR_OTTD_O = 4842, - SPR_OTTD_P = 4841, - SPR_OTTD_E = SPR_OPENTTD_BASE + 12, - SPR_OTTD_D = SPR_OPENTTD_BASE + 13, - SPR_OTTD_N = 4839, - SPR_OTTD_T = 4836, - SPR_OTTD_R = 4837, - SPR_OTTD_A = 4838, - SPR_OTTD_S = 4840, - SPR_OTTD_Y = 4843, - SPR_OTTD_C = 4844, - - SPR_HIGHSCORE_CHART_BEGIN = 4804, - SPR_TYCOON_IMG1_BEGIN = 4814, - SPR_TYCOON_IMG2_BEGIN = 4824, - - /* Industry sprites */ - SPR_IT_SUGAR_MINE_SIEVE = 4775, - SPR_IT_SUGAR_MINE_CLOUDS = 4784, - SPR_IT_SUGAR_MINE_PILE = 4780, - SPR_IT_TOFFEE_QUARRY_TOFFEE = 4766, - SPR_IT_TOFFEE_QUARRY_SHOVEL = 4767, - SPR_IT_BUBBLE_GENERATOR_SPRING = 4746, - SPR_IT_BUBBLE_GENERATOR_BUBBLE = 4747, - SPR_IT_TOY_FACTORY_STAMP_HOLDER = 4717, - SPR_IT_TOY_FACTORY_STAMP = 4718, - SPR_IT_TOY_FACTORY_CLAY = 4719, - SPR_IT_TOY_FACTORY_ROBOT = 4720, - SPR_IT_POWER_PLANT_TRANSFORMERS = 2054, - - /* small icons of cargo available in station waiting*/ - SPR_CARGO_PASSENGER = 4297, - SPR_CARGO_COAL = 4298, - SPR_CARGO_MAIL = 4299, - SPR_CARGO_OIL = 4300, - SPR_CARGO_LIVESTOCK = 4301, - SPR_CARGO_GOODS = 4302, - SPR_CARGO_GRAIN = 4303, - SPR_CARGO_WOOD = 4304, - SPR_CARGO_IRON_ORE = 4305, - SPR_CARGO_STEEL = 4306, - SPR_CARGO_VALUES_GOLD = 4307, // shared between temperate and arctic - SPR_CARGO_FRUIT = 4308, - SPR_CARGO_COPPER_ORE = 4309, - SPR_CARGO_WATERCOLA = 4310, // shared between desert and toyland - SPR_CARGO_DIAMONDS = 4311, - SPR_CARGO_FOOD = 4312, - SPR_CARGO_PAPER = 4313, - SPR_CARGO_RUBBER = 4314, - SPR_CARGO_CANDY = 4315, - SPR_CARGO_SUGAR = 4316, - SPR_CARGO_TOYS = 4317, - SPR_CARGO_COTTONCANDY = 4318, - SPR_CARGO_FIZZYDRINK = 4319, - SPR_CARGO_TOFFEE = 4320, - SPR_CARGO_BUBBLES = 4321, - SPR_CARGO_PLASTIC = 4322, - SPR_CARGO_BATTERIES = 4323, - - /* Effect vehicles */ - SPR_BULLDOZER_NE = 1416, - SPR_BULLDOZER_SE = 1417, - SPR_BULLDOZER_SW = 1418, - SPR_BULLDOZER_NW = 1419, - - SPR_SMOKE_0 = 2040, - SPR_SMOKE_1 = 2041, - SPR_SMOKE_2 = 2042, - SPR_SMOKE_3 = 2043, - SPR_SMOKE_4 = 2044, - - SPR_DIESEL_SMOKE_0 = 3073, - SPR_DIESEL_SMOKE_1 = 3074, - SPR_DIESEL_SMOKE_2 = 3075, - SPR_DIESEL_SMOKE_3 = 3076, - SPR_DIESEL_SMOKE_4 = 3077, - SPR_DIESEL_SMOKE_5 = 3078, - - SPR_STEAM_SMOKE_0 = 3079, - SPR_STEAM_SMOKE_1 = 3080, - SPR_STEAM_SMOKE_2 = 3081, - SPR_STEAM_SMOKE_3 = 3082, - SPR_STEAM_SMOKE_4 = 3083, - - SPR_ELECTRIC_SPARK_0 = 3084, - SPR_ELECTRIC_SPARK_1 = 3085, - SPR_ELECTRIC_SPARK_2 = 3086, - SPR_ELECTRIC_SPARK_3 = 3087, - SPR_ELECTRIC_SPARK_4 = 3088, - SPR_ELECTRIC_SPARK_5 = 3089, - - SPR_CHIMNEY_SMOKE_0 = 3701, - SPR_CHIMNEY_SMOKE_1 = 3702, - SPR_CHIMNEY_SMOKE_2 = 3703, - SPR_CHIMNEY_SMOKE_3 = 3704, - SPR_CHIMNEY_SMOKE_4 = 3705, - SPR_CHIMNEY_SMOKE_5 = 3706, - SPR_CHIMNEY_SMOKE_6 = 3707, - SPR_CHIMNEY_SMOKE_7 = 3708, - - SPR_EXPLOSION_LARGE_0 = 3709, - SPR_EXPLOSION_LARGE_1 = 3710, - SPR_EXPLOSION_LARGE_2 = 3711, - SPR_EXPLOSION_LARGE_3 = 3712, - SPR_EXPLOSION_LARGE_4 = 3713, - SPR_EXPLOSION_LARGE_5 = 3714, - SPR_EXPLOSION_LARGE_6 = 3715, - SPR_EXPLOSION_LARGE_7 = 3716, - SPR_EXPLOSION_LARGE_8 = 3717, - SPR_EXPLOSION_LARGE_9 = 3718, - SPR_EXPLOSION_LARGE_A = 3719, - SPR_EXPLOSION_LARGE_B = 3720, - SPR_EXPLOSION_LARGE_C = 3721, - SPR_EXPLOSION_LARGE_D = 3722, - SPR_EXPLOSION_LARGE_E = 3723, - SPR_EXPLOSION_LARGE_F = 3724, - - SPR_EXPLOSION_SMALL_0 = 3725, - SPR_EXPLOSION_SMALL_1 = 3726, - SPR_EXPLOSION_SMALL_2 = 3727, - SPR_EXPLOSION_SMALL_3 = 3728, - SPR_EXPLOSION_SMALL_4 = 3729, - SPR_EXPLOSION_SMALL_5 = 3730, - SPR_EXPLOSION_SMALL_6 = 3731, - SPR_EXPLOSION_SMALL_7 = 3732, - SPR_EXPLOSION_SMALL_8 = 3733, - SPR_EXPLOSION_SMALL_9 = 3734, - SPR_EXPLOSION_SMALL_A = 3735, - SPR_EXPLOSION_SMALL_B = 3736, - - SPR_BREAKDOWN_SMOKE_0 = 3737, - SPR_BREAKDOWN_SMOKE_1 = 3738, - SPR_BREAKDOWN_SMOKE_2 = 3739, - SPR_BREAKDOWN_SMOKE_3 = 3740, - - SPR_BUBBLE_0 = 4748, - SPR_BUBBLE_1 = 4749, - SPR_BUBBLE_2 = 4750, - SPR_BUBBLE_GENERATE_0 = 4751, - SPR_BUBBLE_GENERATE_1 = 4752, - SPR_BUBBLE_GENERATE_2 = 4753, - SPR_BUBBLE_GENERATE_3 = 4754, - SPR_BUBBLE_BURST_0 = 4755, - SPR_BUBBLE_BURST_1 = 4756, - SPR_BUBBLE_BURST_2 = 4757, - SPR_BUBBLE_ABSORB_0 = 4758, - SPR_BUBBLE_ABSORB_1 = 4759, - SPR_BUBBLE_ABSORB_2 = 4760, - SPR_BUBBLE_ABSORB_3 = 4761, - SPR_BUBBLE_ABSORB_4 = 4762, - - /* Electrified rail build menu */ - SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 36, - SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 37, - SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 38, - SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 39, - SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 44, - - /* airport_gui.c */ - SPR_IMG_AIRPORT = 744, - - /* dock_gui.c */ - SPR_IMG_SHIP_DEPOT = 748, - SPR_IMG_SHIP_DOCK = 746, - SPR_IMG_BOUY = 693, - SPR_IMG_AQUEDUCT = SPR_OPENTTD_BASE + 145, - - /* music_gui.c */ - SPR_IMG_SKIP_TO_PREV = 709, - SPR_IMG_SKIP_TO_NEXT = 710, - SPR_IMG_STOP_MUSIC = 711, - SPR_IMG_PLAY_MUSIC = 712, - - /* road_gui.c */ - SPR_IMG_ROAD_Y_DIR = 1309, - SPR_IMG_ROAD_X_DIR = 1310, - SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 82, - SPR_IMG_ROAD_DEPOT = 1295, - SPR_IMG_BUS_STATION = 749, - SPR_IMG_TRUCK_BAY = 750, - SPR_IMG_BRIDGE = 2594, - SPR_IMG_ROAD_TUNNEL = 2429, - SPR_IMG_REMOVE = 714, - SPR_IMG_ROAD_ONE_WAY = SPR_OPENTTD_BASE + 134, - SPR_IMG_TRAMWAY_Y_DIR = SPR_TRAMWAY_BASE + 0, - SPR_IMG_TRAMWAY_X_DIR = SPR_TRAMWAY_BASE + 1, - SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 84, - - /* rail_gui.c */ - SPR_IMG_RAIL_NS = 1251, - SPR_IMG_RAIL_NE = 1252, - SPR_IMG_RAIL_EW = 1253, - SPR_IMG_RAIL_NW = 1254, - SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 53, - SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 57, - SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 63, - SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 69, - - SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 76, - - SPR_IMG_DEPOT_RAIL = 1294, - SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 61, - SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 67, - SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 73, - - SPR_IMG_RAIL_STATION = 1298, - SPR_IMG_RAIL_SIGNALS = 1291, - - SPR_IMG_SIGNAL_ELECTRIC_NORM = 1287, - SPR_IMG_SIGNAL_ELECTRIC_ENTRY = SPR_SIGNALS_BASE + 12, - SPR_IMG_SIGNAL_ELECTRIC_EXIT = SPR_SIGNALS_BASE + 28, - SPR_IMG_SIGNAL_ELECTRIC_COMBO = SPR_SIGNALS_BASE + 44, - SPR_IMG_SIGNAL_ELECTRIC_PBS = SPR_SIGNALS_BASE + 124, - SPR_IMG_SIGNAL_ELECTRIC_PBS_OWAY = SPR_SIGNALS_BASE + 140, - SPR_IMG_SIGNAL_SEMAPHORE_NORM = SPR_SIGNALS_BASE + 60, - SPR_IMG_SIGNAL_SEMAPHORE_ENTRY = SPR_SIGNALS_BASE + 76, - SPR_IMG_SIGNAL_SEMAPHORE_EXIT = SPR_SIGNALS_BASE + 92, - SPR_IMG_SIGNAL_SEMAPHORE_COMBO = SPR_SIGNALS_BASE + 108, - SPR_IMG_SIGNAL_SEMAPHORE_PBS = SPR_SIGNALS_BASE + 188, - SPR_IMG_SIGNAL_SEMAPHORE_PBS_OWAY= SPR_SIGNALS_BASE + 204, - SPR_IMG_SIGNAL_CONVERT = SPR_OPENTTD_BASE + 135, - - SPR_IMG_TUNNEL_RAIL = 2430, - SPR_IMG_TUNNEL_MONO = 2431, - SPR_IMG_TUNNEL_MAGLEV = 2432, - - SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 55, - SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 59, - SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 65, - SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 71, - - /* intro_gui.c, genworld_gui.c */ - SPR_SELECT_TEMPERATE = 4882, - SPR_SELECT_TEMPERATE_PUSHED = 4883, - SPR_SELECT_SUB_ARCTIC = 4884, - SPR_SELECT_SUB_ARCTIC_PUSHED = 4885, - SPR_SELECT_SUB_TROPICAL = 4886, - SPR_SELECT_SUB_TROPICAL_PUSHED = 4887, - SPR_SELECT_TOYLAND = 4888, - SPR_SELECT_TOYLAND_PUSHED = 4889, -}; +static const SpriteID SPR_SELECT_TILE = 752; +static const SpriteID SPR_DOT = 774; // corner marker for lower/raise land +static const SpriteID SPR_DOT_SMALL = 4078; +static const SpriteID SPR_WHITE_POINT = 4079; + +/* ASCII */ +static const SpriteID SPR_ASCII_SPACE = 2; +static const SpriteID SPR_ASCII_SPACE_SMALL = 226; +static const SpriteID SPR_ASCII_SPACE_BIG = 450; + +static const SpriteID SPR_LARGE_SMALL_WINDOW = 682; + +/* Extra graphic spritenumbers */ +static const SpriteID SPR_OPENTTD_BASE = 4896; +static const uint16 OPENTTD_SPRITE_COUNT = 153; + +/* Halftile-selection sprites */ +static const SpriteID SPR_HALFTILE_SELECTION_FLAT = SPR_OPENTTD_BASE; +static const SpriteID SPR_HALFTILE_SELECTION_DOWN = SPR_OPENTTD_BASE + 4; +static const SpriteID SPR_HALFTILE_SELECTION_UP = SPR_OPENTTD_BASE + 8; + +static const SpriteID SPR_SQUARE = SPR_OPENTTD_BASE + 38; // coloured square (used for newgrf compatibility) +static const SpriteID SPR_BLOT = SPR_OPENTTD_BASE + 39; // coloured circle (mainly used as vehicle profit marker and for server compatibility) +static const SpriteID SPR_LOCK = SPR_OPENTTD_BASE + 40; // lock icon (for password protected servers) +static const SpriteID SPR_BOX_EMPTY = SPR_OPENTTD_BASE + 41; +static const SpriteID SPR_BOX_CHECKED = SPR_OPENTTD_BASE + 42; +static const SpriteID SPR_WARNING_SIGN = SPR_OPENTTD_BASE + 43; // warning sign (shown if there are any newgrf errors) +static const SpriteID SPR_WINDOW_RESIZE_RIGHT= SPR_OPENTTD_BASE + 44; // resize icon to the right +static const SpriteID SPR_WINDOW_RESIZE_LEFT = SPR_OPENTTD_BASE + 149; // resize icon to the left +static const SpriteID SPR_WINDOW_SHADE = SPR_OPENTTD_BASE + 151; // shade the window icon +static const SpriteID SPR_WINDOW_UNSHADE = SPR_OPENTTD_BASE + 152; // unshade the window icon +static const SpriteID SPR_IMG_PLAY_MUSIC_RTL = SPR_OPENTTD_BASE + 150; // play music button, but then for RTL users +/* Arrow icons pointing in all 4 directions */ +static const SpriteID SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 45; +static const SpriteID SPR_ARROW_UP = SPR_OPENTTD_BASE + 46; +static const SpriteID SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 47; +static const SpriteID SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 48; +static const SpriteID SPR_HOUSE_ICON = SPR_OPENTTD_BASE + 49; +static const SpriteID SPR_SHARED_ORDERS_ICON = SPR_OPENTTD_BASE + 50; +static const SpriteID SPR_PIN_UP = SPR_OPENTTD_BASE + 51; // pin icon +static const SpriteID SPR_PIN_DOWN = SPR_OPENTTD_BASE + 52; + +static const SpriteID SPR_CIRCLE_FOLDED = SPR_OPENTTD_BASE + 147; // (+) icon +static const SpriteID SPR_CIRCLE_UNFOLDED = SPR_OPENTTD_BASE + 148; // (-) icon + +/* on screen keyboard icons */ +static const SpriteID SPR_OSK_LEFT = SPR_OPENTTD_BASE + 138; +static const SpriteID SPR_OSK_RIGHT = SPR_OPENTTD_BASE + 139; +static const SpriteID SPR_OSK_CAPS = SPR_OPENTTD_BASE + 140; +static const SpriteID SPR_OSK_SHIFT = SPR_OPENTTD_BASE + 141; +static const SpriteID SPR_OSK_BACKSPACE = SPR_OPENTTD_BASE + 142; +static const SpriteID SPR_OSK_SPECIAL = SPR_OPENTTD_BASE + 143; + +/* Clone vehicles stuff */ +static const SpriteID SPR_CLONE_TRAIN = SPR_OPENTTD_BASE + 106; +static const SpriteID SPR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 107; +static const SpriteID SPR_CLONE_SHIP = SPR_OPENTTD_BASE + 108; +static const SpriteID SPR_CLONE_AIRCRAFT = SPR_OPENTTD_BASE + 109; + +static const SpriteID SPR_SELL_TRAIN = SPR_OPENTTD_BASE + 93; +static const SpriteID SPR_SELL_ROADVEH = SPR_OPENTTD_BASE + 94; +static const SpriteID SPR_SELL_SHIP = SPR_OPENTTD_BASE + 95; +static const SpriteID SPR_SELL_AIRCRAFT = SPR_OPENTTD_BASE + 96; +static const SpriteID SPR_SELL_ALL_TRAIN = SPR_OPENTTD_BASE + 97; +static const SpriteID SPR_SELL_ALL_ROADVEH = SPR_OPENTTD_BASE + 98; +static const SpriteID SPR_SELL_ALL_SHIP = SPR_OPENTTD_BASE + 99; +static const SpriteID SPR_SELL_ALL_AIRCRAFT = SPR_OPENTTD_BASE + 100; +static const SpriteID SPR_REPLACE_TRAIN = SPR_OPENTTD_BASE + 101; +static const SpriteID SPR_REPLACE_ROADVEH = SPR_OPENTTD_BASE + 102; +static const SpriteID SPR_REPLACE_SHIP = SPR_OPENTTD_BASE + 103; +static const SpriteID SPR_REPLACE_AIRCRAFT = SPR_OPENTTD_BASE + 104; +static const SpriteID SPR_SELL_CHAIN_TRAIN = SPR_OPENTTD_BASE + 105; + +static const SpriteID SPR_GROUP_CREATE_TRAIN = SPR_OPENTTD_BASE + 114; +static const SpriteID SPR_GROUP_CREATE_ROADVEH = SPR_OPENTTD_BASE + 115; +static const SpriteID SPR_GROUP_CREATE_SHIP = SPR_OPENTTD_BASE + 116; +static const SpriteID SPR_GROUP_CREATE_AIRCRAFT = SPR_OPENTTD_BASE + 117; +static const SpriteID SPR_GROUP_DELETE_TRAIN = SPR_OPENTTD_BASE + 118; +static const SpriteID SPR_GROUP_DELETE_ROADVEH = SPR_OPENTTD_BASE + 119; +static const SpriteID SPR_GROUP_DELETE_SHIP = SPR_OPENTTD_BASE + 120; +static const SpriteID SPR_GROUP_DELETE_AIRCRAFT = SPR_OPENTTD_BASE + 121; +static const SpriteID SPR_GROUP_RENAME_TRAIN = SPR_OPENTTD_BASE + 122; +static const SpriteID SPR_GROUP_RENAME_ROADVEH = SPR_OPENTTD_BASE + 123; +static const SpriteID SPR_GROUP_RENAME_SHIP = SPR_OPENTTD_BASE + 124; +static const SpriteID SPR_GROUP_RENAME_AIRCRAFT = SPR_OPENTTD_BASE + 125; +static const SpriteID SPR_GROUP_REPLACE_ON_TRAIN = SPR_OPENTTD_BASE + 126; +static const SpriteID SPR_GROUP_REPLACE_ON_ROADVEH = SPR_OPENTTD_BASE + 127; +static const SpriteID SPR_GROUP_REPLACE_ON_SHIP = SPR_OPENTTD_BASE + 128; +static const SpriteID SPR_GROUP_REPLACE_ON_AIRCRAFT = SPR_OPENTTD_BASE + 129; +static const SpriteID SPR_GROUP_REPLACE_OFF_TRAIN = SPR_OPENTTD_BASE + 130; +static const SpriteID SPR_GROUP_REPLACE_OFF_ROADVEH = SPR_OPENTTD_BASE + 131; +static const SpriteID SPR_GROUP_REPLACE_OFF_SHIP = SPR_OPENTTD_BASE + 132; +static const SpriteID SPR_GROUP_REPLACE_OFF_AIRCRAFT = SPR_OPENTTD_BASE + 133; + +static const SpriteID SPR_IMG_SWITCH_TOOLBAR = SPR_OPENTTD_BASE + 144; + +static const SpriteID SPR_SIGNALS_BASE = SPR_OPENTTD_BASE + OPENTTD_SPRITE_COUNT; +static const uint16 PRESIGNAL_SPRITE_COUNT = 48; +static const uint16 PRESIGNAL_AND_SEMAPHORE_SPRITE_COUNT = 112; +static const uint16 PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT = 240; + +static const SpriteID SPR_CANALS_BASE = SPR_SIGNALS_BASE + PRESIGNAL_SEMAPHORE_AND_PBS_SPRITE_COUNT; +static const uint16 CANALS_SPRITE_COUNT = 65; + +/* Sprites for the Aqueduct. */ +static const SpriteID SPR_AQUEDUCT_BASE = SPR_CANALS_BASE + CANALS_SPRITE_COUNT; +static const SpriteID SPR_AQUEDUCT_RAMP_SW = SPR_AQUEDUCT_BASE + 0; +static const SpriteID SPR_AQUEDUCT_RAMP_SE = SPR_AQUEDUCT_BASE + 1; +static const SpriteID SPR_AQUEDUCT_RAMP_NE = SPR_AQUEDUCT_BASE + 2; +static const SpriteID SPR_AQUEDUCT_RAMP_NW = SPR_AQUEDUCT_BASE + 3; +static const SpriteID SPR_AQUEDUCT_MIDDLE_X = SPR_AQUEDUCT_BASE + 4; +static const SpriteID SPR_AQUEDUCT_MIDDLE_Y = SPR_AQUEDUCT_BASE + 5; +static const SpriteID SPR_AQUEDUCT_PILLAR_X = SPR_AQUEDUCT_BASE + 6; +static const SpriteID SPR_AQUEDUCT_PILLAR_Y = SPR_AQUEDUCT_BASE + 7; +static const uint16 AQUEDUCT_SPRITE_COUNT = 8; + +/* Sprites for 'highlighting' tracks on sloped land. */ +static const SpriteID SPR_TRACKS_FOR_SLOPES_BASE = SPR_AQUEDUCT_BASE + AQUEDUCT_SPRITE_COUNT; +static const SpriteID SPR_TRACKS_FOR_SLOPES_RAIL_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 0; +static const SpriteID SPR_TRACKS_FOR_SLOPES_MONO_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 4; +static const SpriteID SPR_TRACKS_FOR_SLOPES_MAGLEV_BASE = SPR_TRACKS_FOR_SLOPES_BASE + 8; +static const uint16 TRACKS_FOR_SLOPES_SPRITE_COUNT = 12; + +static const SpriteID SPR_SLOPES_BASE = SPR_TRACKS_FOR_SLOPES_BASE + TRACKS_FOR_SLOPES_SPRITE_COUNT; +static const SpriteID SPR_SLOPES_INCLINED_OFFSET = 15; +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. +static const SpriteID SPR_TRKFOUND_BLOCK_SIZE = 22; // The normal track foundation sprites are organized in blocks of 22. +static const uint16 NORMAL_FOUNDATION_SPRITE_COUNT = 74; +/* Halftile foundations */ +static const SpriteID SPR_HALFTILE_FOUNDATION_BASE = SPR_SLOPES_BASE + NORMAL_FOUNDATION_SPRITE_COUNT; +static const SpriteID SPR_HALFTILE_BLOCK_SIZE = 4; // The half tile foundation sprites are organized in blocks of 4. +static const uint16 NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT = 90; + +static const SpriteID SPR_AUTORAIL_BASE = SPR_HALFTILE_FOUNDATION_BASE + NORMAL_AND_HALFTILE_FOUNDATION_SPRITE_COUNT; +static const uint16 AUTORAIL_SPRITE_COUNT = 55; + +static const SpriteID SPR_ELRAIL_BASE = SPR_AUTORAIL_BASE + AUTORAIL_SPRITE_COUNT; +static const uint16 ELRAIL_SPRITE_COUNT = 48; + +static const SpriteID SPR_2CCMAP_BASE = SPR_ELRAIL_BASE + ELRAIL_SPRITE_COUNT; +static const uint16 TWOCCMAP_SPRITE_COUNT = 256; + +/* shore tiles - action 05-0D */ +static const SpriteID SPR_SHORE_BASE = SPR_2CCMAP_BASE + TWOCCMAP_SPRITE_COUNT; +static const SpriteID SPR_SHORE_SPRITE_COUNT = 18; +static const SpriteID SPR_ORIGINALSHORE_START = 4062; +static const SpriteID SPR_ORIGINALSHORE_END = 4069; + +static const SpriteID SPR_AIRPORTX_BASE = SPR_SHORE_BASE + SPR_SHORE_SPRITE_COUNT; // The sprites used for other airport angles +static const SpriteID SPR_NEWAIRPORT_TARMAC = SPR_AIRPORTX_BASE; +static const SpriteID SPR_NSRUNWAY1 = SPR_AIRPORTX_BASE + 1; +static const SpriteID SPR_NSRUNWAY2 = SPR_AIRPORTX_BASE + 2; +static const SpriteID SPR_NSRUNWAY3 = SPR_AIRPORTX_BASE + 3; +static const SpriteID SPR_NSRUNWAY4 = SPR_AIRPORTX_BASE + 4; +static const SpriteID SPR_NSRUNWAY_END = SPR_AIRPORTX_BASE + 5; +static const SpriteID SPR_NEWHANGAR_S = SPR_AIRPORTX_BASE + 6; +static const SpriteID SPR_NEWHANGAR_S_WALL = SPR_AIRPORTX_BASE + 7; +static const SpriteID SPR_NEWHANGAR_W = SPR_AIRPORTX_BASE + 8; +static const SpriteID SPR_NEWHANGAR_W_WALL = SPR_AIRPORTX_BASE + 9; +static const SpriteID SPR_NEWHANGAR_N = SPR_AIRPORTX_BASE + 10; +static const SpriteID SPR_NEWHANGAR_E = SPR_AIRPORTX_BASE + 11; +static const SpriteID SPR_NEWHELIPAD = SPR_AIRPORTX_BASE + 12; +static const SpriteID SPR_GRASS_RIGHT = SPR_AIRPORTX_BASE + 13; +static const SpriteID SPR_GRASS_LEFT = SPR_AIRPORTX_BASE + 14; +static const uint16 AIRPORTX_SPRITE_COUNT = 15; + +static const SpriteID SPR_ROADSTOP_BASE = SPR_AIRPORTX_BASE + AIRPORTX_SPRITE_COUNT; // The sprites used for drive-through road stops +static const SpriteID SPR_BUS_STOP_DT_Y_W = SPR_ROADSTOP_BASE; +static const SpriteID SPR_BUS_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 1; +static const SpriteID SPR_BUS_STOP_DT_X_W = SPR_ROADSTOP_BASE + 2; +static const SpriteID SPR_BUS_STOP_DT_X_E = SPR_ROADSTOP_BASE + 3; +static const SpriteID SPR_TRUCK_STOP_DT_Y_W = SPR_ROADSTOP_BASE + 4; +static const SpriteID SPR_TRUCK_STOP_DT_Y_E = SPR_ROADSTOP_BASE + 5; +static const SpriteID SPR_TRUCK_STOP_DT_X_W = SPR_ROADSTOP_BASE + 6; +static const SpriteID SPR_TRUCK_STOP_DT_X_E = SPR_ROADSTOP_BASE + 7; +static const uint16 ROADSTOP_SPRITE_COUNT = 8; + +/* Tramway sprites */ +static const SpriteID SPR_TRAMWAY_BASE = SPR_ROADSTOP_BASE + ROADSTOP_SPRITE_COUNT; +static const SpriteID SPR_TRAMWAY_OVERLAY = SPR_TRAMWAY_BASE + 4; +static const SpriteID SPR_TRAMWAY_TRAM = SPR_TRAMWAY_BASE + 27; +static const SpriteID SPR_TRAMWAY_SLOPED_OFFSET = 11; +static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_Y_W = SPR_TRAMWAY_BASE + 25; +static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_Y_E = SPR_TRAMWAY_BASE + 23; +static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_X_W = SPR_TRAMWAY_BASE + 24; +static const SpriteID SPR_TRAMWAY_BUS_STOP_DT_X_E = SPR_TRAMWAY_BASE + 26; +static const SpriteID SPR_TRAMWAY_PAVED_STRAIGHT_Y = SPR_TRAMWAY_BASE + 46; +static const SpriteID SPR_TRAMWAY_PAVED_STRAIGHT_X = SPR_TRAMWAY_BASE + 47; +static const SpriteID SPR_TRAMWAY_BACK_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 55; +static const SpriteID SPR_TRAMWAY_FRONT_WIRES_STRAIGHT = SPR_TRAMWAY_BASE + 56; +static const SpriteID SPR_TRAMWAY_BACK_WIRES_SLOPED = SPR_TRAMWAY_BASE + 72; +static const SpriteID SPR_TRAMWAY_FRONT_WIRES_SLOPED = SPR_TRAMWAY_BASE + 68; +static const SpriteID SPR_TRAMWAY_TUNNEL_WIRES = SPR_TRAMWAY_BASE + 80; +static const SpriteID SPR_TRAMWAY_BRIDGE = SPR_TRAMWAY_BASE + 107; +static const uint16 TRAMWAY_SPRITE_COUNT = 113; + +/* One way road sprites */ +static const SpriteID SPR_ONEWAY_BASE = SPR_TRAMWAY_BASE + TRAMWAY_SPRITE_COUNT; +static const uint16 ONEWAY_SPRITE_COUNT = 6; + +/* Flags sprites (in same order as enum NetworkLanguage) */ +static const SpriteID SPR_FLAGS_BASE = SPR_ONEWAY_BASE + ONEWAY_SPRITE_COUNT; +static const uint16 FLAGS_SPRITE_COUNT = 36; + +/* 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. */ +static const SpriteID SPR_EMPTY_BOUNDING_BOX = SPR_FLAGS_BASE + FLAGS_SPRITE_COUNT; +static const uint16 EMPTY_BOUNDING_BOX_SPRITE_COUNT = 1; + +/* From where can we start putting NewGRFs? */ +static const SpriteID SPR_NEWGRFS_BASE = SPR_EMPTY_BOUNDING_BOX + EMPTY_BOUNDING_BOX_SPRITE_COUNT; + +/* Manager face sprites */ +static const SpriteID SPR_GRADIENT = 874; // background gradient behind manager face + +/* Icon showing company colour. */ +static const SpriteID SPR_COMPANY_ICON = 747; + +/* is itself no foundation sprite, because tileh 0 has no foundation */ +static const SpriteID SPR_FOUNDATION_BASE = 989; + +/* Shadow cell */ +static const SpriteID SPR_SHADOW_CELL = 1004; + +/* Unmovables spritenumbers */ +static const SpriteID SPR_UNMOVABLE_TRANSMITTER = 2601; +static const SpriteID SPR_UNMOVABLE_LIGHTHOUSE = 2602; +static const SpriteID SPR_TINYHQ_NORTH = 2603; +static const SpriteID SPR_TINYHQ_EAST = 2604; +static const SpriteID SPR_TINYHQ_WEST = 2605; +static const SpriteID SPR_TINYHQ_SOUTH = 2606; +static const SpriteID SPR_SMALLHQ_NORTH = 2607; +static const SpriteID SPR_SMALLHQ_EAST = 2608; +static const SpriteID SPR_SMALLHQ_WEST = 2609; +static const SpriteID SPR_SMALLHQ_SOUTH = 2610; +static const SpriteID SPR_MEDIUMHQ_NORTH = 2611; +static const SpriteID SPR_MEDIUMHQ_NORTH_WALL = 2612; +static const SpriteID SPR_MEDIUMHQ_EAST = 2613; +static const SpriteID SPR_MEDIUMHQ_EAST_WALL = 2614; +static const SpriteID SPR_MEDIUMHQ_WEST = 2615; +static const SpriteID SPR_MEDIUMHQ_WEST_WALL = 2616; // very tiny piece of wall +static const SpriteID SPR_MEDIUMHQ_SOUTH = 2617; +static const SpriteID SPR_LARGEHQ_NORTH_GROUND = 2618; +static const SpriteID SPR_LARGEHQ_NORTH_BUILD = 2619; +static const SpriteID SPR_LARGEHQ_EAST_GROUND = 2620; +static const SpriteID SPR_LARGEHQ_EAST_BUILD = 2621; +static const SpriteID SPR_LARGEHQ_WEST_GROUND = 2622; +static const SpriteID SPR_LARGEHQ_WEST_BUILD = 2623; +static const SpriteID SPR_LARGEHQ_SOUTH = 2624; +static const SpriteID SPR_HUGEHQ_NORTH_GROUND = 2625; +static const SpriteID SPR_HUGEHQ_NORTH_BUILD = 2626; +static const SpriteID SPR_HUGEHQ_EAST_GROUND = 2627; +static const SpriteID SPR_HUGEHQ_EAST_BUILD = 2628; +static const SpriteID SPR_HUGEHQ_WEST_GROUND = 2629; +static const SpriteID SPR_HUGEHQ_WEST_BUILD = 2630; +static const SpriteID SPR_HUGEHQ_SOUTH = 2631; +static const SpriteID SPR_CONCRETE_GROUND = 1420; +static const SpriteID SPR_STATUE_COMPANY = 2632; +static const SpriteID SPR_BOUGHT_LAND = 4790; + +/* sprites for rail and rail stations*/ +static const SpriteID SPR_RAIL_SNOW_OFFSET = 26; +static const SpriteID SPR_MONO_SNOW_OFFSET = 26; +static const SpriteID SPR_MGLV_SNOW_OFFSET = 26; + +static const SpriteID SPR_ORIGINAL_SIGNALS_BASE = 1275; + +static const SpriteID SPR_RAIL_SINGLE_X = 1005; +static const SpriteID SPR_RAIL_SINGLE_Y = 1006; +static const SpriteID SPR_RAIL_SINGLE_NORTH = 1007; +static const SpriteID SPR_RAIL_SINGLE_SOUTH = 1008; +static const SpriteID SPR_RAIL_SINGLE_EAST = 1009; +static const SpriteID SPR_RAIL_SINGLE_WEST = 1010; +static const SpriteID SPR_RAIL_TRACK_Y = 1011; +static const SpriteID SPR_RAIL_TRACK_X = 1012; +static const SpriteID SPR_RAIL_TRACK_BASE = 1018; +static const SpriteID SPR_RAIL_TRACK_N_S = 1035; +static const SpriteID SPR_RAIL_TRACK_Y_SNOW = 1037; +static const SpriteID SPR_RAIL_TRACK_X_SNOW = 1038; +static const SpriteID SPR_RAIL_DEPOT_SE_1 = 1063; +static const SpriteID SPR_RAIL_DEPOT_SE_2 = 1064; +static const SpriteID SPR_RAIL_DEPOT_SW_1 = 1065; +static const SpriteID SPR_RAIL_DEPOT_SW_2 = 1066; +static const SpriteID SPR_RAIL_DEPOT_NE = 1067; +static const SpriteID SPR_RAIL_DEPOT_NW = 1068; +static const SpriteID SPR_RAIL_PLATFORM_Y_FRONT = 1069; +static const SpriteID SPR_RAIL_PLATFORM_X_REAR = 1070; +static const SpriteID SPR_RAIL_PLATFORM_Y_REAR = 1071; +static const SpriteID SPR_RAIL_PLATFORM_X_FRONT = 1072; +static const SpriteID SPR_RAIL_PLATFORM_BUILDING_X = 1073; +static const SpriteID SPR_RAIL_PLATFORM_BUILDING_Y = 1074; +static const SpriteID SPR_RAIL_PLATFORM_PILLARS_Y_FRONT = 1075; +static const SpriteID SPR_RAIL_PLATFORM_PILLARS_X_REAR = 1076; +static const SpriteID SPR_RAIL_PLATFORM_PILLARS_Y_REAR = 1077; +static const SpriteID SPR_RAIL_PLATFORM_PILLARS_X_FRONT = 1078; +static const SpriteID SPR_RAIL_ROOF_STRUCTURE_X_TILE_A = 1079; // First half of the roof structure +static const SpriteID SPR_RAIL_ROOF_STRUCTURE_Y_TILE_A = 1080; +static const SpriteID SPR_RAIL_ROOF_STRUCTURE_X_TILE_B = 1081; // Second half of the roof structure +static const SpriteID SPR_RAIL_ROOF_STRUCTURE_Y_TILE_B = 1082; +static const SpriteID SPR_RAIL_ROOF_GLASS_X_TILE_A = 1083; // First half of the roof glass +static const SpriteID SPR_RAIL_ROOF_GLASS_Y_TILE_A = 1084; +static const SpriteID SPR_RAIL_ROOF_GLASS_X_TILE_B = 1085; // second half of the roof glass +static const SpriteID SPR_RAIL_ROOF_GLASS_Y_TILE_B = 1086; +static const SpriteID SPR_MONO_SINGLE_X = 1087; +static const SpriteID SPR_MONO_SINGLE_Y = 1088; +static const SpriteID SPR_MONO_SINGLE_NORTH = 1089; +static const SpriteID SPR_MONO_SINGLE_SOUTH = 1090; +static const SpriteID SPR_MONO_SINGLE_EAST = 1091; +static const SpriteID SPR_MONO_SINGLE_WEST = 1092; +static const SpriteID SPR_MONO_TRACK_Y = 1093; +static const SpriteID SPR_MONO_TRACK_BASE = 1100; +static const SpriteID SPR_MONO_TRACK_N_S = 1117; +static const SpriteID SPR_MGLV_SINGLE_X = 1169; +static const SpriteID SPR_MGLV_SINGLE_Y = 1170; +static const SpriteID SPR_MGLV_SINGLE_NORTH = 1171; +static const SpriteID SPR_MGLV_SINGLE_SOUTH = 1172; +static const SpriteID SPR_MGLV_SINGLE_EAST = 1173; +static const SpriteID SPR_MGLV_SINGLE_WEST = 1174; +static const SpriteID SPR_MGLV_TRACK_Y = 1175; +static const SpriteID SPR_MGLV_TRACK_BASE = 1182; +static const SpriteID SPR_MGLV_TRACK_N_S = 1199; +static const SpriteID SPR_WAYPOINT_X_1 = SPR_OPENTTD_BASE + 78; +static const SpriteID SPR_WAYPOINT_X_2 = SPR_OPENTTD_BASE + 79; +static const SpriteID SPR_WAYPOINT_Y_1 = SPR_OPENTTD_BASE + 80; +static const SpriteID SPR_WAYPOINT_Y_2 = SPR_OPENTTD_BASE + 81; + +static const uint16 OFFSET_TILEH_IMPOSSIBLE = 0; +static const uint16 OFFSET_TILEH_1 = 14; +static const uint16 OFFSET_TILEH_2 = 15; +static const uint16 OFFSET_TILEH_3 = 22; +static const uint16 OFFSET_TILEH_4 = 13; +static const uint16 OFFSET_TILEH_6 = 21; +static const uint16 OFFSET_TILEH_7 = 17; +static const uint16 OFFSET_TILEH_8 = 12; +static const uint16 OFFSET_TILEH_9 = 23; +static const uint16 OFFSET_TILEH_11 = 18; +static const uint16 OFFSET_TILEH_12 = 20; +static const uint16 OFFSET_TILEH_13 = 19; +static const uint16 OFFSET_TILEH_14 = 16; + +/* Track fences */ +static const SpriteID SPR_TRACK_FENCE_FLAT_X = 1301; +static const SpriteID SPR_TRACK_FENCE_FLAT_Y = 1302; +static const SpriteID SPR_TRACK_FENCE_FLAT_VERT = 1303; +static const SpriteID SPR_TRACK_FENCE_FLAT_HORZ = 1304; +static const SpriteID SPR_TRACK_FENCE_SLOPE_SW = 1305; +static const SpriteID SPR_TRACK_FENCE_SLOPE_SE = 1306; +static const SpriteID SPR_TRACK_FENCE_SLOPE_NE = 1307; +static const SpriteID SPR_TRACK_FENCE_SLOPE_NW = 1308; + +/* Base sprites for elrail. + * Offsets via an enum are used so a complete list of absolute + * sprite numbers is unnecessary. + */ +static const SpriteID SPR_WIRE_BASE = SPR_ELRAIL_BASE + 0; +static const SpriteID SPR_PYLON_BASE = SPR_ELRAIL_BASE + 28; + +/* sprites for roads */ +static const SpriteID SPR_ROAD_PAVED_STRAIGHT_Y = 1313; +static const SpriteID SPR_ROAD_PAVED_STRAIGHT_X = 1314; + +/* sprites for airports and airfields*/ +/* Small airports are AIRFIELD, everything else is AIRPORT */ +static const SpriteID SPR_HELIPORT = 2633; +static const SpriteID SPR_AIRPORT_APRON = 2634; +static const SpriteID SPR_AIRPORT_AIRCRAFT_STAND = 2635; +static const SpriteID SPR_AIRPORT_TAXIWAY_NS_WEST = 2636; +static const SpriteID SPR_AIRPORT_TAXIWAY_EW_SOUTH = 2637; +static const SpriteID SPR_AIRPORT_TAXIWAY_XING_SOUTH = 2638; +static const SpriteID SPR_AIRPORT_TAXIWAY_XING_WEST = 2639; +static const SpriteID SPR_AIRPORT_TAXIWAY_NS_CTR = 2640; +static const SpriteID SPR_AIRPORT_TAXIWAY_XING_EAST = 2641; +static const SpriteID SPR_AIRPORT_TAXIWAY_NS_EAST = 2642; +static const SpriteID SPR_AIRPORT_TAXIWAY_EW_NORTH = 2643; +static const SpriteID SPR_AIRPORT_TAXIWAY_EW_CTR = 2644; +static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_A = 2645; +static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_B = 2646; +static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_C = 2647; +static const SpriteID SPR_AIRPORT_RUNWAY_EXIT_D = 2648; +static const SpriteID SPR_AIRPORT_RUNWAY_END = 2649; // We should have different ends +static const SpriteID SPR_AIRPORT_TERMINAL_A = 2650; +static const SpriteID SPR_AIRPORT_TOWER = 2651; +static const SpriteID SPR_AIRPORT_CONCOURSE = 2652; +static const SpriteID SPR_AIRPORT_TERMINAL_B = 2653; +static const SpriteID SPR_AIRPORT_TERMINAL_C = 2654; +static const SpriteID SPR_AIRPORT_HANGAR_FRONT = 2655; +static const SpriteID SPR_AIRPORT_HANGAR_REAR = 2656; +static const SpriteID SPR_AIRFIELD_HANGAR_FRONT = 2657; +static const SpriteID SPR_AIRFIELD_HANGAR_REAR = 2658; +static const SpriteID SPR_AIRPORT_JETWAY_1 = 2659; +static const SpriteID SPR_AIRPORT_JETWAY_2 = 2660; +static const SpriteID SPR_AIRPORT_JETWAY_3 = 2661; +static const SpriteID SPR_AIRPORT_PASSENGER_TUNNEL = 2662; +static const SpriteID SPR_AIRPORT_FENCE_Y = 2663; +static const SpriteID SPR_AIRPORT_FENCE_X = 2664; +static const SpriteID SPR_AIRFIELD_TERM_A = 2665; +static const SpriteID SPR_AIRFIELD_TERM_B = 2666; +static const SpriteID SPR_AIRFIELD_TERM_C_GROUND = 2667; +static const SpriteID SPR_AIRFIELD_TERM_C_BUILD = 2668; +static const SpriteID SPR_AIRFIELD_APRON_A = 2669; +static const SpriteID SPR_AIRFIELD_APRON_B = 2670; +static const SpriteID SPR_AIRFIELD_APRON_C = 2671; +static const SpriteID SPR_AIRFIELD_APRON_D = 2672; +static const SpriteID SPR_AIRFIELD_RUNWAY_NEAR_END = 2673; +static const SpriteID SPR_AIRFIELD_RUNWAY_MIDDLE = 2674; +static const SpriteID SPR_AIRFIELD_RUNWAY_FAR_END = 2675; +static const SpriteID SPR_AIRFIELD_WIND_1 = 2676; +static const SpriteID SPR_AIRFIELD_WIND_2 = 2677; +static const SpriteID SPR_AIRFIELD_WIND_3 = 2678; +static const SpriteID SPR_AIRFIELD_WIND_4 = 2679; +static const SpriteID SPR_AIRPORT_RADAR_1 = 2680; +static const SpriteID SPR_AIRPORT_RADAR_2 = 2681; +static const SpriteID SPR_AIRPORT_RADAR_3 = 2682; +static const SpriteID SPR_AIRPORT_RADAR_4 = 2683; +static const SpriteID SPR_AIRPORT_RADAR_5 = 2684; +static const SpriteID SPR_AIRPORT_RADAR_6 = 2685; +static const SpriteID SPR_AIRPORT_RADAR_7 = 2686; +static const SpriteID SPR_AIRPORT_RADAR_8 = 2687; +static const SpriteID SPR_AIRPORT_RADAR_9 = 2688; +static const SpriteID SPR_AIRPORT_RADAR_A = 2689; +static const SpriteID SPR_AIRPORT_RADAR_B = 2690; +static const SpriteID SPR_AIRPORT_RADAR_C = 2691; +static const SpriteID SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 86; +static const SpriteID SPR_AIRPORT_HELIDEPOT_OFFICE = 2095; + +/* Road Stops + * Road stops have a ground tile and 3 buildings, one on each side + * (except the side where the entry is). These are marked _A _B and _C */ +static const SpriteID SPR_BUS_STOP_NE_GROUND = 2692; +static const SpriteID SPR_BUS_STOP_SE_GROUND = 2693; +static const SpriteID SPR_BUS_STOP_SW_GROUND = 2694; +static const SpriteID SPR_BUS_STOP_NW_GROUND = 2695; +static const SpriteID SPR_BUS_STOP_NE_BUILD_A = 2696; +static const SpriteID SPR_BUS_STOP_SE_BUILD_A = 2697; +static const SpriteID SPR_BUS_STOP_SW_BUILD_A = 2698; +static const SpriteID SPR_BUS_STOP_NW_BUILD_A = 2699; +static const SpriteID SPR_BUS_STOP_NE_BUILD_B = 2700; +static const SpriteID SPR_BUS_STOP_SE_BUILD_B = 2701; +static const SpriteID SPR_BUS_STOP_SW_BUILD_B = 2702; +static const SpriteID SPR_BUS_STOP_NW_BUILD_B = 2703; +static const SpriteID SPR_BUS_STOP_NE_BUILD_C = 2704; +static const SpriteID SPR_BUS_STOP_SE_BUILD_C = 2705; +static const SpriteID SPR_BUS_STOP_SW_BUILD_C = 2706; +static const SpriteID SPR_BUS_STOP_NW_BUILD_C = 2707; +static const SpriteID SPR_TRUCK_STOP_NE_GROUND = 2708; +static const SpriteID SPR_TRUCK_STOP_SE_GROUND = 2709; +static const SpriteID SPR_TRUCK_STOP_SW_GROUND = 2710; +static const SpriteID SPR_TRUCK_STOP_NW_GROUND = 2711; +static const SpriteID SPR_TRUCK_STOP_NE_BUILD_A = 2712; +static const SpriteID SPR_TRUCK_STOP_SE_BUILD_A = 2713; +static const SpriteID SPR_TRUCK_STOP_SW_BUILD_A = 2714; +static const SpriteID SPR_TRUCK_STOP_NW_BUILD_A = 2715; +static const SpriteID SPR_TRUCK_STOP_NE_BUILD_B = 2716; +static const SpriteID SPR_TRUCK_STOP_SE_BUILD_B = 2717; +static const SpriteID SPR_TRUCK_STOP_SW_BUILD_B = 2718; +static const SpriteID SPR_TRUCK_STOP_NW_BUILD_B = 2719; +static const SpriteID SPR_TRUCK_STOP_NE_BUILD_C = 2720; +static const SpriteID SPR_TRUCK_STOP_SE_BUILD_C = 2721; +static const SpriteID SPR_TRUCK_STOP_SW_BUILD_C = 2722; +static const SpriteID SPR_TRUCK_STOP_NW_BUILD_C = 2723; + +/* Sprites for docks + * Docks consist of two tiles, the sloped one and the flat one */ +static const SpriteID SPR_DOCK_SLOPE_NE = 2727; +static const SpriteID SPR_DOCK_SLOPE_SE = 2728; +static const SpriteID SPR_DOCK_SLOPE_SW = 2729; +static const SpriteID SPR_DOCK_SLOPE_NW = 2730; +static const SpriteID SPR_DOCK_FLAT_X = 2731; // for NE and SW +static const SpriteID SPR_DOCK_FLAT_Y = 2732; // for NW and SE +static const SpriteID SPR_BUOY = 4076; // XXX this sucks, because it displays wrong stuff on canals + +/* Sprites for road */ +static const SpriteID SPR_ROAD_Y = 1332; +static const SpriteID SPR_ROAD_X = 1333; +static const SpriteID SPR_ROAD_Y_SNOW = 1351; +static const SpriteID SPR_ROAD_X_SNOW = 1352; + +static const SpriteID SPR_EXCAVATION_X = 1414; +static const SpriteID SPR_EXCAVATION_Y = 1415; + +/* Landscape sprites */ +static const SpriteID SPR_FLAT_BARE_LAND = 3924; +static const SpriteID SPR_FLAT_1_THIRD_GRASS_TILE = 3943; +static const SpriteID SPR_FLAT_2_THIRD_GRASS_TILE = 3962; +static const SpriteID SPR_FLAT_GRASS_TILE = 3981; +static const SpriteID SPR_FLAT_ROUGH_LAND = 4000; +static const SpriteID SPR_FLAT_ROUGH_LAND_1 = 4019; +static const SpriteID SPR_FLAT_ROUGH_LAND_2 = 4020; +static const SpriteID SPR_FLAT_ROUGH_LAND_3 = 4021; +static const SpriteID SPR_FLAT_ROUGH_LAND_4 = 4022; +static const SpriteID SPR_FLAT_ROCKY_LAND_1 = 4023; +static const SpriteID SPR_FLAT_ROCKY_LAND_2 = 4042; +static const SpriteID SPR_FLAT_WATER_TILE = 4061; +static const SpriteID SPR_FLAT_1_QUART_SNOW_DESERT_TILE = 4493; +static const SpriteID SPR_FLAT_2_QUART_SNOW_DESERT_TILE = 4512; +static const SpriteID SPR_FLAT_3_QUART_SNOW_DESERT_TILE = 4531; +static const SpriteID SPR_FLAT_SNOW_DESERT_TILE = 4550; + +/* Hedge, Farmland-fence sprites */ +static const SpriteID SPR_HEDGE_BUSHES = 4090; +static const SpriteID SPR_HEDGE_BUSHES_WITH_GATE = 4096; +static const SpriteID SPR_HEDGE_FENCE = 4102; +static const SpriteID SPR_HEDGE_BLOOMBUSH_YELLOW = 4108; +static const SpriteID SPR_HEDGE_BLOOMBUSH_RED = 4114; +static const SpriteID SPR_HEDGE_STONE = 4120; + +/* Farmland sprites, only flat tiles listed, various stages */ +static const SpriteID SPR_FARMLAND_BARE = 4126; +static const SpriteID SPR_FARMLAND_STATE_1 = 4145; +static const SpriteID SPR_FARMLAND_STATE_2 = 4164; +static const SpriteID SPR_FARMLAND_STATE_3 = 4183; +static const SpriteID SPR_FARMLAND_STATE_4 = 4202; +static const SpriteID SPR_FARMLAND_STATE_5 = 4221; +static const SpriteID SPR_FARMLAND_STATE_6 = 4240; +static const SpriteID SPR_FARMLAND_STATE_7 = 4259; +static const SpriteID SPR_FARMLAND_HAYPACKS = 4278; + +/* Water-related sprites */ +static const SpriteID SPR_SHIP_DEPOT_SE_FRONT = 4070; +static const SpriteID SPR_SHIP_DEPOT_SW_FRONT = 4071; +static const SpriteID SPR_SHIP_DEPOT_NW = 4072; +static const SpriteID SPR_SHIP_DEPOT_NE = 4073; +static const SpriteID SPR_SHIP_DEPOT_SE_REAR = 4074; +static const SpriteID SPR_SHIP_DEPOT_SW_REAR = 4075; +/* here come sloped water sprites */ +static const SpriteID SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 0; // Water flowing negative Y direction +static const SpriteID SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 1; // positive X +static const SpriteID SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 2; // negative X +static const SpriteID SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 3; // positive Y +/* sprites for the shiplifts + * there are 4 kinds of shiplifts, each of them is 3 tiles long. + * the four kinds are running in the X and Y direction and + * are "lowering" either in the "+" or the "-" direction. + * the three tiles are the center tile (where the slope is) + * and a bottom and a top tile */ +static const SpriteID SPR_SHIPLIFT_BASE = SPR_CANALS_BASE + 4; +static const SpriteID SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 4; +static const SpriteID SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 5; +static const SpriteID SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 6; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 7; +static const SpriteID SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 8; +static const SpriteID SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 9; +static const SpriteID SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 10; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 11; +static const SpriteID SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 12; +static const SpriteID SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 13; +static const SpriteID SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 14; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 15; +static const SpriteID SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 16; +static const SpriteID SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 17; +static const SpriteID SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 18; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 19; +static const SpriteID SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 20; +static const SpriteID SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 21; +static const SpriteID SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 22; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 23; +static const SpriteID SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 24; +static const SpriteID SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 25; +static const SpriteID SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 26; +static const SpriteID SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 27; +static const SpriteID SPR_CANAL_DIKES_BASE = SPR_CANALS_BASE + 52; + +/* Sprites for tunnels and bridges */ +static const SpriteID SPR_TUNNEL_ENTRY_REAR_RAIL = 2365; +static const SpriteID SPR_TUNNEL_ENTRY_REAR_MONO = 2373; +static const SpriteID SPR_TUNNEL_ENTRY_REAR_MAGLEV = 2381; +static const SpriteID SPR_TUNNEL_ENTRY_REAR_ROAD = 2389; + +/* Level crossings */ +static const SpriteID SPR_CROSSING_OFF_X_RAIL = 1370; +static const SpriteID SPR_CROSSING_OFF_X_MONO = 1382; +static const SpriteID SPR_CROSSING_OFF_X_MAGLEV = 1394; + +/* bridge type sprites */ +static const SpriteID SPR_PILLARS_BASE = SPR_OPENTTD_BASE + 14; + +/* Wooden bridge (type 0) */ +static const SpriteID SPR_BTWDN_RAIL_Y_REAR = 2545; +static const SpriteID SPR_BTWDN_RAIL_X_REAR = 2546; +static const SpriteID SPR_BTWDN_ROAD_Y_REAR = 2547; +static const SpriteID SPR_BTWDN_ROAD_X_REAR = 2548; +static const SpriteID SPR_BTWDN_Y_FRONT = 2549; +static const SpriteID SPR_BTWDN_X_FRONT = 2550; +static const SpriteID SPR_BTWDN_Y_PILLAR = 2551; +static const SpriteID SPR_BTWDN_X_PILLAR = 2552; +static const SpriteID SPR_BTWDN_MONO_Y_REAR = 4360; +static const SpriteID SPR_BTWDN_MONO_X_REAR = 4361; +static const SpriteID SPR_BTWDN_MGLV_Y_REAR = 4400; +static const SpriteID SPR_BTWDN_MGLV_X_REAR = 4401; +/* ramps */ +static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_DOWN = 2529; +static const SpriteID SPR_BTWDN_ROAD_RAMP_X_DOWN = 2530; +static const SpriteID SPR_BTWDN_ROAD_RAMP_X_UP = 2531; // for some weird reason the order is swapped +static const SpriteID SPR_BTWDN_ROAD_RAMP_Y_UP = 2532; // between X and Y. +static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_UP = 2533; +static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_UP = 2534; +static const SpriteID SPR_BTWDN_ROAD_Y_SLOPE_DOWN = 2535; +static const SpriteID SPR_BTWDN_ROAD_X_SLOPE_DOWN = 2536; +static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_DOWN = 2537; +static const SpriteID SPR_BTWDN_RAIL_RAMP_X_DOWN = 2538; +static const SpriteID SPR_BTWDN_RAIL_RAMP_X_UP = 2539; // for some weird reason the order is swapped +static const SpriteID SPR_BTWDN_RAIL_RAMP_Y_UP = 2540; // between X and Y. +static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_UP = 2541; +static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_UP = 2542; +static const SpriteID SPR_BTWDN_RAIL_Y_SLOPE_DOWN = 2543; +static const SpriteID SPR_BTWDN_RAIL_X_SLOPE_DOWN = 2544; +static const SpriteID SPR_BTWDN_MONO_RAMP_Y_DOWN = 4352; +static const SpriteID SPR_BTWDN_MONO_RAMP_X_DOWN = 4353; +static const SpriteID SPR_BTWDN_MONO_RAMP_X_UP = 4354; // for some weird reason the order is swapped +static const SpriteID SPR_BTWDN_MONO_RAMP_Y_UP = 4355; // between X and Y. +static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_UP = 4356; +static const SpriteID SPR_BTWDN_MONO_X_SLOPE_UP = 4357; +static const SpriteID SPR_BTWDN_MONO_Y_SLOPE_DOWN = 4358; +static const SpriteID SPR_BTWDN_MONO_X_SLOPE_DOWN = 4359; +static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_DOWN = 4392; +static const SpriteID SPR_BTWDN_MGLV_RAMP_X_DOWN = 4393; +static const SpriteID SPR_BTWDN_MGLV_RAMP_X_UP = 4394; // for some weird reason the order is swapped +static const SpriteID SPR_BTWDN_MGLV_RAMP_Y_UP = 4395; // between X and Y. +static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_UP = 4396; +static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_UP = 4397; +static const SpriteID SPR_BTWDN_MGLV_Y_SLOPE_DOWN = 4398; +static const SpriteID SPR_BTWDN_MGLV_X_SLOPE_DOWN = 4399; + +/* Steel Girder with arches + * BTSGA == Bridge Type Steel Girder Arched + * This is bridge type number 2 */ +static const SpriteID SPR_BTSGA_RAIL_X_REAR = 2499; +static const SpriteID SPR_BTSGA_RAIL_Y_REAR = 2500; +static const SpriteID SPR_BTSGA_ROAD_X_REAR = 2501; +static const SpriteID SPR_BTSGA_ROAD_Y_REAR = 2502; +static const SpriteID SPR_BTSGA_X_FRONT = 2503; +static const SpriteID SPR_BTSGA_Y_FRONT = 2504; +static const SpriteID SPR_BTSGA_X_PILLAR = 2505; +static const SpriteID SPR_BTSGA_Y_PILLAR = 2506; +static const SpriteID SPR_BTSGA_MONO_X_REAR = 4324; +static const SpriteID SPR_BTSGA_MONO_Y_REAR = 4325; +static const SpriteID SPR_BTSGA_MGLV_X_REAR = 4364; +static const SpriteID SPR_BTSGA_MGLV_Y_REAR = 4365; + +/* BTSUS == Suspension bridge + * TILE_* denotes the different tiles a suspension bridge + * can have + * TILE_A and TILE_B are the "beginnings" and "ends" of the + * suspension system. they have small rectangluar endcaps + * TILE_C and TILE_D look almost identical to TILE_A and + * TILE_B, but they do not have the "endcaps". They form the + * middle part + * TILE_E is a condensed configuration of two pillars. while they + * are usually 2 pillars apart, they only have 1 pillar separation + * here + * TILE_F is an extended configuration of pillars. they are + * plugged in when pillars should be 3 tiles apart + */ +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_A = 2453; +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_B = 2454; +static const SpriteID SPR_BTSUS_Y_FRONT_TILE_A = 2455; +static const SpriteID SPR_BTSUS_Y_FRONT_TILE_B = 2456; +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_D = 2457; +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_C = 2458; +static const SpriteID SPR_BTSUS_Y_FRONT_TILE_D = 2459; +static const SpriteID SPR_BTSUS_Y_FRONT_TILE_C = 2460; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_A = 2461; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_B = 2462; +static const SpriteID SPR_BTSUS_X_FRONT_TILE_A = 2463; +static const SpriteID SPR_BTSUS_X_FRONT_TILE_B = 2464; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_D = 2465; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_C = 2466; +static const SpriteID SPR_BTSUS_X_FRONT_TILE_D = 2467; +static const SpriteID SPR_BTSUS_X_FRONT_TILE_C = 2468; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_A = 2469; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_B = 2470; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_D = 2471; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_C = 2472; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_A = 2473; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_B = 2474; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_D = 2475; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_C = 2476; +static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_A = 2477; +static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_B = 2478; +static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_D = 2479; +static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_C = 2480; +static const SpriteID SPR_BTSUS_X_PILLAR_TILE_A = 2481; +static const SpriteID SPR_BTSUS_X_PILLAR_TILE_B = 2482; +static const SpriteID SPR_BTSUS_X_PILLAR_TILE_D = 2483; +static const SpriteID SPR_BTSUS_X_PILLAR_TILE_C = 2484; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_E = 2485; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_E = 2486; +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_E = 2487; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_E = 2488; +static const SpriteID SPR_BTSUS_Y_FRONT_TILE_E = 2489; +static const SpriteID SPR_BTSUS_X_FRONT_TILE_E = 2490; +static const SpriteID SPR_BTSUS_Y_PILLAR_TILE_E = 2491; +static const SpriteID SPR_BTSUS_X_PILLAR_TILE_E = 2492; +static const SpriteID SPR_BTSUS_RAIL_X_REAR_TILE_F = 2493; +static const SpriteID SPR_BTSUS_RAIL_Y_REAR_TILE_F = 2494; +static const SpriteID SPR_BTSUS_ROAD_X_REAR_TILE_F = 2495; +static const SpriteID SPR_BTSUS_ROAD_Y_REAR_TILE_F = 2496; +static const SpriteID SPR_BTSUS_X_FRONT = 2497; +static const SpriteID SPR_BTSUS_Y_FRONT = 2498; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_A = 4334; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_B = 4335; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_D = 4336; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_C = 4337; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_A = 4338; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_B = 4339; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_D = 4340; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_C = 4341; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_E = 4342; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_E = 4343; +static const SpriteID SPR_BTSUS_MONO_X_REAR_TILE_F = 4344; +static const SpriteID SPR_BTSUS_MONO_Y_REAR_TILE_F = 4345; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_A = 4374; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_B = 4375; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_D = 4376; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_C = 4377; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_A = 4378; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_B = 4379; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_D = 4380; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_C = 4381; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_E = 4382; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_E = 4383; +static const SpriteID SPR_BTSUS_MGLV_X_REAR_TILE_F = 4384; +static const SpriteID SPR_BTSUS_MGLV_Y_REAR_TILE_F = 4385; + +/* cantilever bridges + * They have three different kinds of tiles: + * END(ing), MID(dle), BEG(ginning) */ +static const SpriteID SPR_BTCAN_RAIL_X_BEG = 2507; +static const SpriteID SPR_BTCAN_RAIL_X_MID = 2508; +static const SpriteID SPR_BTCAN_RAIL_X_END = 2509; +static const SpriteID SPR_BTCAN_RAIL_Y_END = 2510; +static const SpriteID SPR_BTCAN_RAIL_Y_MID = 2511; +static const SpriteID SPR_BTCAN_RAIL_Y_BEG = 2512; +static const SpriteID SPR_BTCAN_ROAD_X_BEG = 2513; +static const SpriteID SPR_BTCAN_ROAD_X_MID = 2514; +static const SpriteID SPR_BTCAN_ROAD_X_END = 2515; +static const SpriteID SPR_BTCAN_ROAD_Y_END = 2516; +static const SpriteID SPR_BTCAN_ROAD_Y_MID = 2517; +static const SpriteID SPR_BTCAN_ROAD_Y_BEG = 2518; +static const SpriteID SPR_BTCAN_X_FRONT_BEG = 2519; +static const SpriteID SPR_BTCAN_X_FRONT_MID = 2520; +static const SpriteID SPR_BTCAN_X_FRONT_END = 2521; +static const SpriteID SPR_BTCAN_Y_FRONT_END = 2522; +static const SpriteID SPR_BTCAN_Y_FRONT_MID = 2523; +static const SpriteID SPR_BTCAN_Y_FRONT_BEG = 2524; +static const SpriteID SPR_BTCAN_X_PILLAR_BEG = 2525; +static const SpriteID SPR_BTCAN_X_PILLAR_MID = 2526; +static const SpriteID SPR_BTCAN_Y_PILLAR_MID = 2527; +static const SpriteID SPR_BTCAN_Y_PILLAR_BEG = 2528; +static const SpriteID SPR_BTCAN_MONO_X_BEG = 4346; +static const SpriteID SPR_BTCAN_MONO_X_MID = 4347; +static const SpriteID SPR_BTCAN_MONO_X_END = 4348; +static const SpriteID SPR_BTCAN_MONO_Y_END = 4349; +static const SpriteID SPR_BTCAN_MONO_Y_MID = 4350; +static const SpriteID SPR_BTCAN_MONO_Y_BEG = 4351; +static const SpriteID SPR_BTCAN_MGLV_X_BEG = 4386; +static const SpriteID SPR_BTCAN_MGLV_X_MID = 4387; +static const SpriteID SPR_BTCAN_MGLV_X_END = 4388; +static const SpriteID SPR_BTCAN_MGLV_Y_END = 4389; +static const SpriteID SPR_BTCAN_MGLV_Y_MID = 4390; +static const SpriteID SPR_BTCAN_MGLV_Y_BEG = 4391; + +/* little concrete bridge */ +static const SpriteID SPR_BTCON_RAIL_X = 2493; +static const SpriteID SPR_BTCON_RAIL_Y = 2494; +static const SpriteID SPR_BTCON_ROAD_X = 2495; +static const SpriteID SPR_BTCON_ROAD_Y = 2496; +static const SpriteID SPR_BTCON_X_FRONT = 2497; +static const SpriteID SPR_BTCON_Y_FRONT = 2498; +static const SpriteID SPR_BTCON_X_PILLAR = 2505; +static const SpriteID SPR_BTCON_Y_PILLAR = 2506; +static const SpriteID SPR_BTCON_MONO_X = 4344; +static const SpriteID SPR_BTCON_MONO_Y = 4345; +static const SpriteID SPR_BTCON_MGLV_X = 4384; +static const SpriteID SPR_BTCON_MGLV_Y = 4385; + +/* little steel girder bridge */ +static const SpriteID SPR_BTGIR_RAIL_X = 2553; +static const SpriteID SPR_BTGIR_RAIL_Y = 2554; +static const SpriteID SPR_BTGIR_ROAD_X = 2555; +static const SpriteID SPR_BTGIR_ROAD_Y = 2556; +static const SpriteID SPR_BTGIR_X_FRONT = 2557; +static const SpriteID SPR_BTGIR_Y_FRONT = 2558; +static const SpriteID SPR_BTGIR_X_PILLAR = 2505; +static const SpriteID SPR_BTGIR_Y_PILLAR = 2506; +static const SpriteID SPR_BTGIR_MONO_X = 4362; +static const SpriteID SPR_BTGIR_MONO_Y = 4363; +static const SpriteID SPR_BTGIR_MGLV_X = 4402; +static const SpriteID SPR_BTGIR_MGLV_Y = 4403; + +/* tubular bridges + * tubular bridges have 3 kinds of tiles: + * a start tile (with only half a tube on the far side, marked _BEG + * a middle tile (full tunnel), marked _MID + * and an end tile (half a tube on the near side, maked _END + */ +static const SpriteID SPR_BTTUB_X_FRONT_BEG = 2559; +static const SpriteID SPR_BTTUB_X_FRONT_MID = 2560; +static const SpriteID SPR_BTTUB_X_FRONT_END = 2561; +static const SpriteID SPR_BTTUB_Y_FRONT_END = 2562; +static const SpriteID SPR_BTTUB_Y_FRONT_MID = 2563; +static const SpriteID SPR_BTTUB_Y_FRONT_BEG = 2564; +static const SpriteID SPR_BTTUB_X_PILLAR_BEG = 2565; +static const SpriteID SPR_BTTUB_X_PILLAR_MID = 2566; +static const SpriteID SPR_BTTUB_Y_PILLAR_MID = 2567; +static const SpriteID SPR_BTTUB_Y_PILLAR_BEG = 2568; +static const SpriteID SPR_BTTUB_X_RAIL_REAR_BEG = 2569; +static const SpriteID SPR_BTTUB_X_RAIL_REAR_MID = 2570; +static const SpriteID SPR_BTTUB_X_RAIL_REAR_END = 2571; +static const SpriteID SPR_BTTUB_Y_RAIL_REAR_BEG = 2572; +static const SpriteID SPR_BTTUB_Y_RAIL_REAR_MID = 2573; +static const SpriteID SPR_BTTUB_Y_RAIL_REAR_END = 2574; +static const SpriteID SPR_BTTUB_X_ROAD_REAR_BEG = 2575; +static const SpriteID SPR_BTTUB_X_ROAD_REAR_MID = 2576; +static const SpriteID SPR_BTTUB_X_ROAD_REAR_END = 2577; +static const SpriteID SPR_BTTUB_Y_ROAD_REAR_BEG = 2578; +static const SpriteID SPR_BTTUB_Y_ROAD_REAR_MID = 2579; +static const SpriteID SPR_BTTUB_Y_ROAD_REAR_END = 2580; +static const SpriteID SPR_BTTUB_X_MONO_REAR_BEG = 2581; +static const SpriteID SPR_BTTUB_X_MONO_REAR_MID = 2582; +static const SpriteID SPR_BTTUB_X_MONO_REAR_END = 2583; +static const SpriteID SPR_BTTUB_Y_MONO_REAR_BEG = 2584; +static const SpriteID SPR_BTTUB_Y_MONO_REAR_MID = 2585; +static const SpriteID SPR_BTTUB_Y_MONO_REAR_END = 2586; +static const SpriteID SPR_BTTUB_X_MGLV_REAR_BEG = 2587; +static const SpriteID SPR_BTTUB_X_MGLV_REAR_MID = 2588; +static const SpriteID SPR_BTTUB_X_MGLV_REAR_END = 2589; +static const SpriteID SPR_BTTUB_Y_MGLV_REAR_BEG = 2590; +static const SpriteID SPR_BTTUB_Y_MGLV_REAR_MID = 2591; +static const SpriteID SPR_BTTUB_Y_MGLV_REAR_END = 2592; + + +/* ramps (for all bridges except wood and tubular?)*/ +static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_DOWN = 2437; +static const SpriteID SPR_BTGEN_RAIL_X_SLOPE_UP = 2438; +static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_DOWN = 2439; +static const SpriteID SPR_BTGEN_RAIL_Y_SLOPE_UP = 2440; +static const SpriteID SPR_BTGEN_RAIL_RAMP_X_UP = 2441; +static const SpriteID SPR_BTGEN_RAIL_RAMP_X_DOWN = 2442; +static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_UP = 2443; +static const SpriteID SPR_BTGEN_RAIL_RAMP_Y_DOWN = 2444; +static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_DOWN = 2445; +static const SpriteID SPR_BTGEN_ROAD_X_SLOPE_UP = 2446; +static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_DOWN = 2447; +static const SpriteID SPR_BTGEN_ROAD_Y_SLOPE_UP = 2448; +static const SpriteID SPR_BTGEN_ROAD_RAMP_X_UP = 2449; +static const SpriteID SPR_BTGEN_ROAD_RAMP_X_DOWN = 2450; +static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_UP = 2451; +static const SpriteID SPR_BTGEN_ROAD_RAMP_Y_DOWN = 2452; +static const SpriteID SPR_BTGEN_MONO_X_SLOPE_DOWN = 4326; +static const SpriteID SPR_BTGEN_MONO_X_SLOPE_UP = 4327; +static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_DOWN = 4328; +static const SpriteID SPR_BTGEN_MONO_Y_SLOPE_UP = 4329; +static const SpriteID SPR_BTGEN_MONO_RAMP_X_UP = 4330; +static const SpriteID SPR_BTGEN_MONO_RAMP_X_DOWN = 4331; +static const SpriteID SPR_BTGEN_MONO_RAMP_Y_UP = 4332; +static const SpriteID SPR_BTGEN_MONO_RAMP_Y_DOWN = 4333; +static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_DOWN = 4366; +static const SpriteID SPR_BTGEN_MGLV_X_SLOPE_UP = 4367; +static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_DOWN = 4368; +static const SpriteID SPR_BTGEN_MGLV_Y_SLOPE_UP = 4369; +static const SpriteID SPR_BTGEN_MGLV_RAMP_X_UP = 4370; +static const SpriteID SPR_BTGEN_MGLV_RAMP_X_DOWN = 4371; +static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_UP = 4372; +static const SpriteID SPR_BTGEN_MGLV_RAMP_Y_DOWN = 4373; + +/* Vehicle view sprites */ +static const SpriteID SPR_CENTRE_VIEW_VEHICLE = 683; +static const SpriteID SPR_SEND_TRAIN_TODEPOT = 685; +static const SpriteID SPR_SEND_ROADVEH_TODEPOT = 686; +static const SpriteID SPR_SEND_AIRCRAFT_TODEPOT = 687; +static const SpriteID SPR_SEND_SHIP_TODEPOT = 688; + +static const SpriteID SPR_IGNORE_SIGNALS = 689; +static const SpriteID SPR_SHOW_ORDERS = 690; +static const SpriteID SPR_SHOW_VEHICLE_DETAILS = 691; +static const SpriteID SPR_REFIT_VEHICLE = 692; +static const SpriteID SPR_FORCE_VEHICLE_TURN = 715; + +/* Vehicle sprite-flags (red/green) */ +static const SpriteID SPR_FLAG_VEH_STOPPED = 3090; +static const SpriteID SPR_FLAG_VEH_RUNNING = 3091; + +static const SpriteID SPR_VEH_BUS_SW_VIEW = 3097; +static const SpriteID SPR_VEH_BUS_SIDE_VIEW = 3098; + +/* Rotor sprite numbers */ +static const SpriteID SPR_ROTOR_STOPPED = 3901; +static const SpriteID SPR_ROTOR_MOVING_1 = 3902; +static const SpriteID SPR_ROTOR_MOVING_3 = 3904; + +/* Town/house sprites */ +static const SpriteID SPR_LIFT = 1443; + +/* used in town_land.h + * CNST1..3 = Those are the different stages of construction + * The last 2 hexas correspond to the type of building it represent, if any */ +static const SpriteID SPR_CNST1_TALLOFFICE_00 = 1421; +static const SpriteID SPR_CNST2_TALLOFFICE_00 = 1422; +static const SpriteID SPR_CNST3_TALLOFFICE_00 = 1423; +static const SpriteID SPR_GROUND_TALLOFFICE_00 = 1424; +static const SpriteID SPR_BUILD_TALLOFFICE_00 = 1425; // temperate +static const SpriteID SPR_CNST1_OFFICE_01 = 1426; +static const SpriteID SPR_CNST2_OFFICE_01 = 1427; +static const SpriteID SPR_BUILD_OFFICE_01 = 1428; // temperate +static const SpriteID SPR_GROUND_OFFICE_01 = 1429; +static const SpriteID SPR_CNST1_SMLBLCKFLATS_02 = 1430; // Small Block of Flats +static const SpriteID SPR_CNST2_SMLBLCKFLATS_02 = 1431; +static const SpriteID SPR_BUILD_SMLBLCKFLATS_02 = 1432; // temperate +static const SpriteID SPR_GROUND_SMLBLCKFLATS_02 = 1433; +static const SpriteID SPR_CNST1_TEMPCHURCH = 1434; +static const SpriteID SPR_CNST2_TEMPCHURCH = 1435; +static const SpriteID SPR_BUILD_TEMPCHURCH = 1436; +static const SpriteID SPR_GROUND_TEMPCHURCH = 1437; +static const SpriteID SPR_CNST1_LARGEOFFICE_04 = 1440; +static const SpriteID SPR_CNST2_LARGEOFFICE_04 = 1441; +static const SpriteID SPR_BUILD_LARGEOFFICE_04 = 1442; // temperate, sub-arctic, subtropical +static const SpriteID SPR_BUILD_LARGEOFFICE_04_SNOW = 4569; // same, with snow +/* These are in fact two houses for the same houseID. so V1 and V2 */ +static const SpriteID SPR_CNST1_TOWNHOUSE_06_V1 = 1444; +static const SpriteID SPR_CNST2_TOWNHOUSE_06_V1 = 1445; +static const SpriteID SPR_BUILD_TOWNHOUSE_06_V1 = 1446; // 1st variation +static const SpriteID SPR_GRND_TOWNHOUSE_06_V1 = 1447; +static const SpriteID SPR_CNST1_TOWNHOUSE_06_V2 = 1501; // used as ground, but is stage1 +static const SpriteID SPR_CNST1_TOWNHOUSE_06_V2_P = 1502; // pipes extensions for previous +static const SpriteID SPR_CNST2_TOWNHOUSE_06_V2_G = 1503; // Ground of cnst stage 2 +static const SpriteID SPR_CNST2_TOWNHOUSE_06_V2 = 1504; // real cnst stage 2 +static const SpriteID SPR_GRND_TOWNHOUSE_06_V2 = 1505; +static const SpriteID SPR_BUILD_TOWNHOUSE_06_V2 = 1506; // 2nd variation +static const SpriteID SPR_CNST1_HOTEL_07_NW = 1448; +static const SpriteID SPR_CNST2_HOTEL_07_NW = 1449; +static const SpriteID SPR_BUILD_HOTEL_07_NW = 1450; +static const SpriteID SPR_CNST1_HOTEL_07_SE = 1451; +static const SpriteID SPR_CNST2_HOTEL_07_SE = 1452; +static const SpriteID SPR_BUILD_HOTEL_07_SE = 1453; +static const SpriteID SPR_STATUE_HORSERIDER_09 = 1454; +static const SpriteID SPR_FOUNTAIN_0A = 1455; +static const SpriteID SPR_PARKSTATUE_0B = 1456; +static const SpriteID SPR_PARKALLEY_0C = 1457; +static const SpriteID SPR_CNST1_OFFICE_0D = 1458; +static const SpriteID SPR_CNST2_OFFICE_0D = 1459; +static const SpriteID SPR_BUILD_OFFICE_0D = 1460; +static const SpriteID SPR_CNST1_SHOPOFFICE_0E = 1461; +static const SpriteID SPR_CNST2_SHOPOFFICE_0E = 1462; +static const SpriteID SPR_BUILD_SHOPOFFICE_0E = 1463; +static const SpriteID SPR_CNST1_SHOPOFFICE_0F = 1464; +static const SpriteID SPR_CNST2_SHOPOFFICE_0F = 1465; +static const SpriteID SPR_BUILD_SHOPOFFICE_0F = 1466; + +/* Easter egg/disaster sprites */ +static const SpriteID SPR_BLIMP = 3905; // Zeppelin +static const SpriteID SPR_BLIMP_CRASHING = 3906; +static const SpriteID SPR_BLIMP_CRASHED = 3907; +static const SpriteID SPR_UFO_SMALL_SCOUT = 3908; // XCOM - UFO Defense +static const SpriteID SPR_UFO_SMALL_SCOUT_DARKER = 3909; +static const SpriteID SPR_SUB_SMALL_NE = 3910; // Silent Service +static const SpriteID SPR_SUB_SMALL_SE = 3911; +static const SpriteID SPR_SUB_SMALL_SW = 3912; +static const SpriteID SPR_SUB_SMALL_NW = 3913; +static const SpriteID SPR_SUB_LARGE_NE = 3914; +static const SpriteID SPR_SUB_LARGE_SE = 3915; +static const SpriteID SPR_SUB_LARGE_SW = 3916; +static const SpriteID SPR_SUB_LARGE_NW = 3917; +static const SpriteID SPR_F_15 = 3918; // F-15 Strike Eagle +static const SpriteID SPR_F_15_FIRING = 3919; +static const SpriteID SPR_UFO_HARVESTER = 3920; // XCOM - UFO Defense +static const SpriteID SPR_XCOM_SKYRANGER = 3921; +static const SpriteID SPR_AH_64A = 3922; // Gunship +static const SpriteID SPR_AH_64A_FIRING = 3923; + +/* main_gui.c */ +static const SpriteID SPR_IMG_TERRAFORM_UP = 694; +static const SpriteID SPR_IMG_TERRAFORM_DOWN = 695; +static const SpriteID SPR_IMG_DYNAMITE = 703; +static const SpriteID SPR_IMG_ROCKS = 4084; +static const SpriteID SPR_IMG_LIGHTHOUSE_DESERT = 4085; // XXX - is Desert image on the desert-climate +static const SpriteID SPR_IMG_TRANSMITTER = 4086; +static const SpriteID SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 91; +static const SpriteID SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 88; +static const SpriteID SPR_IMG_BUILD_RIVER = SPR_OPENTTD_BASE + 136; +static const SpriteID SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 64; +static const SpriteID SPR_IMG_PAUSE = 726; +static const SpriteID SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 90; +static const SpriteID SPR_IMG_SETTINGS = 751; +static const SpriteID SPR_IMG_SAVE = 724; +static const SpriteID SPR_IMG_SMALLMAP = 708; +static const SpriteID SPR_IMG_TOWN = 4077; +static const SpriteID SPR_IMG_SUBSIDIES = 679; +static const SpriteID SPR_IMG_COMPANY_LIST = 1299; +static const SpriteID SPR_IMG_COMPANY_FINANCE = 737; +static const SpriteID SPR_IMG_COMPANY_GENERAL = 743; +static const SpriteID SPR_IMG_GRAPHS = 745; +static const SpriteID SPR_IMG_COMPANY_LEAGUE = 684; +static const SpriteID SPR_IMG_SHOW_COUNTOURS = 738; +static const SpriteID SPR_IMG_SHOW_VEHICLES = 739; +static const SpriteID SPR_IMG_SHOW_ROUTES = 740; +static const SpriteID SPR_IMG_INDUSTRY = 741; +static const SpriteID SPR_IMG_PLANTTREES = 742; +static const SpriteID SPR_IMG_TRAINLIST = 731; +static const SpriteID SPR_IMG_TRUCKLIST = 732; +static const SpriteID SPR_IMG_SHIPLIST = 733; +static const SpriteID SPR_IMG_AIRPLANESLIST = 734; +static const SpriteID SPR_IMG_ZOOMIN = 735; +static const SpriteID SPR_IMG_ZOOMOUT = 736; +static const SpriteID SPR_IMG_BUILDRAIL = 727; +static const SpriteID SPR_IMG_BUILDROAD = 728; +static const SpriteID SPR_IMG_BUILDWATER = 729; +static const SpriteID SPR_IMG_BUILDAIR = 730; +static const SpriteID SPR_IMG_LANDSCAPING = 4083; +static const SpriteID SPR_IMG_MUSIC = 713; +static const SpriteID SPR_IMG_MESSAGES = 680; +static const SpriteID SPR_IMG_QUERY = 723; +static const SpriteID SPR_IMG_SIGN = 4082; +static const SpriteID SPR_IMG_BUY_LAND = 4791; + +/* OPEN TRANSPORT TYCOON in gamescreen */ +static const SpriteID SPR_OTTD_O = 4842; +static const SpriteID SPR_OTTD_P = 4841; +static const SpriteID SPR_OTTD_E = SPR_OPENTTD_BASE + 12; +static const SpriteID SPR_OTTD_D = SPR_OPENTTD_BASE + 13; +static const SpriteID SPR_OTTD_N = 4839; +static const SpriteID SPR_OTTD_T = 4836; +static const SpriteID SPR_OTTD_R = 4837; +static const SpriteID SPR_OTTD_A = 4838; +static const SpriteID SPR_OTTD_S = 4840; +static const SpriteID SPR_OTTD_Y = 4843; +static const SpriteID SPR_OTTD_C = 4844; + +static const SpriteID SPR_HIGHSCORE_CHART_BEGIN = 4804; +static const SpriteID SPR_TYCOON_IMG1_BEGIN = 4814; +static const SpriteID SPR_TYCOON_IMG2_BEGIN = 4824; + +/* Industry sprites */ +static const SpriteID SPR_IT_SUGAR_MINE_SIEVE = 4775; +static const SpriteID SPR_IT_SUGAR_MINE_CLOUDS = 4784; +static const SpriteID SPR_IT_SUGAR_MINE_PILE = 4780; +static const SpriteID SPR_IT_TOFFEE_QUARRY_TOFFEE = 4766; +static const SpriteID SPR_IT_TOFFEE_QUARRY_SHOVEL = 4767; +static const SpriteID SPR_IT_BUBBLE_GENERATOR_SPRING = 4746; +static const SpriteID SPR_IT_BUBBLE_GENERATOR_BUBBLE = 4747; +static const SpriteID SPR_IT_TOY_FACTORY_STAMP_HOLDER = 4717; +static const SpriteID SPR_IT_TOY_FACTORY_STAMP = 4718; +static const SpriteID SPR_IT_TOY_FACTORY_CLAY = 4719; +static const SpriteID SPR_IT_TOY_FACTORY_ROBOT = 4720; +static const SpriteID SPR_IT_POWER_PLANT_TRANSFORMERS = 2054; + +/* small icons of cargo available in station waiting*/ +static const SpriteID SPR_CARGO_PASSENGER = 4297; +static const SpriteID SPR_CARGO_COAL = 4298; +static const SpriteID SPR_CARGO_MAIL = 4299; +static const SpriteID SPR_CARGO_OIL = 4300; +static const SpriteID SPR_CARGO_LIVESTOCK = 4301; +static const SpriteID SPR_CARGO_GOODS = 4302; +static const SpriteID SPR_CARGO_GRAIN = 4303; +static const SpriteID SPR_CARGO_WOOD = 4304; +static const SpriteID SPR_CARGO_IRON_ORE = 4305; +static const SpriteID SPR_CARGO_STEEL = 4306; +static const SpriteID SPR_CARGO_VALUES_GOLD = 4307; // shared between temperate and arctic +static const SpriteID SPR_CARGO_FRUIT = 4308; +static const SpriteID SPR_CARGO_COPPER_ORE = 4309; +static const SpriteID SPR_CARGO_WATERCOLA = 4310; // shared between desert and toyland +static const SpriteID SPR_CARGO_DIAMONDS = 4311; +static const SpriteID SPR_CARGO_FOOD = 4312; +static const SpriteID SPR_CARGO_PAPER = 4313; +static const SpriteID SPR_CARGO_RUBBER = 4314; +static const SpriteID SPR_CARGO_CANDY = 4315; +static const SpriteID SPR_CARGO_SUGAR = 4316; +static const SpriteID SPR_CARGO_TOYS = 4317; +static const SpriteID SPR_CARGO_COTTONCANDY = 4318; +static const SpriteID SPR_CARGO_FIZZYDRINK = 4319; +static const SpriteID SPR_CARGO_TOFFEE = 4320; +static const SpriteID SPR_CARGO_BUBBLES = 4321; +static const SpriteID SPR_CARGO_PLASTIC = 4322; +static const SpriteID SPR_CARGO_BATTERIES = 4323; + +/* Effect vehicles */ +static const SpriteID SPR_BULLDOZER_NE = 1416; +static const SpriteID SPR_BULLDOZER_SE = 1417; +static const SpriteID SPR_BULLDOZER_SW = 1418; +static const SpriteID SPR_BULLDOZER_NW = 1419; + +static const SpriteID SPR_SMOKE_0 = 2040; +static const SpriteID SPR_SMOKE_1 = 2041; +static const SpriteID SPR_SMOKE_2 = 2042; +static const SpriteID SPR_SMOKE_3 = 2043; +static const SpriteID SPR_SMOKE_4 = 2044; + +static const SpriteID SPR_DIESEL_SMOKE_0 = 3073; +static const SpriteID SPR_DIESEL_SMOKE_1 = 3074; +static const SpriteID SPR_DIESEL_SMOKE_2 = 3075; +static const SpriteID SPR_DIESEL_SMOKE_3 = 3076; +static const SpriteID SPR_DIESEL_SMOKE_4 = 3077; +static const SpriteID SPR_DIESEL_SMOKE_5 = 3078; + +static const SpriteID SPR_STEAM_SMOKE_0 = 3079; +static const SpriteID SPR_STEAM_SMOKE_1 = 3080; +static const SpriteID SPR_STEAM_SMOKE_2 = 3081; +static const SpriteID SPR_STEAM_SMOKE_3 = 3082; +static const SpriteID SPR_STEAM_SMOKE_4 = 3083; + +static const SpriteID SPR_ELECTRIC_SPARK_0 = 3084; +static const SpriteID SPR_ELECTRIC_SPARK_1 = 3085; +static const SpriteID SPR_ELECTRIC_SPARK_2 = 3086; +static const SpriteID SPR_ELECTRIC_SPARK_3 = 3087; +static const SpriteID SPR_ELECTRIC_SPARK_4 = 3088; +static const SpriteID SPR_ELECTRIC_SPARK_5 = 3089; + +static const SpriteID SPR_CHIMNEY_SMOKE_0 = 3701; +static const SpriteID SPR_CHIMNEY_SMOKE_1 = 3702; +static const SpriteID SPR_CHIMNEY_SMOKE_2 = 3703; +static const SpriteID SPR_CHIMNEY_SMOKE_3 = 3704; +static const SpriteID SPR_CHIMNEY_SMOKE_4 = 3705; +static const SpriteID SPR_CHIMNEY_SMOKE_5 = 3706; +static const SpriteID SPR_CHIMNEY_SMOKE_6 = 3707; +static const SpriteID SPR_CHIMNEY_SMOKE_7 = 3708; + +static const SpriteID SPR_EXPLOSION_LARGE_0 = 3709; +static const SpriteID SPR_EXPLOSION_LARGE_1 = 3710; +static const SpriteID SPR_EXPLOSION_LARGE_2 = 3711; +static const SpriteID SPR_EXPLOSION_LARGE_3 = 3712; +static const SpriteID SPR_EXPLOSION_LARGE_4 = 3713; +static const SpriteID SPR_EXPLOSION_LARGE_5 = 3714; +static const SpriteID SPR_EXPLOSION_LARGE_6 = 3715; +static const SpriteID SPR_EXPLOSION_LARGE_7 = 3716; +static const SpriteID SPR_EXPLOSION_LARGE_8 = 3717; +static const SpriteID SPR_EXPLOSION_LARGE_9 = 3718; +static const SpriteID SPR_EXPLOSION_LARGE_A = 3719; +static const SpriteID SPR_EXPLOSION_LARGE_B = 3720; +static const SpriteID SPR_EXPLOSION_LARGE_C = 3721; +static const SpriteID SPR_EXPLOSION_LARGE_D = 3722; +static const SpriteID SPR_EXPLOSION_LARGE_E = 3723; +static const SpriteID SPR_EXPLOSION_LARGE_F = 3724; + +static const SpriteID SPR_EXPLOSION_SMALL_0 = 3725; +static const SpriteID SPR_EXPLOSION_SMALL_1 = 3726; +static const SpriteID SPR_EXPLOSION_SMALL_2 = 3727; +static const SpriteID SPR_EXPLOSION_SMALL_3 = 3728; +static const SpriteID SPR_EXPLOSION_SMALL_4 = 3729; +static const SpriteID SPR_EXPLOSION_SMALL_5 = 3730; +static const SpriteID SPR_EXPLOSION_SMALL_6 = 3731; +static const SpriteID SPR_EXPLOSION_SMALL_7 = 3732; +static const SpriteID SPR_EXPLOSION_SMALL_8 = 3733; +static const SpriteID SPR_EXPLOSION_SMALL_9 = 3734; +static const SpriteID SPR_EXPLOSION_SMALL_A = 3735; +static const SpriteID SPR_EXPLOSION_SMALL_B = 3736; + +static const SpriteID SPR_BREAKDOWN_SMOKE_0 = 3737; +static const SpriteID SPR_BREAKDOWN_SMOKE_1 = 3738; +static const SpriteID SPR_BREAKDOWN_SMOKE_2 = 3739; +static const SpriteID SPR_BREAKDOWN_SMOKE_3 = 3740; + +static const SpriteID SPR_BUBBLE_0 = 4748; +static const SpriteID SPR_BUBBLE_1 = 4749; +static const SpriteID SPR_BUBBLE_2 = 4750; +static const SpriteID SPR_BUBBLE_GENERATE_0 = 4751; +static const SpriteID SPR_BUBBLE_GENERATE_1 = 4752; +static const SpriteID SPR_BUBBLE_GENERATE_2 = 4753; +static const SpriteID SPR_BUBBLE_GENERATE_3 = 4754; +static const SpriteID SPR_BUBBLE_BURST_0 = 4755; +static const SpriteID SPR_BUBBLE_BURST_1 = 4756; +static const SpriteID SPR_BUBBLE_BURST_2 = 4757; +static const SpriteID SPR_BUBBLE_ABSORB_0 = 4758; +static const SpriteID SPR_BUBBLE_ABSORB_1 = 4759; +static const SpriteID SPR_BUBBLE_ABSORB_2 = 4760; +static const SpriteID SPR_BUBBLE_ABSORB_3 = 4761; +static const SpriteID SPR_BUBBLE_ABSORB_4 = 4762; + +/* Electrified rail build menu */ +static const SpriteID SPR_BUILD_NS_ELRAIL = SPR_ELRAIL_BASE + 36; +static const SpriteID SPR_BUILD_X_ELRAIL = SPR_ELRAIL_BASE + 37; +static const SpriteID SPR_BUILD_EW_ELRAIL = SPR_ELRAIL_BASE + 38; +static const SpriteID SPR_BUILD_Y_ELRAIL = SPR_ELRAIL_BASE + 39; +static const SpriteID SPR_BUILD_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 44; + +/* airport_gui.c */ +static const SpriteID SPR_IMG_AIRPORT = 744; + +/* dock_gui.c */ +static const SpriteID SPR_IMG_SHIP_DEPOT = 748; +static const SpriteID SPR_IMG_SHIP_DOCK = 746; +static const SpriteID SPR_IMG_BOUY = 693; +static const SpriteID SPR_IMG_AQUEDUCT = SPR_OPENTTD_BASE + 145; + +/* music_gui.c */ +static const SpriteID SPR_IMG_SKIP_TO_PREV = 709; +static const SpriteID SPR_IMG_SKIP_TO_NEXT = 710; +static const SpriteID SPR_IMG_STOP_MUSIC = 711; +static const SpriteID SPR_IMG_PLAY_MUSIC = 712; + +/* road_gui.c */ +static const SpriteID SPR_IMG_ROAD_Y_DIR = 1309; +static const SpriteID SPR_IMG_ROAD_X_DIR = 1310; +static const SpriteID SPR_IMG_AUTOROAD = SPR_OPENTTD_BASE + 82; +static const SpriteID SPR_IMG_ROAD_DEPOT = 1295; +static const SpriteID SPR_IMG_BUS_STATION = 749; +static const SpriteID SPR_IMG_TRUCK_BAY = 750; +static const SpriteID SPR_IMG_BRIDGE = 2594; +static const SpriteID SPR_IMG_ROAD_TUNNEL = 2429; +static const SpriteID SPR_IMG_REMOVE = 714; +static const SpriteID SPR_IMG_ROAD_ONE_WAY = SPR_OPENTTD_BASE + 134; +static const SpriteID SPR_IMG_TRAMWAY_Y_DIR = SPR_TRAMWAY_BASE + 0; +static const SpriteID SPR_IMG_TRAMWAY_X_DIR = SPR_TRAMWAY_BASE + 1; +static const SpriteID SPR_IMG_AUTOTRAM = SPR_OPENTTD_BASE + 84; + +/* rail_gui.c */ +static const SpriteID SPR_IMG_RAIL_NS = 1251; +static const SpriteID SPR_IMG_RAIL_NE = 1252; +static const SpriteID SPR_IMG_RAIL_EW = 1253; +static const SpriteID SPR_IMG_RAIL_NW = 1254; +static const SpriteID SPR_IMG_AUTORAIL = SPR_OPENTTD_BASE + 53; +static const SpriteID SPR_IMG_AUTOELRAIL = SPR_OPENTTD_BASE + 57; +static const SpriteID SPR_IMG_AUTOMONO = SPR_OPENTTD_BASE + 63; +static const SpriteID SPR_IMG_AUTOMAGLEV = SPR_OPENTTD_BASE + 69; + +static const SpriteID SPR_IMG_WAYPOINT = SPR_OPENTTD_BASE + 76; + +static const SpriteID SPR_IMG_DEPOT_RAIL = 1294; +static const SpriteID SPR_IMG_DEPOT_ELRAIL = SPR_OPENTTD_BASE + 61; +static const SpriteID SPR_IMG_DEPOT_MONO = SPR_OPENTTD_BASE + 67; +static const SpriteID SPR_IMG_DEPOT_MAGLEV = SPR_OPENTTD_BASE + 73; + +static const SpriteID SPR_IMG_RAIL_STATION = 1298; +static const SpriteID SPR_IMG_RAIL_SIGNALS = 1291; + +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_NORM = 1287; +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_ENTRY = SPR_SIGNALS_BASE + 12; +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_EXIT = SPR_SIGNALS_BASE + 28; +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_COMBO = SPR_SIGNALS_BASE + 44; +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_PBS = SPR_SIGNALS_BASE + 124; +static const SpriteID SPR_IMG_SIGNAL_ELECTRIC_PBS_OWAY = SPR_SIGNALS_BASE + 140; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_NORM = SPR_SIGNALS_BASE + 60; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_ENTRY = SPR_SIGNALS_BASE + 76; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_EXIT = SPR_SIGNALS_BASE + 92; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_COMBO = SPR_SIGNALS_BASE + 108; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_PBS = SPR_SIGNALS_BASE + 188; +static const SpriteID SPR_IMG_SIGNAL_SEMAPHORE_PBS_OWAY= SPR_SIGNALS_BASE + 204; +static const SpriteID SPR_IMG_SIGNAL_CONVERT = SPR_OPENTTD_BASE + 135; + +static const SpriteID SPR_IMG_TUNNEL_RAIL = 2430; +static const SpriteID SPR_IMG_TUNNEL_MONO = 2431; +static const SpriteID SPR_IMG_TUNNEL_MAGLEV = 2432; + +static const SpriteID SPR_IMG_CONVERT_RAIL = SPR_OPENTTD_BASE + 55; +static const SpriteID SPR_IMG_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 59; +static const SpriteID SPR_IMG_CONVERT_MONO = SPR_OPENTTD_BASE + 65; +static const SpriteID SPR_IMG_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 71; + +/* intro_gui.c, genworld_gui.c */ +static const SpriteID SPR_SELECT_TEMPERATE = 4882; +static const SpriteID SPR_SELECT_TEMPERATE_PUSHED = 4883; +static const SpriteID SPR_SELECT_SUB_ARCTIC = 4884; +static const SpriteID SPR_SELECT_SUB_ARCTIC_PUSHED = 4885; +static const SpriteID SPR_SELECT_SUB_TROPICAL = 4886; +static const SpriteID SPR_SELECT_SUB_TROPICAL_PUSHED = 4887; +static const SpriteID SPR_SELECT_TOYLAND = 4888; +static const SpriteID SPR_SELECT_TOYLAND_PUSHED = 4889; /** Cursor sprite numbers */ -enum CursorSprite { - /* Terraform - * Cursors */ - SPR_CURSOR_MOUSE = 0, - SPR_CURSOR_ZZZ = 1, - SPR_CURSOR_BOUY = 702, - SPR_CURSOR_QUERY = 719, - SPR_CURSOR_HQ = 720, - SPR_CURSOR_SHIP_DEPOT = 721, - SPR_CURSOR_SIGN = 722, - - SPR_CURSOR_TREE = 2010, - SPR_CURSOR_BUY_LAND = 4792, - SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 92, - - SPR_CURSOR_TOWN = 4080, - SPR_CURSOR_INDUSTRY = 4081, - SPR_CURSOR_ROCKY_AREA = 4087, - SPR_CURSOR_LIGHTHOUSE = 4088, - SPR_CURSOR_TRANSMITTER = 4089, - - /* airport cursors */ - SPR_CURSOR_AIRPORT = 2724, - - /* dock cursors */ - SPR_CURSOR_DOCK = 3668, - SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 89, - SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 87, - SPR_CURSOR_RIVER = SPR_OPENTTD_BASE + 137, - SPR_CURSOR_AQUEDUCT = SPR_OPENTTD_BASE + 146, - - /* shared road & rail cursors */ - SPR_CURSOR_BRIDGE = 2593, - - /* rail cursors */ - SPR_CURSOR_NS_TRACK = 1263, - SPR_CURSOR_SWNE_TRACK = 1264, - SPR_CURSOR_EW_TRACK = 1265, - SPR_CURSOR_NWSE_TRACK = 1266, - - SPR_CURSOR_NS_MONO = 1267, - SPR_CURSOR_SWNE_MONO = 1268, - SPR_CURSOR_EW_MONO = 1269, - SPR_CURSOR_NWSE_MONO = 1270, - - SPR_CURSOR_NS_MAGLEV = 1271, - SPR_CURSOR_SWNE_MAGLEV = 1272, - SPR_CURSOR_EW_MAGLEV = 1273, - SPR_CURSOR_NWSE_MAGLEV = 1274, - - SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 40, - SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 41, - SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 42, - SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 43, - - SPR_CURSOR_RAIL_STATION = 1300, - - SPR_CURSOR_TUNNEL_RAIL = 2434, - SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 45, - SPR_CURSOR_TUNNEL_MONO = 2435, - SPR_CURSOR_TUNNEL_MAGLEV = 2436, - - SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 54, - SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 58, - SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 64, - SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 70, - - SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 77, - - SPR_CURSOR_RAIL_DEPOT = 1296, - SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 62, - SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 68, - SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 74, - - SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 56, - SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 60, - SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 66, - SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 72, - - /* road cursors */ - SPR_CURSOR_ROAD_NESW = 1311, - SPR_CURSOR_ROAD_NWSE = 1312, - SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 83, - SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2, - SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3, - SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 85, - - SPR_CURSOR_ROAD_DEPOT = 1297, - SPR_CURSOR_BUS_STATION = 2725, - SPR_CURSOR_TRUCK_STATION = 2726, - SPR_CURSOR_ROAD_TUNNEL = 2433, - - SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110, - SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 111, - SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112, - SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 113, -}; + +/* Terraform + * Cursors */ +static const CursorID SPR_CURSOR_MOUSE = 0; +static const CursorID SPR_CURSOR_ZZZ = 1; +static const CursorID SPR_CURSOR_BOUY = 702; +static const CursorID SPR_CURSOR_QUERY = 719; +static const CursorID SPR_CURSOR_HQ = 720; +static const CursorID SPR_CURSOR_SHIP_DEPOT = 721; +static const CursorID SPR_CURSOR_SIGN = 722; + +static const CursorID SPR_CURSOR_TREE = 2010; +static const CursorID SPR_CURSOR_BUY_LAND = 4792; +static const CursorID SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 92; + +static const CursorID SPR_CURSOR_TOWN = 4080; +static const CursorID SPR_CURSOR_INDUSTRY = 4081; +static const CursorID SPR_CURSOR_ROCKY_AREA = 4087; +static const CursorID SPR_CURSOR_LIGHTHOUSE = 4088; +static const CursorID SPR_CURSOR_TRANSMITTER = 4089; + +/* airport cursors */ +static const CursorID SPR_CURSOR_AIRPORT = 2724; + +/* dock cursors */ +static const CursorID SPR_CURSOR_DOCK = 3668; +static const CursorID SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 89; +static const CursorID SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 87; +static const CursorID SPR_CURSOR_RIVER = SPR_OPENTTD_BASE + 137; +static const CursorID SPR_CURSOR_AQUEDUCT = SPR_OPENTTD_BASE + 146; + +/* shared road & rail cursors */ +static const CursorID SPR_CURSOR_BRIDGE = 2593; + +/* rail cursors */ +static const CursorID SPR_CURSOR_NS_TRACK = 1263; +static const CursorID SPR_CURSOR_SWNE_TRACK = 1264; +static const CursorID SPR_CURSOR_EW_TRACK = 1265; +static const CursorID SPR_CURSOR_NWSE_TRACK = 1266; + +static const CursorID SPR_CURSOR_NS_MONO = 1267; +static const CursorID SPR_CURSOR_SWNE_MONO = 1268; +static const CursorID SPR_CURSOR_EW_MONO = 1269; +static const CursorID SPR_CURSOR_NWSE_MONO = 1270; + +static const CursorID SPR_CURSOR_NS_MAGLEV = 1271; +static const CursorID SPR_CURSOR_SWNE_MAGLEV = 1272; +static const CursorID SPR_CURSOR_EW_MAGLEV = 1273; +static const CursorID SPR_CURSOR_NWSE_MAGLEV = 1274; + +static const CursorID SPR_CURSOR_NS_ELRAIL = SPR_ELRAIL_BASE + 40; +static const CursorID SPR_CURSOR_SWNE_ELRAIL = SPR_ELRAIL_BASE + 41; +static const CursorID SPR_CURSOR_EW_ELRAIL = SPR_ELRAIL_BASE + 42; +static const CursorID SPR_CURSOR_NWSE_ELRAIL = SPR_ELRAIL_BASE + 43; + +static const CursorID SPR_CURSOR_RAIL_STATION = 1300; + +static const CursorID SPR_CURSOR_TUNNEL_RAIL = 2434; +static const CursorID SPR_CURSOR_TUNNEL_ELRAIL = SPR_ELRAIL_BASE + 45; +static const CursorID SPR_CURSOR_TUNNEL_MONO = 2435; +static const CursorID SPR_CURSOR_TUNNEL_MAGLEV = 2436; + +static const CursorID SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 54; +static const CursorID SPR_CURSOR_AUTOELRAIL = SPR_OPENTTD_BASE + 58; +static const CursorID SPR_CURSOR_AUTOMONO = SPR_OPENTTD_BASE + 64; +static const CursorID SPR_CURSOR_AUTOMAGLEV = SPR_OPENTTD_BASE + 70; + +static const CursorID SPR_CURSOR_WAYPOINT = SPR_OPENTTD_BASE + 77; + +static const CursorID SPR_CURSOR_RAIL_DEPOT = 1296; +static const CursorID SPR_CURSOR_ELRAIL_DEPOT = SPR_OPENTTD_BASE + 62; +static const CursorID SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 68; +static const CursorID SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 74; + +static const CursorID SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 56; +static const CursorID SPR_CURSOR_CONVERT_ELRAIL = SPR_OPENTTD_BASE + 60; +static const CursorID SPR_CURSOR_CONVERT_MONO = SPR_OPENTTD_BASE + 66; +static const CursorID SPR_CURSOR_CONVERT_MAGLEV = SPR_OPENTTD_BASE + 72; + +/* road cursors */ +static const CursorID SPR_CURSOR_ROAD_NESW = 1311; +static const CursorID SPR_CURSOR_ROAD_NWSE = 1312; +static const CursorID SPR_CURSOR_AUTOROAD = SPR_OPENTTD_BASE + 83; +static const CursorID SPR_CURSOR_TRAMWAY_NESW = SPR_TRAMWAY_BASE + 2; +static const CursorID SPR_CURSOR_TRAMWAY_NWSE = SPR_TRAMWAY_BASE + 3; +static const CursorID SPR_CURSOR_AUTOTRAM = SPR_OPENTTD_BASE + 85; + +static const CursorID SPR_CURSOR_ROAD_DEPOT = 1297; +static const CursorID SPR_CURSOR_BUS_STATION = 2725; +static const CursorID SPR_CURSOR_TRUCK_STATION = 2726; +static const CursorID SPR_CURSOR_ROAD_TUNNEL = 2433; + +static const CursorID SPR_CURSOR_CLONE_TRAIN = SPR_OPENTTD_BASE + 110; +static const CursorID SPR_CURSOR_CLONE_ROADVEH = SPR_OPENTTD_BASE + 111; +static const CursorID SPR_CURSOR_CLONE_SHIP = SPR_OPENTTD_BASE + 112; +static const CursorID SPR_CURSOR_CLONE_AIRPLANE = SPR_OPENTTD_BASE + 113; /** Animation macro in table/animcursors.h (_animcursors[]) */ enum AnimCursors { @@ -1465,67 +1463,53 @@ assert_compile( TRANSPARENT_BIT != RECOLOUR_BIT ); assert_compile( (1 << TRANSPARENT_BIT & PALETTE_MASK) == 0); assert_compile( (1 << RECOLOUR_BIT & PALETTE_MASK) == 0 ); -enum Recolouring { - PALETTE_RECOLOUR_START = 0x307, -}; - -static const SpriteID PALETTE_CRASH = 0x324; -static const SpriteID PAL_NONE = 0; - - /* note: these numbers are already the modified once the renderer needs. - * the actual sprite number is the upper 16 bits of the number */ - - /** Here a puslating red tile is drawn if you try to build a wrong tunnel or raise/lower land where it is not possible */ -static const SpriteID PALETTE_TILE_RED_PULSATING = 0x303; - /** makes a square red. is used when removing rails or other stuff */ -static const SpriteID PALETTE_SEL_TILE_RED = 0x304; - /** This draws a blueish square (catchment areas for example) */ -static const SpriteID PALETTE_SEL_TILE_BLUE = 0x305; - /* 0x306 is a real sprite (the little dot you get when you try to raise/lower a corner of the map - * here the colour switches begin - * use this if you add stuff to the value, so that the resulting colour - * is not a fixed value. - * NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLOURS yet! */ -enum PaletteSprites { - PALETTE_TO_DARK_BLUE = 0x307, - PALETTE_TO_PALE_GREEN = 0x308, - PALETTE_TO_PINK = 0x309, - PALETTE_TO_YELLOW = 0x30A, - PALETTE_TO_RED = 0x30B, - PALETTE_TO_LIGHT_BLUE = 0x30C, - PALETTE_TO_GREEN = 0x30D, - PALETTE_TO_DARK_GREEN = 0x30E, - PALETTE_TO_BLUE = 0x30F, - PALETTE_TO_CREAM = 0x310, - /* maybe don't use as company colour because it doesn't display in the graphs? */ - PALETTE_TO_MAUVE = 0x311, - PALETTE_TO_PURPLE = 0x312, - PALETTE_TO_ORANGE = 0x313, - PALETTE_TO_BROWN = 0x314, - PALETTE_TO_GREY = 0x315, - PALETTE_TO_WHITE = 0x316, - /* sets colour to bare land stuff, for rail and road (and crossings) */ - PALETTE_TO_BARE_LAND = 0x317, - /* XXX is 318-31A really not used? */ - PALETTE_TO_STRUCT_BLUE = 0x31B, - /* structure colour to something brownish (for the cantilever bridges for example) */ - PALETTE_TO_STRUCT_BROWN = 0x31C, - PALETTE_TO_STRUCT_WHITE = 0x31D, - /* sets bridge or structure to red, little concrete one and cantilever use this one for example */ - PALETTE_TO_STRUCT_RED = 0x31E, - PALETTE_TO_STRUCT_GREEN = 0x31F, - PALETTE_TO_STRUCT_CONCRETE = 0x320, // Sets the suspension bridge to concrete, also other strucutures use it - PALETTE_TO_STRUCT_YELLOW = 0x321, // Sets the bridge colour to yellow (suspension and tubular) - PALETTE_TO_TRANSPARENT = 0x322, // This sets the sprite to transparent - /* This is used for changing the tubular bridges to the silicon display, or some grayish colour */ - PALETTE_TO_STRUCT_GREY = 0x323, - - /* XXX - const - PALETTE_CRASH = 0x324, // this changes stuff to the "crash colour" - * XXX another place where structures are coloured. - * I'm not sure which colours these are */ - PALETTE_59E = 0x59E, - PALETTE_59F = 0x59F, -}; +static const PaletteID PAL_NONE = 0; +/** Here a pulsating red tile is drawn if you try to build a wrong tunnel or raise/lower land where it is not possible */ +static const PaletteID PALETTE_TILE_RED_PULSATING = 0x303; +/** makes a square red. is used when removing rails or other stuff */ +static const PaletteID PALETTE_SEL_TILE_RED = 0x304; +/** This draws a blueish square (catchment areas for example) */ +static const PaletteID PALETTE_SEL_TILE_BLUE = 0x305; + +static const PaletteID PALETTE_RECOLOUR_START = 0x307; +static const PaletteID PALETTE_TO_DARK_BLUE = 0x307; +static const PaletteID PALETTE_TO_PALE_GREEN = 0x308; +static const PaletteID PALETTE_TO_PINK = 0x309; +static const PaletteID PALETTE_TO_YELLOW = 0x30A; +static const PaletteID PALETTE_TO_RED = 0x30B; +static const PaletteID PALETTE_TO_LIGHT_BLUE = 0x30C; +static const PaletteID PALETTE_TO_GREEN = 0x30D; +static const PaletteID PALETTE_TO_DARK_GREEN = 0x30E; +static const PaletteID PALETTE_TO_BLUE = 0x30F; +static const PaletteID PALETTE_TO_CREAM = 0x310; +/* maybe don't use as company colour because it doesn't display in the graphs? */ +static const PaletteID PALETTE_TO_MAUVE = 0x311; +static const PaletteID PALETTE_TO_PURPLE = 0x312; +static const PaletteID PALETTE_TO_ORANGE = 0x313; +static const PaletteID PALETTE_TO_BROWN = 0x314; +static const PaletteID PALETTE_TO_GREY = 0x315; +static const PaletteID PALETTE_TO_WHITE = 0x316; +/* sets colour to bare land stuff, for rail and road (and crossings) */ +static const PaletteID PALETTE_TO_BARE_LAND = 0x317; +/* XXX is 318-31A really not used? */ +static const PaletteID PALETTE_TO_STRUCT_BLUE = 0x31B; +/* structure colour to something brownish (for the cantilever bridges for example) */ +static const PaletteID PALETTE_TO_STRUCT_BROWN = 0x31C; +static const PaletteID PALETTE_TO_STRUCT_WHITE = 0x31D; +/* sets bridge or structure to red, little concrete one and cantilever use this one for example */ +static const PaletteID PALETTE_TO_STRUCT_RED = 0x31E; +static const PaletteID PALETTE_TO_STRUCT_GREEN = 0x31F; +static const PaletteID PALETTE_TO_STRUCT_CONCRETE = 0x320; // Sets the suspension bridge to concrete, also other strucutures use it +static const PaletteID PALETTE_TO_STRUCT_YELLOW = 0x321; // Sets the bridge colour to yellow (suspension and tubular) +static const PaletteID PALETTE_TO_TRANSPARENT = 0x322; // This sets the sprite to transparent +/* This is used for changing the tubular bridges to the silicon display, or some grayish colour */ +static const PaletteID PALETTE_TO_STRUCT_GREY = 0x323; +static const PaletteID PALETTE_CRASH = 0x324; + +/* XXX another place where structures are coloured. + * I'm not sure which colours these are */ +static const PaletteID PALETTE_59E = 0x59E; +static const PaletteID PALETTE_59F = 0x59F; #endif /* SPRITES_H */ |