summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLillyJadeKatrin <lilly.kitty.1988@gmail.com>2023-07-20 17:55:25 -0400
committerLillyJadeKatrin <lilly.kitty.1988@gmail.com>2023-12-02 16:41:17 -0500
commit6f7e02e2012fa889fb5f8e7a20e58c8538cc1a05 (patch)
treebbb0fad182a5238026d0f38c9e57999fd8590758 /Source/Core
parent3aebbbb3e74f24b6da7537052f8b78c6b600eefa (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.cpp13
-rw-r--r--Source/Core/DolphinQt/MenuBar.cpp5
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