diff --git a/src/newgrf.cpp b/src/newgrf.cpp --- a/src/newgrf.cpp +++ b/src/newgrf.cpp @@ -215,10 +215,10 @@ static void dewagonize(int condition, in if (condition != 0) { ei->unk2 &= ~0x80; - rvi->flags &= ~2; + rvi->railveh_type = RAILVEH_SINGLEHEAD; } else { ei->unk2 |= 0x80; - rvi->flags |= 2; + rvi->railveh_type = RAILVEH_WAGON; } } @@ -265,7 +265,7 @@ static bool RailVehicleChangeInfo(uint e FOR_EACH_OBJECT { uint16 power = grf_load_word(&buf); - if (rvi[i].flags & RVI_MULTIHEAD) power /= 2; + if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) power /= 2; rvi[i].power = power; dewagonize(power, engine + i); @@ -276,7 +276,7 @@ static bool RailVehicleChangeInfo(uint e FOR_EACH_OBJECT { uint8 runcostfact = grf_load_byte(&buf); - if (rvi[i].flags & RVI_MULTIHEAD) runcostfact /= 2; + if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) runcostfact /= 2; rvi[i].running_cost_base = runcostfact; } @@ -315,19 +315,19 @@ static bool RailVehicleChangeInfo(uint e uint8 dual = grf_load_byte(&buf); if (dual != 0) { - if (!(rvi[i].flags & RVI_MULTIHEAD)) { + if (rvi[i].railveh_type != RAILVEH_MULTIHEAD) { // adjust power and running cost if needed rvi[i].power /= 2; rvi[i].running_cost_base /= 2; } - rvi[i].flags |= RVI_MULTIHEAD; + rvi[i].railveh_type = RAILVEH_MULTIHEAD; } else { - if (rvi[i].flags & RVI_MULTIHEAD) { + if (rvi[i].railveh_type == RAILVEH_MULTIHEAD) { // adjust power and running cost if needed rvi[i].power *= 2; rvi[i].running_cost_base *= 2; } - rvi[i].flags &= ~RVI_MULTIHEAD; + rvi[i].railveh_type = RAILVEH_SINGLEHEAD; } } break; @@ -3588,7 +3588,7 @@ static void CalculateRefitMasks(void) if (xor_mask == 0 && ( GetEngine(engine)->type != VEH_Train || ( RailVehInfo(engine)->capacity != 0 && - !(RailVehInfo(engine)->flags & RVI_WAGON) + RailVehInfo(engine)->railveh_type != RAILVEH_WAGON ) )) { xor_mask = _default_refitmasks[GetEngine(engine)->type - VEH_Train]; @@ -3801,3 +3801,4 @@ void LoadNewGRF(uint load_index, uint fi +