Permalink
Browse files

SCI32: Fix broken palette when loading a game in Shivers from the GMM

  • Loading branch information...
bluegr committed Aug 26, 2018
1 parent 3376597 commit c978139f100a45ca6dbe8523f939cc2fc69d39a3
Showing with 12 additions and 2 deletions.
  1. +12 −2 engines/sci/engine/savegame.cpp
@@ -1250,8 +1250,8 @@ void gamestate_afterRestoreFixUp(EngineState *s, int savegameId) {
}
break;
case GID_PQ2:
// HACK: Same as above - enable the save game menu option when loading in PQ2 (bug #6875).
// It gets disabled in the game's death screen.
// HACK: Same as in Jones - enable the save game menu option when loading in
// PQ2 (bug #6875). It gets disabled in the game's death screen.
g_sci->_gfxMenu->kernelSetAttribute(2, 1, SCI_MENU_ATTRIBUTE_ENABLED, TRUE_REG); // Game -> Save Game
break;
#ifdef ENABLE_SCI32
@@ -1260,6 +1260,16 @@ void gamestate_afterRestoreFixUp(EngineState *s, int savegameId) {
s->variables[VAR_GLOBAL][kGlobalVarPhant2CensorshipFlag] = make_reg(0, ConfMan.getBool("enable_censoring"));
}
break;
case GID_SHIVERS:
// WORKAROUND: When loading a saved game from the GMM in the same scene in
// Shivers, we end up with the same draw list, but the scene palette is not
// set properly. Normally, Shivers does a room change when showing the saved
// game list, which does not occur when loading directly from the GMM. When
// loading from the GMM, at this point all of the visible planes and items
// are deleted, so calling frameOut here helps reset the game palette
// properly, like when changing a room.
g_sci->_gfxFrameout->frameOut(true);
break;
#endif
default:
break;

0 comments on commit c978139

Please sign in to comment.