type soundalias [display="Sound Alias"] { i32 alias_name_ptr [ui, readonly, display="Alias Name Ptr"]; i32 subtitle_ptr [ui, readonly, display="Subtitle Ptr"]; i32 secondary_alias_name_ptr [ui, readonly, display="Secondary Alias Name Ptr"]; i32 chain_alias_name_ptr [ui, readonly, display="Chain Alias Name Ptr"]; i32 sound_file_ptr [ui, readonly, display="Sound File Ptr"]; i32 sequence [ui, readonly, display="Sequence"]; // Volume (read as raw bytes - 2 floats) vol_min_max = read(8) [ui, readonly, display="Vol Min/Max"]; // Pitch (read as raw bytes - 2 floats) pitch_min_max = read(8) [ui, readonly, display="Pitch Min/Max"]; // Distance (read as raw bytes - 2 floats) dist_min_max = read(8) [ui, readonly, display="Dist Min/Max"]; // Velocity min (float) velocity_min = read(4) [ui, readonly, display="Velocity Min"]; i32 flags [ui, readonly, display="Flags"]; // Master priority/percentage (3 floats) master_values = read(12) [ui, readonly, display="Master Priority/Percentage"]; // Probability (float) probability = read(4) [ui, readonly, display="Probability"]; // LFE/Center percentage (2 floats) lfe_center = read(8) [ui, readonly, display="LFE/Center Percentage"]; i32 start_delay [ui, readonly, display="Start Delay"]; i32 volume_falloff_curve_ptr [ui, readonly, display="Volume Falloff Curve Ptr"]; // Envelope values (3 floats) envelope_values = read(12) [ui, readonly, display="Envelope Min/Max/Percentage"]; i32 speaker_map_ptr [ui, readonly, display="Speaker Map Ptr"]; // Parse inline strings if (alias_name_ptr == -1) { alias_name = cstring() [ui, readonly, display="Alias Name"]; _name = alias_name; } if (subtitle_ptr == -1) { subtitle = cstring() [ui, readonly, display="Subtitle"]; } if (secondary_alias_name_ptr == -1) { secondary_alias_name = cstring() [ui, readonly, display="Secondary Alias Name"]; } if (chain_alias_name_ptr == -1) { chain_alias_name = cstring() [ui, readonly, display="Chain Alias Name"]; } // Parse inline sound file if (sound_file_ptr == -1) { sound_file = parse_here("soundfile"); } // Parse inline volume falloff curve if (volume_falloff_curve_ptr == -1) { volume_falloff_curve = parse_here("sndcurve"); } // Parse inline speaker map if (speaker_map_ptr == -1) { speaker_map = parse_here("speakermap"); } }