aboutsummaryrefslogtreecommitdiff
path: root/engines/made/script.cpp
diff options
context:
space:
mode:
authorBenjamin Haisch2008-05-13 08:21:28 +0000
committerBenjamin Haisch2008-05-13 08:21:28 +0000
commit3db45cc0c85967059744a987cc86c01631984a69 (patch)
tree6cfa5b514a3da05ad67a31ac40a7963ade2f1138 /engines/made/script.cpp
parentf03a27747c73d2c493e81f975e6c2e913268b78c (diff)
downloadscummvm-rg350-3db45cc0c85967059744a987cc86c01631984a69.tar.gz
scummvm-rg350-3db45cc0c85967059744a987cc86c01631984a69.tar.bz2
scummvm-rg350-3db45cc0c85967059744a987cc86c01631984a69.zip
Implemented savegame saving/loading for LGOP2.
svn-id: r32081
Diffstat (limited to 'engines/made/script.cpp')
-rw-r--r--engines/made/script.cpp19
1 files changed, 13 insertions, 6 deletions
diff --git a/engines/made/script.cpp b/engines/made/script.cpp
index 6e896d94be..ad1411281c 100644
--- a/engines/made/script.cpp
+++ b/engines/made/script.cpp
@@ -476,12 +476,19 @@ void ScriptInterpreter::cmd_yorn() {
}
void ScriptInterpreter::cmd_save() {
- warning("Unimplemented command: cmd_save");
- _stack.setTop(0);
+ int16 result = 0;
+ int16 stringOfs = _stack.top();
+ const char *filename = _vm->_dat->getString(stringOfs);
+ result = _vm->_dat->savegame(filename, "", 0);
+ _stack.setTop(result);
}
void ScriptInterpreter::cmd_restore() {
- warning("Unimplemented command: cmd_restore");
+ int16 result = 0;
+ int16 stringOfs = _stack.top();
+ const char *filename = _vm->_dat->getString(stringOfs);
+ result = _vm->_dat->loadgame(filename, 0);
+ _stack.setTop(result);
}
void ScriptInterpreter::cmd_arg() {
@@ -594,12 +601,12 @@ void ScriptInterpreter::cmd_extend() {
int16 *argv = _stack.getStackPtr();
//debug(4, "func = %d (%s); argc = %d", func, extendFuncNames[func], argc);
- debug(4, "func = %d; argc = %d", func, argc);
+ debug(2, "func = %d; argc = %d", func, argc);
for (int i = 0; i < argc; i++)
- debug(4, "argv[%02d] = %04X (%d)", i, argv[i], argv[i]);
+ debug(2, "argv[%02d] = %04X (%d)", i, argv[i], argv[i]);
int16 result = _functions->callFunction(func, argc, argv);
- debug(4, "result = %04X (%d)", result, result);
+ debug(2, "result = %04X (%d)", result, result);
_stack.free(argc);