[Scummvm-git-logs] scummvm master -> e01775bcae1696092713647946295e4974cb3d17

sluicebox noreply at scummvm.org
Mon Mar 21 19:35:49 UTC 2022


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
e01775bcae SCI32: Fix SHIVERS and PHANT2 loading autosave slot


Commit: e01775bcae1696092713647946295e4974cb3d17
    https://github.com/scummvm/scummvm/commit/e01775bcae1696092713647946295e4974cb3d17
Author: sluicebox (22204938+sluicebox at users.noreply.github.com)
Date: 2022-03-21T15:33:52-04:00

Commit Message:
SCI32: Fix SHIVERS and PHANT2 loading autosave slot

Fixes bug #13361

Changed paths:
    engines/sci/engine/guest_additions.cpp
    engines/sci/engine/kfile.cpp


diff --git a/engines/sci/engine/guest_additions.cpp b/engines/sci/engine/guest_additions.cpp
index 1225801b35e..0c73a5b515d 100644
--- a/engines/sci/engine/guest_additions.cpp
+++ b/engines/sci/engine/guest_additions.cpp
@@ -832,12 +832,12 @@ bool GuestAdditions::restoreFromLauncher() const {
 			reg_t canInputParams[] = { TRUE_REG };
 			invokeSelector(_state->variables[VAR_GLOBAL][kGlobalVarUser], SELECTOR(canInput), 1, canInputParams);
 
-			writeSelectorValue(_segMan, g_sci->getGameObject(), SELECTOR(num), _state->_delayedRestoreGameId - kSaveIdShift);
+			writeSelectorValue(_segMan, g_sci->getGameObject(), SELECTOR(num), shiftScummVMToSciSaveId(_state->_delayedRestoreGameId));
 			invokeSelector(g_sci->getGameObject(), SELECTOR(reallyRestore));
 		} else if (g_sci->getGameId() == GID_SHIVERS) {
 			// Shivers accepts the save game number as a parameter to
 			// `SHIVERS::restore`
-			reg_t args[] = { make_reg(0, _state->_delayedRestoreGameId - kSaveIdShift) };
+			reg_t args[] = { make_reg(0, shiftScummVMToSciSaveId(_state->_delayedRestoreGameId)) };
 			invokeSelector(g_sci->getGameObject(), SELECTOR(restore), 1, args);
 		} else {
 			int saveId = _state->_delayedRestoreGameId;
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 659b874a497..5967bdb530a 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -1506,7 +1506,7 @@ reg_t kGetSaveFiles32(EngineState *s, int argc, reg_t *argv) {
 		// At least Phant2 requires use of strncpy, since it creates save game
 		// names of exactly kMaxSaveNameLength
 		strncpy(target, save.name, kMaxSaveNameLength);
-		int16 sciSaveId = (save.id == 0) ? kMaxShiftedSaveId : (save.id - kSaveIdShift);
+		int16 sciSaveId = shiftScummVMToSciSaveId(save.id);
 		saveIds.setFromInt16(i, sciSaveId);
 	}
 




More information about the Scummvm-git-logs mailing list