aboutsummaryrefslogtreecommitdiff
path: root/common/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'common/main.cpp')
-rw-r--r--common/main.cpp30
1 files changed, 25 insertions, 5 deletions
diff --git a/common/main.cpp b/common/main.cpp
index f4c319accc..a8a3449928 100644
--- a/common/main.cpp
+++ b/common/main.cpp
@@ -22,13 +22,15 @@
#include "stdafx.h"
#include "engine.h"
-#include "sound/mididrv.h"
#include "gameDetector.h"
#include "config-file.h"
+#include "gui/newgui.h"
+#include "gui/message.h"
GameDetector detector;
-Config *scummcfg = 0;
+Config *g_config = 0;
+NewGui *g_gui = 0;
#if defined(QTOPIA)
@@ -122,8 +124,8 @@ int main(int argc, char *argv[])
#endif
// Read the config file
- scummcfg = new Config(scummhome, "scummvm");
- scummcfg->set("versioninfo", SCUMMVM_VERSION);
+ g_config = new Config(scummhome, "scummvm");
+ g_config->set("versioninfo", SCUMMVM_VERSION);
// Parse the command line information
result = detector.detectMain(argc, argv);
@@ -145,6 +147,23 @@ int main(int argc, char *argv[])
prop.caption = (char *)detector.getGameName();
system->property(OSystem::PROP_SET_WINDOW_CAPTION, &prop);
+ // Create the GUI manager
+ // TODO - move this up for the launcher dialog?
+ g_gui = new NewGui(system);
+
+#if 0
+ // FIXME - we need to be able to do an init_size() call on the system object here
+ // so that we can display stuff. But right now, init_size() can't safely be called
+ // multiple times (at least not for the SDL backend). So either we have to modify
+ // all the backends to allow for this, or come up with some other solution.
+ const char *message = "This dialog is shown before the Engine is even created!\n"
+ "Wow! Ain't e cool?\n";
+ Dialog *dlg = new MessageDialog(g_gui, message);
+ dlg->open();
+ g_gui->runLoop();
+ delete dlg;
+#endif
+
// Create the game engine
Engine *engine = Engine::createFromDetector(&detector, system);
@@ -153,7 +172,8 @@ int main(int argc, char *argv[])
// Free up memory
delete engine;
- delete scummcfg;
+ delete g_gui;
+ delete g_config;
// ...and quit (the return 0 should never be reached)
system->quit();