Merge branch 'improved_breakdowns' into jgrpp
# Conflicts: # src/saveload/extended_ver_sl.cpp # src/train_cmd.cpp
This commit is contained in:
@@ -146,6 +146,7 @@ void CheckBreakdownFlags(Train *v)
|
||||
} else if (w->breakdown_ctr == 1) {
|
||||
switch (w->breakdown_type) {
|
||||
case BREAKDOWN_CRITICAL:
|
||||
case BREAKDOWN_RV_CRASH:
|
||||
case BREAKDOWN_EM_STOP: SetBit(v->flags, VRF_BREAKDOWN_STOPPED); break;
|
||||
case BREAKDOWN_LOW_SPEED: SetBit(v->flags, VRF_BREAKDOWN_SPEED); break;
|
||||
case BREAKDOWN_LOW_POWER: SetBit(v->flags, VRF_BREAKDOWN_POWER); break;
|
||||
@@ -163,6 +164,9 @@ uint16 GetTrainVehicleMaxSpeed(const Train *u, const RailVehicleInfo *rvi_u, con
|
||||
speed = min(speed - (speed / (front->tcache.cached_num_engines + 2)) + 1, speed);
|
||||
}
|
||||
}
|
||||
if (HasBit(u->flags, VRF_HAS_HIT_RV) && front->IsFrontEngine()) {
|
||||
speed = min(speed, 30);
|
||||
}
|
||||
return speed;
|
||||
}
|
||||
|
||||
@@ -5190,3 +5194,13 @@ CommandCost CmdTemplateReplaceVehicle(TileIndex tile, DoCommandFlag flags, uint3
|
||||
|
||||
return buy;
|
||||
}
|
||||
|
||||
void TrainRoadVehicleCrashBreakdown(Vehicle *v)
|
||||
{
|
||||
Train *t = Train::From(v)->First();
|
||||
t->breakdown_ctr = 2;
|
||||
t->breakdown_delay = 255;
|
||||
t->breakdown_type = BREAKDOWN_RV_CRASH;
|
||||
t->breakdown_severity = 0;
|
||||
t->reliability = 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user