commonlibsse_ng\re\n/
NiLight.rs1use crate::re::NiAVObject::NiAVObject;
2use crate::re::NiColor::NiColor;
3use crate::re::NiPoint3::NiPoint3;
4use crate::re::offsets_ni_rtti::NiRTTI_NiLight;
5use crate::re::offsets_rtti::RTTI_NiLight;
6use crate::re::offsets_vtable::VTABLE_NiLight;
7use crate::rel::id::VariantID;
8use crate::rel::relocation::{RelocationError, relocate_member, relocate_member_mut};
9
10#[repr(C)]
11pub struct NiLight {
12 pub __base: NiAVObject,
13}
14const _: () = assert!(core::mem::size_of::<NiLight>() == 0x110);
15
16impl NiLight {
17 pub const RTTI: VariantID = RTTI_NiLight;
18 pub const NI_RTTI: VariantID = NiRTTI_NiLight;
19 pub const VTABLE: [VariantID; 1] = VTABLE_NiLight;
20
21 #[inline]
23 pub fn get_light_runtime_data(&self) -> Result<&LIGHT_RUNTIME_DATA, RelocationError> {
24 relocate_member(self, 0x110, 0x138)
25 }
26
27 #[inline]
29 pub fn get_light_runtime_data_mut(
30 &mut self,
31 ) -> Result<&mut LIGHT_RUNTIME_DATA, RelocationError> {
32 relocate_member_mut(self, 0x110, 0x138)
33 }
34}
35
36#[repr(C)]
37pub struct LIGHT_RUNTIME_DATA {
38 ambient: NiColor,
39 diffuse: NiColor,
40 radius: NiPoint3,
41 fade: f32,
42 unk138: u32,
43}
44const _: () = {
45 assert!(core::mem::offset_of!(LIGHT_RUNTIME_DATA, ambient) == 0x0);
46 assert!(core::mem::offset_of!(LIGHT_RUNTIME_DATA, diffuse) == 0xc);
47 assert!(core::mem::offset_of!(LIGHT_RUNTIME_DATA, radius) == 0x18);
48 assert!(core::mem::offset_of!(LIGHT_RUNTIME_DATA, fade) == 0x24);
49 assert!(core::mem::offset_of!(LIGHT_RUNTIME_DATA, unk138) == 0x28);
50 assert!(core::mem::size_of::<LIGHT_RUNTIME_DATA>() == 0x2c);
51};