diff options
-rw-r--r-- | lang/english.txt | 4 | ||||
-rw-r--r-- | livery.h | 4 | ||||
-rw-r--r-- | player_gui.c | 4 | ||||
-rw-r--r-- | vehicle.c | 15 |
4 files changed, 21 insertions, 6 deletions
diff --git a/lang/english.txt b/lang/english.txt index 82ae2330c..467fc8523 100644 --- a/lang/english.txt +++ b/lang/english.txt @@ -2174,7 +2174,9 @@ STR_LIVERY_MONORAIL :Monorail Engine STR_LIVERY_MAGLEV :Maglev Engine STR_LIVERY_DMU :DMU STR_LIVERY_EMU :EMU -STR_LIVERY_PASSENGER_WAGON :Passenger Coach +STR_LIVERY_PASSENGER_WAGON_STEAM :Passenger Coach (Steam) +STR_LIVERY_PASSENGER_WAGON_DIESEL :Passenger Coach (Diesel) +STR_LIVERY_PASSENGER_WAGON_ELECTRIC :Passenger Coach (Electric) STR_LIVERY_FREIGHT_WAGON :Freight Wagon STR_LIVERY_BUS :Bus STR_LIVERY_TRUCK :Lorry @@ -16,7 +16,9 @@ typedef enum LiverySchemes { LS_MAGLEV, LS_DMU, LS_EMU, - LS_PASSENGER_WAGON, + LS_PASSENGER_WAGON_STEAM, + LS_PASSENGER_WAGON_DIESEL, + LS_PASSENGER_WAGON_ELECTRIC, LS_FREIGHT_WAGON, /* Road vehicles */ diff --git a/player_gui.c b/player_gui.c index 3041dc016..443e63c9a 100644 --- a/player_gui.c +++ b/player_gui.c @@ -269,7 +269,7 @@ static const StringID _colour_dropdown[] = { /* Association of liveries to livery classes */ static const LiveryClass livery_class[LS_END] = { LC_OTHER, - LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, + LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_RAIL, LC_ROAD, LC_ROAD, LC_SHIP, LC_SHIP, LC_AIRCRAFT, LC_AIRCRAFT, LC_AIRCRAFT, @@ -278,7 +278,7 @@ static const LiveryClass livery_class[LS_END] = { /* Number of liveries in each class, used to determine the height of the livery window */ static const byte livery_height[] = { 1, - 9, + 11, 2, 2, 3, @@ -2322,8 +2322,19 @@ static PalSpriteID GetEngineColourMap(EngineID engine_type, PlayerID player, Eng if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type; if (rvi->flags & RVI_WAGON) { - scheme = (cargo_type == CT_PASSENGERS || cargo_type == CT_MAIL || cargo_type == CT_VALUABLES) ? - LS_PASSENGER_WAGON : LS_FREIGHT_WAGON; + if (cargo_type == CT_PASSENGERS || cargo_type == CT_MAIL || cargo_type == CT_VALUABLES) { + if (parent_engine_type == INVALID_ENGINE) { + scheme = LS_PASSENGER_WAGON_STEAM; + } else { + switch (RailVehInfo(parent_engine_type)->engclass) { + case 0: scheme = LS_PASSENGER_WAGON_STEAM; break; + case 1: scheme = LS_PASSENGER_WAGON_DIESEL; break; + case 2: scheme = LS_PASSENGER_WAGON_ELECTRIC; break; + } + } + } else { + scheme = LS_FREIGHT_WAGON; + } } else { bool is_mu = HASBIT(_engine_info[engine_type].misc_flags, EF_RAIL_IS_MU); |