diff --git a/.gitignore b/.gitignore index b5f8e5d5..34783a5f 100644 --- a/.gitignore +++ b/.gitignore @@ -338,5 +338,7 @@ data/update/common/shaders/dcl/gta_trees_new.dcl data/update/common/shaders/db/gta_wire.sps data/update/common/shaders/preload.list data/update/pc/textures/*.wtd +data/update/TBoGT/pc/textures/*.wtd +data/update/TLAD/pc/textures/*.wtd data/plugins/GTAIV.EFLC.FusionFix.asi GTAIV.EFLC.FusionFix.zip diff --git a/data/plugins/GTAIV.EFLC.FusionFix.ini b/data/plugins/GTAIV.EFLC.FusionFix.ini index d2982aee..120442a5 100644 --- a/data/plugins/GTAIV.EFLC.FusionFix.ini +++ b/data/plugins/GTAIV.EFLC.FusionFix.ini @@ -22,6 +22,7 @@ PedDeathAnimFixFromTBOGT = 1 FixRainDrops = 1 RainDropsBlur = 2 // 1, 2 or 4 only WalkKey = 0x12 // VK_MENU, used by Always Run option +DoNotRunInside = 0 // do not run inside interiors, used by Always Run option FixAutoExposure = 1 ExtraCutsceneFix = 1 ExtraInfo = 1 // shows extra info in the pause menu (loaded img files amount) diff --git a/data/update/TBoGT/common/data/frontend_menus.xml b/data/update/TBoGT/common/data/frontend_menus.xml index 53963084..a4483276 100644 --- a/data/update/TBoGT/common/data/frontend_menus.xml +++ b/data/update/TBoGT/common/data/frontend_menus.xml @@ -425,12 +425,6 @@ - - - - - - @@ -489,7 +483,7 @@ - + diff --git a/data/update/TLAD/common/data/frontend_menus.xml b/data/update/TLAD/common/data/frontend_menus.xml index 8bd197d8..d10dddb1 100644 --- a/data/update/TLAD/common/data/frontend_menus.xml +++ b/data/update/TLAD/common/data/frontend_menus.xml @@ -501,11 +501,6 @@ - - - - - @@ -563,7 +558,7 @@ - + diff --git a/data/update/common/data/frontend_menus.xml b/data/update/common/data/frontend_menus.xml index 61beb29c..78e94a3c 100644 --- a/data/update/common/data/frontend_menus.xml +++ b/data/update/common/data/frontend_menus.xml @@ -360,12 +360,6 @@ - - - - - - @@ -430,7 +424,7 @@ - + @@ -868,7 +862,7 @@ - + diff --git a/source/ikeeponwalking.ixx b/source/ikeeponwalking.ixx index 0a7f0088..9d460128 100644 --- a/source/ikeeponwalking.ixx +++ b/source/ikeeponwalking.ixx @@ -17,6 +17,7 @@ public: { CIniReader iniReader(""); static int32_t nWalkKey = iniReader.ReadInteger("MISC", "WalkKey", VK_MENU); + static bool bDoNotRunInside = iniReader.ReadInteger("MISC", "DoNotRunInside", 0) != 0; auto pattern = hook::pattern("D9 44 24 18 5F 5B 5D"); static auto flag = false; if (!pattern.empty()) @@ -37,8 +38,8 @@ public: *(uintptr_t*)(regs.esp - 4) = loc_A2A60F; } auto alwaysrunPref = FusionFixSettings.GetRef("PREF_ALWAYSRUN"); - auto bShouldRun = (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eMO_ON) || (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eOutside); - auto bDontRunNow = (alwaysrunPref->get() == FusionFixSettings.AlwaysRunText.eOutside) && Natives::IsInteriorScene(); + auto bShouldRun = alwaysrunPref->get(); + auto bDontRunNow = bShouldRun && bDoNotRunInside && Natives::IsInteriorScene(); if (!FusionFixSettings.Get("PREF_SPRINT")) // toggle { @@ -70,12 +71,12 @@ public: static raw_mem GamepadCB(pattern.get_first(0), { 0x90, 0x90 }); // NOP FusionFixSettings.SetCallback("PREF_ALWAYSRUN", [](int32_t value) { - if ((value == FusionFixSettings.AlwaysRunText.eMO_ON) || (value == FusionFixSettings.AlwaysRunText.eOutside)) + if (value) GamepadCB.Write(); else GamepadCB.Restore(); }); - if ((FusionFixSettings("PREF_ALWAYSRUN") == FusionFixSettings.AlwaysRunText.eMO_ON) || (FusionFixSettings("PREF_ALWAYSRUN") == FusionFixSettings.AlwaysRunText.eOutside)) + if (FusionFixSettings("PREF_ALWAYSRUN")) GamepadCB.Write(); }; } diff --git a/source/settings.ixx b/source/settings.ixx index 0a540e33..3a634319 100644 --- a/source/settings.ixx +++ b/source/settings.ixx @@ -155,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", "", 0, nullptr, 0, 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 }, @@ -165,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", 5, nullptr, AlwaysRunText.eMO_OFF, std::distance(std::begin(AlwaysRunText.data), std::end(AlwaysRunText.data)) - 1 }, }; auto i = firstCustomID; @@ -383,12 +383,6 @@ public: std::vector data = { "Low", "Medium", "High", "Very High", "Highest", "MO_OFF", "FXAA", "SMAA" }; } AntialiasingText; - struct - { - enum eAlwaysRunText { eOff, eLow, eMedium, eHigh, eVeryHigh, eMO_OFF, eMO_ON, eOutside }; - std::vector data = { "Off", "Low", "Medium", "High", "Very High", "MO_OFF", "MO_ON", "Outside" }; - } AlwaysRunText; - } FusionFixSettings; class Settings