offscreen.patch by Klaus Denker: correct some calculations
[supertux.git] / src / level.hpp
index 1f988c8..1ab7448 100644 (file)
@@ -23,8 +23,8 @@
 
 #include <vector>
 #include <string>
-
-class Sector;
+#include "statistics.hpp"
+#include "sector.hpp"
 
 namespace lisp {
 class Lisp;
@@ -35,8 +35,10 @@ class Level
 public:
   std::string name;
   std::string author;
+  std::string on_menukey_script;
   typedef std::vector<Sector*> Sectors;
   Sectors sectors;
+  Statistics stats;
 
 public:
   Level();
@@ -59,8 +61,18 @@ public:
   size_t get_sector_count();
   Sector* get_sector(size_t num);
 
-  int get_total_badguys();
   int get_total_coins();
+  int get_total_badguys();
+
+  /** Get total number of GameObjects of given type */
+  template<class T> int get_total_count()
+  {
+    int total = 0;
+    for(Sectors::iterator i = sectors.begin(); i != sectors.end(); ++i) {
+      total += (*i)->get_total_count<T>();
+    }
+    return total;
+  }
 
 private:
   void load_old_format(const lisp::Lisp& reader);