commonlibsse_ng\re\n/
NiLight.rs

1use 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    /// # Errors
22    #[inline]
23    pub fn get_light_runtime_data(&self) -> Result<&LIGHT_RUNTIME_DATA, RelocationError> {
24        relocate_member(self, 0x110, 0x138)
25    }
26
27    /// # Errors
28    #[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};