diff --git a/mm/2s2h/BenGui/BenMenuBar.cpp b/mm/2s2h/BenGui/BenMenuBar.cpp index 849364462..f2f460a6e 100644 --- a/mm/2s2h/BenGui/BenMenuBar.cpp +++ b/mm/2s2h/BenGui/BenMenuBar.cpp @@ -13,6 +13,7 @@ #include "2s2h/Enhancements/Modes/TimeMovesWhenYouMove.h" #include "2s2h/DeveloperTools/DeveloperTools.h" #include "2s2h/DeveloperTools/WarpPoint.h" +#include "2s2h/Enhancements/Cheats/Cheats.h" #include "HudEditor.h" extern "C" { @@ -644,13 +645,18 @@ void DrawCheatsMenu() { UIWidgets::CVarCheckbox("Infinite Magic", "gCheats.InfiniteMagic"); UIWidgets::CVarCheckbox("Infinite Rupees", "gCheats.InfiniteRupees"); UIWidgets::CVarCheckbox("Infinite Consumables", "gCheats.InfiniteConsumables"); + if (UIWidgets::CVarCheckbox( + "Longer Deku Flower Glide", "gCheats.LongerFlowerGlide", + { .tooltip = "Allows Deku Link to glide longer, no longer dropping after a certain distance" })) { + RegisterLongerFlowerGlide(); + } + UIWidgets::CVarCheckbox("No Clip", "gCheats.NoClip"); UIWidgets::CVarCheckbox("Unbreakable Razor Sword", "gCheats.UnbreakableRazorSword"); UIWidgets::CVarCheckbox("Unrestricted Items", "gCheats.UnrestrictedItems"); if (UIWidgets::CVarCheckbox("Moon Jump on L", "gCheats.MoonJumpOnL", { .tooltip = "Holding L makes you float into the air" })) { RegisterMoonJumpOnL(); } - UIWidgets::CVarCheckbox("No Clip", "gCheats.NoClip"); ImGui::EndMenu(); } diff --git a/mm/2s2h/Enhancements/Cheats/Cheats.h b/mm/2s2h/Enhancements/Cheats/Cheats.h new file mode 100644 index 000000000..497f5e2c5 --- /dev/null +++ b/mm/2s2h/Enhancements/Cheats/Cheats.h @@ -0,0 +1,6 @@ +#ifndef CHEATS_H +#define CHEATS_H + +void RegisterLongerFlowerGlide(); + +#endif // CHEATS_H diff --git a/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp b/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp new file mode 100644 index 000000000..4012e9a5a --- /dev/null +++ b/mm/2s2h/Enhancements/Cheats/LongerFlowerGlide.cpp @@ -0,0 +1,16 @@ +#include + +extern "C" { +#include "z64.h"; +extern f32 D_8085D958[2]; +} + +void RegisterLongerFlowerGlide() { + if (CVarGetInteger("gCheats.LongerFlowerGlide", 0)) { + D_8085D958[0] = 99999.9f; + D_8085D958[1] = 99999.9f; + } else { + D_8085D958[0] = 600.0f; + D_8085D958[1] = 960.0f; + } +} diff --git a/mm/2s2h/Enhancements/Enhancements.cpp b/mm/2s2h/Enhancements/Enhancements.cpp index c15ba3a85..6f2f1627e 100644 --- a/mm/2s2h/Enhancements/Enhancements.cpp +++ b/mm/2s2h/Enhancements/Enhancements.cpp @@ -8,6 +8,7 @@ void InitEnhancements() { // Cheats RegisterInfiniteCheats(); + RegisterLongerFlowerGlide(); RegisterMoonJumpOnL(); RegisterUnbreakableRazorSword(); RegisterUnrestrictedItems(); diff --git a/mm/2s2h/Enhancements/Enhancements.h b/mm/2s2h/Enhancements/Enhancements.h index f3d7c5d8d..57c54f414 100644 --- a/mm/2s2h/Enhancements/Enhancements.h +++ b/mm/2s2h/Enhancements/Enhancements.h @@ -8,6 +8,7 @@ #include "Cheats/Infinite.h" #include "Dialogue/Dialogue.h" #include "Graphics/TextBasedClock.h" +#include "Cheats/Cheats.h" #include "Cheats/UnbreakableRazorSword.h" #include "Cheats/UnrestrictedItems.h" #include "Cycle/EndOfCycle.h"