Skip to content

Commit

Permalink
fix menu breakage
Browse files Browse the repository at this point in the history
  • Loading branch information
ThirteenAG committed Jan 23, 2024
1 parent 8fdfc2e commit 47db131
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 16 deletions.
2 changes: 1 addition & 1 deletion data/update/TBoGT/common/data/frontend_menus.xml
Original file line number Diff line number Diff line change
Expand Up @@ -488,7 +488,7 @@
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_ADJUST" label="Raw Input" value="PREF_RAWINPUT" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="6" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="8" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Cover Centering" value="PREF_COVERCENTERING" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<options action="END_OF_MENU_OPTIONS" label="" value="0" scaler="0" displayValue="0" />
</menu>
Expand Down
2 changes: 1 addition & 1 deletion data/update/TLAD/common/data/frontend_menus.xml
Original file line number Diff line number Diff line change
Expand Up @@ -562,7 +562,7 @@
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_ADJUST" label="Raw Input" value="PREF_RAWINPUT" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="6" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="8" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Cover Centering" value="PREF_COVERCENTERING" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<options action="END_OF_MENU_OPTIONS" label="" value="0" scaler="0" displayValue="0" />
</menu>
Expand Down
4 changes: 2 additions & 2 deletions data/update/common/data/frontend_menus.xml
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,7 @@
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_ADJUST" label="Raw Input" value="PREF_RAWINPUT" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="6" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="8" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Cover Centering" value="PREF_COVERCENTERING" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<options action="END_OF_MENU_OPTIONS" label="" value="0" scaler="0" displayValue="0" />
</menu>
Expand Down Expand Up @@ -868,7 +868,7 @@
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_NONE" label="" value="PREF_NULL" scaler="0" displayValue="MENU_DISPLAY_NONE" />
<optionspc action="MENUOPT_ADJUST" label="Raw Input" value="PREF_RAWINPUT" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="6" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Always Run" value="PREF_ALWAYSRUN" scaler="8" displayValue="MENU_DISPLAY_ALWAYSRUN" />
<optionspc action="MENUOPT_ADJUST" label="Cover Centering" value="PREF_COVERCENTERING" scaler="2" displayValue="MENU_DISPLAY_ON_OFF" />
<options action="END_OF_MENU_OPTIONS" label="" value="0" scaler="0" displayValue="MENU_DISPLAY_NONE" />
</menupc>
Expand Down
25 changes: 16 additions & 9 deletions source/ikeeponwalking.ixx
Original file line number Diff line number Diff line change
Expand Up @@ -37,12 +37,12 @@ public:
*(uintptr_t*)(regs.esp - 4) = loc_A2A60F;
}
auto alwaysrunPref = FusionFixSettings.GetRef("PREF_ALWAYSRUN");
bool shouldRun = (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eMO_ON
|| (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eOutside && !Natives::IsInteriorScene()));
auto bShouldRun = (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eMO_ON) || (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eOutside);
auto bDontRunNow = (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eOutside) && Natives::IsInteriorScene();

if (!FusionFixSettings.Get("PREF_SPRINT")) // toggle
{
if (shouldRun)
if (bShouldRun)
{
static auto bRunState = true;
static auto oldWalkKeyState = GetAsyncKeyState(nWalkKey);
Expand All @@ -52,23 +52,30 @@ public:
oldWalkKeyState = curWalkKeyState;

if (bRunState)
*(float*)(regs.esp + (flag ? 0x18 : 0x1C)) = 1.0f;
{
if (!bDontRunNow)
*(float*)(regs.esp + (flag ? 0x18 : 0x1C)) = 1.0f;
}
}
}
else if (shouldRun && !GetAsyncKeyState(nWalkKey)) // hold
*(float*)(regs.esp + (flag ? 0x18 : 0x1C)) = 1.0f;
else if (bShouldRun && !GetAsyncKeyState(nWalkKey)) // hold
{
if (!bDontRunNow)
*(float*)(regs.esp + (flag ? 0x18 : 0x1C)) = 1.0f;
}
}
}; injector::MakeInline<SprintHook>(pattern.get_first(0));

