[Scummvm-cvs-logs] CVS: residual lua.cpp,1.109,1.110

Pawel Kolodziejski aquadran at users.sourceforge.net
Sun Mar 20 03:51:31 CET 2005


Update of /cvsroot/scummvm/residual
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23996

Modified Files:
	lua.cpp 
Log Message:
split into subfunc getTextObjectParams

Index: lua.cpp
===================================================================
RCS file: /cvsroot/scummvm/residual/lua.cpp,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -d -r1.109 -r1.110
--- lua.cpp	19 Mar 2005 21:48:23 -0000	1.109
+++ lua.cpp	20 Mar 2005 11:50:56 -0000	1.110
@@ -1160,13 +1160,10 @@
 	}
 }
 
-static void MakeTextObject() {
-	char *line = lua_getstring(lua_getparam(1)), *key_text = NULL;
-	lua_Object table_obj = lua_getparam(2), key;
-	int x = 0, y = 0, height = 0, width = 0;
-	Color *fgColor = NULL;
-	Font *font = NULL;
-	TextObject *textObject;
+void getTextObjectParams(lua_Object table_obj, Font **font, int &x, int &y, int &width,
+						 int &height, Color **fgColor, bool &center, bool &ljustify) {
+	char *key_text = NULL;
+	lua_Object key;
 
 	for (;;) {
 		lua_pushobject(table_obj);
@@ -1176,36 +1173,47 @@
 			lua_pushnil();
 
 		lua_call("next");
-		key=lua_getresult(1);
+		key = lua_getresult(1);
 		if (lua_isnil(key)) 
 			break;
 
-		key_text=lua_getstring(key);
-		//val_text=lua_getstring(lua_getresult(2));
+		key_text = lua_getstring(key);
 		if (strstr(key_text, "x"))
 			x = atoi(lua_getstring(lua_getresult(2)));
 		else if (strstr(key_text, "y"))
 			y = atoi(lua_getstring(lua_getresult(2)));
-		else if (strstr(key_text, "fgcolor"))
-			fgColor = check_color(2);
-		else if (strstr(key_text, "height"))
-			height = atoi(lua_getstring(lua_getresult(2)));
 		else if (strstr(key_text, "width"))
 			width = atoi(lua_getstring(lua_getresult(2)));
+		else if (strstr(key_text, "height"))
+			height = atoi(lua_getstring(lua_getresult(2)));
+		else if (strstr(key_text, "font"))
+			*font = check_font(2);
+		else if (strstr(key_text, "fgcolor"))
+			*fgColor = check_color(2);
 		else if (strstr(key_text, "center"))
-			warning("MakeTextObject key center not implemented");
+			center = !lua_isnil(lua_getresult(2));
 		else if (strstr(key_text, "ljustify"))
-			warning("MakeTextObject key ljustify not implemented");
-		else if (strstr(key_text, "font"))
-			font = check_font(2);
+			ljustify = !lua_isnil(lua_getresult(2));
 		else
-			error("Unknown MakeTextObject key %s\n", key_text);
+			error("Unknown getTextObjectParams key %s\n", key_text);
 	}
+}
+
+static void MakeTextObject() {
+	int x = 0, y = 0, height = 0, width = 0, duration = 0;
+	bool center = false, ljustify = false, rjustify = false;
+	Color *fgColor = NULL, *bgColor = NULL, *fxColor = NULL;
+	Font *font = NULL;
+
+	char *line = lua_getstring(lua_getparam(1));
+	lua_Object table_obj = lua_getparam(2);
+	if (lua_istable(table_obj))
+		getTextObjectParams(table_obj, &font, x, y, width, height, &fgColor, center, ljustify);
 
 	// Note: The debug func display_setup_name in _sets.LUA creates an empty TextObject,
 	// and fills it with ChangeTextObject
 
-	textObject = new TextObject((const char *)line, x, y, font, *fgColor);
+	TextObject *textObject = new TextObject((const char *)line, x, y, font, *fgColor);
 	lua_pushusertag(textObject, MKID('TEXT'));
 }
 





More information about the Scummvm-git-logs mailing list