[Scummvm-cvs-logs] SF.net SVN: scummvm:[46883] scummvm/trunk/engines/sci
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sat Jan 2 15:08:26 CET 2010
Revision: 46883
http://scummvm.svn.sourceforge.net/scummvm/?rev=46883&view=rev
Author: m_kiewitz
Date: 2010-01-02 14:08:26 +0000 (Sat, 02 Jan 2010)
Log Message:
-----------
SCI: implemented new console command "listsaves"
Modified Paths:
--------------
scummvm/trunk/engines/sci/console.cpp
scummvm/trunk/engines/sci/console.h
scummvm/trunk/engines/sci/engine/kfile.cpp
Modified: scummvm/trunk/engines/sci/console.cpp
===================================================================
--- scummvm/trunk/engines/sci/console.cpp 2010-01-02 13:57:36 UTC (rev 46882)
+++ scummvm/trunk/engines/sci/console.cpp 2010-01-02 14:08:26 UTC (rev 46883)
@@ -109,6 +109,7 @@
DCmd_Register("version", WRAP_METHOD(Console, cmdGetVersion));
DCmd_Register("room", WRAP_METHOD(Console, cmdRoomNumber));
DCmd_Register("exit", WRAP_METHOD(Console, cmdExit));
+ DCmd_Register("listsaves", WRAP_METHOD(Console, cmdListSaves));
// Screen
DCmd_Register("sci0_palette", WRAP_METHOD(Console, cmdSci0Palette));
DCmd_Register("clear_screen", WRAP_METHOD(Console, cmdClearScreen));
Modified: scummvm/trunk/engines/sci/console.h
===================================================================
--- scummvm/trunk/engines/sci/console.h 2010-01-02 13:57:36 UTC (rev 46882)
+++ scummvm/trunk/engines/sci/console.h 2010-01-02 14:08:26 UTC (rev 46883)
@@ -79,6 +79,7 @@
bool cmdGetVersion(int argc, const char **argv);
bool cmdRoomNumber(int argc, const char **argv);
bool cmdExit(int argc, const char **argv);
+ bool cmdListSaves(int argc, const char **argv);
// Screen
bool cmdSci0Palette(int argc, const char **argv);
bool cmdClearScreen(int argc, const char **argv);
Modified: scummvm/trunk/engines/sci/engine/kfile.cpp
===================================================================
--- scummvm/trunk/engines/sci/engine/kfile.cpp 2010-01-02 13:57:36 UTC (rev 46882)
+++ scummvm/trunk/engines/sci/engine/kfile.cpp 2010-01-02 14:08:26 UTC (rev 46883)
@@ -32,6 +32,7 @@
#include "sci/engine/state.h"
#include "sci/engine/kernel.h"
#include "sci/engine/savegame.h"
+#include "sci/console.h"
namespace Sci {
@@ -278,6 +279,35 @@
qsort(saves.begin(), saves.size(), sizeof(SavegameDesc), _savegame_index_struct_compare);
}
+bool Console::cmdListSaves(int argc, const char **argv) {
+ Common::Array<SavegameDesc> saves;
+ listSavegames(saves);
+
+ Common::SaveFileManager *saveFileMan = g_engine->getSaveFileManager();
+
+ for (uint i = 0; i < saves.size(); i++) {
+ Common::String filename = ((Sci::SciEngine*)g_engine)->getSavegameName(saves[i].id);
+ Common::SeekableReadStream *in;
+ if ((in = saveFileMan->openForLoading(filename))) {
+ SavegameMetadata meta;
+ if (!get_savegame_metadata(in, &meta)) {
+ // invalid
+ delete in;
+ continue;
+ }
+
+ if (!meta.savegame_name.empty()) {
+ if (meta.savegame_name.lastChar() == '\n')
+ meta.savegame_name.deleteLastChar();
+
+ DebugPrintf("%s: '%s'\n", filename.c_str(), meta.savegame_name.c_str());
+ }
+ delete in;
+ }
+ }
+ return true;
+}
+
reg_t kFGets(EngineState *s, int argc, reg_t *argv) {
int maxsize = argv[1].toUint16();
char *buf = new char[maxsize];
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