pasky@513: #ifndef SPRITES_H pasky@513: #define SPRITES_H pasky@513: pasky@513: /* NOTE: pasky@513: ALL SPRITE NUMBERS BELOW 5126 are in the main files pasky@513: SPR_CANALS_BASE is in canalsw.grf pasky@513: SPR_SLOPES_BASE is in trkfoundw.grf pasky@513: SPR_OPENTTD_BASE is in openttd.grf pasky@513: */ pasky@513: pasky@513: /* pasky@513: All elements which consist of two elements should pasky@513: have the same name and then suffixes pasky@513: _GROUND and _BUILD for building-type sprites pasky@513: _REAR and _FRONT for transport-type sprites (tiles where vehicles are on) pasky@513: These sprites are split because of the Z order of the elements pasky@513: (like some parts of a bridge are behind the vehicle, while others are before) pasky@513: */ pasky@513: pasky@513: /* pasky@513: All sprites which are described here are referenced only one to a handful of times pasky@513: throughout the code. When introducing new sprite enums, use meaningful names. pasky@513: Don't be lazy and typing, and only use abbrevations when their meaning is clear or pasky@513: the length of the enum would get out of hand. In that case EXPLAIN THE ABBREVATION pasky@513: IN THIS FILE, and perhaps add some comments in the code where it is used. pasky@513: Now, don't whine about this being too much typing work if the enums are like pasky@513: 30 characters in length. If your editor doen't help you simplifying your work, pasky@513: get a proper editor. If your Operating Systems don't have any decent editors, pasky@513: get a proper Operating System. pasky@513: */ pasky@513: pasky@513: pasky@513: enum Sprites { pasky@513: SPR_SELECT_TILE = 752, pasky@513: SPR_DOT = 774, // corner marker for lower/raise land pasky@513: SPR_DOT_SMALL = 4078, pasky@513: SPR_WHITE_POINT = 4079, pasky@513: pasky@513: /* ASCII */ pasky@513: SPR_ASCII_SPACE = 2, pasky@513: SPR_ASCII_SPACE_SMALL = 226, pasky@513: SPR_ASCII_SPACE_BIG = 450, pasky@513: pasky@513: /* Extra graphic spritenumbers */ pasky@513: SPR_CANALS_BASE = 5126, pasky@513: SPR_SLOPES_BASE = SPR_CANALS_BASE + 70, dominik@1070: SPR_AUTORAIL_BASE = SPR_SLOPES_BASE + 78, dominik@1070: SPR_OPENTTD_BASE = SPR_AUTORAIL_BASE + 55, // can be lowered once autorail.grf is finalized pasky@513: dominik@579: SPR_BLOT = SPR_OPENTTD_BASE + 32, // colored circle (mainly used as vehicle profit marker and for sever compatibility) dominik@579: truelight@862: SPR_PIN_UP = SPR_OPENTTD_BASE + 62, // pin icon darkvater@682: SPR_PIN_DOWN = SPR_OPENTTD_BASE + 63, truelight@862: SPR_WINDOW_RESIZE = SPR_OPENTTD_BASE + 94, // resize icon darkvater@884: // arrow icons pointing in all 4 directions darkvater@884: SPR_ARROW_DOWN = SPR_OPENTTD_BASE + 95, darkvater@884: SPR_ARROW_UP = SPR_OPENTTD_BASE + 96, darkvater@884: SPR_ARROW_LEFT = SPR_OPENTTD_BASE + 97, darkvater@884: SPR_ARROW_RIGHT = SPR_OPENTTD_BASE + 98, truelight@862: truelight@862: dominik@579: /* Network GUI sprites */ dominik@579: SPR_SQUARE = SPR_OPENTTD_BASE + 23, // colored square (used for newgrf compatibility) dominik@579: SPR_LOCK = SPR_OPENTTD_BASE + 22, // lock icon (for password protected servers) dominik@579: SPR_FLAGS_BASE = SPR_OPENTTD_BASE + 90, // start of the flags block (in same order as enum NetworkLanguage) pasky@513: pasky@513: /* Manager face sprites */ pasky@513: SPR_GRADIENT = 874, // background gradient behind manager face pasky@513: pasky@513: /* Shadow cell */ pasky@513: SPR_SHADOW_CELL = 1004, truelight@862: pasky@513: /* Sliced view shadow cells */ pasky@513: /* Maybe we have differen ones in the future */ pasky@513: SPR_MAX_SLICE = SPR_OPENTTD_BASE + 71, pasky@513: SPR_MIN_SLICE = SPR_OPENTTD_BASE + 71, pasky@513: pasky@513: /* Unmovables spritenumbers */ pasky@513: SPR_UNMOVABLE_TRANSMITTER = 2601, pasky@513: SPR_UNMOVABLE_LIGHTHOUSE = 2602, pasky@513: SPR_TINYHQ_NORTH = 2603, pasky@513: SPR_TINYHQ_EAST = 2604, pasky@513: SPR_TINYHQ_WEST = 2605, pasky@513: SPR_TINYHQ_SOUTH = 2606, pasky@513: SPR_SMALLHQ_NORTH = 2607, pasky@513: SPR_SMALLHQ_EAST = 2608, pasky@513: SPR_SMALLHQ_WEST = 2609, pasky@513: SPR_SMALLHQ_SOUTH = 2610, pasky@513: SPR_MEDIUMHQ_NORTH = 2611, pasky@513: SPR_MEDIUMHQ_NORTH_WALL = 2612, pasky@513: SPR_MEDIUMHQ_EAST = 2613, pasky@513: SPR_MEDIUMHQ_EAST_WALL = 2614, pasky@513: SPR_MEDIUMHQ_WEST = 2615, pasky@513: SPR_MEDIUMHQ_WEST_WALL = 2616, //very tiny piece of wall pasky@513: SPR_MEDIUMHQ_SOUTH = 2617, pasky@513: SPR_LARGEHQ_NORTH_GROUND = 2618, pasky@513: SPR_LARGEHQ_NORTH_BUILD = 2619, pasky@513: SPR_LARGEHQ_EAST_GROUND = 2620, pasky@513: SPR_LARGEHQ_EAST_BUILD = 2621, pasky@513: SPR_LARGEHQ_WEST_GROUND = 2622, pasky@513: SPR_LARGEHQ_WEST_BUILD = 2623, pasky@513: SPR_LARGEHQ_SOUTH = 2624, pasky@513: SPR_HUGEHQ_NORTH_GROUND = 2625, pasky@513: SPR_HUGEHQ_NORTH_BUILD = 2626, pasky@513: SPR_HUGEHQ_EAST_GROUND = 2627, pasky@513: SPR_HUGEHQ_EAST_BUILD = 2628, pasky@513: SPR_HUGEHQ_WEST_GROUND = 2629, pasky@513: SPR_HUGEHQ_WEST_BUILD = 2630, pasky@513: SPR_HUGEHQ_SOUTH = 2631, pasky@513: SPR_STATUE_GROUND = 1420, pasky@513: SPR_STATUE_COMPANY = 2623, pasky@513: SPR_BOUGHT_LAND = 4790, pasky@513: pasky@513: /* sprites for rail and rail stations*/ pasky@513: SPR_RAIL_TRACK_Y = 1011, pasky@513: SPR_RAIL_TRACK_X = 1012, pasky@513: SPR_RAIL_TRACK_Y_SNOW = 1037, pasky@513: SPR_RAIL_TRACK_X_SNOW = 1038, pasky@513: SPR_RAIL_DEPOT_SE_1 = 1063, pasky@513: SPR_RAIL_DEPOT_SE_2 = 1064, pasky@513: SPR_RAIL_DEPOT_SW_1 = 1065, pasky@513: SPR_RAIL_DEPOT_SW_2 = 1066, pasky@513: SPR_RAIL_DEPOT_NE = 1067, pasky@513: SPR_RAIL_DEPOT_NW = 1068, pasky@513: SPR_RAIL_PLATFORM_Y_FRONT = 1069, pasky@513: SPR_RAIL_PLATFORM_X_REAR = 1070, pasky@513: SPR_RAIL_PLATFORM_Y_REAR = 1071, pasky@513: SPR_RAIL_PLATFORM_X_FRONT = 1072, pasky@513: SPR_RAIL_PLATFORM_BUILDING_X = 1073, pasky@513: SPR_RAIL_PLATFORM_BUILDING_Y = 1074, pasky@513: SPR_RAIL_PLATFORM_PILLARS_Y_FRONT = 1075, pasky@513: SPR_RAIL_PLATFORM_PILLARS_X_REAR = 1076, pasky@513: SPR_RAIL_PLATFORM_PILLARS_Y_REAR = 1077, pasky@513: SPR_RAIL_PLATFORM_PILLARS_X_FRONT = 1078, pasky@513: SPR_RAIL_ROOF_STRUCTURE_X_TILE_A = 1079, //First half of the roof structure pasky@513: SPR_RAIL_ROOF_STRUCTURE_Y_TILE_A = 1080, pasky@513: SPR_RAIL_ROOF_STRUCTURE_X_TILE_B = 1081, //Second half of the roof structure pasky@513: SPR_RAIL_ROOF_STRUCTURE_Y_TILE_B = 1082, pasky@513: SPR_RAIL_ROOF_GLASS_X_TILE_A = 1083, //First half of the roof glass pasky@513: SPR_RAIL_ROOF_GLASS_Y_TILE_A = 1084, pasky@513: SPR_RAIL_ROOF_GLASS_X_TILE_B = 1085, //second half of the roof glass pasky@513: SPR_RAIL_ROOF_GLASS_Y_TILE_B = 1086, pasky@513: SPR_CHECKPOINT_X_1 = SPR_OPENTTD_BASE + 18, pasky@513: SPR_CHECKPOINT_X_2 = SPR_OPENTTD_BASE + 19, pasky@513: SPR_CHECKPOINT_Y_1 = SPR_OPENTTD_BASE + 20, pasky@513: SPR_CHECKPOINT_Y_2 = SPR_OPENTTD_BASE + 21, pasky@513: OFFSET_TILEH_IMPOSSIBLE = 0, pasky@513: OFFSET_TILEH_1 = 14, pasky@513: OFFSET_TILEH_2 = 15, pasky@513: OFFSET_TILEH_3 = 22, pasky@513: OFFSET_TILEH_4 = 13, pasky@513: OFFSET_TILEH_6 = 21, pasky@513: OFFSET_TILEH_7 = 17, pasky@513: OFFSET_TILEH_8 = 12, pasky@513: OFFSET_TILEH_9 = 23, pasky@513: OFFSET_TILEH_11 = 18, pasky@513: OFFSET_TILEH_12 = 20, pasky@513: OFFSET_TILEH_13 = 19, pasky@513: OFFSET_TILEH_14 = 16, pasky@513: pasky@513: /* sprites for airports and airfields*/ pasky@513: /* Small airports are AIRFIELD, everything else is AIRPORT */ pasky@513: SPR_HELIPORT = 2633, pasky@513: SPR_AIRPORT_APRON = 2634, pasky@513: SPR_AIRPORT_AIRCRAFT_STAND = 2635, pasky@513: SPR_AIRPORT_TAXIWAY_NS_WEST = 2636, pasky@513: SPR_AIRPORT_TAXIWAY_EW_SOUTH = 2637, pasky@513: SPR_AIRPORT_TAXIWAY_XING_SOUTH = 2638, pasky@513: SPR_AIRPORT_TAXIWAY_XING_WEST = 2639, pasky@513: SPR_AIRPORT_TAXIWAY_NS_CTR = 2640, pasky@513: SPR_AIRPORT_TAXIWAY_XING_EAST = 2641, pasky@513: SPR_AIRPORT_TAXIWAY_NS_EAST = 2642, pasky@513: SPR_AIRPORT_TAXIWAY_EW_NORTH = 2643, pasky@513: SPR_AIRPORT_TAXIWAY_EW_CTR = 2644, pasky@513: SPR_AIRPORT_RUNWAY_EXIT_A = 2645, pasky@513: SPR_AIRPORT_RUNWAY_EXIT_B = 2646, pasky@513: SPR_AIRPORT_RUNWAY_EXIT_C = 2647, pasky@513: SPR_AIRPORT_RUNWAY_EXIT_D = 2648, pasky@513: SPR_AIRPORT_RUNWAY_END = 2649, //We should have different ends pasky@513: SPR_AIRPORT_TERMINAL_A = 2650, pasky@513: SPR_AIRPORT_TOWER = 2651, pasky@513: SPR_AIRPORT_CONCOURSE = 2652, pasky@513: SPR_AIRPORT_TERMINAL_B = 2653, pasky@513: SPR_AIRPORT_TERMINAL_C = 2654, pasky@513: SPR_AIRPORT_HANGAR_FRONT = 2655, pasky@513: SPR_AIRPORT_HANGAR_REAR = 2656, pasky@513: SPR_AIRFIELD_HANGAR_FRONT = 2657, pasky@513: SPR_AIRFIELD_HANGAR_REAR = 2658, pasky@513: SPR_AIRPORT_JETWAY_1 = 2659, pasky@513: SPR_AIRPORT_JETWAY_2 = 2660, pasky@513: SPR_AIRPORT_JETWAY_3 = 2661, pasky@513: SPR_AIRPORT_PASSENGER_TUNNEL = 2662, pasky@513: SPR_AIRPORT_FENCE_Y = 2663, pasky@513: SPR_AIRPORT_FENCE_X = 2664, pasky@513: SPR_AIRFIELD_TERM_A = 2665, pasky@513: SPR_AIRFIELD_TERM_B = 2666, pasky@513: SPR_AIRFIELD_TERM_C_GROUND = 2667, pasky@513: SPR_AIRFIELD_TERM_C_BUILD = 2668, pasky@513: SPR_AIRFIELD_APRON_A = 2669, pasky@513: SPR_AIRFIELD_APRON_B = 2670, pasky@513: SPR_AIRFIELD_APRON_C = 2671, pasky@513: SPR_AIRFIELD_APRON_D = 2672, pasky@513: SPR_AIRFIELD_RUNWAY_NEAR_END = 2673, pasky@513: SPR_AIRFIELD_RUNWAY_MIDDLE = 2674, pasky@513: SPR_AIRFIELD_RUNWAY_FAR_END = 2675, pasky@513: SPR_AIRFIELD_WIND_1 = 2676, pasky@513: SPR_AIRFIELD_WIND_2 = 2677, pasky@513: SPR_AIRFIELD_WIND_3 = 2678, pasky@513: SPR_AIRFIELD_WIND_4 = 2679, pasky@513: SPR_AIRPORT_RADAR_1 = 2680, pasky@513: SPR_AIRPORT_RADAR_2 = 2681, pasky@513: SPR_AIRPORT_RADAR_3 = 2682, pasky@513: SPR_AIRPORT_RADAR_4 = 2683, pasky@513: SPR_AIRPORT_RADAR_5 = 2684, pasky@513: SPR_AIRPORT_RADAR_6 = 2685, pasky@513: SPR_AIRPORT_RADAR_7 = 2686, pasky@513: SPR_AIRPORT_RADAR_8 = 2687, pasky@513: SPR_AIRPORT_RADAR_9 = 2688, pasky@513: SPR_AIRPORT_RADAR_A = 2689, pasky@513: SPR_AIRPORT_RADAR_B = 2690, pasky@513: SPR_AIRPORT_RADAR_C = 2691, pasky@513: SPR_AIRPORT_HELIPAD = SPR_OPENTTD_BASE + 31, pasky@513: pasky@513: /* Road Stops */ pasky@513: /* Road stops have a ground tile and 3 buildings, one on each side pasky@513: (except the side where the entry is). These are marked _A _B and _C pasky@513: */ pasky@513: SPR_BUS_STOP_NE_GROUND = 2692, pasky@513: SPR_BUS_STOP_SE_GROUND = 2693, pasky@513: SPR_BUS_STOP_SW_GROUND = 2694, pasky@513: SPR_BUS_STOP_NW_GROUND = 2695, pasky@513: SPR_BUS_STOP_NE_BUILD_A = 2696, pasky@513: SPR_BUS_STOP_SE_BUILD_A = 2697, pasky@513: SPR_BUS_STOP_SW_BUILD_A = 2698, pasky@513: SPR_BUS_STOP_NW_BUILD_A = 2699, pasky@513: SPR_BUS_STOP_NE_BUILD_B = 2700, pasky@513: SPR_BUS_STOP_SE_BUILD_B = 2701, pasky@513: SPR_BUS_STOP_SW_BUILD_B = 2702, pasky@513: SPR_BUS_STOP_NW_BUILD_B = 2703, pasky@513: SPR_BUS_STOP_NE_BUILD_C = 2704, pasky@513: SPR_BUS_STOP_SE_BUILD_C = 2705, pasky@513: SPR_BUS_STOP_SW_BUILD_C = 2706, pasky@513: SPR_BUS_STOP_NW_BUILD_C = 2707, pasky@513: SPR_TRUCK_STOP_NE_GROUND = 2708, pasky@513: SPR_TRUCK_STOP_SE_GROUND = 2709, pasky@513: SPR_TRUCK_STOP_SW_GROUND = 2710, pasky@513: SPR_TRUCK_STOP_NW_GROUND = 2711, pasky@513: SPR_TRUCK_STOP_NE_BUILD_A = 2712, pasky@513: SPR_TRUCK_STOP_SE_BUILD_A = 2713, pasky@513: SPR_TRUCK_STOP_SW_BUILD_A = 2714, pasky@513: SPR_TRUCK_STOP_NW_BUILD_A = 2715, pasky@513: SPR_TRUCK_STOP_NE_BUILD_B = 2716, pasky@513: SPR_TRUCK_STOP_SE_BUILD_B = 2717, pasky@513: SPR_TRUCK_STOP_SW_BUILD_B = 2718, pasky@513: SPR_TRUCK_STOP_NW_BUILD_B = 2719, pasky@513: SPR_TRUCK_STOP_NE_BUILD_C = 2720, pasky@513: SPR_TRUCK_STOP_SE_BUILD_C = 2721, pasky@513: SPR_TRUCK_STOP_SW_BUILD_C = 2722, pasky@513: SPR_TRUCK_STOP_NW_BUILD_C = 2723, pasky@513: pasky@513: /* Sprites for docks */ pasky@513: /* Docks consist of two tiles, the sloped one and the flat one */ pasky@513: SPR_DOCK_SLOPE_NE = 2727, pasky@513: SPR_DOCK_SLOPE_SE = 2728, pasky@513: SPR_DOCK_SLOPE_SW = 2729, pasky@513: SPR_DOCK_SLOPE_NW = 2730, pasky@513: SPR_DOCK_FLAT_X = 2731, //for NE and SW pasky@513: SPR_DOCK_FLAT_Y = 2732, //for NW and SE pasky@513: SPR_BUOY = 4076, //XXX this sucks, because it displays wrong stuff on canals pasky@513: pasky@513: /* Sprites for road */ pasky@513: SPR_ROAD_Y = 1332, pasky@513: SPR_ROAD_X = 1333, pasky@513: SPR_ROAD_Y_SNOW = 1351, pasky@513: SPR_ROAD_X_SNOW = 1352, pasky@513: pasky@513: /* Landscape sprites */ pasky@513: SPR_FLAT_BARE_LAND = 3924, pasky@513: SPR_FLAT_1_THIRD_GRASS_TILE = 3943, pasky@513: SPR_FLAT_2_THIRD_GRASS_TILE = 3962, pasky@513: SPR_FLAT_GRASS_TILE = 3981, pasky@513: SPR_FLAT_ROUGH_LAND = 4000, pasky@513: SPR_FLAT_ROUGH_LAND_1 = 4019, pasky@513: SPR_FLAT_ROUGH_LAND_2 = 4020, pasky@513: SPR_FLAT_ROUGH_LAND_3 = 4021, pasky@513: SPR_FLAT_ROUGH_LAND_4 = 4022, pasky@513: SPR_FLAT_ROCKY_LAND_1 = 4023, pasky@513: SPR_FLAT_ROCKY_LAND_2 = 4042, pasky@513: SPR_FLAT_WATER_TILE = 4061, pasky@513: SPR_FLAT_1_QUART_SNOWY_TILE = 4493, pasky@513: SPR_FLAT_2_QUART_SNOWY_TILE = 4512, pasky@513: SPR_FLAT_3_QUART_SNOWY_TILE = 4531, pasky@513: SPR_FLAT_SNOWY_TILE = 4550, pasky@513: pasky@513: /* Hedge, Farmland-fence sprites */ pasky@513: SPR_HEDGE_BUSHES = 4090, pasky@513: SPR_HEDGE_BUSHES_WITH_GATE = 4096, pasky@513: SPR_HEDGE_FENCE = 4102, pasky@513: SPR_HEDGE_BLOOMBUSH_YELLOW = 4108, pasky@513: SPR_HEDGE_BLOOMBUSH_RED = 4114, pasky@513: SPR_HEDGE_STONE = 4120, pasky@513: pasky@513: /* Farmland sprites, only flat tiles listed, various stages */ pasky@513: SPR_FARMLAND_BARE = 4126, pasky@513: SPR_FARMLAND_STATE_1 = 4145, pasky@513: SPR_FARMLAND_STATE_2 = 4164, pasky@513: SPR_FARMLAND_STATE_3 = 4183, pasky@513: SPR_FARMLAND_STATE_4 = 4202, pasky@513: SPR_FARMLAND_STATE_5 = 4221, pasky@513: SPR_FARMLAND_STATE_6 = 4240, pasky@513: SPR_FARMLAND_STATE_7 = 4259, pasky@513: SPR_FARMLAND_HAYPACKS = 4278, pasky@513: pasky@513: /* Shores */ pasky@513: SPR_NO_SHORE = 0, //used for tileh which have no shore pasky@513: SPR_SHORE_TILEH_4 = 4062, pasky@513: SPR_SHORE_TILEH_1 = 4063, pasky@513: SPR_SHORE_TILEH_2 = 4064, pasky@513: SPR_SHORE_TILEH_8 = 4065, pasky@513: SPR_SHORE_TILEH_6 = 4066, pasky@513: SPR_SHORE_TILEH_12 = 4067, pasky@513: SPR_SHORE_TILEH_3 = 4068, pasky@513: SPR_SHORE_TILEH_9 = 4069, pasky@513: pasky@513: /* Water-related sprites */ pasky@513: SPR_SHIP_DEPOT_SE_FRONT = 4070, pasky@513: SPR_SHIP_DEPOT_SW_FRONT = 4071, pasky@513: SPR_SHIP_DEPOT_NW = 4072, pasky@513: SPR_SHIP_DEPOT_NE = 4073, pasky@513: SPR_SHIP_DEPOT_SE_REAR = 4074, pasky@513: SPR_SHIP_DEPOT_SW_REAR = 4075, pasky@513: //here come sloped water sprites pasky@513: SPR_WATER_SLOPE_Y_UP = SPR_CANALS_BASE + 5, //Water flowing negative Y direction pasky@513: SPR_WATER_SLOPE_X_DOWN = SPR_CANALS_BASE + 6, //positive X pasky@513: SPR_WATER_SLOPE_X_UP = SPR_CANALS_BASE + 7, //negative X pasky@513: SPR_WATER_SLOPE_Y_DOWN = SPR_CANALS_BASE + 8, //positive Y pasky@513: //sprites for the shiplifts pasky@513: //there are 4 kinds of shiplifts, each of them is 3 tiles long. pasky@513: //the four kinds are running in the X and Y direction and pasky@513: //are "lowering" either in the "+" or the "-" direction. pasky@513: //the three tiles are the center tile (where the slope is) pasky@513: //and a bottom and a top tile pasky@513: SPR_SHIPLIFT_Y_UP_CENTER_REAR = SPR_CANALS_BASE + 9, pasky@513: SPR_SHIPLIFT_X_DOWN_CENTER_REAR = SPR_CANALS_BASE + 10, pasky@513: SPR_SHIPLIFT_X_UP_CENTER_REAR = SPR_CANALS_BASE + 11, pasky@513: SPR_SHIPLIFT_Y_DOWN_CENTER_REAR = SPR_CANALS_BASE + 12, pasky@513: SPR_SHIPLIFT_Y_UP_CENTER_FRONT = SPR_CANALS_BASE + 13, pasky@513: SPR_SHIPLIFT_X_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 14, pasky@513: SPR_SHIPLIFT_X_UP_CENTER_FRONT = SPR_CANALS_BASE + 15, pasky@513: SPR_SHIPLIFT_Y_DOWN_CENTER_FRONT = SPR_CANALS_BASE + 16, pasky@513: SPR_SHIPLIFT_Y_UP_BOTTOM_REAR = SPR_CANALS_BASE + 17, pasky@513: SPR_SHIPLIFT_X_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 18, pasky@513: SPR_SHIPLIFT_X_UP_BOTTOM_REAR = SPR_CANALS_BASE + 19, pasky@513: SPR_SHIPLIFT_Y_DOWN_BOTTOM_REAR = SPR_CANALS_BASE + 20, pasky@513: SPR_SHIPLIFT_Y_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 21, pasky@513: SPR_SHIPLIFT_X_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 22, pasky@513: SPR_SHIPLIFT_X_UP_BOTTOM_FRONT = SPR_CANALS_BASE + 23, pasky@513: SPR_SHIPLIFT_Y_DOWN_BOTTOM_FRONT = SPR_CANALS_BASE + 24, pasky@513: SPR_SHIPLIFT_Y_UP_TOP_REAR = SPR_CANALS_BASE + 25, pasky@513: SPR_SHIPLIFT_X_DOWN_TOP_REAR = SPR_CANALS_BASE + 26, pasky@513: SPR_SHIPLIFT_X_UP_TOP_REAR = SPR_CANALS_BASE + 27, pasky@513: SPR_SHIPLIFT_Y_DOWN_TOP_REAR = SPR_CANALS_BASE + 28, pasky@513: SPR_SHIPLIFT_Y_UP_TOP_FRONT = SPR_CANALS_BASE + 29, pasky@513: SPR_SHIPLIFT_X_DOWN_TOP_FRONT = SPR_CANALS_BASE + 30, pasky@513: SPR_SHIPLIFT_X_UP_TOP_FRONT = SPR_CANALS_BASE + 31, pasky@513: SPR_SHIPLIFT_Y_DOWN_TOP_FRONT = SPR_CANALS_BASE + 32, pasky@513: pasky@513: /* Sprites for tunnels and bridges */ pasky@513: SPR_TUNNEL_ENTRY_REAR_RAIL = 2365, pasky@513: SPR_TUNNEL_ENTRY_REAR_ROAD = 2389, pasky@513: pasky@513: /* bridge type sprites */ pasky@513: pasky@513: /* Wooden bridge (type 0) */ pasky@513: SPR_BTWDN_RAIL_Y_REAR = 2545, pasky@513: SPR_BTWDN_RAIL_X_REAR = 2546, pasky@513: SPR_BTWDN_ROAD_Y_REAR = 2547, pasky@513: SPR_BTWDN_ROAD_X_REAR = 2548, pasky@513: SPR_BTWDN_Y_FRONT = 2549, pasky@513: SPR_BTWDN_X_FRONT = 2550, pasky@513: SPR_BTWDN_Y_PILLAR = 2551, pasky@513: SPR_BTWDN_X_PILLAR = 2552, pasky@513: SPR_BTWDN_MONO_Y_REAR = 4361, pasky@513: SPR_BTWDN_MONO_X_REAR = 4362, pasky@513: SPR_BTWDN_MGLV_Y_REAR = 4400, pasky@513: SPR_BTWDN_MGLV_X_REAR = 4401, pasky@513: /* ramps */ pasky@513: SPR_BTWDN_ROAD_RAMP_Y_DOWN = 2529, pasky@513: SPR_BTWDN_ROAD_RAMP_X_DOWN = 2530, pasky@513: SPR_BTWDN_ROAD_RAMP_X_UP = 2531, //for some weird reason the order is swapped pasky@513: SPR_BTWDN_ROAD_RAMP_Y_UP = 2532, //between X and Y. pasky@513: SPR_BTWDN_ROAD_Y_SLOPE_UP = 2533, pasky@513: SPR_BTWDN_ROAD_X_SLOPE_UP = 2534, pasky@513: SPR_BTWDN_ROAD_Y_SLOPE_DOWN = 2535, pasky@513: SPR_BTWDN_ROAD_X_SLOPE_DOWN = 2536, pasky@513: SPR_BTWDN_RAIL_RAMP_Y_DOWN = 2537, pasky@513: SPR_BTWDN_RAIL_RAMP_X_DOWN = 2538, pasky@513: SPR_BTWDN_RAIL_RAMP_X_UP = 2539, //for some weird reason the order is swapped pasky@513: SPR_BTWDN_RAIL_RAMP_Y_UP = 2540, //between X and Y. pasky@513: SPR_BTWDN_RAIL_Y_SLOPE_UP = 2541, pasky@513: SPR_BTWDN_RAIL_X_SLOPE_UP = 2542, pasky@513: SPR_BTWDN_RAIL_Y_SLOPE_DOWN = 2543, pasky@513: SPR_BTWDN_RAIL_X_SLOPE_DOWN = 2544, pasky@513: SPR_BTWDN_MONO_RAMP_Y_DOWN = 4352, pasky@513: SPR_BTWDN_MONO_RAMP_X_DOWN = 4353, pasky@513: SPR_BTWDN_MONO_RAMP_X_UP = 4354, //for some weird reason the order is swapped pasky@513: SPR_BTWDN_MONO_RAMP_Y_UP = 4355, //between X and Y. pasky@513: SPR_BTWDN_MONO_Y_SLOPE_UP = 4356, pasky@513: SPR_BTWDN_MONO_X_SLOPE_UP = 4357, pasky@513: SPR_BTWDN_MONO_Y_SLOPE_DOWN = 4358, pasky@513: SPR_BTWDN_MONO_X_SLOPE_DOWN = 4359, pasky@513: SPR_BTWDN_MGLV_RAMP_Y_DOWN = 4392, pasky@513: SPR_BTWDN_MGLV_RAMP_X_DOWN = 4393, pasky@513: SPR_BTWDN_MGLV_RAMP_X_UP = 4394, //for some weird reason the order is swapped pasky@513: SPR_BTWDN_MGLV_RAMP_Y_UP = 4395, //between X and Y. pasky@513: SPR_BTWDN_MGLV_Y_SLOPE_UP = 4396, pasky@513: SPR_BTWDN_MGLV_X_SLOPE_UP = 4397, pasky@513: SPR_BTWDN_MGLV_Y_SLOPE_DOWN = 4398, pasky@513: SPR_BTWDN_MGLV_X_SLOPE_DOWN = 4399, pasky@513: pasky@513: /* Steel Girder with arches */ pasky@513: /* BTSGA == Bridge Type Steel Girder Arched */ pasky@513: /* This is bridge type number 2 */ pasky@513: SPR_BTSGA_RAIL_X_REAR = 2499, pasky@513: SPR_BTSGA_RAIL_Y_REAR = 2500, pasky@513: SPR_BTSGA_ROAD_X_REAR = 2501, pasky@513: SPR_BTSGA_ROAD_Y_REAR = 2502, pasky@513: SPR_BTSGA_X_FRONT = 2503, pasky@513: SPR_BTSGA_Y_FRONT = 2504, pasky@513: SPR_BTSGA_X_PILLAR = 2505, pasky@513: SPR_BTSGA_Y_PILLAR = 2606, pasky@513: SPR_BTSGA_MONO_X_REAR = 4324, pasky@513: SPR_BTSGA_MONO_Y_REAR = 4325, pasky@513: SPR_BTSGA_MGLV_X_REAR = 4364, pasky@513: SPR_BTSGA_MGLV_Y_REAR = 4365, pasky@513: pasky@513: /* BTSUS == Suspension bridge */ pasky@513: /* TILE_* denotes the different tiles a suspension bridge pasky@513: can have pasky@513: TILE_A and TILE_B are the "beginnings" and "ends" of the pasky@513: suspension system. they have small rectangluar endcaps pasky@513: TILE_C and TILE_D look almost identical to TILE_A and pasky@513: TILE_B, but they do not have the "endcaps". They form the pasky@513: middle part pasky@513: TILE_E is a condensed configuration of two pillars. while they pasky@513: are usually 2 pillars apart, they only have 1 pillar separation pasky@513: here pasky@513: TILE_F is an extended configuration of pillars. they are pasky@513: plugged in when pillars should be 3 tiles apart pasky@513: pasky@513: */ pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_A = 2453, pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_B = 2454, pasky@513: SPR_BTSUS_Y_FRONT_TILE_A = 2455, pasky@513: SPR_BTSUS_Y_FRONT_TILE_B = 2456, pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_D = 2457, pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_C = 2458, pasky@513: SPR_BTSUS_Y_FRONT_TILE_D = 2459, pasky@513: SPR_BTSUS_Y_FRONT_TILE_C = 2460, pasky@513: SPR_BTSUS_ROAD_X_REAR_TILE_A = 2461, pasky@513: SPR_BTSUS_ROAD_X_REAR_TILE_B = 2462, pasky@513: SPR_BTSUS_X_FRONT_TILE_A = 2463, pasky@513: SPR_BTSUS_X_FRONT_TILE_B = 2464, pasky@513: SPR_BTSUS_ROAD_X_TILE_D = 2465, pasky@513: SPR_BTSUS_ROAD_X_TILE_C = 2466, pasky@513: SPR_BTSUS_X_FRONT_TILE_D = 2467, pasky@513: SPR_BTSUS_X_FRONT_TILE_C = 2468, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_A = 2469, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_B = 2470, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_D = 2471, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_C = 2472, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_A = 2473, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_B = 2474, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_D = 2475, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_C = 2476, pasky@513: SPR_BTSUS_Y_PILLAR_TILE_A = 2477, pasky@513: SPR_BTSUS_Y_PILLAR_TILE_B = 2478, pasky@513: SPR_BTSUS_Y_PILLAR_TILE_D = 2479, pasky@513: SPR_BTSUS_Y_PILLAR_TILE_C = 2480, pasky@513: SPR_BTSUS_X_PILLAR_TILE_A = 2481, pasky@513: SPR_BTSUS_X_PILLAR_TILE_B = 2482, pasky@513: SPR_BTSUS_X_PILLAR_TILE_D = 2483, pasky@513: SPR_BTSUS_X_PILLAR_TILE_C = 2484, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_E = 2485, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_E = 2486, pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_E = 2487, pasky@513: SPR_BTSUS_ROAD_X_REAR_TILE_E = 2488, pasky@513: SPR_BTSUS_Y_FRONT_TILE_E = 2489, pasky@513: SPR_BTSUS_X_FRONT_TILE_E = 2490, pasky@513: SPR_BTSUS_Y_PILLAR_TILE_E = 2491, pasky@513: SPR_BTSUS_X_PILLAR_TILE_E = 2492, pasky@513: SPR_BTSUS_RAIL_X_REAR_TILE_F = 2493, pasky@513: SPR_BTSUS_RAIL_Y_REAR_TILE_F = 2494, pasky@513: SPR_BTSUS_ROAD_X_REAR_TILE_F = 2495, pasky@513: SPR_BTSUS_ROAD_Y_REAR_TILE_F = 2496, pasky@513: SPR_BTSUS_Y_FRONT = 2497, pasky@513: SPR_BTSUS_X_FRONT = 2498, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_A = 4334, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_B = 4335, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_D = 4336, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_C = 4337, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_A = 4338, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_B = 4339, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_D = 4340, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_C = 4341, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_E = 4342, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_E = 4343, pasky@513: SPR_BTSUS_MONO_X_REAR_TILE_F = 4344, pasky@513: SPR_BTSUS_MONO_Y_REAR_TILE_F = 4345, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_A = 4374, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_B = 4375, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_D = 4376, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_C = 4377, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_A = 4378, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_B = 4379, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_D = 4380, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_C = 4381, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_E = 4382, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_E = 4383, pasky@513: SPR_BTSUS_MGLV_X_REAR_TILE_F = 4384, pasky@513: SPR_BTSUS_MGLV_Y_REAR_TILE_F = 4385, pasky@513: pasky@513: /* cantilever bridges */ pasky@513: /* They have three different kinds of tiles: pasky@513: END(ing), MID(dle), BEG(gining) pasky@513: */ pasky@513: SPR_BTCAN_RAIL_X_BEG = 2507, pasky@513: SPR_BTCAN_RAIL_X_MID = 2508, pasky@513: SPR_BTCAN_RAIL_X_END = 2509, pasky@513: SPR_BTCAN_RAIL_Y_END = 2510, pasky@513: SPR_BTCAN_RAIL_Y_MID = 2511, pasky@513: SPR_BTCAN_RAIL_Y_BEG = 2512, pasky@513: SPR_BTCAN_ROAD_X_BEG = 2513, pasky@513: SPR_BTCAN_ROAD_X_MID = 2514, pasky@513: SPR_BTCAN_ROAD_X_END = 2515, pasky@513: SPR_BTCAN_ROAD_Y_END = 2516, pasky@513: SPR_BTCAN_ROAD_Y_MID = 2517, pasky@513: SPR_BTCAN_ROAD_Y_BEG = 2518, pasky@513: SPR_BTCAN_X_FRONT_BEG = 2519, pasky@513: SPR_BTCAN_X_FRONT_MID = 2520, pasky@513: SPR_BTCAN_X_FRONT_END = 2521, pasky@513: SPR_BTCAN_Y_FRONT_END = 2522, pasky@513: SPR_BTCAN_Y_FRONT_MID = 2523, pasky@513: SPR_BTCAN_Y_FRONT_BEG = 2524, pasky@513: SPR_BTCAN_X_PILLAR_BEG = 2525, pasky@513: SPR_BTCAN_X_PILLAR_MID = 2526, pasky@513: SPR_BTCAN_Y_PILLAR_MID = 2527, pasky@513: SPR_BTCAN_Y_PILLAR_BEG = 2528, pasky@513: SPR_BTCAN_MONO_X_BEG = 4346, pasky@513: SPR_BTCAN_MONO_X_MID = 4347, pasky@513: SPR_BTCAN_MONO_X_END = 4348, pasky@513: SPR_BTCAN_MONO_Y_END = 4349, pasky@513: SPR_BTCAN_MONO_Y_MID = 4350, pasky@513: SPR_BTCAN_MONO_Y_BEG = 4351, pasky@513: SPR_BTCAN_MGLV_X_BEG = 4386, pasky@513: SPR_BTCAN_MGLV_X_MID = 4387, pasky@513: SPR_BTCAN_MGLV_X_END = 4388, pasky@513: SPR_BTCAN_MGLV_Y_END = 4389, pasky@513: SPR_BTCAN_MGLV_Y_MID = 4390, pasky@513: SPR_BTCAN_MGLV_Y_BEG = 4391, pasky@513: pasky@513: /* little concrete bridge */ pasky@513: SPR_BTCON_RAIL_X = 2493, pasky@513: SPR_BTCON_RAIL_Y = 2494, pasky@513: SPR_BTCON_ROAD_X = 2495, pasky@513: SPR_BTCON_ROAD_Y = 2496, pasky@513: SPR_BTCON_X_FRONT = 2497, pasky@513: SPR_BTCON_Y_FRONT = 2498, pasky@513: SPR_BTCON_X_PILLAR = 2505, pasky@513: SPR_BTCON_Y_PILLAR = 2506, pasky@513: SPR_BTCON_MONO_X = 4344, pasky@513: SPR_BTCON_MONO_Y = 4345, pasky@513: SPR_BTCON_MGLV_X = 4384, pasky@513: SPR_BTCON_MGLV_Y = 4385, pasky@513: pasky@513: /* little steel girder bridge */ pasky@513: SPR_BTGIR_RAIL_X = 2553, pasky@513: SPR_BTGIR_RAIL_Y = 2554, pasky@513: SPR_BTGIR_ROAD_X = 2555, pasky@513: SPR_BTGIR_ROAD_Y = 2556, pasky@513: SPR_BTGIR_X_FRONT = 2557, pasky@513: SPR_BTGIR_Y_FRONT = 2558, pasky@513: SPR_BTGIR_X_PILLAR = 2505, pasky@513: SPR_BTGIR_Y_PILLAR = 2506, pasky@513: SPR_BTGIR_MONO_X = 4362, pasky@513: SPR_BTGIR_MONO_Y = 4363, pasky@513: SPR_BTGIR_MGLV_X = 4402, pasky@513: SPR_BTGIR_MGLV_Y = 4403, pasky@513: pasky@513: /* tubular bridges */ pasky@513: /* tubular bridges have 3 kinds of tiles: pasky@513: a start tile (with only half a tube on the far side, marked _BEG pasky@513: a middle tile (full tunnel), marked _MID pasky@513: and an end tile (half a tube on the near side, maked _END pasky@513: */ pasky@513: SPR_BTTUB_X_FRONT_BEG = 2559, pasky@513: SPR_BTTUB_X_FRONT_MID = 2660, pasky@513: SPR_BTTUB_X_FRONT_END = 2561, pasky@513: SPR_BTTUB_Y_FRONT_END = 2562, pasky@513: SPR_BTTUB_Y_FRONT_MID = 2563, pasky@513: SPR_BTTUB_Y_FRONT_BEG = 2564, pasky@513: SPR_BTTUB_X_RAIL_REAR_BEG = 2569, pasky@513: SPR_BTTUB_X_RAIL_REAR_MID = 2570, pasky@513: SPR_BTTUB_X_RAIL_REAR_END = 2571, pasky@513: pasky@513: pasky@513: /* ramps (for all bridges except wood and tubular?)*/ pasky@513: SPR_BTGEN_RAIL_X_SLOPE_DOWN = 2437, pasky@513: SPR_BTGEN_RAIL_X_SLOPE_UP = 2438, pasky@513: SPR_BTGEN_RAIL_Y_SLOPE_DOWN = 2439, pasky@513: SPR_BTGEN_RAIL_Y_SLOPE_UP = 2440, pasky@513: SPR_BTGEN_RAIL_RAMP_X_UP = 2441, pasky@513: SPR_BTGEN_RAIL_RAMP_X_DOWN = 2442, pasky@513: SPR_BTGEN_RAIL_RAMP_Y_UP = 2443, pasky@513: SPR_BTGEN_RAIL_RAMP_Y_DOWN = 2444, pasky@513: SPR_BTGEN_ROAD_X_SLOPE_DOWN = 2445, pasky@513: SPR_BTGEN_ROAD_X_SLOPE_UP = 2446, pasky@513: SPR_BTGEN_ROAD_Y_SLOPE_DOWN = 2447, pasky@513: SPR_BTGEN_ROAD_Y_SLOPE_UP = 2448, pasky@513: SPR_BTGEN_ROAD_RAMP_X_UP = 2449, pasky@513: SPR_BTGEN_ROAD_RAMP_X_DOWN = 2450, pasky@513: SPR_BTGEN_ROAD_RAMP_Y_UP = 2451, pasky@513: SPR_BTGEN_ROAD_RAMP_Y_DOWN = 2452, pasky@513: SPR_BTGEN_MONO_X_SLOPE_DOWN = 4326, pasky@513: SPR_BTGEN_MONO_X_SLOPE_UP = 4327, pasky@513: SPR_BTGEN_MONO_Y_SLOPE_DOWN = 4328, pasky@513: SPR_BTGEN_MONO_Y_SLOPE_UP = 4329, pasky@513: SPR_BTGEN_MONO_RAMP_X_UP = 4330, pasky@513: SPR_BTGEN_MONO_RAMP_X_DOWN = 4331, pasky@513: SPR_BTGEN_MONO_RAMP_Y_UP = 4332, pasky@513: SPR_BTGEN_MONO_RAMP_Y_DOWN = 4333, pasky@513: SPR_BTGEN_MGLV_X_SLOPE_DOWN = 4366, pasky@513: SPR_BTGEN_MGLV_X_SLOPE_UP = 4367, pasky@513: SPR_BTGEN_MGLV_Y_SLOPE_DOWN = 4368, pasky@513: SPR_BTGEN_MGLV_Y_SLOPE_UP = 4369, pasky@513: SPR_BTGEN_MGLV_RAMP_X_UP = 4370, pasky@513: SPR_BTGEN_MGLV_RAMP_X_DOWN = 4371, pasky@513: SPR_BTGEN_MGLV_RAMP_Y_UP = 4372, pasky@513: SPR_BTGEN_MGLV_RAMP_Y_DOWN = 4373, pasky@513: pasky@513: pasky@513: /* Vehicle sprite-flags (red/green) */ pasky@513: SPR_FLAG_VEH_STOPPED = 3090, pasky@513: SPR_FLAG_VEH_RUNNING = 3091, pasky@513: pasky@513: /* Rotor sprite numbers */ pasky@513: SPR_ROTOR_STOPPED = 3901, pasky@513: SPR_ROTOR_MOVING_1 = 3902, pasky@513: SPR_ROTOR_MOVING_3 = 3904, pasky@513: pasky@513: /* Town/house sprites */ pasky@513: SPR_LIFT = 1443, pasky@513: pasky@513: /* Easter egg/disaster sprites */ pasky@513: SPR_BLIMP = 3905, // Zeppelin pasky@513: SPR_BLIMP_CRASHING = 3906, pasky@513: SPR_BLIMP_CRASHED = 3907, pasky@513: SPR_UFO_SMALL_SCOUT = 3908, // XCOM - UFO Defense pasky@513: SPR_UFO_SMALL_SCOUT_DARKER = 3909, pasky@513: SPR_SUB_SMALL_NE = 3910, // Silent Service pasky@513: SPR_SUB_SMALL_SE = 3911, pasky@513: SPR_SUB_SMALL_SW = 3912, pasky@513: SPR_SUB_SMALL_NW = 3913, pasky@513: SPR_SUB_LARGE_NE = 3914, pasky@513: SPR_SUB_LARGE_SE = 3915, pasky@513: SPR_SUB_LARGE_SW = 3916, pasky@513: SPR_SUB_LARGE_NW = 3917, pasky@513: SPR_F_15 = 3918, // F-15 Strike Eagle pasky@513: SPR_F_15_FIRING = 3919, pasky@513: SPR_UFO_HARVESTER = 3920, // XCOM - UFO Defense pasky@513: SPR_XCOM_SKYRANGER = 3921, pasky@513: SPR_AH_64A = 3922, // Gunship pasky@513: SPR_AH_64A_FIRING = 3923, pasky@513: pasky@513: /* main_gui.c */ pasky@513: SPR_IMG_TERRAFORM_UP = 694, pasky@513: SPR_IMG_TERRAFORM_DOWN = 695, pasky@513: SPR_IMG_DYNAMITE = 703, pasky@513: SPR_IMG_ROCKS = 4084, Darkvater@1632: SPR_IMG_LIGHTHOUSE_DESERT = 4085, // XXX - is Desert image on the desert-climate pasky@513: SPR_IMG_TRANSMITTER = 4086, pasky@513: SPR_IMG_LEVEL_LAND = SPR_OPENTTD_BASE + 68, Darkvater@1632: SPR_IMG_BUILD_CANAL = SPR_OPENTTD_BASE + 65, Darkvater@1632: SPR_IMG_BUILD_LOCK = SPR_CANALS_BASE + 69, Darkvater@1632: SPR_IMG_PLACE_SIGN = SPR_OPENTTD_BASE + 70, pasky@513: SPR_IMG_PAUSE = 726, pasky@513: SPR_IMG_FASTFORWARD = SPR_OPENTTD_BASE + 57, pasky@513: SPR_IMG_SETTINGS = 751, pasky@513: SPR_IMG_SAVE = 724, pasky@513: SPR_IMG_SMALLMAP = 708, pasky@513: SPR_IMG_TOWN = 4077, pasky@513: SPR_IMG_SUBSIDIES = 679, pasky@513: SPR_IMG_COMPANY_LIST = 1299, pasky@513: SPR_IMG_COMPANY_FINANCE = 737, pasky@513: SPR_IMG_COMPANY_GENERAL = 743, pasky@513: SPR_IMG_GRAPHS = 745, pasky@513: SPR_IMG_COMPANY_LEAGUE = 684, pasky@513: SPR_IMG_INDUSTRY = 741, pasky@513: SPR_IMG_TRAINLIST = 731, pasky@513: SPR_IMG_TRUCKLIST = 732, pasky@513: SPR_IMG_SHIPLIST = 733, pasky@513: SPR_IMG_AIRPLANESLIST = 734, pasky@513: SPR_IMG_ZOOMIN = 735, pasky@513: SPR_IMG_ZOOMOUT = 736, pasky@513: SPR_IMG_BUILDRAIL = 727, pasky@513: SPR_IMG_BUILDROAD = 728, pasky@513: SPR_IMG_BUILDWATER = 729, pasky@513: SPR_IMG_BUILDAIR = 730, pasky@513: SPR_IMG_LANDSCAPING = 4083, pasky@513: SPR_IMG_MUSIC = 713, pasky@513: SPR_IMG_MESSAGES = 680, pasky@513: SPR_IMG_QUERY = 723, pasky@513: SPR_IMG_PLANTTREES = 742, pasky@513: SPR_IMG_SIGN = 4082, Darkvater@1632: SPR_IMG_BUY_LAND = 4791, pasky@513: pasky@513: /* OPEN TRANSPORT TYCOON in gamescreen */ pasky@513: SPR_OTTD_O = 4842, pasky@513: SPR_OTTD_P = 4841, pasky@513: SPR_OTTD_E = SPR_OPENTTD_BASE + 16, darkvater@581: SPR_OTTD_D = SPR_OPENTTD_BASE + 17, pasky@513: SPR_OTTD_N = 4839, pasky@513: SPR_OTTD_T = 4836, pasky@513: SPR_OTTD_R = 4837, pasky@513: SPR_OTTD_A = 4838, pasky@513: SPR_OTTD_S = 4840, pasky@513: SPR_OTTD_Y = 4843, dominik@606: SPR_OTTD_C = 4844, dominik@606: darkvater@983: SPR_HIGHSCORE_CHART_BEGIN = 4804, darkvater@983: SPR_TYCOON_IMG1_BEGIN = 4814, darkvater@983: SPR_TYCOON_IMG2_BEGIN = 4824, darkvater@983: tron@1364: /* Effect vehciles */ tron@1364: SPR_BULLDOZER_NE = 1416, tron@1364: SPR_BULLDOZER_SE = 1417, tron@1364: SPR_BULLDOZER_SW = 1418, tron@1364: SPR_BULLDOZER_NW = 1419, tron@1364: tron@1371: SPR_SMOKE_0 = 2040, tron@1371: SPR_SMOKE_1 = 2041, tron@1371: SPR_SMOKE_2 = 2042, tron@1371: SPR_SMOKE_3 = 2043, tron@1371: SPR_SMOKE_4 = 2044, tron@1371: tron@1371: SPR_DIESEL_SMOKE_0 = 3073, tron@1371: SPR_DIESEL_SMOKE_1 = 3074, tron@1371: SPR_DIESEL_SMOKE_2 = 3075, tron@1371: SPR_DIESEL_SMOKE_3 = 3076, tron@1371: SPR_DIESEL_SMOKE_4 = 3077, tron@1371: SPR_DIESEL_SMOKE_5 = 3078, tron@1371: tron@1371: SPR_STEAM_SMOKE_0 = 3079, tron@1371: SPR_STEAM_SMOKE_1 = 3080, tron@1371: SPR_STEAM_SMOKE_2 = 3081, tron@1371: SPR_STEAM_SMOKE_3 = 3082, tron@1371: SPR_STEAM_SMOKE_4 = 3083, tron@1371: tron@1371: SPR_ELECTRIC_SPARK_0 = 3084, tron@1371: SPR_ELECTRIC_SPARK_1 = 3085, tron@1371: SPR_ELECTRIC_SPARK_2 = 3086, tron@1371: SPR_ELECTRIC_SPARK_3 = 3087, tron@1371: SPR_ELECTRIC_SPARK_4 = 3088, tron@1371: SPR_ELECTRIC_SPARK_5 = 3089, tron@1371: tron@1371: SPR_CHIMNEY_SMOKE_0 = 3701, tron@1371: SPR_CHIMNEY_SMOKE_1 = 3702, tron@1371: SPR_CHIMNEY_SMOKE_2 = 3703, tron@1371: SPR_CHIMNEY_SMOKE_3 = 3704, tron@1371: SPR_CHIMNEY_SMOKE_4 = 3705, tron@1371: SPR_CHIMNEY_SMOKE_5 = 3706, tron@1371: SPR_CHIMNEY_SMOKE_6 = 3707, tron@1371: SPR_CHIMNEY_SMOKE_7 = 3708, tron@1371: tron@1371: SPR_EXPLOSION_LARGE_0 = 3709, tron@1371: SPR_EXPLOSION_LARGE_1 = 3710, tron@1371: SPR_EXPLOSION_LARGE_2 = 3711, tron@1371: SPR_EXPLOSION_LARGE_3 = 3712, tron@1371: SPR_EXPLOSION_LARGE_4 = 3713, tron@1371: SPR_EXPLOSION_LARGE_5 = 3714, tron@1371: SPR_EXPLOSION_LARGE_6 = 3715, tron@1371: SPR_EXPLOSION_LARGE_7 = 3716, tron@1371: SPR_EXPLOSION_LARGE_8 = 3717, tron@1371: SPR_EXPLOSION_LARGE_9 = 3718, tron@1371: SPR_EXPLOSION_LARGE_A = 3719, tron@1371: SPR_EXPLOSION_LARGE_B = 3720, tron@1371: SPR_EXPLOSION_LARGE_C = 3721, tron@1371: SPR_EXPLOSION_LARGE_D = 3722, tron@1371: SPR_EXPLOSION_LARGE_E = 3723, tron@1371: SPR_EXPLOSION_LARGE_F = 3724, tron@1371: tron@1371: SPR_EXPLOSION_SMALL_0 = 3725, tron@1371: SPR_EXPLOSION_SMALL_1 = 3726, tron@1371: SPR_EXPLOSION_SMALL_2 = 3727, tron@1371: SPR_EXPLOSION_SMALL_3 = 3728, tron@1371: SPR_EXPLOSION_SMALL_4 = 3729, tron@1371: SPR_EXPLOSION_SMALL_5 = 3730, tron@1371: SPR_EXPLOSION_SMALL_6 = 3731, tron@1371: SPR_EXPLOSION_SMALL_7 = 3732, tron@1371: SPR_EXPLOSION_SMALL_8 = 3733, tron@1371: SPR_EXPLOSION_SMALL_9 = 3734, tron@1371: SPR_EXPLOSION_SMALL_A = 3735, tron@1371: SPR_EXPLOSION_SMALL_B = 3736, tron@1371: tron@1371: SPR_BREAKDOWN_SMOKE_0 = 3737, tron@1371: SPR_BREAKDOWN_SMOKE_1 = 3738, tron@1371: SPR_BREAKDOWN_SMOKE_2 = 3739, tron@1371: SPR_BREAKDOWN_SMOKE_3 = 3740, tron@1371: tron@1371: SPR_BUBBLE_0 = 4748, tron@1371: SPR_BUBBLE_1 = 4749, tron@1371: SPR_BUBBLE_2 = 4750, tron@1371: SPR_BUBBLE_GENERATE_0 = 4751, tron@1371: SPR_BUBBLE_GENERATE_1 = 4752, tron@1371: SPR_BUBBLE_GENERATE_2 = 4753, tron@1371: SPR_BUBBLE_GENERATE_3 = 4754, tron@1371: SPR_BUBBLE_BURST_0 = 4755, tron@1371: SPR_BUBBLE_BURST_1 = 4756, tron@1371: SPR_BUBBLE_BURST_2 = 4757, tron@1371: SPR_BUBBLE_ABSORB_0 = 4758, tron@1371: SPR_BUBBLE_ABSORB_1 = 4759, tron@1371: SPR_BUBBLE_ABSORB_2 = 4760, tron@1371: SPR_BUBBLE_ABSORB_3 = 4761, tron@1371: SPR_BUBBLE_ABSORB_4 = 4762, tron@1371: dominik@606: /* road_gui.c */ dominik@606: SPR_IMG_ROAD_NW = 1309, dominik@606: SPR_IMG_ROAD_NE = 1310, dominik@606: SPR_IMG_ROAD_DEPOT = 1295, dominik@606: SPR_IMG_BUS_STATION = 749, dominik@606: SPR_IMG_TRUCK_BAY = 750, dominik@606: SPR_IMG_BRIDGE = 2594, dominik@606: SPR_IMG_ROAD_TUNNEL = 2429, dominik@787: SPR_IMG_REMOVE = 714 pasky@513: }; pasky@513: pasky@513: /* Cursor sprite numbers */ pasky@513: typedef enum CursorSprites { pasky@513: /* Terraform */ pasky@513: /* Cursors */ pasky@513: SPR_CURSOR_MOUSE = 0, pasky@513: SPR_CURSOR_ZZZ = 1, pasky@513: SPR_CURSOR_BOUY = 702, pasky@513: SPR_CURSOR_QUERY = 719, pasky@513: SPR_CURSOR_HQ = 720, pasky@513: SPR_CURSOR_SHIP_DEPOT = 721, pasky@513: SPR_CURSOR_SIGN = 722, pasky@513: pasky@513: SPR_CURSOR_TREE = 2010, pasky@513: SPR_CURSOR_BUY_LAND = 4792, pasky@513: SPR_CURSOR_LEVEL_LAND = SPR_OPENTTD_BASE + 69, pasky@513: pasky@513: SPR_CURSOR_TOWN = 4080, pasky@513: SPR_CURSOR_INDUSTRY = 4081, pasky@513: SPR_CURSOR_ROCKY_AREA = 4087, pasky@513: SPR_CURSOR_LIGHTHOUSE = 4088, pasky@513: SPR_CURSOR_TRANSMITTER = 4089, pasky@513: pasky@513: /* airport cursors */ pasky@513: SPR_CURSOR_AIRPORT = 2724, pasky@513: pasky@513: /* dock cursors */ pasky@513: SPR_CURSOR_DOCK = 3668, pasky@513: SPR_CURSOR_CANAL = SPR_OPENTTD_BASE + 11, pasky@513: SPR_CURSOR_LOCK = SPR_OPENTTD_BASE + 64, pasky@513: pasky@513: /* shared road & rail cursors */ pasky@513: SPR_CURSOR_BRIDGE = 2593, pasky@513: pasky@513: /* rail cursors */ pasky@513: SPR_CURSOR_NS_TRACK = 1263, pasky@513: SPR_CURSOR_SWNE_TRACK = 1264, pasky@513: SPR_CURSOR_EW_TRACK = 1265, pasky@513: SPR_CURSOR_NWSE_TRACK = 1266, pasky@513: pasky@513: SPR_CURSOR_NS_MONO = 1267, pasky@513: SPR_CURSOR_SWNE_MONO = 1268, pasky@513: SPR_CURSOR_EW_MONO = 1269, pasky@513: SPR_CURSOR_NWSE_MONO = 1270, pasky@513: pasky@513: SPR_CURSOR_NS_MAGLEV = 1271, pasky@513: SPR_CURSOR_SWNE_MAGLEV = 1272, pasky@513: SPR_CURSOR_EW_MAGLEV = 1273, pasky@513: SPR_CURSOR_NWSE_MAGLEV = 1274, pasky@513: pasky@513: SPR_CURSOR_RAIL_DEPOT = 1296, pasky@513: SPR_CURSOR_RAIL_STATION = 1300, pasky@513: SPR_CURSOR_TUNNEL_RAIL = 2434, pasky@513: SPR_CURSOR_TUNNEL_MONO = 2435, pasky@513: SPR_CURSOR_TUNNEL_MAGLEV = 2436, pasky@513: pasky@513: SPR_CURSOR_AUTORAIL = SPR_OPENTTD_BASE + 4, pasky@513: SPR_CURSOR_CHECKPOINT = SPR_OPENTTD_BASE + 7, pasky@513: SPR_CURSOR_MONO_DEPOT = SPR_OPENTTD_BASE + 14, pasky@513: SPR_CURSOR_MAGLEV_DEPOT = SPR_OPENTTD_BASE + 15, pasky@513: SPR_CURSOR_CONVERT_RAIL = SPR_OPENTTD_BASE + 26, pasky@513: pasky@513: /* road cursors */ pasky@513: SPR_CURSOR_ROAD_NESW = 1311, pasky@513: SPR_CURSOR_ROAD_NWSE = 1312, pasky@513: pasky@513: SPR_CURSOR_ROAD_DEPOT = 1297, pasky@513: SPR_CURSOR_BUS_STATION = 2725, pasky@513: SPR_CURSOR_TRUCK_STATION = 2726, pasky@513: SPR_CURSOR_ROAD_TUNNEL = 2433, pasky@513: } CursorSprite; pasky@513: pasky@513: // Animation macro in table/animcursors.h (_animcursors[]) pasky@513: enum AnimCursors { pasky@513: ANIMCURSOR_DEMOLISH = -1, // 704 - 707 - demolish dynamite pasky@513: ANIMCURSOR_LOWERLAND = -2, // 699 - 701 - lower land tool pasky@513: ANIMCURSOR_RAISELAND = -3, // 696 - 698 - raise land tool pasky@513: ANIMCURSOR_PICKSTATION = -4, // 716 - 718 - goto-order icon pasky@513: ANIMCURSOR_BUILDSIGNALS = -5, // 1292 - 1293 - build signal pasky@513: }; pasky@513: pasky@513: enum { pasky@513: MAX_SPRITES = 0x3FFF, //the highest number a sprite can have pasky@513: }; pasky@513: pasky@513: /* pasky@513: these numbers change the colors of the palette for a sprite pasky@513: both need to be fed a sprite which contains the "new" colors pasky@513: */ pasky@513: enum Modifiers { pasky@513: PALETTE_MODIFIER_TRANSPARENT = 0x4000, pasky@513: PALETTE_MODIFIER_COLOR = 0x8000, pasky@513: }; pasky@513: pasky@513: enum PaletteSprites { pasky@513: //note: these numbers are already the modified once the renderer needs. pasky@513: //the actual sprite number is the upper 16 bits of the number pasky@513: pasky@513: //Here a puslating red tile is drawn if you try to build a wrong tunnel or raise/lower land where it is not possible pasky@513: PALETTE_TILE_RED_PULSATING = 0x3038000, pasky@513: //makes a square red. is used when removing rails or other stuff pasky@513: PALETTE_SEL_TILE_RED = 0x3048000, pasky@513: //This draws a blueish square (catchment areas for example) pasky@513: PALETTE_SEL_TILE_BLUE = 0x3058000, pasky@513: //0x306 is a real sprite (the little dot you get when you try to raise/lower a corner of the map pasky@513: //here the color switches begin pasky@513: //use this if you add stuff to the value, so that the resulting color pasky@513: //is not a fixed value. pasky@513: //NOTE THAT THE SWITCH 0x8000 is NOT present in _TO_COLORS yet! pasky@513: PALETTE_TO_COLORS = 0x3070000, pasky@513: PALETTE_TO_DARK_BLUE = 0x3078000, pasky@513: PALETTE_TO_PALE_GREEN = 0x3088000, pasky@513: PALETTE_TO_PINK = 0x3098000, pasky@513: PALETTE_TO_YELLOW = 0x30A8000, pasky@513: PALETTE_TO_RED = 0x30B8000, pasky@513: PALETTE_TO_LIGHT_BLUE = 0x30C8000, pasky@513: PALETTE_TO_GREEN = 0x30D8000, pasky@513: PALETTE_TO_DARK_GREEN = 0x30E8000, pasky@513: PALETTE_TO_BLUE = 0x30F8000, pasky@513: PALETTE_TO_CREAM = 0x3108000, pasky@513: //maybe don't use as player color because it doesn't display in the graphs? pasky@513: PALETTE_TO_MAUVE = 0x3118000, pasky@513: PALETTE_TO_PURPLE = 0x3128000, pasky@513: PALETTE_TO_ORANGE = 0x3138000, pasky@513: PALETTE_TO_BROWN = 0x3148000, pasky@513: PALETTE_TO_GREY = 0x3158000, pasky@513: PALETTE_TO_WHITE = 0x3168000, pasky@513: //sets color to bare land stuff, for rail and road (and crossings) pasky@513: PALETTE_TO_BARE_LAND = 0x3178000, pasky@513: //XXX is 318-31A really not used? pasky@513: //XXX FIXME I dunno yet what this is pasky@513: PALETTE_31B = 0x31B8000, pasky@513: //structure color to something brownish (for the cantilever bridges for example) pasky@513: PALETTE_TO_STRUCT_BROWN = 0x31C8000, pasky@513: PALETTE_31D = 0x31D8000, //XXX FIXME Don't know this either pasky@513: //sets bridge or structure to red, little concrete one and cantilever use this one for example pasky@513: PALETTE_TO_STRUCT_RED = 0x31E8000, pasky@513: //XXX 31F pasky@513: PALETTE_TO_STRUCT_CONCRETE = 0x3208000, //Sets the suspension bridge to concrete, also other strucutures use it pasky@513: PALETTE_TO_STRUCT_YELLOW = 0x3218000, //Sets the bridge color to yellow (suspension and tubular) pasky@513: PALETTE_TO_TRANSPARENT = 0x3224000, //This sets the sprite to transparent pasky@513: //This is used for changing the tubular bridges to the silicon display, or some grayish color pasky@513: PALETTE_TO_STRUCT_GREY = 0x3238000, pasky@513: PALETTE_CRASH = 0x3248000, //this changes stuff to the "crash color" pasky@513: //XXX another place where structures are colored. pasky@513: //I'm not sure which colors these are pasky@513: PALETTE_59E = 0x59E8000, pasky@513: PALETTE_59F = 0x59F8000, pasky@513: pasky@513: }; pasky@513: pasky@513: #define MAKE_TRANSPARENT(img) (img = (img & MAX_SPRITES) | PALETTE_TO_TRANSPARENT) pasky@513: pasky@513: #endif /* SPRITES_H */