aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authormd52011-03-05 18:39:17 +0200
committermd52011-03-05 18:47:13 +0200
commitdbd3f440d2edb976bd304320daa8d150385261af (patch)
treec74e97bb89e5dbdaea89cb5d36a9284e4970227e /engines
parent69a026192e30c544379cf938efa6b545a62e3a08 (diff)
downloadscummvm-rg350-dbd3f440d2edb976bd304320daa8d150385261af.tar.gz
scummvm-rg350-dbd3f440d2edb976bd304320daa8d150385261af.tar.bz2
scummvm-rg350-dbd3f440d2edb976bd304320daa8d150385261af.zip
SCI: Added some support code for Longbow Amiga
Diffstat (limited to 'engines')
-rw-r--r--engines/sci/engine/kgraphics.cpp6
-rw-r--r--engines/sci/graphics/palette.cpp5
-rw-r--r--engines/sci/resource.cpp2
3 files changed, 10 insertions, 3 deletions
diff --git a/engines/sci/engine/kgraphics.cpp b/engines/sci/engine/kgraphics.cpp
index 6ec87487f8..fd052bff6a 100644
--- a/engines/sci/engine/kgraphics.cpp
+++ b/engines/sci/engine/kgraphics.cpp
@@ -561,8 +561,10 @@ reg_t kPaletteSetFromResource(EngineState *s, int argc, reg_t *argv) {
if (argc == 2)
force = argv[1].toUint16() == 2 ? true : false;
- // Non-VGA games don't use palette resources
- if (g_sci->_gfxPalette->getTotalColorCount() < 256)
+ // Non-VGA games don't use palette resources.
+ // This has been changed to 64 colors because Longbow Amiga does have
+ // one palette (palette 999).
+ if (g_sci->_gfxPalette->getTotalColorCount() < 64)
return s->r_acc;
g_sci->_gfxPalette->kernelSetFromResource(resourceId, force);
diff --git a/engines/sci/graphics/palette.cpp b/engines/sci/graphics/palette.cpp
index 48a069b88c..3b3596a336 100644
--- a/engines/sci/graphics/palette.cpp
+++ b/engines/sci/graphics/palette.cpp
@@ -80,7 +80,10 @@ GfxPalette::GfxPalette(ResourceManager *resMan, GfxScreen *screen, bool useMergi
switch (_resMan->getViewType()) {
case kViewVga:
case kViewVga11:
- _totalScreenColors = 256;
+ if (g_sci->getPlatform() == Common::kPlatformAmiga)
+ _totalScreenColors = 64; // Longbow Amiga
+ else
+ _totalScreenColors = 256;
break;
case kViewAmiga:
_totalScreenColors = 32;
diff --git a/engines/sci/resource.cpp b/engines/sci/resource.cpp
index 654c3f1d64..002f520935 100644
--- a/engines/sci/resource.cpp
+++ b/engines/sci/resource.cpp
@@ -1538,9 +1538,11 @@ void ResourceManager::readResourcePatches() {
if (i == kResourceTypeView) {
SearchMan.listMatchingMembers(files, "*.v16"); // EGA SCI1 view patches
SearchMan.listMatchingMembers(files, "*.v32"); // Amiga SCI1 view patches
+ SearchMan.listMatchingMembers(files, "*.v64"); // Amiga AGA SCI1 (i.e. Longbow) view patches
} else if (i == kResourceTypePic) {
SearchMan.listMatchingMembers(files, "*.p16"); // EGA SCI1 picture patches
SearchMan.listMatchingMembers(files, "*.p32"); // Amiga SCI1 picture patches
+ SearchMan.listMatchingMembers(files, "*.p64"); // Amiga AGA SCI1 (i.e. Longbow) picture patches
} else if (i == kResourceTypeScript) {
if (files.size() == 0)
// SCI3 (we can't use getSciVersion() at this point)