2017-10-28 13:45:44 +00:00
|
|
|
#ifndef GUARD_BARD_MUSIC_H
|
|
|
|
#define GUARD_BARD_MUSIC_H
|
|
|
|
|
2024-10-21 12:58:49 +00:00
|
|
|
#define BARD_SOUND_MAX_LENGTH 6
|
|
|
|
|
2017-10-28 13:45:44 +00:00
|
|
|
struct BardSound
|
|
|
|
{
|
2022-10-27 14:26:09 +00:00
|
|
|
/*0x00*/ u8 songLengthId;
|
|
|
|
/*0x01*/ s8 songLengthOffset;
|
|
|
|
/*0x02*/ u16 unused;
|
2018-05-03 17:40:08 +00:00
|
|
|
/*0x04*/ s16 volume;
|
2022-10-27 14:26:09 +00:00
|
|
|
/*0x06*/ u16 unused2;
|
2017-10-28 13:45:44 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
struct BardPhoneme
|
|
|
|
{
|
|
|
|
/*0x00*/ u16 length;
|
|
|
|
/*0x02*/ u16 pitch;
|
|
|
|
};
|
|
|
|
|
|
|
|
struct BardSong
|
|
|
|
{
|
|
|
|
/*0x00*/ u8 currWord;
|
|
|
|
/*0x01*/ u8 currPhoneme;
|
|
|
|
/*0x02*/ u8 phonemeTimer;
|
|
|
|
/*0x03*/ u8 state;
|
|
|
|
/*0x04*/ s16 length;
|
|
|
|
/*0x06*/ u16 volume;
|
|
|
|
/*0x08*/ s16 pitch;
|
|
|
|
/*0x0A*/ s16 voiceInflection;
|
2024-10-21 12:58:49 +00:00
|
|
|
/*0x0C*/ u16 lyrics[BARD_SOUND_MAX_LENGTH];
|
|
|
|
/*0x18*/ struct BardPhoneme phonemes[BARD_SOUND_MAX_LENGTH];
|
2017-10-28 13:45:44 +00:00
|
|
|
/*0x30*/ const struct BardSound *sound;
|
|
|
|
};
|
|
|
|
|
2021-01-28 20:42:51 +00:00
|
|
|
extern const u16 gNumBardWords_Species;
|
|
|
|
extern const u16 gNumBardWords_Moves;
|
2018-05-03 17:40:08 +00:00
|
|
|
const struct BardSound *GetWordSounds(u16 word);
|
|
|
|
void GetWordPhonemes(struct BardSong *song, u16 word);
|
2017-10-28 14:26:54 +00:00
|
|
|
|
2017-10-28 13:45:44 +00:00
|
|
|
#endif //GUARD_BARD_MUSIC_H
|