blob: a8a4527214fdd3d0cd8b4f6147f7763830b8ff57 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
|
#include "d/snd/d_snd_bgm_seq_data_mgr.h"
#include "common.h"
#include "d/snd/d_snd_bgm_mgr.h"
#include "d/snd/d_snd_bgm_mml_parsers.h"
#include "d/snd/d_snd_bgm_sound_harp_mgr.h"
#include "d/snd/d_snd_mgr.h"
#include "d/snd/d_snd_player_mgr.h"
#include "d/snd/d_snd_util.h"
#include "d/snd/d_snd_wzsound.h"
SND_DISPOSER_DEFINE(dSndBgmSeqDataMgr_c)
dSndBgmSeqDataMgr_c::dSndBgmSeqDataMgr_c() : mInitialized(false) {
mpMgrs = new dSndBgmSoundHarpMgr_c[NUM_SOUNDS];
}
const char *dSndBgmSeqDataMgr_c::getDataPrefix() {
return "DATA_";
}
u32 dSndBgmSeqDataMgr_c::getDataPrefixLength() {
return std::strlen(getDataPrefix());
}
void dSndBgmSeqDataMgr_c::setup() {
// no-op
}
void dSndBgmSeqDataMgr_c::setupState0() {
if (mInitialized) {
return;
}
// DATA_BGM_BATTLE2, DATA_BGM_BATTLE2_OUTRO
for (int i = 0; i < NUM_SOUNDS; i++) {
u32 dataId = DATA_BGM_BATTLE2 + i;
const char *baseLabel = dSndMgr_c::getSoundLabelString(dataId) + getDataPrefixLength();
u32 baseSoundId = dSndPlayerMgr_c::GetInstance()->convertLabelStringToSoundId(baseLabel);
dSndBgmMmlParserHarp_c parser(&mpMgrs[i]);
(void)dSndBgmMgr_c::isSoundPlayedByBgmBattlePlayer(dataId);
parser.parseData(baseSoundId, (1 << 15) | (1 << 0));
}
mInitialized = true;
}
dSndBgmSoundHarpMgr_c *dSndBgmSeqDataMgr_c::getHarpMgrForSoundId(u32 soundId) {
if (soundId == -1) {
return nullptr;
}
for (dSndBgmSoundHarpMgr_c *it = &mpMgrs[0]; it < &mpMgrs[NUM_SOUNDS]; it++) {
if (it->getSoundId() == soundId) {
return it;
}
}
return nullptr;
}
|