Skip to content

Commit

Permalink
feat!: SF 1.8.86 TESForm class changes (#229)
Browse files Browse the repository at this point in the history
- unk123 values were also updated to match their new offsets
  • Loading branch information
powerof3 authored Nov 23, 2023
1 parent 60801f3 commit 8b92099
Show file tree
Hide file tree
Showing 89 changed files with 1,105 additions and 951 deletions.
103 changes: 51 additions & 52 deletions CommonLibSF/include/RE/A/Actor.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

namespace RE
{
class TESNPC;
class AIProcess;
class BGSPerk;
class CombatController;
Expand Down Expand Up @@ -58,21 +59,21 @@ namespace RE

class Actor :
public TESObjectREFR, // 000
public MagicTarget, // 110
public ActorState, // 128
public IMovementStateStore, // 138
public IStoreAnimationActions, // 140
public BSTEventSink<BSNavmeshChangeEvent>, // 148
public BSTEventSink<BSMovementDataChangedEvent>, // 150
public BSTEventSink<BSSubGraphActivationUpdate>, // 158
public BSTEventSink<bhkCharacterMoveFinishEvent>, // 160
public BSTEventSink<bhkNonSupportContactEvent>, // 168
public BSTEventSink<bhkCharacterStateChangeEvent>, // 170
public BSTEventSource<MovementMessageUpdateRequestImmediate>, // 178
public BSTEventSource<PerkValueEvents::PerkValueChangedEvent>, // 1A0
public BSTEventSource<PerkValueEvents::PerkEntryUpdatedEvent>, // 1C8
public BSTEventSource<ActorCPMEvent>, // 1F0
public BSTEventSource<ActorSprintEvent> // 218
public MagicTarget, // 0F0
public ActorState, // 108
public IMovementStateStore, // 118
public IStoreAnimationActions, // 120
public BSTEventSink<BSNavmeshChangeEvent>, // 128
public BSTEventSink<BSMovementDataChangedEvent>, // 130
public BSTEventSink<BSSubGraphActivationUpdate>, // 138
public BSTEventSink<bhkCharacterMoveFinishEvent>, // 140
public BSTEventSink<bhkNonSupportContactEvent>, // 148
public BSTEventSink<bhkCharacterStateChangeEvent>, // 150
public BSTEventSource<MovementMessageUpdateRequestImmediate>, // 158
public BSTEventSource<PerkValueEvents::PerkValueChangedEvent>, // 180
public BSTEventSource<PerkValueEvents::PerkEntryUpdatedEvent>, // 1A8
public BSTEventSource<ActorCPMEvent>, // 1D0
public BSTEventSource<ActorSprintEvent> // 1F8
{
public:
SF_RTTI_VTABLE(Actor);
Expand Down Expand Up @@ -170,7 +171,7 @@ namespace RE
virtual void Unk_136(); // 136
virtual void Unk_137(); // 137
virtual void Unk_138(); // 138
virtual void Unk_139(); // 139
virtual void Resurrect(bool a_resetInventory, bool a_attach3D); // 139
virtual void Unk_13A(); // 13A
virtual void Unk_13B(); // 13B
virtual void Unk_13C(); // 13C
Expand Down Expand Up @@ -200,7 +201,7 @@ namespace RE
virtual void Unk_154(); // 154
virtual void Unk_155(); // 155
virtual void Unk_156(); // 156
virtual void Unk_157(); // 157
virtual void SetRefraction(bool a_enable, float a_refractionPower); // 157
virtual void Unk_158(); // 158
virtual void Unk_159(); // 159
virtual void Unk_15A(); // 15A
Expand All @@ -218,7 +219,7 @@ namespace RE
virtual void Unk_166(); // 166
virtual void Unk_167(); // 167
virtual void Unk_168(); // 168
virtual void Unk_169(); // 169
virtual void UpdateAlpha(); // 169
virtual void Unk_16A(); // 16A
virtual void Unk_16B(); // 16B
virtual bool IsInCombat() const; // 16C
Expand Down Expand Up @@ -279,31 +280,33 @@ namespace RE
[[nodiscard]] bool IsHostileToActor(Actor* a_actor);

// members
stl::enumeration<BOOL_BITS, std::uint32_t> boolBits; // 240
std::uint32_t unk244; // 244
stl::enumeration<BOOL_BITS, std::uint32_t> boolBits; // 220
float unk224; // 224
BSGuarded<BSTArray<void*>, BSSpinLock> unk228; // 228 - BGSBody?
AIProcess* currentProcess; // 240
std::uint64_t unk248; // 248
std::uint64_t unk250; // 250
std::uint64_t unk258; // 258
AIProcess* currentProcess; // 260
std::uint64_t unk268; // 268
std::uint64_t unk260; // 260
CombatController* combatController; // 268
std::uint64_t unk270; // 270
std::uint64_t unk278; // 278
std::uint64_t unk280; // 280
CombatController* combatController; // 288
std::uint64_t unk290; // 290
ActorValueStorage avStorage; // 298
ActorValueStorage avStorage; // 278
std::uint64_t unk2A0; // 2A0
stl::enumeration<ACTOR_CRITICAL_STAGE, std::int32_t> criticalStage; // 2A8
std::uint32_t dialogueItemTarget; // 2AC - TESPointerHandle
std::uint32_t currentCombatTarget; // 2B0 - TESPointerHandle
std::uint32_t myKiller; // 2B4 - TESPointerHandle
std::uint64_t unk2B8; // 2B8
std::uint64_t unk2C0; // 2C0
stl::enumeration<ACTOR_CRITICAL_STAGE, std::int32_t> criticalStage; // 2C8
std::uint32_t dialogueItemTarget; // 2CC - TESPointerHandle
std::uint32_t currentCombatTarget; // 2D0 - TESPointerHandle
std::uint32_t myKiller; // 2D4 - TESPointerHandle
std::uint64_t unk2D8; // 2D8
std::uint32_t actionValue; // 2C8
float timerOnAction; // 2CC
std::uint64_t unk2D0; // 2D0
std::uint32_t intimidateBribeDayStamp; // 2D8
std::uint32_t unk2DC; // 2DC
std::uint64_t unk2E0; // 2E0
std::uint32_t actionValue; // 2E8
float timerOnAction; // 2EC
std::uint64_t unk2E8; // 2E8
std::uint64_t unk2F0; // 2F0
std::uint32_t intimidateBribeDayStamp; // 2F8
std::uint32_t unk2FC; // 2FC
std::uint64_t unk2F8; // 2F8
std::uint64_t unk300; // 300
std::uint64_t unk308; // 308
std::uint64_t unk310; // 310
Expand All @@ -317,17 +320,17 @@ namespace RE
std::uint64_t unk350; // 350
std::uint64_t unk358; // 358
std::uint64_t unk360; // 360
std::uint64_t unk368; // 368
std::uint64_t unk370; // 370
std::uint64_t unk378; // 378
std::uint64_t unk380; // 380
TESRace* race; // 388
Perks* perks; // 390
std::uint32_t unk398; // 398
mutable BSReadWriteLock perkArrayLock; // 39C
std::uint32_t unk3A4; // 394
stl::enumeration<BOOL_FLAGS, std::uint32_t> boolFlags; // 3A8
stl::enumeration<BOOL_FLAGS2, std::uint32_t> boolFlags2; // 3AC
TESRace* race; // 368
Perks* perks; // 370
std::uint32_t unk378; // 378
mutable BSReadWriteLock perkArrayLock; // 37C
std::uint32_t unk384; // 374
stl::enumeration<BOOL_FLAGS, std::uint32_t> boolFlags; // 388
stl::enumeration<BOOL_FLAGS2, std::uint32_t> boolFlags2; // 38C
std::uint64_t unk390; // 390
std::uint64_t unk398; // 398
std::uint64_t unk3A0; // 3A0
std::uint64_t unk3A8; // 3A8
std::uint64_t unk3B0; // 3B0
std::uint64_t unk3B8; // 3B8
std::uint64_t unk3C0; // 3C0
Expand Down Expand Up @@ -376,10 +379,6 @@ namespace RE
std::uint64_t unk518; // 518
std::uint64_t unk520; // 520
std::uint64_t unk528; // 528
std::uint64_t unk530; // 530
std::uint64_t unk538; // 538
std::uint64_t unk540; // 540
std::uint64_t unk548; // 548
};
static_assert(sizeof(Actor) == 0x550);
static_assert(sizeof(Actor) == 0x530);
}
31 changes: 16 additions & 15 deletions CommonLibSF/include/RE/A/ActorValueInfo.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,17 @@ namespace RE

class ActorValueInfo :
public TESForm, // 00
public TESFullName // 38
public TESFullName // 30
{
public:
SF_RTTI_VTABLE(ActorValueInfo);

~ActorValueInfo() override; // 00

// members
BGSEditorID editorID; // 048

BGSEditorID editorID; // 040
std::uint64_t unk050; // 050
std::uint64_t unk058; // 058
std::uint64_t unk060; // 060
std::uint64_t unk068; // 068
Expand Down Expand Up @@ -49,18 +51,17 @@ namespace RE
std::uint64_t unk128; // 128
std::uint64_t unk130; // 130
std::uint64_t unk138; // 138
std::uint64_t unk140; // 140
BGSResource* resource; // 148
BSFixedString abbreviation; // 150
std::uint32_t index; // 158
std::uint32_t flags; // 15C
stl::enumeration<ActorValue::AVType, std::uint32_t> avType; // 160
std::uint32_t unk164; // 164
std::uint32_t fullCacheIndex; // 168
std::uint32_t permanentCacheIndex; // 16C
std::uint64_t unk170; // 170
std::uint32_t unk178; // 178
std::uint32_t sortIndex; // 17C
BGSResource* resource; // 140
BSFixedString abbreviation; // 148
std::uint32_t index; // 150
std::uint32_t flags; // 154
stl::enumeration<ActorValue::AVType, std::uint32_t> avType; // 158
std::uint32_t unk15C; // 15C
std::uint32_t fullCacheIndex; // 160
std::uint32_t permanentCacheIndex; // 164
std::uint64_t unk168; // 168
std::uint32_t unk170; // 170
std::uint32_t sortIndex; // 174
};
static_assert(sizeof(ActorValueInfo) == 0x180);
static_assert(sizeof(ActorValueInfo) == 0x178);
}
2 changes: 1 addition & 1 deletion CommonLibSF/include/RE/A/ActorValueOwner.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ namespace RE
public:
SF_RTTI(ActorValueOwner);

