-
Notifications
You must be signed in to change notification settings - Fork 18
Add classes and functions needed for LooksMenu #60
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
base: main
Are you sure you want to change the base?
Changes from all commits
71d24c1
57ce197
f0701f3
079dad6
c374258
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,43 @@ | ||
| #pragma once | ||
|
|
||
| #include "RE/B/BSShaderMaterial.h" | ||
|
|
||
| namespace RE | ||
| { | ||
| class __declspec(novtable) BSEffectShaderMaterial : | ||
| public BSShaderMaterial // 00 | ||
| { | ||
| public: | ||
| static constexpr auto RTTI{ RTTI::BSEffectShaderMaterial }; | ||
| static constexpr auto VTABLE{ VTABLE::BSEffectShaderMaterial }; | ||
|
|
||
| // members | ||
| float falloffStartAngle; // 38 | ||
| float falloffStopAngle; // 3C | ||
| float falloffStartOpacity; // 40 | ||
| float falloffStopOpacity; // 44 | ||
| NiColorA baseColor; // 48 - Alpha is Material Alpha | ||
| NiPointer<NiTexture> baseTexture; // 58 | ||
| NiPointer<NiTexture> grayscaleTexture; // 60 | ||
| NiPointer<NiTexture> environmentMapTexture; // 68 | ||
| NiPointer<NiTexture> environmentMapMaskTexture; // 70 | ||
| NiPointer<NiTexture> normalTexture; // 78 | ||
| float softDepth; // 80 | ||
| float baseColorScale; // 84 | ||
| BSFixedString baseTextureName; // 88 | ||
| BSFixedString grayscaleTextureName; // 90 | ||
| BSFixedString envMapTextureName; // 98 | ||
| BSFixedString envMapMaskTextureName; // A0 | ||
| BSFixedString normalTextureName; // A8 | ||
| union | ||
| { | ||
| float environmentMaskScale; // B0 | ||
| float refractionPower; // B0 - Needs kShaderFlags_Refraction | ||
| }; | ||
| std::uint8_t uTextureClampMode; // B4 | ||
| std::uint8_t uLightingInfluence; // B5 - divided by 255 | ||
| std::uint8_t uEnvironmentMapMinLOD; // B6 | ||
| std::uint8_t unkB7; // B7 | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I based the names on F4SE for now, should be double-checked and ideally figure out what |
||
| }; | ||
| static_assert(sizeof(BSEffectShaderMaterial) == 0xB8); | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| #pragma once | ||
|
|
||
| #include "RE/B/BSShaderProperty.h" | ||
| #include "RE/N/NiColor.h" | ||
|
|
||
| namespace RE | ||
| { | ||
| class BSParticleShaderCubeEmitter; | ||
|
|
||
| class __declspec(novtable) BSEffectShaderProperty : | ||
| public BSShaderProperty // 00 | ||
| { | ||
| public: | ||
| static constexpr auto RTTI{ RTTI::BSEffectShaderProperty }; | ||
| static constexpr auto VTABLE{ VTABLE::BSEffectShaderProperty }; | ||
| static constexpr auto Ni_RTTI{ Ni_RTTI::BSEffectShaderProperty }; | ||
|
|
||
| BSEffectShaderProperty() | ||
| { | ||
| REX::EMPLACE_VTABLE(this); | ||
| ctor(); | ||
| } | ||
|
|
||
| // members | ||
| BSParticleShaderCubeEmitter* envCubeEmitter; // 70 | ||
| NiColor* externalEmitColor; // 78 | ||
| std::uint32_t baseTextureIndex; // 80 | ||
| float unk84; // 84 | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I based the names on F4SE for now, should be double-checked and ideally figure out what |
||
|
|
||
| private: | ||
| void ctor() | ||
| { | ||
| using func_t = decltype(&BSEffectShaderProperty::ctor); | ||
| static REL::Relocation<func_t> func{ ID::BSEffectShaderProperty::ctor }; | ||
| return func(this); | ||
| } | ||
| }; | ||
| static_assert(sizeof(BSEffectShaderProperty) == 0x88); | ||
| } | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -8,7 +8,7 @@ namespace RE | |
| { | ||
| namespace BSSkin | ||
| { | ||
| class Instance; | ||
| class Instance : public NiObject {}; | ||
|
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. LooksMenu doesn't actually interact with this object other than assigning it from one class to another, but that does mean we need a stub implementation that'll at least allow us to track the reference count. |
||
| } | ||
|
|
||
| class BSCombinedTriShape; | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LooksMenu needs to construct new instances of these entries, thus I added the new operators and made the parent class non-abstract.