Verified patches in 1.6.1170 and 1.6.1179
This commit is contained in:
parent
8f4b2bfc64
commit
60ddce5e36
@ -126,7 +126,7 @@ auto EventListener::ProcessEvent(
|
|||||||
const RE::BGSListForm* formList = dataHandler ? dataHandler->LookupForm<RE::BGSListForm>(0x44EE4, "Skyrim.esm") : nullptr;
|
const RE::BGSListForm* formList = dataHandler ? dataHandler->LookupForm<RE::BGSListForm>(0x44EE4, "Skyrim.esm") : nullptr;
|
||||||
|
|
||||||
if (formList && formList->HasForm(spellFormID)) {
|
if (formList && formList->HasForm(spellFormID)) {
|
||||||
SKSE::ModCallbackEvent modEvent{ "Enderal_UnlockSpellHit", "", spellFormID, containerRef };
|
SKSE::ModCallbackEvent modEvent{ "Enderal_UnlockSpellHit", "", (float)spellFormID, containerRef };
|
||||||
SKSE::GetModCallbackEventSource()->SendEvent(&modEvent);
|
SKSE::GetModCallbackEventSource()->SendEvent(&modEvent);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@ namespace AchievementFix
|
|||||||
if (REL::Module::IsVR()) {
|
if (REL::Module::IsVR()) {
|
||||||
target = REL::Offset(0x17FB90);
|
target = REL::Offset(0x17FB90);
|
||||||
} else if (REL::Module::get().version() >= REL::Version(1, 6, 1130, 0)) {
|
} else if (REL::Module::get().version() >= REL::Version(1, 6, 1130, 0)) {
|
||||||
// Checked: 1.6.1130
|
// Checked: 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
target = REL::ID(441528);
|
target = REL::ID(441528);
|
||||||
} else {
|
} else {
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659
|
// Checked: 1.5.97, 1.6.640, 1.6.659
|
||||||
|
@ -35,7 +35,7 @@ namespace BinkInterruptPatch
|
|||||||
|
|
||||||
void Install()
|
void Install()
|
||||||
{
|
{
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(87890, 90259), REL::Relocate(0x22, 0x21) };
|
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(87890, 90259), REL::Relocate(0x22, 0x21) };
|
||||||
SKSE::AllocTrampoline(14);
|
SKSE::AllocTrampoline(14);
|
||||||
BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk);
|
BinkListener::func = SKSE::GetTrampoline().write_call<5>(target.address(), BinkListener::thunk);
|
||||||
|
@ -45,7 +45,7 @@ private:
|
|||||||
void static OpenJournal(bool a_bool)
|
void static OpenJournal(bool a_bool)
|
||||||
{
|
{
|
||||||
using func_t = decltype(&OpenJournal);
|
using func_t = decltype(&OpenJournal);
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<func_t> func{ REL::VariantID(52428, 53327, 0x92F0F0) };
|
REL::Relocation<func_t> func{ REL::VariantID(52428, 53327, 0x92F0F0) };
|
||||||
func(a_bool);
|
func(a_bool);
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ namespace FlatMapMarkers
|
|||||||
|
|
||||||
inline void Install()
|
inline void Install()
|
||||||
{
|
{
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<std::uintptr_t> offset{ REL::RelocationID(52224, 53111), REL::Relocate(0x22F, 0x21F) };
|
REL::Relocation<std::uintptr_t> offset{ REL::RelocationID(52224, 53111), REL::Relocate(0x22F, 0x21F) };
|
||||||
SKSE::AllocTrampoline(14);
|
SKSE::AllocTrampoline(14);
|
||||||
SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3);
|
SKSE::GetTrampoline().write_call<5>(offset.address(), &Hook_WorldPtToScreenPt3);
|
||||||
|
@ -32,7 +32,7 @@ void HeroMenuPatch::Install()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Patch the Quick Stats hotkey to open the menu
|
// Patch the Quick Stats hotkey to open the menu
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(51400, 52249), REL::Relocate(0x41E, 0x421) };
|
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(51400, 52249), REL::Relocate(0x41E, 0x421) };
|
||||||
REL::safe_fill(target.address(), REL::NOP, 45);
|
REL::safe_fill(target.address(), REL::NOP, 45);
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ namespace MapMarkerPlacement
|
|||||||
void InstallPlacementDiscoveredFix()
|
void InstallPlacementDiscoveredFix()
|
||||||
{
|
{
|
||||||
// Place a marker, if a location has been discovered and fast travel is disabled
|
// Place a marker, if a location has been discovered and fast travel is disabled
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(52208, 53095), REL::Relocate(0x2C5, 0x328, 0x358) };
|
REL::Relocation<std::uintptr_t> target{ REL::RelocationID(52208, 53095), REL::Relocate(0x2C5, 0x328, 0x358) };
|
||||||
SKSE::AllocTrampoline(14);
|
SKSE::AllocTrampoline(14);
|
||||||
IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk);
|
IsFastTravelEnabled::func = SKSE::GetTrampoline().write_call<5>(target.address(), IsFastTravelEnabled::thunk);
|
||||||
@ -32,7 +32,7 @@ namespace MapMarkerPlacement
|
|||||||
void InstallPlacementUndiscoveredFix()
|
void InstallPlacementUndiscoveredFix()
|
||||||
{
|
{
|
||||||
// Place a marker without asking, if a location isn't discovered yet
|
// Place a marker without asking, if a location isn't discovered yet
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<std::uintptr_t> target2{ REL::RelocationID(52208, 53095), REL::Relocate(0x17A, 0x183) };
|
REL::Relocation<std::uintptr_t> target2{ REL::RelocationID(52208, 53095), REL::Relocate(0x17A, 0x183) };
|
||||||
std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1
|
std::uint8_t code[] = { 0xB0, 0x01, REL::NOP, REL::NOP, REL::NOP }; // mov al,0x1
|
||||||
REL::safe_write(target2.address(), code, sizeof(code));
|
REL::safe_write(target2.address(), code, sizeof(code));
|
||||||
|
@ -11,7 +11,7 @@ private:
|
|||||||
static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index)
|
static void OpenMenu(RE::IMenu* tweenMenu, std::int32_t index)
|
||||||
{
|
{
|
||||||
using func_t = decltype(&OpenMenu);
|
using func_t = decltype(&OpenMenu);
|
||||||
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<func_t> func{ REL::VariantID(51845, 52718, 0x8FE7E0) };
|
REL::Relocation<func_t> func{ REL::VariantID(51845, 52718, 0x8FE7E0) };
|
||||||
return func(tweenMenu, index);
|
return func(tweenMenu, index);
|
||||||
}
|
}
|
||||||
|
@ -180,6 +180,7 @@ inline void CloseTweenMenu()
|
|||||||
{
|
{
|
||||||
if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) {
|
if (RE::UI::GetSingleton()->IsMenuOpen(RE::TweenMenu::MENU_NAME)) {
|
||||||
using func_t = decltype(&CloseTweenMenu);
|
using func_t = decltype(&CloseTweenMenu);
|
||||||
|
// Checked: 1.5.97, 1.6.640, 1.6.659, 1.6.1130, 1.6.1170, 1.6.1179
|
||||||
REL::Relocation<func_t> func{ REL::VariantID(51839, 52711, 0x8FE180) };
|
REL::Relocation<func_t> func{ REL::VariantID(51839, 52711, 0x8FE180) };
|
||||||
func();
|
func();
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user