diff options
| author | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2025-05-31 00:24:39 -0400 |
|---|---|---|
| committer | LillyJadeKatrin <lilly.kitty.1988@gmail.com> | 2025-11-16 22:05:54 -0500 |
| commit | 1e0f6a557eff0b6bbad2f537e60f8308ed2c117d (patch) | |
| tree | 6e822bb611cf82e413218e1ef43b31fa867fc54c /Source/Android | |
| parent | f4f26a26d22e0c4be99a699277e5dfe2f1bbe652 (diff) | |
Android Achievements - Hardcore disables
Disables state loading and emulation speeds below 100% when RetroAchievements hardcore mode is enabled.
Diffstat (limited to 'Source/Android')
4 files changed, 17 insertions, 1 deletions
diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AchievementModel.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AchievementModel.kt index 6626ba0df3..1625c98fb0 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AchievementModel.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/model/AchievementModel.kt @@ -13,5 +13,8 @@ object AchievementModel { external fun logout() @JvmStatic + external fun isHardcoreModeActive(): Boolean + + @JvmStatic external fun shutdown() } diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt index 0fd8a97782..1594771128 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/features/settings/ui/SettingsFragmentPresenter.kt @@ -251,7 +251,7 @@ class SettingsFragmentPresenter( FloatSetting.MAIN_EMULATION_SPEED, R.string.speed_limit, 0, - 0f, + if (AchievementModel.isHardcoreModeActive()) 100f else 0f, 200f, "%", 1f, diff --git a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt index b668e08da8..6bf9c7c147 100644 --- a/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt +++ b/Source/Android/app/src/main/java/org/dolphinemu/dolphinemu/fragments/MenuFragment.kt @@ -19,6 +19,7 @@ import org.dolphinemu.dolphinemu.NativeLibrary import org.dolphinemu.dolphinemu.R import org.dolphinemu.dolphinemu.activities.EmulationActivity import org.dolphinemu.dolphinemu.databinding.FragmentIngameMenuBinding +import org.dolphinemu.dolphinemu.features.settings.model.AchievementModel import org.dolphinemu.dolphinemu.features.settings.model.BooleanSetting import org.dolphinemu.dolphinemu.features.settings.model.IntSetting import org.dolphinemu.dolphinemu.utils.InsetsHelper @@ -114,11 +115,16 @@ class MenuFragment : Fragment(), View.OnClickListener { override fun onResume() { super.onResume() val savestatesEnabled = BooleanSetting.MAIN_ENABLE_SAVESTATES.boolean + val hardcoreEnabled = AchievementModel.isHardcoreModeActive() val savestateVisibility = if (savestatesEnabled) View.VISIBLE else View.GONE binding.menuQuicksave.visibility = savestateVisibility binding.menuQuickload.visibility = savestateVisibility binding.menuEmulationSaveRoot.visibility = savestateVisibility binding.menuEmulationLoadRoot.visibility = savestateVisibility + // While technically the option is still enabled, AchievementManager + // will block the load and send a message to the screen. + binding.menuQuickload.paint.isStrikeThruText = hardcoreEnabled + binding.menuEmulationLoadRoot.paint.isStrikeThruText = hardcoreEnabled } override fun onDestroyView() { diff --git a/Source/Android/jni/AchievementAdapter.cpp b/Source/Android/jni/AchievementAdapter.cpp index 4ecb73d653..f3f27c8f8d 100644 --- a/Source/Android/jni/AchievementAdapter.cpp +++ b/Source/Android/jni/AchievementAdapter.cpp @@ -27,6 +27,13 @@ Java_org_dolphinemu_dolphinemu_features_settings_model_AchievementModel_logout(J AchievementManager::GetInstance().Logout(); } +JNIEXPORT jboolean JNICALL +Java_org_dolphinemu_dolphinemu_features_settings_model_AchievementModel_isHardcoreModeActive( + JNIEnv* env, jclass) +{ + return AchievementManager::GetInstance().IsHardcoreModeActive(); +} + JNIEXPORT void JNICALL Java_org_dolphinemu_dolphinemu_features_settings_model_AchievementModel_shutdown(JNIEnv* env, jclass) |
