1
0
mirror of https://github.com/OpenTTD/OpenTTD.git synced 2025-08-17 03:29:09 +00:00

(svn r3353) Simplify the automatic length adjustment algorithm for replacing trains: Use the length of the train before the replacement as reference length

This commit is contained in:
tron
2005-12-29 12:42:59 +00:00
parent 1ffc700797
commit 246c126d25
24 changed files with 22 additions and 83 deletions

View File

@@ -755,9 +755,6 @@ int32 CmdBuildRailVehicle(int x, int y, uint32 flags, uint32 p1, uint32 p2)
SetFrontEngine(v);
SetTrainEngine(v);
v->u.rail.shortest_platform[0] = 255;
v->u.rail.shortest_platform[1] = 0;
VehiclePositionChanged(v);
if (rvi->flags & RVI_MULTIHEAD) {
@@ -2427,27 +2424,6 @@ static bool ProcessTrainOrder(Vehicle *v)
v->dest_tile = 0;
// store the station length if no shorter station was visited this order round
if (v->cur_order_index == 0) {
if (v->u.rail.shortest_platform[1] != 0 && v->u.rail.shortest_platform[1] != 255) {
// we went though a whole round of orders without interruptions, so we store the length of the shortest station
v->u.rail.shortest_platform[0] = v->u.rail.shortest_platform[1];
}
// all platforms are shorter than 255, so now we can find the shortest in the next order round. They might have changed size
v->u.rail.shortest_platform[1] = 255;
}
if (v->last_station_visited != INVALID_STATION) {
Station *st = GetStation(v->last_station_visited);
if (TileBelongsToRailStation(st, v->tile)) {
byte length = GetStationPlatforms(st, v->tile);
if (length < v->u.rail.shortest_platform[1]) {
v->u.rail.shortest_platform[1] = length;
}
}
}
result = false;
switch (order->type) {
case OT_GOTO_STATION: