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
|
#ifndef GUARD_EASYCHAT_H
#define GUARD_EASYCHAT_H
struct Sprite;
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;
struct Sprite *unk98;
struct Sprite *unk9C;
struct Sprite *unkA0;
struct Sprite *unkA4;
struct Sprite *unkA8;
struct Sprite *unkAC[2];
struct Sprite *unkB4[2];
u8 fillerBC[0x1A8-0xBC];
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;
u16 unk9A2A[0x90][2]; // unknown length
u8 filler9C6A[2];
s8 *unk9C6C;
u8 unk9C70;
s8 unk9C71;
u8 filler9C72[0xC-0x2];
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[0x6E - 0x41];
u8 unk9E6E[0xEE - 0x6E];
u8 unk9EEE[0xF6E - 0xEEE];
u8 unk9F6E[1]; // unknown length
};
#define static_assert(cond) \
typedef char test_[(cond) ? 1 : -1]
//static_assert(offsetof(struct Shared1000, unk1A8) == 0x1A8);
extern u8 gUnknown_020388AC;
// const pointer to shared1000. easy_chat might be two separate files.
extern struct Shared1000 *const gUnknown_083DB694;
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(u32, u32);
#endif
#endif // GUARD_EASYCHAT_H
|