CommonLibSSE (powerof3)
Loading...
Searching...
No Matches
BSParticleShaderEmitter.h
Go to the documentation of this file.
1#pragma once
2
3#include "RE/N/NiRefObject.h"
4
5namespace RE
6{
7 class BSParticleShaderProperty;
8 class NiAVObject;
9
11 {
12 public:
13 inline static constexpr auto RTTI = RTTI_BSParticleShaderEmitter;
14 inline static constexpr auto VTABLE = VTABLE_BSParticleShaderEmitter;
15
16 enum class EMITTER_TYPE
17 {
18 kGeometry = 0,
19 kCollision = 1,
20 kRay = 2,
21 kSnow = 3,
22 kRain = 4
23 };
24
26 {
27 public:
28 // members
29 float currentFrame; // 00
30 std::uint32_t totalFrames; // 04
31 };
32 static_assert(sizeof(TextureAnimInfo) == 0x08);
33
35 {
36 public:
37 // members
38 float XPos; // 00
39 float YPos; // 04
40 float ZPos; // 08
41 float age; // 0C
42 float XVel; // 10
43 float YVel; // 14
44 float ZVel; // 18
45 float lifeAdjust; // 1C
46 float rotationStart; // 20
47 float rotationSpeed; // 24
48 float speedMult; // 28
49 std::uint8_t texCoordU; // 29
50 std::uint8_t texCoordV; // 2A
51 std::uint8_t vertexX; // 2B
52 std::uint8_t vertexY; // 2C
53 };
54 static_assert(sizeof(ParticleData) == 0x30);
55
56 virtual ~BSParticleShaderEmitter(); // 00
57
58 // add
59 virtual NiAVObject* GetBoundsObject(); // 02
60 virtual bool Generate(bool a_arg1, NiPoint3& a_arg2, NiPoint3& a_arg3) = 0; // 03
61
62 // members
65 std::uint16_t particleCount; // 1A
66 float alpha; // 1C
67 float generateReminder; // 20
68 float maxParticleRatio; // 24
71 };
72 static_assert(sizeof(BSParticleShaderEmitter) == 0xED0);
73}
Definition EnumSet.h:9
Definition BSParticleShaderEmitter.h:26
std::uint32_t totalFrames
Definition BSParticleShaderEmitter.h:30
float currentFrame
Definition BSParticleShaderEmitter.h:29
Definition BSParticleShaderEmitter.h:11
REX::EnumSet< EMITTER_TYPE, std::uint16_t > emitterType
Definition BSParticleShaderEmitter.h:64
std::uint16_t particleCount
Definition BSParticleShaderEmitter.h:65
float generateReminder
Definition BSParticleShaderEmitter.h:67
TextureAnimInfo * textureAnims
Definition BSParticleShaderEmitter.h:69
float alpha
Definition BSParticleShaderEmitter.h:66
float maxParticleRatio
Definition BSParticleShaderEmitter.h:68
EMITTER_TYPE
Definition BSParticleShaderEmitter.h:17
static constexpr auto RTTI
Definition BSParticleShaderEmitter.h:13
virtual bool Generate(bool a_arg1, NiPoint3 &a_arg2, NiPoint3 &a_arg3)=0
BSParticleShaderProperty * property
Definition BSParticleShaderEmitter.h:63
virtual NiAVObject * GetBoundsObject()
static constexpr auto VTABLE
Definition BSParticleShaderEmitter.h:14
ParticleData instanceData[78]
Definition BSParticleShaderEmitter.h:70
Definition BSParticleShaderProperty.h:15
Definition NiAVObject.h:51
Definition NiPoint3.h:6
Definition NiRefObject.h:8
Definition AbsorbEffect.h:6
constexpr REL::ID RTTI_BSParticleShaderEmitter(static_cast< std::uint64_t >(685109))
constexpr std::array< REL::ID, 1 > VTABLE_BSParticleShaderEmitter
Definition Offsets_VTABLE.h:9309
Definition BSParticleShaderEmitter.h:35
std::uint8_t vertexX
Definition BSParticleShaderEmitter.h:51
float YPos
Definition BSParticleShaderEmitter.h:39
float rotationStart
Definition BSParticleShaderEmitter.h:46
float rotationSpeed
Definition BSParticleShaderEmitter.h:47
float lifeAdjust
Definition BSParticleShaderEmitter.h:45
float ZVel
Definition BSParticleShaderEmitter.h:44
float YVel
Definition BSParticleShaderEmitter.h:43
float ZPos
Definition BSParticleShaderEmitter.h:40
float speedMult
Definition BSParticleShaderEmitter.h:48
float age
Definition BSParticleShaderEmitter.h:41
float XVel
Definition BSParticleShaderEmitter.h:42
std::uint8_t texCoordV
Definition BSParticleShaderEmitter.h:50
float XPos
Definition BSParticleShaderEmitter.h:38
std::uint8_t texCoordU
Definition BSParticleShaderEmitter.h:49
std::uint8_t vertexY
Definition BSParticleShaderEmitter.h:52