From 851874d8e15dd23f270de077fec01ec1d9ae9500 Mon Sep 17 00:00:00 2001 From: peter1138 Date: Fri, 15 Sep 2006 17:36:54 +0000 Subject: [PATCH] (svn r6456) - Replace single colour scheme for passenger wagons with separate schemes for each of steam, diesel or electric engines. Savegames from the previous revision will not load. --- lang/english.txt | 4 +++- livery.h | 4 +++- player_gui.c | 4 ++-- vehicle.c | 15 +++++++++++++-- 4 files changed, 21 insertions(+), 6 deletions(-) diff --git a/lang/english.txt b/lang/english.txt index 82ae2330ce..467fc8523b 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 diff --git a/livery.h b/livery.h index 1834f9c758..990fe87e15 100644 --- a/livery.h +++ b/livery.h @@ -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 3041dc016d..443e63c9aa 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, diff --git a/vehicle.c b/vehicle.c index 38875a76a0..6d16bf60a1 100644 --- a/vehicle.c +++ b/vehicle.c @@ -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);