aboutsummaryrefslogtreecommitdiff
path: root/engines/sci
diff options
context:
space:
mode:
authorFilippos Karapetis2011-10-12 03:25:27 +0300
committerFilippos Karapetis2011-10-12 03:25:27 +0300
commit9fcd3ece536e5539b36ba49916c449a45b5e733e (patch)
tree46db2f1b85bc3d63670c2c2caab704f9892195dc /engines/sci
parent084b2deccc7eeb64f2936dbb6cd0fb47319e5db2 (diff)
downloadscummvm-rg350-9fcd3ece536e5539b36ba49916c449a45b5e733e.tar.gz
scummvm-rg350-9fcd3ece536e5539b36ba49916c449a45b5e733e.tar.bz2
scummvm-rg350-9fcd3ece536e5539b36ba49916c449a45b5e733e.zip
SCI: kSave(3) is kCheckSaveGame() and kSave(6) is kFileIOUnlink()
Diffstat (limited to 'engines/sci')
-rw-r--r--engines/sci/engine/kfile.cpp14
1 files changed, 11 insertions, 3 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp
index 06af6e0de0..9e9441847d 100644
--- a/engines/sci/engine/kfile.cpp
+++ b/engines/sci/engine/kfile.cpp
@@ -1167,8 +1167,17 @@ reg_t kSave(EngineState *s, int argc, reg_t *argv) {
return kRestoreGame(s, argc - 1,argv + 1);
case 2:
return kGetSaveDir(s, argc - 1, argv + 1);
+ case 3:
+ return kCheckSaveGame(s, argc - 1, argv + 1);
case 5:
return kGetSaveFiles(s, argc - 1, argv + 1);
+ case 6:
+ // This is used in Shivers to delete saved games, however it
+ // always passes the same file name (SHIVER), so it doesn't
+ // actually delete anything...
+ // TODO: Check why this happens
+ // argv[1] is a string (most likely the save game directory)
+ return kFileIOUnlink(s, argc - 2, argv + 2);
case 8:
// TODO
// This is a timer callback, with 1 parameter: the timer object
@@ -1179,10 +1188,9 @@ reg_t kSave(EngineState *s, int argc, reg_t *argv) {
// This function has to return something other than 0 to proceed
return s->r_acc;
default:
- warning("Unknown/unhandled kSave subop %d", argv[0].toUint16());
+ kStub(s, argc, argv);
+ return NULL_REG;
}
-
- return NULL_REG;
}
#endif