[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] CVS: Games/Pingus/src plt_xml.cxx,1.9,1.10 screen_manager.c
From: |
torangan |
Subject: |
[Pingus-CVS] CVS: Games/Pingus/src plt_xml.cxx,1.9,1.10 screen_manager.cxx,1.17,1.18 xml_helper.cxx,1.19,1.20 xml_helper.hxx,1.13,1.14 xml_plf.cxx,1.27,1.28 |
Date: |
30 Sep 2002 14:20:51 -0000 |
Update of /usr/local/cvsroot/Games/Pingus/src
In directory dark:/tmp/cvs-serv4130
Modified Files:
plt_xml.cxx screen_manager.cxx xml_helper.cxx xml_helper.hxx
xml_plf.cxx
Log Message:
moved xmlNodeListGetString into XMLhelper
Index: plt_xml.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/plt_xml.cxx,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- plt_xml.cxx 28 Sep 2002 19:31:06 -0000 1.9
+++ plt_xml.cxx 30 Sep 2002 14:20:48 -0000 1.10
@@ -97,34 +97,30 @@
void
PLTXML::parse_description(xmlNodePtr cur)
{
- char* desc = (char*)xmlNodeListGetString(doc, cur->children, 1);
+ std::string desc;
std::string lang;
- if (desc) {
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, desc)) {
if (XMLhelper::get_prop(cur, "lang", lang))
description[lang] = desc;
else
description[default_language] = desc;
}
-
- if (desc) xmlFree(desc);
}
void
PLTXML::parse_world_name (xmlNodePtr cur)
{
- char* name = (char*)xmlNodeListGetString(doc, cur->children, 1);
+ std::string name;
std::string lang;
- if (name)
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, name))
{
if (XMLhelper::get_prop(cur, "lang", lang))
world_name[lang] = name;
else
world_name[default_language] = name;
}
-
- if (name) xmlFree(name);
}
void
@@ -136,11 +132,10 @@
{
if (XMLhelper::equal_str(cur->name, "level"))
{
- char* name = (char*)xmlNodeListGetString(doc, cur->children, 1);
- if (name)
+ std::string name;
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, name))
{
level_list.push_back(name);
- xmlFree(name);
}
}
else
Index: screen_manager.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/screen_manager.cxx,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- screen_manager.cxx 28 Sep 2002 22:24:24 -0000 1.17
+++ screen_manager.cxx 30 Sep 2002 14:20:49 -0000 1.18
@@ -204,6 +204,8 @@
ScreenManager::fade_over (Screen* old_screen, Screen* new_screen)
{
FadeOut::fade_to_black();
+ UNUSED_ARG(old_screen);
+ UNUSED_ARG(new_screen);
#if 0
DeltaManager delta_manager;
Index: xml_helper.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/xml_helper.cxx,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -d -r1.19 -r1.20
--- xml_helper.cxx 28 Sep 2002 19:31:06 -0000 1.19
+++ xml_helper.cxx 30 Sep 2002 14:20:49 -0000 1.20
@@ -96,6 +96,42 @@
return true;
}
+bool
+XMLhelper::node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
std::string& value)
+{
+ char * retval = reinterpret_cast<char*>(xmlNodeListGetString(doc, cur,
inLine));
+ if (!retval)
+ return false;
+
+ value = retval;
+ xmlFree(retval);
+ return true;
+}
+
+bool
+XMLhelper::node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
float& value)
+{
+ char * retval = reinterpret_cast<char*>(xmlNodeListGetString(doc, cur,
inLine));
+ if (!retval)
+ return false;
+
+ value = strtod(retval, reinterpret_cast<char**>(NULL));
+ xmlFree(retval);
+ return true;
+}
+
+bool
+XMLhelper::node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
int& value)
+{
+ char * retval = reinterpret_cast<char*>(xmlNodeListGetString(doc, cur,
inLine));
+ if (!retval)
+ return false;
+
+ value = strtol(retval, reinterpret_cast<char**>(NULL), 10);
+ xmlFree(retval);
+ return true;
+}
+
std::string
XMLhelper::encode_entities (const std::string& arg_str)
{
@@ -118,7 +154,7 @@
}
Vector
-XMLhelper::parse_vector(xmlDocPtr doc, xmlNodePtr cur)
+XMLhelper::parse_vector (xmlDocPtr doc, xmlNodePtr cur)
{
Vector pos;
cur = cur->children;
@@ -130,21 +166,19 @@
continue;
}
- char* ident = (char*)xmlNodeListGetString(doc, cur->children, 1);
-
- if (ident)
+ float ident;
+ if (node_list_get_string(doc, cur->children, 1, ident))
{
//std::cout << "parse_position: ident = " << ident << std::endl;
if (XMLhelper::equal_str(cur->name, "x-pos")) {
- pos.x = StringConverter::to_float(ident);
+ pos.x = ident;
} else if (XMLhelper::equal_str(cur->name, "y-pos")) {
- pos.y = StringConverter::to_float(ident);
+ pos.y = ident;
} else if (XMLhelper::equal_str(cur->name, "z-pos")) {
- pos.z = StringConverter::to_float(ident);
+ pos.z = ident;
} else {
std::cout << "Unhandled position ident: " << ident << std::endl;
}
- xmlFree(ident);
}
cur = cur->next;
}
@@ -152,39 +186,31 @@
}
int
-XMLhelper::parse_int(xmlDocPtr doc, xmlNodePtr cur)
+XMLhelper::parse_int (xmlDocPtr doc, xmlNodePtr cur)
{
cur = cur->children;
int number = 999;
- char* number_str = (char*)xmlNodeListGetString(doc, cur, 1);
- if (number_str) {
- number = StringConverter::to_int(number_str);
- xmlFree(number_str);
- } else {
+ if (!node_list_get_string(doc, cur, 1, number)) {
std::cout << "Error: XMLhelper: parse_int: Field empty" << std::endl;
}
return number;
}
float
-XMLhelper::parse_float(xmlDocPtr doc, xmlNodePtr cur)
+XMLhelper::parse_float (xmlDocPtr doc, xmlNodePtr cur)
{
cur = cur->children;
float number = 3.1415927f;
- char* number_str = (char*)xmlNodeListGetString(doc, cur, 1);
- if (number_str) {
- number = StringConverter::to_float(number_str);
- xmlFree(number_str);
- } else {
+ if (!node_list_get_string(doc, cur, 1, number)) {
std::cout << "XMLhelper: parse_int: Field empty" << std::endl;
}
return number;
}
Color
-XMLhelper::parse_color(xmlDocPtr doc, xmlNodePtr cur)
+XMLhelper::parse_color (xmlDocPtr doc, xmlNodePtr cur)
{
Color color;
cur = cur->children;
@@ -253,23 +279,19 @@
if (XMLhelper::equal_str(ccur->name, "resource-file"))
{
- char* filename = (char*)xmlNodeListGetString(doc,
ccur->children, 1);
- if (filename)
+ if (node_list_get_string(doc, ccur->children, 1,
desc.res_name))
{
- desc.res_name = filename;
desc.type = ResDescriptor::RD_FILE;
- xmlFree(filename);
}
}
else if (XMLhelper::equal_str(ccur->name, "modifier"))
{
- char* ident = (char*)xmlNodeListGetString(doc,
ccur->children, 1);
- if (ident)
+ std::string ident;
+ if (node_list_get_string(doc, ccur->children, 1, ident))
{
//std::cout << "Seen: modifier: " << ident <<
std::endl;
desc.modifier =
ResourceModifierNS::rs_from_string(ident);
- xmlFree(ident);
}
}
else
@@ -294,36 +316,22 @@
if (XMLhelper::equal_str(ccur->name, "resource-datafile"))
{
- char* datafile = (char*)xmlNodeListGetString(doc,
ccur->children, 1);
- if (datafile)
- {
- desc.datafile = datafile;
- xmlFree(datafile);
- }
- else
- {
- std::cout << "XMLhelper: parse_surface() Empty" <<
std::endl;
- }
+ if (!node_list_get_string(doc, ccur->children, 1,
desc.datafile))
+ std::cout << "XMLhelper: parse_surface() Empty" <<
std::endl;
}
else if (XMLhelper::equal_str(ccur->name, "resource-ident"))
{
- char* ident = (char*)xmlNodeListGetString(doc,
ccur->children, 1);
- if (ident)
- {
- desc.res_name = ident;
- xmlFree(ident);
- }
+ node_list_get_string(doc, ccur->children, 1,
desc.res_name);
}
else if (XMLhelper::equal_str(ccur->name, "modifier"))
{
//std::cout << "Modifier!!!!!" << std::endl;
- char* ident = (char*)xmlNodeListGetString(doc,
ccur->children, 1);
- if (ident)
+ std::string ident;
+ if (node_list_get_string(doc, ccur->children, 1, ident))
{
//std::cout << "Seen: modifier: " << ident <<
std::endl;
desc.modifier =
ResourceModifierNS::rs_from_string(ident);
- xmlFree(ident);
}
}
else
@@ -347,28 +355,21 @@
}
std::string
-XMLhelper::parse_string(xmlDocPtr doc, xmlNodePtr cur)
+XMLhelper::parse_string (xmlDocPtr doc, xmlNodePtr cur)
{
std::string ret_str;
- cur = cur->children;
- char* str = (char*)xmlNodeListGetString(doc, cur, 1);
- if (str)
- {
- ret_str = str;
- xmlFree(str);
- return ret_str;
- }
- else
+ if (!node_list_get_string(doc,cur->children, 1, ret_str))
{
std::cout << "XMLhelper::parse_string: Field empty" << std::endl;
- return "";
}
+
+ return ret_str;
}
void
-XMLhelper::write_desc_xml(std::ostream& xml, ResDescriptor desc)
+XMLhelper::write_desc_xml (std::ostream& xml, ResDescriptor desc)
{
xml << " <surface><resource type=\"";
switch (desc.type)
Index: xml_helper.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/xml_helper.hxx,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -d -r1.13 -r1.14
--- xml_helper.hxx 28 Sep 2002 19:31:06 -0000 1.13
+++ xml_helper.hxx 30 Sep 2002 14:20:49 -0000 1.14
@@ -95,6 +95,10 @@
@return indicates whether the property existed */
static bool get_prop (xmlNodePtr cur, const char* name, bool& value);
+ static bool node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
std::string& value);
+ static bool node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
float& value);
+ static bool node_list_get_string (xmlDocPtr doc, xmlNodePtr cur, int inLine,
int& value);
+
/// A set of function to parse an xml file
//@{
Index: xml_plf.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/xml_plf.cxx,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -d -r1.27 -r1.28
--- xml_plf.cxx 28 Sep 2002 19:31:06 -0000 1.27
+++ xml_plf.cxx 30 Sep 2002 14:20:49 -0000 1.28
@@ -295,14 +295,8 @@
if (!XMLhelper::get_prop(cur, "count", button.number_of))
{
//std::cout << "XMLPLF::parse_actions (): No 'count' given, fallback
to the old format" << std::endl;
- char* number = reinterpret_cast<char*>(xmlNodeListGetString(doc,
cur->children, 1));
- if (number) {
- //std::cout << "xmlNoder..Result: " << number << std::endl;
- button.number_of = StringConverter::to_int(number);
- } else {
+ if (!XMLhelper::node_list_get_string(doc, cur->children, 1,
button.number_of))
std::cout << "XMLPLF:parse_actions: no action number given" <<
std::endl;
- }
- xmlFree(number);
}
actions.push_back(button);
@@ -325,41 +319,31 @@
if (XMLhelper::equal_str(cur->name, "levelname"))
{
- char* name = reinterpret_cast<char*>(xmlNodeListGetString(doc,
cur->children, 1));
+ std::string name;
std::string lang;
- if (name) {
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, name)) {
if (XMLhelper::get_prop(cur, "lang", lang))
levelname[lang] = name;
else
levelname[default_language] = name;
}
-
- if (name)
- xmlFree(name);
}
else if (XMLhelper::equal_str(cur->name, "description"))
{
- char* desc = reinterpret_cast<char*>(xmlNodeListGetString(doc,
cur->children, 1));
+ std::string desc;
std::string lang;
- if (desc) {
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, desc)) {
if (XMLhelper::get_prop(cur, "lang", lang))
description[lang] = desc;
else
description[default_language] = desc;
}
-
- if (desc)
- xmlFree(desc);
}
else if (XMLhelper::equal_str(cur->name, "author"))
{
- char* tmp_author = reinterpret_cast<char*>(xmlNodeListGetString(doc,
cur->children, 1));
- if (tmp_author) {
- author = tmp_author;
- xmlFree(tmp_author);
- }
+ XMLhelper::node_list_get_string(doc, cur->children, 1, author);
//std::cout << "Author: " << author << " -----------------------" <<
std::endl;
}
else if (XMLhelper::equal_str(cur->name, "number-of-pingus"))
@@ -416,11 +400,10 @@
if (XMLhelper::equal_str(cur_->name, "type"))
{
- char* name = reinterpret_cast<char*>(xmlNodeListGetString(doc,
cur_->children, 1));
- if (name)
+ std::string name;
+ if (XMLhelper::node_list_get_string(doc, cur->children, 1, name))
{
- worldobjs_data.push_back(WorldObjDataFactory::instance()->create
(name, doc, XMLhelper::skip_blank(cur)));
- xmlFree(name);
+
worldobjs_data.push_back(WorldObjDataFactory::instance()->create(name, doc,
XMLhelper::skip_blank(cur)));
return;
}
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] CVS: Games/Pingus/src plt_xml.cxx,1.9,1.10 screen_manager.cxx,1.17,1.18 xml_helper.cxx,1.19,1.20 xml_helper.hxx,1.13,1.14 xml_plf.cxx,1.27,1.28,
torangan <=