aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/dc/DCLauncherDialog.h31
-rw-r--r--backends/dc/dcmain.cpp22
-rw-r--r--base/main.cpp12
3 files changed, 55 insertions, 10 deletions
diff --git a/backends/dc/DCLauncherDialog.h b/backends/dc/DCLauncherDialog.h
new file mode 100644
index 0000000000..e1a54ab506
--- /dev/null
+++ b/backends/dc/DCLauncherDialog.h
@@ -0,0 +1,31 @@
+/* ScummVM - Scumm Interpreter
+ * Dreamcast port
+ * Copyright (C) 2002-2004 Marcus Comstedt
+ *
+ * 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 2
+ * 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, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * $Header$
+ *
+ */
+
+class DCLauncherDialog {
+ private:
+ GameDetector &_detector;
+
+ public:
+ DCLauncherDialog(GameDetector &d) : _detector(d) {}
+ int runModal();
+};
+
diff --git a/backends/dc/dcmain.cpp b/backends/dc/dcmain.cpp
index 3d35133a38..73d71a29f9 100644
--- a/backends/dc/dcmain.cpp
+++ b/backends/dc/dcmain.cpp
@@ -30,6 +30,7 @@
#include <base/plugins.h>
#include "dc.h"
#include "icon.h"
+#include "DCLauncherDialog.h"
Icon icon;
@@ -202,20 +203,27 @@ void dc_init_hardware()
extern "C" int scummvm_main(int argc, char *argv[]);
int main()
{
- static char *argv[] = { "scummvm", NULL, NULL, NULL };
- static int argc = 3;
+ static char *argv[] = { "scummvm", NULL, };
+ static int argc = 1;
dc_init_hardware();
initSound();
- PluginManager::instance().loadPlugins();
+ scummvm_main(argc, argv);
+
+ exit(0);
+}
+
+int DCLauncherDialog::runModal()
+{
+ static char *argv[] = { "scummvm", NULL, NULL, NULL };
+ static int argc = 3;
if(!selectGame(argv[2], argv[1], icon))
exit(0);
- PluginManager::instance().unloadPlugins();
+ _detector.parseCommandLine(argc, argv);
- scummvm_main(argc, argv);
-
- exit(0);
+ return 0;
}
+
diff --git a/base/main.cpp b/base/main.cpp
index 10c914991e..749d62a5fa 100644
--- a/base/main.cpp
+++ b/base/main.cpp
@@ -45,6 +45,10 @@
#include "backends/wince/CELauncherDialog.h"
#endif
+#ifdef __DC__
+#include "backends/dc/DCLauncherDialog.h"
+#endif
+
/*
* Version string and build date string. These can be used by anything that
* wants to display this information to the user (e.g. about dialog).
@@ -214,10 +218,12 @@ static int launcherDialog(GameDetector &detector, OSystem *system) {
system->setPalette(dummy_palette, 0, 16);
-#ifndef _WIN32_WCE
- GUI::LauncherDialog dlg(detector);
-#else
+#if defined(_WIN32_WCE)
CELauncherDialog dlg(detector);
+#elif defined(__DC__)
+ DCLauncherDialog dlg(detector);
+#else
+ GUI::LauncherDialog dlg(detector);
#endif
return dlg.runModal();
}