diff options
| author | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2023-07-20 17:55:25 -0400 |
|---|---|---|
| committer | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2023-12-02 16:41:17 -0500 |
| commit | 6f7e02e2012fa889fb5f8e7a20e58c8538cc1a05 (patch) | |
| tree | bbb0fad182a5238026d0f38c9e57999fd8590758 /Source/Core | |
| parent | 3aebbbb3e74f24b6da7537052f8b78c6b600eefa (diff) | |
Disable TAS recording playback in hardcore mode
Play Input Recording would potentially unlock achievements without any player input and needs to be disabled. If a recording is already playing, hardcore mode cannot be enabled.
Diffstat (limited to 'Source/Core')
| -rw-r--r-- | Source/Core/Core/Movie.cpp | 13 | ||||
| -rw-r--r-- | Source/Core/DolphinQt/MenuBar.cpp | 5 |
2 files changed, 18 insertions, 0 deletions
diff --git a/Source/Core/Core/Movie.cpp b/Source/Core/Core/Movie.cpp index 5b66b707ea..f8b202ab48 100644 --- a/Source/Core/Core/Movie.cpp +++ b/Source/Core/Core/Movie.cpp @@ -34,6 +34,7 @@ #include "Common/Version.h" #include "Core/Boot/Boot.h" +#include "Core/Config/AchievementSettings.h" #include "Core/Config/MainSettings.h" #include "Core/Config/SYSCONFSettings.h" #include "Core/Config/WiimoteSettings.h" @@ -974,6 +975,12 @@ bool PlayInput(const std::string& movie_path, std::optional<std::string>* savest } ReadHeader(); + +#ifdef USE_RETRO_ACHIEVEMENTS + if (Config::Get(Config::RA_HARDCORE_ENABLED)) + return false; +#endif // USE_RETRO_ACHIEVEMENTS + s_totalFrames = tmpHeader.frameCount; s_totalLagCount = tmpHeader.lagCount; s_totalInputCount = tmpHeader.inputCount; @@ -1010,6 +1017,12 @@ bool PlayInput(const std::string& movie_path, std::optional<std::string>* savest } s_bRecordingFromSaveState = true; + +#ifdef USE_RETRO_ACHIEVEMENTS + // On the chance someone tries to re-enable before the TAS can start + Config::SetBase(Config::RA_HARDCORE_ENABLED, false); +#endif // USE_RETRO_ACHIEVEMENTS + Movie::LoadInput(movie_path); } diff --git a/Source/Core/DolphinQt/MenuBar.cpp b/Source/Core/DolphinQt/MenuBar.cpp index 0a0b52e1fc..9b400e7c2a 100644 --- a/Source/Core/DolphinQt/MenuBar.cpp +++ b/Source/Core/DolphinQt/MenuBar.cpp @@ -141,6 +141,11 @@ void MenuBar::OnEmulationStateChanged(Core::State state) m_recording_export->setEnabled(false); } m_recording_play->setEnabled(m_game_selected && !running); +#ifdef USE_RETRO_ACHIEVEMENTS + m_recording_play->setEnabled(m_game_selected && !running && !hardcore); +#else // USE_RETRO_ACHIEVEMENTS + m_recording_play->setEnabled(m_game_selected && !running); +#endif // USE_RETRO_ACHIEVEMENTS m_recording_start->setEnabled((m_game_selected || running) && !Movie::IsPlayingInput()); // JIT |
