[Scummvm-cvs-logs] CVS: residual engine.cpp,1.39,1.40
Pawel Kolodziejski
aquadran at users.sourceforge.net
Mon Nov 1 09:42:36 CET 2004
Update of /cvsroot/scummvm/residual
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8552
Modified Files:
engine.cpp
Log Message:
added savegameCallback func
Index: engine.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/engine.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -d -r1.39 -r1.40
--- engine.cpp 1 Nov 2004 17:03:55 -0000 1.39
+++ engine.cpp 1 Nov 2004 17:34:48 -0000 1.40
@@ -254,6 +254,41 @@
}
void Engine::savegameCallback(void *func) {
+ lua_Object funcParam1;
+ lua_Object funcParam2;
+ bool unk1 = false;
+ bool unk2 = false;
+ //_savegameUnkFunc = func;
+
+ lua_beginblock();
+ lua_pushobject(lua_getglobal("system"));
+ lua_pushstring("saveGameCallback");
+ funcParam2 = lua_gettable();
+
+ if (lua_istable(funcParam2)) {
+ lua_pushobject(funcParam2);
+ lua_pushstring("saveGameCallback");
+ funcParam1 = lua_gettable();
+ if (lua_isfunction(funcParam1)) {
+ unk1 = true;
+ unk2 = true;
+ } else {
+ assert(false);
+ }
+ } else if (lua_isfunction(funcParam2)) {
+ funcParam1 = funcParam2;
+ unk1 = false;
+ unk2 = true;
+ } else if (!lua_isnil(funcParam2)) {
+ assert(false);
+ }
+ if (unk2) {
+ if (unk1) {
+ lua_pushobject(funcParam2);
+ }
+ lua_callfunction(funcParam1);
+ }
+ lua_endblock();
}
void Engine::savegameSave() {
More information about the Scummvm-git-logs
mailing list