diff options
Diffstat (limited to 'src/vehicle.cpp')
-rw-r--r-- | src/vehicle.cpp | 55 |
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; } |