UnkPrintFieldMsgStruct discovered

This commit is contained in:
DizzyEggg 2024-10-19 17:09:39 +02:00
parent bf99d37eda
commit 76ccab8113
33 changed files with 493 additions and 742 deletions

View File

@ -5,270 +5,6 @@
.text .text
thumb_func_start sub_80526D0
sub_80526D0:
push {r4,r5,lr}
adds r5, r0, 0
ldr r0, _0805272C
ldr r1, [r0]
ldr r0, _08052730
adds r4, r1, r0
ldr r2, _08052734
adds r0, r1, r2
ldr r0, [r0]
cmp r0, 0
bne _080526FA
ldr r3, _08052738
adds r0, r1, r3
subs r2, 0xA
adds r1, r2
movs r3, 0
ldrsh r2, [r0, r3]
movs r3, 0
ldrsh r0, [r1, r3]
cmp r2, r0
beq _08052724
_080526FA:
adds r0, r5, 0
bl sub_803E46C
movs r1, 0xA6
lsls r1, 2
adds r0, r4, r1
ldr r0, [r0]
cmp r0, 0
bne _080526FA
ldr r0, _0805272C
ldr r0, [r0]
ldr r2, _08052738
adds r1, r0, r2
ldr r3, _0805273C
adds r0, r3
movs r2, 0
ldrsh r1, [r1, r2]
movs r3, 0
ldrsh r0, [r0, r3]
cmp r1, r0
bne _080526FA
_08052724:
pop {r4,r5}
pop {r0}
bx r0
.align 2, 0
_0805272C: .4byte gDungeon
_08052730: .4byte 0x0001bdd4
_08052734: .4byte 0x0001c06c
_08052738: .4byte 0x0001c060
_0805273C: .4byte 0x0001c062
thumb_func_end sub_80526D0
thumb_func_start sub_8052740
sub_8052740:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r5, r0, 0
ldr r0, _080527B0
ldr r4, [r0]
ldr r0, _080527B4
adds r7, r4, r0
adds r0, r5, 0
bl sub_80526D0
movs r6, 0
ldr r1, _080527B8
adds r4, r1
movs r1, 0
ldrsh r0, [r4, r1]
cmp r0, 0xB3
ble _080527A4
ldr r2, _080527BC
ldrh r1, [r2]
movs r0, 0x3
ands r0, r1
cmp r0, 0x3
beq _080527A4
adds r4, r2, 0
ldr r0, _080527C0
mov r8, r0
_08052776:
ldrh r0, [r4, 0x2]
mov r1, r8
ands r0, r1
cmp r0, 0
bne _080527A4
adds r0, r5, 0
bl sub_803E46C
adds r6, 0x1
cmp r6, 0xEF
bgt _080527A4
movs r1, 0xA4
lsls r1, 2
adds r0, r7, r1
movs r1, 0
ldrsh r0, [r0, r1]
cmp r0, 0xB3
ble _080527A4
ldrh r1, [r4]
movs r0, 0x3
ands r0, r1
cmp r0, 0x3
bne _08052776
_080527A4:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080527B0: .4byte gDungeon
_080527B4: .4byte 0x0001bdd4
_080527B8: .4byte 0x0001c064
_080527BC: .4byte gRealInputs
_080527C0: .4byte 0x0000030f
thumb_func_end sub_8052740
thumb_func_start PrintFieldMessage
PrintFieldMessage:
push {r4-r7,lr}
sub sp, 0x28
adds r4, r0, 0
adds r7, r1, 0
lsls r2, 24
lsrs r6, r2, 24
ldr r0, _08052858
ldrb r0, [r0]
cmp r0, 0
beq _080527DE
movs r0, 0xA
bl sub_8052740
_080527DE:
movs r0, 0x2
movs r1, 0
bl sub_803EAF0
movs r0, 0
bl sub_8052210
movs r5, 0
str r5, [sp, 0x14]
str r5, [sp, 0x18]
ldr r0, _0805285C
ldr r1, [r0]
ldr r2, _08052860
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052844
adds r2, 0x6
adds r0, r1, r2
ldrb r0, [r0]
cmp r0, 0
bne _08052844
cmp r4, 0
beq _08052844
movs r1, 0
ldrsh r0, [r4, r1]
ldrb r1, [r4, 0x2]
bl IsPokemonDialogueSpriteAvail
lsls r0, 24
cmp r0, 0
beq _08052844
movs r2, 0
ldrsh r0, [r4, r2]
bl GetDialogueSpriteDataPtr
str r0, [sp, 0x14]
ldr r0, [r0, 0x4]
str r0, [sp, 0x18]
add r1, sp, 0x14
movs r2, 0
movs r0, 0x2
strh r0, [r1, 0x8]
movs r0, 0x9
strh r0, [r1, 0xA]
ldrb r0, [r4, 0x2]
strb r0, [r1, 0xC]
adds r0, r1, 0
strb r2, [r0, 0xD]
strb r2, [r0, 0xE]
adds r5, r0, 0
_08052844:
movs r1, 0
str r1, [sp]
movs r0, 0x3
str r0, [sp, 0x4]
str r1, [sp, 0x8]
str r5, [sp, 0xC]
cmp r6, 0
beq _08052868
ldr r0, _08052864
b _0805286C
.align 2, 0
_08052858: .4byte gUnknown_203B40C
_0805285C: .4byte gDungeon
_08052860: .4byte 0x0001820a
_08052864: .4byte 0x00000701
_08052868:
movs r0, 0x80
lsls r0, 3
_0805286C:
str r0, [sp, 0x10]
adds r0, r7, 0
movs r1, 0
movs r2, 0
movs r3, 0
bl sub_8014248
ldr r0, _080528D0
ldr r0, [r0]
ldr r1, _080528D4
adds r0, r1
movs r1, 0x1
strb r1, [r0]
add r4, sp, 0x24
_08052888:
bl xxx_draw_string_80144C4
movs r0, 0x9
bl sub_803E46C
adds r0, r4, 0
bl sub_80144A4
adds r1, r0, 0
cmp r1, 0
bne _08052888
ldr r0, _080528D0
ldr r0, [r0]
ldr r2, _080528D4
adds r0, r2
strb r1, [r0]
ldr r0, [sp, 0x14]
cmp r0, 0
beq _080528B2
bl CloseFile
_080528B2:
cmp r6, 0
beq _080528E4
bl sub_805E804
bl sub_8040238
ldr r0, _080528D8
ldrb r0, [r0]
cmp r0, 0
beq _080528DC
movs r0, 0
movs r1, 0
bl sub_803EAF0
b _080528E4
.align 2, 0
_080528D0: .4byte gDungeon
_080528D4: .4byte 0x0001c05f
_080528D8: .4byte gUnknown_202EE01
_080528DC:
movs r0, 0x1
movs r1, 0
bl sub_803EAF0
_080528E4:
movs r0, 0x8
movs r1, 0x9
bl sub_803E708
add sp, 0x28
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end PrintFieldMessage
thumb_func_start sub_80528F4 thumb_func_start sub_80528F4
sub_80528F4: sub_80528F4:

View File

@ -5,14 +5,25 @@
#include "structs/menu.h" #include "structs/menu.h"
#include "structs/str_text.h" #include "structs/str_text.h"
struct UnkPrintFieldMsgStruct
{
OpenedFile *faceFile;
void *faceData;
u16 unk8;
u16 unkA;
u8 unkC;
u8 unkD;
u8 unkE;
};
// code_80130A8.s // code_80130A8.s
void sub_8013E54(void); void sub_8013E54(void);
void sub_8013F84(void); void sub_8013F84(void);
void sub_80140B4(UnkTextStruct2 *); void sub_80140B4(UnkTextStruct2 *);
void sub_80140DC(void); void sub_80140DC(void);
void sub_8014114(void); void sub_8014114(void);
void xxx_info_box_80141B4(const u8 *, u32, OpenedFile **, u16); void xxx_info_box_80141B4(const u8 *, u32, struct UnkPrintFieldMsgStruct *, u16);
void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32); void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, struct UnkPrintFieldMsgStruct *, u32);
s32 sub_80144A4(s32 *); s32 sub_80144A4(s32 *);
void sub_80151C0(u32, u8 *); void sub_80151C0(u32, u8 *);
u32 sub_80154F0(void); u32 sub_80154F0(void);

View File

@ -4,6 +4,7 @@
#include "file_system.h" #include "file_system.h"
#include "structs/str_text.h" #include "structs/str_text.h"
#include "structs/str_wonder_mail.h" #include "structs/str_wonder_mail.h"
#include "code_80130A8.h"
// size: 0xA8 // size: 0xA8
struct unkStruct_203B2FC struct unkStruct_203B2FC
@ -13,13 +14,7 @@ struct unkStruct_203B2FC
unkStruct_802F204 unk8; unkStruct_802F204 unk8;
/* 0x30 */ u8 jobSlotIndex; /* 0x30 */ u8 jobSlotIndex;
/* 0x34 */ WonderMail *jobInfo; /* 0x34 */ WonderMail *jobInfo;
/* 0x38 */ OpenedFile *faceFile; /* 0x38 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x3C */ u8 *faceData;
u16 unk40;
u16 unk42;
u8 unk44;
u8 unk45;
u8 unk46;
UnkTextStruct2 unk48[4]; UnkTextStruct2 unk48[4];
}; };
@ -27,4 +22,4 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon);
u32 sub_802DBD4(void); u32 sub_802DBD4(void);
void sub_802DC00(void); void sub_802DC00(void);
#endif // GUARD_CODE_802DB28_H #endif // GUARD_CODE_802DB28_H

View File

@ -4,6 +4,7 @@
#include "file_system.h" #include "file_system.h"
#include "structs/menu.h" #include "structs/menu.h"
#include "structs/str_text.h" #include "structs/str_text.h"
#include "code_80130A8.h"
#define FELICITY_BANK_ACTION_WITHDRAW 0 #define FELICITY_BANK_ACTION_WITHDRAW 0
#define FELICITY_BANK_ACTION_DEPOSIT 1 #define FELICITY_BANK_ACTION_DEPOSIT 1
@ -19,15 +20,8 @@ typedef struct FelicityBankWork
MenuItem unk14[8]; MenuItem unk14[8];
u16 unk54[8]; u16 unk54[8];
unkStructFor8013AA0 unk64; unkStructFor8013AA0 unk64;
/* 0x94 */ OpenedFile *faceFile; /* 0x94 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x98 */ u8 *faceData; struct UnkPrintFieldMsgStruct *unkA4;
u16 unk9C;
u16 unk9E;
u8 unkA0;
u8 unkA1;
u8 unkA2;
u8 unkA3;
OpenedFile **unkA4;
UnkTextStruct2 unkA8[4]; UnkTextStruct2 unkA8[4];
} FelicityBankWork; } FelicityBankWork;
@ -36,4 +30,4 @@ void DestroyFelicityBank(void);
void DrawTeamMoneyBox(u32); void DrawTeamMoneyBox(u32);
u32 FelicityBankCallback(void); u32 FelicityBankCallback(void);
#endif // GUARD_FELICITY_BANK_H #endif // GUARD_FELICITY_BANK_H

View File

@ -699,6 +699,7 @@
#define KEY_OR_INTR 0x0000 #define KEY_OR_INTR 0x0000
#define KEY_AND_INTR 0x8000 #define KEY_AND_INTR 0x8000
#define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) // 0xF0 #define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) // 0xF0
#define AB_BUTTONS (A_BUTTON | B_BUTTON)
#define JOY_EXCL_DPAD 0x030F #define JOY_EXCL_DPAD 0x030F
// interrupt flags // interrupt flags

View File

@ -5,6 +5,7 @@
#include "structs/menu.h" #include "structs/menu.h"
#include "structs/str_text.h" #include "structs/str_text.h"
#include "structs/str_moves.h" #include "structs/str_moves.h"
#include "code_80130A8.h"
// size: 0x18C // size: 0x18C
typedef struct GulpinShopWork typedef struct GulpinShopWork
@ -24,15 +25,8 @@ typedef struct GulpinShopWork
u16 unk68[8]; u16 unk68[8];
MenuStruct unk78; MenuStruct unk78;
u8 fillC8[0x118 - 0xC8]; u8 fillC8[0x118 - 0xC8];
/* 0x118 */ OpenedFile *faceFile; /* 0x118 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x11C */ u8 *faceData; struct UnkPrintFieldMsgStruct *unk128;
u16 unk120;
u16 unk122;
u8 unk124;
u8 unk125;
u8 unk126;
u8 unk127;
OpenedFile **unk128;
UnkTextStruct2 unk12C[4]; UnkTextStruct2 unk12C[4];
} GulpinShopWork; } GulpinShopWork;

View File

@ -33,14 +33,8 @@ typedef struct unkStruct_203B27C
u16 unkBC[8]; u16 unkBC[8];
MenuStruct unkCC; MenuStruct unkCC;
u8 fill11C[0x16C - 0x11C]; u8 fill11C[0x16C - 0x11C];
/* 0x16C */ OpenedFile *faceFile; /* 0x16C */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x170 */ u8 *faceData; struct UnkPrintFieldMsgStruct *unk17C;
u16 unk174;
u16 unk176;
u8 unk178;
u8 unk179;
u8 unk17A;
OpenedFile **unk17C;
UnkTextStruct2 unk180[4]; UnkTextStruct2 unk180[4];
} unkStruct_203B27C; } unkStruct_203B27C;
@ -48,4 +42,4 @@ bool8 sub_801FB50(u32 mode);
u32 sub_801FC40(void); u32 sub_801FC40(void);
void sub_801FD7C(void); void sub_801FD7C(void);
#endif // GUARD_GULPIN_SHOP_801FB50_H #endif // GUARD_GULPIN_SHOP_801FB50_H

View File

