diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 76491b627c..3cc82188b9 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -835,11 +835,9 @@ static void ChimneySmokeTick(Vehicle *v) if (v->progress > 0) { v->progress--; } else { - TileIndex tile; - BeginVehicleMove(v); - tile = TileVirtXY(v->x_pos, v->y_pos); + TileIndex tile = TileVirtXY(v->x_pos, v->y_pos); if (!IsTileType(tile, MP_INDUSTRY)) { EndVehicleMove(v); delete v; @@ -1487,10 +1485,10 @@ void CheckVehicleBreakdown(Vehicle *v) /* decrease reliability */ v->reliability = rel = max((rel_old = v->reliability) - v->reliability_spd_dec, 0); - if ((rel_old >> 8) != (rel >> 8)) - InvalidateWindow(WC_VEHICLE_DETAILS, v->index); + if ((rel_old >> 8) != (rel >> 8)) InvalidateWindow(WC_VEHICLE_DETAILS, v->index); if (v->breakdown_ctr != 0 || v->vehstatus & VS_STOPPED || + _opt.diff.vehicle_breakdowns < 1 || v->cur_speed < 5 || _game_mode == GM_MENU) { return; } @@ -1499,16 +1497,13 @@ void CheckVehicleBreakdown(Vehicle *v) /* increase chance of failure */ int chance = v->breakdown_chance + 1; - if (Chance16I(1,25,r)) chance += 25; + if (Chance16I(1, 25, r)) chance += 25; v->breakdown_chance = min(255, chance); /* calculate reliability value to use in comparison */ rel = v->reliability; if (v->type == VEH_SHIP) rel += 0x6666; - /* disabled breakdowns? */ - if (_opt.diff.vehicle_breakdowns < 1) return; - /* reduced breakdowns? */ if (_opt.diff.vehicle_breakdowns == 1) rel += 0x6666;