pattern = find_pattern("77 5F 8B 8E", "77 46 8B 8F");
static raw_mem GamepadCB(pattern.get_first(0), { 0x90, 0x90 }); // NOP
FusionFixSettings.SetCallback("PREF_ALWAYSRUN", [](int32_t value) {
if (value)
FusionFixSettings.SetCallback("PREF_ALWAYSRUN", [](int32_t value)
{
if ((value == FusionFixSettings.AlwaysRunText.eMO_ON) || (value == FusionFixSettings.AlwaysRunText.eOutside))
GamepadCB.Write();
else
GamepadCB.Restore();
});
if (FusionFixSettings("PREF_ALWAYSRUN"))
if ((FusionFixSettings("PREF_ALWAYSRUN") == FusionFixSettings.AlwaysRunText.eMO_ON) || (FusionFixSettings("PREF_ALWAYSRUN") == FusionFixSettings.AlwaysRunText.eOutside))
GamepadCB.Write();
};
}
Expand Down
7 changes: 4 additions & 3 deletions source/settings.ixx
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ public:

CIniReader iniReader(cfgPath);

// VOLATILE! DO NOT CHANGE THE ORDER OF THESE! ONLY WORKS BY SOME MIRACLE.
static CSetting arr[] = {
{ 0, "PREF_SKIP_INTRO", "MAIN", "SkipIntro", "", 1, nullptr, 0, 1 },
{ 0, "PREF_SKIP_MENU", "MAIN", "SkipMenu", "", 1, nullptr, 0, 1 },
Expand All @@ -154,6 +155,7 @@ public:
{ 0, "PREF_DEFINITION", "MAIN", "Definition", "MENU_DISPLAY_DEFINITION", 6, nullptr, DefinitionText.eClassic, std::distance(std::begin(DefinitionText.data), std::end(DefinitionText.data)) - 1 },
{ 0, "PREF_BLOOM", "MAIN", "Bloom", "", 1, nullptr, 0, 1 },
{ 0, "PREF_FPSCOUNTER", "FRAMELIMIT", "DisplayFpsCounter", "", 0, nullptr, 0, 1 },
{ 0, "PREF_ALWAYSRUN", "MISC", "AlwaysRun", "MENU_DISPLAY_ALWAYSRUN", 5, nullptr, AlwaysRunText.eMO_OFF, std::distance(std::begin(AlwaysRunText.data), std::end(AlwaysRunText.data)) - 1 },
{ 0, "PREF_ALTDIALOGUE", "MISC", "AltDialogue", "", 0, nullptr, 0, 1 },
{ 0, "PREF_COVERCENTERING", "MISC", "CameraCenteringInCover", "", 0, nullptr, 0, 1 },
{ 0, "PREF_KBCAMCENTERDELAY", "MISC", "DelayBeforeCenteringCameraKB", "", 0, nullptr, 0, 9 },
Expand All @@ -164,7 +166,6 @@ public:
{ 0, "PREF_LETTERBOX", "MISC", "Letterbox", "", 1, nullptr, 0, 1 },
{ 0, "PREF_PILLARBOX", "MISC", "Pillarbox", "", 1, nullptr, 0, 1 },
{ 0, "PREF_ANTIALIASING", "MISC", "Antialiasing", "MENU_DISPLAY_ANTIALIASING", 1, nullptr, AntialiasingText.eMO_OFF, std::distance(std::begin(AntialiasingText.data), std::end(AntialiasingText.data)) - 1 },
{ 0, "PREF_ALWAYSRUN", "MISC", "AlwaysRun", "MENU_DISPLAY_ALWAYSRUN", 3, nullptr, AlwaysRunText.eMO_OFF, std::distance(std::begin(AlwaysRunText.data), std::end(AlwaysRunText.data)) - 1 },
};

auto i = firstCustomID;
Expand Down Expand Up @@ -384,8 +385,8 @@ public:

struct
{
enum eAlwaysRunText { eLow, eMedium, eHigh, eMO_OFF, eMO_ON, eOutside };
std::vector<const char*> data = { "Low", "Medium", "High", "MO_OFF", "MO_ON", "Outside" };
enum eAlwaysRunText { eOff, eLow, eMedium, eHigh, eVeryHigh, eMO_OFF, eMO_ON, eOutside };
std::vector<const char*> data = { "Off", "Low", "Medium", "High", "Very High", "MO_OFF", "MO_ON", "Outside" };
} AlwaysRunText;

} FusionFixSettings;
Expand Down

0 comments on commit 47db131

Please sign in to comment.