Skip to content

Commit 780739f

Browse files
committed
SetupFromSave: Make loading code a bit more defensive
Signed-off-by: Ghabry <gabriel+github@mastergk.de>
1 parent 1d5dd09 commit 780739f

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

src/game_map.cpp

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -241,16 +241,20 @@ void Game_Map::SetupFromSave(
241241

242242
if (is_map_save_compat) {
243243
std::vector<int> destroyed_event_ids;
244-
for (size_t i = 0, j = 0; i < events.size();++i) {
244+
245+
for (size_t i = 0, j = 0; i < events.size() && j < map_info.events.size(); ++i) {
245246
auto& ev = events[i];
246247
auto& save_ev = map_info.events[j];
247248
if (ev.GetId() == save_ev.ID) {
248249
ev.SetSaveData(save_ev);
249250
++j;
250251
} else {
251-
assert(save_ev.ID > ev.GetId());
252-
// assume that the event has been destroyed during gameplay via "DestroyMapEvent"
253-
destroyed_event_ids.emplace_back(ev.GetId());
252+
if (save_ev.ID > ev.GetId()) {
253+
// assume that the event has been destroyed during gameplay via "DestroyMapEvent"
254+
destroyed_event_ids.emplace_back(ev.GetId());
255+
} else {
256+
Output::Debug("SetupFromSave: Unexpected ID {}/{}", save_ev.ID, ev.GetId());
257+
}
254258
}
255259
}
256260
for (size_t i = 0; i < destroyed_event_ids.size(); ++i) {

0 commit comments

Comments
 (0)