pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] r2651 - branches/pingus_sdl/src


From: grumbel at BerliOS
Subject: [Pingus-CVS] r2651 - branches/pingus_sdl/src
Date: Sun, 14 Jan 2007 21:34:25 +0100

Author: grumbel
Date: 2007-01-14 21:34:25 +0100 (Sun, 14 Jan 2007)
New Revision: 2651

Modified:
   branches/pingus_sdl/src/resource.cxx
   branches/pingus_sdl/src/resource_manager.cpp
   branches/pingus_sdl/src/resource_manager.hpp
Log:
- some more resource work

Modified: branches/pingus_sdl/src/resource.cxx
===================================================================
--- branches/pingus_sdl/src/resource.cxx        2007-01-14 20:07:41 UTC (rev 
2650)
+++ branches/pingus_sdl/src/resource.cxx        2007-01-14 20:34:25 UTC (rev 
2651)
@@ -43,7 +43,7 @@
   resmgr.add_resources(path_manager.complete("data/core.res"));
   resmgr.add_resources(path_manager.complete("data/entrances.res"));
   resmgr.add_resources(path_manager.complete("data/exits.res"));
-  resmgr.add_resources(path_manager.complete("data/fonts.res"));
+  ////  resmgr.add_resources(path_manager.complete("data/fonts.res"));
   resmgr.add_resources(path_manager.complete("data/game.res"));
   resmgr.add_resources(path_manager.complete("data/groundpieces-bridge.res"));
   resmgr.add_resources(path_manager.complete("data/groundpieces-ground.res"));

Modified: branches/pingus_sdl/src/resource_manager.cpp
===================================================================
--- branches/pingus_sdl/src/resource_manager.cpp        2007-01-14 20:07:41 UTC 
(rev 2650)
+++ branches/pingus_sdl/src/resource_manager.cpp        2007-01-14 20:34:25 UTC 
(rev 2651)
@@ -52,6 +52,7 @@
           for(std::vector<FileReader>::iterator i = sections.begin(); i != 
sections.end(); ++i)
             {
               std::cout << "Section: " << i->get_name() << std::endl;
+              parse("", *i);
             }
         }
       else
@@ -67,4 +68,47 @@
     }
 }
 
+void
+ResourceManager::parse(const std::string& section, FileReader& reader)
+{
+  if (reader.get_name() == "section")
+    {
+      parse_section(section, reader);
+    }
+  else if (reader.get_name() == "sprite")
+    {
+      std::string name;
+      reader.read_string("name", name);
+      std::cout << "sprite: " << section << "/" << name << std::endl;
+    }
+  else if (reader.get_name() == "alias")
+    {
+      
+    }
+  else if (reader.get_name() == "name")
+    {
+      // ignore (ugly)
+    }
+  else
+    {
+      std::cout << "ResourceManager: unknown token: '" << reader.get_name() << 
"'" << std::endl;
+    }
+}
+
+void
+ResourceManager::parse_section(const std::string& section, FileReader& reader)
+{
+  std::string name;
+  reader.read_string("name", name);
+
+  std::vector<FileReader> sections = reader.get_sections();
+  for(std::vector<FileReader>::iterator i = sections.begin(); i != 
sections.end(); ++i)
+    {    
+      if (section.empty())
+        parse(name, *i);
+      else
+        parse(section + "/" + name, *i);
+    }
+}
+
 /* EOF */

Modified: branches/pingus_sdl/src/resource_manager.hpp
===================================================================
--- branches/pingus_sdl/src/resource_manager.hpp        2007-01-14 20:07:41 UTC 
(rev 2650)
+++ branches/pingus_sdl/src/resource_manager.hpp        2007-01-14 20:34:25 UTC 
(rev 2651)
@@ -28,6 +28,8 @@
 
 #include <string>
 
+class FileReader;
+
 /** */
 class ResourceManager
 {
@@ -39,8 +41,10 @@
   ~ResourceManager();
 
   void add_resources(const std::string& filename);
+private:
+  void parse(const std::string& section, FileReader&);
+  void parse_section(const std::string& section, FileReader&);
 
-private:
   ResourceManager (const ResourceManager&);
   ResourceManager& operator= (const ResourceManager&);
 };





reply via email to

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