[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