virtual ~ActorValueOwner();
virtual ~ActorValueOwner(); // 00

// add
virtual float GetActorValue(const ActorValueInfo& a_info); // 01
Expand Down
2 changes: 1 addition & 1 deletion CommonLibSF/include/RE/A/ActorValues.h
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ namespace RE
ActorValueInfo* electromagneticHealth; // 0D0
ActorValueInfo* electromagneticToDamageConversionRate; // 0D8
ActorValueInfo* electromagneticRecoverRateMult; // 0E0
ActorValueInfo* unkE8; // 0E8 - null
ActorValueInfo* enchanting; // 0E8
ActorValueInfo* endurance; // 0F0
ActorValueInfo* enduranceCondition; // 0F8
ActorValueInfo* experience; // 100
Expand Down
4 changes: 2 additions & 2 deletions CommonLibSF/include/RE/A/AlchemyItem.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ namespace RE
~AlchemyItem() override; // 00

// members
Data data; // 2B8
Data data; // 280
};
static_assert(sizeof(AlchemyItem) == 0x308);
static_assert(sizeof(AlchemyItem) == 0x2D0);
}
4 changes: 2 additions & 2 deletions CommonLibSF/include/RE/A/ArrowProjectile.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ namespace RE
~ArrowProjectile() override; // 00

