summaryrefslogtreecommitdiff
path: root/src/easy_chat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/easy_chat.c')
-rw-r--r--src/easy_chat.c437
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;
}