FS#6382 - When loading a 1.4.4 saved game in 1.5.0 or 1.5.2, trains leave too early

Attached to Project: OpenTTD
Opened by Sandra (Sandra) - Friday, 23 October 2015, 12:02 GMT
Type Bug
Category Core
Status New
Assigned To No-one
Operating System All
Severity Very Low
Priority Normal
Reported Version 1.5.2
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No


Background: I'm a player who puts an emphasis on making complex timetables. I run OpenTTD (64-bit) on Windows 7.
I will first describe a 1.5.0 bug that appears to have been _partially_ solved in 1.5.2, followed by what remains of this bug in 1.5.2. To my surprise, I have not found the 1.5.0 bug in the bug tracker, nor in any of the post-1.5.0 changelogs.

--- 1.5.0 ---

After upgrading from 1.4.4 to 1.5.0, I've noticed that most of my timetabled vehicles (trains, road vehicles, aircraft as well as ships) are leaving way too early, thinking that they are late.

To demonstrate the problem, I have attached a saved game (bug.sav). The game was first saved using version 1.4.4 and was paused when I saved it. I then loaded it into version 1.5.0 (and resaved it in 1.5.0 without having unpaused it, but this step is not required to reproduce the bug).

The bug seems to affect nearly all vehicles that were "Loading/unloading" when I saved the game, but not those that were "Heading for ...". The bug does not show up until I unpause the game.

Take, for example, trains 30, 37 and 40 (all near the current focus). Their scheduled departure times are, respectively, 16-10-2012, 26-02-2013 and 05-10-2012. Given that the current date is 29th Sep 2012, none of them should be leaving any time soon.
When I unpause the game, however, all three trains leave immediately, indicating that they are, respectively, 21, 62 and 5 days late.

Even stranger behaviour can be seen in road vehicles 56 to 61, which share orders. As soon as I unpause the game, one of the entries that read "Go non-stop to Francois and stay for 4 days" changes to "Go non-stop to Francois (stay for 5 days, not timetabled)". Apart from changing the number of days from 4 to 5, it seems to me that "stay for 5 days, not timetabled" contradicts itself.

--- 1.5.2 ---

I have also tried the same thing using 1.5.2 (thus, loading the 1.4.4 save in 1.5.2).
(To reproduce this, the same bug.sav can be used.)
In 1.5.2, the behaviour is different, but still wrong.
After unpausing, trains 30, 37 and 40 still leave immediately, but now claim to be, respectively, 16, 149 and 5 days EARLY. These numbers, and the scheduled departure times, are correct, but the trains should not have left in the first place. Luckily, the bug only shows up once: the train will wait extra long at the next stop to make up for the headway that it got. Unfortunately, this may still cause cumulative delays for other trains and sometimes even cause deadlocks.

I've set the severity to "Very Low" because I think that's how others will perceive it, but personally I find it most annoying. I have yet to decide on whether I'll stay at 1.5.2 and fix everything by hand right after unpausing, or downgrade to 1.4.4.
(application/octet-stream)    bug.sav (743 KiB)
This task depends upon