aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorJonathan Gray2003-04-29 09:14:05 +0000
committerJonathan Gray2003-04-29 09:14:05 +0000
commitea6dace0b26f94c71b88e68abf05016a052665e6 (patch)
treec4f87b6d7d18d82ae868c322485601c991b83f58 /scumm
parentdd3eaff29488e728d7a788e06a5b6f55a775b893 (diff)
downloadscummvm-rg350-ea6dace0b26f94c71b88e68abf05016a052665e6.tar.gz
scummvm-rg350-ea6dace0b26f94c71b88e68abf05016a052665e6.tar.bz2
scummvm-rg350-ea6dace0b26f94c71b88e68abf05016a052665e6.zip
patch #729365 indy3 intro fix by erik
svn-id: r7194
Diffstat (limited to 'scumm')
-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