pingus-cvs
[Top][All Lists]
Advanced

[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;
        }
     }





reply via email to

[Prev in Thread] Current Thread [Next in Thread]