| 571 | } |
| 572 | |
| 573 | static bool RoadVehCheckTrainCrash(RoadVehicle *v) |
| 574 | { |
| 575 | for (RoadVehicle *u = v; u != nullptr; u = u->Next()) { |
| 576 | if (u->state == RVSB_WORMHOLE) continue; |
| 577 | |
| 578 | TileIndex tile = u->tile; |
| 579 | |
| 580 | if (!IsLevelCrossingTile(tile)) continue; |
| 581 | |
| 582 | if (HasVehicleNearTileXY(v->x_pos, v->y_pos, 4, [&u](const Vehicle *t) { |
| 583 | return t->type == VEH_TRAIN && abs(t->z_pos - u->z_pos) <= 6; |
| 584 | })) { |
| 585 | RoadVehCrash(v); |
| 586 | return true; |
| 587 | } |
| 588 | } |
| 589 | |
| 590 | return false; |
| 591 | } |
| 592 | |
| 593 | TileIndex RoadVehicle::GetOrderStationLocation(StationID station) |
| 594 | { |
no test coverage detected