aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSven Hesse2009-07-25 16:07:29 +0000
committerSven Hesse2009-07-25 16:07:29 +0000
commitedab6f2d7fe629d8c4e1c9d2c1f3f72ef2e6960a (patch)
tree6b22d5dbbacd2697faf6d4788ae9bc3b808c5efe
parent581ed45590a632c4b6f1037820aedf0449558647 (diff)
downloadscummvm-rg350-edab6f2d7fe629d8c4e1c9d2c1f3f72ef2e6960a.tar.gz
scummvm-rg350-edab6f2d7fe629d8c4e1c9d2c1f3f72ef2e6960a.tar.bz2
scummvm-rg350-edab6f2d7fe629d8c4e1c9d2c1f3f72ef2e6960a.zip
Added a workaround to fix the Last Dynasty video greenness for now
svn-id: r42766
-rw-r--r--engines/gob/inter_v1.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/engines/gob/inter_v1.cpp b/engines/gob/inter_v1.cpp
index 69c392b198..910f3f7b5f 100644
--- a/engines/gob/inter_v1.cpp
+++ b/engines/gob/inter_v1.cpp
@@ -972,6 +972,7 @@ bool Inter_v1::o1_loadTot(OpFuncParams &params) {
bool Inter_v1::o1_palLoad(OpFuncParams &params) {
int index1, index2;
+ int16 id;
byte cmd;
Resource *resource;
@@ -1116,7 +1117,8 @@ bool Inter_v1::o1_palLoad(OpFuncParams &params) {
case 61:
index1 = _vm->_game->_script->readByte();
index2 = (_vm->_game->_script->readByte() - index1 + 1) * 3;
- resource = _vm->_game->_resources->getResource(_vm->_game->_script->readInt16());
+ id = _vm->_game->_script->readInt16();
+ resource = _vm->_game->_resources->getResource(id);
if (!resource)
break;
@@ -1124,6 +1126,13 @@ bool Inter_v1::o1_palLoad(OpFuncParams &params) {
resource->getData() + index1 * 3, index2);
delete resource;
+ // WORKAROUND: The Last Dynasty overwrites the 0. palette entry but depends on it staying black.
+ if ((_vm->getGameType() == kGameTypeDynasty) && (index1 == 0)) {
+ _vm->_draw->_vgaPalette[0].red = 0;
+ _vm->_draw->_vgaPalette[0].green = 0;
+ _vm->_draw->_vgaPalette[0].blue = 0;
+ }
+
if (_vm->_draw->_applyPal) {
_vm->_draw->_applyPal = false;
_vm->_video->setFullPalette(_vm->_global->_pPaletteDesc);