From 3f55e5364e69c0ce4d0011371afbad4153fc073e Mon Sep 17 00:00:00 2001 From: frosch Date: Sat, 9 May 2015 10:04:50 +0000 Subject: (svn r27278) -Fix: Handle savegames with an unexpected amount of industry-builder or NewGRF entity-mapping more gracefully. --- src/saveload/industry_sl.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'src/saveload/industry_sl.cpp') diff --git a/src/saveload/industry_sl.cpp b/src/saveload/industry_sl.cpp index 658cfd2bd..34e857c6f 100644 --- a/src/saveload/industry_sl.cpp +++ b/src/saveload/industry_sl.cpp @@ -160,14 +160,12 @@ static void Save_ITBL() /** Load industry-type build data. */ static void Load_ITBL() { + _industry_builder.Reset(); int index; - for (int i = 0; i < NUM_INDUSTRYTYPES; i++) { - index = SlIterateArray(); - assert(index == i); - SlObject(_industry_builder.builddata + i, _industrytype_builder_desc); + while ((index = SlIterateArray()) != -1) { + if ((uint)index >= NUM_INDUSTRYTYPES) SlErrorCorrupt("Too many industry builder datas"); + SlObject(_industry_builder.builddata + index, _industrytype_builder_desc); } - index = SlIterateArray(); - assert(index == -1); } extern const ChunkHandler _industry_chunk_handlers[] = { -- cgit v1.2.3-54-g00ecf