Added StringUtil class, some small cleanup in World
authorgrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 19 Nov 2009 23:15:48 +0000 (23:15 +0000)
committergrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 19 Nov 2009 23:15:48 +0000 (23:15 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6060 837edb03-e0f3-0310-88ca-d4d4e8b29345

src/supertux/menu/contrib_menu.cpp
src/supertux/menu/contrib_world_menu.cpp
src/supertux/world.cpp
src/supertux/world.hpp
src/util/string_util.cpp [new file with mode: 0644]
src/util/string_util.hpp [new file with mode: 0644]

index ada2e11..8652ed0 100644 (file)
@@ -49,7 +49,7 @@ ContribMenu::ContribMenu()
       world->load(*it + "/info");
       if (!world->hide_from_contribs) 
       {
-        add_entry(i++, world->title);
+        add_entry(i++, world->get_title());
         m_contrib_worlds.push_back(world.release());
       }
     }
index f7205f0..bed2e9f 100644 (file)
@@ -27,7 +27,7 @@
 ContribWorldMenu::ContribWorldMenu(const World& current_world) :
   m_current_world(current_world)
 {
-  add_label(m_current_world.title);
+  add_label(m_current_world.get_title());
   add_hl();
 
   for (unsigned int i = 0; i < m_current_world.get_num_levels(); ++i)
index 02ac4a9..3b75fdf 100644 (file)
 #include "supertux/world.hpp"
 #include "util/file_system.hpp"
 #include "util/reader.hpp"
+#include "util/string_util.hpp"
 #include "worldmap/worldmap.hpp"
 
-static bool has_suffix(const std::string& data, const std::string& suffix)
-{
-  if (data.length() >= suffix.length())
-    return data.compare(data.length() - suffix.length(), suffix.length(), suffix) == 0;
-  else
-    return false;
-}
-
 World* World::current_ = NULL;
 
 World::World() :
@@ -116,7 +109,7 @@ World::load(const std::string& filename)
   }
 
   for(const char* const* filename = files; *filename != 0; ++filename) {
-    if(has_suffix(*filename, ".stl")) {
+    if(StringUtil::has_suffix(*filename, ".stl")) {
       levels.push_back(path + *filename);
     }
   }
@@ -254,4 +247,10 @@ World::get_basedir() const
   return basedir;
 }
 
+const std::string&
+World::get_title() const
+{
+  return title;
+}
+
 /* EOF */
index 9ea04c4..8ab6262 100644 (file)
 class World
 {
 public:
+  static World* current()
+  {
+    return current_;
+  }
+
+private:
+  static World* current_;
+
+public:
   World();
   ~World();
 
@@ -33,15 +42,11 @@ public:
   void save_state();
   void load_state();
 
-  const std::string& get_level_filename(unsigned int i) const;
   unsigned int get_num_levels() const;
 
+  const std::string& get_level_filename(unsigned int i) const;
   const std::string& get_basedir() const;
-
-  static World* current()
-  {
-    return current_;
-  }
+  const std::string& get_title() const;
 
   void run();
 
@@ -52,9 +57,6 @@ private:
   /// squirrel table that saves persistent state (about the world)
   HSQOBJECT state_table;
   HSQOBJECT world_thread;
-  static World* current_;
-
-public:
   std::string title;
   std::string description;
 
diff --git a/src/util/string_util.cpp b/src/util/string_util.cpp
new file mode 100644 (file)
index 0000000..b681930
--- /dev/null
@@ -0,0 +1,32 @@
+//  SuperTux
+//  Copyright (C) 2009 Ingo Ruhnke <grumbel@gmx.de>
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#include "string_util.hpp"
+
+bool
+StringUtil::has_suffix(const std::string& data, const std::string& suffix)
+{
+  if (data.length() >= suffix.length())
+  {
+    return data.compare(data.length() - suffix.length(), suffix.length(), suffix) == 0;
+  }
+  else
+  {
+    return false;
+  }
+}
+
+/* EOF */
diff --git a/src/util/string_util.hpp b/src/util/string_util.hpp
new file mode 100644 (file)
index 0000000..d5f9ae1
--- /dev/null
@@ -0,0 +1,30 @@
+//  SuperTux
+//  Copyright (C) 2009 Ingo Ruhnke <grumbel@gmx.de>
+//
+//  This program is free software: you can redistribute it and/or modify
+//  it under the terms of the GNU General Public License as published by
+//  the Free Software Foundation, either version 3 of the License, or
+//  (at your option) any later version.
+//
+//  This program is distributed in the hope that it will be useful,
+//  but WITHOUT ANY WARRANTY; without even the implied warranty of
+//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+//  GNU General Public License for more details.
+//
+//  You should have received a copy of the GNU General Public License
+//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+#ifndef HEADER_SUPERTUX_UTIL_STRING_UTIL_HPP
+#define HEADER_SUPERTUX_UTIL_STRING_UTIL_HPP
+
+#include <string>
+
+class StringUtil
+{
+public:
+  static bool has_suffix(const std::string& data, const std::string& suffix);
+};
+
+#endif
+
+/* EOF */