@ -18,7 +18,7 @@ enum KangaskhanStorageStates
KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9, KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9,
}; };
enum KangaskhanStorageMenuActions enum KangaskhanStorageMenuActions
{ {
MENU_CANCEL = 1, MENU_CANCEL = 1,
MENU_STORE = 2, MENU_STORE = 2,
@ -45,14 +45,8 @@ struct KangaskhanStorageWork
u16 unk4C[5]; u16 unk4C[5];
MenuStruct unk58; MenuStruct unk58;
unkStructFor8013AA0 unkA8; unkStructFor8013AA0 unkA8;
/* 0xD8 */ OpenedFile *faceFile; /* 0xD8 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0xDC */ u8 *faceData; // Written to but never read struct UnkPrintFieldMsgStruct *unkE8;
u16 unkE0; // Written to but never read
u16 unkE2; // Written to but never read
bool8 unkE4;
u8 unkE5; // Written to but never read
u8 unkE6; // Written to but never read
OpenedFile **unkE8;
UnkTextStruct2 unkEC[4]; UnkTextStruct2 unkEC[4];
}; };

View File

@ -63,15 +63,8 @@ typedef struct KecleonBrosWork1
/* 0x34 */ MenuItem menuItems[8]; /* 0x34 */ MenuItem menuItems[8];
u16 unk74[8]; u16 unk74[8];
/* 0x84 */ MenuStruct menu; /* 0x84 */ MenuStruct menu;
/* 0xD4 */ OpenedFile *faceFile; /* 0xD4 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0xD8 */ u8 *faceData; struct UnkPrintFieldMsgStruct *unkE4;
u16 unkDC;
u16 unkDE;
u8 unkE0;
u8 unkE1;
u8 unkE2;
u8 unkE3;
OpenedFile **unkE4;
UnkTextStruct2 unkE8[4]; UnkTextStruct2 unkE8[4];
} KecleonBrosWork1; } KecleonBrosWork1;

View File

@ -28,15 +28,8 @@ typedef struct MakuhitaDojoWork1
/* 0x14 */ s32 menuAction; /* 0x14 */ s32 menuAction;
MenuItem unk18[4]; MenuItem unk18[4];
u8 fill38[0x58 - 0x38]; u8 fill38[0x58 - 0x38];
/* 0x58 */ OpenedFile *faceFile; /* 0x58 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x5C */ u8 *faceData; struct UnkPrintFieldMsgStruct* unk68;
u16 unk60;
u16 unk62;
u8 unk64;
u8 unk65;
u8 unk66;
u8 unk67;
OpenedFile** unk68;
UnkTextStruct2 unk6C[4]; UnkTextStruct2 unk6C[4];
} MakuhitaDojoWork1; } MakuhitaDojoWork1;

View File

@ -8,17 +8,11 @@ typedef struct PostOfficeWork
{ {
/* 0x0 */ u8 state; /* 0x0 */ u8 state;
/* 0x4 */ s32 currMenuChoice; /* 0x4 */ s32 currMenuChoice;
/* 0x8 */ OpenedFile *faceFile; /* 0x8 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0xC */ u8 *faceData;
u16 unk10;
u16 unk12;
u8 unk14;
u8 unk15;
u8 unk16;
} PostOfficeWork; } PostOfficeWork;
void CleanHelperPelipper(void); void CleanHelperPelipper(void);
bool8 CreateHelperPelipperMenu(s16 speciesID); bool8 CreateHelperPelipperMenu(s16 speciesID);
u32 HelperPelipperCallback(void); u32 HelperPelipperCallback(void);
#endif // GUARD_POST_OFFICE_GUIDE1_H #endif // GUARD_POST_OFFICE_GUIDE1_H

View File

@ -9,14 +9,7 @@ typedef struct SavePakWrite
/* 0x0 */ u32 state; /* 0x0 */ u32 state;
s32 unk4; s32 unk4;
/* 0x8 */ u32 saveStatus; /* 0x8 */ u32 saveStatus;
/* 0xC */ OpenedFile *faceFile; /* 0xC */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x10 */ u8 *faceData;
u16 unk14;
u16 unk16;
u8 unk18;
u8 unk19;
u8 unk1A;
u8 unk1B;
/* 0x1C */ u16 pokeID; /* 0x1C */ u16 pokeID;
} SavePakWrite; } SavePakWrite;
@ -25,4 +18,4 @@ u32 GetSavePakStatus(void);
void PrepareSavePakWrite(s16 pokemonID); void PrepareSavePakWrite(s16 pokemonID);
bool8 WriteSavePak(void); bool8 WriteSavePak(void);
#endif // GUARD_SAVE_WRITE_H #endif // GUARD_SAVE_WRITE_H

View File

@ -218,7 +218,7 @@ struct UnkStructDungeon1BDD4
u8 unk0[UNK_1BBD4_STR_COUNT][64]; u8 unk0[UNK_1BBD4_STR_COUNT][64];
u8 unk1C054[UNK_1BBD4_STR_COUNT]; // 0x280 u8 unk1C054[UNK_1BBD4_STR_COUNT]; // 0x280
u8 unk1C05E; // 0x28A u8 unk1C05E; // 0x28A
u8 fill1C05F; // 0x28B u8 unk1C05F; // 0x28B
s16 unk1C060; // 0x28C s16 unk1C060; // 0x28C
s16 unk1C062; // 0x29E s16 unk1C062; // 0x29E
s16 unk1C064; // 0x290 s16 unk1C064; // 0x290

View File

@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C4
UnkTextStruct2 unk35C[4]; UnkTextStruct2 unk35C[4];
UnkTextStruct2 unk3BC[4]; UnkTextStruct2 unk3BC[4];
Item unk41C; Item unk41C;
/* 0x420 */ OpenedFile *faceFile; /* 0x420 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
u32 unk430; u32 unk430;
/* 0x434 */ u8 formattedString[0x100]; /* 0x434 */ u8 formattedString[0x100];
/* 0x534 */ s32 wonderMailMethod; /* 0x534 */ s32 wonderMailMethod;
@ -39,4 +33,4 @@ typedef struct WonderMailStruct_203B2C4
unkStruct_802F204 unk53C; unkStruct_802F204 unk53C;
} WonderMailStruct_203B2C4; } WonderMailStruct_203B2C4;
#endif // GUARD_THANK_YOU_WONDER_MAIL_H #endif // GUARD_THANK_YOU_WONDER_MAIL_H

View File

@ -52,15 +52,8 @@ typedef struct WigglytuffShop3Work
MenuItem unk1C[8]; MenuItem unk1C[8];
u16 unk5C[8]; u16 unk5C[8];
MenuStruct unk6C; MenuStruct unk6C;
/* 0xBC */ OpenedFile *faceFile; /* 0xBC */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0xC0 */ u8 *faceData; struct UnkPrintFieldMsgStruct *unkCC;
u16 unkC4;
u16 unkC6;
u8 unkC8;
u8 unkC9;
u8 unkCA;
u8 fillCB;
OpenedFile **unkCC;
UnkTextStruct2 unkD0[4]; UnkTextStruct2 unkD0[4];
u32 unk130; u32 unk130;
u32 unk134; u32 unk134;

View File

@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C0
UnkTextStruct2 unk35C[4]; UnkTextStruct2 unk35C[4];
UnkTextStruct2 unk3BC[4]; UnkTextStruct2 unk3BC[4];
/* 0x41C */ u32 unkfill; // ItemSlot? /* 0x41C */ u32 unkfill; // ItemSlot?
/* 0x420 */ OpenedFile *faceFile; /* 0x420 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x424 */ u8 *faceData;
u16 unk428;
u16 unk42A;
u8 unk42C;
u8 unk42D;
u8 unk42E;
/* 0x430 */ u8 padding3[0x534 - 0x430]; /* 0x430 */ u8 padding3[0x534 - 0x430];
u32 unk534; u32 unk534;
s32 unk538; // A7 << 3 s32 unk538; // A7 << 3
@ -40,4 +34,4 @@ typedef struct WonderMailStruct_203B2C0
/* 0x544 */ s16 speciesNum; /* 0x544 */ s16 speciesNum;
} WonderMailStruct_203B2C0; } WonderMailStruct_203B2C0;
#endif // GUARD_WONDER_MAIL_H #endif // GUARD_WONDER_MAIL_H

View File

@ -61,12 +61,12 @@ u32 sub_8014128(void) {
} }
u32 sub_801413C(void) u32 sub_801413C(void)
{ {
return 0; return 0;
} }
u32 sub_8014140(void) u32 sub_8014140(void)
{ {
return 0; return 0;
} }
@ -91,18 +91,18 @@ void sub_801416C(s32 param_1,s32 param_2)
gUnknown_202E73C = (param_2 < 0 ) ? 0 : param_2; gUnknown_202E73C = (param_2 < 0 ) ? 0 : param_2;
} }
void xxx_info_box_80141B4(const u8 *text, u32 param_2, OpenedFile **file, u16 param_4) void xxx_info_box_80141B4(const u8 *text, u32 param_2, struct UnkPrintFieldMsgStruct *unkStructPtr, u16 param_4)
{ {
sub_8014248(text, param_2, -1, NULL, NULL, 3, 0, file, param_4); sub_8014248(text, param_2, -1, NULL, NULL, 3, 0, unkStructPtr, param_4);
} }
void sub_80141E0(const u8 *text, OpenedFile **file, u16 param_3) void sub_80141E0(const u8 *text, struct UnkPrintFieldMsgStruct *unkStructPtr, u16 param_3)
{ {
sub_8014248(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, file, param_3 | 0x300); sub_8014248(text, 0, -1, gUnknown_80D485C, NULL, 3, 0, unkStructPtr, param_3 | 0x300);
} }
void sub_8014214(const u8 *text, OpenedFile **file, u16 param_3) void sub_8014214(const u8 *text, struct UnkPrintFieldMsgStruct *unkStructPtr, u16 param_3)
{ {
sub_8014248(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, file, param_3 | 0x300); sub_8014248(text, 0, -1, gUnknown_80D4880, NULL, 3, 0, unkStructPtr, param_3 | 0x300);
} }

View File

@ -45,16 +45,16 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon)
sub_8096EEC(sUnknown_203B2FC->jobInfo); sub_8096EEC(sUnknown_203B2FC->jobInfo);
sub_803C21C(sUnknown_203B2FC->jobInfo, &sUnknown_203B2FC->unk8); sub_803C21C(sUnknown_203B2FC->jobInfo, &sUnknown_203B2FC->unk8);
sUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies); sUnknown_203B2FC->faceInfo.faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies);
sUnknown_203B2FC->faceData = NULL; sUnknown_203B2FC->faceInfo.faceData = NULL;
sUnknown_203B2FC->unk44 = 0; sUnknown_203B2FC->faceInfo.unkC = 0;
sUnknown_203B2FC->unk45 = 0; sUnknown_203B2FC->faceInfo.unkD = 0;
sUnknown_203B2FC->unk46 = 0; sUnknown_203B2FC->faceInfo.unkE = 0;
sUnknown_203B2FC->unk40 = 2; sUnknown_203B2FC->faceInfo.unk8 = 2;
sUnknown_203B2FC->unk42 = 8; sUnknown_203B2FC->faceInfo.unkA = 8;
if (sUnknown_203B2FC->faceFile != NULL) if (sUnknown_203B2FC->faceInfo.faceFile != NULL)
sUnknown_203B2FC->faceData = sUnknown_203B2FC->faceFile->data; sUnknown_203B2FC->faceInfo.faceData = sUnknown_203B2FC->faceInfo.faceFile->data;
sub_802DC28(0); sub_802DC28(0);
return TRUE; return TRUE;
@ -78,8 +78,8 @@ u32 sub_802DBD4(void)
void sub_802DC00(void) void sub_802DC00(void)
{ {
if (sUnknown_203B2FC != NULL) { if (sUnknown_203B2FC != NULL) {
if (sUnknown_203B2FC->faceFile != NULL) if (sUnknown_203B2FC->faceInfo.faceFile != NULL)
CloseFile(sUnknown_203B2FC->faceFile); CloseFile(sUnknown_203B2FC->faceInfo.faceFile);
MemoryFree(sUnknown_203B2FC); MemoryFree(sUnknown_203B2FC);
sUnknown_203B2FC = NULL; sUnknown_203B2FC = NULL;
@ -150,16 +150,16 @@ static void sub_802DC9C(void)
} }
break; break;
case 1: case 1:
xxx_info_box_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); xxx_info_box_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceInfo, 0x10D);
break; break;
case 2: case 2:
xxx_info_box_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceFile, 0x10D); xxx_info_box_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceInfo, 0x10D);
break; break;
case 3: case 3:
xxx_info_box_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); xxx_info_box_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceInfo, 0x10D);
break; break;
case 5: case 5:
xxx_info_box_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceFile, 0x10D); xxx_info_box_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceInfo, 0x10D);
break; break;
case 4: case 4:
index = FindItemInInventory(sUnknown_203B2FC->jobInfo->targetItem); index = FindItemInInventory(sUnknown_203B2FC->jobInfo->targetItem);
@ -167,7 +167,7 @@ static void sub_802DC9C(void)
ShiftItemsDownFrom(index); ShiftItemsDownFrom(index);
FillInventoryGaps(); FillInventoryGaps();
} }
xxx_info_box_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceFile, 0x10D); xxx_info_box_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceInfo, 0x10D);
break; break;
case 6: case 6:
sub_802F204(&sUnknown_203B2FC->unk8, 1); sub_802F204(&sUnknown_203B2FC->unk8, 1);

View File

