Skip to content

Commit

Permalink
SCI32: Fix SHIVERS and PHANT2 loading autosave slot
Browse files Browse the repository at this point in the history
Fixes bug #13361
  • Loading branch information
sluicebox committed Mar 21, 2022
1 parent cb8b60e commit e01775b
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions engines/sci/engine/guest_additions.cpp
Expand Up @@ -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;
Expand Down
2 changes: 1 addition & 1 deletion engines/sci/engine/kfile.cpp
Expand Up @@ -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);
}

Expand Down

0 comments on commit e01775b

Please sign in to comment.