From 976dfe18cd05fee580c585ec63412bec048e84cd Mon Sep 17 00:00:00 2001 From: Qudix <17361645+Qudix@users.noreply.github.com> Date: Sun, 22 Sep 2024 09:13:05 -0500 Subject: [PATCH] feat: use `REX::Enum` on non-flag enums --- include/RE/B/BGSAtmosphere.h | 10 +- include/RE/B/BGSBodyPartData.h | 38 ++-- include/RE/B/BGSCameraShot.h | 32 ++-- include/RE/B/BGSConstructibleObject.h | 2 +- include/RE/B/BGSDefaultObject.h | 6 +- include/RE/B/BGSDefaultObjectManager.h | 10 +- include/RE/B/BGSForceData.h | 24 +-- include/RE/B/BGSHeadPart.h | 24 +-- include/RE/B/BGSImpactData.h | 14 +- include/RE/B/BGSInstanceNamingRules.h | 2 +- include/RE/B/BGSPhotoModeFeature.h | 16 +- include/RE/B/BGSReverbParameters.h | 4 +- include/RE/B/BGSWeatherSettingsForm.h | 8 +- include/RE/B/BSBlendable.h | 12 +- include/RE/B/BSExtraData.h | 6 +- include/RE/B/BSFloatCurve.h | 22 +-- include/RE/C/ConeProjectile.h | 14 +- include/RE/D/DebuggerMessages.h | 8 +- include/RE/E/EffectSetting.h | 70 +++---- include/RE/E/EnchantmentItem.h | 14 +- include/RE/L/LockPickedEvent.h | 20 +- include/RE/M/MissileProjectile.h | 20 +- include/RE/P/Projectile.h | 248 ++++++++++++------------- include/RE/R/ReadableStringTable.h | 2 +- include/RE/S/ScaleformGFxState.h | 2 +- include/RE/S/SpellItem.h | 14 +- include/RE/T/TESEnchantableForm.h | 6 +- include/RE/T/TESForm.h | 16 +- include/RE/T/TESNPC.h | 2 +- include/RE/T/TESObjectCELL.h | 88 ++++----- include/RE/V/VirtualMachine.h | 2 +- include/RE/W/WritableStringTable.h | 2 +- 32 files changed, 379 insertions(+), 379 deletions(-) diff --git a/include/RE/B/BGSAtmosphere.h b/include/RE/B/BGSAtmosphere.h index 7e581ba5..503c3ab3 100644 --- a/include/RE/B/BGSAtmosphere.h +++ b/include/RE/B/BGSAtmosphere.h @@ -93,11 +93,11 @@ namespace RE struct MiscSettings { - REX::EnumSet atmosphereType; // 00 - BSTArray inorganicResources; // 08 - TESImageSpace* imageSpaceDay; // 18 - TESImageSpace* imageSpaceNight; // 20 - TESClimate* climateOverride; // 28 + REX::Enum atmosphereType; // 00 + BSTArray inorganicResources; // 08 + TESImageSpace* imageSpaceDay; // 18 + TESImageSpace* imageSpaceNight; // 20 + TESClimate* climateOverride; // 28 }; static_assert(sizeof(MiscSettings) == 0x30); diff --git a/include/RE/B/BGSBodyPartData.h b/include/RE/B/BGSBodyPartData.h index b5448b86..122281a8 100644 --- a/include/RE/B/BGSBodyPartData.h +++ b/include/RE/B/BGSBodyPartData.h @@ -21,25 +21,25 @@ namespace RE { public: // members - float unk00; // 00 - float unk04; // 04 - std::uint8_t flags; // 08 - REX::EnumSet limbEnum; // 09 - std::uint8_t unk0A; // 0A - std::uint16_t unk0C; // 0C - BGSDebris* onCrippleDebris; // 10 - BGSExplosion* onCrippleExplosion; // 18 - BGSImpactDataSet* onCrippleImpactDataSet; // 20 - ActorValueInfo* actorValue; // 28 - BGSArtObject* onCrippleArt; // 30 - BGSMaterialType* goreEffectsMaterial; // 38 - BGSMaterialType* onCrippleMaterial; // 40 - BGSBodyPartDefs::HitReactionData hitReactionData; // 48 - BSFixedString unk70; // 70 - BSFixedString unk78; // 78 - BSFixedString unk80; // 80 - BSFixedStringCS unk88; // 88 - BSFixedString unk90; // 90 + float unk00; // 00 + float unk04; // 04 + std::uint8_t flags; // 08 + REX::Enum limbEnum; // 09 + std::uint8_t unk0A; // 0A + std::uint16_t unk0C; // 0C + BGSDebris* onCrippleDebris; // 10 + BGSExplosion* onCrippleExplosion; // 18 + BGSImpactDataSet* onCrippleImpactDataSet; // 20 + ActorValueInfo* actorValue; // 28 + BGSArtObject* onCrippleArt; // 30 + BGSMaterialType* goreEffectsMaterial; // 38 + BGSMaterialType* onCrippleMaterial; // 40 + BGSBodyPartDefs::HitReactionData hitReactionData; // 48 + BSFixedString unk70; // 70 + BSFixedString unk78; // 78 + BSFixedString unk80; // 80 + BSFixedStringCS unk88; // 88 + BSFixedString unk90; // 90 }; static_assert(sizeof(BGSBodyPart) == 0x98); diff --git a/include/RE/B/BGSCameraShot.h b/include/RE/B/BGSCameraShot.h index ef72ee32..ac78598c 100644 --- a/include/RE/B/BGSCameraShot.h +++ b/include/RE/B/BGSCameraShot.h @@ -51,22 +51,22 @@ namespace RE }; // members - REX::EnumSet cameraAction; // 00 - REX::EnumSet location; // 04 - REX::EnumSet target; // 08 - std::uint32_t flags; // 0C - float playerTimeMult; // 10 - float targetTimeMult; // 14 - float globalTimeMult; // 18 - float maxTime; // 1C - float minTime; // 20 - float targetPercentBetweenActors; // 24 - float nearTargetDistance; // 28 - float locationSpring; // 2C - float targetSpring; // 30 - float rotationOffsetX; // 34 - float rotationOffsetY; // 38 - float rotationOffsetZ; // 3C + REX::Enum cameraAction; // 00 + REX::Enum location; // 04 + REX::Enum target; // 08 + std::uint32_t flags; // 0C + float playerTimeMult; // 10 + float targetTimeMult; // 14 + float globalTimeMult; // 18 + float maxTime; // 1C + float minTime; // 20 + float targetPercentBetweenActors; // 24 + float nearTargetDistance; // 28 + float locationSpring; // 2C + float targetSpring; // 30 + float rotationOffsetX; // 34 + float rotationOffsetY; // 38 + float rotationOffsetZ; // 3C }; static_assert(sizeof(CAMERA_SHOT_DATA) == 0x40); diff --git a/include/RE/B/BGSConstructibleObject.h b/include/RE/B/BGSConstructibleObject.h index 25dce099..fc0376b8 100644 --- a/include/RE/B/BGSConstructibleObject.h +++ b/include/RE/B/BGSConstructibleObject.h @@ -38,7 +38,7 @@ namespace RE BGSCurveForm* unk168; // 168 TESGlobal* buildLimit; // 170 BSTArray>* unk178; // 178 - REX::EnumSet learnMethod; // 180 + REX::Enum learnMethod; // 180 TESGlobal* unk188; // 188 BGSKeyword* unk190; // 190 std::uint32_t unk198; // 198 diff --git a/include/RE/B/BGSDefaultObject.h b/include/RE/B/BGSDefaultObject.h index c5fa3913..cd29b566 100644 --- a/include/RE/B/BGSDefaultObject.h +++ b/include/RE/B/BGSDefaultObject.h @@ -14,9 +14,9 @@ namespace RE ~BGSDefaultObject() override; // 00 // members - BGSEditorID formEditorID; // 30 - TESForm* object; // 40 - REX::EnumSet objectType; // 48 + BGSEditorID formEditorID; // 30 + TESForm* object; // 40 + REX::Enum objectType; // 48 }; static_assert(sizeof(BGSDefaultObject) == 0x50); } diff --git a/include/RE/B/BGSDefaultObjectManager.h b/include/RE/B/BGSDefaultObjectManager.h index 6602a73a..a04ac285 100644 --- a/include/RE/B/BGSDefaultObjectManager.h +++ b/include/RE/B/BGSDefaultObjectManager.h @@ -394,11 +394,11 @@ namespace RE { public: // members - const char* name; // 00 - REX::EnumSet type; // 08 - char uniqueID[4]; // 0C - REX::EnumSet doType; // 10 - const char* newObjectName; // 18 + const char* name; // 00 + REX::Enum type; // 08 + char uniqueID[4]; // 0C + REX::Enum doType; // 10 + const char* newObjectName; // 18 }; static_assert(sizeof(DEFAULT_OBJECT_DATA) == 0x20); diff --git a/include/RE/B/BGSForceData.h b/include/RE/B/BGSForceData.h index 218220a5..e46996f2 100644 --- a/include/RE/B/BGSForceData.h +++ b/include/RE/B/BGSForceData.h @@ -32,18 +32,18 @@ namespace RE ~BGSForceData() override; // 00 // members - REX::EnumSet forceType; // 30 - REX::EnumSet forceChannel; // 34 - float horizontalAngle; // 38 - float verticalAngle; // 3C - float speed; // 40 - float strength; // 44 - REX::W32::XMFLOAT3 vector; // 48 - BGSCurveForm* falloffCurve; // 58 - float turbulenceSpeedAmplitude; // 60 - float turbulenceSpeedFrequency; // 64 - float turbulenceDirectionAmplitude; // 68 - float turbulenceDirectionFrequency; // 6C + REX::Enum forceType; // 30 + REX::Enum forceChannel; // 34 + float horizontalAngle; // 38 + float verticalAngle; // 3C + float speed; // 40 + float strength; // 44 + REX::W32::XMFLOAT3 vector; // 48 + BGSCurveForm* falloffCurve; // 58 + float turbulenceSpeedAmplitude; // 60 + float turbulenceSpeedFrequency; // 64 + float turbulenceDirectionAmplitude; // 68 + float turbulenceDirectionFrequency; // 6C }; static_assert(sizeof(BGSForceData) == 0x70); } diff --git a/include/RE/B/BGSHeadPart.h b/include/RE/B/BGSHeadPart.h index 1da91f5f..b2883b9f 100644 --- a/include/RE/B/BGSHeadPart.h +++ b/include/RE/B/BGSHeadPart.h @@ -48,18 +48,18 @@ namespace RE }; // members - BGSEditorID formEditorID; // 068 - TESModel chargenModel; // 078 - TESModelTri morphs[3]; // 098 - TESCondition chargenConditions; // 0F8 - BSTArray extraParts; // 108 - BGSMorphableObject* morphableObject; // 118 - BGSTextureSet* textureSet; // 120 - BGSListForm* validRaces; // 128 - BSFixedString colorMapping; // 130 - BSFixedString mask; // 138 - REX::EnumSet type; // 140 - std::uint32_t unk144; // 144 + BGSEditorID formEditorID; // 068 + TESModel chargenModel; // 078 + TESModelTri morphs[3]; // 098 + TESCondition chargenConditions; // 0F8 + BSTArray extraParts; // 108 + BGSMorphableObject* morphableObject; // 118 + BGSTextureSet* textureSet; // 120 + BGSListForm* validRaces; // 128 + BSFixedString colorMapping; // 130 + BSFixedString mask; // 138 + REX::Enum type; // 140 + std::uint32_t unk144; // 144 }; static_assert(sizeof(BGSHeadPart) == 0x148); } diff --git a/include/RE/B/BGSImpactData.h b/include/RE/B/BGSImpactData.h index e999f07b..8737e40b 100644 --- a/include/RE/B/BGSImpactData.h +++ b/include/RE/B/BGSImpactData.h @@ -37,13 +37,13 @@ namespace RE kNoDecalData = 1 << 0 }; - float effectDuration; // 00 - REX::EnumSet orient; // 04 - float angleThreshold; // 08 - float placementRadius; // 0C - std::uint32_t soundLevel; // 10 - REX::EnumSet flags; // 14 - REX::EnumSet resultOverride; // 15 + float effectDuration; // 00 + REX::Enum orient; // 04 + float angleThreshold; // 08 + float placementRadius; // 0C + std::uint32_t soundLevel; // 10 + REX::EnumSet flags; // 14 + REX::Enum resultOverride; // 15 }; static_assert(sizeof(IMPACT_DATA_DATA) == 0x18); diff --git a/include/RE/B/BGSInstanceNamingRules.h b/include/RE/B/BGSInstanceNamingRules.h index 65330e2d..4f220690 100644 --- a/include/RE/B/BGSInstanceNamingRules.h +++ b/include/RE/B/BGSInstanceNamingRules.h @@ -37,7 +37,7 @@ namespace RE ~BGSInstanceNamingRules() override; // 00 // members - REX::EnumSet type; // 30 + REX::Enum type; // 30 RuleSet rules[10]; // 38 BSTArray mergeSources; // D8 }; diff --git a/include/RE/B/BGSPhotoModeFeature.h b/include/RE/B/BGSPhotoModeFeature.h index d3d29e72..e6ec81a6 100644 --- a/include/RE/B/BGSPhotoModeFeature.h +++ b/include/RE/B/BGSPhotoModeFeature.h @@ -26,14 +26,14 @@ namespace RE struct Feature { - REX::EnumSet type; // 00 - float offsetX; // 04 - float offsetY; // 08 - float unk0C; // 0C - float unk10; // 10 - float width; // 14 - float height; // 18 - float unk1C; // 1C + REX::Enum type; // 00 + float offsetX; // 04 + float offsetY; // 08 + float unk0C; // 0C + float unk10; // 10 + float width; // 14 + float height; // 18 + float unk1C; // 1C }; static_assert(sizeof(Feature) == 0x20); diff --git a/include/RE/B/BGSReverbParameters.h b/include/RE/B/BGSReverbParameters.h index 622ba311..0dc1e6f2 100644 --- a/include/RE/B/BGSReverbParameters.h +++ b/include/RE/B/BGSReverbParameters.h @@ -24,8 +24,8 @@ namespace RE ~BGSReverbParameters() override; // 00 // members - REX::EnumSet reverbClass; // 30 - BGSAudio::WwiseGUID audioBus; // 38 + REX::Enum reverbClass; // 30 + BGSAudio::WwiseGUID audioBus; // 38 }; static_assert(sizeof(BGSReverbParameters) == 0x48); } diff --git a/include/RE/B/BGSWeatherSettingsForm.h b/include/RE/B/BGSWeatherSettingsForm.h index 750dcb19..c9d60cb0 100644 --- a/include/RE/B/BGSWeatherSettingsForm.h +++ b/include/RE/B/BGSWeatherSettingsForm.h @@ -77,10 +77,10 @@ namespace RE kThunder }; - BGSAudio::WwiseSoundHook soundHook; // 00 - REX::EnumSet type; // 30 - float minDelay; // 34 - float maxDelay; // 38 + BGSAudio::WwiseSoundHook soundHook; // 00 + REX::Enum type; // 30 + float minDelay; // 34 + float maxDelay; // 38 }; static_assert(sizeof(WeatherSound) == 0x40); diff --git a/include/RE/B/BSBlendable.h b/include/RE/B/BSBlendable.h index 9235a911..1282d9b9 100644 --- a/include/RE/B/BSBlendable.h +++ b/include/RE/B/BSBlendable.h @@ -16,9 +16,9 @@ namespace RE::BSBlendable { public: // members - REX::EnumSet op; // 00 - REX::W32::XMFLOAT4 value; // 04 - float blendAmount; // 14 + REX::Enum op; // 00 + REX::W32::XMFLOAT4 value; // 04 + float blendAmount; // 14 }; static_assert(sizeof(ColorValue) == 0x18); @@ -26,9 +26,9 @@ namespace RE::BSBlendable { public: // members - REX::EnumSet op; // 0 - float value; // 4 - float blendValue; // 8 + REX::Enum op; // 0 + float value; // 4 + float blendValue; // 8 }; static_assert(sizeof(FloatValue) == 0xC); } diff --git a/include/RE/B/BSExtraData.h b/include/RE/B/BSExtraData.h index 278ffaca..df7bef32 100644 --- a/include/RE/B/BSExtraData.h +++ b/include/RE/B/BSExtraData.h @@ -21,9 +21,9 @@ namespace RE virtual void Unk_06(); // 06 // members - BSExtraData* next; // 08 - std::uint16_t flags; // 10 - REX::EnumSet type; // 12 + BSExtraData* next; // 08 + std::uint16_t flags; // 10 + REX::Enum type; // 12 }; static_assert(sizeof(BSExtraData) == 0x18); } diff --git a/include/RE/B/BSFloatCurve.h b/include/RE/B/BSFloatCurve.h index 4d5feb87..394e9483 100644 --- a/include/RE/B/BSFloatCurve.h +++ b/include/RE/B/BSFloatCurve.h @@ -31,17 +31,17 @@ namespace RE static_assert(sizeof(Control) == 0x8); // members - std::uint64_t unk00; // 00 - std::vector controls; // 08 - std::vector> - float maxInput; // 20 - float minInput; // 24 - float inputDistance; // 28 - float maxValue; // 2C - float minValue; // 30 - float defaultValue; // 34 - REX::EnumSet type; // 38 - REX::EnumSet edge; // 39 - bool isSampleInterpolating; // 3A + std::uint64_t unk00; // 00 + std::vector controls; // 08 - std::vector> + float maxInput; // 20 + float minInput; // 24 + float inputDistance; // 28 + float maxValue; // 2C + float minValue; // 30 + float defaultValue; // 34 + REX::Enum type; // 38 + REX::Enum edge; // 39 + bool isSampleInterpolating; // 3A }; static_assert(sizeof(BSFloatCurve) == 0x40); } diff --git a/include/RE/C/ConeProjectile.h b/include/RE/C/ConeProjectile.h index 2deddad1..032786fd 100644 --- a/include/RE/C/ConeProjectile.h +++ b/include/RE/C/ConeProjectile.h @@ -13,13 +13,13 @@ namespace RE ~ConeProjectile() override; // 00 // members - REX::EnumSet impactResult; // 260 - float environmentTimer; // 264 - float coneSpreadTangent; // 268 - float initialCollisionSphereRadius; // 26C - Location origin; // 270 - void* collisionShape; // 288 - BSTArray collisions; // 290 + REX::Enum impactResult; // 260 + float environmentTimer; // 264 + float coneSpreadTangent; // 268 + float initialCollisionSphereRadius; // 26C + Location origin; // 270 + void* collisionShape; // 288 + BSTArray collisions; // 290 }; static_assert(sizeof(ConeProjectile) == 0x280); } diff --git a/include/RE/D/DebuggerMessages.h b/include/RE/D/DebuggerMessages.h index e160a36b..edfb0901 100644 --- a/include/RE/D/DebuggerMessages.h +++ b/include/RE/D/DebuggerMessages.h @@ -202,10 +202,10 @@ namespace RE::GameScript kValue = 2, }; - REX::EnumSet valuetype; // 00 - std::uint32_t threadId; // 08 - std::int32_t stackFrameIndex; // 0C - RootType rootType; // 10 + REX::Enum valueType; // 00 + std::uint32_t threadId; // 08 + std::int32_t stackFrameIndex; // 0C + RootType rootType; // 10 }; static_assert(sizeof(Root) == 0x18); diff --git a/include/RE/E/EffectSetting.h b/include/RE/E/EffectSetting.h index 95fca1d0..3147d224 100644 --- a/include/RE/E/EffectSetting.h +++ b/include/RE/E/EffectSetting.h @@ -63,41 +63,41 @@ namespace RE }; // members - TESForm* associatedForm; // 00 - ActorValueInfo* associatedSkill; // 08 - BGSArtObject* castingArt; // 10 - BGSDualCastData* dualCastData; // 18 - TESEffectShader* effectShader; // 20 - TESEffectShader* enchantShader; // 28 - BGSArtObject* enchantEffectArt; // 30 - SpellItem* equipAbility; // 38 - BGSExplosion* explosion; // 40 - BGSArtObject* hitEffectArt; // 48 - TESImageSpaceModifier* imageSpaceMod; // 50 - BGSImpactDataSet* impactDataSet; // 58 - TESObjectLIGH* light; // 60 - BGSPerk* perk; // 68 - ActorValueInfo* primaryAV; // 70 - BGSProjectile* projectile; // 78 - ActorValueInfo* resistVariable; // 80 - ActorValueInfo* secondaryAV; // 88 - float baseCost; // 90 - float taperWeight; // 94 - std::uint32_t spellMakingArea; // 98 - float spellMakingChargeTime; // 9C - float taperCurve; // A0 - float taperDuration; // A4 - float secondaryAVWeight; // A8 - float skillUsageMult; // AC - float dualCastScale; // B0 - float unkB4; // B4 - float unkB8; // B8 - std::uint32_t minimumSkill; // BC - REX::EnumSet flags; // C0 - REX::EnumSet archetype; // C4 - REX::EnumSet castingType; // C8 - REX::EnumSet deliveryType; // C9 - std::uint32_t unkCC; // CC + TESForm* associatedForm; // 00 + ActorValueInfo* associatedSkill; // 08 + BGSArtObject* castingArt; // 10 + BGSDualCastData* dualCastData; // 18 + TESEffectShader* effectShader; // 20 + TESEffectShader* enchantShader; // 28 + BGSArtObject* enchantEffectArt; // 30 + SpellItem* equipAbility; // 38 + BGSExplosion* explosion; // 40 + BGSArtObject* hitEffectArt; // 48 + TESImageSpaceModifier* imageSpaceMod; // 50 + BGSImpactDataSet* impactDataSet; // 58 + TESObjectLIGH* light; // 60 + BGSPerk* perk; // 68 + ActorValueInfo* primaryAV; // 70 + BGSProjectile* projectile; // 78 + ActorValueInfo* resistVariable; // 80 + ActorValueInfo* secondaryAV; // 88 + float baseCost; // 90 + float taperWeight; // 94 + std::uint32_t spellMakingArea; // 98 + float spellMakingChargeTime; // 9C + float taperCurve; // A0 + float taperDuration; // A4 + float secondaryAVWeight; // A8 + float skillUsageMult; // AC + float dualCastScale; // B0 + float unkB4; // B4 + float unkB8; // B8 + std::uint32_t minimumSkill; // BC + REX::EnumSet flags; // C0 + REX::Enum archetype; // C4 + REX::Enum castingType; // C8 + REX::Enum deliveryType; // C9 + std::uint32_t unkCC; // CC }; static_assert(sizeof(EffectSettingData) == 0xD0); diff --git a/include/RE/E/EnchantmentItem.h b/include/RE/E/EnchantmentItem.h index d2c80441..ca96884b 100644 --- a/include/RE/E/EnchantmentItem.h +++ b/include/RE/E/EnchantmentItem.h @@ -17,13 +17,13 @@ namespace RE { public: // members - REX::EnumSet castingType; // 00 - std::uint32_t chargeOverride; // 0C - REX::EnumSet delivery; // 10 - REX::EnumSet spellType; // 11 - float chargeTime; // 14 - EnchantmentItem* baseEnchantment; // 18 - BGSListForm* wornRestrictions; // 20 + REX::Enum castingType; // 00 + std::uint32_t chargeOverride; // 0C + REX::Enum delivery; // 10 + REX::Enum spellType; // 11 + float chargeTime; // 14 + EnchantmentItem* baseEnchantment; // 18 + BGSListForm* wornRestrictions; // 20 }; static_assert(sizeof(Data) == 0x28); diff --git a/include/RE/L/LockPickedEvent.h b/include/RE/L/LockPickedEvent.h index fe1b7d4d..5192004d 100644 --- a/include/RE/L/LockPickedEvent.h +++ b/include/RE/L/LockPickedEvent.h @@ -27,16 +27,16 @@ namespace RE } // members - NiPointer actionRef; // 00 - NiPointer lock; // 08 - BGSTerminalMenu* terminalMenu; // 10 - std::int32_t unk18; // 14 - terminalMenu related - std::uint32_t numDigiPicksUsed; // 18 - float unk20; // 20 - 0.0f - float unk24; // 24 - 0.0f - REX::EnumSet lockLevel; // 28 - bool succeeded; // 2C - bool isOffLimits; // 2D + NiPointer actionRef; // 00 + NiPointer lock; // 08 + BGSTerminalMenu* terminalMenu; // 10 + std::int32_t unk18; // 14 - terminalMenu related + std::uint32_t numDigiPicksUsed; // 18 + float unk20; // 20 - 0.0f + float unk24; // 24 - 0.0f + REX::Enum lockLevel; // 28 + bool succeeded; // 2C + bool isOffLimits; // 2D }; static_assert(sizeof(LockPickedEvent) == 0x30); } diff --git a/include/RE/M/MissileProjectile.h b/include/RE/M/MissileProjectile.h index a7b04e34..c67a8707 100644 --- a/include/RE/M/MissileProjectile.h +++ b/include/RE/M/MissileProjectile.h @@ -16,16 +16,16 @@ namespace RE virtual bool ShouldReorient() const; // 15D // members - NiMatrix3 unk260; // 260 - NiPoint3 unk290; // 290 - std::uint32_t unk29C; // 29C - NiPointer modelCollision; // 2A0 - REX::EnumSet impactResult; // 2A8 - bool waitingToInitialize3D; // 2AC - bool unk2AD; // 2AD - bool unk2AE; // 2AE - void* unk2AF; // 2AF - void* unk2B7; // 2B7 + NiMatrix3 unk260; // 260 + NiPoint3 unk290; // 290 + std::uint32_t unk29C; // 29C + NiPointer modelCollision; // 2A0 + REX::Enum impactResult; // 2A8 + bool waitingToInitialize3D; // 2AC + bool unk2AD; // 2AD + bool unk2AE; // 2AE + void* unk2AF; // 2AF + void* unk2B7; // 2B7 }; static_assert(sizeof(MissileProjectile) == 0x2A0); } diff --git a/include/RE/P/Projectile.h b/include/RE/P/Projectile.h index 5fdc5464..fb011d3e 100644 --- a/include/RE/P/Projectile.h +++ b/include/RE/P/Projectile.h @@ -33,55 +33,55 @@ namespace RE { public: // members - Location origin; // 00 - NiPoint3 contactNormal; // 18 - NiPoint3 destination; // 24 - BGSProjectile* projectileBase; // 30 - TESObjectREFR* shooter; // 38 - CombatController* shooterCombatController; // 40 - TESAmmo* fromAmmo; // 48 - TESObjectREFR* homingTarget; // 50 - TESObjectCELL* parentCell; // 58 - MagicItem* spell; // 60 - AlchemyItem* poison; // 68 - BGSObjectInstanceT fromWeapon; // 70 - REX::EnumSet castingSource; // 80 - REX::EnumSet targetLimbEnum; // 84 - void* unk88; // 88 - smart ptr - BGSEquipIndex equipIndex; // 90 - std::uint32_t unk94; // 94 - Location unk98; // 98 - float unkB0; // B0 - std::uint32_t unkB4; // B4 - std::uint32_t unkB8; // B8 - std::uint32_t unkBC; // BC - std::uint32_t unkC0; // C0 - float power; // C4 - float unkC8; // C8 - float unkCC; // CC - std::uint32_t unkD0; // D0 - float unkD4; // D4 - float range; // D8 - float unkDC; // DC - std::uint8_t unkE0; // E0 - std::uint8_t unkE1; // E1 - std::uint8_t unkE2; // E2 - std::uint8_t unkE3; // E3 - bool useOrigin; // E4 - std::uint8_t unkE5; // E5 - std::uint8_t unkE6; // E6 - std::uint8_t unkE7; // E7 - std::uint8_t unkE8; // E8 - std::uint8_t unkE9; // E9 - bool penetrates; // EA - std::uint8_t unkEB; // EB - std::uint8_t unkEC; // EC - std::uint8_t unkED; // ED - std::uint8_t unkEE; // EE - std::uint8_t unkEF; // EF - std::uint8_t unkF0; // F0 - std::uint8_t unkF1; // F1 - bool continuousUpdate; // F2 + Location origin; // 00 + NiPoint3 contactNormal; // 18 + NiPoint3 destination; // 24 + BGSProjectile* projectileBase; // 30 + TESObjectREFR* shooter; // 38 + CombatController* shooterCombatController; // 40 + TESAmmo* fromAmmo; // 48 + TESObjectREFR* homingTarget; // 50 + TESObjectCELL* parentCell; // 58 + MagicItem* spell; // 60 + AlchemyItem* poison; // 68 + BGSObjectInstanceT fromWeapon; // 70 + REX::Enum castingSource; // 80 + REX::Enum targetLimbEnum; // 84 + void* unk88; // 88 - smart ptr + BGSEquipIndex equipIndex; // 90 + std::uint32_t unk94; // 94 + Location unk98; // 98 + float unkB0; // B0 + std::uint32_t unkB4; // B4 + std::uint32_t unkB8; // B8 + std::uint32_t unkBC; // BC + std::uint32_t unkC0; // C0 + float power; // C4 + float unkC8; // C8 + float unkCC; // CC + std::uint32_t unkD0; // D0 + float unkD4; // D4 + float range; // D8 + float unkDC; // DC + std::uint8_t unkE0; // E0 + std::uint8_t unkE1; // E1 + std::uint8_t unkE2; // E2 + std::uint8_t unkE3; // E3 + bool useOrigin; // E4 + std::uint8_t unkE5; // E5 + std::uint8_t unkE6; // E6 + std::uint8_t unkE7; // E7 + std::uint8_t unkE8; // E8 + std::uint8_t unkE9; // E9 + bool penetrates; // EA + std::uint8_t unkEB; // EB + std::uint8_t unkEC; // EC + std::uint8_t unkED; // ED + std::uint8_t unkEE; // EE + std::uint8_t unkEF; // EF + std::uint8_t unkF0; // F0 + std::uint8_t unkF1; // F1 + bool continuousUpdate; // F2 }; static_assert(sizeof(ProjectileLaunchData) == 0xF8); @@ -94,28 +94,28 @@ namespace RE { public: // members - Location location; // 00 - NiPoint3 normal; // 18 - std::uint64_t unk28; // 28 - std::uint32_t collidee; // 30 - TESPointerHandle - std::uint32_t unk34; // 34 - NiPointer colObj; // 38 - BGSMaterialType* materialType; // 40 - REX::EnumSet damageLimb; // 48 - REX::EnumSet collisionLayer; // 4C - std::uint64_t unk50; // 50 - REX::EnumSet resultOverride; // 58 - std::uint32_t unk5C; // 5C - float decalSize; // 60 - std::uint32_t collisionShapeKey; // 64 - std::int16_t targetWorldObjectCount; // 68 - std::int16_t targetWorldObjectIndex; // 6A - bool processed; // 6C - bool spellCast; // 6D - bool effectSpawned; // 6E - bool backFace; // 6F - std::uint8_t unk70; // 70 - std::uint64_t unk78; // 78 + Location location; // 00 + NiPoint3 normal; // 18 + std::uint64_t unk28; // 28 + std::uint32_t collidee; // 30 - TESPointerHandle + std::uint32_t unk34; // 34 + NiPointer colObj; // 38 + BGSMaterialType* materialType; // 40 + REX::Enum damageLimb; // 48 + REX::Enum collisionLayer; // 4C + std::uint64_t unk50; // 50 + REX::Enum resultOverride; // 58 + std::uint32_t unk5C; // 5C + float decalSize; // 60 + std::uint32_t collisionShapeKey; // 64 + std::int16_t targetWorldObjectCount; // 68 + std::int16_t targetWorldObjectIndex; // 6A + bool processed; // 6C + bool spellCast; // 6D + bool effectSpawned; // 6E + bool backFace; // 6F + std::uint8_t unk70; // 70 + std::uint64_t unk78; // 78 }; static_assert(sizeof(ImpactData) == 0x80); @@ -169,59 +169,59 @@ namespace RE virtual bool ShouldUseDesiredTarget(); // 15C // members - BSTArray impacts; // 0F0 - NiPointer collisionObject; // 100 - NiPointer droppedRefr; // 108 - NiTransform followOffset; // 110 - BSSpinLock lock; // 150 - NiPoint3 movementDirection; // 158 - NiPoint3 velocity; // 164 - void* unk170; // 170 - smart ptr - NiPointer actorCause; // 178 - std::uint32_t shooterHandle; // 180 - TESPointerHandle - std::uint32_t desiredTargetHandle; // 184 - TESPointerHandle - std::uint32_t unk188; // 188 - std::uint32_t unk18C; // 18C - std::uint32_t unk190; // 190 - std::uint32_t unk194; // 194 - BGSExplosion* explosion; // 198 - MagicItem* spell; // 1A0 - EffectSetting* avEffect; // 1A8 - void* unk1B0; // 1B0 - smart ptr - void* unk1B8; // 1B8 - smart ptr - void* unk1C0; // 1C0 - smart ptr - void* unk1C8; // 1C8 - smart ptr - std::uint64_t unk1D0; // 1D0 - BGSEquipIndex equipIndex; // 1D8 - REX::EnumSet targetLimbEnum; // 1DC - NiPointer targetLimbObj; // 1E0 - std::uint64_t unk1E8; // 1E8 - BGSObjectInstanceT weaponSource; // 1F0 - TESAmmo* ammoSource; // 200 - std::uint64_t flags; // 208 - std::uint32_t unk210; // 210 - float power; // 214 - float speedMult; // 218 - float range; // 21C - float age; // 220 - float damage; // 224 - float alpha; // 228 - float explosionTimer; // 22C - float blinkTimer; // 230 - float distanceMoved; // 234 - std::uint32_t unk238; // 238 - float scale; // 23C - float unk240; // 240 - float unk244; // 244 - std::uint32_t unk248; // 248 - std::uint32_t unk24C; // 24C - std::uint32_t unk250; // 250 - std::uint32_t unk254; // 254 - REX::EnumSet castingSource; // 258 - std::uint8_t unk259; // 259 - bool artRequested; // 25A - bool animationsLoaded; // 25B - std::uint8_t unk25C; // 25C + BSTArray impacts; // 0F0 + NiPointer collisionObject; // 100 + NiPointer droppedRefr; // 108 + NiTransform followOffset; // 110 + BSSpinLock lock; // 150 + NiPoint3 movementDirection; // 158 + NiPoint3 velocity; // 164 + void* unk170; // 170 - smart ptr + NiPointer actorCause; // 178 + std::uint32_t shooterHandle; // 180 - TESPointerHandle + std::uint32_t desiredTargetHandle; // 184 - TESPointerHandle + std::uint32_t unk188; // 188 + std::uint32_t unk18C; // 18C + std::uint32_t unk190; // 190 + std::uint32_t unk194; // 194 + BGSExplosion* explosion; // 198 + MagicItem* spell; // 1A0 + EffectSetting* avEffect; // 1A8 + void* unk1B0; // 1B0 - smart ptr + void* unk1B8; // 1B8 - smart ptr + void* unk1C0; // 1C0 - smart ptr + void* unk1C8; // 1C8 - smart ptr + std::uint64_t unk1D0; // 1D0 + BGSEquipIndex equipIndex; // 1D8 + REX::Enum targetLimbEnum; // 1DC + NiPointer targetLimbObj; // 1E0 + std::uint64_t unk1E8; // 1E8 + BGSObjectInstanceT weaponSource; // 1F0 + TESAmmo* ammoSource; // 200 + std::uint64_t flags; // 208 + std::uint32_t unk210; // 210 + float power; // 214 + float speedMult; // 218 + float range; // 21C + float age; // 220 + float damage; // 224 + float alpha; // 228 + float explosionTimer; // 22C + float blinkTimer; // 230 + float distanceMoved; // 234 + std::uint32_t unk238; // 238 + float scale; // 23C + float unk240; // 240 + float unk244; // 244 + std::uint32_t unk248; // 248 + std::uint32_t unk24C; // 24C + std::uint32_t unk250; // 250 + std::uint32_t unk254; // 254 + REX::Enum castingSource; // 258 + std::uint8_t unk259; // 259 + bool artRequested; // 25A + bool animationsLoaded; // 25B + std::uint8_t unk25C; // 25C }; static_assert(sizeof(Projectile) == 0x240); } diff --git a/include/RE/R/ReadableStringTable.h b/include/RE/R/ReadableStringTable.h index 980afdd0..391cb152 100644 --- a/include/RE/R/ReadableStringTable.h +++ b/include/RE/R/ReadableStringTable.h @@ -37,7 +37,7 @@ namespace RE::BSScript::Internal // members msvc::unique_ptr> scrapPages; // 00 msvc::unique_ptr> entries; // 08 - REX::EnumSet indexSize; // 10 + REX::Enum indexSize; // 10 }; static_assert(sizeof(ReadableStringTable) == 0x18); } diff --git a/include/RE/S/ScaleformGFxState.h b/include/RE/S/ScaleformGFxState.h index 9768c382..b287038d 100644 --- a/include/RE/S/ScaleformGFxState.h +++ b/include/RE/S/ScaleformGFxState.h @@ -58,7 +58,7 @@ namespace RE::Scaleform::GFx protected: // members - REX::EnumSet stateType; + REX::Enum stateType; }; static_assert(sizeof(State) == 0x18); } diff --git a/include/RE/S/SpellItem.h b/include/RE/S/SpellItem.h index 4cd59c65..b9319058 100644 --- a/include/RE/S/SpellItem.h +++ b/include/RE/S/SpellItem.h @@ -26,13 +26,13 @@ namespace RE { public: // members - REX::EnumSet spellType; // 08 - float chargeTime; // 0C - REX::EnumSet castingType; // 10 - REX::EnumSet delivery; // 11 - float castDuration; // 14 - float range; // 18 - BGSPerk* castingPerk; // 20 + REX::Enum spellType; // 08 + float chargeTime; // 0C + REX::Enum castingType; // 10 + REX::Enum delivery; // 11 + float castDuration; // 14 + float range; // 18 + BGSPerk* castingPerk; // 20 }; static_assert(sizeof(Data) == 0x28); diff --git a/include/RE/T/TESEnchantableForm.h b/include/RE/T/TESEnchantableForm.h index faa37e90..453be33e 100644 --- a/include/RE/T/TESEnchantableForm.h +++ b/include/RE/T/TESEnchantableForm.h @@ -22,9 +22,9 @@ namespace RE [[nodiscard]] virtual MagicSystem::CastingType GetCastingType() const; // 04 - { return castingType; } // members - EnchantmentItem* formEnchanting; // 08 - REX::EnumSet castingType; // 10 - std::uint16_t amountofEnchantment; // 12 + EnchantmentItem* formEnchanting; // 08 + REX::Enum castingType; // 10 + std::uint16_t amountofEnchantment; // 12 }; static_assert(sizeof(TESEnchantableForm) == 0x18); } diff --git a/include/RE/T/TESForm.h b/include/RE/T/TESForm.h index 3ff521e3..c04873ea 100644 --- a/include/RE/T/TESForm.h +++ b/include/RE/T/TESForm.h @@ -245,14 +245,14 @@ namespace RE } // members - std::uint64_t unk18; // 18 - std::uint32_t formFlags; // 20 - std::uint32_t unk24; // 24 - std::uint32_t formID; // 28 - std::uint8_t formFlags2; // 2C - std::uint8_t unk2D; // 2D - REX::EnumSet formType; // 2E - std::uint8_t loadOrderIndex; // 2F - init'd to 0xFF + std::uint64_t unk18; // 18 + std::uint32_t formFlags; // 20 + std::uint32_t unk24; // 24 + std::uint32_t formID; // 28 + std::uint8_t formFlags2; // 2C + std::uint8_t unk2D; // 2D + REX::Enum formType; // 2E + std::uint8_t loadOrderIndex; // 2F - init'd to 0xFF }; static_assert(sizeof(TESForm) == 0x30); } diff --git a/include/RE/T/TESNPC.h b/include/RE/T/TESNPC.h index c6b257a8..bb26aa62 100644 --- a/include/RE/T/TESNPC.h +++ b/include/RE/T/TESNPC.h @@ -104,7 +104,7 @@ namespace RE BSTArray* relationships; // 430 BGSLocalizedString organization; // 438 - faction? std::uint64_t unk440; // 440 - REX::EnumSet pronoun; // 448 + REX::Enum pronoun; // 448 }; static_assert(sizeof(TESNPC) == 0x450); } diff --git a/include/RE/T/TESObjectCELL.h b/include/RE/T/TESObjectCELL.h index 7bf81900..1e2ab238 100644 --- a/include/RE/T/TESObjectCELL.h +++ b/include/RE/T/TESObjectCELL.h @@ -88,7 +88,7 @@ namespace RE ~TESObjectCELL() override; // 00 - [[nodiscard]] bool IsAttached() const noexcept { return cellState.all(CELL_STATE::kAttached); } + [[nodiscard]] bool IsAttached() const noexcept { return cellState == CELL_STATE::kAttached; } [[nodiscard]] bool IsExterior() const noexcept { return !IsInterior(); } [[nodiscard]] bool IsInterior() const noexcept { return cellFlags.any(Flag::kInterior); } [[nodiscard]] bool UsesPlanetGravity() const noexcept { return cellFlags.any(Flag::kUsePlanetGravity); } @@ -97,49 +97,49 @@ namespace RE void ForEachReferenceInRange(const NiPoint3A& a_origin, float a_radius, std::function&)> a_callback) const; // members - REX::EnumSet cellFlags; // 040 - std::uint16_t cellGameFlags; // 044 - std::uint8_t unk04E; // 046 - REX::EnumSet cellState; // 047 - std::uint64_t unk050; // 048 - BSTSmartPointer extraDataList; // 050 - CellData cellData; // 058 - std::uint32_t unk060; // 060 - float unk064; // 064 - float unk068; // 068 - float unk06C; // 06C - std::uint8_t unk070; // 070 - std::uint8_t pad071; // 071 - std::uint16_t pad072; // 072 - std::uint32_t pad074; // 074 - std::uint64_t unk078; // 078 - BSTArray> references; // 080 - std::uint64_t unk090; // 090 - std::uint64_t unk098; // 098 - std::uint64_t unk0A0; // 0A0 - std::uint64_t unk0A8; // 0A8 - std::uint64_t unk0B0; // 0B0 - std::uint64_t unk0B8; // 0B8 - std::uint64_t unk0C0; // 0C0 - std::uint64_t unk0C8; // 0C8 - std::uint64_t unk0D0; // 0D0 - std::uint64_t unk0D8; // 0D8 - std::uint64_t unk0E0; // 0E0 - std::uint8_t unk0E8; // 0E8 - std::uint8_t pad0E9; // 0E9 - std::uint16_t pad0EA; // 0EA - std::uint32_t pad0EC; // 0EC - std::uint64_t unk0F0; // 0F0 - std::uint64_t unk0F8; // 0F8 - std::uint64_t unk100; // 100 - std::uint64_t unk108; // 108 - std::uint64_t unk110; // 110 - TESWorldSpace* cellWorldspace; // 118 - mutable BSReadWriteLock lock; // 120 - std::uint64_t unk128; // 128 - std::uint64_t unk130; // 130 - std::uint32_t unk138; // 138 - std::uint64_t unk140; // 140 + REX::EnumSet cellFlags; // 040 + std::uint16_t cellGameFlags; // 044 + std::uint8_t unk04E; // 046 + REX::Enum cellState; // 047 + std::uint64_t unk050; // 048 + BSTSmartPointer extraDataList; // 050 + CellData cellData; // 058 + std::uint32_t unk060; // 060 + float unk064; // 064 + float unk068; // 068 + float unk06C; // 06C + std::uint8_t unk070; // 070 + std::uint8_t pad071; // 071 + std::uint16_t pad072; // 072 + std::uint32_t pad074; // 074 + std::uint64_t unk078; // 078 + BSTArray> references; // 080 + std::uint64_t unk090; // 090 + std::uint64_t unk098; // 098 + std::uint64_t unk0A0; // 0A0 + std::uint64_t unk0A8; // 0A8 + std::uint64_t unk0B0; // 0B0 + std::uint64_t unk0B8; // 0B8 + std::uint64_t unk0C0; // 0C0 + std::uint64_t unk0C8; // 0C8 + std::uint64_t unk0D0; // 0D0 + std::uint64_t unk0D8; // 0D8 + std::uint64_t unk0E0; // 0E0 + std::uint8_t unk0E8; // 0E8 + std::uint8_t pad0E9; // 0E9 + std::uint16_t pad0EA; // 0EA + std::uint32_t pad0EC; // 0EC + std::uint64_t unk0F0; // 0F0 + std::uint64_t unk0F8; // 0F8 + std::uint64_t unk100; // 100 + std::uint64_t unk108; // 108 + std::uint64_t unk110; // 110 + TESWorldSpace* cellWorldspace; // 118 + mutable BSReadWriteLock lock; // 120 + std::uint64_t unk128; // 128 + std::uint64_t unk130; // 130 + std::uint32_t unk138; // 138 + std::uint64_t unk140; // 140 }; static_assert(sizeof(TESObjectCELL) == 0x148); } diff --git a/include/RE/V/VirtualMachine.h b/include/RE/V/VirtualMachine.h index cf30f257..67d52cd3 100644 --- a/include/RE/V/VirtualMachine.h +++ b/include/RE/V/VirtualMachine.h @@ -273,7 +273,7 @@ namespace RE::BSScript BSTArray stacksWaitingOnGuard; // 3D38 BSTSmartPointer frozenStacksHead; // 3D48 std::uint32_t frozenStacksCount; // 3D50 - REX::EnumSet freezeState; // 3D54 + REX::Enum freezeState; // 3D54 mutable BSSpinLock attachedScriptsLock; // 3D58 std::byte attachedScripts[0x38]; // 3D60 - BSTHashMap> std::uint64_t unk3D98; // 3D98 diff --git a/include/RE/W/WritableStringTable.h b/include/RE/W/WritableStringTable.h index c28fd90f..835d0d27 100644 --- a/include/RE/W/WritableStringTable.h +++ b/include/RE/W/WritableStringTable.h @@ -13,7 +13,7 @@ namespace RE::BSScript::Internal // members msvc::unique_ptr> stringTable; // 00 void* stringReferenceMap; // 08 - msvc::unique_ptr> - REX::EnumSet indexSize; // 10 + REX::Enum indexSize; // 10 }; static_assert(sizeof(WritableStringTable) == 0x18); }