Skip to main content

Dat

Struct Dat 

Source
pub struct Dat { /* private fields */ }
Expand description

Represents a DAT audio configuration file decoded in memory.

Contains six blocks of audio event configuration data including parameters, enumerations, and event lists used to configure Wwise sound playback.

§Structure

The file is organized into six sequential blocks, each serving a different purpose in the audio configuration system. The exact semantic meaning of each block may vary between Total War games.

§Fields

  • event_0 - Event parameters with float values (e.g., volume, pitch defaults)
  • block_1 - Event enumerations with multiple values (e.g., sound categories)
  • block_2 - Event enumerations with multiple values (e.g., sound categories)
  • voice_events - Voice event enumerations with associated values
  • block_4 - Simple event enumeration list
  • block_5 - Simple event enumeration list

§Examples

let dat = Dat::decode(&mut data, &None)?;

// Iterate through event parameters
for (name, value) in dat.event_0() {
    println!("Parameter: {} = {}", name, value);
}

// Iterate through voice events
for (voice_event, voice_values) in dat.voice_events() {
    for value in voice_values {
        println!("  {} -> {}", voice_event, value);
    }
}

Implementations§

Source§

impl Dat

Source

pub fn event_0(&self) -> &Vec<(String, f32)>

Event parameters with floating-point values.

Maps event parameter names to their default float values. Typically used for parameters like volume, pitch, or other numeric settings.

Source

pub fn block_1(&self) -> &Vec<(String, Vec<String>)>

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Used for categorical audio properties.

Source

pub fn block_2(&self) -> &Vec<(String, Vec<String>)>

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Similar to block_1, potentially for different enumeration categories.

Source

pub fn voice_events(&self) -> &Vec<(String, Vec<String>)>

Voice event enumerations with string lists.

Maps voice event names to lists of possible voice event values. Used for categorizing and organizing voice-related audio events.

Source

pub fn block_4(&self) -> &Vec<String>

Simple event enumeration list.

List of event enumeration names without associated values. FIXME: Possible wrong implementation.

Source

pub fn block_5(&self) -> &Vec<String>

Simple event enumeration list.

List of event enumeration names without associated values. Similar to block_4, potentially for a different category.

Source§

impl Dat

Source

pub fn event_0_mut(&mut self) -> &mut Vec<(String, f32)>

Event parameters with floating-point values.

Maps event parameter names to their default float values. Typically used for parameters like volume, pitch, or other numeric settings.

Source

pub fn block_1_mut(&mut self) -> &mut Vec<(String, Vec<String>)>

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Used for categorical audio properties.

Source

pub fn block_2_mut(&mut self) -> &mut Vec<(String, Vec<String>)>

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Similar to block_1, potentially for different enumeration categories.

Source

pub fn voice_events_mut(&mut self) -> &mut Vec<(String, Vec<String>)>

Voice event enumerations with string lists.

Maps voice event names to lists of possible voice event values. Used for categorizing and organizing voice-related audio events.

Source

pub fn block_4_mut(&mut self) -> &mut Vec<String>

Simple event enumeration list.

List of event enumeration names without associated values. FIXME: Possible wrong implementation.

Source

pub fn block_5_mut(&mut self) -> &mut Vec<String>

Simple event enumeration list.

List of event enumeration names without associated values. Similar to block_4, potentially for a different category.

Source§

impl Dat

Source

pub fn set_event_0(&mut self, val: Vec<(String, f32)>) -> &mut Self

Event parameters with floating-point values.

Maps event parameter names to their default float values. Typically used for parameters like volume, pitch, or other numeric settings.

Source

pub fn set_block_1(&mut self, val: Vec<(String, Vec<String>)>) -> &mut Self

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Used for categorical audio properties.

Source

pub fn set_block_2(&mut self, val: Vec<(String, Vec<String>)>) -> &mut Self

Event enumerations with string lists.

Maps enumeration names to lists of possible string values. Similar to block_1, potentially for different enumeration categories.

Source

pub fn set_voice_events(&mut self, val: Vec<(String, Vec<String>)>) -> &mut Self

Voice event enumerations with string lists.

Maps voice event names to lists of possible voice event values. Used for categorizing and organizing voice-related audio events.

Source

pub fn set_block_4(&mut self, val: Vec<String>) -> &mut Self

Simple event enumeration list.

List of event enumeration names without associated values. FIXME: Possible wrong implementation.

Source

pub fn set_block_5(&mut self, val: Vec<String>) -> &mut Self

Simple event enumeration list.

List of event enumeration names without associated values. Similar to block_4, potentially for a different category.

Trait Implementations§

Source§

impl Clone for Dat

Source§

fn clone(&self) -> Dat

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 Dat

Source§

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

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

impl Decodeable for Dat

Source§

fn decode<R: ReadBytes>( data: &mut R, _extra_data: &Option<DecodeableExtraData<'_>>, ) -> Result<Self>

Decodes binary data into the implementing type. Read more
Source§

impl Default for Dat

Source§

fn default() -> Dat

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for Dat

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Encodeable for Dat

Source§

fn encode<W: WriteBytes>( &mut self, buffer: &mut W, _extra_data: &Option<EncodeableExtraData<'_>>, ) -> Result<()>

Encodes the implementing type into binary data. Read more
Source§

impl PartialEq for Dat

Source§

fn eq(&self, other: &Dat) -> 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 Serialize for Dat

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Dat

Auto Trait Implementations§

§

impl Freeze for Dat

§

impl RefUnwindSafe for Dat

§

impl Send for Dat

§

impl Sync for Dat

§

impl Unpin for Dat

§

impl UnsafeUnpin for Dat

§

impl UnwindSafe for Dat

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> 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<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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<R, P> ReadPrimitive<R> for P
where R: Read + ReadEndian<P>, P: Default,

Source§

fn read_from_little_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_little_endian().
Source§

fn read_from_big_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_big_endian().
Source§

fn read_from_native_endian(read: &mut R) -> Result<Self, Error>

Read this value from the supplied reader. Same as ReadEndian::read_from_native_endian().
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
§

impl<SS, SP> SupersetOf<SS> for SP
where SS: SubsetOf<SP>,

§

fn to_subset(&self) -> Option<SS>

The inverse inclusion map: attempts to construct self from the equivalent element of its superset. Read more
§

fn is_in_subset(&self) -> bool

Checks if self is actually part of its subset T (and can be converted to it).
§

fn to_subset_unchecked(&self) -> SS

Use with care! Same as self.to_subset but without any property checks. Always succeeds.
§

fn from_subset(element: &SS) -> SP

The inclusion map: converts self to the equivalent element of its superset.
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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> Scalar for T
where T: 'static + Clone + PartialEq + Debug,