Skip to content

Commit

Permalink
preliminary address update for 1.6.1126
Browse files Browse the repository at this point in the history
  • Loading branch information
ianpatt committed Nov 30, 2023
1 parent 971babc commit 368d9eb
Show file tree
Hide file tree
Showing 80 changed files with 6,878 additions and 7,135 deletions.
4 changes: 2 additions & 2 deletions cmake/versioning.cmake
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
set(SKSE_VERSION_MAJOR 2)
set(SKSE_VERSION_MINOR 2)
set(SKSE_VERSION_PATCH 3)
set(SKSE_VERSION_PATCH 4)

set(RUNTIME_VERSION_MAJOR 1)
set(RUNTIME_VERSION_MINOR 6)
set(RUNTIME_VERSION_PATCH 640)
set(RUNTIME_VERSION_PATCH 1126)
set(RUNTIME_VERSION_TYPE 0)

math(
Expand Down
2 changes: 1 addition & 1 deletion scripts/modified/SKSE.psc
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ int Function GetVersionRelease() global native
; get the release index of this script file.
; Can be used to detect a script/runtime version mismatch
int Function GetScriptVersionRelease() global
return 69
return 70
endFunction

; get a plugins version number, -1 if the plugin is not loaded
Expand Down
2 changes: 1 addition & 1 deletion skse64/BSModelDB.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#include "skse64/BSModelDB.h"

// 206875324DD3C045FB854CB2889AFBCA94C7790B+89
RelocPtr <BSModelDB::BSModelProcessor*> g_TESProcessor(0x01F5D910);
RelocPtr <BSModelDB::BSModelProcessor*> g_TESProcessor(0x020EE800);
4 changes: 2 additions & 2 deletions skse64/BSModelDB.h
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,8 @@ class BSModelDB

MEMBER_FN_PREFIX(TESProcessor);
// find from ??_7BSModelProcessor@BSModelDB@@6B@
DEFINE_MEMBER_FN(dtor, void, 0x00D78120);
DEFINE_MEMBER_FN(Impl_Process, void, 0x0018CDE0, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut);
DEFINE_MEMBER_FN(dtor, void, 0x00DFEBC0);
DEFINE_MEMBER_FN(Impl_Process, void, 0x001CC100, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut);
};
};

Expand Down
14 changes: 7 additions & 7 deletions skse64/GameAPI.cpp
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
#include "skse64/GameAPI.h"

// 4265A365BEE4B4196639CF9FCCF3C445CEC4DBFD+1B
RelocPtr <Main*> g_main(0x02FC17E0);
RelocPtr <Main*> g_main(0x0316DF58);

// CFBAE5ABDAD102C91A5CD32DE6F45A70A6EC7561+80
RelocPtr <Heap> g_mainHeap(0x01F56F80);
// B05BDE2B512930D17FC7064CCC201FEE897AA475+44
RelocPtr <Heap> g_mainHeap(0x035D7E70);

// 338B95DD01390309C6CF7F96A08D629A564D0A48+5D
RelocPtr <ConsoleManager *> g_console(0x02F99D00);
RelocPtr <ConsoleManager *> g_console(0x0312ABE0);

// 4D7631B98BE6AABD42229719E0D837E677A24FB5+CF
RelocPtr <UInt32> g_consoleHandle(0x02FE7324);
RelocPtr <UInt32> g_consoleHandle(0x03193A04);

// 3DD6796A3BFE73B35604DD47E8677156AEBD4360+20
RelocPtr <UInt32> g_TlsIndexPtr(0x03531718);
RelocPtr <UInt32> g_TlsIndexPtr(0x035D74F8);

// 14BE6944D5E0E54959DE86FE65045CCEBBC65E31+6
RelocPtr <PlayerCharacter*> g_thePlayer(0x02FC1B78);
RelocPtr <PlayerCharacter*> g_thePlayer(0x0316E198);

