mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2026-06-02 22:05:57 -05:00
Merge 32d54e6bb2 into 8afc696a1e
This commit is contained in:
commit
3edc91dea1
|
|
@ -165,6 +165,13 @@ void AchievementManager::LoadGame(const DiscIO::Volume* volume)
|
||||||
"Attempted to load game achievements without achievement client initialized.");
|
"Attempted to load game achievements without achievement client initialized.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (m_load_async_handle)
|
||||||
|
{
|
||||||
|
WARN_LOG_FMT(ACHIEVEMENTS, "Attempted to load while load is in progress; aborting all loads.");
|
||||||
|
rc_client_abort_async(m_client, m_load_async_handle);
|
||||||
|
CloseGame();
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (volume == nullptr)
|
if (volume == nullptr)
|
||||||
{
|
{
|
||||||
WARN_LOG_FMT(ACHIEVEMENTS, "Software format unsupported by AchievementManager.");
|
WARN_LOG_FMT(ACHIEVEMENTS, "Software format unsupported by AchievementManager.");
|
||||||
|
|
@ -176,7 +183,7 @@ void AchievementManager::LoadGame(const DiscIO::Volume* volume)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
rc_client_begin_load_game(m_client, "", LoadGameCallback, NULL);
|
m_load_async_handle = rc_client_begin_load_game(m_client, "", LoadGameCallback, NULL);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -210,13 +217,14 @@ void AchievementManager::LoadGame(const DiscIO::Volume* volume)
|
||||||
rc_hash_init_custom_filereader(&volume_reader);
|
rc_hash_init_custom_filereader(&volume_reader);
|
||||||
if (rc_client_get_game_info(m_client))
|
if (rc_client_get_game_info(m_client))
|
||||||
{
|
{
|
||||||
rc_client_begin_identify_and_change_media(m_client, "", NULL, 0, ChangeMediaCallback, NULL);
|
m_load_async_handle =
|
||||||
|
rc_client_begin_identify_and_change_media(m_client, "", NULL, 0, ChangeMediaCallback, NULL);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
u32 console_id = FindConsoleID(volume->GetVolumeType());
|
u32 console_id = FindConsoleID(volume->GetVolumeType());
|
||||||
rc_client_begin_identify_and_load_game(m_client, console_id, "", NULL, 0, LoadGameCallback,
|
m_load_async_handle = rc_client_begin_identify_and_load_game(m_client, console_id, "", NULL, 0,
|
||||||
NULL);
|
LoadGameCallback, NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1011,6 +1019,7 @@ void AchievementManager::LoadGameCallback(int result, const char* error_message,
|
||||||
{
|
{
|
||||||
auto& instance = AchievementManager::GetInstance();
|
auto& instance = AchievementManager::GetInstance();
|
||||||
instance.m_loading_volume.reset(nullptr);
|
instance.m_loading_volume.reset(nullptr);
|
||||||
|
instance.m_load_async_handle = nullptr;
|
||||||
if (result == RC_API_FAILURE)
|
if (result == RC_API_FAILURE)
|
||||||
{
|
{
|
||||||
WARN_LOG_FMT(ACHIEVEMENTS, "Load data request rejected for old Dolphin version.");
|
WARN_LOG_FMT(ACHIEVEMENTS, "Load data request rejected for old Dolphin version.");
|
||||||
|
|
@ -1084,7 +1093,9 @@ void AchievementManager::LoadGameCallback(int result, const char* error_message,
|
||||||
void AchievementManager::ChangeMediaCallback(int result, const char* error_message,
|
void AchievementManager::ChangeMediaCallback(int result, const char* error_message,
|
||||||
rc_client_t* client, void* userdata)
|
rc_client_t* client, void* userdata)
|
||||||
{
|
{
|
||||||
AchievementManager::GetInstance().m_loading_volume.reset(nullptr);
|
auto& instance = AchievementManager::GetInstance();
|
||||||
|
instance.m_loading_volume.reset(nullptr);
|
||||||
|
instance.m_load_async_handle = nullptr;
|
||||||
if (result == RC_OK)
|
if (result == RC_OK)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
|
|
||||||
|
|
@ -259,6 +259,7 @@ private:
|
||||||
rc_client_t* m_client{};
|
rc_client_t* m_client{};
|
||||||
std::atomic<Core::System*> m_system{};
|
std::atomic<Core::System*> m_system{};
|
||||||
std::unique_ptr<DiscIO::Volume> m_loading_volume;
|
std::unique_ptr<DiscIO::Volume> m_loading_volume;
|
||||||
|
rc_client_async_handle_t* m_load_async_handle = nullptr;
|
||||||
Config::ConfigChangedCallbackID m_config_changed_callback_id;
|
Config::ConfigChangedCallbackID m_config_changed_callback_id;
|
||||||
Badge m_default_player_badge;
|
Badge m_default_player_badge;
|
||||||
Badge m_default_game_badge;
|
Badge m_default_game_badge;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user