mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-01-21 05:51:39 +00:00
Save lib fixes III (#1069)
* SaveDataMemory: increase memory if needed * SaveDataDialog: fix intention to hide save details
This commit is contained in:
parent
2c236d7f1e
commit
396007bba3
|
@ -79,6 +79,7 @@ SaveDialogState::SaveDialogState(const OrbisSaveDataDialogParam& param) {
|
||||||
this->title_id = item->titleId->data.to_string();
|
this->title_id = item->titleId->data.to_string();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (item->dirName != nullptr) {
|
||||||
for (u32 i = 0; i < item->dirNameNum; i++) {
|
for (u32 i = 0; i < item->dirNameNum; i++) {
|
||||||
const auto dir_name = item->dirName[i].data.to_view();
|
const auto dir_name = item->dirName[i].data.to_view();
|
||||||
|
|
||||||
|
@ -119,7 +120,8 @@ SaveDialogState::SaveDialogState(const OrbisSaveDataDialogParam& param) {
|
||||||
.dir_name = std::string{dir_name},
|
.dir_name = std::string{dir_name},
|
||||||
.icon = icon,
|
.icon = icon,
|
||||||
|
|
||||||
.title = std::string{param_sfo.GetString(SaveParams::MAINTITLE).value_or("Unknown")},
|
.title =
|
||||||
|
std::string{param_sfo.GetString(SaveParams::MAINTITLE).value_or("Unknown")},
|
||||||
.subtitle = std::string{param_sfo.GetString(SaveParams::SUBTITLE).value_or("")},
|
.subtitle = std::string{param_sfo.GetString(SaveParams::SUBTITLE).value_or("")},
|
||||||
.details = std::string{param_sfo.GetString(SaveParams::DETAIL).value_or("")},
|
.details = std::string{param_sfo.GetString(SaveParams::DETAIL).value_or("")},
|
||||||
.date = date_str,
|
.date = date_str,
|
||||||
|
@ -129,6 +131,7 @@ SaveDialogState::SaveDialogState(const OrbisSaveDataDialogParam& param) {
|
||||||
.is_corrupted = is_corrupted,
|
.is_corrupted = is_corrupted,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (type == DialogType::SAVE && item->newItem != nullptr) {
|
if (type == DialogType::SAVE && item->newItem != nullptr) {
|
||||||
RefCountedTexture icon;
|
RefCountedTexture icon;
|
||||||
|
@ -299,7 +302,7 @@ SaveDialogState::ProgressBarState::ProgressBarState(const SaveDialogState& state
|
||||||
} else {
|
} else {
|
||||||
switch (bar.sysMsgType) {
|
switch (bar.sysMsgType) {
|
||||||
case ProgressSystemMessageType::INVALID:
|
case ProgressSystemMessageType::INVALID:
|
||||||
this->msg = "INVALID";
|
this->msg = "";
|
||||||
break;
|
break;
|
||||||
case ProgressSystemMessageType::PROGRESS:
|
case ProgressSystemMessageType::PROGRESS:
|
||||||
switch (state.type) {
|
switch (state.type) {
|
||||||
|
|
|
@ -268,9 +268,6 @@ bool TriggerSave() {
|
||||||
|
|
||||||
void ReadMemory(void* buf, size_t buf_size, int64_t offset) {
|
void ReadMemory(void* buf, size_t buf_size, int64_t offset) {
|
||||||
std::scoped_lock lk{g_saving_memory_mutex};
|
std::scoped_lock lk{g_saving_memory_mutex};
|
||||||
if (offset > g_save_memory.size()) {
|
|
||||||
UNREACHABLE_MSG("ReadMemory out of bounds");
|
|
||||||
}
|
|
||||||
if (offset + buf_size > g_save_memory.size()) {
|
if (offset + buf_size > g_save_memory.size()) {
|
||||||
UNREACHABLE_MSG("ReadMemory out of bounds");
|
UNREACHABLE_MSG("ReadMemory out of bounds");
|
||||||
}
|
}
|
||||||
|
@ -279,11 +276,8 @@ void ReadMemory(void* buf, size_t buf_size, int64_t offset) {
|
||||||
|
|
||||||
void WriteMemory(void* buf, size_t buf_size, int64_t offset) {
|
void WriteMemory(void* buf, size_t buf_size, int64_t offset) {
|
||||||
std::scoped_lock lk{g_saving_memory_mutex};
|
std::scoped_lock lk{g_saving_memory_mutex};
|
||||||
if (offset > g_save_memory.size()) {
|
|
||||||
UNREACHABLE_MSG("WriteMemory out of bounds");
|
|
||||||
}
|
|
||||||
if (offset + buf_size > g_save_memory.size()) {
|
if (offset + buf_size > g_save_memory.size()) {
|
||||||
UNREACHABLE_MSG("WriteMemory out of bounds");
|
g_save_memory.resize(offset + buf_size);
|
||||||
}
|
}
|
||||||
std::memcpy(g_save_memory.data() + offset, buf, buf_size);
|
std::memcpy(g_save_memory.data() + offset, buf, buf_size);
|
||||||
g_memory_dirty = true;
|
g_memory_dirty = true;
|
||||||
|
|
Loading…
Reference in a new issue