[Scummvm-cvs-logs] SF.net SVN: scummvm:[55426] scummvm/trunk/engines/gob/save
drmccoy at users.sourceforge.net
drmccoy at users.sourceforge.net
Sat Jan 22 15:23:04 CET 2011
Revision: 55426
http://scummvm.svn.sourceforge.net/scummvm/?rev=55426&view=rev
Author: drmccoy
Date: 2011-01-22 14:23:03 +0000 (Sat, 22 Jan 2011)
Log Message:
-----------
GOB: Fix the save list width
The length of the slot 0 string determines the list's width
Modified Paths:
--------------
scummvm/trunk/engines/gob/save/savehandler.cpp
scummvm/trunk/engines/gob/save/savehandler.h
scummvm/trunk/engines/gob/save/saveload_v6.cpp
Modified: scummvm/trunk/engines/gob/save/savehandler.cpp
===================================================================
--- scummvm/trunk/engines/gob/save/savehandler.cpp 2011-01-22 13:19:16 UTC (rev 55425)
+++ scummvm/trunk/engines/gob/save/savehandler.cpp 2011-01-22 14:23:03 UTC (rev 55426)
@@ -77,10 +77,13 @@
}
void SlotFileIndexed::buildIndex(byte *buffer, SavePartInfo &info,
- SaveConverter *converter) const {
+ SaveConverter *converter, bool setLongest) const {
uint32 descLength = info.getDescMaxLength();
+ uint32 longest = 0;
+ byte *bufferStart = buffer;
+
// Iterate over all files
for (uint32 i = 0; i < _slotCount; i++, buffer += descLength) {
Common::String slotFile = build(i);
@@ -100,10 +103,19 @@
delete[] desc;
+ longest = MAX<uint32>(longest, strlen((const char *) buffer));
+
} else
// No valid slot, fill with 0
memset(buffer, 0, descLength);
}
+
+ if (setLongest) {
+ uint32 slot0Len;
+ for (slot0Len = strlen((const char *) bufferStart); slot0Len < longest; slot0Len++)
+ buffer[slot0Len] = ' ';
+ buffer[slot0Len] = '\0';
+ }
}
bool SlotFileIndexed::exists(int slot) const {
Modified: scummvm/trunk/engines/gob/save/savehandler.h
===================================================================
--- scummvm/trunk/engines/gob/save/savehandler.h 2011-01-22 13:19:16 UTC (rev 55425)
+++ scummvm/trunk/engines/gob/save/savehandler.h 2011-01-22 14:23:03 UTC (rev 55426)
@@ -78,7 +78,7 @@
/** Creates an index in buffer. */
virtual void buildIndex(byte *buffer, SavePartInfo &info,
- SaveConverter *converter = 0) const;
+ SaveConverter *converter = 0, bool setLongest = false) const;
virtual bool exists(int slot) const;
virtual Common::InSaveFile *openRead(int slot) const;
Modified: scummvm/trunk/engines/gob/save/saveload_v6.cpp
===================================================================
--- scummvm/trunk/engines/gob/save/saveload_v6.cpp 2011-01-22 13:19:16 UTC (rev 55425)
+++ scummvm/trunk/engines/gob/save/saveload_v6.cpp 2011-01-22 14:23:03 UTC (rev 55426)
@@ -547,7 +547,7 @@
SavePartInfo info(kSlotNameLength, (uint32) _vm->getGameType(),
0, _vm->getEndianness(), varSize);
- _slotFile->buildIndex(buffer, info);
+ _slotFile->buildIndex(buffer, info, 0, true);
}
void SaveLoad_v6::GameHandler::refreshProps() {
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