pingus-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Pingus-CVS] CVS: Games/Pingus/src/worldobjsdata prefab_obj_data.cxx,1.


From: grumbel
Subject: [Pingus-CVS] CVS: Games/Pingus/src/worldobjsdata prefab_obj_data.cxx,1.10,1.11 prefab_obj_data.hxx,1.7,1.8
Date: 5 Mar 2003 19:55:16 -0000

Update of /usr/local/cvsroot/Games/Pingus/src/worldobjsdata
In directory dark:/tmp/cvs-serv18052/worldobjsdata

Modified Files:
        prefab_obj_data.cxx prefab_obj_data.hxx 
Log Message:
fixed prefab support a bit, still broken, but at least loading works kind of


Index: prefab_obj_data.cxx
===================================================================
RCS file: 
/usr/local/cvsroot/Games/Pingus/src/worldobjsdata/prefab_obj_data.cxx,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- prefab_obj_data.cxx 5 Mar 2003 19:13:59 -0000       1.10
+++ prefab_obj_data.cxx 5 Mar 2003 19:55:14 -0000       1.11
@@ -21,31 +21,49 @@
 #include "../xml_file_reader.hxx"
 #include "../xml_helper.hxx"
 #include "../prefab.hxx"
+#include "../pingus_error.hxx"
 #include "prefab_obj_data.hxx"
 
 namespace WorldObjsData {
 
 PrefabObjData::PrefabObjData (xmlDocPtr doc, xmlNodePtr cur)
 {
+  std::cout << "PrefabObjData::PrefabObjData (xmlDocPtr doc, xmlNodePtr cur)" 
<< std::endl;
   XMLFileReader reader(doc, cur);
   reader.read_vector("position", pos);
   reader.read_string("type", type);
   
   // try to load the data for this prefab-uid
   data = Prefab::create (type);
+  if (data == 0)
+    {
+      PingusError::raise("PrefabObjData: Couldn't create prefab '" + type + 
"'");
+    }
 }
 
 void
-PrefabObjData::insert_WorldObjs ()
+PrefabObjData::write_xml (std::ostream& xml)
 {
-  // FIXME:
+  xml << "<prefab>\n"
+      << "  <type>" << type << "</type>\n";
+  XMLhelper::write_vector_xml(xml, pos);
+  xml << "</prefab>\n" << std::endl;
+}
+
+void
+PrefabObjData::insert_WorldObjs (World* world)
+{
+  std::cout << "PrefabObjData::insert_WorldObjs (World* world)" << std::endl;
+  data->get_data()->insert_WorldObjs(world);
 }
 
 void
 PrefabObjData::insert_EditorObjs (EditorNS::EditorObjMgr* obj_mgr)
 {
-  UNUSED_ARG(obj_mgr);
-  // FIXME:
+  std::cout << "PrefabObjData::insert_EditorObjs (EditorNS::EditorObjMgr* 
obj_mgr)" << std::endl;
+
+  // FIXME: Wrong
+  data->get_data()->insert_EditorObjs(obj_mgr);
 }
 
 } // namespace WorldObjsData

Index: prefab_obj_data.hxx
===================================================================
RCS file: 
/usr/local/cvsroot/Games/Pingus/src/worldobjsdata/prefab_obj_data.hxx,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -d -r1.7 -r1.8
--- prefab_obj_data.hxx 5 Mar 2003 19:13:59 -0000       1.7
+++ prefab_obj_data.hxx 5 Mar 2003 19:55:14 -0000       1.8
@@ -56,11 +56,12 @@
 
   /** The PrefabData is flattened to a WorldObjGroup, the World
       doesn't need to keep track of prefabs */
-  void insert_WorldObjs ();
+  void insert_WorldObjs (World*);
   
   /** Create a EditorObjs::PrefabObj from the prefab data */
   void insert_EditorObjs (EditorNS::EditorObjMgr*);
 
+  void write_xml (std::ostream& xml);
 private:
   PrefabObjData (const PrefabObjData&);
   PrefabObjData& operator= (const PrefabObjData&);





reply via email to

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