Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat!: SF 1.8.86 TESForm class changes #229

Merged
merged 4 commits into from
Nov 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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