diff options
author | rubidium <rubidium@openttd.org> | 2010-09-16 22:06:36 +0000 |
---|---|---|
committer | rubidium <rubidium@openttd.org> | 2010-09-16 22:06:36 +0000 |
commit | 97dbb1f27d6e1cad6be0b53f74a88694562f1331 (patch) | |
tree | ce1f613fc78678b0d5c54ff939b14563f1b55a1b /src/saveload/afterload.cpp | |
parent | 5b733f88a8f05c84d3e0ce7a19c3c9c79054657f (diff) | |
download | openttd-97dbb1f27d6e1cad6be0b53f74a88694562f1331.tar.xz |
(svn r20819) -Fix [FS#3714]: be a bit more "lenient" w.r.t. invalid savegames; don't crash on saveload related NOT_REACHEDs, just show the user an error that the savegame is corrupted
Diffstat (limited to 'src/saveload/afterload.cpp')
-rw-r--r-- | src/saveload/afterload.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp index 2d4e658ba..b12b4c469 100644 --- a/src/saveload/afterload.cpp +++ b/src/saveload/afterload.cpp @@ -79,7 +79,7 @@ void SetWaterClassDependingOnSurroundings(TileIndex t, bool include_invalid_wate SetWaterClass(t, WATER_CLASS_INVALID); return; } else { - NOT_REACHED(); + SlErrorCorrupt("Invalid water class for dry tile"); } } @@ -108,7 +108,7 @@ void SetWaterClassDependingOnSurroundings(TileIndex t, bool include_invalid_wate case WATER_CLASS_SEA: has_water = true; break; case WATER_CLASS_CANAL: has_canal = true; break; case WATER_CLASS_RIVER: has_river = true; break; - default: NOT_REACHED(); + default: SlErrorCorrupt("Invalid water class for tile"); } } break; @@ -871,7 +871,7 @@ bool AfterLoadGame() case MP_ROAD: SB(_m[t].m5, 6, 2, GB(_m[t].m5, 4, 2)); switch (GetRoadTileType(t)) { - default: NOT_REACHED(); + default: SlErrorCorrupt("Invalid road tile type"); case ROAD_TILE_NORMAL: SB(_m[t].m4, 0, 4, GB(_m[t].m5, 0, 4)); SB(_m[t].m4, 4, 4, 0); @@ -912,7 +912,7 @@ bool AfterLoadGame() if (fix_roadtypes) SetRoadTypes(t, (RoadTypes)GB(_me[t].m7, 5, 3)); SB(_me[t].m7, 5, 1, GB(_m[t].m3, 7, 1)); // snow/desert switch (GetRoadTileType(t)) { - default: NOT_REACHED(); + default: SlErrorCorrupt("Invalid road tile type"); case ROAD_TILE_NORMAL: SB(_me[t].m7, 0, 4, GB(_m[t].m3, 0, 4)); // road works SB(_m[t].m6, 3, 3, GB(_m[t].m3, 4, 3)); // ground @@ -1031,7 +1031,7 @@ bool AfterLoadGame() if (dir != DirToDiagDir(v->direction)) continue; switch (dir) { - default: NOT_REACHED(); + default: SlErrorCorrupt("Invalid vehicle direction"); case DIAGDIR_NE: if ((v->x_pos & 0xF) != 0) continue; break; case DIAGDIR_SE: if ((v->y_pos & 0xF) != TILE_SIZE - 1) continue; break; case DIAGDIR_SW: if ((v->x_pos & 0xF) != TILE_SIZE - 1) continue; break; |