Defining sounds that are used on different things such as spells, weapon-hits, weather, music etc.
…
0.5.3.3368
struct SoundEntriesRec {
uint32_t m_ID;
uint32_t m_soundType;
stringrefⁱ m_name;
stringrefⁱ m_File[10]; // If empty the corresponding m_Freq is ignored
uint32_t m_Freq[10]; // Used when selecting the next random sound to play (SOUNDDEFINITION::GetRandomFileName
)
stringrefⁱ m_DirectoryBase;
float m_volumeFloat;
float m_pitch;
float m_pitchVariation;
uint32_t m_priority;
uint32_t m_channel;
uint32_t m_flags; // SoundInterfaceFlags
float m_minDistance;
float m_maxDistance;
float m_distanceCutoff;
uint32_t m_EAXDef;
};
enum SoundInterfaceFlags
{
UNUSED = 0x0001, // still seen in file for a lot of spells
UNUSED = 0x0002,
UNUSED = 0x0004,
UNUSED = 0x0008,
UNUSED = 0x0010,
NO_DUPLICATES = 0x0020, // client prevents the same sound overlapping
UNUSED = 0x0040,
UNUSED = 0x0080,
UNUSED = 0x0100,
LOOPING = 0x0200,
VARY_PITCH = 0x0400,
VARY_VOLUME = 0x0800,
UNUSED = 0x1000,
}
1.12.1.5875
struct SoundEntriesRec {
uint32_t m_ID;
uint32_t m_soundType;
stringrefⁱ m_name;
stringrefⁱ m_File[10]; // If empty the corresponding m_Freq is ignored
uint32_t m_Freq[10]; // Used when selecting the next random sound to play (SOUNDDEFINITION::GetRandomFileName
)
stringrefⁱ m_DirectoryBase;
float m_volumeFloat;
uint32_t m_flags; // 0x20: use OS sound settingsᵘ, 0x200: PlaySpellLoopedSound, 0x400: SOUNDDEFINITION::SetFrequencyAndVolume
float m_minDistance;
float m_maxDistance;
float m_distanceCutoff;
foreign_keyⁱ<uint32_t, &SoundEntriesAdvancedRec::m_ID> m_soundEntriesAdvancedID;
};
Structure
Column
|
Field
|
Type
|
Notes
|
1 |
ID |
Integer |
|
2 |
SoundType |
Integer |
Value to identify the type. See table below for values.
|
3 |
Name |
String |
|
4-13 |
Filenames[10] |
String |
One entry can have more subentries. Used for different sounds at weapons.
|
14-23 |
Freq[10] |
Integer |
Related to the files above. Maybe a count of how much they are played in any way?.
|
24 |
FilePath |
String |
The filenames come without path. This is set here.
|
25 |
Volume |
Float |
|
26 |
Flags |
Integer |
Has the values 0, 1, 32, 33, 34, 512, 513, 544, 1024 and 1056. (hex: 0h, 1h, 20h, 200h, 400h)
|
27 |
minDistance |
Float |
|
28 |
distanceCutoff |
Float |
Radius from the sound emitter's world position
|
29 |
EAXDef |
Integer |
|
30 |
soundEntriesAdvancedID |
Integer |
|
Sound Types (Column 2)
Value
|
Meaning
|
1 |
Spells |
|
2 |
UI |
|
3 |
Footsteps |
|
4 |
Combat Impacts |
|
6 |
Combat Swings |
|
7 |
Greetings |
|
8 |
Casting |
|
9 |
Pick Up/Put Down |
// "Item Use Sounds"
|
10 |
NPC Combat |
// Monster Sounds
|
12 |
Errors |
// "VocalUISounds"
|
13 |
Birds |
// "Point Sound Emitters" in 2.5 client
|
14 |
Doodad Sounds |
|
16 |
Death Thud Sounds |
|
17 |
NPC Sounds |
|
18 |
Test/Temporary |
// deosn't exist in blizzard's enum in 2.5
|
19 |
Foley Sounds (NOT EDITABLE) |
|
20 |
Footsteps(Splashes) |
|
21 |
CharacterSplashSounds |
|
22 |
WaterVolume Sounds |
|
23 |
Tradeskill Sounds |
|
24 |
Terrain Emitter Sounds |
|
25 |
Game Object Sounds |
|
26 |
SpellFizzles |
|
27 |
CreatureLoops |
|
28 |
Zone Music Files |
|
29 |
Character Macro Lines |
// emotes
|
30 |
Cinematic Music |
|
31 |
Cinematic Voice |
|
50 |
Zone Ambience |
|
52 |
Sound Emitters |
|
53 |
Vehicle States |
|
6.0.1.18179
struct SoundEntriesRec {
uint32_t m_ID;
uint32_t m_soundType;
stringrefⁱ m_name;
foreign_keyⁱ<uint32_t, &FileDataRec::m_ID> m_FileDataID[20];
uint32_t m_Freq[20];
float m_volumeFloat;
uint32_t m_flags;
float m_minDistance;
float m_distanceCutoff;
uint32_t m_EAXDef;
foreign_keyⁱ<uint32_t, &SoundEntriesAdvancedRec::m_ID> m_soundEntriesAdvancedID;
float m_volumevariationplus;
float m_volumevariationminus;
float m_pitchvariationplus;
float m_pitchvariationminus;
float m_pitchAdjust;
uint32_t m_dialogtype;
foreign_keyⁱ<uint32_t, &SoundBusRec::m_ID> m_busOverwriteID;
};