@ -5,9 +5,13 @@
#include "code_803E46C.h" #include "code_803E46C.h"
#include "code_80130A8.h" #include "code_80130A8.h"
#include "code_800E9E4.h" #include "code_800E9E4.h"
#include "code_803E668.h"
#include "input.h"
#include "text2.h" #include "text2.h"
#include "pokemon.h"
#include "file_system.h"
extern void sub_80526D0(u8 r0); void sub_80526D0(s32 r0);
extern bool8 sub_8045888(Entity *r0); extern bool8 sub_8045888(Entity *r0);
void sub_80523A8(Entity *r0, const char *str, u8 r2); void sub_80523A8(Entity *r0, const char *str, u8 r2);
extern u8 sub_8052DC0(Entity *); extern u8 sub_8052DC0(Entity *);
@ -230,3 +234,97 @@ void xxx_draw_string_80524F0(void)
} }
} }
void sub_80526D0(s32 r0)
{
struct UnkStructDungeon1BDD4 *strPtr = &gDungeon->unk1BDD4;
while (strPtr->unk1C06C != 0 || gDungeon->unk1BDD4.unk1C060 != gDungeon->unk1BDD4.unk1C062) {
sub_803E46C(r0);
}
}
void sub_8052740(s32 a0)
{
s32 i;
struct UnkStructDungeon1BDD4 *strPtr = &gDungeon->unk1BDD4;
sub_80526D0(a0);
for (i = 0; i < 240; i++) {
if (strPtr->unk1C064 < 180)
break;
if ((gRealInputs.held & AB_BUTTONS) == AB_BUTTONS)
break;
if (gRealInputs.pressed & JOY_EXCL_DPAD)
break;
sub_803E46C(a0);
}
}
extern u8 gUnknown_203B40C;
extern u8 gUnknown_202EE01;
struct MonDialogueSpriteInfo
{
s16 species;
u8 unk2;
};
extern void sub_8040238(void);
void PrintFieldMessage(struct MonDialogueSpriteInfo *monSpriteInfo, const u8 *str, bool8 a2)
{
s32 unkPrintRet;
struct UnkPrintFieldMsgStruct unkStruct, *unkstructPtr;
s32 unkSpVar;
if (gUnknown_203B40C) {
sub_8052740(10);
}
sub_803EAF0(2, 0);
sub_8052210(0);
unkstructPtr = NULL;
unkStruct.faceFile = NULL;
unkStruct.faceData = NULL;
if (!gDungeon->unk181e8.blinded
&& !gDungeon->unk181e8.hallucinating
&& monSpriteInfo != NULL
&& IsPokemonDialogueSpriteAvail(monSpriteInfo->species, monSpriteInfo->unk2))
{
unkStruct.faceFile = GetDialogueSpriteDataPtr(monSpriteInfo->species);
unkStruct.faceData = unkStruct.faceFile->data;
unkStruct.unk8 = 2;
unkStruct.unkA = 9;
unkStruct.unkC = monSpriteInfo->unk2;
unkStruct.unkD = 0;
unkStruct.unkE = 0;
unkstructPtr = &unkStruct;
}
sub_8014248(str, 0, 0, NULL, NULL, 3, 0, unkstructPtr, (a2 != FALSE) ? 0x701 : 0x400);
gDungeon->unk1BDD4.unk1C05F = 1;
do {
xxx_draw_string_80144C4();
sub_803E46C(9);
unkPrintRet = sub_80144A4(&unkSpVar);
} while (unkPrintRet != 0);
gDungeon->unk1BDD4.unk1C05F = 0;
if (unkStruct.faceFile != NULL) {
CloseFile(unkStruct.faceFile);
}
if (a2) {
sub_805E804();
sub_8040238();
if (gUnknown_202EE01) {
sub_803EAF0(0, 0);
}
else {
sub_803EAF0(1, 0);
}
}
sub_803E708(8, 9);
}

View File

@ -69,16 +69,16 @@ bool8 CreateFelicityBank(s32 mode)
if (sFelicityBankWork->mode == FEL_MODE_ASLEEP) if (sFelicityBankWork->mode == FEL_MODE_ASLEEP)
sFelicityBankWork->unkA4 = NULL; sFelicityBankWork->unkA4 = NULL;
else else
sFelicityBankWork->unkA4 = &sFelicityBankWork->faceFile; sFelicityBankWork->unkA4 = &sFelicityBankWork->faceInfo;
faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN); faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN);
sFelicityBankWork->faceFile = faceFile; sFelicityBankWork->faceInfo.faceFile = faceFile;
sFelicityBankWork->faceData = faceFile->data; sFelicityBankWork->faceInfo.faceData = faceFile->data;
sFelicityBankWork->unkA0 = 0; sFelicityBankWork->faceInfo.unkC = 0;
sFelicityBankWork->unkA1 = 0; sFelicityBankWork->faceInfo.unkD = 0;
sFelicityBankWork->unkA2 = 0; sFelicityBankWork->faceInfo.unkE = 0;
sFelicityBankWork->unk9C = 2; sFelicityBankWork->faceInfo.unk8 = 2;
sFelicityBankWork->unk9E = 8; sFelicityBankWork->faceInfo.unkA = 8;
UpdateFelicityBankState(FELICITY_BANK_INIT); UpdateFelicityBankState(FELICITY_BANK_INIT);
return TRUE; return TRUE;
} }
@ -118,7 +118,7 @@ u32 FelicityBankCallback(void)
void DestroyFelicityBank(void) void DestroyFelicityBank(void)
{ {
if (sFelicityBankWork != NULL) { if (sFelicityBankWork != NULL) {
CloseFile(sFelicityBankWork->faceFile); CloseFile(sFelicityBankWork->faceInfo.faceFile);
MemoryFree(sFelicityBankWork); MemoryFree(sFelicityBankWork);
sFelicityBankWork = NULL; sFelicityBankWork = NULL;
} }
@ -424,7 +424,7 @@ static void CreateFelicityMoneySavingsHeader(u32 param_1)
} }
void DrawTeamMoneyBox(u32 param_1) void DrawTeamMoneyBox(u32 param_1)
{ {
CallPrepareTextbox_8008C54(param_1); CallPrepareTextbox_8008C54(param_1);
sub_80073B8(param_1); sub_80073B8(param_1);
PrintStringOnWindow(6, 0, sMoney, param_1, 0); PrintStringOnWindow(6, 0, sMoney, param_1, 0);

View File

@ -45,20 +45,20 @@ bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves)
sGulpinShopWork->unk1C = moves[4].id; // 5th move..? sGulpinShopWork->unk1C = moves[4].id; // 5th move..?
if (mode == GULPIN_SHOP_MODE_AWAKE) if (mode == GULPIN_SHOP_MODE_AWAKE)
sGulpinShopWork->unk128 = &sGulpinShopWork->faceFile; sGulpinShopWork->unk128 = &sGulpinShopWork->faceInfo;
else else
sGulpinShopWork->unk128 = NULL; sGulpinShopWork->unk128 = NULL;
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
sGulpinShopWork->faceFile = faceFile; sGulpinShopWork->faceInfo.faceFile = faceFile;
sGulpinShopWork->faceData = faceFile->data; sGulpinShopWork->faceInfo.faceData = faceFile->data;
sGulpinShopWork->unk124 = 0; sGulpinShopWork->faceInfo.unkC = 0;
sGulpinShopWork->unk125 = 0; sGulpinShopWork->faceInfo.unkD = 0;
sGulpinShopWork->unk126 = 0; sGulpinShopWork->faceInfo.unkE = 0;
sGulpinShopWork->unk120 = 2; sGulpinShopWork->faceInfo.unk8 = 2;
sGulpinShopWork->unk122 = 8; sGulpinShopWork->faceInfo.unkA = 8;
SetGulpinShopState(0); SetGulpinShopState(0);
return TRUE; return TRUE;
} }
@ -97,7 +97,7 @@ bool8 GulpinIsNextMoveLinked(void)
void DestroyGulpinShop(void) void DestroyGulpinShop(void)
{ {
if (sGulpinShopWork != NULL) { if (sGulpinShopWork != NULL) {
CloseFile(sGulpinShopWork->faceFile); CloseFile(sGulpinShopWork->faceInfo.faceFile);
MemoryFree(sGulpinShopWork); MemoryFree(sGulpinShopWork);
sGulpinShopWork = NULL; sGulpinShopWork = NULL;
} }
@ -180,15 +180,15 @@ static void sub_801EBC4(void)
s32 which; s32 which;
s32 i; s32 i;
which = 0; which = 0;
MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68));
sGulpinShopWork->unk28[which].text = sForget; sGulpinShopWork->unk28[which].text = sForget;
sGulpinShopWork->unk28[which].menuAction = 2; sGulpinShopWork->unk28[which].menuAction = 2;
if (!IsAnyMoveLinked(sGulpinShopWork->unk1E, sGulpinShopWork->moves) || (s32)sGulpinShopWork->unk20 >= 4) if (!IsAnyMoveLinked(sGulpinShopWork->unk1E, sGulpinShopWork->moves) || (s32)sGulpinShopWork->unk20 >= 4)
sGulpinShopWork->unk68[0] = 1; sGulpinShopWork->unk68[0] = 1;
which++; which++;
sGulpinShopWork->unk28[which].text = gCommonInfo[0]; sGulpinShopWork->unk28[which].text = gCommonInfo[0];
sGulpinShopWork->unk28[which].menuAction = 3; sGulpinShopWork->unk28[which].menuAction = 3;
@ -216,7 +216,7 @@ static void sub_801EC7C(void)
{ {
s32 which; s32 which;
which = 0; which = 0;
MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68));
sGulpinShopWork->unk28[which].text = gCommonYes[0]; sGulpinShopWork->unk28[which].text = gCommonYes[0];
sGulpinShopWork->unk28[which].menuAction = 4; sGulpinShopWork->unk28[which].menuAction = 4;
@ -314,4 +314,4 @@ static void sub_801EDC0(void)
break; break;
} }
} }
} }

View File

