summaryrefslogtreecommitdiff
path: root/src/game/GameController.cpp
diff options
context:
space:
mode:
authorSimon Robertshaw <simon@hardwired.org.uk>2012-01-25 17:21:55 (GMT)
committer Simon Robertshaw <simon@hardwired.org.uk>2012-01-25 17:21:55 (GMT)
commit8b80942b16fd6292884fb3208bc52c29a25cfff8 (patch)
treefebd0a9004932d602f5de0be3ebf358a8611e1f2 /src/game/GameController.cpp
parent3505bcc275dc2e276386e51b1dc13325d4eefa07 (diff)
downloadpowder-8b80942b16fd6292884fb3208bc52c29a25cfff8.zip
powder-8b80942b16fd6292884fb3208bc52c29a25cfff8.tar.gz
Login working, segfaults sometimes
Diffstat (limited to 'src/game/GameController.cpp')
-rw-r--r--src/game/GameController.cpp18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/game/GameController.cpp b/src/game/GameController.cpp
index b00c802..d7c9633 100644
--- a/src/game/GameController.cpp
+++ b/src/game/GameController.cpp
@@ -11,9 +11,23 @@
using namespace std;
+class GameController::LoginCallback: public ControllerCallback
+{
+ GameController * cc;
+public:
+ LoginCallback(GameController * cc_) { cc = cc_; }
+ virtual void ControllerExit()
+ {
+ cc->gameModel->SetUser(cc->loginWindow->GetUser());
+ delete cc->loginWindow;
+ cc->loginWindow = NULL;
+ }
+};
+
GameController::GameController():
search(NULL),
- renderOptions(NULL)
+ renderOptions(NULL),
+ loginWindow(NULL)
{
gameView = new GameView();
gameModel = new GameModel();
@@ -135,7 +149,7 @@ void GameController::OpenSearch()
void GameController::OpenLogin()
{
- loginWindow = new LoginController();
+ loginWindow = new LoginController(new LoginCallback(this));
ui::Engine::Ref().ShowWindow(loginWindow->GetView());
}