void * Heap_Allocate(size_t size)
{
Expand Down
6 changes: 3 additions & 3 deletions skse64/GameAPI.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ class Heap
{
public:
MEMBER_FN_PREFIX(Heap);
DEFINE_MEMBER_FN(Allocate, void *, 0x00C39940, size_t size, size_t alignment, bool aligned);
DEFINE_MEMBER_FN(Free, void, 0x00C39D90, void * buf, bool aligned);
DEFINE_MEMBER_FN(Allocate, void *, 0x00CBF170, size_t size, size_t alignment, bool aligned);
DEFINE_MEMBER_FN(Free, void, 0x00CBF5C0, void * buf, bool aligned);
};

extern RelocPtr <Heap> g_mainHeap;
Expand All @@ -35,7 +35,7 @@ class ConsoleManager
{
public:
MEMBER_FN_PREFIX(ConsoleManager);
DEFINE_MEMBER_FN(VPrint, void, 0x0089B9B0, const char * fmt, va_list args);
DEFINE_MEMBER_FN(VPrint, void, 0x008F9520, const char * fmt, va_list args);
// DEFINE_MEMBER_FN(Print, void, 0x001D2050, const char * str);
};

Expand Down
4 changes: 2 additions & 2 deletions skse64/GameBSExtraData.h
Original file line number Diff line number Diff line change
Expand Up @@ -257,10 +257,10 @@ class BaseExtraList
private:
MEMBER_FN_PREFIX(BaseExtraList);
// A7985F15034C77C00ACC57607F29F4802502A1BA+2F
DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x0011B240, bool isEquipped);
DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x00159A30, bool isEquipped);
// This also does some internal ReferenceHandle lookup
//
DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0011F020);
DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0015D810);
};

typedef tList<BaseExtraList> ExtendDataList;
Expand Down
10 changes: 5 additions & 5 deletions skse64/GameCamera.h
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ class TESCamera
UInt8 pad31[7]; // 31

MEMBER_FN_PREFIX(TESCamera);
DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x005115E0, TESCameraState * cameraState);
DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x00551070, TESCameraState * cameraState);
};
STATIC_ASSERT(offsetof(TESCamera, cameraNode) == 0x20);
STATIC_ASSERT(sizeof(TESCamera) == 0x38);
Expand Down Expand Up @@ -297,8 +297,8 @@ class LocalMapCamera : public TESCamera
void SetDefaultStateBounds(float x, float y, float z);

MEMBER_FN_PREFIX(LocalMapCamera);
DEFINE_MEMBER_FN(ctor, void, 0x00202C70);
DEFINE_MEMBER_FN(SetNorthRotation, void, 0x002030C0, float northRotation);
DEFINE_MEMBER_FN(ctor, void, 0x00242460);
DEFINE_MEMBER_FN(SetNorthRotation, void, 0x002428B0, float northRotation);
};

STATIC_ASSERT(offsetof(LocalMapCamera, northRotation) == 0x60);
Expand Down Expand Up @@ -340,7 +340,7 @@ class PlayerCamera : public TESCamera
static PlayerCamera * GetSingleton(void)
{
// 8737E3612AB5A303F82C06809C0B0B41B2015C66+1E
static RelocPtr<PlayerCamera*> g_playerCamera(0x02F5F608);
static RelocPtr<PlayerCamera*> g_playerCamera(0x030F04F8);
return *g_playerCamera;
}

Expand Down Expand Up @@ -380,7 +380,7 @@ class PlayerCamera : public TESCamera
UInt8 pad166[2]; // 166

MEMBER_FN_PREFIX(PlayerCamera);
DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x0088B8E0, bool weaponDrawn);
DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x008E5B50, bool weaponDrawn);
};

STATIC_ASSERT(offsetof(PlayerCamera, cameraStates) == 0xB8);
Expand Down
55 changes: 28 additions & 27 deletions skse64/GameData.cpp
Original file line number Diff line number Diff line change
@@ -1,65 +1,66 @@
#include "skse64/GameData.h"

// 9615953AF64D4A2EB76F7BDE0F38D30B311B1351+40
RelocAddr <UInt32*> g_gameTime(0x03006810);
RelocAddr <UInt32*> g_gameTime(0x031B2F50);

// B8860AA646A4AA64DB8D5C6EDA306FC6B59F1B9B+5B
RelocPtr <DataHandler *> g_dataHandler(0x01F58138);
RelocPtr <DataHandler *> g_dataHandler(0x020E9020);

// 5F417CF4D2EB33C7D6903EA38BB5CDDEF48A6F83+4B
RelocPtr <PersistentFormManager *> g_persistentFormManager(0x01F587E8);
RelocPtr <PersistentFormManager *> g_persistentFormManager(0x020E96C8);

// EC410889481EE7B9DC4B6D7A707FA41B72CDCE48+4
RelocPtr <FaceGen *> g_faceGen(0x01F58840);
RelocPtr <FaceGen *> g_faceGen(0x020E9720);

