From c01803cd42b06c9e0716b86079d825dbb06036ad Mon Sep 17 00:00:00 2001 From: SamuXarick <43006711+SamuXarick@users.noreply.github.com> Date: Mon, 4 May 2020 18:41:16 +0100 Subject: Fix #8108: possible crash on loading TTD savegames with phantom oil rigs --- src/saveload/afterload.cpp | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'src/saveload') diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 63e4b37e6..432e35dd2 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -929,19 +929,19 @@ bool AfterLoadGame() break; case STATION_OILRIG: { + /* The internal encoding of oil rigs was changed twice. + * It was 3 (till 2.2) and later 5 (till 5.1). + * DeleteOilRig asserts on the correct type, and + * setting it unconditionally does not hurt. + */ + Station::GetByTile(t)->airport.type = AT_OILRIG; + /* Very old savegames sometimes have phantom oil rigs, i.e. * an oil rig which got shut down, but not completely removed from * the map */ TileIndex t1 = TILE_ADDXY(t, 0, 1); - if (IsTileType(t1, MP_INDUSTRY) && - GetIndustryGfx(t1) == GFX_OILRIG_1) { - /* The internal encoding of oil rigs was changed twice. - * It was 3 (till 2.2) and later 5 (till 5.1). - * Setting it unconditionally does not hurt. - */ - Station::GetByTile(t)->airport.type = AT_OILRIG; - } else { + if (!IsTileType(t1, MP_INDUSTRY) || GetIndustryGfx(t1) != GFX_OILRIG_1) { DeleteOilRig(t); } break; -- cgit v1.2.3-54-g00ecf