Skip to content

Assertion failure loading savegame with missing grf #7618

Closed
@andythenorth

Description

@andythenorth

Preamble

This is a very specific case, involving changing grfs on a running game. This would not be valid for normal gameplay, but is absolutely inevitable for grf development

I have no expectation of support for the case described below. I added the ticket because peter1138 suggested it, with no promise of a fix.

Version of OpenTTD

a83b80bacfa4aa5da2a6043136749b164ac2b191 from #7380

Expected result

Game doesn't crash with failed assertion on load of a savegame where grfs are missing.

Actual result

Game crashes with "Assertion failed at line 229 of src/road.h: roadtype < ROADTYPE_END"

Steps to reproduce

For this specific case:

  • Road Hog grf has been recompiled multiple times and reloaded in a running game
  • the reloading has worked fine during gameplay
  • after restarting the game, OpenTTD no longer recognises the currently installed version of Road Hog as compatible with the version in the savegame
  • I have tried compiling and installing all the other recent revs of Road Hog, but the save appears to have a version with changes made in between commits
  • during grf dev, it is common for OpenTTD to not detect recompiled grfs as compatible with the version in a savegame, but usually OpenTTD does not crash, and newgrf settings can be used to swap out the grf (I am well aware of what can go wrong with this)

For additional bonuses, the save is from a game testing PR #7380, and also requires multiple unreleased grfs (in the attached zip, along with the .sav).

Additionally there is no crashlog, because OpenTTD has a guard and won't generate crashlogs when grfs are missing.

I'm not going to be shocked if this issue is rejected.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions