aboutsummaryrefslogtreecommitdiff
path: root/scumm
diff options
context:
space:
mode:
authorTravis Howell2005-03-19 00:15:55 +0000
committerTravis Howell2005-03-19 00:15:55 +0000
commitf258c52bfc22b7ab12df57c946a6edaf24f57072 (patch)
tree1e55dae3c5bb58fd0cdd08d1c73684a9ecdd588c /scumm
parent89ce70d724b05f52fdc3234d9a36735aeffcf8a6 (diff)
downloadscummvm-rg350-f258c52bfc22b7ab12df57c946a6edaf24f57072.tar.gz
scummvm-rg350-f258c52bfc22b7ab12df57c946a6edaf24f57072.tar.bz2
scummvm-rg350-f258c52bfc22b7ab12df57c946a6edaf24f57072.zip
Fix original load/save screen freezing in Loom [ega]
Sets current drive, instead of drive type. svn-id: r17182
Diffstat (limited to 'scumm')
-rw-r--r--scumm/script_v5.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/scumm/script_v5.cpp b/scumm/script_v5.cpp
index a908028751..ee028b75ae 100644
--- a/scumm/script_v5.cpp
+++ b/scumm/script_v5.cpp
@@ -1138,17 +1138,23 @@ void ScummEngine_v5::o5_saveLoadGame() {
_opcode = 0x40;
else if (a == 2)
_opcode = 0x80;
- } else
+ } else {
_opcode = a & 0xE0;
+ }
switch (_opcode) {
case 0x00: // num slots available
result = 100;
break;
case 0x20: // drive
- // 0 = hard drive
- // 1 = disk drive
- result = 0;
+ if (_gameId == GID_INDY3) {
+ // 0 = hard drive
+ // 1 = disk drive
+ result = 0;
+ } else {
+ // set current drive
+ result = 1;
+ }
break;
case 0x40: // load
if (loadState(slot, _saveTemporaryState))
@@ -1173,7 +1179,10 @@ void ScummEngine_v5::o5_saveLoadGame() {
else
result = 7; // save file does not exist
break;
+ default:
+ error("o5_saveLoadGame: unknown subopcode %d", _opcode);
}
+
setResult(result);
}