summaryrefslogtreecommitdiff
path: root/src/vehicle.cpp
diff options
context:
space:
mode:
authorrubidium <rubidium@openttd.org>2008-01-16 11:25:15 +0000
committerrubidium <rubidium@openttd.org>2008-01-16 11:25:15 +0000
commit2817e5425bad8e0617b48024ca42037eaf5e5e32 (patch)
tree59a67167b1fd8c3252ee17c6ab039069fb2f63c6 /src/vehicle.cpp
parent7a66d5e21da056c77e482ec7f3f779ba41ff7c53 (diff)
downloadopenttd-2817e5425bad8e0617b48024ca42037eaf5e5e32.tar.xz
(svn r11874) -Fix [FS#1655]: all wagons of maglev/monorail trains would get the livery colour of the engine instead of their wagon type.
Diffstat (limited to 'src/vehicle.cpp')
-rw-r--r--src/vehicle.cpp55
1 files changed, 24 insertions, 31 deletions
diff --git a/src/vehicle.cpp b/src/vehicle.cpp
index 580953e93..0d514ec12 100644
--- a/src/vehicle.cpp
+++ b/src/vehicle.cpp
@@ -2581,42 +2581,35 @@ const Livery *GetEngineLivery(EngineID engine_type, PlayerID player, EngineID pa
case VEH_TRAIN: {
const RailVehicleInfo *rvi = RailVehInfo(engine_type);
- switch (rvi->railtype) {
- default: NOT_REACHED();
- case RAILTYPE_RAIL:
- case RAILTYPE_ELECTRIC:
- {
- if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type;
- if (rvi->railveh_type == RAILVEH_WAGON) {
- if (!GetCargo(cargo_type)->is_freight) {
- if (parent_engine_type == INVALID_ENGINE) {
- scheme = LS_PASSENGER_WAGON_STEAM;
- } else {
- switch (RailVehInfo(parent_engine_type)->engclass) {
- default: NOT_REACHED();
- case EC_STEAM: scheme = LS_PASSENGER_WAGON_STEAM; break;
- case EC_DIESEL: scheme = LS_PASSENGER_WAGON_DIESEL; break;
- case EC_ELECTRIC: scheme = LS_PASSENGER_WAGON_ELECTRIC; break;
- }
- }
- } else {
- scheme = LS_FREIGHT_WAGON;
- }
+ if (cargo_type == CT_INVALID) cargo_type = rvi->cargo_type;
+ if (rvi->railveh_type == RAILVEH_WAGON) {
+ if (!GetCargo(cargo_type)->is_freight) {
+ if (parent_engine_type == INVALID_ENGINE) {
+ scheme = LS_PASSENGER_WAGON_STEAM;
} else {
- bool is_mu = HasBit(EngInfo(engine_type)->misc_flags, EF_RAIL_IS_MU);
-
- switch (rvi->engclass) {
+ switch (RailVehInfo(parent_engine_type)->engclass) {
default: NOT_REACHED();
- case EC_STEAM: scheme = LS_STEAM; break;
- case EC_DIESEL: scheme = is_mu ? LS_DMU : LS_DIESEL; break;
- case EC_ELECTRIC: scheme = is_mu ? LS_EMU : LS_ELECTRIC; break;
+ case EC_STEAM: scheme = LS_PASSENGER_WAGON_STEAM; break;
+ case EC_DIESEL: scheme = LS_PASSENGER_WAGON_DIESEL; break;
+ case EC_ELECTRIC: scheme = LS_PASSENGER_WAGON_ELECTRIC; break;
+ case EC_MONORAIL: scheme = LS_PASSENGER_WAGON_MONORAIL; break;
+ case EC_MAGLEV: scheme = LS_PASSENGER_WAGON_MAGLEV; break;
}
}
- break;
+ } else {
+ scheme = LS_FREIGHT_WAGON;
+ }
+ } else {
+ bool is_mu = HasBit(EngInfo(engine_type)->misc_flags, EF_RAIL_IS_MU);
+
+ switch (rvi->engclass) {
+ default: NOT_REACHED();
+ case EC_STEAM: scheme = LS_STEAM; break;
+ case EC_DIESEL: scheme = is_mu ? LS_DMU : LS_DIESEL; break;
+ case EC_ELECTRIC: scheme = is_mu ? LS_EMU : LS_ELECTRIC; break;
+ case EC_MONORAIL: scheme = LS_MONORAIL; break;
+ case EC_MAGLEV: scheme = LS_MAGLEV; break;
}
-
- case RAILTYPE_MONO: scheme = LS_MONORAIL; break;
- case RAILTYPE_MAGLEV: scheme = LS_MAGLEV; break;
}
break;
}