From 1cf555e433925ce8fee10e9befd4b0cd8fdb8f54 Mon Sep 17 00:00:00 2001 From: rr- Date: Fri, 18 Feb 2022 18:54:15 +0100 Subject: [PATCH] save/bson: allow land and water animal exchanges Resolves #441 --- CHANGELOG.md | 2 +- src/game/savegame_bson.c | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 422151949..ca2540e41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,5 @@ ## [Unreleased](https://github.com/rr-/Tomb1Main/compare/2.6.2...master) -- ... +- fixed croc and rats breaking saves after a flipmap (#441, regression from 2.6) ## [2.6.2](https://github.com/rr-/Tomb1Main/compare/2.6.1...2.6.2) - 2022-02-17 - fixed equipping gun after starting a demo (#440, regression from 2.6) diff --git a/src/game/savegame_bson.c b/src/game/savegame_bson.c index cbca73112..4bb4d0d9d 100644 --- a/src/game/savegame_bson.c +++ b/src/game/savegame_bson.c @@ -102,14 +102,21 @@ static bool Savegame_BSON_IsValidItemObject( // clang-format off switch (saved_obj_num) { + // used keyholes case O_PUZZLE_DONE1: return initial_obj_num == O_PUZZLE_HOLE1; case O_PUZZLE_DONE2: return initial_obj_num == O_PUZZLE_HOLE2; case O_PUZZLE_DONE3: return initial_obj_num == O_PUZZLE_HOLE3; case O_PUZZLE_DONE4: return initial_obj_num == O_PUZZLE_HOLE4; + // pickups case O_GUN_AMMO_ITEM: return initial_obj_num == O_PISTOLS; case O_SG_AMMO_ITEM: return initial_obj_num == O_SHOTGUN_ITEM; case O_MAG_AMMO_ITEM: return initial_obj_num == O_MAGNUM_ITEM; case O_UZI_AMMO_ITEM: return initial_obj_num == O_UZI_ITEM; + // dual-state animals + case O_ALLIGATOR: return initial_obj_num == O_CROCODILE; + case O_CROCODILE: return initial_obj_num == O_ALLIGATOR; + case O_RAT: return initial_obj_num == O_VOLE; + case O_VOLE: return initial_obj_num == O_RAT; } // clang-format on