aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script_v2.cpp2
-rw-r--r--scumm/scummvm.cpp13
2 files changed, 14 insertions, 1 deletions
diff --git a/scumm/script_v2.cpp b/scumm/script_v2.cpp
index f0cf8edede..a0b64c090c 100644
--- a/scumm/script_v2.cpp
+++ b/scumm/script_v2.cpp
@@ -702,6 +702,8 @@ void ScummEngine_v2::o2_actorOps() {
case 5: // SO_TALK_COLOR
if ((_gameId == GID_MANIAC) && (_version == 1))
v1_mm_actor_speech_color[act] = arg;
+ else if (_gameId == GID_MANIAC && _demoMode)
+ a->talkColor = 15;
else
a->talkColor = arg;
break;
diff --git a/scumm/scummvm.cpp b/scumm/scummvm.cpp
index b4e25861ea..94ed7740d0 100644
--- a/scumm/scummvm.cpp
+++ b/scumm/scummvm.cpp
@@ -1045,6 +1045,17 @@ void ScummEngine::scummInit() {
_actors[i].setActorCostume(i);
}
+ // HACK Some palette changes needed for demo script
+ // in Maniac Mansion (Enchanced)
+ if (_gameId == GID_MANIAC && _version == 2 && _demoMode) {
+ _actors[3].setPalette(3, 1);
+ _actors[9].talkColor = 15;
+ _actors[10].talkColor = 7;
+ _actors[11].talkColor = 2;
+ _actors[13].talkColor = 5;
+ _actors[23].talkColor = 14;
+ }
+
vm.numNestedScripts = 0;
vm.cutSceneStackPointer = 0;
@@ -2503,7 +2514,7 @@ void ScummEngine::restart() {
int args[16];
memset(args, 0, sizeof(args));
args[0] = _bootParam;
- if (_gameId == GID_MANIAC && _version == 1 && _demoMode)
+ if (_gameId == GID_MANIAC && _demoMode)
runScript(9, 0, 0, args);
else
runScript(1, 0, 0, args);