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
This commit is contained in:
parent
f442157a14
commit
ed65e89a89
4 changed files with 20 additions and 12 deletions
|
@ -272,7 +272,7 @@ void Scumm::executeScript()
|
||||||
_opcode = fetchScriptByte();
|
_opcode = fetchScriptByte();
|
||||||
_scriptPointerStart = _scriptPointer;
|
_scriptPointerStart = _scriptPointer;
|
||||||
vm.slot[_currentScript].didexec = 1;
|
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);
|
op = getOpcode(_opcode);
|
||||||
(this->*op) ();
|
(this->*op) ();
|
||||||
}
|
}
|
||||||
|
|
|
@ -827,21 +827,18 @@ void Scumm::o5_actorSetClass()
|
||||||
_classData[act] = 0;
|
_classData[act] = 0;
|
||||||
|
|
||||||
if( _features & GF_SMALL_HEADER)
|
if( _features & GF_SMALL_HEADER)
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|
||||||
Actor *a;
|
Actor *a;
|
||||||
|
|
||||||
a=derefActor(act);
|
a=derefActor(act);
|
||||||
|
|
||||||
a->forceClip=0;
|
a->forceClip=0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(_gameId == GID_INDY3_256)
|
||||||
|
newClass--;
|
||||||
|
|
||||||
if (newClass & 0x80)
|
if (newClass & 0x80)
|
||||||
putClass(act, newClass, 1);
|
putClass(act, newClass, 1);
|
||||||
else
|
else
|
||||||
|
@ -1323,7 +1320,7 @@ void Scumm::o5_getActorY()
|
||||||
actor = getVarOrDirectByte(0x80);
|
actor = getVarOrDirectByte(0x80);
|
||||||
else
|
else
|
||||||
actor = getVarOrDirectWord(0x80);
|
actor = getVarOrDirectWord(0x80);
|
||||||
setResult(actor);
|
setResult(getObjY(actor));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Scumm::o5_getAnimCounter()
|
void Scumm::o5_getAnimCounter()
|
||||||
|
@ -2247,6 +2244,7 @@ void Scumm::o5_startScript()
|
||||||
|
|
||||||
void Scumm::o5_startSound()
|
void Scumm::o5_startSound()
|
||||||
{
|
{
|
||||||
|
_vars[VAR_MUSIC_FLAG]=0;
|
||||||
addSoundToQueue(getVarOrDirectByte(0x80));
|
addSoundToQueue(getVarOrDirectByte(0x80));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2505,9 +2503,6 @@ void Scumm::o5_wait()
|
||||||
break;
|
break;
|
||||||
return;
|
return;
|
||||||
case 2: /* wait for message */
|
case 2: /* wait for message */
|
||||||
if ((_currentRoom == 0) && (_gameId == GID_ZAK256)) // Bypass Zak256 script hang
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (_vars[VAR_HAVE_MSG])
|
if (_vars[VAR_HAVE_MSG])
|
||||||
break;
|
break;
|
||||||
return;
|
return;
|
||||||
|
|
1
scumm.h
1
scumm.h
|
@ -958,6 +958,7 @@ public:
|
||||||
uint16 _mouthSyncTimes[52];
|
uint16 _mouthSyncTimes[52];
|
||||||
uint _curSoundPos;
|
uint _curSoundPos;
|
||||||
int current_cd_sound;
|
int current_cd_sound;
|
||||||
|
int tempMusic;
|
||||||
|
|
||||||
#ifdef COMPRESSED_SOUND_FILE
|
#ifdef COMPRESSED_SOUND_FILE
|
||||||
|
|
||||||
|
|
14
scummvm.cpp
14
scummvm.cpp
|
@ -53,6 +53,8 @@ void Scumm::scummInit()
|
||||||
int i;
|
int i;
|
||||||
Actor *a;
|
Actor *a;
|
||||||
|
|
||||||
|
tempMusic=0;
|
||||||
|
|
||||||
debug(9, "scummInit");
|
debug(9, "scummInit");
|
||||||
|
|
||||||
if (_features & GF_SMALL_HEADER)
|
if (_features & GF_SMALL_HEADER)
|
||||||
|
@ -252,7 +254,17 @@ int Scumm::scummLoop(int delta)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (_features & GF_OLD256)
|
} 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) {
|
||||||
if (_saveLoadFlag == 1) {
|
if (_saveLoadFlag == 1) {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue