mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Achievements: Don't start a password login while a token login is pending
rc_client answers a second login with RC_INVALID_STATE, synchronously, and login_password_callback then cleared g_isLoggingIn while the token login was still running. IsBlockingExecution stopped blocking, and a game started then ran without achievements. Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
This commit is contained in:
1 parent
bf2b84db74
commit
71bce6343f
1 file changed
+2
-1
@@ -853,7 +853,8 @@ static void login_password_callback(int result, const char *error_message, rc_cl
|
||||
|
||||
bool LoginAsync(const char *username, const char *password) {
|
||||
auto di = GetI18NCategory(I18NCat::DIALOG);
|
||||
if (IsLoggedIn() || std::strlen(username) == 0 || std::strlen(password) == 0)
|
||||
// While a token login is pending, rc_client refuses another login, and the callback for that would clear g_isLoggingIn early.
|
||||
if (IsLoggedIn() || g_isLoggingIn || std::strlen(username) == 0 || std::strlen(password) == 0)
|
||||
return false;
|
||||
|
||||
g_OSD.SetProgressBar("cheevos_async_login", di->T("Logging in..."), 0, 0, 0, 0.0f);
|
||||
|
||||
Reference in new issue
Block a user