aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scumm/script_v5.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index dcf1e1ca80..382da1e99a 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -642,9 +642,18 @@ void Scumm_v5::o5_cursorCommand() {
initCharset(getVarOrDirectByte(0x80));
break;
case 14: /* unk */
- getWordVararg(table);
- for (i = 0; i < 16; i++)
- _charsetColorMap[i] = _charsetData[_string[1].t_charset][i] = (unsigned char)table[i];
+ if (_gameId == GID_INDY3 || _gameId == GID_INDY3_256) {
+ // FIXME: What is this supposed to do? From comparing
+ // Indy3's script 118 to the Passport Demo's script 58
+ // my guess is that it's some sort of "init charset",
+ // but why does it need two parameters?
+ getVarOrDirectByte(0x80);
+ getVarOrDirectByte(0x40);
+ } else {
+ getWordVararg(table);
+ for (i = 0; i < 16; i++)
+ _charsetColorMap[i] = _charsetData[_string[1].t_charset][i] = (unsigned char)table[i];
+ }
break;
}
@@ -1303,11 +1312,6 @@ void Scumm_v5::o5_loadRoom() {
int room;
room = getVarOrDirectByte(0x80);
-
- // FIXME nasty hack to make indy have right costume
- if ( ((_gameId == GID_INDY3_256) || (_gameId == GID_INDY3)) &&
- (_currentRoom == 6) && (_currentScript == 1))
- _actors[1].setActorCostume(10);
// For small header games, we only call startScene if the room
// actually changed. This avoid unwanted (wrong) fades in Zak256