CommonLibSSE (Parapets fork)
TESEffectShader.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include "RE/C/Color.h"
4 #include "RE/F/FormTypes.h"
5 #include "RE/T/TESForm.h"
6 #include "RE/T/TESTexture.h"
7 
8 namespace RE
9 {
10  enum class D3DBLEND;
11  enum class D3DBLENDOP;
12  enum class D3DCMPFUNC;
13 
14  struct EffectShaderData // DATA
15  {
16  public:
17  enum class Flags
18  {
19  kNone = 0,
20  kDisableTextureShader = 1 << 0,
21  kGreyscaleToColor = 1 << 1,
22  kGreyscaleToAlpha = 1 << 2,
23  kDisableParticleShader = 1 << 3,
24  kEdgeColorSubtractive = 1 << 4,
25  kSkinOnly = 1 << 5,
26  kIgnoreTexAlpha = 1 << 6,
27  kFillTexProjectedUV = 1 << 7,
28  kIgnoreBaseGeomTexAlpha = 1 << 8,
29  kLighting = 1 << 9,
30  kIgnoreWeapons = 1 << 10,
31  kAlpha = 1 << 11,
32  kPreferDismemberedLimb = 1 << 12,
33  kParticleAnimated = 1 << 15,
34  kParticleGreyscaleColor = 1 << 16,
35  kParticleGreyscaleAlpha = 1 << 17,
36  kUseBloodGeometry = 1 << 24
37  };
38 
39  // members
40  std::uint32_t unk00; // 000
41 
43  D3DBLENDOP membraneShaderBlendOperation; // 008
44  D3DCMPFUNC membraneShaderZTestFunction; // 00C
45 
55 
56  float edgeEffectFallOff; // 034
64 
66 
68 
69  D3DBLEND membraneShaderDestBlendMode; // 05C
70 
72  D3DBLENDOP particleShaderBlendOperation; // 064
73  D3DCMPFUNC particleShaderZTestOperation; // 068
74  D3DBLEND particleShaderDestBlendMode; // 06C
94 
95  Color colorKey1; // 0BC
96  Color colorKey2; // 0C0
97  Color colorKey3; // 0C4
98  float colorKey1ColorAlpha; // 0C8
99  float colorKey2ColorAlpha; // 0CC
100  float colorKey3ColorAlpha; // 0D0
101  float colorKey1ColorKeyTime; // 0D4
102  float colorKey2ColorKeyTime; // 0D8
103  float colorKey3ColorKeyTime; // 0DC
104 
110 
111  std::uint32_t pad0D4; // 0F4
112 
114 
115  float holesStartTime; // 100
116  float holesEndTime; // 104
117  float holesStartVal; // 108
118  float holesEndVal; // 10C
119 
120  float edgeWidthAlphaUnits; // 110
121  Color edgeColor; // 114
122 
123  float explosionWindSpeed; // 118
124 
125  float textureCountU; // 11C
126  float textureCountV; // 120
127 
128  float addonModelsFadeInTime; // 124
130  float addonModelsScaleStart; // 12C
131  float addonModelsScaleEnd; // 130
134 
135  std::uint32_t pad13C; // 13C
136 
138 
147 
148  float colorScale; // 168
149 
150  float birthPositionOffset; // 16C
152 
160 
162 
165 
166  std::uint32_t sceneGraphEmitDepthLimit; // 19C - unused
167  };
168  static_assert(sizeof(EffectShaderData) == 0x1A0);
169 
170  class TESEffectShader : public TESForm
171  {
172  public:
173  inline static constexpr auto RTTI = RTTI_TESEffectShader;
174  inline static constexpr auto FORMTYPE = FormType::EffectShader;
175 
176  struct RecordFlags
177  {
178  enum RecordFlag : std::uint32_t
179  {
180  kDeleted = 1 << 5,
181  kIgnored = 1 << 12
182  };
183  };
184 
185  ~TESEffectShader() override; // 00
186 
187  // override (TESForm)
188  void InitializeData() override; // 04
189  bool Load(TESFile* a_mod) override; // 06
190  void InitItemImpl() override; // 13
191 
192  // members
193  EffectShaderData data; // 020 - DATA
194  TESTexture fillTexture; // 1C0 - ICON
196  TESTexture holesTexture; // 1E0 - NAM7
199  void* unk210; // 210 - smart ptr
200  void* unk218; // 218 - smart ptr
201  };
202  static_assert(sizeof(TESEffectShader) == 0x220);
203 }
Definition: BGSDebris.h:39
Definition: BGSSoundDescriptorForm.h:14
Definition: TESEffectShader.h:171
static constexpr auto RTTI
Definition: TESEffectShader.h:173
TESTexture particlePaletteTexture
Definition: TESEffectShader.h:198
void * unk218
Definition: TESEffectShader.h:200
void InitItemImpl() override
~TESEffectShader() override
void InitializeData() override
static constexpr auto FORMTYPE
Definition: TESEffectShader.h:174
bool Load(TESFile *a_mod) override
TESTexture holesTexture
Definition: TESEffectShader.h:196
EffectShaderData data
Definition: TESEffectShader.h:193
void * unk210
Definition: TESEffectShader.h:199
TESTexture fillTexture
Definition: TESEffectShader.h:194
TESTexture particleShaderTexture
Definition: TESEffectShader.h:195
TESTexture membranePaletteTexture
Definition: TESEffectShader.h:197
Definition: TESFile.h:14
Definition: TESForm.h:34
Definition: TESTexture.h:10
Definition: AbsorbEffect.h:6
constexpr REL::ID RTTI_TESEffectShader
Definition: Offsets_RTTI.h:5988
Definition: Color.h:6
Definition: TESEffectShader.h:15
float holesStartTime
Definition: TESEffectShader.h:115
float addonModelsScaleInTime
Definition: TESEffectShader.h:132
float addonModelsFadeInTime
Definition: TESEffectShader.h:128
float particleShaderPersistantParticleCount
Definition: TESEffectShader.h:79
float colorKey3ColorKeyTime
Definition: TESEffectShader.h:103
float explosionWindSpeed
Definition: TESEffectShader.h:123
float particleShaderInitialVelocity2
Definition: TESEffectShader.h:85
float particleShaderAccelerationAlongNormal
Definition: TESEffectShader.h:83
Color edgeColor
Definition: TESEffectShader.h:121
float particleShaderAnimatedLoopStartFrame
Definition: TESEffectShader.h:156
float holesStartVal
Definition: TESEffectShader.h:117
float holesEndTime
Definition: TESEffectShader.h:116
Color fillTextureEffectColorKey1
Definition: TESEffectShader.h:46
Color fillTextureEffectColorKey3
Definition: TESEffectShader.h:140
float fillTextureEffectFullAlphaRatio
Definition: TESEffectShader.h:65
Color colorKey3
Definition: TESEffectShader.h:97
BGSSoundDescriptorForm * ambientSound
Definition: TESEffectShader.h:137
float colorKey2ColorKeyTime
Definition: TESEffectShader.h:102
float particleShaderParticleLifetimeVariance
Definition: TESEffectShader.h:81
D3DBLEND particleShaderSourceBlendMode
Definition: TESEffectShader.h:71
float edgeEffectFullAlphaTime
Definition: TESEffectShader.h:59
float particleShaderAnimatedStartFrame
Definition: TESEffectShader.h:153
float textureCountV
Definition: TESEffectShader.h:126
float colorKey3ColorAlpha
Definition: TESEffectShader.h:100
std::uint32_t sceneGraphEmitDepthLimit
Definition: TESEffectShader.h:166
Flags
Definition: TESEffectShader.h:18
float particleShaderInitialSpeedAlongNormal
Definition: TESEffectShader.h:82
Color colorKey1
Definition: TESEffectShader.h:95
float particleShaderInitialRotationVariance
Definition: TESEffectShader.h:107
float particleShaderAnimatedFrameCountVariance
Definition: TESEffectShader.h:159
Color fillTextureEffectColorKey2
Definition: TESEffectShader.h:139
float edgeEffectAlphaPulseFrequency
Definition: TESEffectShader.h:63
float particleShaderScaleKey2
Definition: TESEffectShader.h:91
float colorKey1ColorKeyTime
Definition: TESEffectShader.h:101
float holesEndVal
Definition: TESEffectShader.h:118
Color edgeEffectColor
Definition: TESEffectShader.h:57
float fillTextureEffectColorKeyScaleTimeColorKey1Time
Definition: TESEffectShader.h:144
stl::enumeration< Flags, std::uint32_t > flags
Definition: TESEffectShader.h:161
float particleShaderParticleLifetime
Definition: TESEffectShader.h:80
float edgeEffectFallOff
Definition: TESEffectShader.h:56
float fillTextureEffectColorKeyScaleTimeColorKey1Scale
Definition: TESEffectShader.h:141
float addonModelsFadeOutTime
Definition: TESEffectShader.h:129
float fillTextureEffectTextureScaleU
Definition: TESEffectShader.h:163
float colorKey2ColorAlpha
Definition: TESEffectShader.h:99
std::uint32_t pad0D4
Definition: TESEffectShader.h:111
float particleShaderScaleKey1
Definition: TESEffectShader.h:90
float addonModelsScaleStart
Definition: TESEffectShader.h:130
D3DCMPFUNC particleShaderZTestOperation
Definition: TESEffectShader.h:73
float edgeWidthAlphaUnits
Definition: TESEffectShader.h:120
float colorScale
Definition: TESEffectShader.h:148
float fillTextureEffectPersistentAlphaRatio
Definition: TESEffectShader.h:50
float birthPositionOffsetVariance
Definition: TESEffectShader.h:151
float particleShaderFullParticleBirthTime
Definition: TESEffectShader.h:76
float edgeEffectAlphaFadeInTime
Definition: TESEffectShader.h:58
D3DBLEND particleShaderDestBlendMode
Definition: TESEffectShader.h:74
float fillTextureEffectTextureAnimationSpeedU
Definition: TESEffectShader.h:53
float particleShaderFullParticleBirthRatio
Definition: TESEffectShader.h:78
float fillTextureEffectColorKeyScaleTimeColorKey3Scale
Definition: TESEffectShader.h:143
float particleShaderAnimatedFrameCount
Definition: TESEffectShader.h:158
std::uint32_t unk00
Definition: TESEffectShader.h:40
float edgeEffectAlphaPulseAmplitude
Definition: TESEffectShader.h:62
float fillTextureEffectAlphaFadeInTime
Definition: TESEffectShader.h:47
float particleShaderRotationSpeed
Definition: TESEffectShader.h:108
float particleShaderAnimatedStartFrameVariance
Definition: TESEffectShader.h:154
float particleShaderScaleKey2Time
Definition: TESEffectShader.h:93
float particleShaderInitialRotation
Definition: TESEffectShader.h:106
float particleShaderInitialVelocity3
Definition: TESEffectShader.h:86
float birthPositionOffset
Definition: TESEffectShader.h:150
float particleShaderAnimatedLoopStartVariance
Definition: TESEffectShader.h:157
Color colorKey2
Definition: TESEffectShader.h:96
float fillTextureEffectTextureAnimationSpeedV
Definition: TESEffectShader.h:54
std::uint32_t pad13C
Definition: TESEffectShader.h:135
float fillTextureEffectAlphaPulseFrequency
Definition: TESEffectShader.h:52
float particleShaderParticleBirthRampDownTime
Definition: TESEffectShader.h:77
float edgeEffectAlphaFadeOutTime
Definition: TESEffectShader.h:60
float particleShaderInitialSpeedAlongNormalVariance
Definition: TESEffectShader.h:105
float edgeEffectFullAlphaRatio
Definition: TESEffectShader.h:67
D3DBLEND membraneShaderDestBlendMode
Definition: TESEffectShader.h:69
float particleShaderScaleKey1Time
Definition: TESEffectShader.h:92
float edgeEffectPersistentAlphaRatio
Definition: TESEffectShader.h:61
float textureCountU
Definition: TESEffectShader.h:125
D3DBLENDOP membraneShaderBlendOperation
Definition: TESEffectShader.h:43
BGSDebris * addonModels
Definition: TESEffectShader.h:113
float particleShaderAnimatedEndFrame
Definition: TESEffectShader.h:155
D3DBLEND membraneShaderSourceBlendMode
Definition: TESEffectShader.h:42
float fillTextureEffectColorKeyScaleTimeColorKey2Scale
Definition: TESEffectShader.h:142
float addonModelsScaleEnd
Definition: TESEffectShader.h:131
D3DCMPFUNC membraneShaderZTestFunction
Definition: TESEffectShader.h:44
float particleShaderAcceleration1
Definition: TESEffectShader.h:87
float particleShaderParticleBirthRampUpTime
Definition: TESEffectShader.h:75
D3DBLENDOP particleShaderBlendOperation
Definition: TESEffectShader.h:72
float particleShaderInitialVelocity1
Definition: TESEffectShader.h:84
float fillTextureEffectAlphaFadeOutTime
Definition: TESEffectShader.h:49
float fillTextureEffectColorKeyScaleTimeColorKey2Time
Definition: TESEffectShader.h:145
float particleShaderAcceleration3
Definition: TESEffectShader.h:89
float fillTextureEffectTextureScaleV
Definition: TESEffectShader.h:164
float fillTextureEffectColorKeyScaleTimeColorKey3Time
Definition: TESEffectShader.h:146
float colorKey1ColorAlpha
Definition: TESEffectShader.h:98
float addonModelsScaleOutTime
Definition: TESEffectShader.h:133
float fillTextureEffectFullAlphaTime
Definition: TESEffectShader.h:48
float particleShaderAcceleration2
Definition: TESEffectShader.h:88
float fillTextureEffectAlphaPulseAmplitude
Definition: TESEffectShader.h:51
float particleShaderRotationSpeedVariance
Definition: TESEffectShader.h:109
Definition: TESEffectShader.h:177
RecordFlag
Definition: TESEffectShader.h:179
@ kIgnored
Definition: TESEffectShader.h:181
@ kDeleted
Definition: TESEffectShader.h:180