MdlLight

Struct MdlLight 

Source
pub struct MdlLight {
Show 13 fields pub flare_radius: f32, pub texture_safe_ptrs: [u32; 3], pub flare_sizes: Vec<f32>, pub flare_positions: Vec<f32>, pub flare_color_shifts: Vec<[f32; 3]>, pub flare_texture_names: Vec<String>, pub priority: i32, pub num_dynamic_types: i32, pub affectdynamic: i32, pub shadow: i32, pub ambientonly: i32, pub generateflare: i32, pub fading_light: i32,
}
Expand description

Light node data.

Binary layout: 92 extra bytes after the base node header. Contains scalar properties and flare data arrays.

Verified via MdlNodeLight::MdlNodeLight constructor (0x0044a3f0), InputBinary::ResetLight (0x004a05e0), and Ghidra struct MdlNodeLight (172 bytes total = 80 base + 92 extra). See docs/notes/mdl_mdx.md §Non-Mesh Node Type Structs.

Fields§

§flare_radius: f32

Flare radius (f32, default 0.0). Extra offset +0x00.

§texture_safe_ptrs: [u32; 3]

Texture SafePointers (runtime-only). Extra +0x04.

Three u32 values populated at runtime by AurTextureGetReference after resolving texture names. In vanilla binaries these contain stale addresses from the build toolset. Preserved for lossless roundtrip and toolset fingerprinting (same rationale as the mesh function pointer stubs).

§flare_sizes: Vec<f32>

Flare sizes (one f32 per flare). Extra +0x10 CExoArrayList pointer.

§flare_positions: Vec<f32>

Flare positions (one f32 per flare). Extra +0x1C CExoArrayList pointer.

§flare_color_shifts: Vec<[f32; 3]>

Flare color shifts (one vec3 per flare). Extra +0x28 CExoArrayList pointer.

§flare_texture_names: Vec<String>

Flare texture names. Extra +0x34 CExoArrayList pointer.

Stored as a CExoArrayList of char* pointers, where each pointer is also relocated and points to a null-terminated string. Flattened to a Vec<String> for ergonomic access.

§priority: i32

Light priority (default 5). Extra offset +0x40.

§num_dynamic_types: i32

Dynamic type count (default 1). Extra offset +0x44.

§affectdynamic: i32

Affects dynamic objects (default 1). Extra offset +0x48.

§shadow: i32

Casts shadow (default 1). Extra offset +0x4C.

§ambientonly: i32

Ambient-only light (default 0). Extra offset +0x50.

§generateflare: i32

Generate flare effect (default 0). Extra offset +0x54.

§fading_light: i32

Fading light (default 1). Extra offset +0x58.

Trait Implementations§

Source§

impl Clone for MdlLight

Source§

fn clone(&self) -> MdlLight

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for MdlLight

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for MdlLight

Source§

fn default() -> Self

Returns a light node with engine default values.

Defaults match the MdlNodeLight::MdlNodeLight constructor (0x0044a3f0): priority=5, num_dynamic_types=1, affectdynamic=1, shadow=1, fading_light=1.

Source§

impl PartialEq for MdlLight

Source§

fn eq(&self, other: &MdlLight) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for MdlLight

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Az for T

Source§

fn az<Dst>(self) -> Dst
where T: Cast<Dst>,

Casts the value.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<Src, Dst> CastFrom<Src> for Dst
where Src: Cast<Dst>,

Source§

fn cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> CheckedAs for T

Source§

fn checked_as<Dst>(self) -> Option<Dst>
where T: CheckedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> CheckedCastFrom<Src> for Dst
where Src: CheckedCast<Dst>,

Source§

fn checked_cast_from(src: Src) -> Option<Dst>

Casts the value.
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> OverflowingAs for T

Source§

fn overflowing_as<Dst>(self) -> (Dst, bool)
where T: OverflowingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> OverflowingCastFrom<Src> for Dst
where Src: OverflowingCast<Dst>,

Source§

fn overflowing_cast_from(src: Src) -> (Dst, bool)

Casts the value.
Source§

impl<T> SaturatingAs for T

Source§

fn saturating_as<Dst>(self) -> Dst
where T: SaturatingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> SaturatingCastFrom<Src> for Dst
where Src: SaturatingCast<Dst>,

Source§

fn saturating_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> StrictAs for T

Source§

fn strict_as<Dst>(self) -> Dst
where T: StrictCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> StrictCastFrom<Src> for Dst
where Src: StrictCast<Dst>,

Source§

fn strict_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> UnwrappedAs for T

Source§

fn unwrapped_as<Dst>(self) -> Dst
where T: UnwrappedCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> UnwrappedCastFrom<Src> for Dst
where Src: UnwrappedCast<Dst>,

Source§

fn unwrapped_cast_from(src: Src) -> Dst

Casts the value.
Source§

impl<T> WrappingAs for T

Source§

fn wrapping_as<Dst>(self) -> Dst
where T: WrappingCast<Dst>,

Casts the value.
Source§

impl<Src, Dst> WrappingCastFrom<Src> for Dst
where Src: WrappingCast<Dst>,

Source§

fn wrapping_cast_from(src: Src) -> Dst

Casts the value.