Skip to content

Commit

Permalink
runtime 1.6.342
Browse files Browse the repository at this point in the history
  • Loading branch information
ianpatt committed Dec 14, 2021
1 parent 213d3b9 commit b01b00b
Show file tree
Hide file tree
Showing 83 changed files with 4,623 additions and 4,621 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 1)
set(SKSE_VERSION_PATCH 3)
set(SKSE_VERSION_PATCH 4)

set(RUNTIME_VERSION_MAJOR 1)
set(RUNTIME_VERSION_MINOR 6)
set(RUNTIME_VERSION_PATCH 323)
set(RUNTIME_VERSION_PATCH 342)

math(
EXPR
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(0x01F5E410);
RelocPtr <BSModelDB::BSModelProcessor*> g_TESProcessor(0x01F5F590);
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, 0x00D65600);
DEFINE_MEMBER_FN(Impl_Process, void, 0x0018B0F0, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut);
DEFINE_MEMBER_FN(dtor, void, 0x00D66610);
DEFINE_MEMBER_FN(Impl_Process, void, 0x0018B0C0, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut);
};
};

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

// CFBAE5ABDAD102C91A5CD32DE6F45A70A6EC7561+80
RelocPtr <Heap> g_mainHeap(0x01F57A80);
RelocPtr <Heap> g_mainHeap(0x01F58C00);

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

// 4D7631B98BE6AABD42229719E0D837E677A24FB5+CF
RelocPtr <UInt32> g_consoleHandle(0x02FE6FE4);
RelocPtr <UInt32> g_consoleHandle(0x02FE8234);

// 3DD6796A3BFE73B35604DD47E8677156AEBD4360+20
RelocPtr <UInt32> g_TlsIndexPtr(0x03531398);
RelocPtr <UInt32> g_TlsIndexPtr(0x03532618);

// 14BE6944D5E0E54959DE86FE65045CCEBBC65E31+6
RelocPtr <PlayerCharacter*> g_thePlayer(0x02FC19C8);
RelocPtr <PlayerCharacter*> g_thePlayer(0x02FC2B68);

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 @@ -8,8 +8,8 @@ class Heap
{
public:
MEMBER_FN_PREFIX(Heap);
DEFINE_MEMBER_FN(Allocate, void *, 0x00C26E20, size_t size, size_t alignment, bool aligned);
DEFINE_MEMBER_FN(Free, void, 0x00C27270, void * buf, bool aligned);
DEFINE_MEMBER_FN(Allocate, void *, 0x00C27E30, size_t size, size_t alignment, bool aligned);
DEFINE_MEMBER_FN(Free, void, 0x00C28280, void * buf, bool aligned);
};

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

Expand Down
6 changes: 3 additions & 3 deletions skse64/GameBSExtraData.h
Original file line number Diff line number Diff line change
Expand Up @@ -256,11 +256,11 @@ class BaseExtraList

private:
MEMBER_FN_PREFIX(BaseExtraList);
//
DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x001195B0, bool isEquipped);
// A7985F15034C77C00ACC57607F29F4802502A1BA+2F
DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x00119580, bool isEquipped);
// This also does some internal ReferenceHandle lookup
//
DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0011D390);
DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0011D360);
};

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, 0x0050F050, TESCameraState * cameraState);
DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x0050F1F0, 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, 0x00200F50);
DEFINE_MEMBER_FN(SetNorthRotation, void, 0x002013A0, float northRotation);
DEFINE_MEMBER_FN(ctor, void, 0x00200F40);
DEFINE_MEMBER_FN(SetNorthRotation, void, 0x00201390, 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(0x02F60108);
static RelocPtr<PlayerCamera*> g_playerCamera(0x02F61288);
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, 0x00879320, bool weaponDrawn);
DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x0087A4F0, bool weaponDrawn);
};

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

// 9615953AF64D4A2EB76F7BDE0F38D30B311B1351+40
RelocAddr <UInt32*> g_gameTime(0x030064D0);
RelocAddr <UInt32*> g_gameTime(0x03007710);

// B8860AA646A4AA64DB8D5C6EDA306FC6B59F1B9B+5B
RelocPtr <DataHandler *> g_dataHandler(0x01F58C28);
RelocPtr <DataHandler *> g_dataHandler(0x01F59DA8);

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

// EC410889481EE7B9DC4B6D7A707FA41B72CDCE48+4
RelocPtr <FaceGen *> g_faceGen(0x01F59340);
RelocPtr <FaceGen *> g_faceGen(0x01F5A4C0);

// F22C9BC54C962ED86B36585C0EC0E729DCA18000+26
RelocPtr<MagicFavorites *> g_MagicFavorites(0x02FC1200);
RelocPtr<MagicFavorites *> g_MagicFavorites(0x02FC23A0);

