Smoothly remove any left-over overlays on emuscreen exit.
This commit is contained in:
parent
9354f4af1c
commit
3f924d1494
3 changed files with 35 additions and 2 deletions
|
@ -235,3 +235,32 @@ void OnScreenDisplay::RemoveProgressBar(std::string id) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Fades out everything related to achievements. Should be used on game shutdown.
|
||||||
|
void OnScreenDisplay::ClearAchievementStuff() {
|
||||||
|
double now = time_now_d();
|
||||||
|
for (auto &iter : entries_) {
|
||||||
|
switch (iter.type) {
|
||||||
|
case OSDType::ACHIEVEMENT_CHALLENGE_INDICATOR:
|
||||||
|
case OSDType::ACHIEVEMENT_UNLOCKED:
|
||||||
|
case OSDType::ACHIEVEMENT_PROGRESS:
|
||||||
|
case OSDType::LEADERBOARD_TRACKER:
|
||||||
|
iter.endTime = now;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (auto &iter : sideEntries_) {
|
||||||
|
switch (iter.type) {
|
||||||
|
case OSDType::ACHIEVEMENT_CHALLENGE_INDICATOR:
|
||||||
|
case OSDType::ACHIEVEMENT_UNLOCKED:
|
||||||
|
case OSDType::ACHIEVEMENT_PROGRESS:
|
||||||
|
case OSDType::LEADERBOARD_TRACKER:
|
||||||
|
iter.endTime = now;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -57,6 +57,9 @@ public:
|
||||||
void SetShowSidebar(bool show) { showSidebar_ = show; }
|
void SetShowSidebar(bool show) { showSidebar_ = show; }
|
||||||
bool ShowSidebar() const { return showSidebar_; }
|
bool ShowSidebar() const { return showSidebar_; }
|
||||||
|
|
||||||
|
// Fades out everything related to achievements. Should be used on game shutdown.
|
||||||
|
void ClearAchievementStuff();
|
||||||
|
|
||||||
struct Entry {
|
struct Entry {
|
||||||
OSDType type;
|
OSDType type;
|
||||||
std::string text;
|
std::string text;
|
||||||
|
|
|
@ -404,11 +404,12 @@ void EmuScreen::bootComplete() {
|
||||||
}
|
}
|
||||||
|
|
||||||
EmuScreen::~EmuScreen() {
|
EmuScreen::~EmuScreen() {
|
||||||
if (!invalid_ || bootPending_) {
|
|
||||||
// If we were invalid, it would already be shutdown.
|
// If we were invalid, it would already be shutdown.
|
||||||
Achievements::UnloadGame();
|
Achievements::UnloadGame();
|
||||||
|
if (!invalid_ || bootPending_) {
|
||||||
PSP_Shutdown();
|
PSP_Shutdown();
|
||||||
}
|
}
|
||||||
|
g_OSD.ClearAchievementStuff();
|
||||||
|
|
||||||
SetExtraAssertInfo(nullptr);
|
SetExtraAssertInfo(nullptr);
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue