Move some more globals to supertux/globals.hpp
authorgrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 19 Nov 2009 18:29:12 +0000 (18:29 +0000)
committergrumbel <grumbel@837edb03-e0f3-0310-88ca-d4d4e8b29345>
Thu, 19 Nov 2009 18:29:12 +0000 (18:29 +0000)
git-svn-id: http://supertux.lethargik.org/svn/supertux/trunk/supertux@6055 837edb03-e0f3-0310-88ca-d4d4e8b29345

12 files changed:
src/scripting/functions.cpp
src/sprite/sprite_manager.cpp
src/sprite/sprite_manager.hpp
src/supertux/globals.cpp
src/supertux/globals.hpp
src/supertux/main.cpp
src/supertux/menu/language_menu.cpp
src/supertux/player_status.hpp
src/supertux/screen_manager.cpp
src/supertux/tile_manager.cpp
src/supertux/tile_manager.hpp
src/util/gettext.hpp

index 245feac..fa2fad4 100644 (file)
@@ -36,8 +36,6 @@
 #include "scripting/squirrel_util.hpp"
 #include "scripting/time_scheduler.hpp"
 
-extern float g_game_speed;
-
 namespace Scripting {
 
 SQInteger display(HSQUIRRELVM vm)
@@ -89,7 +87,7 @@ void abort_screenfade()
 
 std::string translate(const std::string& text)
 {
-  return dictionary_manager.get_dictionary().translate(text);
+  return dictionary_manager->get_dictionary().translate(text);
 }
 
 void display_text_file(const std::string& filename)
index 0ef214a..eab6711 100644 (file)
@@ -21,8 +21,6 @@
 #include "util/file_system.hpp"
 #include "util/reader.hpp"
 
-SpriteManager* sprite_manager = NULL;
-
 SpriteManager::SpriteManager() :
   sprites()
 {
index d6f5a88..520da88 100644 (file)
@@ -41,8 +41,6 @@ private:
   SpriteData* load(const std::string& filename);
 };
 
-extern SpriteManager* sprite_manager;
-
 #endif
 
 /* EOF */
index a89efb1..4435959 100644 (file)
@@ -19,7 +19,7 @@
 
 SDL_Surface* g_screen;
 JoystickKeyboardController* g_main_controller = 0;
-tinygettext::DictionaryManager dictionary_manager;
+tinygettext::DictionaryManager* dictionary_manager = 0;
 
 int SCREEN_WIDTH;
 int SCREEN_HEIGHT;
@@ -35,4 +35,11 @@ Config* g_config = 0;
 float game_time = 0;
 float real_time = 0;
 
+TileManager* tile_manager    = NULL;
+TileSet*     current_tileset = NULL;
+
+SpriteManager* sprite_manager = NULL;
+
+float g_game_speed = 1.0f;
+
 /* EOF */
index 86a62b4..f6b9dfc 100644 (file)
 #ifndef HEADER_SUPERTUX_SUPERTUX_GLOBALS_HPP
 #define HEADER_SUPERTUX_SUPERTUX_GLOBALS_HPP
 
-#include <SDL.h>
-
+typedef struct SDL_Surface SDL_Surface;
+namespace tinygettext { class DictionaryManager; }
 class Config;
 class JoystickKeyboardController;
-class SoundManager;
+class PlayerStatus;
 class ScreenManager;
+class SoundManager;
+class SpriteManager;
 class TextureManager;
+class TileManager;
+class TileSet;
 
 /** The width of the display (this is a logical value, not the
     physical value, since aspect_ration and projection_area might
@@ -48,9 +52,23 @@ extern SoundManager* sound_manager;
 
 extern Config* g_config;
 
+extern tinygettext::DictionaryManager* dictionary_manager;
+
 extern float game_time;
 extern float real_time;
 
+extern TileManager *tile_manager;
+
+/** this is only set while loading a map */
+extern TileSet     *current_tileset;
+
+// global player state
+extern PlayerStatus* player_status;
+
+extern SpriteManager* sprite_manager;
+
+extern float g_game_speed;
+
 #endif
 
 /* EOF */
index d4c4f46..bef5b08 100644 (file)
@@ -66,15 +66,17 @@ Main::init_config()
 void
 Main::init_tinygettext()
 {
+  dictionary_manager = new tinygettext::DictionaryManager();
   tinygettext::Log::set_log_info_callback(0);
-  dictionary_manager.set_filesystem(std::auto_ptr<tinygettext::FileSystem>(new PhysFSFileSystem));
+  dictionary_manager->set_filesystem(std::auto_ptr<tinygettext::FileSystem>(new PhysFSFileSystem));
 
-  dictionary_manager.add_directory("locale");
-  dictionary_manager.set_charset("UTF-8");
+  dictionary_manager->add_directory("locale");
+  dictionary_manager->set_charset("UTF-8");
 
   // Config setting "locale" overrides language detection
-  if (g_config->locale != "") {
-    dictionary_manager.set_language(tinygettext::Language::from_name(g_config->locale));
+  if (g_config->locale != "") 
+  {
+    dictionary_manager->set_language(tinygettext::Language::from_name(g_config->locale));
   }
 }
 
index 5b1fef3..136a284 100644 (file)
@@ -39,7 +39,7 @@ LanguageMenu::LanguageMenu()
   add_entry(MNID_LANGUAGE_ENGLISH, "English");
 
   int mnid = MNID_LANGUAGE_NEXT;
-  std::set<tinygettext::Language> languages = dictionary_manager.get_languages();
+  std::set<tinygettext::Language> languages = dictionary_manager->get_languages();
   for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++) 
   {
     add_entry(mnid++, i->get_name());
@@ -59,7 +59,7 @@ LanguageMenu::menu_action(MenuItem* item)
     tinygettext::Language language = tinygettext::Language::from_spec(locale->lang, locale->country, locale->variant);
     FL_FreeLocale(&locale);
 
-    dictionary_manager.set_language(language);
+    dictionary_manager->set_language(language);
     g_config->locale = language.str();
     g_config->save();
     MenuManager::pop_current();
@@ -67,21 +67,21 @@ LanguageMenu::menu_action(MenuItem* item)
   else if (item->id == MNID_LANGUAGE_ENGLISH) // english
   {
     g_config->locale = "en";
-    dictionary_manager.set_language(tinygettext::Language::from_name(g_config->locale));
+    dictionary_manager->set_language(tinygettext::Language::from_name(g_config->locale));
     g_config->save();
     MenuManager::pop_current();
   }
   else
   {
     int mnid = MNID_LANGUAGE_NEXT;
-    std::set<tinygettext::Language> languages = dictionary_manager.get_languages();
+    std::set<tinygettext::Language> languages = dictionary_manager->get_languages();
 
     for (std::set<tinygettext::Language>::iterator i = languages.begin(); i != languages.end(); i++) 
     {
       if (item->id == mnid++) 
       {
         g_config->locale = i->str();
-        dictionary_manager.set_language(*i);
+        dictionary_manager->set_language(*i);
         g_config->save();
         MenuManager::pop_current();
         break;
index 454ac17..3f46b53 100644 (file)
@@ -66,9 +66,6 @@ private:
   PlayerStatus& operator=(const PlayerStatus&);
 };
 
-// global player state
-extern PlayerStatus* player_status;
-
 #endif
 
 /* EOF */
index d43ce30..011d9bc 100644 (file)
@@ -40,8 +40,6 @@ static const Uint32 TICKS_PER_FRAME = (Uint32) (1000.0 / LOGICAL_FPS);
 /** don't skip more than every 2nd frame */
 static const int MAX_FRAME_SKIP = 2;
 
-float g_game_speed = 1.0f;
-
 ScreenManager::ScreenManager() :
   waiting_threads(),
   running(),
index 9266932..ac31395 100644 (file)
@@ -23,9 +23,6 @@
 #include "lisp/list_iterator.hpp"
 #include "supertux/tile_set.hpp"
 
-TileManager* tile_manager    = NULL;
-TileSet*     current_tileset = NULL;
-
 TileManager::TileManager() :
   tilesets()
 {
index c93a039..8d081ee 100644 (file)
@@ -39,10 +39,6 @@ public:
   TileSet* parse_tileset_definition(const Reader& reader);
 };
 
-extern TileManager *tile_manager;
-/** this is only set while loading a map */
-extern TileSet     *current_tileset;
-
 #endif
 
 /* EOF */
index 876ce03..4a84f24 100644 (file)
 #ifndef HEADER_SUPERTUX_UTIL_GETTEXT_HPP
 #define HEADER_SUPERTUX_UTIL_GETTEXT_HPP
 
-#include "tinygettext/tinygettext.hpp"
+#include <tinygettext/tinygettext.hpp>
+#include <assert.h>
 
-extern tinygettext::DictionaryManager dictionary_manager;
+#include "supertux/globals.hpp"
 
 static inline const char* _(const char* message)
 {
-  return dictionary_manager.get_dictionary().translate(message);
+  if (dictionary_manager)
+  {
+    return dictionary_manager->get_dictionary().translate(message);
+  }
+  else
+  {
+    return message;
+  }
 }
 
 static inline std::string _(const std::string& message)
 {
-  return dictionary_manager.get_dictionary().translate(message);
+  if (dictionary_manager)
+  {
+    return dictionary_manager->get_dictionary().translate(message);
+  }
+  else
+  {
+    return message;
+  }
 }
 
 #endif /* _LIBGETTEXT_H */