[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