mirror of
https://github.com/libretro/scummvm.git
synced 2025-01-19 00:15:30 +00:00
Fix regressions in MI1 Amiga
Revert last change to MI1 demo fix and make it monkeyega target only. svn-id: r9732
This commit is contained in:
parent
0914e57d21
commit
53d1db8cae
@ -1462,6 +1462,13 @@ void Scumm_v5::o5_putActorInRoom() {
|
||||
|
||||
a = derefActor(act, "o5_putActorInRoom");
|
||||
|
||||
if (_gameId & GID_MONKEY_EGA) {
|
||||
if (room == 0 && a->room != _currentRoom && a->room != room && _currentRoom != room) {
|
||||
warning ("o5_putActorInRoom (%d [%d], %d) ignored", act, a->room, room);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (a->visible && _currentRoom != room && VAR(VAR_TALK_ACTOR) == a->number) {
|
||||
clearMsgQueue();
|
||||
}
|
||||
@ -1524,22 +1531,15 @@ void Scumm_v5::o5_resourceRoutines() {
|
||||
ensureResourceLoaded(rtRoom, resid);
|
||||
break;
|
||||
|
||||
case 8: // nuke room
|
||||
if (resid == _currentRoom) {
|
||||
warning ("Nuking current room %d - exit script called early", resid);
|
||||
runExitScript();
|
||||
_currentRoom = 0;
|
||||
}
|
||||
// Fall through
|
||||
case 5: // nuke script
|
||||
case 6: // nuke sound
|
||||
case 7: // nuke costume
|
||||
case 8: // nuke room
|
||||
if (_gameId == GID_ZAK256)
|
||||
warning("o5_resourceRoutines %d should not occur in Zak256", op);
|
||||
else
|
||||
setResourceCounter(resType[op-5], resid, 0x7F);
|
||||
break;
|
||||
|
||||
case 9: // lock script
|
||||
if (resid >= _numGlobalScripts)
|
||||
break;
|
||||
|
@ -624,7 +624,7 @@ Scumm::Scumm (GameDetector *detector, OSystem *syst)
|
||||
_playerV2 = NULL;
|
||||
if (_features & GF_DIGI_IMUSE) {
|
||||
_imuseDigital = new IMuseDigital(this);
|
||||
} else if ((_features & GF_AMIGA) && (_features & GF_OLD_BUNDLE)) {
|
||||
} else if ((_features & GF_AMIGA) && (_version < 5)) {
|
||||
_playerV2 = NULL;
|
||||
} else if (((_midiDriver == MD_PCJR) || (_midiDriver == MD_PCSPK)) && ((_version > 2) && (_version < 5))) {
|
||||
_playerV2 = new Player_V2(this);
|
||||
@ -1057,7 +1057,7 @@ void Scumm::initScummVars() {
|
||||
case MD_PCSPK:
|
||||
case MD_PCJR: VAR(VAR_SOUNDCARD) = 1; break;
|
||||
default:
|
||||
if (_features & GF_SMALL_HEADER)
|
||||
if (_features & GF_SMALL_HEADER && !(_features & GF_AMIGA))
|
||||
VAR(VAR_SOUNDCARD) = 4;
|
||||
else
|
||||
VAR(VAR_SOUNDCARD) = 3;
|
||||
@ -1761,8 +1761,7 @@ void Scumm::startScene(int room, Actor *a, int objectNr) {
|
||||
if (!(_features & GF_SMALL_HEADER) && VAR_NEW_ROOM != 0xFF) // Disable for SH games. Overwrites
|
||||
VAR(VAR_NEW_ROOM) = room; // gamevars, eg Zak cashcards
|
||||
|
||||
if (_currentRoom)
|
||||
runExitScript();
|
||||
runExitScript();
|
||||
killScriptsAndResources();
|
||||
clearEnqueue();
|
||||
stopCycle(0);
|
||||
|
Loading…
x
Reference in New Issue
Block a user