pingus-cvs
[Top][All Lists]
Advanced

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

[Pingus-CVS] r3865 - trunk/pingus/src


From: grumbel at BerliOS
Subject: [Pingus-CVS] r3865 - trunk/pingus/src
Date: Fri, 18 Jul 2008 21:05:15 +0200

Author: grumbel
Date: 2008-07-18 21:05:14 +0200 (Fri, 18 Jul 2008)
New Revision: 3865

Modified:
   trunk/pingus/src/file_reader.cpp
   trunk/pingus/src/file_reader.hpp
   trunk/pingus/src/file_reader_impl.hpp
   trunk/pingus/src/sexpr_file_reader.cpp
Log:
Added read_rect

Modified: trunk/pingus/src/file_reader.cpp
===================================================================
--- trunk/pingus/src/file_reader.cpp    2008-07-18 12:01:05 UTC (rev 3864)
+++ trunk/pingus/src/file_reader.cpp    2008-07-18 19:05:14 UTC (rev 3865)
@@ -141,6 +141,15 @@
 }
 
 bool
+FileReader::read_rect(const char* name, Rect& value)    const
+{
+  if (impl.get())
+    return impl->read_rect(name, value);
+  else
+    return false; 
+}
+
+bool
 FileReader::read_section(const char* name, FileReader& reader) const
 {
   if (impl.get())

Modified: trunk/pingus/src/file_reader.hpp
===================================================================
--- trunk/pingus/src/file_reader.hpp    2008-07-18 12:01:05 UTC (rev 3864)
+++ trunk/pingus/src/file_reader.hpp    2008-07-18 19:05:14 UTC (rev 3865)
@@ -25,6 +25,7 @@
 class Color;
 class Vector3f;
 class Vector2i;
+class Rect;
 
 class ResDescriptor;
 class FileReaderImpl;
@@ -49,6 +50,7 @@
   bool read_path  (const char* name, Pathname&)      const;
   bool read_vector(const char* name, Vector3f&)      const;
   bool read_vector2i(const char* name, Vector2i&)    const;
+  bool read_rect(const char* name, Rect&)    const;
   bool read_size  (const char* name, Size&)          const;
   bool read_color (const char* name, Color&)         const;
   bool read_desc  (const char* name, ResDescriptor&) const;

Modified: trunk/pingus/src/file_reader_impl.hpp
===================================================================
--- trunk/pingus/src/file_reader_impl.hpp       2008-07-18 12:01:05 UTC (rev 
3864)
+++ trunk/pingus/src/file_reader_impl.hpp       2008-07-18 19:05:14 UTC (rev 
3865)
@@ -27,8 +27,7 @@
 
 class FileReader;
 class ResDescriptor;
-
-/** */
+
 class FileReaderImpl
 {
 public:
@@ -43,14 +42,14 @@
   virtual bool read_vector(const char* name, Vector3f&)    const =0;
   virtual bool read_size  (const char* name, Size&)        const =0;
   virtual bool read_vector2i(const char* name, Vector2i&)  const =0;
+  virtual bool read_rect  (const char* name, Rect&)        const =0;
   virtual bool read_color (const char* name, Color&)       const =0;
   virtual bool read_desc  (const char* name, ResDescriptor&) const =0;
   virtual bool read_section(const char* name, FileReader&)   const =0;
   virtual std::vector<FileReader> get_sections() const =0;
   virtual std::vector<std::string> get_section_names() const =0;
 };
-
-
+
 #endif
 
 /* EOF */

Modified: trunk/pingus/src/sexpr_file_reader.cpp
===================================================================
--- trunk/pingus/src/sexpr_file_reader.cpp      2008-07-18 12:01:05 UTC (rev 
3864)
+++ trunk/pingus/src/sexpr_file_reader.cpp      2008-07-18 19:05:14 UTC (rev 
3865)
@@ -17,6 +17,7 @@
 #include <assert.h>
 #include "math/vector3f.hpp"
 #include "math/color.hpp"
+#include "math/rect.hpp"
 #include "math/size.hpp"
 #include "res_descriptor.hpp"
 #include "resource_modifier.hpp"
@@ -161,6 +162,20 @@
     return false;
   }
 
+  bool read_rect(const char* name, Rect& rect) const
+  {
+    boost::shared_ptr<lisp::Lisp> sub = get_subsection(name);
+    if (sub && sub->get_list_size() == 5)
+      {
+        rect.left   = sub->get_list_elem(1)->get_int();
+        rect.top    = sub->get_list_elem(2)->get_int();
+        rect.right  = sub->get_list_elem(3)->get_int();
+        rect.bottom = sub->get_list_elem(4)->get_int();
+        return true;
+      }    
+    return false;
+  }
+
   bool read_color (const char* name, Color& v) const
   {
     boost::shared_ptr<lisp::Lisp> sub = get_subsection(name);





reply via email to

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