Implement Always Greatspin feature in settings

Added Always Greatspin option to settings UI with modes.
This commit is contained in:
baxlek
2026-08-16 19:15:24 -05:00
committed by GitHub
parent 245e6e39d8
commit ab6a03869a
+40 -2
View File
@@ -95,6 +95,12 @@ constexpr std::array kMenuScalingModeLabels = {
"Dusklight",
};
constexpr std::array kAlwaysGreatspinModes = {
"Off",
"Always",
"After Skill",
};
constexpr std::array kMagicArmorModes = {
"Normal",
"On Damage",
@@ -1300,8 +1306,40 @@ SettingsWindow::SettingsWindow(bool prelaunch) : mPrelaunch(prelaunch) {
"Moon Jump (R+A)", getSettings().game.moonJump, "Hold R and A to rise into the air.");
addCheat("Super Clawshot", getSettings().game.superClawshot,
"Extends Clawshot behavior beyond the normal game rules.");
addCheat("Always Greatspin", getSettings().game.alwaysGreatspin,
"Allows the Great Spin attack without requiring full health.");
leftPane.register_control(
leftPane.add_select_button({
.key = "Always Greatspin",
.getValue =
[] {
return kAlwaysGreatspinModes[static_cast<u8>(
getSettings().game.alwaysGreatspin.getValue())];
},
.isDisabled = [] { return getSettings().game.speedrunMode.getValue(); },
.isModified =
[] {
return getSettings().game.alwaysGreatspin.getValue() !=
getSettings().game.alwaysGreatspin.getDefaultValue();
},
}),
rightPane, [](Pane& pane) {
for (int i = 0; i < static_cast<int>(kAlwaysGreatspinModes.size()); i++) {
pane.add_button({
.text = kAlwaysGreatspinModes[i],
.isSelected =
[i] {
return getSettings().game.alwaysGreatspin.getValue() ==
static_cast<AlwaysGreatspinMode>(i);
},
})
.on_pressed([i] {
mDoAud_seStartMenu(kSoundItemChange);
getSettings().game.alwaysGreatspin.setValue(
static_cast<AlwaysGreatspinMode>(i));
config::save();
});
}
pane.add_rml("<br/>Allows the Great Spin attack without requiring full health.");
});
addCheat("Fast Iron Boots", getSettings().game.enableFastIronBoots,
"Speeds up movement while heavy, including wearing the Iron Boots, holding the Ball and Chain, wearing Magic Armor without rupees, etc.");
addCheat("Can Transform Anywhere", getSettings().game.canTransformAnywhere,