diff options
author | Eugene Sandulenko | 2005-07-29 18:29:23 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2005-07-29 18:29:23 +0000 |
commit | 208815a811044be91d9488f41957dd28330ca430 (patch) | |
tree | 763c4e46a76743ac7947d2e4aa8ed5392ce78a6f | |
parent | e85519624d561dbed8c23518c463f23f8443f2d5 (diff) | |
download | scummvm-rg350-208815a811044be91d9488f41957dd28330ca430.tar.gz scummvm-rg350-208815a811044be91d9488f41957dd28330ca430.tar.bz2 scummvm-rg350-208815a811044be91d9488f41957dd28330ca430.zip |
Restrict scene substitutes only to demos which actually use them
svn-id: r18597
-rw-r--r-- | saga/game.cpp | 6 | ||||
-rw-r--r-- | saga/saga.h | 3 | ||||
-rw-r--r-- | saga/scene.cpp | 45 |
3 files changed, 29 insertions, 25 deletions
diff --git a/saga/game.cpp b/saga/game.cpp index ed2bb6c168..736d9cb5ec 100644 --- a/saga/game.cpp +++ b/saga/game.cpp @@ -804,7 +804,7 @@ static GameDescription gameDescriptions[] = { &ITEMACDEMO_GameMusic, ARRAYSIZE(ITEMacPatch_Files), ITEMacPatch_Files, - GF_BIG_ENDIAN_DATA | GF_MAC_RESOURCES | GF_WYRMKEEP | GF_CD_FX + GF_BIG_ENDIAN_DATA | GF_MAC_RESOURCES | GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES }, // Inherit the earth - early MAC Demo version @@ -868,7 +868,7 @@ static GameDescription gameDescriptions[] = { &ITELINDEMO_GameMusic, ARRAYSIZE(ITELinPatch_Files), ITELinPatch_Files, - GF_WYRMKEEP | GF_CD_FX + GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES }, // Inherit the earth - Win32 Demo version @@ -889,7 +889,7 @@ static GameDescription gameDescriptions[] = { NULL, ARRAYSIZE(ITEWinPatch2_Files), ITEWinPatch2_Files, - GF_WYRMKEEP | GF_CD_FX + GF_WYRMKEEP | GF_CD_FX | GF_SCENE_SUBSTITUTES }, // Inherit the earth - early Win32 Demo version diff --git a/saga/saga.h b/saga/saga.h index 82ffda3eaa..bfe3c1d764 100644 --- a/saga/saga.h +++ b/saga/saga.h @@ -304,7 +304,8 @@ enum GameFeatures { GF_MAC_RESOURCES = 1 << 1, GF_LANG_DE = 1 << 2, GF_WYRMKEEP = 1 << 3, - GF_CD_FX = 1 << 4 + GF_CD_FX = 1 << 4, + GF_SCENE_SUBSTITUTES = 1 << 5 }; enum FontId { diff --git a/saga/scene.cpp b/saga/scene.cpp index 23b5ea3a90..ded43ee8eb 100644 --- a/saga/scene.cpp +++ b/saga/scene.cpp @@ -364,30 +364,33 @@ static struct SceneSubstitutes { void Scene::changeScene(uint16 sceneNumber, int actorsEntrance, SceneTransitionType transitionType) { // This is used for latter demos where all places on world map except // Tent Faire are substituted with LBM picture and short description - for (int i = 0; i < ARRAYSIZE(sceneSubstitutes); i++) { + if (_vm->getFeatures() & GF_SCENE_SUBSTITUTES) { + for (int i = 0; i < ARRAYSIZE(sceneSubstitutes); i++) { + if (sceneSubstitutes[i].sceneId == sceneNumber) { + Surface *backBuffer = _vm->_gfx->getBackBuffer(); + Surface bbmBuffer; + byte *pal, *colors; + Common::File file; + Rect rect; + PalEntry cPal[PAL_ENTRIES]; - if (sceneSubstitutes[i].sceneId == sceneNumber) { - Surface *backBuffer = _vm->_gfx->getBackBuffer(); - Surface bbmBuffer; - byte *pal, *colors; - Common::File file; - Rect rect; - PalEntry cPal[PAL_ENTRIES]; - - if (file.open(sceneSubstitutes[i].image)) { _vm->_interface->setMode(kPanelSceneSubstitute); - Graphics::decodeILBM(file, bbmBuffer, pal); - colors = pal; - rect.setWidth(bbmBuffer.w); - rect.setHeight(bbmBuffer.h); - backBuffer->blit(rect, (const byte*)bbmBuffer.pixels); - for (int j = 0; j < PAL_ENTRIES; j++) { - cPal[j].red = *pal++; - cPal[j].green = *pal++; - cPal[j].blue = *pal++; + + if (file.open(sceneSubstitutes[i].image)) { + Graphics::decodeILBM(file, bbmBuffer, pal); + colors = pal; + rect.setWidth(bbmBuffer.w); + rect.setHeight(bbmBuffer.h); + backBuffer->blit(rect, (const byte*)bbmBuffer.pixels); + for (int j = 0; j < PAL_ENTRIES; j++) { + cPal[j].red = *pal++; + cPal[j].green = *pal++; + cPal[j].blue = *pal++; + } + free(colors); + _vm->_gfx->setPalette(cPal); + } - free(colors); - _vm->_gfx->setPalette(cPal); _vm->_interface->setStatusText("Click or Press Return to continue. Press Q to quit.", 96); _vm->_font->textDrawRect(kMediumFont, backBuffer, sceneSubstitutes[i].title, |