# HG changeset patch # User rubidium # Date 1178463704 0 # Node ID a76fe9c65fcb00edb7044b4387a2fcb88931a02d # Parent 3bc104d72eef87771b10d40010256a7cf18eb054 (svn r9795) -Codechange: enumify the EngineClass. diff -r 3bc104d72eef -r a76fe9c65fcb src/engine.h --- a/src/engine.h Sun May 06 14:59:01 2007 +0000 +++ b/src/engine.h Sun May 06 15:01:44 2007 +0000 @@ -16,6 +16,12 @@ RAILVEH_WAGON, ///< simple wagon, not motorized }; +enum EngineClass { + EC_STEAM, + EC_DIESEL, + EC_ELECTRIC, +}; + struct RailVehicleInfo { byte image_index; RailVehicleTypes railveh_type; @@ -26,7 +32,7 @@ uint16 weight; byte running_cost_base; byte running_cost_class; - byte engclass; ///< 0: steam, 1: diesel, 2: electric + EngineClass engclass; ///< Class of engine for this vehicle byte capacity; CargoID cargo_type; byte ai_rank; diff -r 3bc104d72eef -r a76fe9c65fcb src/newgrf.cpp --- a/src/newgrf.cpp Sun May 06 14:59:01 2007 +0000 +++ b/src/newgrf.cpp Sun May 06 15:01:44 2007 +0000 @@ -447,21 +447,21 @@ */ FOR_EACH_OBJECT { uint8 traction = grf_load_byte(&buf); - int engclass; + EngineClass engclass; if (traction <= 0x07) { - engclass = 0; + engclass = EC_STEAM; } else if (traction <= 0x27) { - engclass = 1; + engclass = EC_DIESEL; } else if (traction <= 0x31) { - engclass = 2; + engclass = EC_ELECTRIC; } else if (traction <= 0x41) { - engclass = 2; + engclass = EC_ELECTRIC; } else { break; } - if (rvi[i].railtype == RAILTYPE_RAIL && engclass == 2) rvi[i].railtype = RAILTYPE_ELECTRIC; - if (rvi[i].railtype == RAILTYPE_ELECTRIC && engclass != 2) rvi[i].railtype = RAILTYPE_RAIL; + if (rvi[i].railtype == RAILTYPE_RAIL && engclass == EC_ELECTRIC) rvi[i].railtype = RAILTYPE_ELECTRIC; + if (rvi[i].railtype == RAILTYPE_ELECTRIC && engclass != EC_ELECTRIC) rvi[i].railtype = RAILTYPE_RAIL; rvi[i].engclass = engclass; } diff -r 3bc104d72eef -r a76fe9c65fcb src/table/engines.h --- a/src/table/engines.h Sun May 06 14:59:01 2007 +0000 +++ b/src/table/engines.h Sun May 06 15:01:44 2007 +0000 @@ -346,7 +346,7 @@ * @param l railtype * Tractive effort coefficient by default is the same as TTDPatch, 0.30*256=76 */ -#define RVI(a, b, c, d, e, f, g, h, i, j, k, l) { a, b, c, {l}, d, e, f, g, h, h, i, j, k, 0, 0, 0, 0, 76, 0 } +#define RVI(a, b, c, d, e, f, g, h, i, j, k, l) { a, b, c, {l}, d, e, f, g, h, (EngineClass)h, i, j, k, 0, 0, 0, 0, 76, 0 } #define M RAILVEH_MULTIHEAD #define W RAILVEH_WAGON #define G RAILVEH_SINGLEHEAD diff -r 3bc104d72eef -r a76fe9c65fcb src/vehicle.cpp --- a/src/vehicle.cpp Sun May 06 14:59:01 2007 +0000 +++ b/src/vehicle.cpp Sun May 06 15:01:44 2007 +0000 @@ -2454,9 +2454,9 @@ 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; + 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 { @@ -2466,9 +2466,9 @@ bool is_mu = HASBIT(_engine_info[engine_type].misc_flags, EF_RAIL_IS_MU); switch (rvi->engclass) { - case 0: scheme = LS_STEAM; break; - case 1: scheme = is_mu ? LS_DMU : LS_DIESEL; break; - case 2: scheme = is_mu ? LS_EMU : LS_ELECTRIC; break; + 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; } } break;