mirror of https://github.com/OpenTTD/OpenTTD
Codechange: Iterate train group lists for CheckTrainsLengths
parent
e9a4f865b0
commit
8c17fad1e0
|
@ -77,23 +77,27 @@ void CheckTrainsLengths()
|
||||||
{
|
{
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
||||||
for (const Train *v : Train::Iterate()) {
|
for (const Company *c : Company::Iterate()) {
|
||||||
if (v->First() == v && !(v->vehstatus & VS_CRASHED)) {
|
const VehicleList &vehicle_list = c->group_all[VEH_TRAIN].vehicle_list;
|
||||||
for (const Train *u = v, *w = v->Next(); w != nullptr; u = w, w = w->Next()) {
|
for (const Vehicle *vehicle : vehicle_list) {
|
||||||
if (u->track != TRACK_BIT_DEPOT) {
|
const Train *v = Train::From(vehicle);
|
||||||
if ((w->track != TRACK_BIT_DEPOT &&
|
if (v->First() == v && !(v->vehstatus & VS_CRASHED)) {
|
||||||
|
for (const Train *u = v, *w = v->Next(); w != nullptr; u = w, w = w->Next()) {
|
||||||
|
if (u->track != TRACK_BIT_DEPOT) {
|
||||||
|
if ((w->track != TRACK_BIT_DEPOT &&
|
||||||
std::max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->CalcNextVehicleOffset()) ||
|
std::max(abs(u->x_pos - w->x_pos), abs(u->y_pos - w->y_pos)) != u->CalcNextVehicleOffset()) ||
|
||||||
(w->track == TRACK_BIT_DEPOT && TicksToLeaveDepot(u) <= 0)) {
|
(w->track == TRACK_BIT_DEPOT && TicksToLeaveDepot(u) <= 0)) {
|
||||||
SetDParam(0, v->index);
|
SetDParam(0, v->index);
|
||||||
SetDParam(1, v->owner);
|
SetDParam(1, v->owner);
|
||||||
ShowErrorMessage(STR_BROKEN_VEHICLE_LENGTH, INVALID_STRING_ID, WL_CRITICAL);
|
ShowErrorMessage(STR_BROKEN_VEHICLE_LENGTH, INVALID_STRING_ID, WL_CRITICAL);
|
||||||
|
|
||||||
if (!_networking && first) {
|
if (!_networking && first) {
|
||||||
first = false;
|
first = false;
|
||||||
Command<CMD_PAUSE>::Post(PM_PAUSED_ERROR, true);
|
Command<CMD_PAUSE>::Post(PM_PAUSED_ERROR, true);
|
||||||
|
}
|
||||||
|
/* Break so we warn only once for each train. */
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
/* Break so we warn only once for each train. */
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue