pub struct MdlEmitter {Show 19 fields
pub deadspace: f32,
pub blast_radius: f32,
pub blast_length: f32,
pub num_branches: i32,
pub control_pt_smoothing: i32,
pub x_grid: i32,
pub y_grid: i32,
pub spawn_type: i32,
pub update: String,
pub render: String,
pub blend: String,
pub texture: String,
pub chunk_name: String,
pub two_sided_tex: i32,
pub loop_emitter: i32,
pub render_order: u16,
pub frame_blending: bool,
pub depth_texture_name: String,
pub reserved: [u8; 21],
}Expand description
Emitter node data.
Binary layout: 224 extra bytes (0xE0) after the 80-byte base node header.
All fields are inline fixed-size data with no pointers - no relocation
needed (only ResetMdlNodeParts is called, not a type-specific Reset).
The update field is architecturally significant: it determines which
runtime emitter class is instantiated (“Fountain”, “Explosion”, “Single”,
or “Lightning”). Controller 502 (“detonate”) is only valid for “Explosion”
emitters.
Verified via MdlNodeEmitter constructor (0x0044a300, 304 bytes total),
MdlNodeEmitter::InternalParseField (0x00469700, 2,632 bytes),
and MdlNodeEmitter::InternalCreateInstance (0x0049d5c0).
See docs/notes/mdl_mdx.md §Non-Mesh Node Type Structs.
Fields§
§deadspace: f32Dead space / unused float (default 0.0). Extra offset +0x00.
blast_radius: f32Blast radius (default 0.0). Extra offset +0x04.
blast_length: f32Blast length (default 0.0). Extra offset +0x08.
num_branches: i32Number of branches (default 0). Extra offset +0x0C.
control_pt_smoothing: i32Control point smoothing (default 0). Extra offset +0x10.
x_grid: i32X grid size (default 0). Extra offset +0x14.
y_grid: i32Y grid size (default 0). Extra offset +0x18.
spawn_type: i32Spawn type (default 0). Extra offset +0x1C.
update: StringEmitter update type string (up to 32 chars). Extra offset +0x20.
Determines which runtime emitter class is instantiated:
"Fountain"- steady particle effects (most common)"Explosion"- burst effects (supports controller 502 “detonate”)"Single"- one-shot particle"Lightning"- lightning bolt effects
render: StringRender type string (up to 32 chars). Extra offset +0x40.
blend: StringBlend type string (up to 32 chars). Extra offset +0x60.
texture: StringTexture name (up to 32 chars). Extra offset +0x80.
chunk_name: StringChunk name (up to 16 chars). Extra offset +0xA0.
two_sided_tex: i32Two-sided texturing (default 0). Extra offset +0xB0.
loop_emitter: i32Loop emitter (default 0). Extra offset +0xB4.
render_order: u16Render order (default 0). Extra offset +0xB8.
frame_blending: boolFrame blending enabled (default false). Extra offset +0xBA.
depth_texture_name: StringDepth texture name (up to 16 chars). Extra offset +0xBB.
reserved: [u8; 21]Reserved/padding bytes at extra offset +0xCB..+0xE0 (21 bytes). Preserved verbatim for roundtrip fidelity per the reserved field rule.
Trait Implementations§
Source§impl Clone for MdlEmitter
impl Clone for MdlEmitter
Source§fn clone(&self) -> MdlEmitter
fn clone(&self) -> MdlEmitter
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more