// 6C8AEF51A6996BA6DC317E92014FCC446B5DBC17+25
RelocPtr<MenuTopicManager *> g_MenuTopicManager(0x02F9A098);
RelocPtr<MenuTopicManager *> g_MenuTopicManager(0x02F9B218);

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

// aWerewolfSpell
RelocPtr <DefaultObjectList> g_defaultObjectList(0x01E49F20);
RelocPtr <DefaultObjectList> g_defaultObjectList(0x01E4AF20);

// 68BF756333EF751059E935236F381FA91F62C373+22
RelocPtr <BGSSaveLoadManager *> g_saveLoadManager(0x02FC1218);
RelocPtr <BGSSaveLoadManager *> g_saveLoadManager(0x02FC23B8);

// 3B74AA860AC42F1080FAF792E4BE1D3BF0E0EFEE+47
RelocPtr <MiscStatManager> g_MiscStatManager(0x02F5FC28);
RelocPtr <MiscStatManager> g_MiscStatManager(0x02F60DA8);

// A9D0A72CC9E5F85E2169118F999943FD43AF51EA+95
RelocPtr <EquipManager *> g_equipManager(0x02F5EF88);
RelocPtr <EquipManager *> g_equipManager(0x02F60108);

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

RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x003F4860);
RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x003F49F0);
//
RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00346E90);
RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00347020);
//
RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00346E80);
RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00347010);
//
RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00346E70);
RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x003FA030);
RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x008E3B60);
RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x0037FFB0);
RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x00380040);
RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00347000);
RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x003FA1C0);
RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x008E4B80);
RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x00380140);
RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x003801D0);

RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x003F36C0);
RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x003F3850);

RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x003F4B90); // Applies tint to ShaderType 5 nodes
RelocAddr<_UpdateModelHair> UpdateModelHair(0x003F4CA0); // Applies tint to ShaderType 6 nodes
RelocAddr<_UpdateModelFace> UpdateModelFace(0x003F4200);
RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001A82B0);
RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x003F4D20); // Applies tint to ShaderType 5 nodes
RelocAddr<_UpdateModelHair> UpdateModelHair(0x003F4E30); // Applies tint to ShaderType 6 nodes
RelocAddr<_UpdateModelFace> UpdateModelFace(0x003F4390);
RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001A8280);

RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0035C1E0);
RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0035C370);

// 63503D87B68DB4A4C8A2BE534A75246035A76798+82
RelocPtr<FacePresetList> g_facePresetList(0x01E69300); // aNosetype
RelocPtr<FacePresetList> g_facePresetList(0x01E6B300); // aNosetype

RelocAddr<_HasLOS> HasLOS(0x00948C30);
RelocAddr<_HasLOS> HasLOS(0x00949C50);

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, 0x0017BDE0);
DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x0017BDB0);
};

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, 0x0065D480, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk);
DEFINE_MEMBER_FN(UnequipItem, bool, 0x0065DC70, 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, 0x0065E650, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk);
DEFINE_MEMBER_FN(UnequipItem, bool, 0x0065EE40, 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, 0x003ED210, const char * meshPath, BSFaceGenModelMap ** entry);
DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x003ED0C0, const char * meshPath, BSFaceGenModel * model);
DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x003ED3A0, const char * meshPath, BSFaceGenModelMap ** entry);
DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x003ED250, 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, 0x003EA340, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc);
DEFINE_MEMBER_FN(ApplyMorph, void, 0x003E9C00, BSFaceGenNiNode * faceGenNode, BGSHeadPart * headPart, BSFixedString * morphName, float relative);
DEFINE_MEMBER_FN(RegenerateHead, void, 0x003EA4D0, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc);
DEFINE_MEMBER_FN(ApplyMorph, void, 0x003E9D90, 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 *, 0x005C0370, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x005C0410, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreatePoison, void, 0x005C0560, tArray<MagicItem::EffectItem> * effectArray, AlchemyItem ** poison);
DEFINE_MEMBER_FN(CreatePotion, void, 0x005C04B0, AlchemyItem ** potion, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x005C0890, TESForm *);
DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x005C14F0, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x005C1590, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(CreatePoison, void, 0x005C16E0, tArray<MagicItem::EffectItem> * effectArray, AlchemyItem ** poison);
DEFINE_MEMBER_FN(CreatePotion, void, 0x005C1630, AlchemyItem ** potion, tArray<MagicItem::EffectItem> * effectArray);
DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x005C1A10, 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, 0x005A77E0, int unk1, UInt32 unk2, const char * name);
DEFINE_MEMBER_FN(Load_Internal, bool, 0x005A7F20, const char * name, int unk1, UInt32 unk2, UInt32 unk3);
DEFINE_MEMBER_FN(Save_Internal, bool, 0x005A8960, int unk1, UInt32 unk2, const char * name);
DEFINE_MEMBER_FN(Load_Internal, bool, 0x005A90A0, const char * name, int unk1, UInt32 unk2, UInt32 unk3);

DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x0059D750, UInt64 *unk0);
DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x0059DE60, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3);
DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x0059E8D0, UInt64 *unk0);
DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x0059EFE0, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3);

DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x005AAA90);
DEFINE_MEMBER_FN(DeleteSavegame, void, 0x005A7770, const char * saveName, UInt32 unk1);
DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x005ABC10);
DEFINE_MEMBER_FN(DeleteSavegame, void, 0x005A88F0, 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(0x00194130);
RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x00194100);

//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, 0x005881B0, SinkT * eventSink);
DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x00587FC0, SinkT * eventSink);
// 94BFF5985A34190AE96F0F52B0614333E77595D8+71
DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0043C220, SinkT * eventSink);
DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0043C3B0, SinkT * eventSink);
// FB59C2DDF89F5248DF43230E39A6FECF8C997BA6+466
DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x00181CE0, EventArgT * evn);
DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x00181CB0, 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(0x01623A50);
const RelocPtr<uintptr_t> s_ExtraHealthVtbl(0x01624A50);
// ??_7ExtraCharge@@6B@
const RelocPtr<uintptr_t> s_ExtraChargeVtbl(0x01623AB0);
const RelocPtr<uintptr_t> s_ExtraChargeVtbl(0x01624AB0);
// ??_7ExtraCount@@6B@
const RelocPtr<uintptr_t> s_ExtraCountVtbl(0x016239D0);
const RelocPtr<uintptr_t> s_ExtraCountVtbl(0x016249D0);
// ??_7ExtraTextDisplayData@@6B@
const RelocPtr<uintptr_t> s_ExtraTextDisplayVtbl(0x016244D0);
const RelocPtr<uintptr_t> s_ExtraTextDisplayVtbl(0x016254D0);
// ??_7ExtraSoul@@6B@
const RelocPtr<uintptr_t> s_ExtraSoulVtbl(0x01627220);
const RelocPtr<uintptr_t> s_ExtraSoulVtbl(0x01628220);
// ??_7ExtraOwnership@@6B@
const RelocPtr<uintptr_t> s_ExtraOwnershipVtbl(0x01623970);
const RelocPtr<uintptr_t> s_ExtraOwnershipVtbl(0x01624970);
// ??_7ExtraAliasInstanceArray@@6B@
const RelocPtr<uintptr_t> s_ExtraAliasInstanceArrayVtbl(0x01624390);
const RelocPtr<uintptr_t> s_ExtraAliasInstanceArrayVtbl(0x01625390);
// ??_7ExtraCannotWear@@6B@
const RelocPtr<uintptr_t> s_ExtraCannotWearVtbl(0x01623A30);
const RelocPtr<uintptr_t> s_ExtraCannotWearVtbl(0x01624A30);
// ??_7ExtraHotkey@@6B@
const RelocPtr<uintptr_t> s_ExtraHotkeyVtbl(0x01623B10);
const RelocPtr<uintptr_t> s_ExtraHotkeyVtbl(0x01624B10);
// ??_7ExtraForcedTarget@@6B@
const RelocPtr<uintptr_t> s_ExtraForcedTargetVtbl(0x01624550);
const RelocPtr<uintptr_t> s_ExtraForcedTargetVtbl(0x01625550);
// ??_7ExtraReferenceHandle@@6B@
const RelocPtr<uintptr_t> s_ExtraReferenceHandleVtbl(0x01623B50);
const RelocPtr<uintptr_t> s_ExtraReferenceHandleVtbl(0x01624B50);
// ??_7ExtraEnchantment@@6B@
const RelocPtr<uintptr_t> s_ExtraEnchantmentVtbl(0x01623E70);
const RelocPtr<uintptr_t> s_ExtraEnchantmentVtbl(0x01624E70);
// ??_7ExtraRank@@6B@
const RelocPtr<uintptr_t> s_ExtraRankVtbl(0x016239B0);
const RelocPtr<uintptr_t> s_ExtraRankVtbl(0x016249B0);
// ??_7ExtraUniqueID@@6B@
const RelocPtr<uintptr_t> s_ExtraUniqueIdVtbl(0x01624590);
const RelocPtr<uintptr_t> s_ExtraUniqueIdVtbl(0x01625590);

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

0 comments on commit b01b00b

Please sign in to comment.