// F22C9BC54C962ED86B36585C0EC0E729DCA18000+26
RelocPtr<MagicFavorites *> g_MagicFavorites(0x02FC13B0);
RelocPtr<MagicFavorites *> g_MagicFavorites(0x03161858);

// 6C8AEF51A6996BA6DC317E92014FCC446B5DBC17+25
RelocPtr<MenuTopicManager *> g_MenuTopicManager(0x02F99598);
RelocPtr<MenuTopicManager *> g_MenuTopicManager(0x0312A478);

// 5ED03BBC1845C7394493F8FAA1DE8C7AEB3E2350+2A
RelocPtr <ActorValueList *> g_actorValueList(0x01F58128);
RelocPtr <ActorValueList *> g_actorValueList(0x020E9010);

// aWerewolfSpell
RelocPtr <DefaultObjectList> g_defaultObjectList(0x01E48F50);
RelocPtr <DefaultObjectList> g_defaultObjectList(0x01FCBF50);

// 68BF756333EF751059E935236F381FA91F62C373+22
RelocPtr <BGSSaveLoadManager *> g_saveLoadManager(0x02FC13C8);
RelocPtr <BGSSaveLoadManager *> g_saveLoadManager(0x03161870);

// 3B74AA860AC42F1080FAF792E4BE1D3BF0E0EFEE+47
RelocPtr <MiscStatManager> g_MiscStatManager(0x02F5F128);
RelocPtr <MiscStatManager> g_MiscStatManager(0x030F0018);

// A9D0A72CC9E5F85E2169118F999943FD43AF51EA+95
RelocPtr <EquipManager *> g_equipManager(0x02F5E488);
RelocPtr <EquipManager *> g_equipManager(0x030EF378);

// FBC6C0FB3A858D20081F5FF9CB3E780E59DCE52F+50
RelocPtr <RelationshipRanks> g_relationshipRanks(0x01E66FE8);

RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x003F69C0);
RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x004361C0);
//
RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00348E50);
RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x003888A0);
//
RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00348E40);
RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00388890);
//
RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00348E30);
RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x003FC5A0);
RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x008F61F0);
RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x003820E0);
RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x00382170);
RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00388880);
RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x0043BDB0);
RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x00954C10);
RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x003C1B50);
RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x003C1BE0);

RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x003F5820);
RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x00435020);

RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x003F6CF0); // Applies tint to ShaderType 5 nodes
RelocAddr<_UpdateModelHair> UpdateModelHair(0x003F6E00); // Applies tint to ShaderType 6 nodes
RelocAddr<_UpdateModelFace> UpdateModelFace(0x003F6360);
RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001A9FA0);
RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x004364F0); // Applies tint to ShaderType 5 nodes
RelocAddr<_UpdateModelHair> UpdateModelHair(0x00436600); // Applies tint to ShaderType 6 nodes
RelocAddr<_UpdateModelFace> UpdateModelFace(0x00435B60);
RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001E9360);

RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0035E1E0);
RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0039DC50);

RelocPtr<FacePresetList> g_facePresetList(0x01E69370); // aNosetype
// 63503D87B68DB4A4C8A2BE534A75246035A76798+82
RelocPtr<FacePresetList> g_facePresetList(0x01FEC470); // aNosetype

RelocAddr<_HasLOS> HasLOS(0x0095B970);
RelocAddr<_HasLOS> HasLOS(0x009BA250);

class LoadedModFinder
{
Expand Down
36 changes: 18 additions & 18 deletions skse64/GameData.h
Original file line number Diff line number Diff line change
Expand Up @@ -361,7 +361,7 @@ class DataHandler
UInt32 LoadScripts_Hook();

MEMBER_FN_PREFIX(DataHandler);
DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x0017DAD0);
DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x001BCAD0);
};

STATIC_ASSERT(offsetof(DataHandler, regionList) == 0xD00);
Expand Down Expand Up @@ -410,8 +410,8 @@ class EquipManager
static EquipManager * GetSingleton(void);

MEMBER_FN_PREFIX(EquipManager);
DEFINE_MEMBER_FN(EquipItem, void, 0x0066FA20, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk);
DEFINE_MEMBER_FN(UnequipItem, bool, 0x00670210, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool unkFlag1, bool preventEquip, bool unkFlag2, bool unkFlag3, void * unk);
DEFINE_MEMBER_FN(EquipItem, void, 0x006C9B20, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk);
DEFINE_MEMBER_FN(UnequipItem, bool, 0x006CA310, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool unkFlag1, bool preventEquip, bool unkFlag2, bool unkFlag3, void * unk);
};


