aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--engines/director/score.cpp83
1 files changed, 76 insertions, 7 deletions
diff --git a/engines/director/score.cpp b/engines/director/score.cpp
index 6352e432fb..776768b167 100644
--- a/engines/director/score.cpp
+++ b/engines/director/score.cpp
@@ -44,6 +44,72 @@
namespace Director {
+static byte defaultPalette[768] = {
+ 0, 0, 0, 17, 17, 17, 34, 34, 34, 68, 68, 68,
+ 85, 85, 85, 119, 119, 119, 136, 136, 136, 170, 170, 170,
+ 187, 187, 187, 221, 221, 221, 238, 238, 238, 0, 0, 17,
+ 0, 0, 34, 0, 0, 68, 0, 0, 85, 0, 0, 119,
+ 0, 0, 136, 0, 0, 170, 0, 0, 187, 0, 0, 221,
+ 0, 0, 238, 0, 17, 0, 0, 34, 0, 0, 68, 0,
+ 0, 85, 0, 0, 119, 0, 0, 136, 0, 0, 170, 0,
+ 0, 187, 0, 0, 221, 0, 0, 238, 0, 17, 0, 0,
+ 34, 0, 0, 68, 0, 0, 85, 0, 0, 119, 0, 0,
+ 136, 0, 0, 170, 0, 0, 187, 0, 0, 221, 0, 0,
+ 238, 0, 0, 0, 0, 51, 0, 0, 102, 0, 0, 153,
+ 0, 0, 204, 0, 0, 255, 0, 51, 0, 0, 51, 51,
+ 0, 51, 102, 0, 51, 153, 0, 51, 204, 0, 51, 255,
+ 0, 102, 0, 0, 102, 51, 0, 102, 102, 0, 102, 153,
+ 0, 102, 204, 0, 102, 255, 0, 153, 0, 0, 153, 51,
+ 0, 153, 102, 0, 153, 153, 0, 153, 204, 0, 153, 255,
+ 0, 204, 0, 0, 204, 51, 0, 204, 102, 0, 204, 153,
+ 0, 204, 204, 0, 204, 255, 0, 255, 0, 0, 255, 51,
+ 0, 255, 102, 0, 255, 153, 0, 255, 204, 0, 255, 255,
+ 51, 0, 0, 51, 0, 51, 51, 0, 102, 51, 0, 153,
+ 51, 0, 204, 51, 0, 255, 51, 51, 0, 51, 51, 51,
+ 51, 51, 102, 51, 51, 153, 51, 51, 204, 51, 51, 255,
+ 51, 102, 0, 51, 102, 51, 51, 102, 102, 51, 102, 153,
+ 51, 102, 204, 51, 102, 255, 51, 153, 0, 51, 153, 51,
+ 51, 153, 102, 51, 153, 153, 51, 153, 204, 51, 153, 255,
+ 51, 204, 0, 51, 204, 51, 51, 204, 102, 51, 204, 153,
+ 51, 204, 204, 51, 204, 255, 51, 255, 0, 51, 255, 51,
+ 51, 255, 102, 51, 255, 153, 51, 255, 204, 51, 255, 255,
+ 102, 0, 0, 102, 0, 51, 102, 0, 102, 102, 0, 153,
+ 102, 0, 204, 102, 0, 255, 102, 51, 0, 102, 51, 51,
+ 102, 51, 102, 102, 51, 153, 102, 51, 204, 102, 51, 255,
+ 102, 102, 0, 102, 102, 51, 102, 102, 102, 102, 102, 153,
+ 102, 102, 204, 102, 102, 255, 102, 153, 0, 102, 153, 51,
+ 102, 153, 102, 102, 153, 153, 102, 153, 204, 102, 153, 255,
+ 102, 204, 0, 102, 204, 51, 102, 204, 102, 102, 204, 153,
+ 102, 204, 204, 102, 204, 255, 102, 255, 0, 102, 255, 51,
+ 102, 255, 102, 102, 255, 153, 102, 255, 204, 102, 255, 255,
+ 153, 0, 0, 153, 0, 51, 153, 0, 102, 153, 0, 153,
+ 153, 0, 204, 153, 0, 255, 153, 51, 0, 153, 51, 51,
+ 153, 51, 102, 153, 51, 153, 153, 51, 204, 153, 51, 255,
+ 153, 102, 0, 153, 102, 51, 153, 102, 102, 153, 102, 153,
+ 153, 102, 204, 153, 102, 255, 153, 153, 0, 153, 153, 51,
+ 153, 153, 102, 153, 153, 153, 153, 153, 204, 153, 153, 255,
+ 153, 204, 0, 153, 204, 51, 153, 204, 102, 153, 204, 153,
+ 153, 204, 204, 153, 204, 255, 153, 255, 0, 153, 255, 51,
+ 153, 255, 102, 153, 255, 153, 153, 255, 204, 153, 255, 255,
+ 204, 0, 0, 204, 0, 51, 204, 0, 102, 204, 0, 153,
+ 204, 0, 204, 204, 0, 255, 204, 51, 0, 204, 51, 51,
+ 204, 51, 102, 204, 51, 153, 204, 51, 204, 204, 51, 255,
+ 204, 102, 0, 204, 102, 51, 204, 102, 102, 204, 102, 153,
+ 204, 102, 204, 204, 102, 255, 204, 153, 0, 204, 153, 51,
+ 204, 153, 102, 204, 153, 153, 204, 153, 204, 204, 153, 255,
+ 204, 204, 0, 204, 204, 51, 204, 204, 102, 204, 204, 153,
+ 204, 204, 204, 204, 204, 255, 204, 255, 0, 204, 255, 51,
+ 204, 255, 102, 204, 255, 153, 204, 255, 204, 204, 255, 255,
+ 255, 0, 0, 255, 0, 51, 255, 0, 102, 255, 0, 153,
+ 255, 0, 204, 255, 0, 255, 255, 51, 0, 255, 51, 51,
+ 255, 51, 102, 255, 51, 153, 255, 51, 204, 255, 51, 255,
+ 255, 102, 0, 255, 102, 51, 255, 102, 102, 255, 102, 153,
+ 255, 102, 204, 255, 102, 255, 255, 153, 0, 255, 153, 51,
+ 255, 153, 102, 255, 153, 153, 255, 153, 204, 255, 153, 255,
+ 255, 204, 0, 255, 204, 51, 255, 204, 102, 255, 204, 153,
+ 255, 204, 204, 255, 204, 255, 255, 255, 0, 255, 255, 51,
+ 255, 255, 102, 255, 255, 153, 255, 255, 204, 255, 255, 255 };
+
Score::Score(DirectorEngine *vm) {
loadMacFonts();
_vm = vm;
@@ -69,15 +135,18 @@ void Score::loadArchive() {
Common::Array<uint16> clutList = _movieArchive->getResourceIDList(MKTAG('C','L','U','T'));
if (clutList.size() > 1)
- error("More than one palette was found");
-
- if (clutList.size() == 0)
- error("CLUT not found");
+ warning("More than one palette was found (%d)", clutList.size());
- Common::SeekableSubReadStreamEndian *pal = _movieArchive->getResource(MKTAG('C', 'L', 'U', 'T'), clutList[0]);
+ if (clutList.size() == 0) {
+ warning("CLUT resource not found, using default Mac palette");
+ g_system->getPaletteManager()->setPalette(defaultPalette, 0, 256);
+ _vm->setPalette(defaultPalette, 256);
+ } else {
+ Common::SeekableSubReadStreamEndian *pal = _movieArchive->getResource(MKTAG('C', 'L', 'U', 'T'), clutList[0]);
- loadPalette(*pal);
- g_system->getPaletteManager()->setPalette(_vm->getPalette(), 0, _vm->getPaletteColorCount());
+ loadPalette(*pal);
+ g_system->getPaletteManager()->setPalette(_vm->getPalette(), 0, _vm->getPaletteColorCount());
+ }
assert(_movieArchive->hasResource(MKTAG('V','W','S','C'), 1024));
assert(_movieArchive->hasResource(MKTAG('V','W','C','F'), 1024));