summaryrefslogtreecommitdiff
path: root/include/easy_chat.h
blob: 7b3b849f09ce768268e70f10857f46a32732e84b (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
#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;  // reporter talked to (Gabby or Ty)
    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 unkBC;
    u8 fillerBD;
    u16 unkBE;
    u8 fillerC0[0x1A8-0xC0];
    s8 unk1A8;
    s8 unk1A9;
    s8 unk1AA[0xB5-0xAA];  // unknown length
    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[0x6C8-0x1C8];
    u8 unk6C8[0x4142-0x6C8];
#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[(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
};

#define static_assert(cond) \
  typedef char test_[(cond) ? 1 : -1]

//static_assert(offsetof(struct Shared1000, unk1A8) == 0x1A8);

extern u8 gUnknown_020388AC;
extern u8 gUnknown_03000740;

// 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