DB/SoundEntries

From wowdev
Revision as of 09:46, 12 November 2022 by T1ti (talk | contribs) (→‎Sound Types (Column 2))
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Defining sounds that are used on different things such as spells, weapon-hits, weather, music etc.

PreVanilla … WoD

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;
};