[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Pingus-CVS] CVS: Games/Pingus/src xml_file_reader.cxx,1.2,1.3 xml_file_
From: |
grumbel |
Subject: |
[Pingus-CVS] CVS: Games/Pingus/src xml_file_reader.cxx,1.2,1.3 xml_file_reader.hxx,1.2,1.3 |
Date: |
18 Feb 2003 10:14:54 -0000 |
Update of /usr/local/cvsroot/Games/Pingus/src
In directory dark:/tmp/cvs-serv8677/src
Modified Files:
xml_file_reader.cxx xml_file_reader.hxx
Log Message:
more XMLFileReader usage, probally more bugs and typos
Index: xml_file_reader.cxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/xml_file_reader.cxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xml_file_reader.cxx 18 Feb 2003 01:23:51 -0000 1.2
+++ xml_file_reader.cxx 18 Feb 2003 10:14:52 -0000 1.3
@@ -19,6 +19,8 @@
#include "res_descriptor.hxx"
#include "color.hxx"
+#include "debug.hxx"
+#include "globals.hxx"
#include "xml_file_reader.hxx"
XMLFileReader::XMLFileReader(xmlDocPtr doc_, xmlNodePtr node)
@@ -26,9 +28,32 @@
{
}
+XMLFileReader::XMLFileReader()
+ : doc(NULL), section_node(NULL)
+{
+}
+
+void
+XMLFileReader::init(xmlDocPtr doc_, xmlNodePtr node)
+{
+ doc = doc_;
+ section_node = node;
+}
+
xmlNodePtr
XMLFileReader::find_node(const char* name)
{
+ if (doc == NULL)
+ {
+ perr(PINGUS_DEBUG_LOADING) << "XMLFileReader points to nothing, probally
not inited" << std::endl;
+ return NULL;
+ }
+ else if (section_node == NULL)
+ {
+ // Whole section is empty
+ return NULL;
+ }
+
xmlNodePtr node = section_node->children;
while (node)
@@ -144,6 +169,18 @@
return true;
}
+ return false;
+}
+
+bool
+XMLFileReader::read_section(const char* name, XMLFileReader& value)
+{
+ xmlNodePtr node = find_node(name);
+ if (node)
+ {
+ value.init(doc, node);
+ return true;
+ }
return false;
}
Index: xml_file_reader.hxx
===================================================================
RCS file: /usr/local/cvsroot/Games/Pingus/src/xml_file_reader.hxx,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- xml_file_reader.hxx 18 Feb 2003 01:23:51 -0000 1.2
+++ xml_file_reader.hxx 18 Feb 2003 10:14:52 -0000 1.3
@@ -40,7 +40,12 @@
@param node is a pointer to the node of the section to read, but
not a pointer to the first element of the section! */
XMLFileReader(xmlDocPtr doc, xmlNodePtr node);
-
+
+ XMLFileReader();
+
+ /** Reinit a reader with a new section to parse */
+ void init(xmlDocPtr d, xmlNodePtr node);
+
bool read_int (const char* name, int&);
bool read_desc (const char* name, ResDescriptor&);
bool read_color (const char* name, Color&);
@@ -48,6 +53,8 @@
bool read_bool (const char* name, bool&);
bool read_string(const char* name, std::string&);
bool read_vector(const char* name, Vector&);
+
+ bool read_section(const char* name, XMLFileReader&);
private:
XMLFileReader (const XMLFileReader&);
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Pingus-CVS] CVS: Games/Pingus/src xml_file_reader.cxx,1.2,1.3 xml_file_reader.hxx,1.2,1.3,
grumbel <=
- Prev by Date:
[Pingus-CVS] CVS: Games/Pingus/data/levels/wip space3.xml,1.1,1.2 space4-grumbel.xml,1.1,1.2
- Next by Date:
[Pingus-CVS] CVS: Games/Pingus/src/worldobjsdata fake_exit_data.cxx,1.7,1.8 groundpiece_data.cxx,1.9,1.10 ice_block_data.cxx,1.6,1.7 info_box_data.cxx,1.8,1.9 prefab_obj_data.cxx,1.5,1.6 switch_door_data.cxx,1.7,1.8 teleporter_data.cxx,1.7,1.8
- Previous by thread:
[Pingus-CVS] CVS: Games/Pingus/data/levels/wip space3.xml,1.1,1.2 space4-grumbel.xml,1.1,1.2
- Next by thread:
[Pingus-CVS] CVS: Games/Pingus/src/worldobjsdata fake_exit_data.cxx,1.7,1.8 groundpiece_data.cxx,1.9,1.10 ice_block_data.cxx,1.6,1.7 info_box_data.cxx,1.8,1.9 prefab_obj_data.cxx,1.5,1.6 switch_door_data.cxx,1.7,1.8 teleporter_data.cxx,1.7,1.8
- Index(es):