diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-05-02 11:31:58 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-05-02 11:31:58 -0400 |
commit | 21c3e7e8e5555af964f7419aa9213446eaa421d6 (patch) | |
tree | cd1276bfc52ae5ff6e2cee0e471048db4bcf97c0 /src | |
parent | 867b496f2e5a525043c9fd82ccaaad9349c89fac (diff) |
through SetMauvilleOldMan
Diffstat (limited to 'src')
-rw-r--r-- | src/mauville_old_man.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c new file mode 100644 index 000000000..592b5c4ce --- /dev/null +++ b/src/mauville_old_man.c @@ -0,0 +1,84 @@ +#include "global.h" +#include "main.h" +#include "constants/easy_chat.h" +#include "mauville_old_man.h" + +void sub_8120E08(void); // StorytellerSetup +void sub_81339F8(void); // TraderSetup +void sub_8120B5C(void); + +static const u16 sDefaultBardSongLyrics[6] = { + EC_WORD_SHAKE, + EC_WORD_IT, + EC_WORD_DO, + EC_WORD_THE, + EC_WORD_DIET, + EC_WORD_DANCE +}; + +static void SetupBard(void) +{ + u16 i; + struct MauvilleManBard *bard = &gSaveBlock1Ptr->oldMan.bard; + + bard->id = MAUVILLE_MAN_BARD; + bard->hasChangedSong = FALSE; + bard->language = gGameLanguage; + for (i = 0; i < 6; i++) + bard->songLyrics[i] = sDefaultBardSongLyrics[i]; +} + +static void SetupHipster(void) +{ + struct MauvilleManHipster *hipster = &gSaveBlock1Ptr->oldMan.hipster; + + hipster->id = MAUVILLE_MAN_HIPSTER; + hipster->alreadySpoken = FALSE; + hipster->language = gGameLanguage; +} + +static void SetupStoryteller(void) +{ + sub_8120E08(); +} + +static void SetupGiddy(void) +{ + struct MauvilleManGiddy *giddy = &gSaveBlock1Ptr->oldMan.giddy; + + giddy->id = MAUVILLE_MAN_GIDDY; + giddy->taleCounter = 0; + giddy->language = gGameLanguage; +} + +static void SetupTrader(void) +{ + sub_81339F8(); +} + +void SetMauvilleOldMan(void) +{ + u16 trainerId = (gSaveBlock2Ptr->playerTrainerId[1] << 8) | gSaveBlock2Ptr->playerTrainerId[0]; + + + // Determine man based on the last digit of the player's trainer ID. + switch ((trainerId % 10) / 2) + { + case MAUVILLE_MAN_BARD: + SetupBard(); + break; + case MAUVILLE_MAN_HIPSTER: + SetupHipster(); + break; + case MAUVILLE_MAN_TRADER: + SetupTrader(); + break; + case MAUVILLE_MAN_STORYTELLER: + SetupStoryteller(); + break; + case MAUVILLE_MAN_GIDDY: + SetupGiddy(); + break; + } + sub_8120B5C(); +} |