Expand Down Expand Up @@ -491,8 +491,8 @@ class FaceGen
{
public:
MEMBER_FN_PREFIX(MorphDatabase);
DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x003EF370, const char * meshPath, BSFaceGenModelMap ** entry);
DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x003EF220, const char * meshPath, BSFaceGenModel * model);
DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x0042EB70, const char * meshPath, BSFaceGenModelMap ** entry);
DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x0042EA20, const char * meshPath, BSFaceGenModel * model);

UInt64 unk00; // 00
UInt32 unk08; // 08
Expand Down Expand Up @@ -527,8 +527,8 @@ class FaceGen
UInt8 pad61[7]; // 61

MEMBER_FN_PREFIX(FaceGen);
DEFINE_MEMBER_FN(RegenerateHead, void, 0x003EC4A0, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc);
DEFINE_MEMBER_FN(ApplyMorph, void, 0x003EBDA0, BSFaceGenNiNode* faceGenNode, BGSHeadPart* headPart, BSFixedString* morphName, float relative);
DEFINE_MEMBER_FN(RegenerateHead, void, 0x0042BCA0, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc);
DEFINE_MEMBER_FN(ApplyMorph, void, 0x0042B5A0, BSFaceGenNiNode* faceGenNode, BGSHeadPart* headPart, BSFixedString* morphName, float relative);
};
STATIC_ASSERT(offsetof(FaceGen, isReset) == 0x58);

Expand Down Expand Up @@ -674,11 +674,11 @@ class PersistentFormManager
}

MEMBER_FN_PREFIX(PersistentFormManager);
DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x005D2D00, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x005D2DA0, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreatePoison, void, 0x005D2EF0, tArray<MagicItem::EffectItem> * effectArray, AlchemyItem ** poison);
DEFINE_MEMBER_FN(CreatePotion, void, 0x005D2E40, AlchemyItem ** potion, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x005D3220, TESForm *);
DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x0062C800, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x0062C8A0, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreatePoison, void, 0x0062C9F0, tArray<MagicItem::EffectItem> * effectArray, AlchemyItem ** poison);
DEFINE_MEMBER_FN(CreatePotion, void, 0x0062C940, AlchemyItem ** potion, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x0062CD20, TESForm *);
};
STATIC_ASSERT(sizeof(PersistentFormManager) == 0xD0);

Expand Down Expand Up @@ -862,14 +862,14 @@ class BGSSaveLoadManager
UInt8 unk370[0x60]; // 370 - TODO: .?AV?$BSTCommonStaticMessageQueue@V?$BSTSmartPointer@VRequest@saveload@bgs@@UBSTSmartPointerIntrusiveRefCount@@@@$07@@

private:
DEFINE_MEMBER_FN(Save_Internal, bool, 0x005BA170, int unk1, UInt32 unk2, const char * name);
DEFINE_MEMBER_FN(Load_Internal, bool, 0x005BA8B0, const char * name, int unk1, UInt32 unk2, UInt32 unk3);
DEFINE_MEMBER_FN(Save_Internal, bool, 0x0060FEE0, int unk1, UInt32 unk2, const char * name);
DEFINE_MEMBER_FN(Load_Internal, bool, 0x00610620, const char * name, int unk1, UInt32 unk2, UInt32 unk3);

DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x005B00E0, UInt64 *unk0);
DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x005B07F0, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3);
DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x00605A00, UInt64 *unk0);
DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x00606110, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3);

DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x005BD420);
DEFINE_MEMBER_FN(DeleteSavegame, void, 0x005BA100, const char * saveName, UInt32 unk1);
DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x00613250);
DEFINE_MEMBER_FN(DeleteSavegame, void, 0x0060FE70, const char * saveName, UInt32 unk1);
};
STATIC_ASSERT(offsetof(BGSSaveLoadManager, thread) == 0x2B0);
STATIC_ASSERT(offsetof(BGSSaveLoadManager::Thread, hThread) == 0x30);
Expand Down
2 changes: 1 addition & 1 deletion skse64/GameEvents.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include "GameEvents.h"

// 614D2151B14D0D61E7DA7088CAB85DB111E2E0D3+1B
RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x00195E20);
RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x001D5140);

//EventDispatcher<BGSFootstepEvent>* g_footstepEventDispatcher = (EventDispatcher<BGSFootstepEvent>*) 0x01B2E9C0;

