diff --git a/cmake/versioning.cmake b/cmake/versioning.cmake index 48d9414..bf37687 100644 --- a/cmake/versioning.cmake +++ b/cmake/versioning.cmake @@ -4,7 +4,7 @@ set(SKSE_VERSION_PATCH 4) set(RUNTIME_VERSION_MAJOR 1) set(RUNTIME_VERSION_MINOR 6) -set(RUNTIME_VERSION_PATCH 1127) +set(RUNTIME_VERSION_PATCH 1130) set(RUNTIME_VERSION_TYPE 0) math( diff --git a/skse64/BSModelDB.h b/skse64/BSModelDB.h index 3f9b2c7..edd5d74 100644 --- a/skse64/BSModelDB.h +++ b/skse64/BSModelDB.h @@ -42,8 +42,8 @@ class BSModelDB MEMBER_FN_PREFIX(TESProcessor); // find from ??_7BSModelProcessor@BSModelDB@@6B@ - DEFINE_MEMBER_FN(dtor, void, 0x00DFEDA0); - DEFINE_MEMBER_FN(Impl_Process, void, 0x001CC0F0, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut); + DEFINE_MEMBER_FN(dtor, void, 0x00DFEEE0); + DEFINE_MEMBER_FN(Impl_Process, void, 0x001CC100, ModelData * modelData, const char * modelName, NiAVObject ** root, UInt32 * typeOut); }; }; diff --git a/skse64/GameAPI.h b/skse64/GameAPI.h index 27c06c5..8bc9b91 100644 --- a/skse64/GameAPI.h +++ b/skse64/GameAPI.h @@ -22,8 +22,8 @@ class Heap { public: MEMBER_FN_PREFIX(Heap); - DEFINE_MEMBER_FN(Allocate, void *, 0x00CBF350, size_t size, size_t alignment, bool aligned); - DEFINE_MEMBER_FN(Free, void, 0x00CBF7A0, void * buf, bool aligned); + DEFINE_MEMBER_FN(Allocate, void *, 0x00CBF490, size_t size, size_t alignment, bool aligned); + DEFINE_MEMBER_FN(Free, void, 0x00CBF8E0, void * buf, bool aligned); }; extern RelocPtr g_mainHeap; @@ -35,7 +35,7 @@ class ConsoleManager { public: MEMBER_FN_PREFIX(ConsoleManager); - DEFINE_MEMBER_FN(VPrint, void, 0x008F9390, const char * fmt, va_list args); + DEFINE_MEMBER_FN(VPrint, void, 0x008F9710, const char * fmt, va_list args); // DEFINE_MEMBER_FN(Print, void, 0x001D2050, const char * str); }; diff --git a/skse64/GameBSExtraData.h b/skse64/GameBSExtraData.h index e29db67..6a19dba 100644 --- a/skse64/GameBSExtraData.h +++ b/skse64/GameBSExtraData.h @@ -257,10 +257,10 @@ class BaseExtraList private: MEMBER_FN_PREFIX(BaseExtraList); // A7985F15034C77C00ACC57607F29F4802502A1BA+2F - DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x00159A20, bool isEquipped); + DEFINE_MEMBER_FN(CheckContainerExtraData_Internal, bool, 0x00159A30, bool isEquipped); // This also does some internal ReferenceHandle lookup // - DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0015D800); + DEFINE_MEMBER_FN(GetExtraTextDisplayData_Internal, ExtraTextDisplayData*, 0x0015D810); }; typedef tList ExtendDataList; diff --git a/skse64/GameCamera.h b/skse64/GameCamera.h index 62d408e..a533e99 100644 --- a/skse64/GameCamera.h +++ b/skse64/GameCamera.h @@ -260,7 +260,7 @@ class TESCamera UInt8 pad31[7]; // 31 MEMBER_FN_PREFIX(TESCamera); - DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x00550EC0, TESCameraState * cameraState); + DEFINE_MEMBER_FN(SetCameraState, UInt32, 0x00551070, TESCameraState * cameraState); }; STATIC_ASSERT(offsetof(TESCamera, cameraNode) == 0x20); STATIC_ASSERT(sizeof(TESCamera) == 0x38); @@ -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, 0x00242450); - DEFINE_MEMBER_FN(SetNorthRotation, void, 0x002428A0, float northRotation); + DEFINE_MEMBER_FN(ctor, void, 0x00242460); + DEFINE_MEMBER_FN(SetNorthRotation, void, 0x002428B0, float northRotation); }; STATIC_ASSERT(offsetof(LocalMapCamera, northRotation) == 0x60); @@ -380,7 +380,7 @@ class PlayerCamera : public TESCamera UInt8 pad166[2]; // 166 MEMBER_FN_PREFIX(PlayerCamera); - DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x008E59C0, bool weaponDrawn); + DEFINE_MEMBER_FN(UpdateThirdPerson, void, 0x008E5D40, bool weaponDrawn); }; STATIC_ASSERT(offsetof(PlayerCamera, cameraStates) == 0xB8); diff --git a/skse64/GameData.cpp b/skse64/GameData.cpp index d56a11a..affc621 100644 --- a/skse64/GameData.cpp +++ b/skse64/GameData.cpp @@ -36,31 +36,31 @@ RelocPtr g_equipManager(0x030EF378); // FBC6C0FB3A858D20081F5FF9CB3E780E59DCE52F+50 RelocPtr g_relationshipRanks(0x01E66FE8); -RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x00436020); +RelocAddr<_ChangeActorHeadPart> ChangeActorHeadPart(0x004361C0); // -RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x00388700); +RelocAddr<_GetEitherHandSlot> GetEitherHandSlot(0x003888A0); // -RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x003886F0); +RelocAddr<_GetRightHandSlot> GetRightHandSlot(0x00388890); // -RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x003886E0); -RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x0043BC10); -RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x00954C70); -RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x003C19B0); -RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x003C1A40); +RelocAddr<_GetLeftHandSlot> GetLeftHandSlot(0x00388880); +RelocAddr<_LookupActorValueByName> LookupActorValueByName(0x0043BDB0); +RelocAddr<_UpdatePlayerTints> UpdatePlayerTints(0x00954F30); +RelocAddr<_GetActorBaseOverlays> GetActorBaseOverlays(0x003C1B50); +RelocAddr<_GetNumActorBaseOverlays> GetNumActorBaseOverlays(0x003C1BE0); -RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x00434E80); +RelocAddr<_ApplyMasksToRenderTarget> ApplyMasksToRenderTarget(0x00435020); -RelocAddr<_UpdateModelSkin> UpdateModelSkin(0x00436350); // Applies tint to ShaderType 5 nodes -RelocAddr<_UpdateModelHair> UpdateModelHair(0x00436460); // Applies tint to ShaderType 6 nodes -RelocAddr<_UpdateModelFace> UpdateModelFace(0x004359C0); -RelocAddr<_UpdateHarvestModel> UpdateHarvestModel(0x001E9350); +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(0x0039DAB0); +RelocAddr<_GetRelationshipIndex> GetRelationshipIndex(0x0039DC50); // 63503D87B68DB4A4C8A2BE534A75246035A76798+82 RelocPtr g_facePresetList(0x01FEC470); // aNosetype -RelocAddr<_HasLOS> HasLOS(0x009BA2B0); +RelocAddr<_HasLOS> HasLOS(0x009BA570); class LoadedModFinder { diff --git a/skse64/GameData.h b/skse64/GameData.h index ac4e5e2..61c8860 100644 --- a/skse64/GameData.h +++ b/skse64/GameData.h @@ -361,7 +361,7 @@ class DataHandler UInt32 LoadScripts_Hook(); MEMBER_FN_PREFIX(DataHandler); - DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x001BCAC0); + DEFINE_MEMBER_FN(LoadScripts, UInt32, 0x001BCAD0); }; STATIC_ASSERT(offsetof(DataHandler, regionList) == 0xD00); @@ -410,8 +410,8 @@ class EquipManager static EquipManager * GetSingleton(void); MEMBER_FN_PREFIX(EquipManager); - DEFINE_MEMBER_FN(EquipItem, void, 0x006C9990, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk); - DEFINE_MEMBER_FN(UnequipItem, bool, 0x006CA180, 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, 0x006C9D10, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool withEquipSound, bool preventUnequip, bool showMsg, void * unk); + DEFINE_MEMBER_FN(UnequipItem, bool, 0x006CA500, Actor * actor, TESForm * item, BaseExtraList * extraData, SInt32 count, BGSEquipSlot * equipSlot, bool unkFlag1, bool preventEquip, bool unkFlag2, bool unkFlag3, void * unk); }; @@ -491,8 +491,8 @@ class FaceGen { public: MEMBER_FN_PREFIX(MorphDatabase); - DEFINE_MEMBER_FN(GetFaceGenModelMapEntry, bool, 0x0042E9D0, const char * meshPath, BSFaceGenModelMap ** entry); - DEFINE_MEMBER_FN(SetFaceGenModelMapEntry, void, 0x0042E880, 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 @@ -527,8 +527,8 @@ class FaceGen UInt8 pad61[7]; // 61 MEMBER_FN_PREFIX(FaceGen); - DEFINE_MEMBER_FN(RegenerateHead, void, 0x0042BB00, BSFaceGenNiNode * headNode, BGSHeadPart * head, TESNPC * npc); - DEFINE_MEMBER_FN(ApplyMorph, void, 0x0042B400, 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); @@ -674,11 +674,11 @@ class PersistentFormManager } MEMBER_FN_PREFIX(PersistentFormManager); - DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x0062C670, tArray * effectArray); - DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x0062C710, tArray * effectArray); - DEFINE_MEMBER_FN(CreatePoison, void, 0x0062C860, tArray * effectArray, AlchemyItem ** poison); - DEFINE_MEMBER_FN(CreatePotion, void, 0x0062C7B0, AlchemyItem ** potion, tArray * effectArray); - DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x0062CB90, TESForm *); + DEFINE_MEMBER_FN(CreateOffensiveEnchantment, EnchantmentItem *, 0x0062C9F0, tArray * effectArray); + DEFINE_MEMBER_FN(CreateDefensiveEnchantment, EnchantmentItem *, 0x0062CA90, tArray * effectArray); + DEFINE_MEMBER_FN(CreatePoison, void, 0x0062CBE0, tArray * effectArray, AlchemyItem ** poison); + DEFINE_MEMBER_FN(CreatePotion, void, 0x0062CB30, AlchemyItem ** potion, tArray * effectArray); + DEFINE_MEMBER_FN(ScheduleForDeletion, void, 0x0062CF10, TESForm *); }; STATIC_ASSERT(sizeof(PersistentFormManager) == 0xD0); @@ -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, 0x0060FD50, int unk1, UInt32 unk2, const char * name); - DEFINE_MEMBER_FN(Load_Internal, bool, 0x00610490, const char * name, int unk1, UInt32 unk2, UInt32 unk3); + DEFINE_MEMBER_FN(Save_Internal, bool, 0x006100D0, int unk1, UInt32 unk2, const char * name); + DEFINE_MEMBER_FN(Load_Internal, bool, 0x00610810, const char * name, int unk1, UInt32 unk2, UInt32 unk3); - DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x00605870, UInt64 *unk0); - DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x00605F80, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3); + DEFINE_MEMBER_FN(SaveGame_HookTarget, void, 0x00605BF0, UInt64 *unk0); + DEFINE_MEMBER_FN(LoadGame_HookTarget, bool, 0x00606300, UInt64 *unk0, UInt32 unk1, UInt32 unk2, void *unk3); - DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x006130C0); - DEFINE_MEMBER_FN(DeleteSavegame, void, 0x0060FCE0, const char * saveName, UInt32 unk1); + DEFINE_MEMBER_FN(ProcessEvents_Internal, void, 0x00613440); + DEFINE_MEMBER_FN(DeleteSavegame, void, 0x00610060, const char * saveName, UInt32 unk1); }; STATIC_ASSERT(offsetof(BGSSaveLoadManager, thread) == 0x2B0); STATIC_ASSERT(offsetof(BGSSaveLoadManager::Thread, hThread) == 0x30); diff --git a/skse64/GameEvents.cpp b/skse64/GameEvents.cpp index fcd2bc1..627d6fc 100644 --- a/skse64/GameEvents.cpp +++ b/skse64/GameEvents.cpp @@ -1,7 +1,7 @@ #include "GameEvents.h" // 614D2151B14D0D61E7DA7088CAB85DB111E2E0D3+1B -RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x001D5130); +RelocAddr<_GetEventDispatcherList> GetEventDispatcherList(0x001D5140); //EventDispatcher* g_footstepEventDispatcher = (EventDispatcher*) 0x01B2E9C0; diff --git a/skse64/GameEvents.h b/skse64/GameEvents.h index f87fb9f..b6fa158 100644 --- a/skse64/GameEvents.h +++ b/skse64/GameEvents.h @@ -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, 0x005DBE20, SinkT * eventSink); + DEFINE_MEMBER_FN(AddEventSink_Internal, void, 0x005DBFE0, SinkT * eventSink); // ??_7BGSProcedureShoutExecState@@6B@ xref +21 last call - DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0047E080, SinkT * eventSink); + DEFINE_MEMBER_FN(RemoveEventSink_Internal, void, 0x0047E220, SinkT * eventSink); // FB59C2DDF89F5248DF43230E39A6FECF8C997BA6+466 - DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x001C29E0, EventArgT * evn); + DEFINE_MEMBER_FN(SendEvent_Internal, void, 0x001C29F0, EventArgT * evn); public: diff --git a/skse64/GameExtraData.h b/skse64/GameExtraData.h index 84c28ae..63b3496 100644 --- a/skse64/GameExtraData.h +++ b/skse64/GameExtraData.h @@ -67,10 +67,10 @@ class InventoryEntryData void GetEquipItemData(EquipData& stateOut, SInt32 itemId, SInt32 baseCount) const; MEMBER_FN_PREFIX(InventoryEntryData); - DEFINE_MEMBER_FN(GenerateName, const char *, 0x00223C80); - DEFINE_MEMBER_FN(GetValue, SInt32, 0x00222FD0); - DEFINE_MEMBER_FN(IsOwnedBy, bool, 0x00223DC0, TESForm * actor, bool unk1); - DEFINE_MEMBER_FN(GetSoulLevel, UInt32, 0x00223150); + DEFINE_MEMBER_FN(GenerateName, const char *, 0x00223C90); + DEFINE_MEMBER_FN(GetValue, SInt32, 0x00222FE0); + DEFINE_MEMBER_FN(IsOwnedBy, bool, 0x00223DD0, TESForm * actor, bool unk1); + DEFINE_MEMBER_FN(GetSoulLevel, UInt32, 0x00223160); }; typedef tList EntryDataList; @@ -98,8 +98,8 @@ class ExtraContainerChanges : public BSExtraData void GetEquipItemData(InventoryEntryData::EquipData& stateOut, TESForm * item, SInt32 itemId) const; MEMBER_FN_PREFIX(Data); - DEFINE_MEMBER_FN(SetUniqueID, void, 0x00239A70, BaseExtraList* itemList, TESForm * oldForm, TESForm * newForm); - DEFINE_MEMBER_FN(TransferItemUID, void, 0x00239D20, BaseExtraList * extraList, TESForm * oldForm, TESForm * newForm, UInt32 unk1); + DEFINE_MEMBER_FN(SetUniqueID, void, 0x00239A80, BaseExtraList* itemList, TESForm * oldForm, TESForm * newForm); + DEFINE_MEMBER_FN(TransferItemUID, void, 0x00239D30, BaseExtraList * extraList, TESForm * oldForm, TESForm * newForm, UInt32 unk1); }; Data * data; @@ -552,8 +552,8 @@ class ExtraTextDisplayData : public BSExtraData static ExtraTextDisplayData* Create(); MEMBER_FN_PREFIX(ExtraTextDisplayData); - DEFINE_MEMBER_FN(SetName_Internal, void, 0x00184130, const char * name); - DEFINE_MEMBER_FN(GenerateName_Internal, const char*, 0x00184000, TESForm * form, float extraHealthValue); + DEFINE_MEMBER_FN(SetName_Internal, void, 0x00184140, const char * name); + DEFINE_MEMBER_FN(GenerateName_Internal, const char*, 0x00184010, TESForm * form, float extraHealthValue); }; // ExtraAlphaCutoff diff --git a/skse64/GameFormComponents.h b/skse64/GameFormComponents.h index af36606..ad20032 100644 --- a/skse64/GameFormComponents.h +++ b/skse64/GameFormComponents.h @@ -474,7 +474,7 @@ class TESDescription : public BaseFormComponent UInt32 unk0C; // 0C - init'd to FFFFFFFF MEMBER_FN_PREFIX(TESDescription); - DEFINE_MEMBER_FN(Get, void, 0x001DBBC0, BSString * out, TESForm * parent, UInt32 fieldType); + DEFINE_MEMBER_FN(Get, void, 0x001DBBD0, BSString * out, TESForm * parent, UInt32 fieldType); }; // 18 @@ -1064,8 +1064,8 @@ class Biped : public BSIntrusiveRefCounted UInt32 handle; // 2770 UInt32 unk2774; // 2774 - DEFINE_MEMBER_FN_0(UpdateWeightData, void, 0x00212460); - DEFINE_MEMBER_FN_0(DeleteThis, void, 0x00212360); + DEFINE_MEMBER_FN_0(UpdateWeightData, void, 0x00212470); + DEFINE_MEMBER_FN_0(DeleteThis, void, 0x00212370); }; STATIC_ASSERT(offsetof(Biped, unk10) == 0x10); STATIC_ASSERT(offsetof(Biped, unk13C0) == 0x13C0); @@ -1296,10 +1296,10 @@ class ActorProcessManager UInt32 pad13C; // 13C MEMBER_FN_PREFIX(ActorProcessManager); - DEFINE_MEMBER_FN(SetEquipFlag, void, 0x00711C30, UInt8 flags); - DEFINE_MEMBER_FN(UpdateEquipment, void, 0x006E3CE0, Actor * actor); + DEFINE_MEMBER_FN(SetEquipFlag, void, 0x00711FB0, UInt8 flags); + DEFINE_MEMBER_FN(UpdateEquipment, void, 0x006E4060, Actor * actor); // CDC12817DF3AB5B832348763F433A216BB8A85CA+89 - DEFINE_MEMBER_FN(SetDataFlag, void, 0x006EF940, float flag); // Sets a number on the 0x10 object + DEFINE_MEMBER_FN(SetDataFlag, void, 0x006EFCC0, float flag); // Sets a number on the 0x10 object void UpdateEquipment_Hooked(Actor * actor); }; @@ -1383,9 +1383,9 @@ class PlayerSkills void SetSkillLegendaryLevel(BSFixedString actorValue, UInt32 level); MEMBER_FN_PREFIX(PlayerSkills); - DEFINE_MEMBER_FN(GetSkillData, UInt32, 0x0077AF30, UInt32 actorValue, float * level, float * points, float * pointsMax, UInt32 * unk6); - DEFINE_MEMBER_FN(IncrementLegendary, UInt32, 0x0077B520, UInt32 actorValue); - DEFINE_MEMBER_FN(SetLevel, void, 0x0077B4C0, UInt32 level); + DEFINE_MEMBER_FN(GetSkillData, UInt32, 0x0077B2B0, UInt32 actorValue, float * level, float * points, float * pointsMax, UInt32 * unk6); + DEFINE_MEMBER_FN(IncrementLegendary, UInt32, 0x0077B8A0, UInt32 actorValue); + DEFINE_MEMBER_FN(SetLevel, void, 0x0077B840, UInt32 level); }; // 10 diff --git a/skse64/GameForms.cpp b/skse64/GameForms.cpp index 23c6a8b..07d2025 100644 --- a/skse64/GameForms.cpp +++ b/skse64/GameForms.cpp @@ -1,7 +1,7 @@ #include "GameForms.h" #include "GameObjects.h" -RelocAddr <_LookupFormByID> LookupFormByID(0x001E00A0); +RelocAddr <_LookupFormByID> LookupFormByID(0x001E00B0); BGSDefaultObjectManager *BGSDefaultObjectManager::GetSingleton(void) { @@ -66,7 +66,7 @@ void TESForm::CopyFromEx(TESForm * rhsForm) float GetFormWeight(TESForm *form) { // 3894EDBBE3D9FBC367A71D7ABC60B87A407F3E3D+30 - static RelocAddr GetFormWeight_Address(0x001EDFF0); + static RelocAddr GetFormWeight_Address(0x001EE000); return ((_GetFormWeight)(GetFormWeight_Address.GetUIntPtr())) (form); } diff --git a/skse64/GameForms.h b/skse64/GameForms.h index ca4b797..bb7291b 100644 --- a/skse64/GameForms.h +++ b/skse64/GameForms.h @@ -968,9 +968,9 @@ class BGSListForm : public TESForm UInt32 unk40; // 40 MEMBER_FN_PREFIX(BGSListForm); - DEFINE_MEMBER_FN(AddFormToList, void, 0x00319B90, TESForm * form); - DEFINE_MEMBER_FN(RemoveFormFromList, void, 0x00319D60, TESForm * form); - DEFINE_MEMBER_FN(RevertList, void, 0x00319AB0); + DEFINE_MEMBER_FN(AddFormToList, void, 0x00319D30, TESForm * form); + DEFINE_MEMBER_FN(RemoveFormFromList, void, 0x00319F00, TESForm * form); + DEFINE_MEMBER_FN(RevertList, void, 0x00319C50); class Visitor { @@ -1701,8 +1701,8 @@ class TESQuest : public BGSStoryManagerTreeForm UnkArray unk250; // 250 MEMBER_FN_PREFIX(TESQuest); - DEFINE_MEMBER_FN(ForceRefTo, UInt32, 0x003CDC50, UInt32 aliasId, TESObjectREFR * reference); - DEFINE_MEMBER_FN(NewGame_Internal, UInt8, 0x003C9960, UInt8 * unk1, UInt8 unk2); + DEFINE_MEMBER_FN(ForceRefTo, UInt32, 0x003CDDF0, UInt32 aliasId, TESObjectREFR * reference); + DEFINE_MEMBER_FN(NewGame_Internal, UInt8, 0x003C9B00, UInt8 * unk1, UInt8 unk2); UInt8 NewGame_Hook(UInt8 * unk1, UInt8 unk2); }; @@ -2556,7 +2556,7 @@ class TESObjectCELL : public TESForm UInt64 unk138; // 138 MEMBER_FN_PREFIX(TESObjectCELL); - DEFINE_MEMBER_FN(GetNorthRotation, float, 0x002C2630); + DEFINE_MEMBER_FN(GetNorthRotation, float, 0x002C26F0); }; STATIC_ASSERT(offsetof(TESObjectCELL, refData) == 0x90); STATIC_ASSERT(offsetof(TESObjectCELL, objectList) == 0xC0); diff --git a/skse64/GameHandlers.h b/skse64/GameHandlers.h index 43c9d54..750adf2 100644 --- a/skse64/GameHandlers.h +++ b/skse64/GameHandlers.h @@ -32,7 +32,7 @@ class WeaponRightSwingHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponRightSwingHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7B10, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7E90, Actor * form, UInt32 unk04); }; class WeaponLeftSwingHandler : public IHandlerFunctor @@ -42,7 +42,7 @@ class WeaponLeftSwingHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponLeftSwingHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7BA0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7F20, Actor * form, UInt32 unk04); }; class RightHandSpellFireHandler : public IHandlerFunctor @@ -52,7 +52,7 @@ class RightHandSpellFireHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7D60, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B80E0, Actor * form, UInt32 unk04); }; class LeftHandSpellFireHandler : public IHandlerFunctor @@ -62,7 +62,7 @@ class LeftHandSpellFireHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(LeftHandSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7D10, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8090, Actor * form, UInt32 unk04); }; class RightHandSpellCastHandler : public IHandlerFunctor @@ -72,7 +72,7 @@ class RightHandSpellCastHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7F20, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B82A0, Actor * form, UInt32 unk04); }; class LeftHandSpellCastHandler : public IHandlerFunctor @@ -82,7 +82,7 @@ class LeftHandSpellCastHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(LeftHandSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7ED0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8250, Actor * form, UInt32 unk04); }; class VoiceSpellCastHandler : public IHandlerFunctor @@ -92,7 +92,7 @@ class VoiceSpellCastHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(VoiceSpellCastHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7F70, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B82F0, Actor * form, UInt32 unk04); }; class VoiceSpellFireHandler : public IHandlerFunctor @@ -102,7 +102,7 @@ class VoiceSpellFireHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(VoiceSpellFireHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B7DB0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8130, Actor * form, UInt32 unk04); }; class BowDrawnHandler : public IHandlerFunctor @@ -112,7 +112,7 @@ class BowDrawnHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(BowDrawnHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B91D0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B9550, Actor * form, UInt32 unk04); }; class BowReleaseHandler : public IHandlerFunctor @@ -122,7 +122,7 @@ class BowReleaseHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(BowReleaseHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B91F0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B9570, Actor * form, UInt32 unk04); }; class WeaponBeginDrawRightHandler : public IHandlerFunctor @@ -132,7 +132,7 @@ class WeaponBeginDrawRightHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponBeginDrawRightHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8000, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8380, Actor * form, UInt32 unk04); }; class WeaponBeginSheatheRightHandler : public IHandlerFunctor @@ -142,7 +142,7 @@ class WeaponBeginSheatheRightHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(WeaponBeginSheatheRightHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B80B0, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8430, Actor * form, UInt32 unk04); }; class RightHandWeaponDrawHandler : public IHandlerFunctor @@ -152,7 +152,7 @@ class RightHandWeaponDrawHandler : public IHandlerFunctor virtual UInt8 Process(Actor * form, UInt32 unk04); MEMBER_FN_PREFIX(RightHandWeaponDrawHandler); - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8120, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B84A0, Actor * form, UInt32 unk04); }; class RightHandWeaponSheatheHandler : public IHandlerFunctor @@ -163,5 +163,5 @@ class RightHandWeaponSheatheHandler : public IHandlerFunctor MEMBER_FN_PREFIX(RightHandWeaponSheatheHandler); // ??_7RightHandWeaponSheatheHandler@@6B@ + 8 - DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8280, Actor * form, UInt32 unk04); + DEFINE_MEMBER_FN(Process_Origin, UInt8, 0x007B8600, Actor * form, UInt32 unk04); }; diff --git a/skse64/GameInput.h b/skse64/GameInput.h index ddf6d15..6338bd1 100644 --- a/skse64/GameInput.h +++ b/skse64/GameInput.h @@ -287,7 +287,7 @@ class PlayerControls // used by Hooks_Event PlayerControls * ctor_Hook(void); MEMBER_FN_PREFIX(PlayerControls); - DEFINE_MEMBER_FN(ctor, PlayerControls *, 0x0079A630); + DEFINE_MEMBER_FN(ctor, PlayerControls *, 0x0079A9B0); }; STATIC_ASSERT(offsetof(PlayerControls, runMode) == 0x049); STATIC_ASSERT(offsetof(PlayerControls, remapMode) == 0x050); diff --git a/skse64/GameMenus.cpp b/skse64/GameMenus.cpp index c80c98f..253ff3f 100644 --- a/skse64/GameMenus.cpp +++ b/skse64/GameMenus.cpp @@ -1,6 +1,6 @@ #include "GameMenus.h" -RelocAddr <_CreateUIMessageData> CreateUIMessageData(0x0061BBE0); +RelocAddr <_CreateUIMessageData> CreateUIMessageData(0x0061BF60); IMenu::IMenu() : view(NULL), diff --git a/skse64/GameMenus.h b/skse64/GameMenus.h index b9c2541..09ae7de 100644 --- a/skse64/GameMenus.h +++ b/skse64/GameMenus.h @@ -98,10 +98,10 @@ class IMenu : public FxDelegateHandler GRefCountBase * unk18; // 28 - holds a reference MEMBER_FN_PREFIX(IMenu); - DEFINE_MEMBER_FN(InitMovie_internal, void, 0x00FAA3E0, GFxMovieView* view); - DEFINE_MEMBER_FN(NextFrame_internal, void, 0x00FAA170, UInt32 arg0, UInt32 arg1); - DEFINE_MEMBER_FN(ProcessMessage_internal, UInt32, 0x00FAA120, UIMessage* message); - DEFINE_MEMBER_FN(dtor, void, 0x00FAA0C0); + DEFINE_MEMBER_FN(InitMovie_internal, void, 0x00FAA500, GFxMovieView* view); + DEFINE_MEMBER_FN(NextFrame_internal, void, 0x00FAA290, UInt32 arg0, UInt32 arg1); + DEFINE_MEMBER_FN(ProcessMessage_internal, UInt32, 0x00FAA240, UIMessage* message); + DEFINE_MEMBER_FN(dtor, void, 0x00FAA1E0); }; STATIC_ASSERT(offsetof(IMenu, view) == 0x10); @@ -253,7 +253,7 @@ class RaceSexMenu : public IMenu MEMBER_FN_PREFIX(RaceSexMenu); // B3D68A070DD2D03BA80128C5FED7004330D111AC+B1 - DEFINE_MEMBER_FN(LoadSliders, void *, 0x009564D0, UInt64 unk1, UInt8 unk2); + DEFINE_MEMBER_FN(LoadSliders, void *, 0x00956790, UInt64 unk1, UInt8 unk2); }; STATIC_ASSERT(offsetof(RaceSexMenu, sliderData) == 0x140); STATIC_ASSERT(offsetof(RaceSexMenu, raceIndex) == 0x188); @@ -366,8 +366,8 @@ class HUDObject GFxValue object; // 10 MEMBER_FN_PREFIX(HUDObject); - DEFINE_MEMBER_FN_0(dtor, void, 0x00925670); - DEFINE_MEMBER_FN_1(Impl_Fn03, void *, 0x00920330, void * unk1); + DEFINE_MEMBER_FN_0(dtor, void, 0x00925930); + DEFINE_MEMBER_FN_1(Impl_Fn03, void *, 0x009205F0, void * unk1); DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free); }; @@ -410,7 +410,7 @@ class Notification TESWordOfPower* word; // 50 UInt32 time; // 58 - g_gameTime + iObjectivesWaitTime - DEFINE_MEMBER_FN_0(dtor, void, 0x009256E0); + DEFINE_MEMBER_FN_0(dtor, void, 0x009259A0); }; // 78 @@ -564,7 +564,7 @@ class EnchantConstructMenu : public CraftingSubMenu UInt8 pad12[6]; // 12 MEMBER_FN_PREFIX(CategoryListEntry); - DEFINE_MEMBER_FN(SetData, void, 0x0090D820, GFxValue* target); + DEFINE_MEMBER_FN(SetData, void, 0x0090DAE0, GFxValue* target); void SetData_Extended(EnchantConstructMenu* subMenu, GFxValue* target); }; @@ -841,8 +841,8 @@ class UIManager // DEFINE_MEMBER_FN(AddMessage, void, 0x004503E0, UIMessage * msg); // old 1.1 implementation // 1.3 uses a little non-thread-safe pool of UIMessages to wrap around the nicely thread-safe BSTMessageQueue it gets added to - DEFINE_MEMBER_FN(AddMessage, void, 0x001AF160, StringCache::Ref * strData, UInt32 msgID, void * objData); - DEFINE_MEMBER_FN(CreateUIMessageData, IUIMessageData *, 0x00FA37F0, const BSFixedString &type); + DEFINE_MEMBER_FN(AddMessage, void, 0x001AF170, StringCache::Ref * strData, UInt32 msgID, void * objData); + DEFINE_MEMBER_FN(CreateUIMessageData, IUIMessageData *, 0x00FA3910, const BSFixedString &type); static UIManager * GetSingleton(void) { @@ -856,7 +856,7 @@ class UIManager void QueueCommand(UIDelegate* cmd); void QueueCommand(UIDelegate_v1* cmd); - DEFINE_MEMBER_FN(ProcessEventQueue_HookTarget, void, 0x00FA3670); + DEFINE_MEMBER_FN(ProcessEventQueue_HookTarget, void, 0x00FA3790); }; STATIC_ASSERT(offsetof(UIManager, pad348) == 0x348); STATIC_ASSERT(sizeof(UIManager) == 0xB80); @@ -997,10 +997,10 @@ class Inventory3DManager UInt8 pad15B[5]; MEMBER_FN_PREFIX(Inventory3DManager); - DEFINE_MEMBER_FN(UpdateItem3D, void, 0x009279E0, InventoryEntryData * objDesc); - DEFINE_MEMBER_FN(UpdateMagic3D, void, 0x00927A10, TESForm * form, UInt32 unk1); - DEFINE_MEMBER_FN(Clear3D, void, 0x00927DD0); - DEFINE_MEMBER_FN(Render, UInt32, 0x009276F0); + DEFINE_MEMBER_FN(UpdateItem3D, void, 0x00927CA0, InventoryEntryData * objDesc); + DEFINE_MEMBER_FN(UpdateMagic3D, void, 0x00927CD0, TESForm * form, UInt32 unk1); + DEFINE_MEMBER_FN(Clear3D, void, 0x00928090); + DEFINE_MEMBER_FN(Render, UInt32, 0x009279B0); }; STATIC_ASSERT(offsetof(Inventory3DManager, unk14) == 0x14); @@ -1091,8 +1091,8 @@ class MenuManager private: MEMBER_FN_PREFIX(MenuManager); - DEFINE_MEMBER_FN(IsMenuOpen, bool, 0x00F9EB70, BSFixedString * menuName); - DEFINE_MEMBER_FN(Register_internal, void, 0x00FA0840, const char * name, CreatorFunc creator); + DEFINE_MEMBER_FN(IsMenuOpen, bool, 0x00F9EC90, BSFixedString * menuName); + DEFINE_MEMBER_FN(Register_internal, void, 0x00FA0960, const char * name, CreatorFunc creator); public: diff --git a/skse64/GameObjects.cpp b/skse64/GameObjects.cpp index d2c51ef..c6765cc 100644 --- a/skse64/GameObjects.cpp +++ b/skse64/GameObjects.cpp @@ -148,7 +148,7 @@ BSShaderTextureSet * BSShaderTextureSet::Create() { typedef BSShaderTextureSet * (* _BSShaderTextureSet_Create)(void); // 898A3CAF8F24D9FDC30B00DA3DC5BDF182682C1C+63 - static RelocAddr <_BSShaderTextureSet_Create> BSShaderTextureSet_Create(0x014C66C0); + static RelocAddr <_BSShaderTextureSet_Create> BSShaderTextureSet_Create(0x014C69C0); return BSShaderTextureSet_Create(); } diff --git a/skse64/GameObjects.h b/skse64/GameObjects.h index ef43e4b..f751298 100644 --- a/skse64/GameObjects.h +++ b/skse64/GameObjects.h @@ -462,8 +462,8 @@ class MagicItem : public TESBoundObject UInt64 unk88; // 88 MEMBER_FN_PREFIX(MagicItem); - DEFINE_MEMBER_FN(GetCostliestEffectItem, EffectItem *, 0x0014C370, int arg1, bool arg2); - DEFINE_MEMBER_FN(GetEffectiveMagickaCost, float, 0x0014C0F0, Character* caster); + DEFINE_MEMBER_FN(GetCostliestEffectItem, EffectItem *, 0x0014C380, int arg1, bool arg2); + DEFINE_MEMBER_FN(GetEffectiveMagickaCost, float, 0x0014C100, Character* caster); }; STATIC_ASSERT(sizeof(MagicItem) == 0x90); @@ -798,10 +798,10 @@ class TESNPC : public TESActorBase UInt64 unk260; // 260 MEMBER_FN_PREFIX(TESNPC); - DEFINE_MEMBER_FN(GetSex, char, 0x003A8B60); // return (formType == 0x2B) ? (actorData.flags & 1) : -1; - DEFINE_MEMBER_FN(HasOverlays, bool, 0x003C18B0); + DEFINE_MEMBER_FN(GetSex, char, 0x003A8D00); // return (formType == 0x2B) ? (actorData.flags & 1) : -1; + DEFINE_MEMBER_FN(HasOverlays, bool, 0x003C1A50); - DEFINE_MEMBER_FN(ChangeHeadPart, void, 0x003BE880, BGSHeadPart * target); // Swaps a headPart of the same type as target with target + DEFINE_MEMBER_FN(ChangeHeadPart, void, 0x003BEA20, BGSHeadPart * target); // Swaps a headPart of the same type as target with target struct MorphAction { BSFaceGenNiNode * faceNode; @@ -810,9 +810,9 @@ class TESNPC : public TESActorBase float value; }; - DEFINE_MEMBER_FN(UpdateNeck, void, 0x003B8D30, BSFaceGenNiNode * faceNode); // Updates the neck seam when weight changed + DEFINE_MEMBER_FN(UpdateNeck, void, 0x003B8ED0, BSFaceGenNiNode * faceNode); // Updates the neck seam when weight changed - DEFINE_MEMBER_FN(SetSkinFromTint, void, 0x003B8AF0, NiColorA * result, TintMask * tintMask, bool fromTint); // Computes RGB SkinTone from RGBA TintMask + DEFINE_MEMBER_FN(SetSkinFromTint, void, 0x003B8C90, NiColorA * result, TintMask * tintMask, bool fromTint); // Computes RGB SkinTone from RGBA TintMask void SetFaceTexture(BGSTextureSet * textureSet); void SetHairColor(BGSColorForm * hairColor); diff --git a/skse64/GameRTTI.cpp b/skse64/GameRTTI.cpp index f7e4c93..5fc2e5f 100644 --- a/skse64/GameRTTI.cpp +++ b/skse64/GameRTTI.cpp @@ -3,7 +3,7 @@ typedef void * (* _Runtime_DynamicCast_Internal)(void * srcObj, UInt32 arg1, const void * fromType, const void * toType, UInt32 arg4); // 09ECDC875A847989BA08B9E8A23656EDFE1F380C+A8 -RelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x0153451A); // __RTDynamicCast +RelocAddr <_Runtime_DynamicCast_Internal> Runtime_DynamicCast_Internal(0x0153482A); // __RTDynamicCast void * Runtime_DynamicCast(void * srcObj, const void * fromType, const void * toType) { diff --git a/skse64/GameReferences.cpp b/skse64/GameReferences.cpp index c0abdf1..1204115 100644 --- a/skse64/GameReferences.cpp +++ b/skse64/GameReferences.cpp @@ -7,18 +7,18 @@ #include "skse64/NiNodes.h" // 9993FF829D7004AAE73399E0559CC28B110D4A91+C2 -RelocAddr<_CreateRefHandleByREFR> CreateRefHandleByREFR(0x00178F50); +RelocAddr<_CreateRefHandleByREFR> CreateRefHandleByREFR(0x00178F60); // 526D2C6164B5B723ABF2D3B5BF05D3E20C270AA8+2C -RelocAddr<_LookupREFRByHandle> LookupREFRByHandle(0x001794F0); +RelocAddr<_LookupREFRByHandle> LookupREFRByHandle(0x00179500); // AF5D1D698E25CFB06197DD5322B6F15A13ABF0B3+4D -RelocAddr<_LookupREFRObjectByHandle> LookupREFRObjectByHandle(0x00179610); +RelocAddr<_LookupREFRObjectByHandle> LookupREFRObjectByHandle(0x00179620); // AF5D1D698E25CFB06197DD5322B6F15A13ABF0B3+30 RelocPtr g_invalidRefHandle(0x020E969C); -RelocAddr<_MoveRefrToPosition> MoveRefrToPosition(0x00A44980); -RelocAddr<_PlaceAtMe_Native> PlaceAtMe_Native(0x00A2E4C0); -RelocAddr<_AddItem_Native> AddItem_Native(0x00A2C2A0); +RelocAddr<_MoveRefrToPosition> MoveRefrToPosition(0x00A44C40); +RelocAddr<_PlaceAtMe_Native> PlaceAtMe_Native(0x00A2E780); +RelocAddr<_AddItem_Native> AddItem_Native(0x00A2C560); UInt32 GetOrCreateRefrHandle(TESObjectREFR* ref) { diff --git a/skse64/GameReferences.h b/skse64/GameReferences.h index 79cf3d8..c6b69ee 100644 --- a/skse64/GameReferences.h +++ b/skse64/GameReferences.h @@ -261,12 +261,12 @@ class TESObjectREFR : public TESForm void DecRef(); MEMBER_FN_PREFIX(TESObjectREFR); - DEFINE_MEMBER_FN(GetBaseScale, float, 0x002E0730); - DEFINE_MEMBER_FN(IsOffLimits, bool, 0x002EE1F0); + DEFINE_MEMBER_FN(GetBaseScale, float, 0x002E08D0); + DEFINE_MEMBER_FN(IsOffLimits, bool, 0x002EE390); // 9C5031E1D6707680E2D9E4A717A225C1137FED59+145 - DEFINE_MEMBER_FN(GetWeight, float, 0x002FA650); - DEFINE_MEMBER_FN(GetReferenceName, const char *, 0x002EA0B0); - DEFINE_MEMBER_FN(GetWorldspace, TESWorldSpace*, 0x002ED5E0); + DEFINE_MEMBER_FN(GetWeight, float, 0x002FA7F0); + DEFINE_MEMBER_FN(GetReferenceName, const char *, 0x002EA250); + DEFINE_MEMBER_FN(GetWorldspace, TESWorldSpace*, 0x002ED780); }; STATIC_ASSERT(sizeof(TESObjectREFR) == 0xA0); @@ -552,15 +552,15 @@ class Actor : public TESObjectREFR UInt64 unk2A8; // 2A8 MEMBER_FN_PREFIX(Actor); - DEFINE_MEMBER_FN(QueueNiNodeUpdate, void, 0x00727080, bool updateWeight); + DEFINE_MEMBER_FN(QueueNiNodeUpdate, void, 0x00727400, bool updateWeight); // CC3C9D131FFDF35E82C6D7182C4F9E42A3ED1EF2+28 - DEFINE_MEMBER_FN(HasPerk, bool, 0x0068CF60, BGSPerk * perk); - DEFINE_MEMBER_FN(GetLevel, UInt16, 0x00666E70); - DEFINE_MEMBER_FN(SetRace, void, 0x0069AF60, TESRace*, bool isPlayer); - DEFINE_MEMBER_FN(UpdateWeaponAbility, void, 0x006C3550, TESForm*, BaseExtraList * extraData, bool bLeftHand); - DEFINE_MEMBER_FN(UpdateArmorAbility, void, 0x006C34E0, TESForm*, BaseExtraList * extraData); - DEFINE_MEMBER_FN(IsHostileToActor, bool, 0x0067A080, Actor * actor); - DEFINE_MEMBER_FN(ResetAI, void, 0x0066CE60, UInt32 unk1, UInt32 unk2); + DEFINE_MEMBER_FN(HasPerk, bool, 0x0068D2E0, BGSPerk * perk); + DEFINE_MEMBER_FN(GetLevel, UInt16, 0x006671F0); + DEFINE_MEMBER_FN(SetRace, void, 0x0069B2E0, TESRace*, bool isPlayer); + DEFINE_MEMBER_FN(UpdateWeaponAbility, void, 0x006C38D0, TESForm*, BaseExtraList * extraData, bool bLeftHand); + DEFINE_MEMBER_FN(UpdateArmorAbility, void, 0x006C3860, TESForm*, BaseExtraList * extraData); + DEFINE_MEMBER_FN(IsHostileToActor, bool, 0x0067A400, Actor * actor); + DEFINE_MEMBER_FN(ResetAI, void, 0x0066D1E0, UInt32 unk1, UInt32 unk2); TESForm * GetEquippedObject(bool abLeftHand); void UpdateSkinColor(); @@ -900,10 +900,10 @@ class PlayerCharacter : public Character } MEMBER_FN_PREFIX(PlayerCharacter); - DEFINE_MEMBER_FN(GetNumTints, UInt32, 0x0074A580, UInt32 tintType); - DEFINE_MEMBER_FN(GetTintMask, TintMask *, 0x0074A3D0, UInt32 tintType, UInt32 index); - DEFINE_MEMBER_FN(GetDamage, float, 0x00726FC0, InventoryEntryData * pForm); - DEFINE_MEMBER_FN(GetArmorValue, float, 0x00726C50, InventoryEntryData * pForm); + DEFINE_MEMBER_FN(GetNumTints, UInt32, 0x0074A900, UInt32 tintType); + DEFINE_MEMBER_FN(GetTintMask, TintMask *, 0x0074A750, UInt32 tintType, UInt32 index); + DEFINE_MEMBER_FN(GetDamage, float, 0x00727340, InventoryEntryData * pForm); + DEFINE_MEMBER_FN(GetArmorValue, float, 0x00726FD0, InventoryEntryData * pForm); }; STATIC_ASSERT(offsetof(PlayerCharacter, userEventEnabledEvent) == 0x2C8); diff --git a/skse64/GameSettings.h b/skse64/GameSettings.h index 47c0913..749557b 100644 --- a/skse64/GameSettings.h +++ b/skse64/GameSettings.h @@ -59,7 +59,7 @@ class SettingCollectionList Entry items; // 118 MEMBER_FN_PREFIX(SettingCollectionList); - DEFINE_MEMBER_FN(Get_Internal, Setting *, 0x00366FE0, const char * name); + DEFINE_MEMBER_FN(Get_Internal, Setting *, 0x00367180, const char * name); Setting * Get(const char * name); }; diff --git a/skse64/GameStreams.h b/skse64/GameStreams.h index 6d2a748..70ae67c 100644 --- a/skse64/GameStreams.h +++ b/skse64/GameStreams.h @@ -40,14 +40,14 @@ class NiMemStream : public NiBinaryStream virtual void FunctionSwap(bool swap); MEMBER_FN_PREFIX(NiMemStream); - DEFINE_MEMBER_FN(Construct, NiMemStream *, 0x014F5990); - DEFINE_MEMBER_FN(Destroy, void, 0x014F5A00); - DEFINE_MEMBER_FN(Seek, void, 0x014F5A90, SInt32); + DEFINE_MEMBER_FN(Construct, NiMemStream *, 0x014F5CA0); + DEFINE_MEMBER_FN(Destroy, void, 0x014F5D10); + DEFINE_MEMBER_FN(Seek, void, 0x014F5DA0, SInt32); // ??_7NiMemStream@@6B@ + 18 - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00CE4E40, void); - DEFINE_MEMBER_FN(CopyFrom, UInt32, 0x014F5A60, void *); + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00CE4F80, void); + DEFINE_MEMBER_FN(CopyFrom, UInt32, 0x014F5D70, void *); // ??_7NiMemStream@@6B@ + 28 - DEFINE_MEMBER_FN(FunctionSwap, UInt32, 0x014F5AD0, bool); + DEFINE_MEMBER_FN(FunctionSwap, UInt32, 0x014F5DE0, bool); void * data; // 20 UInt32 offset; // 28 @@ -77,20 +77,20 @@ class BSResourceNiBinaryStream : public NiBinaryStream UInt64 offset; // 30 MEMBER_FN_PREFIX(BSResourceNiBinaryStream); - DEFINE_MEMBER_FN(Construct, BSResourceNiBinaryStream *, 0x00D37E10, const char * filePath, UInt32 unk1, UInt32 unk2); // unk1 = 0, unk2 = 0 - DEFINE_MEMBER_FN(ReadLine, UInt32, 0x00D38350, char * dst, UInt32 dstLen, UInt32 terminator); + DEFINE_MEMBER_FN(Construct, BSResourceNiBinaryStream *, 0x00D37F50, const char * filePath, UInt32 unk1, UInt32 unk2); // unk1 = 0, unk2 = 0 + DEFINE_MEMBER_FN(ReadLine, UInt32, 0x00D38490, char * dst, UInt32 dstLen, UInt32 terminator); // see ??_7BSResourceNiBinaryStream@@6B@ ctor - DEFINE_MEMBER_FN(Read, UInt32, 0x00D38540, void * dst, UInt32 len); - DEFINE_MEMBER_FN(Write, UInt32, 0x00D385B0, void * src, UInt32 len); - DEFINE_MEMBER_FN(Destroy, void, 0x00D380F0); + DEFINE_MEMBER_FN(Read, UInt32, 0x00D38680, void * dst, UInt32 len); + DEFINE_MEMBER_FN(Write, UInt32, 0x00D386F0, void * src, UInt32 len); + DEFINE_MEMBER_FN(Destroy, void, 0x00D38230); - DEFINE_MEMBER_FN(IsValid, bool, 0x00D38230, void); - DEFINE_MEMBER_FN(Seek, void, 0x00D38240, SInt32); + DEFINE_MEMBER_FN(IsValid, bool, 0x00D38370, void); + DEFINE_MEMBER_FN(Seek, void, 0x00D38380, SInt32); // ??_7BSResourceNiBinaryStream@@6B@ + 18 - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00D38280, void); // return offset; + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x00D383C0, void); // return offset; // ??_7BSResourceNiBinaryStream@@6B@ + 28 - DEFINE_MEMBER_FN(EnableEndianSwap, void, 0x00D38310, bool); + DEFINE_MEMBER_FN(EnableEndianSwap, void, 0x00D38450, bool); UInt32 ReadLine(char * dst, UInt32 dstLen, UInt32 terminator); UInt32 ReadLine_w(wchar_t * dst, UInt32 dstLen, UInt32 terminator); // length in characters diff --git a/skse64/GameTypes.h b/skse64/GameTypes.h index c1a8de4..c5c1b18 100644 --- a/skse64/GameTypes.h +++ b/skse64/GameTypes.h @@ -79,12 +79,12 @@ class BSReadWriteLock //void LockForRead(); //void LockForWrite(); MEMBER_FN_PREFIX(BSReadWriteLock); - DEFINE_MEMBER_FN(LockForRead, void, 0x00CC4350); - DEFINE_MEMBER_FN(LockForWrite, void, 0x00CC43D0); - DEFINE_MEMBER_FN(UnlockRead, void, 0x00CC4610); - DEFINE_MEMBER_FN(UnlockWrite, void, 0x00CC4620); - DEFINE_MEMBER_FN(LockForReadAndWrite, void, 0x00CC44D0); - DEFINE_MEMBER_FN(TryLockForWrite, bool, 0x00CC45C0); + DEFINE_MEMBER_FN(LockForRead, void, 0x00CC4490); + DEFINE_MEMBER_FN(LockForWrite, void, 0x00CC4510); + DEFINE_MEMBER_FN(UnlockRead, void, 0x00CC4750); + DEFINE_MEMBER_FN(UnlockWrite, void, 0x00CC4760); + DEFINE_MEMBER_FN(LockForReadAndWrite, void, 0x00CC4610); + DEFINE_MEMBER_FN(TryLockForWrite, bool, 0x00CC4700); }; STATIC_ASSERT(sizeof(BSReadWriteLock) == 0x8); @@ -127,14 +127,14 @@ class StringCache const char * data; MEMBER_FN_PREFIX(Ref); - DEFINE_MEMBER_FN(ctor, Ref *, 0x00CE7C50, const char * buf); + DEFINE_MEMBER_FN(ctor, Ref *, 0x00CE7D90, const char * buf); // 31D79EFB15D5E4B34BD32D03A46EAFF65C28ACFB+CB - DEFINE_MEMBER_FN(ctor_ref, Ref *, 0x00CE7D00, const Ref & rhs); - DEFINE_MEMBER_FN(Set, Ref *, 0x00CE7DE0, const char * buf); + DEFINE_MEMBER_FN(ctor_ref, Ref *, 0x00CE7E40, const Ref & rhs); + DEFINE_MEMBER_FN(Set, Ref *, 0x00CE7F20, const char * buf); // 31D79EFB15D5E4B34BD32D03A46EAFF65C28ACFB+41 - DEFINE_MEMBER_FN(Set_ref, Ref *, 0x00CE7EA0, const Ref & rhs); + DEFINE_MEMBER_FN(Set_ref, Ref *, 0x00CE7FE0, const Ref & rhs); // 46F6DC561A3C9677037E58B55951C58A08E41C47+4A - DEFINE_MEMBER_FN(Release, void, 0x00CE9020); + DEFINE_MEMBER_FN(Release, void, 0x00CE9160); Ref(); Ref(const char * buf); diff --git a/skse64/GameUtilities.cpp b/skse64/GameUtilities.cpp index 6775040..0f4e88d 100644 --- a/skse64/GameUtilities.cpp +++ b/skse64/GameUtilities.cpp @@ -1,4 +1,4 @@ #include "skse64/GameUtilities.h" -RelocAddr <_CalculateCRC32_64> CalculateCRC32_64(0x00CC36F0); -RelocAddr <_CalculateCRC32_32> CalculateCRC32_32(0x00CC3670); +RelocAddr <_CalculateCRC32_64> CalculateCRC32_64(0x00CC3830); +RelocAddr <_CalculateCRC32_32> CalculateCRC32_32(0x00CC37B0); diff --git a/skse64/Hooks_Camera.cpp b/skse64/Hooks_Camera.cpp index 7073a68..e160912 100644 --- a/skse64/Hooks_Camera.cpp +++ b/skse64/Hooks_Camera.cpp @@ -6,7 +6,7 @@ #include "xbyak/xbyak.h" #include -RelocAddr kInstallCameraHook_Base(0x00550EC0); +RelocAddr kInstallCameraHook_Base(0x00551070); void InstallCameraHook(TESCameraState * oldState, TESCameraState * newState) { diff --git a/skse64/Hooks_Data.cpp b/skse64/Hooks_Data.cpp index 9fdb39c..96eceb4 100644 --- a/skse64/Hooks_Data.cpp +++ b/skse64/Hooks_Data.cpp @@ -10,7 +10,7 @@ UInt32 DataHandler::LoadScripts_Hook() return ret; } -RelocAddr LoadScripts_Enter(0x00642D40 + 0x3F7); +RelocAddr LoadScripts_Enter(0x006430C0 + 0x3F7); void Hooks_Data_Commit(void) { diff --git a/skse64/Hooks_Event.cpp b/skse64/Hooks_Event.cpp index d4e7173..139b736 100644 --- a/skse64/Hooks_Event.cpp +++ b/skse64/Hooks_Event.cpp @@ -7,7 +7,7 @@ #include "skse64/PluginManager.h" #include "skse64_common/BranchTrampoline.h" -RelocAddr PlayerControls_ctor_Call(0x0063ECC0 + 0xD7A); +RelocAddr PlayerControls_ctor_Call(0x0063F040 + 0xD7A); PlayerControls * PlayerControls::ctor_Hook(void) { diff --git a/skse64/Hooks_Gameplay.cpp b/skse64/Hooks_Gameplay.cpp index b224ba3..b31e98e 100644 --- a/skse64/Hooks_Gameplay.cpp +++ b/skse64/Hooks_Gameplay.cpp @@ -12,7 +12,7 @@ static UInt32 g_forceContainerCategorization = 0; // 3E214CA2A0E6118E008E7407BDE8964B392CE849+9C RelocPtr g_containerMode(0x03193A48); -RelocAddr kHook_ContainerMode_Base(0x008FC890); +RelocAddr kHook_ContainerMode_Base(0x008FCC10); uintptr_t kHook_ContainerMode_Start = kHook_ContainerMode_Base + 0xAE; uintptr_t kHook_ContainerMode_Categories = kHook_ContainerMode_Base + 0xB7; uintptr_t kHook_ContainerMode_NoCategories = kHook_ContainerMode_Base + 0xCB; @@ -23,19 +23,19 @@ void Hooks_Gameplay_EnableForceContainerCategorization(bool enable) } UInt32 g_invalidateKeywordCache = 0; -RelocAddr kHook_BGSKeyword_Base(0x0038AA60); +RelocAddr kHook_BGSKeyword_Base(0x0038AC00); uintptr_t kHook_BGSKeyword_Create_Return = kHook_BGSKeyword_Base + 6; // 4C1457C3040DCD34A7E7B2326F1EA2023930C56B+71 RelocAddr g_gameVersion(0x0177F070); -RelocAddr kHook_ShowVersion_Offset(0x0098F3A0 + 0x78); +RelocAddr kHook_ShowVersion_Offset(0x0098F660 + 0x78); static char kHook_ShowVersion_FormatString[] = "%s.%d (SKSE64 " __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER) "." __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER_MINOR) "." __PREPRO_TOKEN_STR__(SKSE_VERSION_INTEGER_BETA) " rel " __PREPRO_TOKEN_STR__(SKSE_VERSION_RELEASEIDX) ")"; -RelocAddr kHook_Crosshair_LookupREFRByHandle_Enter(0x00744FA0 + 0x88); +RelocAddr kHook_Crosshair_LookupREFRByHandle_Enter(0x00745320 + 0x88); NiPointer g_curCrosshairRef; @@ -58,7 +58,7 @@ TESObjectREFR* Hooks_Gameplay_GetCrosshairRef() static UInt8 s_disableMapMenuMouseWheel = 1; -RelocAddr kHook_MapMenuMouseWheel_Enter(0x0097D630 + 0x187); +RelocAddr kHook_MapMenuMouseWheel_Enter(0x0097D8F0 + 0x187); void Hooks_Gameplay_EnableMapMenuMouseWheel(bool enable) { diff --git a/skse64/Hooks_Handlers.cpp b/skse64/Hooks_Handlers.cpp index 740d02b..ccd8b43 100644 --- a/skse64/Hooks_Handlers.cpp +++ b/skse64/Hooks_Handlers.cpp @@ -24,33 +24,33 @@ void Hooks_Handlers_Init(void) } // ??_7WeaponRightSwingHandler@@6B@ -RelocAddr WeaponRightSwingHandler_Vtable(0x018AF8E8); +RelocAddr WeaponRightSwingHandler_Vtable(0x018AF918); // ??_7WeaponLeftSwingHandler@@6B@ -RelocAddr WeaponLeftSwingHandler_Vtable(0x018AF900); +RelocAddr WeaponLeftSwingHandler_Vtable(0x018AF930); // ??_7RightHandSpellFireHandler@@6B@ -RelocAddr RightHandSpellFireHandler_Vtable(0x018AF990); +RelocAddr RightHandSpellFireHandler_Vtable(0x018AF9C0); // ??_7LeftHandSpellFireHandler@@6B@ -RelocAddr LeftHandSpellFireHandler_Vtable(0x018AF978); +RelocAddr LeftHandSpellFireHandler_Vtable(0x018AF9A8); // ??_7RightHandSpellCastHandler@@6B@ -RelocAddr RightHandSpellCastHandler_Vtable(0x018AF9D8); +RelocAddr RightHandSpellCastHandler_Vtable(0x018AFA08); // ??_7LeftHandSpellCastHandler@@6B@ -RelocAddr LeftHandSpellCastHandler_Vtable(0x018AF9C0); +RelocAddr LeftHandSpellCastHandler_Vtable(0x018AF9F0); // ??_7VoiceSpellFireHandler@@6B@ -RelocAddr VoiceSpellFireHandler_Vtable(0x018AF9A8); +RelocAddr VoiceSpellFireHandler_Vtable(0x018AF9D8); // ??_7VoiceSpellCastHandler@@6B@ -RelocAddr VoiceSpellCastHandler_Vtable(0x018AF9F0); +RelocAddr VoiceSpellCastHandler_Vtable(0x018AFA20); // ??_7BowDrawnHandler@@6B@ -RelocAddr BowDrawnHandler_Vtable(0x018AFD20); +RelocAddr BowDrawnHandler_Vtable(0x018AFD50); // ??_7BowReleaseHandler@@6B@ -RelocAddr BowReleaseHandler_Vtable(0x018AFD38); +RelocAddr BowReleaseHandler_Vtable(0x018AFD68); // ??_7WeaponBeginDrawRightHandler@@6B@ -RelocAddr WeaponBeginDrawRightHandler_Vtable(0x018AFA08); +RelocAddr WeaponBeginDrawRightHandler_Vtable(0x018AFA38); // ??_7WeaponBeginSheatheRightHandler@@6B@ -RelocAddr WeaponBeginSheatheRightHandler_Vtable(0x018AFA20); +RelocAddr WeaponBeginSheatheRightHandler_Vtable(0x018AFA50); // ??_7RightHandWeaponDrawHandler@@6B@ -RelocAddr RightHandWeaponDrawHandler_Vtable(0x018AFA38); +RelocAddr RightHandWeaponDrawHandler_Vtable(0x018AFA68); // ??_7RightHandWeaponSheatheHandler@@6B@ -RelocAddr RightHandWeaponSheatheHandler_Vtable(0x018AFA50); +RelocAddr RightHandWeaponSheatheHandler_Vtable(0x018AFA80); void Hooks_Handlers_Commit(void) { diff --git a/skse64/Hooks_NetImmerse.cpp b/skse64/Hooks_NetImmerse.cpp index cc7bded..b7478c1 100644 --- a/skse64/Hooks_NetImmerse.cpp +++ b/skse64/Hooks_NetImmerse.cpp @@ -32,7 +32,7 @@ struct RenderTargetInfo }; typedef void ( * _CreateRenderTarget)(void * renderTargetManager, UInt64 type, RenderTargetInfo * info); -RelocAddr<_CreateRenderTarget> CreateRenderTarget(0x00E4AF50); +RelocAddr<_CreateRenderTarget> CreateRenderTarget(0x00E4B090); _CreateRenderTarget CreateRenderTarget_Original = nullptr; void CreateRenderTarget_Hook(BSRenderManager ** targetManager, UInt64 type, RenderTargetInfo * info) @@ -65,7 +65,7 @@ void Hooks_NetImmerse_Init(void) } } -RelocAddr UpdateEquipment_Enter(0x00727080 + 0x197); +RelocAddr UpdateEquipment_Enter(0x00727400 + 0x197); void Hooks_NetImmerse_Commit(void) { diff --git a/skse64/Hooks_Papyrus.cpp b/skse64/Hooks_Papyrus.cpp index 89ef964..403b851 100644 --- a/skse64/Hooks_Papyrus.cpp +++ b/skse64/Hooks_Papyrus.cpp @@ -70,16 +70,16 @@ #include "xbyak/xbyak.h" typedef void(*_RegisterPapyrusFunctions)(VMClassRegistry ** registry); -RelocAddr<_RegisterPapyrusFunctions> RegisterPapyrusFunctions(0x00A19CB0); -RelocAddr RegisterPapyrusFunctions_Start(0x009BE020 + 0xCC3); +RelocAddr<_RegisterPapyrusFunctions> RegisterPapyrusFunctions(0x00A19F70); +RelocAddr RegisterPapyrusFunctions_Start(0x009BE2E0 + 0xCC3); -RelocAddr UnregisterFromSleep_Enter(0x009C3230 + 0x14B); -RelocAddr RevertGlobalData_Enter(0x009CA200 + 0x22); -RelocAddr RevertGlobalData_Enter2(0x009CA740 + 0x288); -RelocAddr SaveRegsSleep_Enter(0x009CCC80 + 0x390); -RelocAddr LoadRegsSleep_Enter(0x009CDD60 + 0x2FB); +RelocAddr UnregisterFromSleep_Enter(0x009C34F0 + 0x14B); +RelocAddr RevertGlobalData_Enter(0x009CA4C0 + 0x22); +RelocAddr RevertGlobalData_Enter2(0x009CAA00 + 0x288); +RelocAddr SaveRegsSleep_Enter(0x009CCF40 + 0x390); +RelocAddr LoadRegsSleep_Enter(0x009CE020 + 0x2FB); -RelocAddr kDFQueueHook_Base(0x009D0310); +RelocAddr kDFQueueHook_Base(0x009D05D0); uintptr_t kDFQueueHook_HookAddr = kDFQueueHook_Base + 0x6E; uintptr_t kDFQueueHook_Entry_retn = kDFQueueHook_Base + 0x73; diff --git a/skse64/Hooks_SaveLoad.cpp b/skse64/Hooks_SaveLoad.cpp index 86c842a..b83a923 100644 --- a/skse64/Hooks_SaveLoad.cpp +++ b/skse64/Hooks_SaveLoad.cpp @@ -124,13 +124,13 @@ UInt8 TESQuest::NewGame_Hook(UInt8 * unk1, UInt8 unk2) return ret; } -RelocAddr SaveGame_HookTarget_Enter(0x0060FD50 + 0x2B3); -RelocAddr LoadGame_HookTarget_Enter(0x00615310 + 0x34F); +RelocAddr SaveGame_HookTarget_Enter(0x006100D0 + 0x2B3); +RelocAddr LoadGame_HookTarget_Enter(0x00615690 + 0x34F); // 691ACD40B8430FBDA081477DEB2A9948ACC235F1+11F -RelocAddr ProcessEvents_Enter(0x00646010 + 0x9A); -RelocAddr NewGame_Enter(0x00942830 + 0x59); -RelocAddr DeleteSaveGame_Enter(0x00601C20 + 0x77); -RelocAddr DeleteSaveGame_Enter2(0x00601CF0 + 0x17); +RelocAddr ProcessEvents_Enter(0x00646390 + 0x9A); +RelocAddr NewGame_Enter(0x00942AF0 + 0x59); +RelocAddr DeleteSaveGame_Enter(0x00601FA0 + 0x77); +RelocAddr DeleteSaveGame_Enter2(0x00602070 + 0x17); void Hooks_SaveLoad_Commit(void) { diff --git a/skse64/Hooks_Scaleform.cpp b/skse64/Hooks_Scaleform.cpp index e81ef57..8393b87 100644 --- a/skse64/Hooks_Scaleform.cpp +++ b/skse64/Hooks_Scaleform.cpp @@ -924,7 +924,7 @@ class SKSEScaleform_GetModList : public GFxFunctionHandler }; typedef void * (* _UIOpenJournalMenu)(bool bUnk); -RelocAddr<_UIOpenJournalMenu> UIOpenJournalMenu(0x009958B0); +RelocAddr<_UIOpenJournalMenu> UIOpenJournalMenu(0x00995B70); class SKSEScaleform_OpenJournalMenu : public GFxFunctionHandler { @@ -1148,13 +1148,13 @@ class StandardItemData UInt8 unk30[0x10]; // 30 MEMBER_FN_PREFIX(StandardItemData); - DEFINE_MEMBER_FN(ctor_data, StandardItemData *, 0x008EE230, GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); + DEFINE_MEMBER_FN(ctor_data, StandardItemData *, 0x008EE5B0, GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); StandardItemData * ctor_Hook(GFxMovieView ** movieView, InventoryEntryData * objDesc, UInt64 unk); static uintptr_t GetCtorHookAddress() { - static RelocAddr kCtorHookAddress(0x008EF1C0 + 0x97); + static RelocAddr kCtorHookAddress(0x008EF540 + 0x97); return kCtorHookAddress.GetUIntPtr(); } }; @@ -1203,11 +1203,11 @@ class MagicItemData MEMBER_FN_PREFIX(MagicItemData); - DEFINE_MEMBER_FN(ctor_data, MagicItemData *, 0x0093E990, GFxMovieView ** movieView, TESForm * pForm, int unk); // unk is ignored by ctor + DEFINE_MEMBER_FN(ctor_data, MagicItemData *, 0x0093EC50, GFxMovieView ** movieView, TESForm * pForm, int unk); // unk is ignored by ctor static uintptr_t GetCtorHookAddress() { - static RelocAddr kCtorHookAddress(0x0093FFB0 + 0x97); + static RelocAddr kCtorHookAddress(0x00940270 + 0x97); return kCtorHookAddress.GetUIntPtr(); } @@ -1247,7 +1247,7 @@ namespace favMenuDataHook // 1 - Item - RelocAddr kSetItemData_Base(0x00917270); + RelocAddr kSetItemData_Base(0x00917530); uintptr_t kSetItemData_hook = kSetItemData_Base + 0xC2; uintptr_t kSetItemData_retn = kSetItemData_Base + 0xC8; @@ -1277,7 +1277,7 @@ namespace favMenuDataHook // 2 - Magic - RelocAddr kSetMagicData_Base(0x00918280); + RelocAddr kSetMagicData_Base(0x00918540); uintptr_t kSetMagicData_hook = kSetMagicData_Base + 0x6B; uintptr_t kSetMagicData_retn = kSetMagicData_Base + 0x71; @@ -1302,7 +1302,7 @@ namespace favMenuDataHook // 3 - VampireLord - RelocAddr kSetVampireData_Base(0x00918510); + RelocAddr kSetVampireData_Base(0x009187D0); uintptr_t kSetVampireData_hook = kSetVampireData_Base + 0x92; uintptr_t kSetVampireData_retn = kSetVampireData_Base + 0x98; } @@ -1311,7 +1311,7 @@ namespace favMenuDataHook namespace enchantMenuDataHook { - RelocAddr kSetData_Base(0x0090B460); + RelocAddr kSetData_Base(0x0090B720); uintptr_t kSetData_hook = kSetData_Base + 0x4A1; uintptr_t kSetData_retn = kSetData_Base + 0x4A6; } @@ -1390,7 +1390,7 @@ void EnchantConstructMenu_CategoryListEntry_SetData_Extended(EnchantConstructMen namespace smithingMenuDataHook { - RelocAddr kSetData_Base(0x00901D50); + RelocAddr kSetData_Base(0x009020D0); uintptr_t kSetData_hook = kSetData_Base + 0xD6; uintptr_t kSetData_retn = kSetData_Base + 0xDB; @@ -1423,7 +1423,7 @@ namespace smithingMenuDataHook namespace craftingMenuDataHook { // - RelocAddr kSetData_Base(0x00902280); + RelocAddr kSetData_Base(0x00902600); uintptr_t kSetData_hook = kSetData_Base + 0xC4; uintptr_t kSetData_retn = kSetData_Base + 0xC9; @@ -1460,7 +1460,7 @@ namespace craftingMenuDataHook namespace alchemyMenuDataHook { // - RelocAddr kSetData_Base(0x00901F90); + RelocAddr kSetData_Base(0x00902310); uintptr_t kSetData_hook = kSetData_Base + 0xC6; uintptr_t kSetData_retn = kSetData_Base + 0xCB; @@ -1489,7 +1489,7 @@ namespace alchemyMenuDataHook // Category arguments // (note: this passes data in arguments to SetCategoriesList. makes it more difficult to extend) - RelocAddr kExtendCategoryArgs_Base(0x0090F950); + RelocAddr kExtendCategoryArgs_Base(0x0090FC10); uintptr_t kExtendCategoryArgs_hook = kExtendCategoryArgs_Base + 0x564; uintptr_t kExtendCategoryArgs_retn = kExtendCategoryArgs_Base + 0x569; @@ -1511,7 +1511,7 @@ namespace alchemyMenuDataHook namespace GFxLoaderHook { - RelocPtr kCtor_Base(0x00640290 + 0xDA1); // WinMain+15 + RelocPtr kCtor_Base(0x00640610 + 0xDA1); // WinMain+15 GFxLoader *ctor_Hook(GFxLoader * loader) { @@ -1609,7 +1609,7 @@ void InstallHooks(GFxMovieView * view) globals.SetMember("skse", &skse); } -RelocAddr kInstallHooks_Enter(0x00FAB4D0 + 0x1DD); +RelocAddr kInstallHooks_Enter(0x00FAB5F0 + 0x1DD); void InstallHooks_Entry(GFxMovieView *pthis, UInt32 unk) { diff --git a/skse64/Hooks_Threads.cpp b/skse64/Hooks_Threads.cpp index 50a6caf..74a9347 100644 --- a/skse64/Hooks_Threads.cpp +++ b/skse64/Hooks_Threads.cpp @@ -45,8 +45,8 @@ void Hooks_Threads_Init(void) } // 691ACD40B8430FBDA081477DEB2A9948ACC235F1+11F -RelocAddr ProcessTasks_HookTarget_Enter(0x00646010 + 0xB9C); -RelocAddr ProcessTasks_HookTarget_Enter2(0x00647B50 + 0x1C); +RelocAddr ProcessTasks_HookTarget_Enter(0x00646390 + 0xB9C); +RelocAddr ProcessTasks_HookTarget_Enter2(0x00647ED0 + 0x1C); void Hooks_Threads_Commit(void) { diff --git a/skse64/Hooks_UI.cpp b/skse64/Hooks_UI.cpp index 74bbc96..2a302e1 100644 --- a/skse64/Hooks_UI.cpp +++ b/skse64/Hooks_UI.cpp @@ -79,7 +79,7 @@ void TaskInterface::AddUITask(UIDelegate_v1* task) } } -RelocAddr ProcessEventQueue_HookTarget_Enter(0x00F9F360 + 0xAB5); +RelocAddr ProcessEventQueue_HookTarget_Enter(0x00F9F480 + 0xAB5); void Hooks_UI_Commit(void) { diff --git a/skse64/NiExtraData.h b/skse64/NiExtraData.h index 72c6630..b5a4f89 100644 --- a/skse64/NiExtraData.h +++ b/skse64/NiExtraData.h @@ -220,8 +220,8 @@ class BSFaceGenAnimationData : public NiExtraData UInt64 unk220[2]; // 220 MEMBER_FN_PREFIX(BSFaceGenAnimationData); - DEFINE_MEMBER_FN(SetExpression, void, 0x0041D2B0, UInt32 type, float value); - DEFINE_MEMBER_FN(Reset, void, 0x0041CBB0, float value, UInt8 unk1, UInt8 unk2, UInt8 unk3, UInt8 unk4); + DEFINE_MEMBER_FN(SetExpression, void, 0x0041D450, UInt32 type, float value); + DEFINE_MEMBER_FN(Reset, void, 0x0041CD50, float value, UInt8 unk1, UInt8 unk2, UInt8 unk3, UInt8 unk4); // Alternatives to inlined functions void SetPhonome(UInt32 type, float value) diff --git a/skse64/NiGeometry.cpp b/skse64/NiGeometry.cpp index d3d3eeb..4f01224 100644 --- a/skse64/NiGeometry.cpp +++ b/skse64/NiGeometry.cpp @@ -2,9 +2,9 @@ #include "skse64/GameAPI.h" // 4772884F2DDD41847925EAA949727085D82940A1+401 -RelocAddr<_CreateBSTriShape> CreateBSTriShape(0x00D28DB0); +RelocAddr<_CreateBSTriShape> CreateBSTriShape(0x00D28EF0); // 4772884F2DDD41847925EAA949727085D82940A1+414 -RelocAddr<_CreateBSDynamicTriShape> CreateBSDynamicTriShape(0x00D340A0); +RelocAddr<_CreateBSDynamicTriShape> CreateBSDynamicTriShape(0x00D341E0); // ??_7NiTriShape@@6B@ static const RelocPtr s_NiTriShapeVtbl(0x019A9830); @@ -67,7 +67,7 @@ BSDismemberSkinInstance * BSDismemberSkinInstance::Create() { typedef BSDismemberSkinInstance * (*_BSDismemberSkinInstance_Create)(); // 4772884F2DDD41847925EAA949727085D82940A1+2E4 - static RelocAddr <_BSDismemberSkinInstance_Create> BSDismemberSkinInstance_Create(0x00D2CFF0); + static RelocAddr <_BSDismemberSkinInstance_Create> BSDismemberSkinInstance_Create(0x00D2D130); return BSDismemberSkinInstance_Create(); } diff --git a/skse64/NiGeometry.h b/skse64/NiGeometry.h index 27b2a23..07e1d5a 100644 --- a/skse64/NiGeometry.h +++ b/skse64/NiGeometry.h @@ -40,7 +40,7 @@ class NiTriBasedGeom : public NiGeometry { public: // 9D070CBFB7F7B861F270D5D29E210A479261131B+C2 - DEFINE_MEMBER_FN_1(ctor, NiTriBasedGeom *, 0x00D55EC0, NiTriShapeData * geometry); + DEFINE_MEMBER_FN_1(ctor, NiTriBasedGeom *, 0x00D56000, NiTriShapeData * geometry); }; class NiTriShape : public NiTriBasedGeom @@ -130,7 +130,7 @@ class BSDynamicTriShape : public BSTriShape UInt32 unk17C; // 17C // - DEFINE_MEMBER_FN_0(ctor, BSDynamicTriShape *, 0x00D34220); + DEFINE_MEMBER_FN_0(ctor, BSDynamicTriShape *, 0x00D34360); }; STATIC_ASSERT(sizeof(BSDynamicTriShape) == 0x180); @@ -425,8 +425,8 @@ class NiSkinInstance : public NiObject NiSkinInstance * Clone(); MEMBER_FN_PREFIX(NiSkinInstance); - DEFINE_MEMBER_FN(Copy, NiSkinInstance*, 0x00D13510); - DEFINE_MEMBER_FN(ctor, NiSkinInstance *, 0x00D41250); + DEFINE_MEMBER_FN(Copy, NiSkinInstance*, 0x00D13650); + DEFINE_MEMBER_FN(ctor, NiSkinInstance *, 0x00D41390); }; STATIC_ASSERT(offsetof(NiSkinInstance, lock) == 0x60); STATIC_ASSERT(sizeof(NiSkinInstance) == 0x88); diff --git a/skse64/NiMaterial.cpp b/skse64/NiMaterial.cpp index 1b714ae..e2ed30a 100644 --- a/skse64/NiMaterial.cpp +++ b/skse64/NiMaterial.cpp @@ -3,9 +3,9 @@ #include "skse64/GameObjects.h" // 96D2EFF152717F366F7EAAA62CAD7EB12855423D+47 -RelocAddr<_CreateShaderMaterial> CreateShaderMaterial(0x014AF590); +RelocAddr<_CreateShaderMaterial> CreateShaderMaterial(0x014AF880); -RelocAddr<_CreateFacegenTintMaterial> CreateFacegenTintMaterial(0x014B2090); +RelocAddr<_CreateFacegenTintMaterial> CreateFacegenTintMaterial(0x014B2380); void BSLightingShaderMaterial::SetTextureSet(BSTextureSet * newSet) { diff --git a/skse64/NiMaterial.h b/skse64/NiMaterial.h index 94cd9b6..2760bab 100644 --- a/skse64/NiMaterial.h +++ b/skse64/NiMaterial.h @@ -118,8 +118,8 @@ class BSLightingShaderMaterial : public BSShaderMaterialBase void SetTextureSet(BSTextureSet * textureSet); MEMBER_FN_PREFIX(BSLightingShaderMaterial); - DEFINE_MEMBER_FN(CopyFrom, void, 0x014AEA00, BSLightingShaderMaterial * other); - DEFINE_MEMBER_FN(dtor_base, void, 0x014AE8A0); + DEFINE_MEMBER_FN(CopyFrom, void, 0x014AECF0, BSLightingShaderMaterial * other); + DEFINE_MEMBER_FN(dtor_base, void, 0x014AEB90); }; STATIC_ASSERT(sizeof(BSLightingShaderMaterial) == 0xA0); @@ -132,7 +132,7 @@ class BSLightingShaderMaterialEye : public BSLightingShaderMaterial NiTexturePtr unkA8; // A8 inited to 0 // uses ??_7BSLightingShaderMaterialEye@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B03B0); + DEFINE_MEMBER_FN(dtor, void, 0x014B06A0); }; class BSLightingShaderMaterialEnvmap : public BSLightingShaderMaterial @@ -144,7 +144,7 @@ class BSLightingShaderMaterialEnvmap : public BSLightingShaderMaterial NiTexturePtr unkA8; // A8 inited to 0 // 7EF3019D0F8B78F82664DFE78C15204CD5C8C2B9+392 - DEFINE_MEMBER_FN(dtor, void, 0x014AFCD0); + DEFINE_MEMBER_FN(dtor, void, 0x014AFFC0); }; class BSLightingShaderMaterialFacegen : public BSLightingShaderMaterial @@ -157,7 +157,7 @@ class BSLightingShaderMaterialFacegen : public BSLightingShaderMaterial NiTexturePtr unkB0; // B0 inited to 0 // uses ??_7BSLightingShaderMaterialFacegen@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B19A0); + DEFINE_MEMBER_FN(dtor, void, 0x014B1C90); }; class BSLightingShaderMaterialGlowmap : public BSLightingShaderMaterial @@ -168,7 +168,7 @@ class BSLightingShaderMaterialGlowmap : public BSLightingShaderMaterial NiTexturePtr glowMap; // A0 // uses ??_7BSLightingShaderMaterialGlowmap@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B0AB0); + DEFINE_MEMBER_FN(dtor, void, 0x014B0DA0); }; class BSLightingShaderMaterialParallax : public BSLightingShaderMaterial @@ -179,7 +179,7 @@ class BSLightingShaderMaterialParallax : public BSLightingShaderMaterial NiTexturePtr unkA0; // A0 // uses ??_7BSLightingShaderMaterialParallax@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B0F30); + DEFINE_MEMBER_FN(dtor, void, 0x014B1220); }; class BSLightingShaderMaterialMultiLayerParallax : public BSLightingShaderMaterial @@ -192,7 +192,7 @@ class BSLightingShaderMaterialMultiLayerParallax : public BSLightingShaderMateri NiTexturePtr unkB0; // A0 // uses ??_7BSLightingShaderMaterialMultiLayerParallax@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B3410); + DEFINE_MEMBER_FN(dtor, void, 0x014B3700); }; class BSLightingShaderMaterialParallaxOcc : public BSLightingShaderMaterial @@ -203,7 +203,7 @@ class BSLightingShaderMaterialParallaxOcc : public BSLightingShaderMaterial NiTexturePtr unkA0; // A0 // uses ??_7BSLightingShaderMaterialParallaxOcc@@6B@ at +17 - DEFINE_MEMBER_FN(dtor, void, 0x014B13B0); + DEFINE_MEMBER_FN(dtor, void, 0x014B16A0); }; class BSLightingShaderMaterialFacegenTint : public BSLightingShaderMaterial diff --git a/skse64/NiNodes.h b/skse64/NiNodes.h index 30aff5e..242f09e 100644 --- a/skse64/NiNodes.h +++ b/skse64/NiNodes.h @@ -25,7 +25,7 @@ class NiNode : public NiAVObject static NiNode * Create(UInt16 arrBufLen = 0); - DEFINE_MEMBER_FN_1(ctor, NiNode*, 0x00D185C0, UInt16 arrBufLen); + DEFINE_MEMBER_FN_1(ctor, NiNode*, 0x00D18700, UInt16 arrBufLen); }; STATIC_ASSERT(sizeof(NiNode) == 0x128); @@ -38,7 +38,7 @@ class BSFadeNode : public NiNode static BSFadeNode * Create(); // 905B699D46B52EE8B3BD44B9DAFBC2F728A310B5+81 - DEFINE_MEMBER_FN_0(ctor, BSFadeNode *, 0x01471200); + DEFINE_MEMBER_FN_0(ctor, BSFadeNode *, 0x01471320); }; STATIC_ASSERT(sizeof(BSFadeNode) == 0x158); @@ -68,7 +68,7 @@ class BSFaceGenNiNode : public NiNode }; MEMBER_FN_PREFIX(BSFaceGenNiNode); - DEFINE_MEMBER_FN(AdjustHeadMorph, void, 0x00432AC0, UInt32 unk04, UInt32 unk08, float delta); + DEFINE_MEMBER_FN(AdjustHeadMorph, void, 0x00432C60, UInt32 unk04, UInt32 unk08, float delta); }; //STATIC_ASSERT(sizeof(BSFaceGenNiNode) == 0xEC); diff --git a/skse64/NiObjects.cpp b/skse64/NiObjects.cpp index 7b6ca10..26c7d58 100644 --- a/skse64/NiObjects.cpp +++ b/skse64/NiObjects.cpp @@ -6,10 +6,10 @@ RelocPtr g_worldToCamMatrix(0x03194030); // 2789403034E226069B9EC04A8AC7BD367AF61384+13E RelocPtr> g_viewPort(0x031955F0); -RelocAddr<_WorldPtToScreenPt3_Internal> WorldPtToScreenPt3_Internal(0x00D27E00); +RelocAddr<_WorldPtToScreenPt3_Internal> WorldPtToScreenPt3_Internal(0x00D27F40); -RelocAddr<_NiAllocate> NiAllocate(0x00CE3450); -RelocAddr<_NiFree> NiFree(0x00CE36F0); +RelocAddr<_NiAllocate> NiAllocate(0x00CE3590); +RelocAddr<_NiFree> NiFree(0x00CE3830); void NiRefObject::IncRef(void) { diff --git a/skse64/NiObjects.h b/skse64/NiObjects.h index 89e01c2..6a6bdbe 100644 --- a/skse64/NiObjects.h +++ b/skse64/NiObjects.h @@ -123,7 +123,7 @@ class NiObject : public NiRefObject MEMBER_FN_PREFIX(NiObject); - DEFINE_MEMBER_FN(DeepCopy, NiStream *, 0x00D13700, NiObject ** result); + DEFINE_MEMBER_FN(DeepCopy, NiStream *, 0x00D13840, NiObject ** result); }; STATIC_ASSERT(sizeof(NiObject) == 0x10); @@ -219,7 +219,7 @@ class NiAVObject : public NiObjectNET MEMBER_FN_PREFIX(NiAVObject); // A5B2FC7D42E72BA4F6A679BAC0BAE17C12A4AFE1+E3 - DEFINE_MEMBER_FN(UpdateNode, void, 0x00D175F0, ControllerUpdateContext * ctx); + DEFINE_MEMBER_FN(UpdateNode, void, 0x00D17730, ControllerUpdateContext * ctx); }; STATIC_ASSERT(offsetof(NiAVObject, m_localTransform) == 0x48); STATIC_ASSERT(offsetof(NiAVObject, m_worldTransform) == 0x7C); @@ -262,11 +262,11 @@ class BSFaceGenModel : public NiRefObject UInt32 pad1C; // 1C MEMBER_FN_PREFIX(BSFaceGenModel); - DEFINE_MEMBER_FN(ctor, void, 0x0042D960); - DEFINE_MEMBER_FN(CopyFrom, void, 0x0042DA00, BSFaceGenModel * other); - DEFINE_MEMBER_FN(SetModelData, bool, 0x0042E180, const char * meshPath, void * unk1, UInt8 unk2); - DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x0042DFE0, BSFixedString * morphName, TESModelTri * triModel, NiAVObject ** headNode, float relative, UInt8 unk1); - DEFINE_MEMBER_FN(ApplyRaceMorph, UInt8, 0x0042DE90, BSFixedString* morphName, TESModelTri* triModel, NiAVObject** headNode, float relative, UInt8 unk1); + DEFINE_MEMBER_FN(ctor, void, 0x0042DB00); + DEFINE_MEMBER_FN(CopyFrom, void, 0x0042DBA0, BSFaceGenModel * other); + DEFINE_MEMBER_FN(SetModelData, bool, 0x0042E320, const char * meshPath, void * unk1, UInt8 unk2); + DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x0042E180, BSFixedString * morphName, TESModelTri * triModel, NiAVObject ** headNode, float relative, UInt8 unk1); + DEFINE_MEMBER_FN(ApplyRaceMorph, UInt8, 0x0042E030, BSFixedString* morphName, TESModelTri* triModel, NiAVObject** headNode, float relative, UInt8 unk1); }; // 18 @@ -277,7 +277,7 @@ class BSFaceGenMorphData : public NiRefObject MEMBER_FN_PREFIX(BSFaceGenMorphData); - DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x00430E80, const char ** morphName, NiAVObject * faceTrishape, float relative, UInt8 unk2); + DEFINE_MEMBER_FN(ApplyMorph, UInt8, 0x00431020, const char ** morphName, NiAVObject * faceTrishape, float relative, UInt8 unk2); }; // 20 diff --git a/skse64/NiProperties.h b/skse64/NiProperties.h index de13c37..84e5fa8 100644 --- a/skse64/NiProperties.h +++ b/skse64/NiProperties.h @@ -197,11 +197,11 @@ class BSLightingShaderProperty : public BSShaderProperty // This function seems to fix weird lighting issues when creating armors internally // Not particularly sure what it does but it seems to mess around with a lot material flags MEMBER_FN_PREFIX(BSLightingShaderProperty); - DEFINE_MEMBER_FN(InitializeShader, UInt32, 0x014A4A40, BSGeometry * geometry); - DEFINE_MEMBER_FN(SetMaterial, UInt32, 0x014737E0, BSLightingShaderMaterial * material, bool unk1); // unk1 usually 1 - DEFINE_MEMBER_FN(SetFlags, UInt64, 0x014736D0, UInt8 unk1, UInt8 unk2); + DEFINE_MEMBER_FN(InitializeShader, UInt32, 0x014A4D30, BSGeometry * geometry); + DEFINE_MEMBER_FN(SetMaterial, UInt32, 0x01473900, BSLightingShaderMaterial * material, bool unk1); // unk1 usually 1 + DEFINE_MEMBER_FN(SetFlags, UInt64, 0x014737F0, UInt8 unk1, UInt8 unk2); // InvalidateMaterial was inlined away - DEFINE_MEMBER_FN(InvalidateTextures, void, 0x014A4DF0, UInt32 unk1); // unk1 usually 0, called after material Releases textures + DEFINE_MEMBER_FN(InvalidateTextures, void, 0x014A50E0, UInt32 unk1); // unk1 usually 0, called after material Releases textures }; STATIC_ASSERT(offsetof(BSLightingShaderProperty, emissiveColor) == 0xF0); diff --git a/skse64/NiRenderer.h b/skse64/NiRenderer.h index a2eb79e..ce79929 100644 --- a/skse64/NiRenderer.h +++ b/skse64/NiRenderer.h @@ -33,7 +33,7 @@ class BSRenderManager // 141415050 - CreateRenderTargets - DEFINE_MEMBER_FN_2(CreateRenderTexture, NiTexture::RendererData *, 0x00E43810, UInt32 width, UInt32 height); + DEFINE_MEMBER_FN_2(CreateRenderTexture, NiTexture::RendererData *, 0x00E43950, UInt32 width, UInt32 height); }; extern RelocPtr g_renderManager; diff --git a/skse64/NiSerialization.h b/skse64/NiSerialization.h index 39e5355..e66ce8d 100644 --- a/skse64/NiSerialization.h +++ b/skse64/NiSerialization.h @@ -21,9 +21,9 @@ class NiStream virtual bool SavePath(const char * path); MEMBER_FN_PREFIX(NiStream); - DEFINE_MEMBER_FN(ctor, NiStream *, 0x00D1A600); - DEFINE_MEMBER_FN(dtor, void, 0x00D1A860); - DEFINE_MEMBER_FN(AddObject, void, 0x00D1AA60, NiObject * object); + DEFINE_MEMBER_FN(ctor, NiStream *, 0x00D1A740); + DEFINE_MEMBER_FN(dtor, void, 0x00D1A9A0); + DEFINE_MEMBER_FN(AddObject, void, 0x00D1ABA0, NiObject * object); // void ** _vtbl; // 000 UInt64 pad004[(0x218 - 0x008) >> 3]; // 008 @@ -55,7 +55,7 @@ class BSStream : public NiStream { public: MEMBER_FN_PREFIX(BSStream); - DEFINE_MEMBER_FN(dtor, void, 0x00195CC0); + DEFINE_MEMBER_FN(dtor, void, 0x00195CD0); UInt64 unk620; UInt64 unk628; @@ -69,6 +69,6 @@ class DeepCopyStream : public NiStream virtual ~DeepCopyStream(); MEMBER_FN_PREFIX(DeepCopyStream); - DEFINE_MEMBER_FN(SaveStream, bool, 0x00D1AF00, char ** buffer, UInt32 * length); - DEFINE_MEMBER_FN(LoadStream, bool, 0x00D1AEB0, char * buffer, UInt32 length); + DEFINE_MEMBER_FN(SaveStream, bool, 0x00D1B040, char ** buffer, UInt32 * length); + DEFINE_MEMBER_FN(LoadStream, bool, 0x00D1AFF0, char * buffer, UInt32 length); }; diff --git a/skse64/NiTextures.cpp b/skse64/NiTextures.cpp index 6df939a..ccaa9d4 100644 --- a/skse64/NiTextures.cpp +++ b/skse64/NiTextures.cpp @@ -1,4 +1,4 @@ #include "skse64/NiTextures.h" -RelocAddr<_CreateSourceTexture> CreateSourceTexture(0x00D2A7C0); -RelocAddr<_LoadTexture> LoadTexture(0x01477820); +RelocAddr<_CreateSourceTexture> CreateSourceTexture(0x00D2A900); +RelocAddr<_LoadTexture> LoadTexture(0x01477940); diff --git a/skse64/NiTextures.h b/skse64/NiTextures.h index 88c32d6..6baf422 100644 --- a/skse64/NiTextures.h +++ b/skse64/NiTextures.h @@ -170,9 +170,9 @@ class NiRenderedTexture : public NiTexture MEMBER_FN_PREFIX(NiRenderedTexture); DEFINE_MEMBER_FN(ctor, void, 0x00000000); - DEFINE_MEMBER_FN(UpdateVirtualImage, void, 0x00FAA9A0, NiRenderedTexture * newTexture); - DEFINE_MEMBER_FN(AddVirtualImage, UInt8, 0x00FAAA70, BSFixedString linkageName); - DEFINE_MEMBER_FN(ReleaseVirtualImage, void, 0x00FAA930); + DEFINE_MEMBER_FN(UpdateVirtualImage, void, 0x00FAAAC0, NiRenderedTexture * newTexture); + DEFINE_MEMBER_FN(AddVirtualImage, UInt8, 0x00FAAB90, BSFixedString linkageName); + DEFINE_MEMBER_FN(ReleaseVirtualImage, void, 0x00FAAA50); }; // 58 diff --git a/skse64/ObScript.cpp b/skse64/ObScript.cpp index d4eb7c6..c62864b 100644 --- a/skse64/ObScript.cpp +++ b/skse64/ObScript.cpp @@ -7,4 +7,4 @@ RelocPtr g_firstObScriptCommand(0x01FCEA10); RelocPtr g_firstConsoleCommand(0x01FDD0B0); // 42E5B9018CCF84B813403067F1D963D8C753ED8D+4C -RelocAddr <_ObScript_ExtractArgs> ObScript_ExtractArgs(0x0033E3B0); +RelocAddr <_ObScript_ExtractArgs> ObScript_ExtractArgs(0x0033E550); diff --git a/skse64/PapyrusArgs.h b/skse64/PapyrusArgs.h index 6233980..7858af8 100644 --- a/skse64/PapyrusArgs.h +++ b/skse64/PapyrusArgs.h @@ -18,9 +18,9 @@ class VMArgList ~VMArgList(); MEMBER_FN_PREFIX(VMArgList); - DEFINE_MEMBER_FN(GetOffset, UInt32, 0x01429FD0, VMState * state); + DEFINE_MEMBER_FN(GetOffset, UInt32, 0x0142A0F0, VMState * state); // FB33603AEC8921D8A9361F52478B667E583E54A1+20 - DEFINE_MEMBER_FN(Get, VMValue *, 0x0142A040, VMState * state, UInt32 idx, UInt32 offset); + DEFINE_MEMBER_FN(Get, VMValue *, 0x0142A160, VMState * state, UInt32 idx, UInt32 offset); }; template diff --git a/skse64/PapyrusInterfaces.h b/skse64/PapyrusInterfaces.h index 7390af7..c66e3ed 100644 --- a/skse64/PapyrusInterfaces.h +++ b/skse64/PapyrusInterfaces.h @@ -51,5 +51,5 @@ class ObjectBindPolicy // void ** _vtbl; // 00 MEMBER_FN_PREFIX(ObjectBindPolicy); - DEFINE_MEMBER_FN(BindObject, void, 0x01415320, VMIdentifier ** identifier, UInt64 handle); + DEFINE_MEMBER_FN(BindObject, void, 0x01415440, VMIdentifier ** identifier, UInt64 handle); }; diff --git a/skse64/PapyrusNativeFunctions.h b/skse64/PapyrusNativeFunctions.h index 9fb7798..9526144 100644 --- a/skse64/PapyrusNativeFunctions.h +++ b/skse64/PapyrusNativeFunctions.h @@ -117,14 +117,14 @@ class NativeFunctionBase : public IFunction virtual bool Run(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state) = 0; MEMBER_FN_PREFIX(NativeFunctionBase); - DEFINE_MEMBER_FN(Impl_dtor, void, 0x01435B20); - // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 6 - DEFINE_MEMBER_FN(Impl_GetParam, UInt64 *, 0x014351F0, UInt32 idx, BSFixedString * nameOut, UInt64 * typeOut); - DEFINE_MEMBER_FN(Impl_Invoke, UInt32, 0x014353F0, UInt64 unk0, UInt64 unk1, VMClassRegistry * registry, VMState * unk3); - // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x10 - DEFINE_MEMBER_FN(Impl_Fn10, BSFixedString *, 0x014352D0); - // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x12 - DEFINE_MEMBER_FN(Impl_Fn12, bool, 0x014352F0, UInt32 idx, UInt64 out); + DEFINE_MEMBER_FN(Impl_dtor, void, 0x01435C40); + // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 6 (+0x30) + DEFINE_MEMBER_FN(Impl_GetParam, UInt64 *, 0x01435310, UInt32 idx, BSFixedString * nameOut, UInt64 * typeOut); + DEFINE_MEMBER_FN(Impl_Invoke, UInt32, 0x01435510, UInt64 unk0, UInt64 unk1, VMClassRegistry * registry, VMState * unk3); + // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x10 (+0x80) + DEFINE_MEMBER_FN(Impl_Fn10, BSFixedString *, 0x014353F0); + // ??_7?$NativeFunction1@VActiveEffect@@XPEAVTESForm@@@BSScript@@6B@ entry 0x12 (+0x90) + DEFINE_MEMBER_FN(Impl_Fn12, bool, 0x01435410, UInt32 idx, UInt64 out); DEFINE_STATIC_HEAP(Heap_Allocate, Heap_Free); @@ -156,8 +156,8 @@ class NativeFunction : public NativeFunctionBase virtual bool Run(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state) = 0; MEMBER_FN_PREFIX(NativeFunction); - DEFINE_MEMBER_FN(Impl_ctor, NativeFunction *, 0x014358D0, const char * fnName, const char * className, UInt32 unk0, UInt32 numParams); - DEFINE_MEMBER_FN(Impl_dtor, void, 0x01435B20); // same as NativeFunctionBase dtor + DEFINE_MEMBER_FN(Impl_ctor, NativeFunction *, 0x014359F0, const char * fnName, const char * className, UInt32 unk0, UInt32 numParams); + DEFINE_MEMBER_FN(Impl_dtor, void, 0x01435C40); // same as NativeFunctionBase dtor void DebugRunHook(VMValue * baseValue, VMClassRegistry * registry, UInt32 arg2, VMValue * resultValue, VMState * state); diff --git a/skse64/PapyrusVM.h b/skse64/PapyrusVM.h index 1eb3bdc..09385f0 100644 --- a/skse64/PapyrusVM.h +++ b/skse64/PapyrusVM.h @@ -78,10 +78,10 @@ class VMClassInfo void Release(void); MEMBER_FN_PREFIX(VMClassInfo); - DEFINE_MEMBER_FN(Destroy, void, 0x0141D5E0); - DEFINE_MEMBER_FN(GetVariable, SInt32, 0x0141E870, BSFixedString * name); + DEFINE_MEMBER_FN(Destroy, void, 0x0141D700); + DEFINE_MEMBER_FN(GetVariable, SInt32, 0x0141E990, BSFixedString * name); // - DEFINE_MEMBER_FN(GetFunction, IFunction*, 0x01421FB0, const char * fnName); + DEFINE_MEMBER_FN(GetFunction, IFunction*, 0x014220D0, const char * fnName); }; // This type is not fully decoded or correctly sized, just enough to use the functor @@ -391,15 +391,15 @@ class SkyrimVM // Used by Hooks_Papyrus // - DEFINE_MEMBER_FN(UnregisterFromSleep_Internal, void, 0x009C27E0, UInt64 handle); // AE: using one function earlier due to inlining - DEFINE_MEMBER_FN(RevertGlobalData_Internal, bool, 0x009CC4D0); + DEFINE_MEMBER_FN(UnregisterFromSleep_Internal, void, 0x009C2AA0, UInt64 handle); // AE: using one function earlier due to inlining + DEFINE_MEMBER_FN(RevertGlobalData_Internal, bool, 0x009CC790); // 4DF4B0288419C72FBF262CE2DBBAAFE7D9713C51+390 - DEFINE_MEMBER_FN(SaveRegSleepEventHandles_Internal, bool, 0x009CD890, void * handleReaderWriter, void * saveStorageWrapper); + DEFINE_MEMBER_FN(SaveRegSleepEventHandles_Internal, bool, 0x009CDB50, void * handleReaderWriter, void * saveStorageWrapper); // 4F9ECB23ABD5935D4160213D8A06DB7A94E6B988+2FB - DEFINE_MEMBER_FN(LoadRegSleepEventHandles_Internal, bool, 0x009CEB30, void * handleReaderWriter, void * loadStorageWrapper); // AE: using one function earlier due to inlining + DEFINE_MEMBER_FN(LoadRegSleepEventHandles_Internal, bool, 0x009CEDF0, void * handleReaderWriter, void * loadStorageWrapper); // AE: using one function earlier due to inlining // 96B4034421813AABF0DBF8B2B00A84CC25FB9CA0+112 - DEFINE_MEMBER_FN(QueueDelayFunctor_Internal, bool, 0x009C3650, void** pFunctor); + DEFINE_MEMBER_FN(QueueDelayFunctor_Internal, bool, 0x009C3910, void** pFunctor); bool QueueDelayFunctor(void** pFunctor) { @@ -437,7 +437,7 @@ class IFunctionArguments VMValue * Get(UInt32 idx) { return (idx < m_size) ? &m_data[idx] : NULL; } MEMBER_FN_PREFIX(Output); - DEFINE_MEMBER_FN(Resize, bool, 0x009BDEF0, UInt32 len); + DEFINE_MEMBER_FN(Resize, bool, 0x009BE1B0, UInt32 len); }; virtual bool Copy(Output * dst) = 0; diff --git a/skse64/PapyrusValue.h b/skse64/PapyrusValue.h index fce3f3c..1efebe4 100644 --- a/skse64/PapyrusValue.h +++ b/skse64/PapyrusValue.h @@ -35,7 +35,7 @@ class VMIdentifier void Destroy(void); MEMBER_FN_PREFIX(VMIdentifier); - DEFINE_MEMBER_FN(Destroy_Internal, void, 0x01419980); + DEFINE_MEMBER_FN(Destroy_Internal, void, 0x01419AA0); }; // 10 @@ -97,7 +97,7 @@ class VMValue VMValue * GetData(void) { return (VMValue *)(this + 1); } MEMBER_FN_PREFIX(ArrayData); - DEFINE_MEMBER_FN(Destroy, void, 0x014274C0); + DEFINE_MEMBER_FN(Destroy, void, 0x014275E0); }; UInt64 type; // 00 @@ -117,9 +117,9 @@ class VMValue } data; // 04 MEMBER_FN_PREFIX(VMValue); - DEFINE_MEMBER_FN(Set, void, 0x0141D2E0, const VMValue * src); - DEFINE_MEMBER_FN(Destroy, void, 0x0141D1E0); - DEFINE_MEMBER_FN(SetArray, void, 0x0141C210, ArrayData * data); + DEFINE_MEMBER_FN(Set, void, 0x0141D400, const VMValue * src); + DEFINE_MEMBER_FN(Destroy, void, 0x0141D300); + DEFINE_MEMBER_FN(SetArray, void, 0x0141C330, ArrayData * data); bool IsIdentifierArray() { diff --git a/skse64/ScaleformAPI.cpp b/skse64/ScaleformAPI.cpp index 36072ea..0494111 100644 --- a/skse64/ScaleformAPI.cpp +++ b/skse64/ScaleformAPI.cpp @@ -31,5 +31,5 @@ void ScaleformHeap_Free(void * ptr) (*(g_scaleformHeap))->Free(ptr); } -RelocAddr<_InvokeFunction> InvokeFunction(0x00FB9B30); -RelocAddr<_GFxAllocateHeap> GFxAllocateHeap(0x0102AF90); +RelocAddr<_InvokeFunction> InvokeFunction(0x00FB9C50); +RelocAddr<_GFxAllocateHeap> GFxAllocateHeap(0x0102B0B0); diff --git a/skse64/ScaleformCallbacks.cpp b/skse64/ScaleformCallbacks.cpp index 556fb43..c4a3fc0 100644 --- a/skse64/ScaleformCallbacks.cpp +++ b/skse64/ScaleformCallbacks.cpp @@ -15,7 +15,7 @@ GFxFunctionHandler::~GFxFunctionHandler() FunctionHandlerCache g_functionHandlerCache; -RelocAddr PlaySoundCallback(0x0097AB40); +RelocAddr PlaySoundCallback(0x0097AE00); FxResponseArgsList::FxResponseArgsList() { diff --git a/skse64/ScaleformLoader.h b/skse64/ScaleformLoader.h index b6b74cf..5ba07a5 100644 --- a/skse64/ScaleformLoader.h +++ b/skse64/ScaleformLoader.h @@ -18,8 +18,8 @@ class BSScaleformImageLoader : public GFxImageLoader virtual ~BSScaleformImageLoader(); virtual GImageInfoBase* LoadImage(const char * url); - DEFINE_MEMBER_FN_1(AddVirtualImage, UInt8, 0x00FAE550, NiTexture ** texture); - DEFINE_MEMBER_FN_1(ReleaseVirtualImage, UInt8, 0x00FAE9D0, NiTexture ** texture); + DEFINE_MEMBER_FN_1(AddVirtualImage, UInt8, 0x00FAE670, NiTexture ** texture); + DEFINE_MEMBER_FN_1(ReleaseVirtualImage, UInt8, 0x00FAEAF0, NiTexture ** texture); }; class GFxLoader @@ -34,7 +34,7 @@ class GFxLoader static GFxLoader * GetSingleton(); MEMBER_FN_PREFIX(GFxLoader); - DEFINE_MEMBER_FN(ctor, GFxLoader *, 0x00FAADA0); + DEFINE_MEMBER_FN(ctor, GFxLoader *, 0x00FAAEC0); - DEFINE_MEMBER_FN(LoadMovie, bool, 0x00FAB4D0, IMenu* menu, GFxMovieView** viewOut, const char* name, int scaleMode, float backGroundAlpha); // probably in subclass + DEFINE_MEMBER_FN(LoadMovie, bool, 0x00FAB5F0, IMenu* menu, GFxMovieView** viewOut, const char* name, int scaleMode, float backGroundAlpha); // probably in subclass }; diff --git a/skse64/ScaleformState.cpp b/skse64/ScaleformState.cpp index f524272..50b917d 100644 --- a/skse64/ScaleformState.cpp +++ b/skse64/ScaleformState.cpp @@ -1,7 +1,7 @@ #include "ScaleformState.h" #include "skse64/GameAPI.h" -RelocAddr BSScaleformTranslator::GetCachedString(0x00CE89E0); +RelocAddr BSScaleformTranslator::GetCachedString(0x00CE8B20); void SKSEGFxLogger::LogMessageVarg(UInt32 messageType, const char* fmt, va_list args) { diff --git a/skse64/ScaleformTypes.h b/skse64/ScaleformTypes.h index d50bfc0..2ad51df 100644 --- a/skse64/ScaleformTypes.h +++ b/skse64/ScaleformTypes.h @@ -113,7 +113,7 @@ class GString void Destroy(void); MEMBER_FN_PREFIX(GString); - DEFINE_MEMBER_FN(ctor, GString *, 0x00FB6380, const char * string); + DEFINE_MEMBER_FN(ctor, GString *, 0x00FB64A0, const char * string); }; diff --git a/skse64/ScaleformValue.h b/skse64/ScaleformValue.h index 37ae5cd..031dbb8 100644 --- a/skse64/ScaleformValue.h +++ b/skse64/ScaleformValue.h @@ -126,26 +126,26 @@ class GFxValue public: GFxMovieRoot * root; - DEFINE_MEMBER_FN_3(HasMember, bool, 0x00FA7170, void * obj, const char * name, bool isDisplayObj); - DEFINE_MEMBER_FN_4(SetMember, bool, 0x00FA95D0, void * obj, const char * name, GFxValue * value, bool isDisplayObj); - DEFINE_MEMBER_FN_3(DeleteMember, bool, 0x00FA6050, void * obj, const char * name, bool isDisplayObj); - DEFINE_MEMBER_FN_4(GetMember, bool, 0x00FA6CC0, void * obj, const char * name, GFxValue * value, bool isDisplayObj); - DEFINE_MEMBER_FN_6(Invoke, bool, 0x00FA73E0, void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj); - DEFINE_MEMBER_FN_6(AttachMovie, bool, 0x00FA4E20, void * obj, GFxValue * value, const char * symbolName, const char * instanceName, SInt32 depth, void * initArgs); - DEFINE_MEMBER_FN_2(PushBack, bool, 0x00FA7D30, void * obj, GFxValue * value); - DEFINE_MEMBER_FN_3(SetText, bool, 0x00FA96D0, void * obj, const char * text, bool html); + DEFINE_MEMBER_FN_3(HasMember, bool, 0x00FA7290, void * obj, const char * name, bool isDisplayObj); + DEFINE_MEMBER_FN_4(SetMember, bool, 0x00FA96F0, void * obj, const char * name, GFxValue * value, bool isDisplayObj); + DEFINE_MEMBER_FN_3(DeleteMember, bool, 0x00FA6170, void * obj, const char * name, bool isDisplayObj); + DEFINE_MEMBER_FN_4(GetMember, bool, 0x00FA6DE0, void * obj, const char * name, GFxValue * value, bool isDisplayObj); + DEFINE_MEMBER_FN_6(Invoke, bool, 0x00FA7500, void * obj, GFxValue * result, const char * name, GFxValue * args, UInt32 numArgs, bool isDisplayObj); + DEFINE_MEMBER_FN_6(AttachMovie, bool, 0x00FA4F40, void * obj, GFxValue * value, const char * symbolName, const char * instanceName, SInt32 depth, void * initArgs); + DEFINE_MEMBER_FN_2(PushBack, bool, 0x00FA7E50, void * obj, GFxValue * value); + DEFINE_MEMBER_FN_3(SetText, bool, 0x00FA97F0, void * obj, const char * text, bool html); //DEFINE_MEMBER_FN(PopBack, bool, 0x00000000, void * obj, GFxValue * value); - DEFINE_MEMBER_FN_1(GetArraySize, UInt32, 0x00FA6720, void * obj); + DEFINE_MEMBER_FN_1(GetArraySize, UInt32, 0x00FA6840, void * obj); //DEFINE_MEMBER_FN(SetArraySize, bool, 0x00000000, void * obj, UInt32 size); - DEFINE_MEMBER_FN_3(GetElement, bool, 0x00FA6AA0, void * obj, UInt32 index, GFxValue * value); + DEFINE_MEMBER_FN_3(GetElement, bool, 0x00FA6BC0, void * obj, UInt32 index, GFxValue * value); //DEFINE_MEMBER_FN(SetElement, bool, 0x00000000, void * obj, UInt32 index, GFxValue * value); - DEFINE_MEMBER_FN_3(GotoLabeledFrame, bool, 0x00FA70D0, void * obj, const char * frameLabel, bool stop); + DEFINE_MEMBER_FN_3(GotoLabeledFrame, bool, 0x00FA71F0, void * obj, const char * frameLabel, bool stop); //DEFINE_MEMBER_FN(GotoFrame, bool, 0x00000000, void * obj, UInt32 frameNumber, bool stop); - DEFINE_MEMBER_FN_2(GetDisplayInfo, bool, 0x00FA6780, void * obj, DisplayInfo * displayInfo); - DEFINE_MEMBER_FN_2(SetDisplayInfo, bool, 0x00FA85B0, void * obj, DisplayInfo * displayInfo); + DEFINE_MEMBER_FN_2(GetDisplayInfo, bool, 0x00FA68A0, void * obj, DisplayInfo * displayInfo); + DEFINE_MEMBER_FN_2(SetDisplayInfo, bool, 0x00FA86D0, void * obj, DisplayInfo * displayInfo); - DEFINE_MEMBER_FN_2(AddManaged_Internal, void, 0x00FA7AB0, GFxValue * value, void * obj); - DEFINE_MEMBER_FN_2(ReleaseManaged_Internal, void, 0x00FA7B10, GFxValue * value, void * obj); + DEFINE_MEMBER_FN_2(AddManaged_Internal, void, 0x00FA7BD0, GFxValue * value, void * obj); + DEFINE_MEMBER_FN_2(ReleaseManaged_Internal, void, 0x00FA7C30, GFxValue * value, void * obj); }; ObjectInterface * objectInterface; // 00 diff --git a/skse64/gamethreads.h b/skse64/gamethreads.h index 5a53d9c..42aecd0 100644 --- a/skse64/gamethreads.h +++ b/skse64/gamethreads.h @@ -21,11 +21,11 @@ class BSTaskPool { public: MEMBER_FN_PREFIX(BSTaskPool); - DEFINE_MEMBER_FN(SetNiGeometryTexture, UInt32, 0x00656EB0, NiAVObject * geometry, BGSTextureSet * textureSet); + DEFINE_MEMBER_FN(SetNiGeometryTexture, UInt32, 0x00657230, NiAVObject * geometry, BGSTextureSet * textureSet); void ProcessTasks(void); - DEFINE_MEMBER_FN(ProcessTaskQueue_HookTarget, void, 0x006549F0); + DEFINE_MEMBER_FN(ProcessTaskQueue_HookTarget, void, 0x00654D70); static BSTaskPool * GetSingleton(void); }; diff --git a/skse64_common/skse_version.h b/skse64_common/skse_version.h index 01fabce..1b239fa 100644 --- a/skse64_common/skse_version.h +++ b/skse64_common/skse_version.h @@ -49,13 +49,13 @@ // 0x01062931 #define RUNTIME_VERSION_1_6_678_EPIC MAKE_EXE_VERSION_EX(1, 6, 678, RUNTIME_TYPE_EPIC) // 0x01062A62 -#define RUNTIME_VERSION_1_6_1127 MAKE_EXE_VERSION(1, 6, 1127) // 0x01064670 creations patch +#define RUNTIME_VERSION_1_6_1130 MAKE_EXE_VERSION(1, 6, 1130) // 0x010646A0 creations patch #define PACKED_SKSE_VERSION MAKE_EXE_VERSION(SKSE_VERSION_INTEGER, SKSE_VERSION_INTEGER_MINOR, SKSE_VERSION_INTEGER_BETA) // information about the state of the game at the time of release #define SKSE_TARGETING_BETA_VERSION 0 -#define CURRENT_RELEASE_RUNTIME RUNTIME_VERSION_1_6_1127 +#define CURRENT_RELEASE_RUNTIME RUNTIME_VERSION_1_6_1130 #define CURRENT_RELEASE_SKSE_STR "2.2.4" #if GET_EXE_VERSION_SUB(RUNTIME_VERSION) == RUNTIME_TYPE_BETHESDA diff --git a/skse64_readme.txt b/skse64_readme.txt index 31c7968..11ae669 100644 --- a/skse64_readme.txt +++ b/skse64_readme.txt @@ -8,7 +8,7 @@ The Skyrim Script Extender 64, or SKSE64 for short, is a modder's resource that Compatibility: SKSE64 will support the latest version of Skyrim available on Steam and GOG. Please make sure you download the correct version for your store. -- Steam: 1.6.1127 +- Steam: 1.6.1130 - GOG: 1.6.659 Updates if needed will be available as soon as possible. Do not email to let us know that a new version has been released; we already know. Please be patient. diff --git a/skse64_whatsnew.txt b/skse64_whatsnew.txt index 4000261..666aa6b 100644 --- a/skse64_whatsnew.txt +++ b/skse64_whatsnew.txt @@ -1,7 +1,7 @@ 2.2.4 - use -- to stop argument parsing in the loader. useful for %command% tricks - SoulGem::GetSoulSize now returns the correct value instead of the gem size (thanks for the bug report from Ingvion) -- support for 1.6.1127 +- support for 1.6.1130 2.2.3 - detect and report that the Epic Store version is unsupported