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
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
|
#ifndef GUARD_WONDER_MAIL_H
#define GUARD_WONDER_MAIL_H
#include "file_system.h"
#include "text.h"
#include "item.h"
#include "pokemon.h"
#include "sub_8095228.h"
#include "constants/wonder_mail.h"
struct unkStruct_802F204
{
/* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; // client name?
/* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name?
/* 0x14 */ s16 unk14; // poke species (client??)
/* 0x16 */ u8 unk16;
/* 0x18 */ s32 moneyReward;
/* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS];
/* 0x1F */ u8 numItems;
/* 0x20 */ u8 friendAreaReward;
u8 fill21[0x24 - 0x21];
/* 0x24 */ u32 teamRankPtsReward;
};
struct WonderMail
{
/* 0x0 */ u8 mailType; // mail type
/* 0x1 */ u8 missionType; // mission type
/* 0x2 */ u8 unk2;
/* 0x3 */ u8 unk3;
/* 0x4 */ u8 dungeon; // dungeon
/* 0x5 */ u8 floor; // floor
/* 0x8 */ u32 unk8;
/* 0xC */ s16 clientSpecies; // client pokemon
/* 0xE */ s16 targetSpecies; // target
/* 0x10 */ u8 targetItem; // item to find/deliver
/* 0x11 */ u8 rewardType; // reward type
/* 0x12 */ u8 itemReward; // item reward
/* 0x13 */ u8 friendAreaReward; // friend area
};
struct WonderMailStruct_203B2C0
{
// size: 0x548
/* 0x0 */ u32 fallbackState;
/* 0x4 */ u32 state;
/* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE];
u8 unk3E;
u32 unk40;
u32 linkError;
u8 unk48[0x30];
u8 unk78[0x30];
struct unkStruct_8095228 unkA8;
struct PokemonStruct unkD8;
u8 unk130;
u8 fill131[0x168 - 0x131];
u16 unk168;
u8 fill16A[0x218 - 0x16A];
u8 unk218;
u32 unk21C;
u8 padding[0x7C];
u32 unk29C;
u8 padding6[0x6C];
u32 unk30C;
u8 padding8[0x4C];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
/* 0x41C */ u32 unkfill; // ItemSlot?
/* 0x420 */ struct OpenedFile *faceFile;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
u8 padding3[0x534 - 0x430];
u32 unk534;
s32 unk538; // A7 << 3
u32 unk53C;
u32 unk540; // A8 << 4
s16 unk544;
};
struct WonderMailStruct_203B2C4
{
// size: 0x564
/* 0x0 */ u8 state;
/* 0x4 */ u32 fallbackState; // wonder mail link status??
/* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE]; // Probably a buffer for entry
u8 unk3E;
u32 unk40;
/* 0x44 */ u32 linkError; // another link status
u8 filler48[0x1B8 - 0x48];
struct unkStruct_8095228 unk1B8;
struct unkStruct_8095228 unk1E8;
s8 unk218;
u32 unk21C;
u8 filler220[0x30C - 0x220];
u32 unk30C;
u8 filler310[0x35C - 0x310];
struct UnkTextStruct2 unk35C[4];
struct UnkTextStruct2 unk3BC[4];
struct ItemSlot unk41C;
/* 0x420 */ struct OpenedFile *faceFile;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
u32 unk430;
/* 0x434 */ u8 formattedString[0x100];
/* 0x534 */ s32 wonderMailMethod;
/* 0x538 */ u32 wonderMailMode;
struct unkStruct_802F204 unk53C;
};
void sub_8028B04(u32 r0);
enum WonderMailMode {
WONDER_MAIL_MODE_SEND = 1,
WONDER_MAIL_MODE_RECEIVE = 2,
};
enum WonderMailMethod {
WONDER_MAIL_GAME_LINK = 3,
WONDER_MAIL_PASSWORD = 5,
};
enum WonderMailTypes {
WONDER_MAIL_TYPE_SOS = 1,
WONDER_MAIL_TYPE_AOK = 4,
WONDER_MAIL_TYPE_THANK_YOU = 5,
WONDER_MAIL_TYPE_WONDER = 5,
// TODO: document 7
};
enum WonderMailMissionTypes
{
WONDER_MAIL_MISSION_TYPE_RESCUE_CLIENT = 0,
WONDER_MAIL_MISSION_TYPE_RESCUE_TARGET = 1,
WONDER_MAIL_MISSION_TYPE_ESCORT_CLIENT = 2,
WONDER_MAIL_MISSION_TYPE_FIND_ITEM = 3,
WONDER_MAIL_MISSION_TYPE_DELIVER_ITEM = 4,
};
enum WonderMailErrorMode {
WONDER_MAIL_GOOD = 0,
// TODO: document 1
WONDER_MAIL_NO_RESPONSE = 2,
WONDER_MAIL_INCORRECT_NUM_SYSTEMS = 3,
WONDER_MAIL_DIFFERENT_MODES = 4,
// TODO: document 5
WONDER_MAIL_NO_ROOM_STORAGE = 6,
WONDER_MAIL_DUPLICATE_MAIL = 7,
WONDER_MAIL_NOT_ELIGIBLE_1 = 9,
WONDER_MAIL_NOT_ELIGIBLE_2 = 11,
WONDER_MAIL_NO_ROOM_MAIL = 13,
// TODO: document 14
WONDER_MAIL_NOT_READY = 15,
};
#endif
|