Skip to content

Instantly share code, notes, and snippets.

@Nukem9
Created August 26, 2019 07:55
Show Gist options
  • Save Nukem9/4ef8acde50ada2d7399ba51ebb923ba2 to your computer and use it in GitHub Desktop.
Save Nukem9/4ef8acde50ada2d7399ba51ebb923ba2 to your computer and use it in GitHub Desktop.
const uintptr_t TESForm_Vtables[] =
{
0x010939EC,
0x0103195C,
0x0103168C,
0x0103140C,
0x0104D5B4,
0x0104D19C,
0x01044FFC,
0x0104CC0C,
0x0104BA24,
0x0102397C,
0x010369DC,
0x01036B2C,
0x0104B4BC,
0x0104AC44,
0x0106847C,
0x0102C51C,
0x0102BC94,
0x0102BA2C,
0x0102F55C,
0x0102B844,
0x01028EE4,
0x0102DCD4,
0x0102B5AC,
0x0102B1FC,
0x0102AEB4,
0x0102AC0C,
0x0102E9B4,
0x0102A9C4,
0x0102A62C,
0x0102A31C,
0x0102A0A4,
0x01029D5C,
0x01029B1C,
0x0104A2F4,
0x01036854,
0x010366CC,
0x01028C5C,
0x01028A64,
0x0102886C,
0x0102864C,
0x0102E6C4,
0x01028444,
0x0102D97C,
0x0102D7F4,
0x01049D0C,
0x01049B9C,
0x0102814C,
0x01036524,
0x01026D0C,
0x01026A4C,
0x01026BD0,
0x010498DC,
0x0104973C,
0x0102685C,
0x01048F5C,
0x010266E4,
0x0102D5C4,
0x01048BB4,
0x0104891C,
0x010263DC,
0x01026574,
0x010349B4,
0x01034B4C,
0x0103478C,
0x01029994,
0x0102960C,
0x0102980C,
0x0103449C,
0x01026064,
0x010492AC,
0x01013F8C,
0x0109381C,
0x01093674,
0x01037094,
0x010900DC,
0x0108AA3C,
0x0106BB8C,
0x0106A0B4,
0x0108A49C,
0x0108FA44,
0x010342EC,
0x010340C4,
0x0107B8C4,
0x0107B394,
0x01011B4C,
0x01013044,
0x0107AD84,
0x0107A8F4,
0x0107A554,
0x01013284,
0x0108F674,
0x010931E4,
0x0108F2F4,
0x0108EE04,
0x01012EA4,
0x01012834,
0x01092F6C,
0x010870AC,
0x0108EA64,
0x0108CE74,
0x01086A6C,
0x0108C3C4,
0x01092D84,
0x0104733C,
0x01033D1C,
0x01025914,
0x01025594,
0x0102535C,
0x010116FC,
0x010470EC,
0x01033B34,
0x010251AC,
0x01024F4C,
0x01046EC4,
0x01046874,
0x0103397C,
0x01024CEC,
0x01024E70,
0x01024E84,
0x010337C4,
0x01033654,
0x010334B4,
0x0102CD94,
0x0103323C,
0x01032F6C,
0x0104664C,
0x010115B4,
0x010464B4,
0x01024A94,
0x0102CBBC,
0x0101144C,
0x01032DC4,
0x01024834,
0x010245A4,
0x010327F4,
0x0103245C,
0x01045504,
0x01024214,
0x010320FC,
0x01085954,
0x01011964,
0x01092BDC,
0x01067A2C,
0x01084254,
};
for (uint32_t i = 0; i < ARRAYSIZE(TESForm_Vtables); i++)
{
// Sanity check, certain ones like TESObjectCELL shouldn't be hooked
if (*(uintptr_t *)(TESForm_Vtables[i] + 0x90) == 0x004868F0)
WriteDword(TESForm_Vtables[i] + 0x90, &TESForm::hk_GetFullTypeName);
if (*(uintptr_t *)(TESForm_Vtables[i] + 0x130) == 0x00401280)
WriteDword(TESForm_Vtables[i] + 0x130, &TESForm::hk_GetName);
if (*(uintptr_t *)(TESForm_Vtables[i] + 0x130) == 0x0055D480)
WriteDword(TESForm_Vtables[i] + 0x130, &TESObjectREFR::hk_GetName);
if (*(uintptr_t *)(TESForm_Vtables[i] + 0x134) == 0x00401290)
WriteDword(TESForm_Vtables[i] + 0x134, &TESForm::hk_SetEditorId);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment