aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Hamm2002-04-19 21:06:50 +0000
committerVincent Hamm2002-04-19 21:06:50 +0000
commited65e89a897f66eadc53ce27eb5fe6b39d16a0eb (patch)
tree31261058e6c4b1a5ce92ff36c5bb3cad5a4379ef
parentf442157a14d6918ffa1738426c296eb2f4279fc2 (diff)
downloadscummvm-rg350-ed65e89a897f66eadc53ce27eb5fe6b39d16a0eb.tar.gz
scummvm-rg350-ed65e89a897f66eadc53ce27eb5fe6b39d16a0eb.tar.bz2
scummvm-rg350-ed65e89a897f66eadc53ce27eb5fe6b39d16a0eb.zip
Refixed getActorY in indy3. Fixed class (dunno if the fix doesn't break something else. Fixed intro by slowing down music rate by 3.
svn-id: r4018
-rw-r--r--script.cpp2
-rw-r--r--script_v1.cpp15
-rw-r--r--scumm.h1
-rw-r--r--scummvm.cpp14
4 files changed, 20 insertions, 12 deletions
diff --git a/script.cpp b/script.cpp
index cc0e27b038..069d8ccb40 100644
--- a/script.cpp
+++ b/script.cpp
@@ -272,7 +272,7 @@ void Scumm::executeScript()
_opcode = fetchScriptByte();
_scriptPointerStart = _scriptPointer;
vm.slot[_currentScript].didexec = 1;
- debug(1, "Script %d: [%X] %s()", vm.slot[_currentScript].number, _opcode, _opcodes_lookup[_opcode]);
+ //debug(1, "Script %d: [%X] %s()", vm.slot[_currentScript].number, _opcode, _opcodes_lookup[_opcode]);
op = getOpcode(_opcode);
(this->*op) ();
}
diff --git a/script_v1.cpp b/script_v1.cpp
index d223d33d5c..3b15ce6856 100644
--- a/script_v1.cpp
+++ b/script_v1.cpp
@@ -827,21 +827,18 @@ void Scumm::o5_actorSetClass()
_classData[act] = 0;
if( _features & GF_SMALL_HEADER)
-
{
-
Actor *a;
-
a=derefActor(act);
-
a->forceClip=0;
-
}
-
continue;
}
+ if(_gameId == GID_INDY3_256)
+ newClass--;
+
if (newClass & 0x80)
putClass(act, newClass, 1);
else
@@ -1323,7 +1320,7 @@ void Scumm::o5_getActorY()
actor = getVarOrDirectByte(0x80);
else
actor = getVarOrDirectWord(0x80);
- setResult(actor);
+ setResult(getObjY(actor));
}
void Scumm::o5_getAnimCounter()
@@ -2247,6 +2244,7 @@ void Scumm::o5_startScript()
void Scumm::o5_startSound()
{
+ _vars[VAR_MUSIC_FLAG]=0;
addSoundToQueue(getVarOrDirectByte(0x80));
}
@@ -2505,9 +2503,6 @@ void Scumm::o5_wait()
break;
return;
case 2: /* wait for message */
- if ((_currentRoom == 0) && (_gameId == GID_ZAK256)) // Bypass Zak256 script hang
- return;
-
if (_vars[VAR_HAVE_MSG])
break;
return;
diff --git a/scumm.h b/scumm.h
index b3a9463401..0f9ddd1a78 100644
--- a/scumm.h
+++ b/scumm.h
@@ -958,6 +958,7 @@ public:
uint16 _mouthSyncTimes[52];
uint _curSoundPos;
int current_cd_sound;
+ int tempMusic;
#ifdef COMPRESSED_SOUND_FILE
diff --git a/scummvm.cpp b/scummvm.cpp
index 107ce81b1f..0014384a7f 100644
--- a/scummvm.cpp
+++ b/scummvm.cpp
@@ -53,6 +53,8 @@ void Scumm::scummInit()
int i;
Actor *a;
+ tempMusic=0;
+
debug(9, "scummInit");
if (_features & GF_SMALL_HEADER)
@@ -252,7 +254,17 @@ int Scumm::scummLoop(int delta)
}
}
} else if (_features & GF_OLD256)
- _vars[VAR_MUSIC_FLAG]++; // ENDERFIX
+ {
+ if(tempMusic == 3)
+ {
+ tempMusic = 0;
+ _vars[VAR_MUSIC_FLAG]++;
+ }
+ else
+ {
+ tempMusic ++;
+ }
+ }
if (_saveLoadFlag) {
if (_saveLoadFlag == 1) {