@ -101,16 +101,16 @@ bool8 sub_801FB50(u32 mode)
if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_ASLEEP) if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_ASLEEP)
gUnknown_203B27C->unk17C = NULL; gUnknown_203B27C->unk17C = NULL;
else else
gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceFile; gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceInfo;
faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN);
gUnknown_203B27C->faceFile = faceFile; gUnknown_203B27C->faceInfo.faceFile = faceFile;
gUnknown_203B27C->faceData = faceFile->data; gUnknown_203B27C->faceInfo.faceData = faceFile->data;
gUnknown_203B27C->unk178 = 0; gUnknown_203B27C->faceInfo.unkC = 0;
gUnknown_203B27C->unk179 = 0; gUnknown_203B27C->faceInfo.unkD = 0;
gUnknown_203B27C->unk17A = 0; gUnknown_203B27C->faceInfo.unkE = 0;
gUnknown_203B27C->unk174 = 2; gUnknown_203B27C->faceInfo.unk8 = 2;
gUnknown_203B27C->unk176 = 8; gUnknown_203B27C->faceInfo.unkA = 8;
sub_801FDA8(0); sub_801FDA8(0);
return TRUE; return TRUE;
} }
@ -184,7 +184,7 @@ u32 sub_801FC40(void)
void sub_801FD7C(void) void sub_801FD7C(void)
{ {
if (gUnknown_203B27C) { if (gUnknown_203B27C) {
CloseFile(gUnknown_203B27C->faceFile); CloseFile(gUnknown_203B27C->faceInfo.faceFile);
MemoryFree(gUnknown_203B27C); MemoryFree(gUnknown_203B27C);
gUnknown_203B27C = NULL; gUnknown_203B27C = NULL;
} }
@ -414,7 +414,7 @@ static void sub_801FF28(void)
case 0x23: case 0x23:
gUnknown_203B27C->fallbackState = 0x1f; gUnknown_203B27C->fallbackState = 0x1f;
sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20); sub_8092C84(gUnknown_202DFE8,gUnknown_203B27C->unk20);
if (gUnknown_203B27C->isNextMoveLinked) if (gUnknown_203B27C->isNextMoveLinked)
{ {
xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d); xxx_info_box_80141B4(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_20],0,gUnknown_203B27C->unk17C,0x10d);
} }
@ -546,15 +546,15 @@ static void CreateGulpinLinkMenu(void)
} }
gUnknown_203B27C->unk7C[loopMax].menuAction = 7; gUnknown_203B27C->unk7C[loopMax].menuAction = 7;
} }
loopMax++; loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinLink; gUnknown_203B27C->unk7C[loopMax].text = gGulpinLink;
gUnknown_203B27C->unk7C[loopMax].menuAction = LINK_ACTION; gUnknown_203B27C->unk7C[loopMax].menuAction = LINK_ACTION;
loopMax++; loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinDelink; gUnknown_203B27C->unk7C[loopMax].text = gGulpinDelink;
gUnknown_203B27C->unk7C[loopMax].menuAction = DE_LINK_ACTION; gUnknown_203B27C->unk7C[loopMax].menuAction = DE_LINK_ACTION;
loopMax++; loopMax++;
gUnknown_203B27C->unk7C[loopMax].text = gGulpinForget; gUnknown_203B27C->unk7C[loopMax].text = gGulpinForget;
gUnknown_203B27C->unk7C[loopMax].menuAction = FORGET_ACTION; gUnknown_203B27C->unk7C[loopMax].menuAction = FORGET_ACTION;
@ -978,12 +978,12 @@ static void sub_8020EB4(void)
if(gTeamInventoryRef->teamMoney < 150) if(gTeamInventoryRef->teamMoney < 150)
{ {
PlayMenuSoundEffect(2); PlayMenuSoundEffect(2);
sub_801FDA8(0x3); sub_801FDA8(0x3);
} }
else if(!sub_8093318(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves)) else if(!sub_8093318(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves))
{ {
PlayMenuSoundEffect(2); PlayMenuSoundEffect(2);
sub_801FDA8(0x4); sub_801FDA8(0x4);
} }
else else
{ {
@ -1004,7 +1004,7 @@ static void sub_8020EB4(void)
if(!sub_809333C(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves)) if(!sub_809333C(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves))
{ {
PlayMenuSoundEffect(2); PlayMenuSoundEffect(2);
sub_801FDA8(0x5); sub_801FDA8(0x5);
} }
else else
{ {

View File

@ -65,16 +65,16 @@ bool8 CreateKangaskhanStorage(u32 mode)
if (gKangaskhanStorageWork->mode == KANG_MODE_ASLEEP) if (gKangaskhanStorageWork->mode == KANG_MODE_ASLEEP)
gKangaskhanStorageWork->unkE8 = NULL; gKangaskhanStorageWork->unkE8 = NULL;
else else
gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile; gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceInfo;
faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN); faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN);
gKangaskhanStorageWork->faceFile = faceFile; gKangaskhanStorageWork->faceInfo.faceFile = faceFile;
gKangaskhanStorageWork->faceData = faceFile->data; gKangaskhanStorageWork->faceInfo.faceData = faceFile->data;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
gKangaskhanStorageWork->unkE5 = 0; gKangaskhanStorageWork->faceInfo.unkD = 0;
gKangaskhanStorageWork->unkE6 = 0; gKangaskhanStorageWork->faceInfo.unkE = 0;
gKangaskhanStorageWork->unkE0 = 2; gKangaskhanStorageWork->faceInfo.unk8 = 2;
gKangaskhanStorageWork->unkE2 = 8; gKangaskhanStorageWork->faceInfo.unkA = 8;
UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT); UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT);
return TRUE; return TRUE;
} }
@ -133,7 +133,7 @@ u32 KangaskhanStorageCallback(void)
void DeleteKangaskhanStorage(void) void DeleteKangaskhanStorage(void)
{ {
if (gKangaskhanStorageWork != NULL) { if (gKangaskhanStorageWork != NULL) {
CloseFile(gKangaskhanStorageWork->faceFile); CloseFile(gKangaskhanStorageWork->faceInfo.faceFile);
MemoryFree(gKangaskhanStorageWork); MemoryFree(gKangaskhanStorageWork);
gKangaskhanStorageWork = NULL; gKangaskhanStorageWork = NULL;
} }
@ -189,65 +189,65 @@ static void sub_8016FF8(void)
switch (gKangaskhanStorageWork->currState) { switch (gKangaskhanStorageWork->currState) {
case KANGASKHAN_STORAGE_INIT: case KANGASKHAN_STORAGE_INIT:
BuildKangaskhanMainMenu(); BuildKangaskhanMainMenu();
gKangaskhanStorageWork->unkE4 = TRUE; gKangaskhanStorageWork->faceInfo.unkC = TRUE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
break; break;
case KANGASKHAN_STORAGE_MAIN_MENU: case KANGASKHAN_STORAGE_MAIN_MENU:
BuildKangaskhanMainMenu(); BuildKangaskhanMainMenu();
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24,
gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12);
break; break;
case 2: case 2:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_HOW_IT_WORKS], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_HOW_IT_WORKS], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case 3: case 3:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_EXIT;
gKangaskhanStorageWork->unkE4 = TRUE; gKangaskhanStorageWork->faceInfo.unkC = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_BYE], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_BYE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case KANGASKHAN_STORAGE_NO_INV_ITEMS: case KANGASKHAN_STORAGE_NO_INV_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_HAVE_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_HAVE_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case KANGASKHAN_STORAGE_TOO_MANY_ITEMS: case KANGASKHAN_STORAGE_TOO_MANY_ITEMS:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_ARE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_YOU_ARE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case 7: case 7:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_HAS_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_HAS_NOTHING], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case 8: case 8:
gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU; gKangaskhanStorageWork->fallbackState = KANGASKHAN_STORAGE_MAIN_MENU;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORAGE_FULL], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case KANGASKHAN_STORAGE_IS_MONEY_USED_TM: case KANGASKHAN_STORAGE_IS_MONEY_USED_TM:
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0); sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->fallbackState = 14; gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__INVALID_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__INVALID_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 10: case 10:
gKangaskhanStorageWork->fallbackState = 14; gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT__TOO_MANY_OF_ITEM], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 11: case 11:
gKangaskhanStorageWork->fallbackState = 13; gKangaskhanStorageWork->fallbackState = 13;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 12: case 12:
gKangaskhanStorageWork->fallbackState = 14; gKangaskhanStorageWork->fallbackState = 14;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_STORE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 13: case 13:
@ -264,13 +264,13 @@ static void sub_8016FF8(void)
case 17: case 17:
sub_80177F8(); sub_80177F8();
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0); sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unkE8, 12);
break; break;
case 18: case 18:
sub_80177F8(); sub_80177F8();
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unkE8, 12);
break; break;
@ -282,17 +282,17 @@ static void sub_8016FF8(void)
else else
gKangaskhanStorageWork->fallbackState = 12; gKangaskhanStorageWork->fallbackState = 12;
gKangaskhanStorageWork->unkE4 = TRUE; gKangaskhanStorageWork->faceInfo.unkC = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_DEPOSIT_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
case 20: case 20:
gKangaskhanStorageWork->fallbackState = 22; gKangaskhanStorageWork->fallbackState = 22;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_WHAT], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 21: case 21:
gKangaskhanStorageWork->fallbackState = 23; gKangaskhanStorageWork->fallbackState = 23;
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_TAKE_MORE], 0, gKangaskhanStorageWork->unkE8, 0x30D);
break; break;
case 22: case 22:
@ -333,13 +333,13 @@ static void sub_8016FF8(void)
case 27: case 27:
sub_80177F8(); sub_80177F8();
sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0); sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0);
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_ONE_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unkE8, 12);
break; break;
case 28: case 28:
sub_80177F8(); sub_80177F8();
gKangaskhanStorageWork->unkE4 = FALSE; gKangaskhanStorageWork->faceInfo.unkC = FALSE;
sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0, sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_MANY_PROMPT], 0, 4, gKangaskhanStorageWork->unk24, NULL, 4, 0,
gKangaskhanStorageWork->unkE8, 12); gKangaskhanStorageWork->unkE8, 12);
break; break;
@ -351,7 +351,7 @@ static void sub_8016FF8(void)
else else
gKangaskhanStorageWork->fallbackState = 21; gKangaskhanStorageWork->fallbackState = 21;
gKangaskhanStorageWork->unkE4 = TRUE; gKangaskhanStorageWork->faceInfo.unkC = TRUE;
xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D); xxx_info_box_80141B4(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WITHDRAW_CONFIRMATION], 0, gKangaskhanStorageWork->unkE8, 0x10D);
break; break;
} }

View File

@ -74,7 +74,7 @@ bool8 CreateKecleonBros(u32 mode)
switch (mode) { switch (mode) {
case KECLEON_BROS_MODE_ITEMS_AWAKE: case KECLEON_BROS_MODE_ITEMS_AWAKE:
sKecleonBrosWork1->isKecleonItemShop = TRUE; sKecleonBrosWork1->isKecleonItemShop = TRUE;
sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile; sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceInfo;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON);
@ -90,7 +90,7 @@ bool8 CreateKecleonBros(u32 mode)
break; break;
case KECLEON_BROS_MODE_WARES_AWAKE: case KECLEON_BROS_MODE_WARES_AWAKE:
sKecleonBrosWork1->isKecleonItemShop = FALSE; sKecleonBrosWork1->isKecleonItemShop = FALSE;
sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile; sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceInfo;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON);
monName = GetMonSpecies(MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON);
@ -109,13 +109,13 @@ bool8 CreateKecleonBros(u32 mode)
} }
faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON); faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON);
sKecleonBrosWork1->faceFile = faceFile; sKecleonBrosWork1->faceInfo.faceFile = faceFile;
sKecleonBrosWork1->faceData = faceFile->data; sKecleonBrosWork1->faceInfo.faceData = faceFile->data;
sKecleonBrosWork1->unkE0 = 0; sKecleonBrosWork1->faceInfo.unkC = 0;
sKecleonBrosWork1->unkE1 = 0; sKecleonBrosWork1->faceInfo.unkD = 0;
sKecleonBrosWork1->unkE2 = 0; sKecleonBrosWork1->faceInfo.unkE = 0;
sKecleonBrosWork1->unkDC = 2; sKecleonBrosWork1->faceInfo.unk8 = 2;
sKecleonBrosWork1->unkDE = 8; sKecleonBrosWork1->faceInfo.unkA = 8;
SetKecleonBrosState(KECLEON_STORE_INIT); SetKecleonBrosState(KECLEON_STORE_INIT);
return TRUE; return TRUE;
} }
@ -168,7 +168,7 @@ u32 KecleonBrosCallback(void)
void DeleteKecleonBros(void) void DeleteKecleonBros(void)
{ {
if (sKecleonBrosWork1 != NULL) { if (sKecleonBrosWork1 != NULL) {
CloseFile(sKecleonBrosWork1->faceFile); CloseFile(sKecleonBrosWork1->faceInfo.faceFile);
MemoryFree(sKecleonBrosWork1); MemoryFree(sKecleonBrosWork1);
sKecleonBrosWork1 = NULL; sKecleonBrosWork1 = NULL;
} }
@ -243,7 +243,7 @@ static void UpdateKecleonStoreDialogue(void)
sub_8019E04(FALSE); sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D); xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D);
break; break;
case 3: case 3:
sKecleonBrosWork1->fallbackState = KECLEON_STORE_EXIT; sKecleonBrosWork1->fallbackState = KECLEON_STORE_EXIT;
sub_8019E04(FALSE); sub_8019E04(FALSE);
xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->unkE4, 0x30D); xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_02], 0, sKecleonBrosWork1->unkE4, 0x30D);
@ -899,14 +899,14 @@ static void sub_8019E04(bool32 a0)
{ {
if (sKecleonBrosWork1->isKecleonItemShop) { if (sKecleonBrosWork1->isKecleonItemShop) {
if (a0 == TRUE) if (a0 == TRUE)
sKecleonBrosWork1->unkE0 = 1; sKecleonBrosWork1->faceInfo.unkC = 1;
else else
sKecleonBrosWork1->unkE0 = 0; sKecleonBrosWork1->faceInfo.unkC = 0;
} }
else { else {
if (a0 == TRUE) if (a0 == TRUE)
sKecleonBrosWork1->unkE0 = 7; sKecleonBrosWork1->faceInfo.unkC = 7;
else else
sKecleonBrosWork1->unkE0 = 6; sKecleonBrosWork1->faceInfo.unkC = 6;
} }
} }

View File

