summaryrefslogtreecommitdiff
path: root/src/easy_chat_before.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/easy_chat_before.c')
-rw-r--r--src/easy_chat_before.c135
1 files changed, 52 insertions, 83 deletions
diff --git a/src/easy_chat_before.c b/src/easy_chat_before.c
index b5e87337f..5d606ef10 100644
--- a/src/easy_chat_before.c
+++ b/src/easy_chat_before.c
@@ -6,10 +6,12 @@
#include "easy_chat.h"
#include "event_data.h"
#include "ewram.h"
+#include "graphics.h"
#include "main.h"
#include "menu.h"
#include "palette.h"
#include "sound.h"
+#include "sprite.h"
#include "string_util.h"
#include "strings.h"
#include "unknown_task.h"
@@ -19,86 +21,6 @@ extern const struct WindowConfig gWindowConfig_81E6DA8;
extern void sub_80546B8(void);
-struct Shared1000
-{
- void (*unk0)(void); // main cb 2
- u16 *unk4;
- u8 unk8;
- u8 unk9;
- u8 unkA;
- u8 unkB;
- u16 unkC[(0x20-0xC)/2]; // unknown length
- void (*unk20)(void);
- u16 unk24;
- u8 unk26;
- u8 unk27;
- u16 unk28;
- u8 unk2A[11][2]; // unknown length
- u8 unk40[4][14];
- u8 unk78[0x7D - 0x78]; // unknown length
- u8 unk7D;
- u8 unk7E[0x83-0x7E];
- s8 unk83; // s8?
- //u8 unk83; // s8?
- s8 unk84;
- s8 unk85;
- s8 unk86;
- bool8 unk87;
- u16 unk88;
- u16 unk8A;
- u8 unk8C[(0x96-0x8C)/2][2];
- u8 unk96;
- u8 filler97[0x1A8-0x97];
- s8 unk1A8;
- s8 unk1A9;
- s8 unk1AA[0xB5-0xAA]; // unknown length
- s8 unk1B5;
- s8 unk1B6;
- s8 unk1B7;
- u8 unk1B8;
- u8 unk1B9;
- u16 unk1BA;
- u8 filler1BC[0xBE - 0xBC];
- u8 unk1BE;
- u8 filler1BF;
- s8 unk1C0;
- u8 filler1C1[3];
- void (*unk1C4)(void);
- u8 filler1C8[0x4142-0x1C8];
-#if GERMAN
- u8 filler4142_de[0x32A];
-#endif
- u16 unk4142[(0x78-0x42)/2];
- u16 unk4178[(0x99A4-0x4178)/2]; // unknown length
-#if GERMAN
- u8 filler99A4_de[2];
-#endif
- s8 unk99A4;
- s8 unk99A5;
- s8 unk99A6[0xA28-0x9A6];
- s8 unk9A28;
- s8 unk9A29;
- //u8 filler9A2A[0xC7C-0xA2A];
- u16 unk9A2A[0x94][2]; // unknown length
- u8 filler9C7A[2];
- u16 unk9C7C; // this is at 0x9FA8 in German
- s16 unk9C7E;
- u8 unk9C80[0xC9-0x80];
- u8 unk9CC9[0xD12-0xCC9];
- u8 unk9D12[0x5B-0x12];
- u8 unk9D5B[0xA4-0x5B];
- u8 unk9DA4[0xC8-0xA4];
- u8 filler9DC8[0xE14 - 0xDC8];
- u8 unk9E14[0xE41 - 0xE14];
- u8 unk9E41[0xF6E - 0xE41];
- u8 unk9F6E[1]; // unknown length
-};
-
-#define static_assert(cond) \
- typedef char test_[(cond) ? 1 : -1]
-
-//static_assert(offsetof(struct Shared1000, unk9DA4) == 0x9DA4);
-
#define shared1000 (*(struct Shared1000 *)(gSharedMem + 0x1000))
const u16 gMysteryEventPhrase[] = {EC_WORD_MYSTERY, EC_WORD_EVENT, EC_WORD_IS, EC_WORD_EXCITING};
@@ -231,12 +153,15 @@ u8 sub_80E810C(void);
void sub_80E81C0(void);
void sub_80E81FC(void);
void sub_80E8218(void);
+
void sub_80E8398();
void sub_80E8420(void);
void sub_80E8504(void);
void sub_80E87CC();
+
void sub_80E88F0(void);
void sub_80E8958();
+
void sub_80E8BF4();
void sub_80E8CEC(void);
void sub_80E8D54(void);
@@ -270,7 +195,7 @@ u8 sub_80EAD7C(u8);
void sub_80EAECC(void);
void sub_80EB040(void);
void sub_80EB0B0(void);
-void sub_80EB218();
+u8 *sub_80EB218(u8 *, u16, u16);
u16 sub_80EB2D4();
bool8 sub_80EB680(u16 *, u16, u16, u16);
@@ -602,8 +527,6 @@ const u16 gUnknown_083DB7F4[] =
EC_WORD_EXCL,
};
-const u16 InterviewPalette_0[] = INCBIN_U16("graphics/misc/interview_pal0.gbapal");
-
// ResetDefaultEasyChatPhrases
void InitEasyChatPhrases(void)
{
@@ -1773,3 +1696,49 @@ bool8 sub_80E8094(void)
}
return TRUE;
}
+
+u8 sub_80E810C(void)
+{
+ u16 i;
+
+ for (i = 0; i < 5; i++)
+ {
+ u8 *ptr;
+ u8 *r3;
+
+ ptr = sub_80EB218(shared1000.unk9E6E, shared1000.unkC[0], 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, shared1000.unkC[1], 0);
+
+ ptr = sub_80EB218(shared1000.unk9EEE, gBerryMasterWifePhrases[i][0], 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, gBerryMasterWifePhrases[i][1], 0);
+
+ ptr = shared1000.unk9E6E;
+ r3 = shared1000.unk9EEE;
+ while (*ptr != EOS && *r3 != EOS)
+ {
+ if (*ptr++ != *r3++)
+ break;
+ }
+ if (*ptr == EOS && *r3 == EOS)
+ return i + 1;
+ }
+ return 0;
+}
+
+void sub_80E81C0(void)
+{
+ u8 *ptr;
+
+ ptr = sub_80EB218(gStringVar2, shared1000.unk9C7C, 0);
+ *ptr++ = CHAR_SPACE;
+ sub_80EB218(ptr, shared1000.unk9C7E, 0);
+}
+
+void sub_80E81FC(void)
+{
+ PlaySE(SE_SELECT);
+ sub_80E95A4();
+ MenuZeroFillWindowRect(0, 0, 29, 13);
+}