aboutsummaryrefslogtreecommitdiff
path: root/base
diff options
context:
space:
mode:
Diffstat (limited to 'base')
-rw-r--r--base/commandLine.cpp27
1 files changed, 16 insertions, 11 deletions
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 8846f4bcc6..7dbf4e0fe1 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -631,17 +631,22 @@ static void listSaves(const char *target) {
return;
}
- // Query the plugin for a list of savegames
- SaveStateList saveList = (*plugin)->listSaves(target);
-
- // TODO: Include more info about the target (desc, engine name, ...) ???
- printf("Saves for target '%s':\n", target);
- printf(" Slot Description \n"
- " ---- ------------------------------------------------------\n");
-
- for (SaveStateList::const_iterator x = saveList.begin(); x != saveList.end(); ++x) {
- printf(" %-4s %s\n", x->save_slot().c_str(), x->description().c_str());
- // TODO: Could also iterate over the full hashmap, printing all key-value pairs
+ if (!(*plugin)->hasFeature(MetaEngine::kSupportsListSaves)) {
+ // TODO: Include more info about the target (desc, engine name, ...) ???
+ printf("Target '%s' does not support listing of its save states.\n", target);
+ } else {
+ // Query the plugin for a list of savegames
+ SaveStateList saveList = (*plugin)->listSaves(target);
+
+ // TODO: Include more info about the target (desc, engine name, ...) ???
+ printf("Saves for target '%s':\n", target);
+ printf(" Slot Description \n"
+ " ---- ------------------------------------------------------\n");
+
+ for (SaveStateList::const_iterator x = saveList.begin(); x != saveList.end(); ++x) {
+ printf(" %-4s %s\n", x->save_slot().c_str(), x->description().c_str());
+ // TODO: Could also iterate over the full hashmap, printing all key-value pairs
+ }
}
// Revert to the old active domain