summaryrefslogtreecommitdiff
path: root/src/bard_music.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bard_music.c')
-rw-r--r--src/bard_music.c47
1 files changed, 22 insertions, 25 deletions
diff --git a/src/bard_music.c b/src/bard_music.c
index ce2a1e9ec..593376f35 100644
--- a/src/bard_music.c
+++ b/src/bard_music.c
@@ -2,36 +2,33 @@
#include "bard_music.h"
#include "easy_chat.h"
-extern struct BardSound *gBardMusicTable[];
+extern struct UnkBard (*gBardMusicTable[])[][6];
extern s16 *gUnknown_08417068[];
extern u32 gUnknown_084170F4[];
-static s16 sub_814A2B8(u32 arg0, u32 arg1)
+static s16 CalcWordPitch(u32 arg0, u32 songPos)
{
- return gUnknown_08417068[arg0][arg1];
+ return gUnknown_08417068[arg0][songPos];
}
#if ENGLISH
-struct BardSound *sub_814A2D0(u16 arg0, u16 arg1)
+struct UnkBard *GetWordSoundInfo(u16 group, u16 word)
{
- struct BardSound *sounds = gBardMusicTable[arg0];
+ struct UnkBard (*sounds)[][6] = gBardMusicTable[group];
- return &sounds[arg1];
+ return (*sounds)[word];
}
#elif GERMAN
-struct BardSound *sub_814A2D0(u16 arg0, u16 arg1)
+struct UnkBard *GetWordSoundInfo(u16 group, u16 word)
{
- u32 index;
- struct BardSound *sounds;
+ struct UnkBard (*sounds)[][6] = gBardMusicTable[group];
+ u32 index = de_sub_80EB748(group, word);
- sounds = gBardMusicTable[arg0];
- index = de_sub_80EB748(arg0, arg1);
-
- return &sounds[index];
+ return (*sounds)[index];
}
#endif
-s32 sub_814A2EC(struct UnkBard2 *dest, struct UnkBard *src, u16 arg2)
+s32 GetWordPhonemes(struct BardSong *song, struct UnkBard *src, u16 arg2)
{
s32 i;
s32 j;
@@ -39,25 +36,25 @@ s32 sub_814A2EC(struct UnkBard2 *dest, struct UnkBard *src, u16 arg2)
for (i = 0; i < 6; i++)
{
- dest->var18[i].var00 = src[i].var00;
+ song->phonemes[i].sound = src[i].var00;
if (src[i].var00 != 0xFF)
{
- s32 r1 = src[i].var01 +gUnknown_084170F4[src[i].var00];
+ s32 r1 = src[i].var01 + gUnknown_084170F4[src[i].var00];
- dest->var18[i].var02 = r1;
- dest->var18[i].var06 = src[i].var04;
- dest->var04 += r1;
+ song->phonemes[i].length = r1;
+ song->phonemes[i].volume = src[i].volume;
+ song->var04 += r1;
}
}
for (j = 0, thirty = 30; j < i; j++)
- dest->var18[j].var04 = sub_814A2B8(thirty + arg2, j);
+ song->phonemes[j].pitch = CalcWordPitch(thirty + arg2, j);
- dest->var00++;
- dest->var01 = 0;
- dest->var02 = 0;
- dest->var03 = 0;
- dest->var0A = 0;
+ song->currWord++;
+ song->currPhoneme = 0;
+ song->phonemeTimer = 0;
+ song->state = 0;
+ song->voiceInflection = 0;
//warning: no return statement in function returning non-void
}