Riven SLST resources

From A look inside The Link @ wiki
Revision as of 19:17, 10 March 2008 by TitoDalCanton (Talk | contribs)

Jump to: navigation, search
Mohawk Overview
Scripts Variables
External commands

They contain ambient sound info for the card. Ambient sounds are arbitrary mixes of a number of sounds (for example wind + steam flowing in a pipe). Sounds are read from tWAV resources stored in the associated *_sounds.mhk archive (not in the same archive storing the SLST resource). For example, a SLST resource in a_Data will point to tWAV sounds stored in a_Sounds, not a_Data.

Each SLST resource is a list of records; it starts with an unsigned short record count, followed by that many records. The record structure is:

unsigned short index Record index, starting from 1
unsigned short sound_count How many sounds to mix
unsigned short sound_ids[sound_count] tWAV resource IDs of the sounds to use
unsigned short fade_flags
unsigned short loop If set to 1, the mix loops forever
unsigned short global_volume Volume of the resulting sound mix
unsigned short u0
unsigned short u1
unsigned short volumes[sound_count] Volume for each sound component
unsigned short balances[sound_count] Balance for each sound component (<0 left, 0 center, >0 right)
unsigned short u2[sound_count]

fade_flags is a bit field controlling how to fade the sound channels when the record is activated. Bit 0 controls the fading out of any previous playing sound, bit 1 controls the fading in of the sound specified by the new record. For example, 3 would cause both sounds to fade, while 0 would suddenly stop the previous sound and immediately start the new one.

Volume ranges are not known exactly, values as high as 355 have been observed. Riven apparently keeps "scale factors" for sound volumes in its Riven.ini file (VolumeDivisorWin and VolumeDivisorMac).

u0 is usually 0 or 1, and changing it seems to do nothing. u1 is 0; giving it a non-zero value prevents sounds from playing. u2[] seems always 255 or 256 (for every sound component) and changing it seems to do nothing.

The first record is automatically enabled when entering the card, so it doesn't need to be activated from scripts.