diff --git a/Core/Dialog/SavedataParam.cpp b/Core/Dialog/SavedataParam.cpp index 4d408bbe7a..d559ce9160 100644 --- a/Core/Dialog/SavedataParam.cpp +++ b/Core/Dialog/SavedataParam.cpp @@ -1294,17 +1294,19 @@ int SavedataParam::GetFirstListSave() int SavedataParam::GetLastListSave() { - return saveDataListCount - 1; + return saveNameListDataCount - 1; } int SavedataParam::GetLatestSave() { int idx = 0; time_t idxTime = 0; - for (int i = 0; i < saveDataListCount; ++i) + for (int i = 0; i < saveNameListDataCount; ++i) { + if (saveDataList[i].size == 0) + continue; time_t thisTime = mktime(&saveDataList[i].modif_time); - if (idxTime < thisTime) + if ((s64)idxTime < (s64)thisTime) { idx = i; idxTime = thisTime; @@ -1317,10 +1319,12 @@ int SavedataParam::GetOldestSave() { int idx = 0; time_t idxTime = 0; - for (int i = 0; i < saveDataListCount; ++i) + for (int i = 0; i < saveNameListDataCount; ++i) { + if (saveDataList[i].size == 0) + continue; time_t thisTime = mktime(&saveDataList[i].modif_time); - if (idxTime > thisTime) + if ((s64)idxTime > (s64)thisTime) { idx = i; idxTime = thisTime; @@ -1332,7 +1336,7 @@ int SavedataParam::GetOldestSave() int SavedataParam::GetFirstDataSave() { int idx = 0; - for (int i = 0; i < saveDataListCount; ++i) + for (int i = 0; i < saveNameListDataCount; ++i) { if (saveDataList[i].size != 0) { @@ -1346,7 +1350,7 @@ int SavedataParam::GetFirstDataSave() int SavedataParam::GetLastDataSave() { int idx = 0; - for (int i = saveDataListCount; i > 0; ) + for (int i = saveNameListDataCount; i > 0; ) { --i; if (saveDataList[i].size != 0) @@ -1361,7 +1365,7 @@ int SavedataParam::GetLastDataSave() int SavedataParam::GetFirstEmptySave() { int idx = 0; - for (int i = 0; i < saveDataListCount; ++i) + for (int i = 0; i < saveNameListDataCount; ++i) { if (saveDataList[i].size == 0) { @@ -1375,7 +1379,7 @@ int SavedataParam::GetFirstEmptySave() int SavedataParam::GetLastEmptySave() { int idx = 0; - for (int i = saveDataListCount; i > 0; ) + for (int i = saveNameListDataCount; i > 0; ) { --i; if (saveDataList[i].size == 0) diff --git a/Core/Dialog/SavedataParam.h b/Core/Dialog/SavedataParam.h index 1b52cae668..9763605fa6 100644 --- a/Core/Dialog/SavedataParam.h +++ b/Core/Dialog/SavedataParam.h @@ -254,6 +254,15 @@ struct SaveFileInfo int textureWidth; int textureHeight; + SaveFileInfo() : size(0), saveName(""), idx(0), + textureData(0), textureWidth(0), textureHeight(0) + { + memset(title, 0, 128); + memset(saveTitle, 0, 128); + memset(saveDetail, 0, 1024); + modif_time = {0}; + } + void DoState(PointerWrap &p) { auto s = p.Section("SaveFileInfo", 1);