diff options
Diffstat (limited to 'src/easy_chat.c')
-rw-r--r-- | src/easy_chat.c | 437 |
1 files changed, 218 insertions, 219 deletions
diff --git a/src/easy_chat.c b/src/easy_chat.c index 0ed5bdea9..26a69f9ff 100644 --- a/src/easy_chat.c +++ b/src/easy_chat.c @@ -2,7 +2,7 @@ // Includes #include "global.h" #include "malloc.h" -#include "songs.h" +#include "constants/songs.h" #include "sound.h" #include "overworld.h" #include "task.h" @@ -17,15 +17,16 @@ // Static type declarations #define EZCHAT_TASK_STATE 0 -#define EZCHAT_TASK_KIND 1 +#define EZCHAT_TASK_KIND 1 #define EZCHAT_TASK_WORDS 2 #define EZCHAT_TASK_MAINCALLBACK 4 #define EZCHAT_TASK_UNK06 6 -#define EZCHAT_TASK_SIZE 7 +#define EZCHAT_TASK_SIZE 7 // Static RAM declarations -EWRAM_DATA struct { +EWRAM_DATA struct +{ u8 kind; u8 unk_01; u8 unk_02; @@ -58,7 +59,7 @@ static void sub_811A2FC(u8); static void sub_811A4D0(MainCallback); static bool32 sub_811A88C(u16); static void sub_811A8A4(u16); -static void sub_811A8F0(void); +void sub_811A8F0(void); static bool8 EasyChat_AllocateResources(u8, u16 *, u8); static void EasyChat_FreeResources(void); static u16 sub_811AAAC(void); @@ -163,56 +164,56 @@ static void sub_811A2FC(u8 taskId) data = gTasks[taskId].data; switch (data[EZCHAT_TASK_STATE]) { - case 0: - SetVBlankCallback(sub_811A290); - BlendPalettes(-1, 16, 0); - BeginNormalPaletteFade(-1, -1, 16, 0, 0); - data[EZCHAT_TASK_STATE] = 5; - break; - case 1: - v0 = sub_811AAAC(); - if (sub_811A88C(v0)) - { - BeginNormalPaletteFade(-1, -2, 0, 16, 0); - data[EZCHAT_TASK_STATE] = 3; - data[EZCHAT_TASK_UNK06] = v0; - } - else if (v0 == 0x18) - { - BeginNormalPaletteFade(-1, -1, 0, 16, 0); - data[EZCHAT_TASK_STATE] = 4; - } - else if (v0 != 0) - { - PlaySE(SE_SELECT); - sub_811C158(v0); - data[EZCHAT_TASK_STATE] ++; - } - break; - case 2: - if (!sub_811C170()) - { - data[EZCHAT_TASK_STATE] = 1; - } - break; - case 3: - if (!gPaletteFade.active) - { - sub_811A8A4(data[EZCHAT_TASK_UNK06]); - } - break; - case 4: - if (!gPaletteFade.active) - { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } - break; - case 5: - if (!gPaletteFade.active) - { - data[EZCHAT_TASK_STATE] = 1; - } - break; + case 0: + SetVBlankCallback(sub_811A290); + BlendPalettes(-1, 16, 0); + BeginNormalPaletteFade(-1, -1, 16, 0, 0); + data[EZCHAT_TASK_STATE] = 5; + break; + case 1: + v0 = sub_811AAAC(); + if (sub_811A88C(v0)) + { + BeginNormalPaletteFade(-1, -2, 0, 16, 0); + data[EZCHAT_TASK_STATE] = 3; + data[EZCHAT_TASK_UNK06] = v0; + } + else if (v0 == 0x18) + { + BeginNormalPaletteFade(-1, -1, 0, 16, 0); + data[EZCHAT_TASK_STATE] = 4; + } + else if (v0 != 0) + { + PlaySE(SE_SELECT); + sub_811C158(v0); + data[EZCHAT_TASK_STATE] ++; + } + break; + case 2: + if (!sub_811C170()) + { + data[EZCHAT_TASK_STATE] = 1; + } + break; + case 3: + if (!gPaletteFade.active) + { + sub_811A8A4(data[EZCHAT_TASK_UNK06]); + } + break; + case 4: + if (!gPaletteFade.active) + { + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + } + break; + case 5: + if (!gPaletteFade.active) + { + data[EZCHAT_TASK_STATE] = 1; + } + break; } } @@ -223,38 +224,38 @@ static bool8 sub_811A428(u8 taskId) data = gTasks[taskId].data; switch (data[EZCHAT_TASK_STATE]) { - case 0: - SetVBlankCallback(NULL); - ResetSpriteData(); - FreeAllSpritePalettes(); - ResetPaletteFade(); - break; - case 1: - if (!sub_811F28C()) - { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } - break; - case 2: - if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) - { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } - break; - case 3: - if (!sub_811BF8C()) - { - sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); - } - break; - case 4: - if (sub_811BFA4()) - { - return TRUE; - } - break; - default: - return FALSE; + case 0: + SetVBlankCallback(NULL); + ResetSpriteData(); + FreeAllSpritePalettes(); + ResetPaletteFade(); + break; + case 1: + if (!sub_811F28C()) + { + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + } + break; + case 2: + if (!EasyChat_AllocateResources(data[EZCHAT_TASK_KIND], (u16 *)GetWordTaskArg(taskId, EZCHAT_TASK_WORDS), data[EZCHAT_TASK_SIZE])) + { + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + } + break; + case 3: + if (!sub_811BF8C()) + { + sub_811A4D0((MainCallback)GetWordTaskArg(taskId, EZCHAT_TASK_MAINCALLBACK)); + } + break; + case 4: + if (sub_811BFA4()) + { + return TRUE; + } + break; + default: + return FALSE; } data[EZCHAT_TASK_STATE] ++; return TRUE; @@ -273,94 +274,94 @@ void easy_chat_input_maybe(void) { int i; u16 *words; - OldMan *oldMan; + struct MauvilleManBard *bard; u8 sizeParam = 3; switch (gSpecialVar_0x8004) { - case 0: - words = gSaveBlock1Ptr->unk2BB0; - break; - case 1: - words = gSaveBlock1Ptr->unk2BBC; - break; - case 2: - words = gSaveBlock1Ptr->unk2BC8; - break; - case 3: - words = gSaveBlock1Ptr->unk2BD4; - break; - case 4: - words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; - break; - case 6: - oldMan = &gSaveBlock1Ptr->oldMan; - for (i = 0; i < 6; i ++) - { - oldMan->oldMan1.mauvilleOldMan_ecArray2[i] = oldMan->oldMan1.mauvilleOldMan_ecArray[i]; - } - words = oldMan->oldMan1.mauvilleOldMan_ecArray2; - break; - case 5: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; - sizeParam = gSpecialVar_0x8006; - break; - case 7: - words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; - sizeParam = 1; - break; - case 8: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; - sizeParam = 0; - break; - case 9: - words = (u16 *)gStringVar3; - words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; - words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; - break; - case 10: - words = gSaveBlock1Ptr->gabbyAndTyData.quote; - *words = -1; - sizeParam = 1; - break; - case 11: - words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; - sizeParam = 0; - break; - case 12: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; - sizeParam = 1; - break; - case 13: - words = (u16 *)gStringVar3; - InitializeEasyChatWordArray(words, 2); - break; - case 14: - words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; - words[0] = -1; - sizeParam = 2; - break; - case 15: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; - break; - case 16: - return; - case 17: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; - break; - case 18: - words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; - break; - case 19: - words = gSaveBlock2Ptr->unk_104; - break; - case 20: - words = sub_801B058(); - break; - default: - return; + case 0: + words = gSaveBlock1Ptr->unk2BB0; + break; + case 1: + words = gSaveBlock1Ptr->unk2BBC; + break; + case 2: + words = gSaveBlock1Ptr->unk2BC8; + break; + case 3: + words = gSaveBlock1Ptr->unk2BD4; + break; + case 4: + words = gSaveBlock1Ptr->mail[gSpecialVar_0x8005].words; + break; + case 6: + bard = &gSaveBlock1Ptr->oldMan.bard; + for (i = 0; i < 6; i ++) + { + bard->temporaryLyrics[i] = bard->songLyrics[i]; + } + words = bard->temporaryLyrics; + break; + case 5: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words; + sizeParam = gSpecialVar_0x8006; + break; + case 7: + words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words[gSpecialVar_0x8006]; + sizeParam = 1; + break; + case 8: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].unkShow04.words; + sizeParam = 0; + break; + case 9: + words = (u16 *)gStringVar3; + words[0] = gSaveBlock1Ptr->easyChatPairs[0].words[0]; + words[1] = gSaveBlock1Ptr->easyChatPairs[0].words[1]; + break; + case 10: + words = gSaveBlock1Ptr->gabbyAndTyData.quote; + *words = -1; + sizeParam = 1; + break; + case 11: + words = &gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].bravoTrainer.words[gSpecialVar_0x8006]; + sizeParam = 0; + break; + case 12: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanclubOpinions.words18; + sizeParam = 1; + break; + case 13: + words = (u16 *)gStringVar3; + InitializeEasyChatWordArray(words, 2); + break; + case 14: + words = gSaveBlock1Ptr->tvShows[gSpecialVar_0x8005].fanClubSpecial.words; + words[0] = -1; + sizeParam = 2; + break; + case 15: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_016; + break; + case 16: + return; + case 17: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_002; + break; + case 18: + words = gSaveBlock1Ptr->lilycoveLady.quiz.unk_014; + break; + case 19: + words = (u16 *)&gSaveBlock2Ptr->field_DC[0].field_0[0x28]; + break; + case 20: + words = sub_801B058(); + break; + default: + return; } overworld_free_bg_tilemaps(); - sub_811A20C(gSpecialVar_0x8004, words, sub_80861B0, sizeParam); + sub_811A20C(gSpecialVar_0x8004, words, CB2_ReturnToFieldContinueScript, sizeParam); } static void sub_811A7E4(void) @@ -370,18 +371,18 @@ static void sub_811A7E4(void) UpdatePaletteFade(); switch (gMain.state) { - case 0: - fade_screen(1, 0); - break; - case 1: - if (!gPaletteFade.active) - { - lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; - lilycoveLady->quiz.unk_016[0] = -1; - overworld_free_bg_tilemaps(); - sub_811A8F0(); - } - return; + case 0: + FadeScreen(1, 0); + break; + case 1: + if (!gPaletteFade.active) + { + lilycoveLady = &gSaveBlock1Ptr->lilycoveLady; + lilycoveLady->quiz.unk_016[0] = -1; + overworld_free_bg_tilemaps(); + sub_811A8F0(); + } + return; } gMain.state ++; } @@ -398,9 +399,7 @@ static int sub_811A868(u16 word) for (i = 0; i < ARRAY_COUNT(gUnknown_08597530); i ++) { if (word == gUnknown_08597530[i].word) - { return i; - } } return -1; } @@ -419,31 +418,31 @@ static void sub_811A8A4(u16 word) sub_811A4D0(gUnknown_08597530[i].callback); } -static void sub_811A8CC(void) +void sub_811A8CC(void) { - sub_811A20C(0xF, gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, sub_80861B0, 3); + sub_811A20C(0xF, gSaveBlock1Ptr->lilycoveLady.quiz.unk_016, CB2_ReturnToFieldContinueScript, 3); } -static void sub_811A8F0(void) +void sub_811A8F0(void) { - sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); + sub_811A20C(0x10, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } -static void sub_811A914(void) +void sub_811A914(void) { - sub_811A20C(0x12, gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, sub_80861B0, 3); + sub_811A20C(0x12, gSaveBlock1Ptr->lilycoveLady.quiz.unk_014, CB2_ReturnToFieldContinueScript, 3); } -static void sub_811A938(void) +void sub_811A938(void) { - sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, sub_80861B0, 3); + sub_811A20C(0x11, gSaveBlock1Ptr->lilycoveLady.quiz.unk_002, CB2_ReturnToFieldContinueScript, 3); } static bool8 EasyChat_AllocateResources(u8 kind, u16 *words, u8 sizeParam) { u8 r6; int i; - + gUnknown_0203A118 = malloc(sizeof(*gUnknown_0203A118)); if (gUnknown_0203A118 == NULL) { @@ -505,28 +504,28 @@ static u16 sub_811AAAC(void) { switch (gUnknown_0203A118->unk_04) { - case 0: - return sub_811AB68(); - case 1: - return sub_811ACDC(); - case 2: - return sub_811AE44(); - case 3: - return sub_811AF00(); - case 4: - return sub_811AF8C(); - case 5: - return sub_811B040(); - case 6: - return sub_811AFEC(); - case 7: - return sub_811B08C(); - case 8: - return sub_811B0BC(); - case 9: - return sub_811B0E8(); - case 10: - return sub_811B0F8(); + case 0: + return sub_811AB68(); + case 1: + return sub_811ACDC(); + case 2: + return sub_811AE44(); + case 3: + return sub_811AF00(); + case 4: + return sub_811AF8C(); + case 5: + return sub_811B040(); + case 6: + return sub_811AFEC(); + case 7: + return sub_811B08C(); + case 8: + return sub_811B0BC(); + case 9: + return sub_811B0E8(); + case 10: + return sub_811B0F8(); } return 0; } @@ -535,10 +534,10 @@ bool32 sub_811AB44(void) { switch (sub_811BA68()) { - case 2: - case 7: - case 8: - return TRUE; + case 2: + case 7: + case 8: + return TRUE; } return FALSE; } |