From 5269eadfafcace449b13ccf84205132fa2aef1d6 Mon Sep 17 00:00:00 2001 From: Supern_Ice Date: Fri, 29 May 2026 15:26:26 +0100 Subject: [PATCH 1/3] Added Sword and Shield skip Achievement --- src/dusk/achievements.cpp | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/dusk/achievements.cpp b/src/dusk/achievements.cpp index 6c4de43487..39443beabe 100644 --- a/src/dusk/achievements.cpp +++ b/src/dusk/achievements.cpp @@ -931,6 +931,29 @@ std::vector AchievementSystem::makeEntries() { }, {} }, + { + { + "sword_and_shield_skip", "Sword and Shield Skip", + "Pass through the Twilight Wall in Ordon Spring before obtaining both the Ordon Sword " + "and Shield.", + AchievementCategory::Glitched, false, 0, 0, false + }, + [](Achievement& a, json&) { + bool hasOrdonSword = false; + bool hasOrdonShield = false; + if (dComIfGs_isCollectSword(COLLECT_ORDON_SWORD)) { + hasOrdonSword = true; + } + if (dComIfGs_isCollectShield(COLLECT_ORDON_SHIELD)) { + hasOrdonShield = true; + } + if ((!hasOrdonSword || !hasOrdonShield) && + dComIfGs_isEventBit(dSv_event_flag_c::M_013)) { + a.progress = 1; + } + }, + {} + }, { { "early_master_sword", From bf0dc854687fd09c01bb29882e766bc0df62092f Mon Sep 17 00:00:00 2001 From: tomlube Date: Fri, 29 May 2026 15:14:05 -0400 Subject: [PATCH 2/3] Revert "Added Sword and Shield skip Achievement" (#1917) --- src/dusk/achievements.cpp | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/src/dusk/achievements.cpp b/src/dusk/achievements.cpp index 39443beabe..6c4de43487 100644 --- a/src/dusk/achievements.cpp +++ b/src/dusk/achievements.cpp @@ -931,29 +931,6 @@ std::vector AchievementSystem::makeEntries() { }, {} }, - { - { - "sword_and_shield_skip", "Sword and Shield Skip", - "Pass through the Twilight Wall in Ordon Spring before obtaining both the Ordon Sword " - "and Shield.", - AchievementCategory::Glitched, false, 0, 0, false - }, - [](Achievement& a, json&) { - bool hasOrdonSword = false; - bool hasOrdonShield = false; - if (dComIfGs_isCollectSword(COLLECT_ORDON_SWORD)) { - hasOrdonSword = true; - } - if (dComIfGs_isCollectShield(COLLECT_ORDON_SHIELD)) { - hasOrdonShield = true; - } - if ((!hasOrdonSword || !hasOrdonShield) && - dComIfGs_isEventBit(dSv_event_flag_c::M_013)) { - a.progress = 1; - } - }, - {} - }, { { "early_master_sword", From bc3cdcc9555057457d0064174bec9c1b79315cac Mon Sep 17 00:00:00 2001 From: Luke Street Date: Fri, 29 May 2026 21:20:15 -0600 Subject: [PATCH 3/3] =?UTF-8?q?Revert=20"Adds=20a=20new=20cheat=20that=20l?= =?UTF-8?q?et=20you=20transform=20from=20the=20start=20of=20the=20game.=20?= =?UTF-8?q?(=E2=80=A6"=20(#1927)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 62c19c0f64705215f02da068618d5cdee28ad4a1. --- include/dusk/settings.h | 1 - src/d/actor/d_a_alink_dusk.cpp | 6 +++--- src/d/actor/d_a_midna.cpp | 16 ++++++---------- src/d/d_com_inf_game.cpp | 6 +----- src/dusk/settings.cpp | 2 -- src/dusk/ui/settings.cpp | 2 -- 6 files changed, 10 insertions(+), 23 deletions(-) diff --git a/include/dusk/settings.h b/include/dusk/settings.h index e36f0b9f24..f48f5862ca 100644 --- a/include/dusk/settings.h +++ b/include/dusk/settings.h @@ -230,7 +230,6 @@ struct UserSettings { ConfigVar fastSpinner; ConfigVar freeMagicArmor; ConfigVar invincibleEnemies; - ConfigVar transformWithoutShadowCrystal; // Technical ConfigVar restoreWiiGlitches; diff --git a/src/d/actor/d_a_alink_dusk.cpp b/src/d/actor/d_a_alink_dusk.cpp index ef14eadd9f..8c1d415ae0 100644 --- a/src/d/actor/d_a_alink_dusk.cpp +++ b/src/d/actor/d_a_alink_dusk.cpp @@ -72,7 +72,7 @@ void daAlink_c::handleQuickTransform() { } // Check to see if Link has the ability to transform. - if (!dComIfGs_isEventBit(dSv_event_flag_c::M_077) && !dusk::getSettings().game.transformWithoutShadowCrystal) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::M_077)) { return; } @@ -102,7 +102,7 @@ void daAlink_c::handleQuickTransform() { } // Ensure that the Z Button is not dimmed - if (meterDrawPtr->getButtonZAlpha() != 1.f && !dusk::getSettings().game.transformWithoutShadowCrystal) { + if (meterDrawPtr->getButtonZAlpha() != 1.f) { Z2GetAudioMgr()->seStart(Z2SE_SYS_ERROR, NULL, 0, 0, 1.0f, 1.0f, -1.0f, -1.0f, 0); return; } @@ -122,7 +122,7 @@ void daAlink_c::handleQuickTransform() { bool canTransform = false; if (mLinkAcch.ChkGroundHit() && !checkModeFlg(MODE_PLAYER_FLY) && !checkMagneBootsOn()) { - if (checkMidnaRide() || dusk::getSettings().game.transformWithoutShadowCrystal) { + if (checkMidnaRide()) { if ((checkWolf() && (checkModeFlg(MODE_UNK_1000) || dComIfGp_checkPlayerStatus0(0, 0x10))) || (!checkWolf() && diff --git a/src/d/actor/d_a_midna.cpp b/src/d/actor/d_a_midna.cpp index b33229e08c..3082fc6a71 100644 --- a/src/d/actor/d_a_midna.cpp +++ b/src/d/actor/d_a_midna.cpp @@ -3106,18 +3106,14 @@ void daMidna_c::setMidnaNoDrawFlg() { BOOL daMidna_c::checkMetamorphoseEnableBase() { BOOL tmp; + if (!daAlink_getAlinkActorClass()->checkMidnaRide() || (g_env_light.mEvilInitialized & 0x80) || + /* dSv_event_flag_c::M_077 - Main Event - Get shadow crystal (can now transform) */ + !dComIfGs_isEventBit(0xD04) || #if TARGET_PC - if (((!daAlink_getAlinkActorClass()->checkMidnaRide() || (g_env_light.mEvilInitialized & 0x80) || - /* dSv_event_flag_c::M_077 - Main Event - Get shadow crystal (can now transform) */ - !dComIfGs_isEventBit(0xD04)) && - !dusk::getSettings().game.transformWithoutShadowCrystal) || - (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp) && - !dusk::getSettings().game.canTransformAnywhere) + (fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp) && + !dusk::getSettings().game.canTransformAnywhere) #else - if (!daAlink_getAlinkActorClass()->checkMidnaRide() || (g_env_light.mEvilInitialized & 0x80) || - /* dSv_event_flag_c::M_077 - Main Event - Get shadow crystal (can now transform) */ - !dComIfGs_isEventBit(0xD04) || - fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp) + fopAcIt_Judge((fopAcIt_JudgeFunc)daMidna_searchNpc, &tmp) #endif ) { diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 3e881e63f8..93fc15ca8f 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -2843,11 +2843,7 @@ BOOL dComIfGs_Wolf_Change_Check() { BOOL is_wolf = false; // Transforming Unlocked - if (dComIfGs_isEventBit(0x0D04) -#if TARGET_PC - || dusk::getSettings().game.transformWithoutShadowCrystal -#endif - ) { + if (dComIfGs_isEventBit(0x0D04)) { is_wolf = dComIfGs_getTransformStatus(); } else if (dComIfGs_isTransformLV(0) && !dComIfGs_isDarkClearLV(0)) { is_wolf = true; diff --git a/src/dusk/settings.cpp b/src/dusk/settings.cpp index cc8d54a517..3bea017e2c 100644 --- a/src/dusk/settings.cpp +++ b/src/dusk/settings.cpp @@ -123,7 +123,6 @@ UserSettings g_userSettings = { .fastSpinner {"game.fastSpinner", false}, .freeMagicArmor {"game.freeMagicArmor", false}, .invincibleEnemies {"game.invincibleEnemies", false}, - .transformWithoutShadowCrystal {"game.transformWithoutShadowCrystal", false}, // Technical .restoreWiiGlitches {"game.restoreWiiGlitches", false}, @@ -209,7 +208,6 @@ void registerSettings() { // Game Register(g_userSettings.game.language); Register(g_userSettings.game.enableQuickTransform); - Register(g_userSettings.game.transformWithoutShadowCrystal); Register(g_userSettings.game.hideTvSettingsScreen); Register(g_userSettings.game.biggerWallets); Register(g_userSettings.game.noReturnRupees); diff --git a/src/dusk/ui/settings.cpp b/src/dusk/ui/settings.cpp index 99dee7ace7..44fd9e1724 100644 --- a/src/dusk/ui/settings.cpp +++ b/src/dusk/ui/settings.cpp @@ -1294,8 +1294,6 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) { "Lets the magic armor work without consuming rupees."); addCheat("Invincible Enemies", getSettings().game.invincibleEnemies, "Prevents enemies from taking damage."); - addCheat("Transform without Shadow Crystal", getSettings().game.transformWithoutShadowCrystal, - "Allows Link to transform without the Shadow Crystal (Only using Quick Transform.)"); }); add_tab("Interface", [this](Rml::Element* content) {