diff --git a/source/episodiccontent.ixx b/source/episodiccontent.ixx index 8eeaa655..25f5f77e 100644 --- a/source/episodiccontent.ixx +++ b/source/episodiccontent.ixx @@ -32,7 +32,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 8C ? ? ? ? 0F BF 46 2E 3B 05 ? ? ? ? 74 0C 3B 05 ? ? ? ? 0F 85 ? ? ? ? 85 7E 28"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 27"); // apc drive by lock if (!pattern.empty()) @@ -40,7 +40,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 26 8B 85"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 37"); // apc lights if (!pattern.empty()) @@ -48,7 +48,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 35"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 22"); // apc cannon sounds if (!pattern.empty()) @@ -56,7 +56,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 57 7C 22"); injector::MakeNOP(pattern.get_first(8), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? F3 0F 10 0D ? ? ? ? F3 0F 11 4C 24 ? 75 14"); // apc cannon on impact sounds if (!pattern.empty()) @@ -64,7 +64,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? F3 0F 10 05 ? ? ? ? F3 0F 11 44 24 ? 75 4C"); injector::MakeNOP(pattern.get_first(21), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 08 3B 05"); // APC respray if (!pattern.empty()) @@ -76,7 +76,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 57 83 F8 02"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 1B 8B 46 40"); // CExplosions__addExplosion disable ped rolling on any explosive from aa12/apc shots if (!pattern.empty()) @@ -84,7 +84,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 1B 8B 56 40"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("8B 1D ? ? ? ? 83 C4 04 83 FB 02"); // buzzard rocket particles if (!pattern.empty()) @@ -92,7 +92,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 43"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 1E"); // buzzard minigun particles if (!pattern.empty()) @@ -100,7 +100,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 1F"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 10 FF 76 18 E8 ? ? ? ? 83 C4 04 83 38 27 74 04"); // buzzard minigun particles if (!pattern.empty()) @@ -108,7 +108,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 11 8B 4E 18"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 10 FF 76 18 E8 ? ? ? ? 83 C4 04 83 38 27 74 07"); // BUZZARD rubble effects if (!pattern.empty()) @@ -116,7 +116,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 11 8B 4F 18"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 89 44 24 38"); // buzzard rockets sound and minigun sounds if (!pattern.empty()) @@ -132,7 +132,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 11 8B 46 18"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 48 3B 05"); // smuggler, floater, blade support if (!pattern.empty()) @@ -140,7 +140,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 5A 3B 05"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 54 3B 05 ? ? ? ? 75 19 8B CF"); // smuggler, floater, blade support if (!pattern.empty()) @@ -148,7 +148,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 2C 3B 05"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 3B 3B 05 ? ? ? ? 75 19"); // smuggler, floater, blade support if (!pattern.empty()) @@ -156,7 +156,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 28 3B 05 ? ? ? ? 74 C3"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 3B 3B 05 ? ? ? ? 74 08"); // smuggler, floater, blade support if (!pattern.empty()) @@ -164,7 +164,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 30 3B 05"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 54 3B 05 ? ? ? ? 75 19 8B CE"); // smuggler, floater, blade support if (!pattern.empty()) @@ -172,7 +172,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 28 3B 05 ? ? ? ? 74 82"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 2E 3B 05"); // smuggler if (!pattern.empty()) @@ -180,7 +180,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 32 3B 05"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 3A 3B 05 ? ? ? ? 75 0C C7 86 ? ? ? ? ? ? ? ? EB 26 3B 05 ? ? ? ? 75 0C C7 86 ? ? ? ? ? ? ? ? EB 12 3B 05 ? ? ? ? 75 0A C7 86 ? ? ? ? ? ? ? ? 8B CE E8 ? ? ? ? 83 3D ? ? ? ? ? 8B 45 1C"); // smuggler if (!pattern.empty()) @@ -188,7 +188,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 3C 3B 05 ? ? ? ? 75 0A F3 0F 10 05 ? ? ? ? EB 22 3B 05 ? ? ? ? 75 0A F3 0F 10 05 ? ? ? ? EB 10 3B 05 ? ? ? ? 75 10 F3 0F 10 05 ? ? ? ? F3 0F 11 86 ? ? ? ? 8B CE E8 ? ? ? ? 83 3D ? ? ? ? ? D9 44 24 10"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 3A 3B 05 ? ? ? ? 75 0C C7 86 ? ? ? ? ? ? ? ? EB 26 3B 05 ? ? ? ? 75 0C C7 86 ? ? ? ? ? ? ? ? EB 12 3B 05 ? ? ? ? 75 0A C7 86 ? ? ? ? ? ? ? ? 8B CE E8 ? ? ? ? 83 3D ? ? ? ? ? 8B 45 10"); // smuggler if (!pattern.empty()) @@ -196,7 +196,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 3C 3B 05 ? ? ? ? 75 0A F3 0F 10 05 ? ? ? ? EB 22 3B 05 ? ? ? ? 75 0A F3 0F 10 05 ? ? ? ? EB 10 3B 05 ? ? ? ? 75 10 F3 0F 10 05 ? ? ? ? F3 0F 11 86 ? ? ? ? 8B CE E8 ? ? ? ? 83 3D ? ? ? ? ? D9 EE"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 20 0F BF 46 2E"); // floater camera height if (!pattern.empty()) @@ -204,7 +204,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 20 0F BF 56 2E"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } } if (bEpisodicWeapons) @@ -215,7 +215,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 8C ? ? ? ? 8B 46 18"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 24"); // AA12 self damage if (!pattern.empty()) @@ -223,7 +223,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 21 8B 44 24 0C"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 21 83 F8 23"); // DSR1 scope if (!pattern.empty()) @@ -231,7 +231,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 32"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 5F 5E 5D"); // DSR1 scope hud if (!pattern.empty()) @@ -239,7 +239,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 5B 83 3D"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("85 C0 74 0D 83 7E 18 1C"); //pipe bomb drop hud if (!pattern.empty()) @@ -247,7 +247,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 74 1A 83 7D 18 1C"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 F8 02 75 24 8B CE E8 ? ? ? ? 84 C0 74 14"); // sticky bomb drop hud if (!pattern.empty()) @@ -255,7 +255,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 20 8B CD"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 75"); // sticky bomb activation if (!pattern.empty()) @@ -263,7 +263,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 7D"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 59 8B 07"); // sticky bomb planting animation freeze if (!pattern.empty()) @@ -271,7 +271,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 50 8B 06"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 47 4C"); // sticky bomb planting camera freeze if (!pattern.empty()) @@ -279,7 +279,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 46 4C"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 3C 8B 41 20"); // Sticky bomb faster throw in vehicle ?? if (!pattern.empty()) @@ -291,7 +291,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 7C 69"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("0F 8C ? ? ? ? 8B 44 24 14 83 78 18 24"); // Sticky bomb faster throw in vehicle if (!pattern.empty()) @@ -299,7 +299,7 @@ public: else { pattern = hook::pattern("0F 8C ? ? ? ? 83 7B 18 24"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 26 8B 4C 24 04"); // Sticky bomb something? if (!pattern.empty()) @@ -307,7 +307,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 29 8B 44 24 04"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 89 44 24 1C"); // Sticky bomb ??? if (!pattern.empty()) @@ -315,7 +315,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 88 44 24 1C"); injector::MakeNOP(pattern.get_first(11), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 1F 8B 44 24 0C"); // CTaskSimplePlayerAimProjectile::process if (!pattern.empty()) @@ -323,7 +323,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 1C 8B 47 18"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 07 68 ? ? ? ? EB 05 68 ? ? ? ? E8"); // E2 Bullet traces if (!pattern.empty()) @@ -335,7 +335,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 30 83 7E 14 19"); injector::MakeNOP(pattern.get_first(27), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 8B 3D ? ? ? ? F3 0F 10 05"); // Weapon sounds slow motion? if (!pattern.empty()) @@ -343,7 +343,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? F3 0F 10 15"); injector::MakeNOP(pattern.get_first(27), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 3D ? ? ? ? F3 0F 10 05"); // SHOTGUN_EXPLOSION if (!pattern.empty()) @@ -351,7 +351,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 7C"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 3D ? ? ? ? F3 0F 11 4C 24"); // GRENADE_EXPLOSION if (!pattern.empty()) @@ -359,7 +359,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 84 C0"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 22 83 F8 02"); // weap checks? nearby explosive weapon checks if (!pattern.empty()) @@ -371,7 +371,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 8C ? ? ? ? 83 7F 6C 20"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 7C 05"); // P90 get in car block if (!pattern.empty()) @@ -379,7 +379,7 @@ public: else { pattern = hook::pattern("39 35 ? ? ? ? 7C 05"); injector::MakeNOP(pattern.get_first(6), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 14 E8 ? ? ? ? 85 C0 74 0B"); // parachute anims if (!pattern.empty()) @@ -387,7 +387,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 14 E8 ? ? ? ? 3B C3"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 56 8B 74 24 0C"); // parachute extended camera if (!pattern.empty()) @@ -395,7 +395,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 8B 54 24 0C"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 57 C9"); // parachute wind sounds if (!pattern.empty()) @@ -403,7 +403,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 0A F3 0F 10 05 ? ? ? ? EB 03"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 0C 80 3D ? ? ? ? ? 74 03"); // Check if player had a parachute if (!pattern.empty()) @@ -419,7 +419,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 0D 80 7E 7D 00"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 5D 75 1E"); // Give parachute during load save if (!pattern.empty()) @@ -427,7 +427,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 75 1E E8"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 53 57 8B 7C 24 20"); // TBoGT counter anims fix if (!pattern.empty()) @@ -435,7 +435,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 53 55 8B 6C 24 20"); injector::MakeNOP(pattern.get_first(21), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 36 80 7B 28 00"); // TBoGT counter anims fix if (!pattern.empty()) @@ -443,7 +443,7 @@ public: else { pattern = hook::pattern("39 1D ? ? ? ? 75 2A 80 7F 28 00"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } } if (bExplosiveAnnihilator) @@ -454,7 +454,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 8C ? ? ? ? 85 FF"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } } if (bOtherEpisodicChecks) @@ -477,7 +477,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 8C ? ? ? ? 8B CF"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 75 0E 80 3D ? ? ? ? ? 74 05 E8"); // altimeter for parachute and helis if (!pattern.empty()) @@ -485,7 +485,7 @@ public: else { pattern = hook::pattern("39 35 ? ? ? ? 75 0E 80 3D"); injector::MakeNOP(pattern.get_first(6), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? DD D8"); // explosive sniper cheat if (!pattern.empty()) @@ -493,7 +493,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 39 9C 24"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 80 3D ? ? ? ? ? 0F 84 ? ? ? ? F3 0F 10 05"); // explosive fists cheat if (!pattern.empty()) @@ -501,7 +501,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 80 3D ? ? ? ? ? 0F 84 ? ? ? ? 6A FF"); injector::MakeNOP(pattern.get_first(7), 6, true); - } + } pattern = hook::pattern("83 F9 02 75 2E"); // E2_landing marker if (!pattern.empty()) @@ -509,7 +509,7 @@ public: else { pattern = hook::pattern("88 8C 24 ? ? ? ? 75 2F"); injector::MakeNOP(pattern.get_first(7), 2, true); - } + } pattern = hook::pattern("B8 ? ? ? ? 0F 44 E8 57"); // E2_landing marker if (!pattern.empty()) @@ -517,7 +517,7 @@ public: else { pattern = hook::pattern("BD ? ? ? ? 75 05"); injector::MakeNOP(pattern.get_first(5), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? BB ? ? ? ? B8"); // E2_landing marker if (!pattern.empty()) @@ -525,7 +525,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? BB ? ? ? ? 75 05"); injector::MakeNOP(pattern.get_first(12), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 0F 85 ? ? ? ? 66 83 3E 09"); // E2_landing marker if (!pattern.empty()) @@ -533,7 +533,7 @@ public: else { pattern = hook::pattern("39 3D ? ? ? ? 0F 85 ? ? ? ? 66 83 7E"); injector::MakeNOP(pattern.get_first(6), 6, true); - } + } } if (bTBoGTHelicopterHeightLimit) @@ -551,7 +551,7 @@ public: else { pattern = hook::pattern("39 2D ? ? ? ? 75 3E"); injector::MakeNOP(pattern.get_first(6), 2, true); - } + } pattern = hook::pattern("83 3D ? ? ? ? ? 6A 00 6A 00 6A 01 8D 8E ? ? ? ? 68 ? ? ? ? 75 04"); // m249 for swat in annihilators and helicopters if (!pattern.empty()) @@ -559,7 +559,7 @@ public: else { pattern = hook::pattern("83 3D ? ? ? ? ? 6A 00 6A 00 6A 01 8B CF 68 ? ? ? ? 75 04"); injector::MakeNOP(pattern.get_first(20), 2, true); - } + } } if (bRemoveSCOSignatureCheck) diff --git a/source/fixes.ixx b/source/fixes.ixx index 9b6f6f20..93a15dab 100644 --- a/source/fixes.ixx +++ b/source/fixes.ixx @@ -536,14 +536,17 @@ public: if (true) { auto pattern = find_pattern("8B 0D ? ? ? ? 8D 54 24 0C 52 6A 20 FF 35 ? ? ? ? A3"); - static auto dword_11A1B84 = *pattern.get_first(15); - static auto dword_11A1B80 = *pattern.get_first(26); - - static auto FixCascadedShadowMapResolution = safetyhook::create_mid(pattern.get_first(0), [](SafetyHookContext& regs) + if (!pattern.empty()) { - *dword_11A1B84 *= 2; - *dword_11A1B80 *= 2; - }); + static auto dword_11A1B84 = *pattern.get_first(15); + static auto dword_11A1B80 = *pattern.get_first(26); + + static auto FixCascadedShadowMapResolution = safetyhook::create_mid(pattern.get_first(0), [](SafetyHookContext& regs) + { + *dword_11A1B84 *= 2; + *dword_11A1B80 *= 2; + }); + } } }; }