[Scummvm-cvs-logs] SF.net SVN: scummvm:[33652] scummvm/branches/gsoc2008-rtl/gui
cpage88 at users.sourceforge.net
cpage88 at users.sourceforge.net
Wed Aug 6 03:48:47 CEST 2008
Revision: 33652
http://scummvm.svn.sourceforge.net/scummvm/?rev=33652&view=rev
Author: cpage88
Date: 2008-08-06 01:48:46 +0000 (Wed, 06 Aug 2008)
Log Message:
-----------
Added a check to make sure there is an active engine available when trying to load a game from the launcher
Modified Paths:
--------------
scummvm/branches/gsoc2008-rtl/gui/launcher.cpp
scummvm/branches/gsoc2008-rtl/gui/launcher.h
Modified: scummvm/branches/gsoc2008-rtl/gui/launcher.cpp
===================================================================
--- scummvm/branches/gsoc2008-rtl/gui/launcher.cpp 2008-08-05 23:58:45 UTC (rev 33651)
+++ scummvm/branches/gsoc2008-rtl/gui/launcher.cpp 2008-08-06 01:48:46 UTC (rev 33652)
@@ -919,33 +919,40 @@
}
void LauncherDialog::loadGame(int item) {
- int idx;
- _loadDialog->setList(generateSavegameList(item));
- idx = _loadDialog->runModal();
- if (idx >= 0) {
- ConfMan.setInt("save_slot", idx);
- ConfMan.setActiveDomain(_domains[item]);
- close();
- }
+ String gameId = ConfMan.get("gameid", _domains[item]);
+ if (gameId.empty())
+ gameId = _domains[item];
+
+ const EnginePlugin *plugin = 0;
+ GameDescriptor game = EngineMan.findGame(gameId, &plugin);
+
+ if (plugin) {
+ _loadDialog->setList(generateSavegameList(item, plugin));
+ int idx = _loadDialog->runModal();
+ if (idx >= 0) {
+ ConfMan.setInt("save_slot", idx);
+ ConfMan.setActiveDomain(_domains[item]);
+ close();
+ }
+ } else {
+ MessageDialog dialog("ScummVM could not find any engine capable of running the selected game!", "OK");
+ dialog.runModal();
+ }
}
-Common::StringList LauncherDialog::generateSavegameList(int item) {
+Common::StringList LauncherDialog::generateSavegameList(int item, const EnginePlugin *plugin) {
String gameId = ConfMan.get("gameid", _domains[item]);
if (gameId.empty())
gameId = _domains[item];
-
+
String description = _domains[item];
description.toLowercase();
- const EnginePlugin *plugin = 0;
- GameDescriptor game = EngineMan.findGame(gameId, &plugin);
-
+ StringList saveNames;
SaveStateList saveList = (*plugin)->listSaves(description.c_str());
- StringList saveNames;
- for (SaveStateList::const_iterator x = saveList.begin(); x != saveList.end(); ++x) {
+ for (SaveStateList::const_iterator x = saveList.begin(); x != saveList.end(); ++x)
saveNames.push_back(x->description().c_str());
- }
return saveNames;
}
Modified: scummvm/branches/gsoc2008-rtl/gui/launcher.h
===================================================================
--- scummvm/branches/gsoc2008-rtl/gui/launcher.h 2008-08-05 23:58:45 UTC (rev 33651)
+++ scummvm/branches/gsoc2008-rtl/gui/launcher.h 2008-08-06 01:48:46 UTC (rev 33652)
@@ -75,7 +75,7 @@
void editGame(int item);
void loadGame(int item);
- StringList generateSavegameList(int item);
+ StringList generateSavegameList(int item, const EnginePlugin *plugin);
void selectGame(const String &name);
};
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list