summaryrefslogtreecommitdiff
path: root/include/easy_chat.h
blob: 468902e4c0a7a9d3980ef610e2ab52c7c7a390cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H

struct Sprite;

struct UnknownEasyChatStruct1
{
    u16 unk0;
    u16 unk2;
    u16 unk4;
    u16 unk6;
    void *unk8;
};

struct Shared1000
{
    void (*unk0)(void);  // main cb 2
    u16 *unk4;
    u8 unk8;
    u8 unk9;
    u8 unkA;  // length of contestant array
    u8 unkB;  // reporter talked to (Gabby or Ty)
    u16 unkC[9];
    void (*unk20)(void);
    u16 unk24;
    u8 unk26;
    u8 unk27;
    u16 unk28;
    u8 unk2A[11][2];
    u8 unk40[4][14];
    u8 unk78[5];
    u8 unk7D;
    u8 unk7E[5];
    s8 unk83;
    s8 unk84;
    s8 unk85;
    s8 unk86;
    bool8 unk87;
    u16 unk88;
    u16 unk8A;
    u8 unk8C[(0x96-0x8C)/2][2];
    u8 unk96;
    u8 filler97;
    struct Sprite *unk98;
    struct Sprite *unk9C;
    struct Sprite *unkA0;
    struct Sprite *unkA4;
    struct Sprite *unkA8;
    struct Sprite *unkAC[2];
    struct Sprite *unkB4[2];
    u8 unkBC;
    u8 fillerBD;
    u16 unkBE;
    u8 fillerC0[2];
    u16 unkC2;  // length of unkC8 and unk148 arrays
    u16 unkC4;
    u8 fillerC6[2];
    u16 unkC8[(0x148-0xC8)/16][8];
    struct UnknownEasyChatStruct1 unk148[(0x1A8-0x148)/12];
    s8 unk1A8;
    s8 unk1A9;
    s8 unk1AA[0xB5-0xAA];
    s8 unk1B5;
    s8 unk1B6;
    s8 unk1B7;
    u8 unk1B8;
    u8 unk1B9;
    u16 unk1BA;
    u16 unk1BC;
    u8 unk1BE;
    s8 unk1BF;
    s8 unk1C0;
    u8 filler1C1[3];
    void (*unk1C4)(void);
    u8 unk1C8[0x500];
    u8 unk6C8[0xB78-0x6C8];
#if GERMAN
    u16 unkB78[27][270];
#else
    u16 unkB78[27][255];
#endif
    u16 unk4142[(0x78-0x42)/2];  //0x446C
    u16 unk4178[(0x41A4-0x4178)/2]; // unknown length
    const u8 *ecWordStrings[0x16][0x100];  //0x44CE in german
    s8 unk99A4;
    s8 unk99A5;
    s8 unk99A6[130];
    s8 unk9A28;
    s8 unk9A29;
    u16 unk9A2A[(0x9C32-0x9A2A)/4][2];  // unknown length
    u8 unk9C32;
    u8 filler9C33;
    u16 unk9C34[3][9];
    u8 filler9C6A[2];
    s8 *unk9C6C;
    u8 unk9C70;
    s8 unk9C71;
    u8 filler9C72[2];
    struct Sprite *unk9C74;
    u8 filler9C78[4];
    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[0xC9-0xA4];
    u8 unk9DC9[0xE14 - 0xDC9];
    u8 unk9E14[0xE41 - 0xE14];
    u8 unk9E41[0x6E - 0x41];
    u8 unk9E6E[0xEE - 0x6E];
    u8 unk9EEE[0xF6E - 0xEEE];
    u8 unk9F6E[0x8E - 0x6E];  // unknown length
    u8 unk9F8E[7];  // unknown length
};

// const pointer to shared1000. easy_chat might be two separate files.
extern struct Shared1000 *const gEasyChatStruct;

void ShowEasyChatScreen(void);
void sub_80E62A0(u8 arg0, u16 *arg1, void (*arg2)(void), u8 arg3);
u16 sub_80EB72C(u16 group);
void sub_80EB6FC(u16 *, u16);
void InitEasyChatPhrases(void);
u8 sub_80EAD7C(u8 group);
u16 sub_80EAE88(u8);
u8 sub_80EB37C(u16);
u8* EasyChat_GetWordText(u8 *, u16);
u8 *ConvertEasyChatWordsToString(u8 *dst, u16 *words, u16, u16);
u16 sub_80EB784(u16 group);
u8 sub_80EB868(u8);
void sub_80EB890(u8);
u8 sub_80EB8C0(void);
u16 sub_80EB8EC(void);
u8 *sub_80EB544(u8 *dst, u16 *words, u16 arg2, u16 arg3);

#if GERMAN
u32 de_sub_80EB748(s32, s32);
#endif

#endif // GUARD_EASYCHAT_H