[ { "name": "SoundLoopingTrackFlags", "type": "bitfield", "fields": [ "fade in at start", "fade out at stop", "fade in alternate" ], "width": 32 }, { "name": "SoundLoopingDetailFlags", "type": "bitfield", "fields": [ "don't play with alternate", "don't play without alternate" ], "width": 32 }, { "name": "SoundLoopingFlags", "type": "bitfield", "fields": [ "deafening to ais", "not a loop", "stops music", "siege of madrigal" ], "width": 32 }, { "name": "SoundLoopingTrack", "fields": [ { "name": "flags", "type": "SoundLoopingTrackFlags" }, { "name": "gain", "type": "Fraction", "minimum": 0.0, "maximum": 1.0, "default": 1.0 }, { "name": "fade in duration", "unit": "seconds", "type": "float" }, { "name": "fade out duration", "unit": "seconds", "type": "float" }, { "type": "pad", "size": 32 }, { "name": "start", "type": "TagReference", "groups": [ "sound" ] }, { "name": "loop", "type": "TagReference", "groups": [ "sound" ] }, { "name": "end", "type": "TagReference", "groups": [ "sound" ] }, { "type": "pad", "size": 32 }, { "name": "alternate loop", "type": "TagReference", "groups": [ "sound" ] }, { "name": "alternate end", "type": "TagReference", "groups": [ "sound" ] } ], "type": "struct", "size": 160 }, { "name": "SoundLoopingDetail", "fields": [ { "name": "sound", "type": "TagReference", "groups": [ "sound" ] }, { "name": "random period bounds", "bounds": true, "unit": "seconds", "type": "float" }, { "name": "gain", "type": "Fraction", "minimum": 0.0, "maximum": 1.0, "default": 1.0 }, { "name": "flags", "type": "SoundLoopingDetailFlags" }, { "type": "pad", "size": 48 }, { "name": "yaw bounds", "bounds": true, "type": "Angle", "default": [ -3.14159265359, 3.14159265359 ] }, { "name": "pitch bounds", "bounds": true, "type": "Angle", "default": [ -1.57079632679, 1.57079632679 ] }, { "name": "distance bounds", "bounds": true, "unit": "world units", "type": "float" } ], "type": "struct", "title": "sound", "size": 104 }, { "name": "SoundLooping", "fields": [ { "name": "flags", "type": "SoundLoopingFlags" }, { "name": "zero detail sound period", "type": "float" }, { "name": "zero detail unknown floats", "type": "float", "count": 2, "little_endian": true }, { "name": "one detail sound period", "type": "float" }, { "name": "one detail unknown floats", "type": "float", "count": 2, "little_endian": true }, { "name": "unknown int", "type": "uint32", "cache_only": true }, { "name": "maximum distance", "type": "float", "cache_only": true }, { "type": "pad", "size": 8 }, { "name": "continuous damage effect", "type": "TagReference", "groups": [ "continuous_damage_effect" ] }, { "name": "tracks", "type": "Reflexive", "struct": "SoundLoopingTrack", "maximum": 4 }, { "name": "detail sounds", "type": "Reflexive", "struct": "SoundLoopingDetail", "maximum": 32 } ], "type": "struct", "size": 84, "group": "sound_looping", "needs_preprocessed": true, "needs_postprocessed": true } ]