@ -92,7 +92,7 @@ bool8 MakuhitaDojo_New(u32 mode)
if (sMakuhitaDojoWork1->dlgMode == MAKUHITA_DOJO_MODE_ASLEEP) if (sMakuhitaDojoWork1->dlgMode == MAKUHITA_DOJO_MODE_ASLEEP)
sMakuhitaDojoWork1->unk68 = NULL; sMakuhitaDojoWork1->unk68 = NULL;
else else
sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceFile; sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceInfo;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_MAKUHITA); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_MAKUHITA);
CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_MAKUHITA); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_MAKUHITA);
@ -100,13 +100,13 @@ bool8 MakuhitaDojo_New(u32 mode)
strcpy(gUnknown_202E1C8 - 0x50, monName); strcpy(gUnknown_202E1C8 - 0x50, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_MAKUHITA); faceFile = GetDialogueSpriteDataPtr(MONSTER_MAKUHITA);
sMakuhitaDojoWork1->faceFile = faceFile; sMakuhitaDojoWork1->faceInfo.faceFile = faceFile;
sMakuhitaDojoWork1->faceData = faceFile->data; sMakuhitaDojoWork1->faceInfo.faceData = faceFile->data;
sMakuhitaDojoWork1->unk64 = 0; sMakuhitaDojoWork1->faceInfo.unkC = 0;
sMakuhitaDojoWork1->unk65 = 0; sMakuhitaDojoWork1->faceInfo.unkD = 0;
sMakuhitaDojoWork1->unk66 = 0; sMakuhitaDojoWork1->faceInfo.unkE = 0;
sMakuhitaDojoWork1->unk60 = 2; sMakuhitaDojoWork1->faceInfo.unk8 = 2;
sMakuhitaDojoWork1->unk62 = 8; sMakuhitaDojoWork1->faceInfo.unkA = 8;
MakuhitaDojo_SetState(initialState); MakuhitaDojo_SetState(initialState);
return TRUE; return TRUE;
} }
@ -141,7 +141,7 @@ s16 sub_802FED0(void)
void MakuhitaDojo_Delete(void) void MakuhitaDojo_Delete(void)
{ {
if (sMakuhitaDojoWork1 != NULL) { if (sMakuhitaDojoWork1 != NULL) {
CloseFile(sMakuhitaDojoWork1->faceFile); CloseFile(sMakuhitaDojoWork1->faceInfo.faceFile);
MemoryFree(sMakuhitaDojoWork1); MemoryFree(sMakuhitaDojoWork1);
sMakuhitaDojoWork1 = NULL; sMakuhitaDojoWork1 = NULL;
} }
@ -291,7 +291,7 @@ static void sub_8030258(void)
sMakuhitaDojoWork1->unk10 = sub_8030418(); sMakuhitaDojoWork1->unk10 = sub_8030418();
sub_8030480(); sub_8030480();
MakuhitaDojo_SetState(5); MakuhitaDojo_SetState(5);
break; break;
case 2: case 2:
sub_8030480(); sub_8030480();
sMakuhitaDojoWork1->unk10 = -1; sMakuhitaDojoWork1->unk10 = -1;

View File

@ -23,13 +23,7 @@ struct unkStruct_203B310
/* 0x9 */ u8 currTeamRank; // team rank /* 0x9 */ u8 currTeamRank; // team rank
/* 0xC */ s32 itemRewardIndex; /* 0xC */ s32 itemRewardIndex;
unkStruct_802F204 *unk10; unkStruct_802F204 *unk10;
/* 0x14 */ OpenedFile *faceFile; /* 0x14 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x18 */ u8 *faceData;
s16 unk1C;
s16 unk1E;
u8 unk20;
u8 unk21;
u8 unk22;
UnkTextStruct2 unk24[4]; UnkTextStruct2 unk24[4];
}; };
@ -138,18 +132,18 @@ u32 sub_802F204(unkStruct_802F204 *r0, bool8 displayClientSprite)
strcpy(gUnknown_202E5D8, preload->unk10->clientName); strcpy(gUnknown_202E5D8, preload->unk10->clientName);
PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct());
gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies); gUnknown_203B310->faceInfo.faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies);
gUnknown_203B310->faceData = NULL; gUnknown_203B310->faceInfo.faceData = NULL;
gUnknown_203B310->unk20 = 0; gUnknown_203B310->faceInfo.unkC = 0;
gUnknown_203B310->unk21 = 0; gUnknown_203B310->faceInfo.unkD = 0;
gUnknown_203B310->unk22 = 0; gUnknown_203B310->faceInfo.unkE = 0;
gUnknown_203B310->unk1C = 2; gUnknown_203B310->faceInfo.unk8 = 2;
gUnknown_203B310->unk1E = 8; gUnknown_203B310->faceInfo.unkA = 8;
if(gUnknown_203B310->faceFile != NULL) if(gUnknown_203B310->faceInfo.faceFile != NULL)
{ {
gUnknown_203B310->faceData = gUnknown_203B310->faceFile->data; gUnknown_203B310->faceInfo.faceData = gUnknown_203B310->faceInfo.faceFile->data;
} }
SetRewardSceneState(PREP_MONEY_REWARD); SetRewardSceneState(PREP_MONEY_REWARD);
@ -175,8 +169,8 @@ void sub_802F2C0(void)
{ {
if(gUnknown_203B310 != NULL) if(gUnknown_203B310 != NULL)
{ {
if(gUnknown_203B310->faceFile != 0) if(gUnknown_203B310->faceInfo.faceFile != 0)
CloseFile(gUnknown_203B310->faceFile); CloseFile(gUnknown_203B310->faceInfo.faceFile);
MemoryFree(gUnknown_203B310); MemoryFree(gUnknown_203B310);
gUnknown_203B310 = NULL; gUnknown_203B310 = NULL;
} }
@ -214,7 +208,7 @@ void HandleMissionReward(void)
u8 itemID; u8 itemID;
struct unkStruct_8090F58 local_20; struct unkStruct_8090F58 local_20;
Item item; Item item;
switch(gUnknown_203B310->state) { switch(gUnknown_203B310->state) {
case PREP_MONEY_REWARD: case PREP_MONEY_REWARD:
moneyReward = gUnknown_203B310->unk10->moneyReward; moneyReward = gUnknown_203B310->unk10->moneyReward;
@ -224,7 +218,7 @@ void HandleMissionReward(void)
else { else {
gFormatData_202DE30 = moneyReward; gFormatData_202DE30 = moneyReward;
if (gUnknown_203B310->displayClientDialogueSprite) { if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E0434,0,&gUnknown_203B310->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80E0434,0,&gUnknown_203B310->faceInfo,0x10d);
gUnknown_203B310->nextState = MONEY_REWARD; gUnknown_203B310->nextState = MONEY_REWARD;
} }
else { else {
@ -250,7 +244,7 @@ void HandleMissionReward(void)
else { else {
WriteFriendAreaName(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,FALSE); WriteFriendAreaName(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,FALSE);
if (gUnknown_203B310->displayClientDialogueSprite) { if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E04B4,0,&gUnknown_203B310->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80E04B4,0,&gUnknown_203B310->faceInfo,0x10d);
gUnknown_203B310->nextState = UNLOCK_FRIEND_AREA; gUnknown_203B310->nextState = UNLOCK_FRIEND_AREA;
} }
else { else {
@ -282,7 +276,7 @@ void HandleMissionReward(void)
break; break;
case PREP_ITEM_REWARD: case PREP_ITEM_REWARD:
itemID = gUnknown_203B310->unk10->itemRewards[0]; itemID = gUnknown_203B310->unk10->itemRewards[0];
if (itemID != ITEM_NOTHING) if (itemID != ITEM_NOTHING)
{ {
if (gUnknown_203B310->unk10->moneyReward == 0) { if (gUnknown_203B310->unk10->moneyReward == 0) {
item.id = itemID; item.id = itemID;
@ -298,7 +292,7 @@ void HandleMissionReward(void)
local_20.unk8 = 1; local_20.unk8 = 1;
sub_8090E14(gUnknown_202DEA8,&item,&local_20); sub_8090E14(gUnknown_202DEA8,&item,&local_20);
if (gUnknown_203B310->displayClientDialogueSprite) { if (gUnknown_203B310->displayClientDialogueSprite) {
xxx_info_box_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80E0640,0,&gUnknown_203B310->faceInfo,0x10d);
gUnknown_203B310->nextState = GIVE_ITEM_REWARD; gUnknown_203B310->nextState = GIVE_ITEM_REWARD;
} }
else else

View File

@ -53,20 +53,20 @@ bool8 CreateHelperPelipperMenu(s16 speciesID)
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, speciesID); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, speciesID);
monName = GetMonSpecies(speciesID); monName = GetMonSpecies(speciesID);
strcpy(gAvailablePokemonNames, monName); strcpy(gAvailablePokemonNames, monName);
sPostOfficeHelper->faceFile = NULL; sPostOfficeHelper->faceInfo.faceFile = NULL;
sPostOfficeHelper->faceData = NULL; sPostOfficeHelper->faceInfo.faceData = NULL;
if (speciesID != MONSTER_NONE) { if (speciesID != MONSTER_NONE) {
faceFile = GetDialogueSpriteDataPtr(species_32); faceFile = GetDialogueSpriteDataPtr(species_32);
sPostOfficeHelper->faceFile = faceFile; sPostOfficeHelper->faceInfo.faceFile = faceFile;
sPostOfficeHelper->unk14 = 0; sPostOfficeHelper->faceInfo.unkC = 0;
sPostOfficeHelper->unk15 = 0; sPostOfficeHelper->faceInfo.unkD = 0;
sPostOfficeHelper->unk16 = 0; sPostOfficeHelper->faceInfo.unkE = 0;
sPostOfficeHelper->unk10 = 2; sPostOfficeHelper->faceInfo.unk8 = 2;
sPostOfficeHelper->unk12 = 8; sPostOfficeHelper->faceInfo.unkA = 8;
if (sPostOfficeHelper->faceFile != NULL) if (sPostOfficeHelper->faceInfo.faceFile != NULL)
sPostOfficeHelper->faceData = sPostOfficeHelper->faceFile->data; sPostOfficeHelper->faceInfo.faceData = sPostOfficeHelper->faceInfo.faceFile->data;
} }
sPostOfficeHelper->currMenuChoice = 0; sPostOfficeHelper->currMenuChoice = 0;
@ -111,8 +111,8 @@ u32 HelperPelipperCallback(void)
void CleanHelperPelipper(void) void CleanHelperPelipper(void)
{ {
if (sPostOfficeHelper != NULL) { if (sPostOfficeHelper != NULL) {
if (sPostOfficeHelper->faceFile != NULL) if (sPostOfficeHelper->faceInfo.faceFile != NULL)
CloseFile(sPostOfficeHelper->faceFile); CloseFile(sPostOfficeHelper->faceInfo.faceFile);
MemoryFree(sPostOfficeHelper); MemoryFree(sPostOfficeHelper);
sPostOfficeHelper = NULL; sPostOfficeHelper = NULL;
} }
@ -124,89 +124,89 @@ static void nullsub_39(void)
static void UpdateHelperPelipperText(void) static void UpdateHelperPelipperText(void)
{ {
OpenedFile **faceFile; struct UnkPrintFieldMsgStruct *faceInfoPtr;
faceFile = NULL; faceInfoPtr = NULL;
if (sPostOfficeHelper->faceFile != NULL) if (sPostOfficeHelper->faceInfo.faceFile != NULL)
faceFile = &sPostOfficeHelper->faceFile; faceInfoPtr = &sPostOfficeHelper->faceInfo;
switch (sPostOfficeHelper->state) { switch (sPostOfficeHelper->state) {
case DISPLAY_GET_HELP_MENU: case DISPLAY_GET_HELP_MENU:
sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpGetHelpMenu, 0, 4, 0, faceFile, 12); sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpGetHelpMenu, 0, 4, 0, faceInfoPtr, 12);
break; break;
case RETURN_TO_GET_HELP: case RETURN_TO_GET_HELP:
switch (sPostOfficeHelper->currMenuChoice) { switch (sPostOfficeHelper->currMenuChoice) {
case GETTING_HELP: case GETTING_HELP:
xxx_info_box_80141B4(sGettingHelpExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sGettingHelpExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case SEND_SOS_MAIL: case SEND_SOS_MAIL:
xxx_info_box_80141B4(sSendSOSMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sSendSOSMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case RECEIVE_AOK_MAIL: case RECEIVE_AOK_MAIL:
xxx_info_box_80141B4(sReceiveAOKMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sReceiveAOKMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case SEND_THANK_YOU_MAIL: case SEND_THANK_YOU_MAIL:
xxx_info_box_80141B4(sSendThankYouMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sSendThankYouMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
default: default:
break; break;
} }
break; break;
case DISPLAY_GO_RESCUE_MENU: case DISPLAY_GO_RESCUE_MENU:
sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpGoRescueMenu, 0, 4, 0, faceFile, 12); sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpGoRescueMenu, 0, 4, 0, faceInfoPtr, 12);
break; break;
case RETURN_TO_GO_RESCUE: case RETURN_TO_GO_RESCUE:
switch (sPostOfficeHelper->currMenuChoice) { switch (sPostOfficeHelper->currMenuChoice) {
case RESCUE_PROCEDURES: case RESCUE_PROCEDURES:
xxx_info_box_80141B4(sRescueProceduresExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sRescueProceduresExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case RECEIVE_SOS_MAIL: case RECEIVE_SOS_MAIL:
xxx_info_box_80141B4(sReceiveSOSMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sReceiveSOSMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case SEND_AOK_MAIL: case SEND_AOK_MAIL:
xxx_info_box_80141B4(sSendAOKMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sSendAOKMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case LEAVE_FOR_RESCUE: case LEAVE_FOR_RESCUE:
xxx_info_box_80141B4(sLeaveForRescueExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sLeaveForRescueExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case GET_THANK_YOU_MAIL: case GET_THANK_YOU_MAIL:
xxx_info_box_80141B4(sGetThankYouMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sGetThankYouMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
default: default:
break; break;
} }
break; break;
case IM_GUIDE_START_MENU: case IM_GUIDE_START_MENU:
sub_8014248(sImYourGuide, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 12); sub_8014248(sImYourGuide, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpStartMenu, 0, 4, 0, faceInfoPtr, 12);
break; break;
case ANYTHING_ELSE_START_MENU: case ANYTHING_ELSE_START_MENU:
sub_8014248(sAnythingElse, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpStartMenu, 0, 4, 0, faceFile, 12); sub_8014248(sAnythingElse, 0, sPostOfficeHelper->currMenuChoice, sPostOfficeHelpStartMenu, 0, 4, 0, faceInfoPtr, 12);
break; break;
case RETURN_TO_START_MENU: case RETURN_TO_START_MENU:
switch (sPostOfficeHelper->currMenuChoice) { switch (sPostOfficeHelper->currMenuChoice) {
case POST_OFFICE: case POST_OFFICE:
xxx_info_box_80141B4(sPostOfficeExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sPostOfficeExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case BULLETIN_BOARD: case BULLETIN_BOARD:
xxx_info_box_80141B4(sBulletinBoardExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sBulletinBoardExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case DELIVERY: case DELIVERY:
xxx_info_box_80141B4(sDeliveryExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sDeliveryExplanation, 0, faceInfoPtr, 0x10d);
break; break;
default: default:
break; break;
} }
break; break;
case DISPLAY_FRIEND_RESCUE_MENU: case DISPLAY_FRIEND_RESCUE_MENU:
sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, gPostOfficeHelpFriendRescueMenu, 0, 4, 0, faceFile, 12); sub_8014248(sWhatdYouWantToKnow, 0, sPostOfficeHelper->currMenuChoice, gPostOfficeHelpFriendRescueMenu, 0, 4, 0, faceInfoPtr, 12);
break; break;
case RETURN_TO_FRIEND_RESCUE: case RETURN_TO_FRIEND_RESCUE:
switch (sPostOfficeHelper->currMenuChoice) { switch (sPostOfficeHelper->currMenuChoice) {
case FRIEND_RESCUE_INFO: case FRIEND_RESCUE_INFO:
xxx_info_box_80141B4(sFriendRescueExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sFriendRescueExplanation, 0, faceInfoPtr, 0x10d);
break; break;
case DELETING_MAIL: case DELETING_MAIL:
xxx_info_box_80141B4(sDeletingMailExplanation, 0, faceFile, 0x10d); xxx_info_box_80141B4(sDeletingMailExplanation, 0, faceInfoPtr, 0x10d);
break; break;
default: default:
break; break;
@ -345,4 +345,4 @@ static void ReturnToGetHelpMenu(void)
if (sub_80144A4(&temp) == 0) if (sub_80144A4(&temp) == 0)
UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU); UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU);
} }

View File

@ -14,30 +14,29 @@ void PrepareSavePakWrite(s16 pokemonID)
{ {
OpenedFile *file; OpenedFile *file;
s32 id_s32; s32 id_s32;
OpenedFile **preload_face;
id_s32 = pokemonID; // had to cast for asr shift id_s32 = pokemonID; // had to cast for asr shift
sub_80993D8(); sub_80993D8();
sSavePakWrite = MemoryAlloc(sizeof(SavePakWrite), 5); sSavePakWrite = MemoryAlloc(sizeof(SavePakWrite), 5);
sSavePakWrite->pokeID = id_s32; sSavePakWrite->pokeID = id_s32;
sSavePakWrite->faceFile = NULL; sSavePakWrite->faceInfo.faceFile = NULL;
sSavePakWrite->faceData = NULL; sSavePakWrite->faceInfo.faceData = NULL;
if (pokemonID != MONSTER_NONE) { if (pokemonID != MONSTER_NONE) {
file = GetDialogueSpriteDataPtr(pokemonID); file = GetDialogueSpriteDataPtr(pokemonID);
sSavePakWrite->faceFile = file; sSavePakWrite->faceInfo.faceFile = file;
sSavePakWrite->faceData = file->data; sSavePakWrite->faceInfo.faceData = file->data;
sSavePakWrite->unk18 = 0; sSavePakWrite->faceInfo.unkC = 0;
sSavePakWrite->unk19 = 0; sSavePakWrite->faceInfo.unkD = 0;
sSavePakWrite->unk1A = 0; sSavePakWrite->faceInfo.unkE = 0;
sSavePakWrite->unk14 = 2; sSavePakWrite->faceInfo.unk8 = 2;
sSavePakWrite->unk16 = 8; sSavePakWrite->faceInfo.unkA = 8;
} }
if (sSavePakWrite->faceFile != 0) { if (sSavePakWrite->faceInfo.faceFile != 0) {
preload_face = &sSavePakWrite->faceFile; struct UnkPrintFieldMsgStruct *faceInfoPtr = &sSavePakWrite->faceInfo;
xxx_info_box_80141B4(sSavingAdventure, 0, preload_face, 0x20); xxx_info_box_80141B4(sSavingAdventure, 0, faceInfoPtr, 0x20);
} }
else else
xxx_info_box_80141B4(sSavingAdventure, 0, NULL, 0x20); xxx_info_box_80141B4(sSavingAdventure, 0, NULL, 0x20);
@ -47,13 +46,13 @@ void PrepareSavePakWrite(s16 pokemonID)
bool8 WriteSavePak(void) bool8 WriteSavePak(void)
{ {
OpenedFile **faceFile; struct UnkPrintFieldMsgStruct *faceInfoPtr;
u32 local_14; u32 local_14;
u32 other_stack; u32 other_stack;
faceFile = NULL; faceInfoPtr = NULL;
if (sSavePakWrite->faceFile != NULL) if (sSavePakWrite->faceInfo.faceFile != NULL)
faceFile = &sSavePakWrite->faceFile; faceInfoPtr = &sSavePakWrite->faceInfo;
switch (sSavePakWrite->state) { switch (sSavePakWrite->state) {
case 0: case 0:
@ -78,10 +77,10 @@ bool8 WriteSavePak(void)
switch (sSavePakWrite->saveStatus) { switch (sSavePakWrite->saveStatus) {
case SAVE_COMPLETED: case SAVE_COMPLETED:
if (sSavePakWrite->faceFile != NULL) if (sSavePakWrite->faceInfo.faceFile != NULL)
xxx_info_box_80141B4(sSaveCompleted, 0, faceFile, 0x101); xxx_info_box_80141B4(sSaveCompleted, 0, faceInfoPtr, 0x101);
else else
xxx_info_box_80141B4(sSaveCompleted, 0, faceFile, 0x101); xxx_info_box_80141B4(sSaveCompleted, 0, faceInfoPtr, 0x101);
sSavePakWrite->state = 5; sSavePakWrite->state = 5;
break; break;
@ -90,10 +89,10 @@ bool8 WriteSavePak(void)
sSavePakWrite->state = 6; sSavePakWrite->state = 6;
break; break;
default: default:
if (sSavePakWrite->faceFile != NULL) if (sSavePakWrite->faceInfo.faceFile != NULL)
xxx_info_box_80141B4(sSaveFailed, 0, faceFile, 0x101); xxx_info_box_80141B4(sSaveFailed, 0, faceInfoPtr, 0x101);
else else
xxx_info_box_80141B4(sSaveFailed, 0, faceFile, 0x101); xxx_info_box_80141B4(sSaveFailed, 0, faceInfoPtr, 0x101);
sSavePakWrite->state = 5; sSavePakWrite->state = 5;
break; break;
@ -120,10 +119,10 @@ u32 GetSavePakStatus(void)
void FinishWriteSavePak(void) void FinishWriteSavePak(void)
{ {
if (sSavePakWrite != NULL) { if (sSavePakWrite != NULL) {
if (sSavePakWrite->faceFile != NULL) if (sSavePakWrite->faceInfo.faceFile != NULL)
CloseFile(sSavePakWrite->faceFile); CloseFile(sSavePakWrite->faceInfo.faceFile);
MemoryFree(sSavePakWrite); MemoryFree(sSavePakWrite);
sSavePakWrite = NULL; sSavePakWrite = NULL;
} }
sub_80993E4(); sub_80993E4();
} }

View File

@ -252,13 +252,13 @@ u32 CreateThankYouMailPelipper(void)
strcpy(gAvailablePokemonNames, monName); strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
sUnknown_203B2C4->faceFile = faceFile; sUnknown_203B2C4->faceInfo.faceFile = faceFile;
sUnknown_203B2C4->faceData = faceFile->data; sUnknown_203B2C4->faceInfo.faceData = faceFile->data;
sUnknown_203B2C4->unk42C = 0; sUnknown_203B2C4->faceInfo.unkC = 0;
sUnknown_203B2C4->unk42D = 0; sUnknown_203B2C4->faceInfo.unkD = 0;
sUnknown_203B2C4->unk42E = 0; sUnknown_203B2C4->faceInfo.unkE = 0;
sUnknown_203B2C4->unk428 = 2; sUnknown_203B2C4->faceInfo.unk8 = 2;
sUnknown_203B2C4->unk42A = 8; sUnknown_203B2C4->faceInfo.unkA = 8;
for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
sUnknown_203B2C4->passwordBuffer[counter] = 0; sUnknown_203B2C4->passwordBuffer[counter] = 0;
@ -419,7 +419,7 @@ void CleanThankYouMailPelipper(void)
{ {
if(sUnknown_203B2C4 != NULL) if(sUnknown_203B2C4 != NULL)
{ {
CloseFile(sUnknown_203B2C4->faceFile); CloseFile(sUnknown_203B2C4->faceInfo.faceFile);
MemoryFree(sUnknown_203B2C4); MemoryFree(sUnknown_203B2C4);
sUnknown_203B2C4 = NULL; sUnknown_203B2C4 = NULL;
sub_8030DE4(); sub_8030DE4();
@ -445,34 +445,34 @@ void PrintThankYouMailLinkError(u32 errorCode)
{ {
switch(errorCode) { switch(errorCode) {
case COMMS_INCORRECT_NUM_SYSTEMS: case COMMS_INCORRECT_NUM_SYSTEMS:
xxx_info_box_80141B4(gUnknown_80DEF28, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DEF28, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_DIFFERENT_MODES: case COMMS_DIFFERENT_MODES:
xxx_info_box_80141B4(gUnknown_80DEF80, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DEF80, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_NO_ROOM_STORAGE: case COMMS_NO_ROOM_STORAGE:
xxx_info_box_80141B4(gUnknown_80DEFDC, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DEFDC, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_DUPLICATE_MAIL: case COMMS_DUPLICATE_MAIL:
xxx_info_box_80141B4(gUnknown_80DF044, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF044, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_NOT_ELIGIBLE_1: case COMMS_NOT_ELIGIBLE_1:
xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_NOT_ELIGIBLE_2: case COMMS_NOT_ELIGIBLE_2:
xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_NO_ROOM_MAIL: case COMMS_NO_ROOM_MAIL:
xxx_info_box_80141B4(gUnknown_80DF0E0, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF0E0, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case 1: case 1:
case COMMS_NO_RESPONSE: case COMMS_NO_RESPONSE:
case 5: case 5:
case 14: case 14:
xxx_info_box_80141B4(gUnknown_80DEF04, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DEF04, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_NOT_READY: case COMMS_NOT_READY:
xxx_info_box_80141B4(gUnknown_80DF138, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF138, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case COMMS_GOOD: case COMMS_GOOD:
default: default:
@ -501,7 +501,7 @@ void DisplayThankYouMailCommsOutcome(void)
case WONDER_MAIL_PASSWORD: case WONDER_MAIL_PASSWORD:
case 6: case 6:
// "Thank-You Mail has been sent" // "Thank-You Mail has been sent"
xxx_info_box_80141B4(gUnknown_80DF194, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF194, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
break; break;
case 4: case 4:
default: default:
@ -810,15 +810,15 @@ void HandleThankYouMailPasswordMenu(void)
switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,sUnknown_203B2C4->passwordBuffer,&mail1)) switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,sUnknown_203B2C4->passwordBuffer,&mail1))
{ {
case PASSWORD_ENTRY_INCORRECT_PASSWORD: case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &sUnknown_203B2C4->faceFile, 0xc); sub_8014248(gUnknown_80DF1C0, 0, 7, gUnknown_80DEE44, 0, 4, 0, &sUnknown_203B2C4->faceInfo, 0xc);
SetThankYouMailMenuState(THANK_YOU_PASSWORD_WRONG); SetThankYouMailMenuState(THANK_YOU_PASSWORD_WRONG);
break; break;
case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL:
xxx_info_box_80141B4(gUnknown_80DF208, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF208, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR);
break; break;
case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL:
xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DF0A0, 0, &sUnknown_203B2C4->faceInfo, 0x10d);
SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR); SetThankYouMailMenuState(PRINT_THANK_YOU_ERROR);
break; break;
case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS: case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS:
@ -1261,15 +1261,15 @@ void UpdateThankYouMailText(void)
pokeStruct = GetPlayerPokemonStruct(); pokeStruct = GetPlayerPokemonStruct();
sub_80922B4(buffer1,pokeStruct->name, POKEMON_NAME_LENGTH); sub_80922B4(buffer1,pokeStruct->name, POKEMON_NAME_LENGTH);
sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1); sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF250,buffer1);
xxx_info_box_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 0xe: case 0xe:
// Is it OK to send this Thank-You Mail? // Is it OK to send this Thank-You Mail?
sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF304,0,7,gUnknown_80DEE60,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case PROMPT_THANK_YOU_TO_SEND: case PROMPT_THANK_YOU_TO_SEND:
// Please choose the Thank-You Mail that you want to send to your friend // Please choose the Thank-You Mail that you want to send to your friend
xxx_info_box_80141B4(gUnknown_80DF330,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF330,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 0x10: case 0x10:
if (sub_8030894() != 0) if (sub_8030894() != 0)
@ -1339,7 +1339,7 @@ void UpdateThankYouMailText(void)
break; break;
case PROMPT_THANK_YOU_PASSWORD: case PROMPT_THANK_YOU_PASSWORD:
// OK. Please enter the Thank-You Mail Password // OK. Please enter the Thank-You Mail Password
xxx_info_box_80141B4(gUnknown_80DF380,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF380,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case PROCESS_THANK_YOU_PASSWORD: case PROCESS_THANK_YOU_PASSWORD:
RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC);
@ -1355,19 +1355,19 @@ void UpdateThankYouMailText(void)
break; break;
case 0x1b: case 0x1b:
// Please give this password to the friend that rescued your team. I also must save your adventure // Please give this password to the friend that rescued your team. I also must save your adventure
xxx_info_box_80141B4(gUnknown_80DF3B4,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF3B4,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case DISPLAY_THANK_YOU_PASSWORD: case DISPLAY_THANK_YOU_PASSWORD:
// Ok. Here is your Thank You Mail Password // Ok. Here is your Thank You Mail Password
xxx_info_box_80141B4(gUnknown_80DF418,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF418,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 0x24: case 0x24:
// I need to save your adventure // I need to save your adventure
xxx_info_box_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 0x20: case 0x20:
// There we go. I'm all done. // There we go. I'm all done.
xxx_info_box_80141B4(gUnknown_80DF46C,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF46C,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case THANK_YOU_PASSWORD_SUCCESS: case THANK_YOU_PASSWORD_SUCCESS:
switch(sUnknown_203B2C4->wonderMailMethod) switch(sUnknown_203B2C4->wonderMailMethod)
@ -1376,7 +1376,7 @@ void UpdateThankYouMailText(void)
case WONDER_MAIL_PASSWORD: case WONDER_MAIL_PASSWORD:
case 6: case 6:
// A Thank You Mail has arrived from your friend // A Thank You Mail has arrived from your friend
xxx_info_box_80141B4(gUnknown_80DF4F4,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF4F4,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 4: case 4:
break; break;
@ -1409,75 +1409,75 @@ void UpdateThankYouMailText(void)
break; break;
case 0x17: case 0x17:
// There. I've sent your thank-you mail. I need to save your adventure. // There. I've sent your thank-you mail. I need to save your adventure.
xxx_info_box_80141B4(gUnknown_80DF594,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF594,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case PROMPT_CONNECT_GAME_LINK: case PROMPT_CONNECT_GAME_LINK:
// Please connect the GBA systems with a Game Link Cable // Please connect the GBA systems with a Game Link Cable
sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF5E4,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case THANK_YOU_MAIL_COMMS_CLEANUP: case THANK_YOU_MAIL_COMMS_CLEANUP:
pokeStruct2 = GetPlayerPokemonStruct(); pokeStruct2 = GetPlayerPokemonStruct();
sub_80922B4(buffer2, pokeStruct2->name, POKEMON_NAME_LENGTH); sub_80922B4(buffer2, pokeStruct2->name, POKEMON_NAME_LENGTH);
sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2); sprintfStatic(sUnknown_203B2C4->formattedString,gUnknown_80DF63C,buffer2);
xxx_info_box_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(sUnknown_203B2C4->formattedString,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case CONFIRM_ITEM_TO_SEND: case CONFIRM_ITEM_TO_SEND:
// The item you've chosen can't be exchanged later. Is that OK? // The item you've chosen can't be exchanged later. Is that OK?
sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF694,0,7,gUnknown_80DEEE4,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case 0x29: case 0x29:
// I need to save your adventure // I need to save your adventure
xxx_info_box_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF44C,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case 0x2a: case 0x2a:
// I've saved your adventure // I've saved your adventure
xxx_info_box_80141B4(gUnknown_80DF6F0,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF6F0,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case PROMPT_ITEM_TO_SEND: case PROMPT_ITEM_TO_SEND:
// Ok, please choose the item to be sent // Ok, please choose the item to be sent
xxx_info_box_80141B4(gUnknown_80DF710,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF710,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case THANK_YOU_MAIL_STORAGE_EMPTY: case THANK_YOU_MAIL_STORAGE_EMPTY:
// Oh? Your storage space is empty // Oh? Your storage space is empty
sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF73C,0,0,gUnknown_80DEEBC,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case PROMPT_REWARD_ITEM_TO_SEND: case PROMPT_REWARD_ITEM_TO_SEND:
// Would you like to choose a reward item from storage and send it with your mail? // Would you like to choose a reward item from storage and send it with your mail?
sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF77C,0,0,gUnknown_80DEE7C,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case ITEM_EXISTS_ON_THANK_YOU_MAIL: case ITEM_EXISTS_ON_THANK_YOU_MAIL:
// Oh? You've already attached a reward item on this mail. // Oh? You've already attached a reward item on this mail.
xxx_info_box_80141B4(gUnknown_80DF7D4,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF7D4,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case PROMPT_RESEND_WITH_ATTACHED_ITEM: case PROMPT_RESEND_WITH_ATTACHED_ITEM:
// Would you like to send it again with the item you chose before? // Would you like to send it again with the item you chose before?
sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF870,0,7,gUnknown_80DEE44,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case NO_THANK_YOU_MAIL: case NO_THANK_YOU_MAIL:
// You don't seem to have a Thank-You Mail // You don't seem to have a Thank-You Mail
xxx_info_box_80141B4(gUnknown_80DF8B4,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF8B4,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case THANK_YOU_MAIL_MAIN_MENU: case THANK_YOU_MAIL_MAIN_MENU:
// Hello. I handle Thank You Mail. How may I help You? // Hello. I handle Thank You Mail. How may I help You?
sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF8EC,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case ANYTHING_ELSE_THANK_YOU_MAIN_MENU: case ANYTHING_ELSE_THANK_YOU_MAIN_MENU:
// May I help you with anything else? // May I help you with anything else?
sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF928,0,1,gThankYouMailMainMenuItems,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case EXIT_THANK_YOU_MAIL_PRE: case EXIT_THANK_YOU_MAIL_PRE:
// Please come see me anytime // Please come see me anytime
xxx_info_box_80141B4(gUnknown_80DF94C,0,&sUnknown_203B2C4->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DF94C,0,&sUnknown_203B2C4->faceInfo,0x10d);
break; break;
case SELECT_THANK_YOU_MAIL_COMMS: case SELECT_THANK_YOU_MAIL_COMMS:
switch(sUnknown_203B2C4->wonderMailMode){ switch(sUnknown_203B2C4->wonderMailMode){
case WONDER_MAIL_MODE_SEND: case WONDER_MAIL_MODE_SEND:
// How would you like to send your thank you mail? // How would you like to send your thank you mail?
sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF96C,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
case WONDER_MAIL_MODE_RECEIVE: case WONDER_MAIL_MODE_RECEIVE:
// How would you like to recieve your friend's thank you mail? // How would you like to recieve your friend's thank you mail?
sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceFile,0xc); sub_8014248(gUnknown_80DF9A4,0,3,gUnknown_80DEE08,0,4,0,&sUnknown_203B2C4->faceInfo,0xc);
break; break;
} }
break; break;

View File

@ -74,16 +74,16 @@ bool8 CreateWigglytuffShop(u32 mode)
if (sWigglytuffShop3Work->mode == 1) if (sWigglytuffShop3Work->mode == 1)
sWigglytuffShop3Work->unkCC = NULL; sWigglytuffShop3Work->unkCC = NULL;
else else
sWigglytuffShop3Work->unkCC = &sWigglytuffShop3Work->faceFile; sWigglytuffShop3Work->unkCC = &sWigglytuffShop3Work->faceInfo;
file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF);
sWigglytuffShop3Work->faceFile = file; sWigglytuffShop3Work->faceInfo.faceFile = file;
sWigglytuffShop3Work->faceData = file->data; sWigglytuffShop3Work->faceInfo.faceData = file->data;
sWigglytuffShop3Work->unkC8 = 0; sWigglytuffShop3Work->faceInfo.unkC = 0;
sWigglytuffShop3Work->unkC9 = 0; sWigglytuffShop3Work->faceInfo.unkD = 0;
sWigglytuffShop3Work->unkCA = 0; sWigglytuffShop3Work->faceInfo.unkE = 0;
sWigglytuffShop3Work->unkC4 = 2; sWigglytuffShop3Work->faceInfo.unk8 = 2;
sWigglytuffShop3Work->unkC6 = 8; sWigglytuffShop3Work->faceInfo.unkA = 8;
SetWigglytuffState(WIGGLYTUFF_INIT); SetWigglytuffState(WIGGLYTUFF_INIT);
return TRUE; return TRUE;
} }
@ -130,7 +130,7 @@ u32 sub_8021C5C(void)
void CleanWigglytuffShop(void) void CleanWigglytuffShop(void)
{ {
if (sWigglytuffShop3Work) { if (sWigglytuffShop3Work) {
CloseFile(sWigglytuffShop3Work->faceFile); CloseFile(sWigglytuffShop3Work->faceInfo.faceFile);
MemoryFree(sWigglytuffShop3Work); MemoryFree(sWigglytuffShop3Work);
sWigglytuffShop3Work = NULL; sWigglytuffShop3Work = NULL;
} }

View File

@ -203,13 +203,13 @@ u32 sub_8027F88(void)
monName = GetMonSpecies(MONSTER_PELIPPER); monName = GetMonSpecies(MONSTER_PELIPPER);
strcpy(gAvailablePokemonNames, monName); strcpy(gAvailablePokemonNames, monName);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
sUnknown_203B2C0->faceFile = faceFile; sUnknown_203B2C0->faceInfo.faceFile = faceFile;
sUnknown_203B2C0->faceData = faceFile->data; sUnknown_203B2C0->faceInfo.faceData = faceFile->data;
sUnknown_203B2C0->unk42C = 0; sUnknown_203B2C0->faceInfo.unkC = 0;
sUnknown_203B2C0->unk42D = 0; sUnknown_203B2C0->faceInfo.unkD = 0;
sUnknown_203B2C0->unk42E = 0; sUnknown_203B2C0->faceInfo.unkE = 0;
sUnknown_203B2C0->unk428 = 2; sUnknown_203B2C0->faceInfo.unk8 = 2;
sUnknown_203B2C0->unk42A = 8; sUnknown_203B2C0->faceInfo.unkA = 8;
for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){
sUnknown_203B2C0->passwordBuffer[counter] = 0; sUnknown_203B2C0->passwordBuffer[counter] = 0;
} }
@ -220,7 +220,7 @@ u32 sub_8027F88(void)
u32 sub_8028078(void) u32 sub_8028078(void)
{ {
switch(sUnknown_203B2C0->state) { switch(sUnknown_203B2C0->state) {
case 0x3c: case 0x3c:
sub_8029B34(); sub_8029B34();
@ -403,7 +403,7 @@ s32 sub_80282DC(u8 *r0)
void sub_80282FC(void) void sub_80282FC(void)
{ {
if (sUnknown_203B2C0 != NULL) { if (sUnknown_203B2C0 != NULL) {
CloseFile(sUnknown_203B2C0->faceFile); CloseFile(sUnknown_203B2C0->faceInfo.faceFile);
MemoryFree(sUnknown_203B2C0); MemoryFree(sUnknown_203B2C0);
sUnknown_203B2C0 = NULL; sUnknown_203B2C0 = NULL;
sub_8031E10(); sub_8031E10();
@ -432,13 +432,13 @@ void sub_8028348(void)
sub_8031D70(sUnknown_203B2C0->mailIndex, 0); sub_8031D70(sUnknown_203B2C0->mailIndex, 0);
break; break;
case 0x3C: case 0x3C:
xxx_info_box_80141B4(gUnknown_80DDBA8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDBA8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case AOK_PASSWORD_DISPLAY: case AOK_PASSWORD_DISPLAY:
xxx_info_box_80141B4(gUnknown_80DDBFC, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDBFC, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x38: case 0x38:
xxx_info_box_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case SENT_AOK_MAIL: case SENT_AOK_MAIL:
switch(sUnknown_203B2C0->unk534) switch(sUnknown_203B2C0->unk534)
@ -447,14 +447,14 @@ void sub_8028348(void)
case 0x10: case 0x10:
case 0xF: case 0xF:
case 0xD: case 0xD:
xxx_info_box_80141B4(gUnknown_80DDC70, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDC70, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0xE: case 0xE:
break; break;
} }
break; break;
case SENT_AOK_MAIL_SAVE_COMPLETE: case SENT_AOK_MAIL_SAVE_COMPLETE:
xxx_info_box_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDC30, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case PROMPT_SELECT_HELPER_POKEMON: case PROMPT_SELECT_HELPER_POKEMON:
xxx_info_box_80141B4(gUnknown_80DDCBC, 0, 0,0x101); xxx_info_box_80141B4(gUnknown_80DDCBC, 0, 0,0x101);
@ -474,16 +474,16 @@ void sub_8028348(void)
sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE);
break; break;
case NO_POKEMON_IN_FRIEND_AREA: case NO_POKEMON_IN_FRIEND_AREA:
sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDD2C, 0, 0xA, gUnknown_80DDAA0, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case CONFIRM_SEND_HELPER_POKEMON: case CONFIRM_SEND_HELPER_POKEMON:
sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDD88, 0, 8, gUnknown_80DDA80, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case 0x2D: case 0x2D:
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case PROMPT_CHOOSE_AOK_MAIL: case PROMPT_CHOOSE_AOK_MAIL:
xxx_info_box_80141B4(gUnknown_80DDDD8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDDD8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x2A: case 0x2A:
if(sub_8030894() == 0) if(sub_8030894() == 0)
@ -494,19 +494,19 @@ void sub_8028348(void)
} }
break; break;
case NO_AOK_MAIL_TO_SEND: case NO_AOK_MAIL_TO_SEND:
xxx_info_box_80141B4(gUnknown_80DDE20, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDE20, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x30: case 0x30:
xxx_info_box_80141B4(gUnknown_80DDE58, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDE58, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x2E: case 0x2E:
sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDEC0, 0, 0x11, gUnknown_80DDB60, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case NO_MAIL_ROOM: case NO_MAIL_ROOM:
xxx_info_box_80141B4(gUnknown_80DDF2C, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DDF2C, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 4: case 4:
sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDFB8, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case FRIEND_RESCUE_COMMUNICATING_PRE: case FRIEND_RESCUE_COMMUNICATING_PRE:
nullsub_23(FALSE); nullsub_23(FALSE);
@ -540,7 +540,7 @@ void sub_8028348(void)
break; break;
} }
if(sUnknown_203B2C0->linkError == COMMS_GOOD) if(sUnknown_203B2C0->linkError == COMMS_GOOD)
{ {
switch(sUnknown_203B2C0->unk40) switch(sUnknown_203B2C0->unk40)
{ {
case 3: case 3:
@ -565,17 +565,17 @@ void sub_8028348(void)
case 0x10: case 0x10:
case 0xF: case 0xF:
case 0xD: case 0xD:
xxx_info_box_80141B4(gUnknown_80DE06C, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE06C, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0xE: case 0xE:
break; break;
} }
break; break;
case RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE: case RECEIVED_FRIEND_SOS_MAIL_SAVE_COMPLETE:
xxx_info_box_80141B4(gUnknown_80DE0C0, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE0C0, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case PROMPT_SOS_MAIL_PASSWORD: case PROMPT_SOS_MAIL_PASSWORD:
xxx_info_box_80141B4(gUnknown_80DE124, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE124, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x27: case 0x27:
RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC);
@ -587,30 +587,30 @@ void sub_8028348(void)
switch(sUnknown_203B2C0->unk538) switch(sUnknown_203B2C0->unk538)
{ {
case 0: case 0:
sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE178, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case 2: case 2:
sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE1B4, 0, 0xD, gUnknown_80DDB24, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
} }
break; break;
case NO_SOS_MAIL_TO_SEND: case NO_SOS_MAIL_TO_SEND:
xxx_info_box_80141B4(gUnknown_80DE1E4, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE1E4, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x1B: case 0x1B:
xxx_info_box_80141B4(gUnknown_80DE280, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE280, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case CANT_GO_TO_DUNGEON: case CANT_GO_TO_DUNGEON:
xxx_info_box_80141B4(gUnknown_80DE2B0, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE2B0, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case FRIEND_RESCUE_FAILED: case FRIEND_RESCUE_FAILED:
xxx_info_box_80141B4(gUnknown_80DE368, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE368, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x22: case 0x22:
sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DDDBC, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case PROMPT_CHOOSE_SOS_MAIL: case PROMPT_CHOOSE_SOS_MAIL:
xxx_info_box_80141B4(gUnknown_80DE430, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE430, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x1F: case 0x1F:
if(sub_8030894() == 0) if(sub_8030894() == 0)
@ -644,58 +644,58 @@ void sub_8028348(void)
} }
break; break;
case 0xB: case 0xB:
sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE48C, 0, 5, gUnknown_80DD9EC, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case CHOOSE_DELETE_SOS_MAIL: case CHOOSE_DELETE_SOS_MAIL:
xxx_info_box_80141B4(gUnknown_80DE4B8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE4B8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case NO_SOS_MAIL: case NO_SOS_MAIL:
xxx_info_box_80141B4(gUnknown_80DE4F0, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE4F0, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case CHOOSE_DELETE_AOK_MAIL: case CHOOSE_DELETE_AOK_MAIL:
xxx_info_box_80141B4(gUnknown_80DE524, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE524, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case NO_AOK_MAIL: case NO_AOK_MAIL:
xxx_info_box_80141B4(gUnknown_80DE614, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE614, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case CHOOSE_DELETE_ALL_MAIL: case CHOOSE_DELETE_ALL_MAIL:
xxx_info_box_80141B4(gUnknown_80DE648, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE648, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case NO_MAIL: case NO_MAIL:
xxx_info_box_80141B4(gUnknown_80DE694, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE694, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case PROMPT_DELETE_ALL_MAIL: case PROMPT_DELETE_ALL_MAIL:
sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE6D4, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case CONFIRM_DELETE_ALL_MAIL_1: case CONFIRM_DELETE_ALL_MAIL_1:
sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE754, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case SAVING_ADVENTURE: case SAVING_ADVENTURE:
xxx_info_box_80141B4(gUnknown_80DE7B8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE7B8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case FINISH_SAVING_ADVENTURE: case FINISH_SAVING_ADVENTURE:
xxx_info_box_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case PROMPT_DELETE_ANY_OTHER_MAIL: case PROMPT_DELETE_ANY_OTHER_MAIL:
sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE808, 0, 8, gUnknown_80DDA64, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case CONFIRM_DELETE_ALL_MAIL_2: case CONFIRM_DELETE_ALL_MAIL_2:
xxx_info_box_80141B4(gUnknown_80DE830, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE830, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case DELETE_ALL_MAIL_SAVE_PRE: case DELETE_ALL_MAIL_SAVE_PRE:
xxx_info_box_80141B4(gUnknown_80DE864, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE864, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case 0x16: case 0x16:
xxx_info_box_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE7E8, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case INITIALIZE_FRIEND_RESCUE: case INITIALIZE_FRIEND_RESCUE:
sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE8B4, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case FRIEND_RESCUE_MAIN: case FRIEND_RESCUE_MAIN:
sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceFile,0xC); sub_8014248(gUnknown_80DE918, 0, 0, gUnknown_80DD970, 0, 4, 0, &sUnknown_203B2C0->faceInfo,0xC);
break; break;
case 2: case 2:
xxx_info_box_80141B4(gUnknown_80DE93C, 0, &sUnknown_203B2C0->faceFile,0x10d); xxx_info_box_80141B4(gUnknown_80DE93C, 0, &sUnknown_203B2C0->faceInfo,0x10d);
break; break;
case FRIEND_RESCUE_COUNTER_EXIT: case FRIEND_RESCUE_COUNTER_EXIT:
break; break;
@ -719,37 +719,37 @@ void PrintFriendRescueCounterError(u32 errorCode)
break; break;
case 1: case 1:
case COMMS_NO_RESPONSE: case COMMS_NO_RESPONSE:
xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_INCORRECT_NUM_SYSTEMS: case COMMS_INCORRECT_NUM_SYSTEMS:
xxx_info_box_80141B4(gWonderMailNumGBAsText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailNumGBAsText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_DIFFERENT_MODES: case COMMS_DIFFERENT_MODES:
xxx_info_box_80141B4(gWonderMailWrongModeText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailWrongModeText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case 5: case 5:
xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_NO_ROOM_STORAGE: case COMMS_NO_ROOM_STORAGE:
xxx_info_box_80141B4(gWonderMailStorageFullText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailStorageFullText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_DUPLICATE_MAIL: case COMMS_DUPLICATE_MAIL:
xxx_info_box_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_NOT_ELIGIBLE_1: case COMMS_NOT_ELIGIBLE_1:
xxx_info_box_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_NOT_ELIGIBLE_2: case COMMS_NOT_ELIGIBLE_2:
xxx_info_box_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailNotEligibleReceiveText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_NO_ROOM_MAIL: case COMMS_NO_ROOM_MAIL:
xxx_info_box_80141B4(gWonderMailNoRoomText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailNoRoomText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case 14: case 14:
xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
case COMMS_NOT_READY: case COMMS_NOT_READY:
xxx_info_box_80141B4(gWonderMailFriendErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailFriendErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
break; break;
default: default:
break; break;
@ -1370,22 +1370,22 @@ void sub_80293F4(void)
switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (sUnknown_203B2C0->passwordBuffer), &mail)) switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (sUnknown_203B2C0->passwordBuffer), &mail))
{ {
case PASSWORD_ENTRY_INCORRECT_PASSWORD: case PASSWORD_ENTRY_INCORRECT_PASSWORD:
sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceFile, 0xC); sub_8014248(gWonderMailPasswordIncorrectText, 0, 8, gUnknown_80DDA48, 0, 4, 0, &sUnknown_203B2C0->faceInfo, 0xC);
SetFriendRescueCounterState(0x28); SetFriendRescueCounterState(0x28);
break; break;
case PASSWORD_ENTRY_NOT_SOS_MAIL: case PASSWORD_ENTRY_NOT_SOS_MAIL:
xxx_info_box_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailSOSPasswordIncorrectText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
SetFriendRescueCounterState(FRIEND_RESCUE_ERROR); SetFriendRescueCounterState(FRIEND_RESCUE_ERROR);
break; break;
case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL:
xxx_info_box_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceFile, 0x10d); xxx_info_box_80141B4(gWonderMailDuplicateText, 0, &sUnknown_203B2C0->faceInfo, 0x10d);
SetFriendRescueCounterState(FRIEND_RESCUE_ERROR); SetFriendRescueCounterState(FRIEND_RESCUE_ERROR);
break; break;
case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: case PASSWORD_ENTRY_SOS_MAIL_SUCCESS:
sub_8095274(mail.unk10.unk10); sub_8095274(mail.unk10.unk10);
mail.mailType = 2; mail.mailType = 2;
sub_80951BC(&mail); sub_80951BC(&mail);
xxx_info_box_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceFile, 0x101); xxx_info_box_80141B4(gWonderMailAOKMailReceivedText, 0, &sUnknown_203B2C0->faceInfo, 0x101);
SetFriendRescueCounterState(RECEIVED_FRIEND_SOS_MAIL); SetFriendRescueCounterState(RECEIVED_FRIEND_SOS_MAIL);
break; break;
case 23: case 23:

View File

@ -23,14 +23,7 @@ struct unkStruct_203B2C8
// size: 0x140 // size: 0x140
/* 0x0 */ u8 currState; /* 0x0 */ u8 currState;
/* 0x1 */ u8 unk1; /* 0x1 */ u8 unk1;
/* 0x4 */ OpenedFile *faceFile; /* 0x4 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x8 */ u8 *faceData;
/* 0xC */ u16 unkC;
/* 0xE */ u16 unkE;
/* 0x10 */ u8 unk10;
/* 0x11 */ u8 unk11;
/* 0x12 */ u8 unk12;
/* 0x13 */ u8 unk13;
/* 0x14 */ u8 teamName[4]; // Figure out size of this buffer /* 0x14 */ u8 teamName[4]; // Figure out size of this buffer
u8 fill18[0x114 - 0x18]; u8 fill18[0x114 - 0x18];
unkStruct_802F204 unk114; unkStruct_802F204 unk114;
@ -94,13 +87,13 @@ s32 sub_802B2D4(void)
sUnknown_203B2C8->unk1 = -1; sUnknown_203B2C8->unk1 = -1;
CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER);
faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
sUnknown_203B2C8->faceFile = faceFile; sUnknown_203B2C8->faceInfo.faceFile = faceFile;
sUnknown_203B2C8->faceData = faceFile->data; sUnknown_203B2C8->faceInfo.faceData = faceFile->data;
sUnknown_203B2C8->unk10 = 0; sUnknown_203B2C8->faceInfo.unkC = 0;
sUnknown_203B2C8->unk11 = 0; sUnknown_203B2C8->faceInfo.unkD = 0;
sUnknown_203B2C8->unk12 = 0; sUnknown_203B2C8->faceInfo.unkE = 0;
sUnknown_203B2C8->unkC = 2; sUnknown_203B2C8->faceInfo.unk8 = 2;
sUnknown_203B2C8->unkE = 8; sUnknown_203B2C8->faceInfo.unkA = 8;
if (sub_8099394(&sUnknown_203B2C8->unk1) != 1) { if (sub_8099394(&sUnknown_203B2C8->unk1) != 1) {
return 0; return 0;
} }
@ -139,7 +132,7 @@ void sub_802B3B8(void)
{ {
if(sUnknown_203B2C8 != NULL) if(sUnknown_203B2C8 != NULL)
{ {
CloseFile(sUnknown_203B2C8->faceFile); CloseFile(sUnknown_203B2C8->faceInfo.faceFile);
MemoryFree(sUnknown_203B2C8); MemoryFree(sUnknown_203B2C8);
sUnknown_203B2C8 = NULL; sUnknown_203B2C8 = NULL;
} }
@ -168,7 +161,7 @@ void sub_802B3E0(void)
// Print and expand placeholders? // Print and expand placeholders?
sprintfStatic(sUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer); sprintfStatic(sUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer);
// Display to screen with Pelipper face // Display to screen with Pelipper face
xxx_info_box_80141B4(sUnknown_203B2C8->teamName, 0, &sUnknown_203B2C8->faceFile, 0x10d); xxx_info_box_80141B4(sUnknown_203B2C8->teamName, 0, &sUnknown_203B2C8->faceInfo, 0x10d);
break; break;
case 1: case 1:
monName = GetMonSpecies(MONSTER_PELIPPER); monName = GetMonSpecies(MONSTER_PELIPPER);
@ -189,12 +182,12 @@ void sub_802B3E0(void)
case 2: case 2:
// I hope you will keep on rescuing your friends // I hope you will keep on rescuing your friends
// I must save your adventure // I must save your adventure
xxx_info_box_80141B4(gUnknown_80DFAA8, 0, &sUnknown_203B2C8->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DFAA8, 0, &sUnknown_203B2C8->faceInfo, 0x10d);
break; break;
case 4: case 4:
// Oh yes, that's right. Please don't forget to send an A-OK Mail // Oh yes, that's right. Please don't forget to send an A-OK Mail
// to the friend you just rescued // to the friend you just rescued
xxx_info_box_80141B4(gUnknown_80DFB14, 0, &sUnknown_203B2C8->faceFile, 0x10d); xxx_info_box_80141B4(gUnknown_80DFB14, 0, &sUnknown_203B2C8->faceInfo, 0x10d);
case 3: case 3:
case 5: case 5:
break; break;

View File

@ -19,13 +19,7 @@ struct unkStruct_203B328
MenuStruct unk8; MenuStruct unk8;
MenuStruct unk58; MenuStruct unk58;
UnkTextStruct2 unkA8[4]; UnkTextStruct2 unkA8[4];
/* 0x108 */ OpenedFile *faceFile; /* 0x108 */ struct UnkPrintFieldMsgStruct faceInfo;
/* 0x10C */ u8 *faceData;
u16 unk110;
u16 unk112;
/* 0x114 */ u8 unk114;
/* 0x115 */ u8 unk115;
/* 0x116 */ u8 unk116;
u32 wonderMailType; u32 wonderMailType;
}; };
static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0}; static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0};
@ -41,14 +35,14 @@ enum MenuActions {
DELETE_ALL_MAIL_ACTION, // Unused DELETE_ALL_MAIL_ACTION, // Unused
}; };
const MenuItem gUnknown_80E0948[] = const MenuItem gUnknown_80E0948[] =
{ {
{"Yes", YES_ACTION}, {"Yes", YES_ACTION},
{"No", NO_ACTION}, {"No", NO_ACTION},
{NULL, CANCEL_ACTION} {NULL, CANCEL_ACTION}
}; };
const MenuItem gUnknown_80E0968[] = const MenuItem gUnknown_80E0968[] =
{ {
{"Delete", DELETE_ACTION}, {"Delete", DELETE_ACTION},
{"Info", INFO_ACTION}, {"Info", INFO_ACTION},
@ -106,7 +100,7 @@ enum States {
bool8 sub_8030F58(u32 wonderMailType) bool8 sub_8030F58(u32 wonderMailType)
{ {
OpenedFile *file; OpenedFile *file;
ResetUnusedInputStruct(); ResetUnusedInputStruct();
xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE);
if (gUnknown_203B328 == NULL) { if (gUnknown_203B328 == NULL) {
@ -115,24 +109,24 @@ bool8 sub_8030F58(u32 wonderMailType)
} }
gUnknown_203B328->wonderMailType = wonderMailType; gUnknown_203B328->wonderMailType = wonderMailType;
file = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); file = GetDialogueSpriteDataPtr(MONSTER_PELIPPER);
gUnknown_203B328->faceFile = file; gUnknown_203B328->faceInfo.faceFile = file;
gUnknown_203B328->faceData = file->data; gUnknown_203B328->faceInfo.faceData = file->data;
gUnknown_203B328->unk114 = 0; gUnknown_203B328->faceInfo.unkC = 0;
gUnknown_203B328->unk115 = 0; gUnknown_203B328->faceInfo.unkD = 0;
gUnknown_203B328->unk116 = 0; gUnknown_203B328->faceInfo.unkE = 0;
gUnknown_203B328->unk110 = 2; gUnknown_203B328->faceInfo.unk8 = 2;
gUnknown_203B328->unk112 = 8; gUnknown_203B328->faceInfo.unkA = 8;
if (HasNoWonderMailType(wonderMailType)) { if (HasNoWonderMailType(wonderMailType)) {
switch(wonderMailType) switch(wonderMailType)
{ {
case WONDER_MAIL_TYPE_SOS_1: case WONDER_MAIL_TYPE_SOS_1:
// "You don't have any {COLOR CYAN_G}SOS Mail{RESET}.\0" // "You don't have any {COLOR CYAN_G}SOS Mail{RESET}.\0"
xxx_info_box_80141B4(gUnknown_80E09D8,0,&gUnknown_203B328->faceFile,0x101); xxx_info_box_80141B4(gUnknown_80E09D8,0,&gUnknown_203B328->faceInfo,0x101);
break; break;
case WONDER_MAIL_TYPE_AOK: case WONDER_MAIL_TYPE_AOK:
// "You don't have any {COLOR CYAN_G}A-OK Mail{RESET}.\0" // "You don't have any {COLOR CYAN_G}A-OK Mail{RESET}.\0"
xxx_info_box_80141B4(gUnknown_80E0A0C,0,&gUnknown_203B328->faceFile,0x101); xxx_info_box_80141B4(gUnknown_80E0A0C,0,&gUnknown_203B328->faceInfo,0x101);
break; break;
} }
gUnknown_203B328->state = 5; gUnknown_203B328->state = 5;
@ -172,7 +166,7 @@ void sub_80310B4(void)
{ {
sub_803084C(); sub_803084C();
if (gUnknown_203B328 != NULL) { if (gUnknown_203B328 != NULL) {
CloseFile(gUnknown_203B328->faceFile); CloseFile(gUnknown_203B328->faceInfo.faceFile);
MemoryFree(gUnknown_203B328); MemoryFree(gUnknown_203B328);
gUnknown_203B328 = NULL; gUnknown_203B328 = NULL;
} }
@ -274,7 +268,7 @@ static void sub_8031300(void)
static void HandleWonderMail6MainMenu(void) static void HandleWonderMail6MainMenu(void)
{ {
s32 menuAction; s32 menuAction;
menuAction = 0; menuAction = 0;
sub_8030768(0); sub_8030768(0);
if (!sub_8012FD8(&gUnknown_203B328->unk8)) { if (!sub_8012FD8(&gUnknown_203B328->unk8)) {
@ -304,7 +298,7 @@ static void HandleWonderMail6DeleteMailMenu(u32 state)
s32 index; s32 index;
s32 menuAction; s32 menuAction;
unkStruct_203B480 *unused; unkStruct_203B480 *unused;
menuAction = 0; menuAction = 0;
sub_8030768(0); sub_8030768(0);
sub_8012FD8(&gUnknown_203B328->unk8); sub_8012FD8(&gUnknown_203B328->unk8);