World of Might and Magic  0.2.0
Open reimplementation of Might and Magic 6 7 8 game engine
Класс SoundList

#include <AudioPlayer.h>

Открытые члены

 SoundList ()
 
void Initialize ()
 
void FromFile (void *data_mm6, void *data_mm7, void *data_mm8)
 

Подробное описание

См. определение в файле AudioPlayer.h строка 157

Конструктор(ы)

◆ SoundList()

SoundList::SoundList ( )
inline

См. определение в файле AudioPlayer.h строка 159

159 {}

Методы

◆ Initialize()

void SoundList::Initialize ( )

См. определение в файле AudioPlayer.cpp строка 72

72 {}

Используется в Engine::SecondaryInitialization().

+ Граф вызова функции:

◆ FromFile()

void SoundList::FromFile ( void data_mm6,
void data_mm7,
void data_mm8 
)

См. определение в файле AudioPlayer.cpp строка 74

74  {
75  static_assert(sizeof(SoundDesc_mm6) == 112, "Wrong type size");
76  static_assert(sizeof(SoundDesc) == 120, "Wrong type size");
77 
78  size_t num_mm6_sounds = data_mm6 ? *(uint32_t *)data_mm6 : 0;
79  size_t num_mm7_sounds = data_mm7 ? *(uint32_t *)data_mm7 : 0;
80  size_t num_mm8_sounds = data_mm8 ? *(uint32_t *)data_mm8 : 0;
81 
82  unsigned int sNumSounds = num_mm6_sounds + num_mm7_sounds + num_mm8_sounds;
83  assert(sNumSounds);
84  assert(!num_mm8_sounds);
85 
86  SoundDesc *sounds = (SoundDesc *)((char *)data_mm7 + 4);
87  for (size_t i = 0; i < num_mm7_sounds; i++) {
88  SoundInfo si;
89  si.sName = (char *)sounds[i].pSoundName;
90  si.uSoundID = sounds[i].uSoundID;
91  si.eType = (SOUND_TYPE)sounds[i].eType;
92  si.uFlags = sounds[i].uFlags;
93  mapSounds[si.uSoundID] = si;
94  }
95 
96  SoundDesc_mm6 *sounds_mm6 = (SoundDesc_mm6 *)((char *)data_mm6 + 4);
97  for (size_t i = 0; i < num_mm6_sounds; i++) {
98  SoundInfo si;
99  si.sName = (char *)sounds_mm6[i].pSoundName;
100  si.uSoundID = sounds_mm6[i].uSoundID;
101  si.eType = (SOUND_TYPE)sounds_mm6[i].eType;
102  si.uFlags = sounds_mm6[i].uFlags;
103  mapSounds[si.uSoundID] = si;
104  }
105 }

Перекрестные ссылки SoundInfo::eType, mapSounds, SoundInfo::sName, SoundInfo::uFlags, SoundDesc_mm6::uFlags, SoundInfo::uSoundID и SoundDesc_mm6::uSoundID.

Используется в Engine::MM7_Initialize().

+ Граф вызова функции:

Объявления и описания членов классов находятся в файлах:
SOUND_TYPE
SOUND_TYPE
Definition: AudioPlayer.cpp:27
SoundInfo::uSoundID
uint32_t uSoundID
Definition: AudioPlayer.cpp:47
SoundDesc_mm6::uSoundID
uint32_t uSoundID
Definition: AudioPlayer.cpp:58
SoundDesc_mm6::uFlags
uint32_t uFlags
Definition: AudioPlayer.cpp:60
SoundInfo::sName
std::string sName
Definition: AudioPlayer.cpp:45
SoundInfo::uFlags
uint32_t uFlags
Definition: AudioPlayer.cpp:48
SoundInfo
Definition: AudioPlayer.cpp:40
SoundDesc_mm6
Definition: AudioPlayer.cpp:56
SoundDesc
Definition: AudioPlayer.cpp:66
mapSounds
std::map< uint32_t, SoundInfo > mapSounds
Definition: AudioPlayer.cpp:53
SoundInfo::eType
SOUND_TYPE eType
Definition: AudioPlayer.cpp:46
uint32_t
unsigned __int32 uint32_t
Definition: SDL_config.h:39