// members
AlchemyItem* poison; // 2D0
AlchemyItem* poison; // 2B0
};
static_assert(sizeof(ArrowProjectile) == 0x2E0);
static_assert(sizeof(ArrowProjectile) == 0x2C0);
}
26 changes: 13 additions & 13 deletions CommonLibSF/include/RE/B/BGSAcousticSpace.h
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,18 @@ namespace RE
~BGSAcousticSpace() override; // 00

// members
BGSAudio::WwiseSoundHook sound0; // 118
BGSAudio::WwiseSoundHook sound1; // 148
BGSAudio::WwiseSoundHook sound2; // 178
BGSMusicType* music; // 1A8
BGSAmbienceSet* ambienceSet; // 1B0
BGSReverbParameters* environmentType; // 1B8
std::uint32_t unk1C0; // 1C0
float unk1C4; // 1C4
float unk1C8; // 1C8
std::uint8_t unk1CC; // 1CC
std::uint8_t unk1CD; // 1CD
std::uint32_t unk1D0; // 1D0
BGSAudio::WwiseSoundHook sound0; // 0E0
BGSAudio::WwiseSoundHook sound1; // 110
BGSAudio::WwiseSoundHook sound2; // 140
BGSMusicType* music; // 170
BGSAmbienceSet* ambienceSet; // 178
BGSReverbParameters* environmentType; // 180
std::uint32_t unk188; // 188
float unk18C; // 18C
float unk190; // 190
std::uint8_t unk194; // 194
std::uint8_t unk195; // 195
std::uint32_t unk198; // 198
};
static_assert(sizeof(BGSAcousticSpace) == 0x1D8);
static_assert(sizeof(BGSAcousticSpace) == 0x1A0);
}
10 changes: 5 additions & 5 deletions CommonLibSF/include/RE/B/BGSArtObject.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ namespace RE

class BGSArtObject :
public TESBoundObject, // 000
public BGSKeywordForm, // 118
public BGSModelMaterialSwap // 148
public BGSKeywordForm, // 0E0
public BGSModelMaterialSwap // 110
{
public:
SF_RTTI_VTABLE(BGSArtObject);
Expand All @@ -36,8 +36,8 @@ namespace RE
~BGSArtObject() override; // 00

// members
Data data; // 170
EffectShader* effectShader; // 178
Data data; // 138
EffectShader* effectShader; // 140
};
static_assert(sizeof(BGSArtObject) == 0x180);
static_assert(sizeof(BGSArtObject) == 0x148);
}
6 changes: 3 additions & 3 deletions CommonLibSF/include/RE/B/BGSAudioOcclusionPrimitive.h
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ namespace RE
~BGSAudioOcclusionPrimitive() override; // 00

// members
float unk118; // 118
float unk11C; // 11C
float unkE0; // E0
float unkE4; // E4
};
static_assert(sizeof(BGSAudioOcclusionPrimitive) == 0x120);
static_assert(sizeof(BGSAudioOcclusionPrimitive) == 0xE8);
}
Loading

0 comments on commit 8b92099

Please sign in to comment.