-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
347 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BaseFormComponent.h" | ||
|
||
namespace RE | ||
{ | ||
class IAnimationGraphComponent | ||
{ | ||
public: | ||
virtual ~IAnimationGraphComponent(); // 00 | ||
|
||
// add | ||
virtual void Unk_01(); // 01 | ||
virtual void Unk_02(); // 02 | ||
}; | ||
static_assert(sizeof(IAnimationGraphComponent) == 0x08); | ||
|
||
class BGSAnimationGraphComponent : | ||
public BaseFormComponent, // 00 | ||
public IAnimationGraphComponent // 08 | ||
{ | ||
public: | ||
SF_RTTI_VTABLE(BGSAnimationGraphComponent); | ||
|
||
~BGSAnimationGraphComponent() override; // 00 | ||
|
||
// override (BaseFormComponent) | ||
const BSFixedString& GetFormComponentType() const override; // 01 - { return "BGSAnimationGraph_Component"; } | ||
void InitializeDataComponent() override; // 02 | ||
|
||
// members | ||
BSFixedString unk10; // 10 | ||
BSFixedString unk18; // 18 | ||
BSFixedString unk20; // 20 | ||
BSFixedString unk28; // 28 | ||
void* unk30; // 30 - smart ptr | ||
std::uint8_t unk38; // 38 | ||
}; | ||
static_assert(sizeof(BGSAnimationGraphComponent) == 0x40); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BaseFormComponent.h" | ||
|
||
namespace RE | ||
{ | ||
struct BIPED_MODEL | ||
{ | ||
public: | ||
// members | ||
std::uint32_t bipedObjectSlots; // 0 | ||
}; | ||
static_assert(sizeof(BIPED_MODEL) == 0x4); | ||
|
||
class BGSBipedObjectForm : public BaseFormComponent | ||
{ | ||
public: | ||
SF_RTTI(BGSBipedObjectForm); | ||
|
||
~BGSBipedObjectForm() override; // 00 | ||
|
||
// override (BaseFormComponent) | ||
const BSFixedString& GetFormComponentType() const override; // 01 - { return "BGSBipedObject_Component"; } | ||
void InitializeDataComponent() override; // 02 - { return; } | ||
|
||
// members | ||
BIPED_MODEL bipedModelData; // 08 | ||
}; | ||
static_assert(sizeof(BGSBipedObjectForm) == 0x10); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BaseFormComponent.h" | ||
|
||
namespace RE | ||
{ | ||
class BGSAimAssistPoseData; | ||
class BGSBodyPartData; | ||
|
||
struct FACEFX_BONESET; | ||
|
||
class BGSBodyPartInfo : public BaseFormComponent | ||
{ | ||
public: | ||
SF_RTTI_VTABLE(BGSBodyPartInfo); | ||
|
||
~BGSBodyPartInfo() override; // 00 | ||
|
||
// override (BaseFormComponent) | ||
const BSFixedString& GetFormComponentType() const override; // 01 - { return "BGSBodyPartInfo_Component"; } | ||
void InitializeDataComponent() override; // 02 - { return; } | ||
|
||
// members | ||
BGSBodyPartData* unk08; // 08 | ||
FACEFX_BONESET* unk10; // 10 | ||
FACEFX_BONESET* unk18; // 18 | ||
BGSAimAssistPoseData* unk20; // 20 | ||
}; | ||
static_assert(sizeof(BGSBodyPartInfo) == 0x28); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
#pragma once | ||
|
||
namespace RE | ||
{ | ||
class BGSPreloadable | ||
{ | ||
public: | ||
SF_RTTI(BGSPreloadable); | ||
|
||
virtual ~BGSPreloadable(); // 00 | ||
|
||
// add | ||
virtual void Unk_01(); // 01 | ||
}; | ||
static_assert(sizeof(BGSPreloadable) == 0x08); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
#pragma once | ||
|
||
#include "RE/T/TESModel.h" | ||
|
||
namespace RE | ||
{ | ||
class BGSTextureModel : public TESModel | ||
{ | ||
public: | ||
SF_RTTI_VTABLE(BGSTextureModel); | ||
|
||
~BGSTextureModel() override; // 00 | ||
}; | ||
static_assert(sizeof(BGSTextureModel) == 0x20); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#pragma once | ||
|
||
namespace RE | ||
{ | ||
struct SEXES | ||
{ | ||
enum SEX : std::uint32_t | ||
{ | ||
kNone = static_cast<std::underlying_type_t<SEX>>(-1), | ||
kMale = 0, | ||
kFemale = 1, | ||
|
||
kTotal = 2 | ||
}; | ||
}; | ||
using SEX = SEXES::SEX; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BaseFormComponent.h" | ||
|
||
namespace RE | ||
{ | ||
class BGSModelMaterialSwap; | ||
|
||
class TESModel : public BaseFormComponent | ||
{ | ||
public: | ||
SF_RTTI_VTABLE(TESModel); | ||
|
||
~TESModel() override; // 00 | ||
|
||
// override (BaseFormComponent) | ||
const BSFixedString& GetFormComponentType() const override; // 01 - { return "TESModel_Component"; } | ||
void InitializeDataComponent() override; // 02 | ||
|
||
// add | ||
virtual void Unk_0B(); // 0B | ||
virtual void Unk_0C(); // 0C | ||
virtual BGSModelMaterialSwap* GetAsModelMaterialSwap(); // 0E | ||
|
||
// members | ||
BSFixedString model; // 08 | ||
std::uint64_t unk10; // 10 | ||
std::uint32_t unk18; // 18 | ||
std::uint16_t unk1C; // 1C | ||
std::uint16_t pad1E; // 1E | ||
}; | ||
static_assert(sizeof(TESModel) == 0x20); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,14 +1,179 @@ | ||
#pragma once | ||
|
||
#include "RE/B/BGSAnimationGraphComponent.h" | ||
#include "RE/B/BGSAttachParentArray.h" | ||
#include "RE/B/BGSAttackDataForm.h" | ||
#include "RE/B/BGSBipedObjectForm.h" | ||
#include "RE/B/BGSBodyPartInfo.h" | ||
#include "RE/B/BGSEditorID.h" | ||
#include "RE/B/BGSKeywordForm.h" | ||
#include "RE/B/BGSPreloadable.h" | ||
#include "RE/B/BGSPropertySheet.h" | ||
#include "RE/B/BGSSkinForm.h" | ||
#include "RE/B/BGSTextureModel.h" | ||
#include "RE/S/Sexes.h" | ||
#include "RE/T/TESDescription.h" | ||
#include "RE/T/TESForm.h" | ||
#include "RE/T/TESFullName.h" | ||
#include "RE/T/TESSpellList.h" | ||
|
||
namespace RE | ||
{ | ||
class ActorValueInfo; | ||
class BGSBoneModifier; | ||
class BGSDebris; | ||
class BGSEquipSlot; | ||
class BGSExplosion; | ||
class BGSHeadPart; | ||
class BGSImpactDataSet; | ||
class BGSMaterialType; | ||
class BGSMovementType; | ||
class TESObjectWEAP; | ||
class TESQuest; | ||
|
||
struct RACE_DATA | ||
{ | ||
std::uint32_t unk00; // 00 | ||
float unk04; // 04 | ||
float unk08; // 08 | ||
float unk0C; // 0C | ||
float angleTolerance; // 10 | ||
std::uint32_t unk14; // 14 | ||
TESObjectWEAP* unk18; // 18 | ||
std::uint32_t unk20; // 20 | ||
std::uint32_t unk24; // 24 | ||
std::uint32_t unk28; // 28 | ||
std::uint32_t unk2C; // 2C | ||
std::uint32_t unk30; // 30 | ||
std::uint32_t unk34; // 34 | ||
std::uint32_t unk38; // 38 | ||
std::uint32_t unk3C; // 3C | ||
std::uint32_t unk40; // 40 | ||
std::uint32_t unk44; // 44 | ||
std::uint32_t unk48; // 48 | ||
std::uint32_t unk4C; // 4C | ||
std::uint32_t unk50; // 50 | ||
std::uint32_t unk54; // 54 | ||
std::uint32_t unk58; // 58 | ||
std::uint32_t unk5C; // 5C | ||
float height[SEXES::kTotal]; // 60 | ||
NiPoint3 weight[SEXES::kTotal]; // 68 | ||
std::uint64_t unk80; // 80 | ||
std::int32_t unk88; // 88 | ||
std::int32_t unk8C; // 8C | ||
std::int32_t unk90; // 90 | ||
std::int32_t unk94; // 94 | ||
std::int32_t unk98; // 98 | ||
std::int32_t unk9C; // 9C | ||
float unkA0; // A0 | ||
float unkA4; // A4 | ||
float unkA8; // A8 | ||
float unkAC; // AC | ||
float unkB0; // B0 | ||
float unkB4; // B4 | ||
float unkB8; // B8 | ||
float unkBC; // BC | ||
std::uint32_t unkC0; // C0 | ||
std::uint32_t unkC4; // C4 | ||
std::uint32_t unkC8; // C8 | ||
std::uint32_t unkCC; // CC | ||
BGSExplosion* unkD0; // D0 | ||
BGSDebris* unkD8; // D8 | ||
BGSImpactDataSet* unkE0; // E0 | ||
std::uint32_t unkE8; // E8 | ||
std::uint32_t unkEC; // EC | ||
float unkF0; // F0 | ||
float unkF4; // F4 | ||
std::uint32_t unkF8; // F8 | ||
std::uint32_t unkFC; // FC | ||
}; | ||
static_assert(sizeof(RACE_DATA) == 0x100); | ||
|
||
struct EquipSlotData | ||
{ | ||
public: | ||
// members | ||
BGSEquipSlot* equipSlot; // 00 | ||
BSFixedString equipSlotNode; // 08 | ||
}; | ||
static_assert(sizeof(EquipSlotData) == 0x10); | ||
|
||
class TESRace : | ||
public TESForm // 00 | ||
public TESForm, // 00 | ||
public TESFullName, // 38 | ||
public TESDescription, // 48 | ||
public TESSpellList, // 60 | ||
public BGSSkinForm, // 78 | ||
public BGSBipedObjectForm, // 88 | ||
public BGSKeywordForm, // 98 | ||
public BGSAttackDataForm, // C8 | ||
public BGSPropertySheet, // D8 | ||
public BGSPreloadable // E8 | ||
{ | ||
public: | ||
SF_RTTI_VTABLE(TESRace); | ||
SF_FORMTYPE(RACE); | ||
|
||
struct Unk9F8 | ||
{ | ||
void* unk00[2]; // 00 - BGSLayeredMaterialSwap? | ||
}; | ||
static_assert(sizeof(Unk9F8) == 0x10); | ||
|
||
~TESRace() override; // 00 | ||
|
||
// members | ||
BGSEditorID formEditorID; // 0F0 | ||
BGSMaterialType* bloodImpactMaterial; // 100 | ||
std::uint64_t unk108; // 108 - sound related? | ||
std::uint64_t unk110; // 110 | ||
std::uint64_t unk118; // 118 | ||
std::uint64_t unk120; // 120 | ||
std::uint64_t unk128; // 128 | ||
std::uint64_t unk130; // 130 | ||
std::uint64_t unk138; // 138 - sound related? | ||
std::uint64_t unk140; // 140 | ||
std::uint64_t unk148; // 148 | ||
std::uint64_t unk150; // 150 | ||
std::uint64_t unk158; // 158 | ||
std::uint64_t unk160; // 160 | ||
BSFixedString bipedObjectNames[64]; // 168 | ||
ActorValueInfo* bipedObjectConditions[64]; // 368 | ||
std::uint64_t unk568; // 568 | ||
std::uint64_t unk570; // 570 | ||
std::uint64_t unk578; // 578 | ||
std::uint64_t unk580; // 580 | ||
std::uint64_t unk588; // 588 | ||
std::uint64_t unk590; // 590 | ||
std::uint64_t unk598; // 598 | ||
BSTArray<EquipSlotData> equipSlotArray; // 5A0 | ||
std::uint64_t unk5B0; // 5B0 | ||
TESRace* morphRace; // 5B8 | ||
TESRace* armorParentRace; // 5C0 | ||
BSTArray<BGSBoneModifier*> unk5C8[SEXES::kTotal]; // 5C8 | ||
TESQuest* dialogueQuest; // 5E8 | ||
TESModel unk5F0[4]; // 5F0 | ||
TESModel faceBones[SEXES::kTotal]; // 670 | ||
RACE_DATA data; // 6B0 | ||
std::uint64_t unk7B0; // 7B0 | ||
BGSTextureModel unk7B8[SEXES::kTotal]; // 7B8 | ||
BGSAnimationGraphComponent unk7F8[4]; // 7F8 | ||
BGSVoiceType* defaultVoiceType[SEXES::kTotal]; // 8F8 | ||
BGSBodyPartInfo bodyPartInfo; // 908 | ||
BGSAttachParentArray attachParents; // 930 | ||
std::uint64_t unk948; // 948 | ||
BSTArray<void*> unk950; // 950 | ||
BGSMovementType* baseMoveTypes[4]; // 960 | ||
std::uint64_t unk980; // 980 | ||
std::uint64_t unk988; // 988 | ||
void* chargenData[SEXES::kTotal]; // 990 | ||
std::uint64_t unk9A0; // 9A0 | ||
BSFixedString handMaterials[SEXES::kTotal]; // 9A8 | ||
BSFixedString skinMaterials[SEXES::kTotal]; // 9B8 | ||
BSFixedString unk9C8[SEXES::kTotal]; // 9C8 | ||
BSTArray<BGSHeadPart*> headparts[SEXES::kTotal]; // 9D8 | ||
Unk9F8 unk9F8[SEXES::kTotal]; // 9F8 | ||
BGSLocalizedString unkA18; // A18 | ||
}; | ||
static_assert(sizeof(TESRace) == 0xA20); | ||
} |