Expand Down
6 changes: 3 additions & 3 deletions skse64/GameEvents.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ class EventDispatcher
// Note: in SE there are multiple identical copies of all these functions
MEMBER_FN_PREFIX(EventDispatcher);
// 9FCA8C7632C2FC6D6E342E554B43402121BC4E44+66
DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x0058F4E0, SinkT * eventSink);
DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x005DBFB0, SinkT * eventSink);
// ??_7BGSProcedureShoutExecState@@6B@ xref +21 last call
DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0043E990, SinkT * eventSink);
DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0047E220, SinkT * eventSink);
// FB59C2DDF89F5248DF43230E39A6FECF8C997BA6+466
DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x001839D0, EventArgT * evn);
DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x001C29F0, EventArgT * evn);

public:

Expand Down
28 changes: 14 additions & 14 deletions skse64/GameExtraData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,33 +6,33 @@
#include "HashUtil.h"

// ??_7ExtraHealth@@6B@
const RelocPtr<uintptr_t> s_ExtraHealthVtbl(0x01622A90);
const RelocPtr<uintptr_t> s_ExtraHealthVtbl(0x017668F0);
// ??_7ExtraCharge@@6B@
const RelocPtr<uintptr_t> s_ExtraChargeVtbl(0x01622AF0);
const RelocPtr<uintptr_t> s_ExtraChargeVtbl(0x01766950);
// ??_7ExtraCount@@6B@
const RelocPtr<uintptr_t> s_ExtraCountVtbl(0x01622A10);
const RelocPtr<uintptr_t> s_ExtraCountVtbl(0x01766870);
// ??_7ExtraTextDisplayData@@6B@
const RelocPtr<uintptr_t> s_ExtraTextDisplayVtbl(0x01623510);
const RelocPtr<uintptr_t> s_ExtraTextDisplayVtbl(0x01767370);
// ??_7ExtraSoul@@6B@
const RelocPtr<uintptr_t> s_ExtraSoulVtbl(0x01626260);
const RelocPtr<uintptr_t> s_ExtraSoulVtbl(0x0176A0C0);
// ??_7ExtraOwnership@@6B@
const RelocPtr<uintptr_t> s_ExtraOwnershipVtbl(0x016229B0);
const RelocPtr<uintptr_t> s_ExtraOwnershipVtbl(0x01766810);
// ??_7ExtraAliasInstanceArray@@6B@
const RelocPtr<uintptr_t> s_ExtraAliasInstanceArrayVtbl(0x016233D0);
const RelocPtr<uintptr_t> s_ExtraAliasInstanceArrayVtbl(0x01767230);
// ??_7ExtraCannotWear@@6B@
const RelocPtr<uintptr_t> s_ExtraCannotWearVtbl(0x01622A70);
const RelocPtr<uintptr_t> s_ExtraCannotWearVtbl(0x017668D0);
// ??_7ExtraHotkey@@6B@
const RelocPtr<uintptr_t> s_ExtraHotkeyVtbl(0x01622B50);
const RelocPtr<uintptr_t> s_ExtraHotkeyVtbl(0x017669B0);
// ??_7ExtraForcedTarget@@6B@
const RelocPtr<uintptr_t> s_ExtraForcedTargetVtbl(0x01623590);
const RelocPtr<uintptr_t> s_ExtraForcedTargetVtbl(0x017673F0);
// ??_7ExtraReferenceHandle@@6B@
const RelocPtr<uintptr_t> s_ExtraReferenceHandleVtbl(0x01622B90);
const RelocPtr<uintptr_t> s_ExtraReferenceHandleVtbl(0x017669F0);
// ??_7ExtraEnchantment@@6B@
const RelocPtr<uintptr_t> s_ExtraEnchantmentVtbl(0x01622EB0);
const RelocPtr<uintptr_t> s_ExtraEnchantmentVtbl(0x01766D10);
// ??_7ExtraRank@@6B@
const RelocPtr<uintptr_t> s_ExtraRankVtbl(0x016229F0);
const RelocPtr<uintptr_t> s_ExtraRankVtbl(0x01766850);
// ??_7ExtraUniqueID@@6B@
const RelocPtr<uintptr_t> s_ExtraUniqueIdVtbl(0x016235D0);
const RelocPtr<uintptr_t> s_ExtraUniqueIdVtbl(0x01767430);

ExtraHealth* ExtraHealth::Create()
{
Expand Down
Loading

0 comments on commit 368d9eb

Please sign in to comment.