fix - 'holes' in save slot filenames

svn-id: r18312
This commit is contained in:
Andrew Kurushin 2005-06-02 16:18:44 +00:00
parent 0e26360fe3
commit ae36a54c92

View File

@ -88,19 +88,27 @@ bool SagaEngine::locateSaveFile(char *saveName, uint &titleNumber) {
}
uint SagaEngine::getNewSaveSlotNumber() {
uint i;
uint saveCount;
uint i, j;
bool found;
if (isSaveListFull()) {
error("getNewSaveSlotNumber save list is full");
}
i = 0;
saveCount = 0;
while (saveCount < _saveFilesCount) {
if (_saveMarks[i++]) {
saveCount++;
for (i = 0; i < MAX_SAVES; i++) {
if (_saveMarks[i]) {
found = false;
for (j = 0; j < _saveFilesCount; j++) {
if (_saveFiles[j].slotNumber == i) {
found = true;
break;
}
}
if (!found) {
return i;
}
}
}
return i;
error("getNewSaveSlotNumber save list is full");
}
void SagaEngine::fillSaveList() {
@ -128,18 +136,17 @@ void SagaEngine::fillSaveList() {
while (i < MAX_SAVES) {
if (_saveMarks[i]) {
name = calcSaveFileName(i);
if (!(in = _saveFileMan->openForLoading(name))) {
break;
}
in->read(&header, sizeof(header));
if (in = _saveFileMan->openForLoading(name)) {
in->read(&header, sizeof(header));
if (header.type != MKID('SAGA')) {
error("SagaEngine::load wrong format");
if (header.type != MKID('SAGA')) {
error("SagaEngine::load wrong format");
}
strcpy(_saveFiles[_saveFilesCount].name, header.name);
_saveFiles[_saveFilesCount].slotNumber = i;
delete in;
_saveFilesCount++;
}
strcpy(_saveFiles[_saveFilesCount].name, header.name);
_saveFiles[_saveFilesCount].slotNumber = i;
delete in;
_saveFilesCount++;
}
i++;
}