void __UtilityDoState(PointerWrap &p) { auto s = p.Section("sceUtility", 1, 2); if (!s) { return; } p.Do(currentDialogType); p.Do(currentDialogActive); saveDialog.DoState(p); msgDialog.DoState(p); oskDialog.DoState(p); netDialog.DoState(p); screenshotDialog.DoState(p); gamedataInstallDialog.DoState(p); if (s >= 2) { p.Do(currentlyLoadedModules); } else { std::set<int> oldModules; p.Do(oldModules); for (auto it = oldModules.begin(), end = oldModules.end(); it != end; ++it) { currentlyLoadedModules[*it] = 0; } } }
void __UtilityShutdown() { saveDialog.Shutdown(true); msgDialog.Shutdown(true); oskDialog.Shutdown(true); netDialog.Shutdown(true); screenshotDialog.Shutdown(true); gamedataInstallDialog.Shutdown(true); }
static int sceUtilityScreenshotContStart(u32 paramAddr) { if (currentDialogType != UTILITY_DIALOG_SCREENSHOT) { WARN_LOG(SCEUTILITY, "sceUtilityScreenshotContStart(): wrong dialog type"); return SCE_ERROR_UTILITY_WRONG_TYPE; } int ret = screenshotDialog.ContStart(); WARN_LOG(SCEUTILITY, "%08x=sceUtilityScreenshotContStart(%08x)", ret, paramAddr); return ret; }
static int sceUtilityScreenshotUpdate(u32 animSpeed) { if (currentDialogType != UTILITY_DIALOG_SCREENSHOT) { WARN_LOG(SCEUTILITY, "sceUtilityScreenshotUpdate(%i): wrong dialog type", animSpeed); return SCE_ERROR_UTILITY_WRONG_TYPE; } int ret = screenshotDialog.Update(animSpeed); WARN_LOG(SCEUTILITY, "%08x=sceUtilityScreenshotUpdate(%i)", ret, animSpeed); return ret; }
static int sceUtilityScreenshotShutdownStart() { if (currentDialogType != UTILITY_DIALOG_SCREENSHOT) { WARN_LOG(SCEUTILITY, "sceUtilityScreenshotShutdownStart(): wrong dialog type"); return SCE_ERROR_UTILITY_WRONG_TYPE; } currentDialogActive = false; int ret = screenshotDialog.Shutdown(); WARN_LOG(SCEUTILITY, "%08x=sceUtilityScreenshotShutdownStart()", ret); return ret; }
static int sceUtilityScreenshotGetStatus() { if (currentDialogType != UTILITY_DIALOG_SCREENSHOT) { DEBUG_LOG(SCEUTILITY, "sceUtilityScreenshotGetStatus(): wrong dialog type"); return SCE_ERROR_UTILITY_WRONG_TYPE; } int status = screenshotDialog.GetStatus(); if (oldStatus != status) { oldStatus = status; WARN_LOG(SCEUTILITY, "%08x=sceUtilityScreenshotGetStatus()", status); } return status; }
//TODO: Implement all sceUtilityScreenshot* for real, it doesn't seem to be complex //but it requires more investigation static int sceUtilityScreenshotInitStart(u32 paramAddr) { if (currentDialogActive && currentDialogType != UTILITY_DIALOG_SCREENSHOT) { WARN_LOG(SCEUTILITY, "sceUtilityScreenshotInitStart(%08x): wrong dialog type", paramAddr); return SCE_ERROR_UTILITY_WRONG_TYPE; } oldStatus = 100; currentDialogType = UTILITY_DIALOG_SCREENSHOT; currentDialogActive = true; u32 retval = screenshotDialog.Init(paramAddr); WARN_LOG_REPORT(SCEUTILITY, "%08x=sceUtilityScreenshotInitStart(%08x)", retval, paramAddr); return retval; }
void __UtilityDoState(PointerWrap &p) { auto s = p.Section("sceUtility", 1); if (!s) return; p.Do(currentDialogType); p.Do(currentDialogActive); saveDialog.DoState(p); msgDialog.DoState(p); oskDialog.DoState(p); netDialog.DoState(p); screenshotDialog.DoState(p); gamedataInstallDialog.DoState(p); p.Do(currentlyLoadedModules); }