aboutsummaryrefslogtreecommitdiff
path: root/engines/gob/save/savehandler.cpp
diff options
context:
space:
mode:
authorSven Hesse2011-01-22 14:23:03 +0000
committerSven Hesse2011-01-22 14:23:03 +0000
commit40a4b092461976fbb8b57199379e7f869499f19c (patch)
tree743375844ad30db7025890b2442e0c9205cd4802 /engines/gob/save/savehandler.cpp
parent185a0b90707b38da695ed141bb0802d62c61a121 (diff)
downloadscummvm-rg350-40a4b092461976fbb8b57199379e7f869499f19c.tar.gz
scummvm-rg350-40a4b092461976fbb8b57199379e7f869499f19c.tar.bz2
scummvm-rg350-40a4b092461976fbb8b57199379e7f869499f19c.zip
GOB: Fix the save list width
The length of the slot 0 string determines the list's width svn-id: r55426
Diffstat (limited to 'engines/gob/save/savehandler.cpp')
-rw-r--r--engines/gob/save/savehandler.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/engines/gob/save/savehandler.cpp b/engines/gob/save/savehandler.cpp
index 848578abce..68f1f22b78 100644
--- a/engines/gob/save/savehandler.cpp
+++ b/engines/gob/save/savehandler.cpp
@@ -77,10 +77,13 @@ int32 SlotFileIndexed::tallyUpFiles(uint32 slotSize, uint32 indexSize) const {
}
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 @@ void SlotFileIndexed::buildIndex(byte *buffer, SavePartInfo &info,
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 {