(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.

This commit is contained in:
peter1138 2006-09-15 17:36:54 +00:00
parent 88d5472fe8
commit 851874d8e1
4 changed files with 21 additions and 6 deletions

View File

@ -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

View File

@ -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 */

View File

@ -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,

View File

@ -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);