FS#6688 - Random game crash
Attached to Project:
OpenTTD
Opened by Bogdan (bnegrut) - Monday, 19 March 2018, 19:33 GMT
Opened by Bogdan (bnegrut) - Monday, 19 March 2018, 19:33 GMT
|
DetailsRandom game crash
OS Windows 10, 64 bit Game version 1.7.2. 64 bit Crash at: Mon Mar 19 19:27:44 2018 In game date: 1922-10-08 (16) Crash reason: Exception: C0000005 Location: 00007FF70AAB5440 Message: <none> OpenTTD version: Version: 1.7.2 (0) NewGRF ver: 17286d2d Bits: 64 Endian: little Dedicated: no Build date: Dec 24 2017 12:25:35 |
This task depends upon
Tick 14454: GRF config changed
Removed NewGRF: GRF ID 52455400, unknown GRF
There is a reason changing NewGRFs is hidden behind a openttd.cfg-only option and displays a red warning window (which should also have told you NOT to report issues that happen after you do so): Changing NewGRFs can wreak all kinds of havoc in a savegame, including setting it up so it crashes later. That appears to be what happened here, so ... warranty void, I guess.
What I can not understand is why a GRF that is not loaded cause such havoc. Also, as far as I remember I did not load it for this game. Is there a way to check if this GRF was loaded at some point in the game?
Attached is a screenshot with the GRFs in use in game.
I'm not the developer of that GRF (or even a GRF dev at all), so I don't know how it's coded (and I'm not familiar with OpenTTD's NewGRF handling code either) and therefore don't know if the following even has a chance of working, but my first attempt at fixing this savegame would be adding the GRF back (at least you were able to identify the missing one, so there's that). Considering that it's a fairly old and possibly a relatively simple GRF just providing station graphics, it might just work, but that's unfortunately far from guaranteed.
GRFs are deeply integrated into the system, so they can have great influence on the game state. When GRFs are changed, a lot of lists get updated, but when the stuff in the lists has been used already, we are screwed. Then some hilarious things can happen, like lone helicopter rotors swimming across the ocean, or a coal plant's exhaust plume pulling into a bus station. But things can go more wrong than that - try loading passengers into that exhaust plume, for instance. They'll probably choke, as does the game that assumed the plume was a bus instead. Though I can't think of a reason why the absence of a station set would lead to a crash (and I can't check the stacktrace to see what the game was doing, because unlike Linux, Windows stacktraces need tools to decipher), there appears to be one.