summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTametomo <irarice@gmail.com>2009-05-07 01:39:44 -0600
committerThorbjørn Lindeijer <thorbjorn@lindeijer.nl>2010-02-14 20:54:02 +0100
commit48ad9754e83a26d598b71e495d255915e873424f (patch)
tree7154552fb93d0eb6f24c0577e1d9c8a6ce2469ce
parent8bc425ff48b7a874ca0fb9d2285044c75f3010ab (diff)
downloadmana-48ad9754e83a26d598b71e495d255915e873424f.tar.gz
mana-48ad9754e83a26d598b71e495d255915e873424f.tar.bz2
mana-48ad9754e83a26d598b71e495d255915e873424f.tar.xz
mana-48ad9754e83a26d598b71e495d255915e873424f.zip
Don't create the viewport until it's really needed.
Signed-off-by: Tametomo <irarice@gmail.com>
-rw-r--r--src/game.cpp10
-rw-r--r--src/gui/gui.cpp8
-rw-r--r--src/gui/gui.h1
3 files changed, 10 insertions, 9 deletions
diff --git a/src/game.cpp b/src/game.cpp
index 62e7c515..08dacaa1 100644
--- a/src/game.cpp
+++ b/src/game.cpp
@@ -129,6 +129,7 @@ ChannelManager *channelManager = NULL;
CommandHandler *commandHandler = NULL;
Particle *particleEngine = NULL;
EffectManager *effectManager = NULL;
+Viewport *viewport = NULL; /**< Viewport on the map. */
ChatTab *localChatTab = NULL;
@@ -274,6 +275,14 @@ Game::Game():
disconnectedDialog = NULL;
+ // Create the viewport
+ viewport = new Viewport();
+ viewport->setDimension(gcn::Rectangle(0, 0, graphics->getWidth(),
+ graphics->getHeight()));
+
+ gcn::Container *top = static_cast<gcn::Container*>(gui->getTop());
+ top->add(viewport);
+
createGuiWindows();
mWindowMenu = new WindowMenu;
@@ -334,6 +343,7 @@ Game::~Game()
delete commandHandler;
delete joystick;
delete particleEngine;
+ delete viewport;
viewport->setMap(NULL);
diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp
index 9a260b57..f99d6a21 100644
--- a/src/gui/gui.cpp
+++ b/src/gui/gui.cpp
@@ -46,7 +46,6 @@
// Guichan stuff
Gui *gui = 0;
-Viewport *viewport = 0; /**< Viewport on the map. */
SDLInput *guiInput = 0;
// Bolded font
@@ -138,12 +137,6 @@ Gui::Gui(Graphics *graphics):
setUseCustomCursor(config.getValue("customcursor", 1) == 1);
mConfigListener = new GuiConfigListener(this);
config.addListener("customcursor", mConfigListener);
-
- // Create the viewport
- viewport = new Viewport;
- viewport->setDimension(gcn::Rectangle(0, 0,
- graphics->getWidth(), graphics->getHeight()));
- guiTop->add(viewport);
}
Gui::~Gui()
@@ -157,7 +150,6 @@ Gui::~Gui()
delete mGuiFont;
delete boldFont;
delete mInfoParticleFont;
- delete viewport;
delete getTop();
delete guiInput;
diff --git a/src/gui/gui.h b/src/gui/gui.h
index 31ac76f0..de29eb20 100644
--- a/src/gui/gui.h
+++ b/src/gui/gui.h
@@ -30,7 +30,6 @@ class Graphics;
class GuiConfigListener;
class ImageSet;
class SDLInput;
-class Viewport;
/**
* \defgroup GUI Core GUI related classes (widgets)