diff options
Diffstat (limited to 'engines/sci/engine/kfile.cpp')
-rw-r--r-- | engines/sci/engine/kfile.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/engines/sci/engine/kfile.cpp b/engines/sci/engine/kfile.cpp index f6dec5da64..82522a6e77 100644 --- a/engines/sci/engine/kfile.cpp +++ b/engines/sci/engine/kfile.cpp @@ -253,6 +253,7 @@ reg_t kFGets(EngineState *s, int argc, reg_t *argv) { debugC(kDebugLevelFile, "kFGets(%d, %d)", handle, maxsize); int readBytes = fgets_wrapper(s, buf, maxsize, handle); s->_segMan->memcpy(argv[0], (const byte*)buf, maxsize); + delete[] buf; return readBytes ? argv[0] : NULL_REG; } @@ -1155,15 +1156,14 @@ reg_t kCD(EngineState *s, int argc, reg_t *argv) { reg_t kSave(EngineState *s, int argc, reg_t *argv) { switch (argv[0].toUint16()) { - case 0: // Called by kq7 when starting chapters + case 0: return kSaveGame(s, argc - 1,argv + 1); - case 2: // GetSaveDir - // Yay! Reusing the old kernel function! + case 1: + return kRestoreGame(s, argc - 1,argv + 1); + case 2: return kGetSaveDir(s, argc - 1, argv + 1); case 5: - // TODO - // 3 parameters: game ID, a string and an array - return s->r_acc; + return kGetSaveFiles(s, argc - 1, argv + 1); case 8: // TODO // This is a timer callback, with 1 parameter: the timer object |