diff options
author | Sven Hesse | 2011-01-22 14:23:03 +0000 |
---|---|---|
committer | Sven Hesse | 2011-01-22 14:23:03 +0000 |
commit | 40a4b092461976fbb8b57199379e7f869499f19c (patch) | |
tree | 743375844ad30db7025890b2442e0c9205cd4802 /engines/gob/save/savehandler.cpp | |
parent | 185a0b90707b38da695ed141bb0802d62c61a121 (diff) | |
download | scummvm-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.cpp | 14 |
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 { |