From 76ccab81139619d0438281ece5afc4221289e14a Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 19 Oct 2024 17:09:39 +0200 Subject: [PATCH] UnkPrintFieldMsgStruct discovered --- asm/code_80521D0.s | 264 -------------------------------- include/code_80130A8.h | 15 +- include/code_802DB28.h | 11 +- include/felicity_bank.h | 14 +- include/gba/io_reg.h | 1 + include/gulpin_shop.h | 12 +- include/gulpin_shop_801FB50.h | 12 +- include/kangaskhan_storage1.h | 12 +- include/kecleon_bros1.h | 11 +- include/makuhita_dojo1.h | 11 +- include/post_office_guide1.h | 10 +- include/save_write.h | 11 +- include/structs/str_dungeon.h | 2 +- include/thank_you_wonder_mail.h | 10 +- include/wigglytuff_shop3.h | 11 +- include/wonder_mail.h | 10 +- src/code_80140DC.c | 16 +- src/code_802DB28.c | 32 ++-- src/code_80521D0.c | 100 +++++++++++- src/felicity_bank.c | 20 +-- src/gulpin_shop.c | 30 ++-- src/gulpin_shop_801FB50.c | 32 ++-- src/kangaskhan_storage1.c | 58 +++---- src/kecleon_bros1.c | 30 ++-- src/makuhita_dojo1.c | 20 +-- src/mission_reward.c | 40 ++--- src/post_office_guide1.c | 72 ++++----- src/save_write.c | 51 +++--- src/thank_you_wonder_mail.c | 94 ++++++------ src/wigglytuff_shop3.c | 18 +-- src/wonder_mail.c | 136 ++++++++-------- src/wonder_mail_2.c | 31 ++-- src/wonder_mail_6.c | 38 ++--- 33 files changed, 493 insertions(+), 742 deletions(-) diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index 9a80be76..a15dcfa7 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -5,270 +5,6 @@ .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 sub_80528F4: diff --git a/include/code_80130A8.h b/include/code_80130A8.h index 629f7636..571ef37b 100644 --- a/include/code_80130A8.h +++ b/include/code_80130A8.h @@ -5,14 +5,25 @@ #include "structs/menu.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 void sub_8013E54(void); void sub_8013F84(void); void sub_80140B4(UnkTextStruct2 *); void sub_80140DC(void); void sub_8014114(void); -void xxx_info_box_80141B4(const u8 *, u32, OpenedFile **, u16); -void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, OpenedFile **, u32); +void xxx_info_box_80141B4(const u8 *, u32, struct UnkPrintFieldMsgStruct *, u16); +void sub_8014248(const u8 *, u32, u32, const MenuItem *, void *, u32, u32, struct UnkPrintFieldMsgStruct *, u32); s32 sub_80144A4(s32 *); void sub_80151C0(u32, u8 *); u32 sub_80154F0(void); diff --git a/include/code_802DB28.h b/include/code_802DB28.h index ebf7ad19..0e5ac639 100644 --- a/include/code_802DB28.h +++ b/include/code_802DB28.h @@ -4,6 +4,7 @@ #include "file_system.h" #include "structs/str_text.h" #include "structs/str_wonder_mail.h" +#include "code_80130A8.h" // size: 0xA8 struct unkStruct_203B2FC @@ -13,13 +14,7 @@ struct unkStruct_203B2FC unkStruct_802F204 unk8; /* 0x30 */ u8 jobSlotIndex; /* 0x34 */ WonderMail *jobInfo; - /* 0x38 */ OpenedFile *faceFile; - /* 0x3C */ u8 *faceData; - u16 unk40; - u16 unk42; - u8 unk44; - u8 unk45; - u8 unk46; + /* 0x38 */ struct UnkPrintFieldMsgStruct faceInfo; UnkTextStruct2 unk48[4]; }; @@ -27,4 +22,4 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon); u32 sub_802DBD4(void); void sub_802DC00(void); -#endif // GUARD_CODE_802DB28_H \ No newline at end of file +#endif // GUARD_CODE_802DB28_H diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 93ae9b2f..ec4b7099 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -4,6 +4,7 @@ #include "file_system.h" #include "structs/menu.h" #include "structs/str_text.h" +#include "code_80130A8.h" #define FELICITY_BANK_ACTION_WITHDRAW 0 #define FELICITY_BANK_ACTION_DEPOSIT 1 @@ -19,15 +20,8 @@ typedef struct FelicityBankWork MenuItem unk14[8]; u16 unk54[8]; unkStructFor8013AA0 unk64; - /* 0x94 */ OpenedFile *faceFile; - /* 0x98 */ u8 *faceData; - u16 unk9C; - u16 unk9E; - u8 unkA0; - u8 unkA1; - u8 unkA2; - u8 unkA3; - OpenedFile **unkA4; + /* 0x94 */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unkA4; UnkTextStruct2 unkA8[4]; } FelicityBankWork; @@ -36,4 +30,4 @@ void DestroyFelicityBank(void); void DrawTeamMoneyBox(u32); u32 FelicityBankCallback(void); -#endif // GUARD_FELICITY_BANK_H \ No newline at end of file +#endif // GUARD_FELICITY_BANK_H diff --git a/include/gba/io_reg.h b/include/gba/io_reg.h index 93ee23ff..c4fb0bbd 100644 --- a/include/gba/io_reg.h +++ b/include/gba/io_reg.h @@ -699,6 +699,7 @@ #define KEY_OR_INTR 0x0000 #define KEY_AND_INTR 0x8000 #define DPAD_ANY ((DPAD_RIGHT | DPAD_LEFT | DPAD_UP | DPAD_DOWN)) // 0xF0 +#define AB_BUTTONS (A_BUTTON | B_BUTTON) #define JOY_EXCL_DPAD 0x030F // interrupt flags diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index 6a2aed0a..51cd4302 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -5,6 +5,7 @@ #include "structs/menu.h" #include "structs/str_text.h" #include "structs/str_moves.h" +#include "code_80130A8.h" // size: 0x18C typedef struct GulpinShopWork @@ -24,15 +25,8 @@ typedef struct GulpinShopWork u16 unk68[8]; MenuStruct unk78; u8 fillC8[0x118 - 0xC8]; - /* 0x118 */ OpenedFile *faceFile; - /* 0x11C */ u8 *faceData; - u16 unk120; - u16 unk122; - u8 unk124; - u8 unk125; - u8 unk126; - u8 unk127; - OpenedFile **unk128; + /* 0x118 */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unk128; UnkTextStruct2 unk12C[4]; } GulpinShopWork; diff --git a/include/gulpin_shop_801FB50.h b/include/gulpin_shop_801FB50.h index 37518273..316ed34d 100644 --- a/include/gulpin_shop_801FB50.h +++ b/include/gulpin_shop_801FB50.h @@ -33,14 +33,8 @@ typedef struct unkStruct_203B27C u16 unkBC[8]; MenuStruct unkCC; u8 fill11C[0x16C - 0x11C]; - /* 0x16C */ OpenedFile *faceFile; - /* 0x170 */ u8 *faceData; - u16 unk174; - u16 unk176; - u8 unk178; - u8 unk179; - u8 unk17A; - OpenedFile **unk17C; + /* 0x16C */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unk17C; UnkTextStruct2 unk180[4]; } unkStruct_203B27C; @@ -48,4 +42,4 @@ bool8 sub_801FB50(u32 mode); u32 sub_801FC40(void); void sub_801FD7C(void); -#endif // GUARD_GULPIN_SHOP_801FB50_H \ No newline at end of file +#endif // GUARD_GULPIN_SHOP_801FB50_H diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 4d61010c..1467e038 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -18,7 +18,7 @@ enum KangaskhanStorageStates KANGASKHAN_STORAGE_IS_MONEY_USED_TM = 9, }; -enum KangaskhanStorageMenuActions +enum KangaskhanStorageMenuActions { MENU_CANCEL = 1, MENU_STORE = 2, @@ -45,14 +45,8 @@ struct KangaskhanStorageWork u16 unk4C[5]; MenuStruct unk58; unkStructFor8013AA0 unkA8; - /* 0xD8 */ OpenedFile *faceFile; - /* 0xDC */ u8 *faceData; // Written to but never read - 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; + /* 0xD8 */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unkE8; UnkTextStruct2 unkEC[4]; }; diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index 399ae7b7..cae35430 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -63,15 +63,8 @@ typedef struct KecleonBrosWork1 /* 0x34 */ MenuItem menuItems[8]; u16 unk74[8]; /* 0x84 */ MenuStruct menu; - /* 0xD4 */ OpenedFile *faceFile; - /* 0xD8 */ u8 *faceData; - u16 unkDC; - u16 unkDE; - u8 unkE0; - u8 unkE1; - u8 unkE2; - u8 unkE3; - OpenedFile **unkE4; + /* 0xD4 */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unkE4; UnkTextStruct2 unkE8[4]; } KecleonBrosWork1; diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index 15950be8..cdd82fb1 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -28,15 +28,8 @@ typedef struct MakuhitaDojoWork1 /* 0x14 */ s32 menuAction; MenuItem unk18[4]; u8 fill38[0x58 - 0x38]; - /* 0x58 */ OpenedFile *faceFile; - /* 0x5C */ u8 *faceData; - u16 unk60; - u16 unk62; - u8 unk64; - u8 unk65; - u8 unk66; - u8 unk67; - OpenedFile** unk68; + /* 0x58 */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct* unk68; UnkTextStruct2 unk6C[4]; } MakuhitaDojoWork1; diff --git a/include/post_office_guide1.h b/include/post_office_guide1.h index b80e89db..881f00eb 100644 --- a/include/post_office_guide1.h +++ b/include/post_office_guide1.h @@ -8,17 +8,11 @@ typedef struct PostOfficeWork { /* 0x0 */ u8 state; /* 0x4 */ s32 currMenuChoice; - /* 0x8 */ OpenedFile *faceFile; - /* 0xC */ u8 *faceData; - u16 unk10; - u16 unk12; - u8 unk14; - u8 unk15; - u8 unk16; + /* 0x8 */ struct UnkPrintFieldMsgStruct faceInfo; } PostOfficeWork; void CleanHelperPelipper(void); bool8 CreateHelperPelipperMenu(s16 speciesID); u32 HelperPelipperCallback(void); -#endif // GUARD_POST_OFFICE_GUIDE1_H \ No newline at end of file +#endif // GUARD_POST_OFFICE_GUIDE1_H diff --git a/include/save_write.h b/include/save_write.h index 8fa8be3e..5e100e97 100644 --- a/include/save_write.h +++ b/include/save_write.h @@ -9,14 +9,7 @@ typedef struct SavePakWrite /* 0x0 */ u32 state; s32 unk4; /* 0x8 */ u32 saveStatus; - /* 0xC */ OpenedFile *faceFile; - /* 0x10 */ u8 *faceData; - u16 unk14; - u16 unk16; - u8 unk18; - u8 unk19; - u8 unk1A; - u8 unk1B; + /* 0xC */ struct UnkPrintFieldMsgStruct faceInfo; /* 0x1C */ u16 pokeID; } SavePakWrite; @@ -25,4 +18,4 @@ u32 GetSavePakStatus(void); void PrepareSavePakWrite(s16 pokemonID); bool8 WriteSavePak(void); -#endif // GUARD_SAVE_WRITE_H \ No newline at end of file +#endif // GUARD_SAVE_WRITE_H diff --git a/include/structs/str_dungeon.h b/include/structs/str_dungeon.h index f3c7e1a1..5c9770e8 100644 --- a/include/structs/str_dungeon.h +++ b/include/structs/str_dungeon.h @@ -218,7 +218,7 @@ struct UnkStructDungeon1BDD4 u8 unk0[UNK_1BBD4_STR_COUNT][64]; u8 unk1C054[UNK_1BBD4_STR_COUNT]; // 0x280 u8 unk1C05E; // 0x28A - u8 fill1C05F; // 0x28B + u8 unk1C05F; // 0x28B s16 unk1C060; // 0x28C s16 unk1C062; // 0x29E s16 unk1C064; // 0x290 diff --git a/include/thank_you_wonder_mail.h b/include/thank_you_wonder_mail.h index e16fe78b..e1cd1816 100644 --- a/include/thank_you_wonder_mail.h +++ b/include/thank_you_wonder_mail.h @@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C4 UnkTextStruct2 unk35C[4]; UnkTextStruct2 unk3BC[4]; Item unk41C; - /* 0x420 */ OpenedFile *faceFile; - /* 0x424 */ u8 *faceData; - u16 unk428; - u16 unk42A; - u8 unk42C; - u8 unk42D; - u8 unk42E; + /* 0x420 */ struct UnkPrintFieldMsgStruct faceInfo; u32 unk430; /* 0x434 */ u8 formattedString[0x100]; /* 0x534 */ s32 wonderMailMethod; @@ -39,4 +33,4 @@ typedef struct WonderMailStruct_203B2C4 unkStruct_802F204 unk53C; } WonderMailStruct_203B2C4; -#endif // GUARD_THANK_YOU_WONDER_MAIL_H \ No newline at end of file +#endif // GUARD_THANK_YOU_WONDER_MAIL_H diff --git a/include/wigglytuff_shop3.h b/include/wigglytuff_shop3.h index f90797f3..27990142 100644 --- a/include/wigglytuff_shop3.h +++ b/include/wigglytuff_shop3.h @@ -52,15 +52,8 @@ typedef struct WigglytuffShop3Work MenuItem unk1C[8]; u16 unk5C[8]; MenuStruct unk6C; - /* 0xBC */ OpenedFile *faceFile; - /* 0xC0 */ u8 *faceData; - u16 unkC4; - u16 unkC6; - u8 unkC8; - u8 unkC9; - u8 unkCA; - u8 fillCB; - OpenedFile **unkCC; + /* 0xBC */ struct UnkPrintFieldMsgStruct faceInfo; + struct UnkPrintFieldMsgStruct *unkCC; UnkTextStruct2 unkD0[4]; u32 unk130; u32 unk134; diff --git a/include/wonder_mail.h b/include/wonder_mail.h index e821bb0f..a1d20869 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -25,13 +25,7 @@ typedef struct WonderMailStruct_203B2C0 UnkTextStruct2 unk35C[4]; UnkTextStruct2 unk3BC[4]; /* 0x41C */ u32 unkfill; // ItemSlot? - /* 0x420 */ OpenedFile *faceFile; - /* 0x424 */ u8 *faceData; - u16 unk428; - u16 unk42A; - u8 unk42C; - u8 unk42D; - u8 unk42E; + /* 0x420 */ struct UnkPrintFieldMsgStruct faceInfo; /* 0x430 */ u8 padding3[0x534 - 0x430]; u32 unk534; s32 unk538; // A7 << 3 @@ -40,4 +34,4 @@ typedef struct WonderMailStruct_203B2C0 /* 0x544 */ s16 speciesNum; } WonderMailStruct_203B2C0; -#endif // GUARD_WONDER_MAIL_H \ No newline at end of file +#endif // GUARD_WONDER_MAIL_H diff --git a/src/code_80140DC.c b/src/code_80140DC.c index 1f31a7d6..c23ac62c 100644 --- a/src/code_80140DC.c +++ b/src/code_80140DC.c @@ -61,12 +61,12 @@ u32 sub_8014128(void) { } u32 sub_801413C(void) -{ +{ return 0; } u32 sub_8014140(void) -{ +{ return 0; } @@ -91,18 +91,18 @@ void sub_801416C(s32 param_1,s32 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); } diff --git a/src/code_802DB28.c b/src/code_802DB28.c index 04579969..b99146a7 100644 --- a/src/code_802DB28.c +++ b/src/code_802DB28.c @@ -45,16 +45,16 @@ bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon) sub_8096EEC(sUnknown_203B2FC->jobInfo); sub_803C21C(sUnknown_203B2FC->jobInfo, &sUnknown_203B2FC->unk8); - sUnknown_203B2FC->faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies); - sUnknown_203B2FC->faceData = NULL; - sUnknown_203B2FC->unk44 = 0; - sUnknown_203B2FC->unk45 = 0; - sUnknown_203B2FC->unk46 = 0; - sUnknown_203B2FC->unk40 = 2; - sUnknown_203B2FC->unk42 = 8; + sUnknown_203B2FC->faceInfo.faceFile = GetDialogueSpriteDataPtr(sUnknown_203B2FC->jobInfo->clientSpecies); + sUnknown_203B2FC->faceInfo.faceData = NULL; + sUnknown_203B2FC->faceInfo.unkC = 0; + sUnknown_203B2FC->faceInfo.unkD = 0; + sUnknown_203B2FC->faceInfo.unkE = 0; + sUnknown_203B2FC->faceInfo.unk8 = 2; + sUnknown_203B2FC->faceInfo.unkA = 8; - if (sUnknown_203B2FC->faceFile != NULL) - sUnknown_203B2FC->faceData = sUnknown_203B2FC->faceFile->data; + if (sUnknown_203B2FC->faceInfo.faceFile != NULL) + sUnknown_203B2FC->faceInfo.faceData = sUnknown_203B2FC->faceInfo.faceFile->data; sub_802DC28(0); return TRUE; @@ -78,8 +78,8 @@ u32 sub_802DBD4(void) void sub_802DC00(void) { if (sUnknown_203B2FC != NULL) { - if (sUnknown_203B2FC->faceFile != NULL) - CloseFile(sUnknown_203B2FC->faceFile); + if (sUnknown_203B2FC->faceInfo.faceFile != NULL) + CloseFile(sUnknown_203B2FC->faceInfo.faceFile); MemoryFree(sUnknown_203B2FC); sUnknown_203B2FC = NULL; @@ -150,16 +150,16 @@ static void sub_802DC9C(void) } break; case 1: - xxx_info_box_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); + xxx_info_box_80141B4(sThanksForRescuingMe, 0, &sUnknown_203B2FC->faceInfo, 0x10D); break; case 2: - xxx_info_box_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceFile, 0x10D); + xxx_info_box_80141B4(sThanksForRescuingThem, 0, &sUnknown_203B2FC->faceInfo, 0x10D); break; case 3: - xxx_info_box_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceFile, 0x10D); + xxx_info_box_80141B4(sThanksForEscortingMe, 0, &sUnknown_203B2FC->faceInfo, 0x10D); break; case 5: - xxx_info_box_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceFile, 0x10D); + xxx_info_box_80141B4(sThanksForDelivering, 0, &sUnknown_203B2FC->faceInfo, 0x10D); break; case 4: index = FindItemInInventory(sUnknown_203B2FC->jobInfo->targetItem); @@ -167,7 +167,7 @@ static void sub_802DC9C(void) ShiftItemsDownFrom(index); FillInventoryGaps(); } - xxx_info_box_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceFile, 0x10D); + xxx_info_box_80141B4(sThanksForGetting, 0, &sUnknown_203B2FC->faceInfo, 0x10D); break; case 6: sub_802F204(&sUnknown_203B2FC->unk8, 1); diff --git a/src/code_80521D0.c b/src/code_80521D0.c index d9bf5ae1..b048fb1f 100644 --- a/src/code_80521D0.c +++ b/src/code_80521D0.c @@ -5,9 +5,13 @@ #include "code_803E46C.h" #include "code_80130A8.h" #include "code_800E9E4.h" +#include "code_803E668.h" +#include "input.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); void sub_80523A8(Entity *r0, const char *str, u8 r2); 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); +} + diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 54c84fca..7097b3d0 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -69,16 +69,16 @@ bool8 CreateFelicityBank(s32 mode) if (sFelicityBankWork->mode == FEL_MODE_ASLEEP) sFelicityBankWork->unkA4 = NULL; else - sFelicityBankWork->unkA4 = &sFelicityBankWork->faceFile; + sFelicityBankWork->unkA4 = &sFelicityBankWork->faceInfo; faceFile = GetDialogueSpriteDataPtr(MONSTER_PERSIAN); - sFelicityBankWork->faceFile = faceFile; - sFelicityBankWork->faceData = faceFile->data; - sFelicityBankWork->unkA0 = 0; - sFelicityBankWork->unkA1 = 0; - sFelicityBankWork->unkA2 = 0; - sFelicityBankWork->unk9C = 2; - sFelicityBankWork->unk9E = 8; + sFelicityBankWork->faceInfo.faceFile = faceFile; + sFelicityBankWork->faceInfo.faceData = faceFile->data; + sFelicityBankWork->faceInfo.unkC = 0; + sFelicityBankWork->faceInfo.unkD = 0; + sFelicityBankWork->faceInfo.unkE = 0; + sFelicityBankWork->faceInfo.unk8 = 2; + sFelicityBankWork->faceInfo.unkA = 8; UpdateFelicityBankState(FELICITY_BANK_INIT); return TRUE; } @@ -118,7 +118,7 @@ u32 FelicityBankCallback(void) void DestroyFelicityBank(void) { if (sFelicityBankWork != NULL) { - CloseFile(sFelicityBankWork->faceFile); + CloseFile(sFelicityBankWork->faceInfo.faceFile); MemoryFree(sFelicityBankWork); sFelicityBankWork = NULL; } @@ -424,7 +424,7 @@ static void CreateFelicityMoneySavingsHeader(u32 param_1) } void DrawTeamMoneyBox(u32 param_1) -{ +{ CallPrepareTextbox_8008C54(param_1); sub_80073B8(param_1); PrintStringOnWindow(6, 0, sMoney, param_1, 0); diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index a1f7f3bc..085e85c5 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -45,20 +45,20 @@ bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves) sGulpinShopWork->unk1C = moves[4].id; // 5th move..? if (mode == GULPIN_SHOP_MODE_AWAKE) - sGulpinShopWork->unk128 = &sGulpinShopWork->faceFile; + sGulpinShopWork->unk128 = &sGulpinShopWork->faceInfo; else sGulpinShopWork->unk128 = NULL; faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); - sGulpinShopWork->faceFile = faceFile; - sGulpinShopWork->faceData = faceFile->data; + sGulpinShopWork->faceInfo.faceFile = faceFile; + sGulpinShopWork->faceInfo.faceData = faceFile->data; - sGulpinShopWork->unk124 = 0; - sGulpinShopWork->unk125 = 0; - sGulpinShopWork->unk126 = 0; + sGulpinShopWork->faceInfo.unkC = 0; + sGulpinShopWork->faceInfo.unkD = 0; + sGulpinShopWork->faceInfo.unkE = 0; - sGulpinShopWork->unk120 = 2; - sGulpinShopWork->unk122 = 8; + sGulpinShopWork->faceInfo.unk8 = 2; + sGulpinShopWork->faceInfo.unkA = 8; SetGulpinShopState(0); return TRUE; } @@ -97,7 +97,7 @@ bool8 GulpinIsNextMoveLinked(void) void DestroyGulpinShop(void) { if (sGulpinShopWork != NULL) { - CloseFile(sGulpinShopWork->faceFile); + CloseFile(sGulpinShopWork->faceInfo.faceFile); MemoryFree(sGulpinShopWork); sGulpinShopWork = NULL; } @@ -180,15 +180,15 @@ static void sub_801EBC4(void) s32 which; s32 i; which = 0; - + MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); - + sGulpinShopWork->unk28[which].text = sForget; sGulpinShopWork->unk28[which].menuAction = 2; - + if (!IsAnyMoveLinked(sGulpinShopWork->unk1E, sGulpinShopWork->moves) || (s32)sGulpinShopWork->unk20 >= 4) sGulpinShopWork->unk68[0] = 1; - + which++; sGulpinShopWork->unk28[which].text = gCommonInfo[0]; sGulpinShopWork->unk28[which].menuAction = 3; @@ -216,7 +216,7 @@ static void sub_801EC7C(void) { s32 which; which = 0; - + MemoryFill16(sGulpinShopWork->unk68, 0, sizeof(sGulpinShopWork->unk68)); sGulpinShopWork->unk28[which].text = gCommonYes[0]; sGulpinShopWork->unk28[which].menuAction = 4; @@ -314,4 +314,4 @@ static void sub_801EDC0(void) break; } } -} \ No newline at end of file +} diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 3e6fff2f..21adce84 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -101,16 +101,16 @@ bool8 sub_801FB50(u32 mode) if (gUnknown_203B27C->mode == GULPIN_SHOP_MODE_ASLEEP) gUnknown_203B27C->unk17C = NULL; else - gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceFile; + gUnknown_203B27C->unk17C = &gUnknown_203B27C->faceInfo; faceFile = GetDialogueSpriteDataPtr(MONSTER_GULPIN); - gUnknown_203B27C->faceFile = faceFile; - gUnknown_203B27C->faceData = faceFile->data; - gUnknown_203B27C->unk178 = 0; - gUnknown_203B27C->unk179 = 0; - gUnknown_203B27C->unk17A = 0; - gUnknown_203B27C->unk174 = 2; - gUnknown_203B27C->unk176 = 8; + gUnknown_203B27C->faceInfo.faceFile = faceFile; + gUnknown_203B27C->faceInfo.faceData = faceFile->data; + gUnknown_203B27C->faceInfo.unkC = 0; + gUnknown_203B27C->faceInfo.unkD = 0; + gUnknown_203B27C->faceInfo.unkE = 0; + gUnknown_203B27C->faceInfo.unk8 = 2; + gUnknown_203B27C->faceInfo.unkA = 8; sub_801FDA8(0); return TRUE; } @@ -184,7 +184,7 @@ u32 sub_801FC40(void) void sub_801FD7C(void) { if (gUnknown_203B27C) { - CloseFile(gUnknown_203B27C->faceFile); + CloseFile(gUnknown_203B27C->faceInfo.faceFile); MemoryFree(gUnknown_203B27C); gUnknown_203B27C = NULL; } @@ -414,7 +414,7 @@ static void sub_801FF28(void) case 0x23: gUnknown_203B27C->fallbackState = 0x1f; 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); } @@ -546,15 +546,15 @@ static void CreateGulpinLinkMenu(void) } gUnknown_203B27C->unk7C[loopMax].menuAction = 7; } - + loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinLink; gUnknown_203B27C->unk7C[loopMax].menuAction = LINK_ACTION; - + loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinDelink; gUnknown_203B27C->unk7C[loopMax].menuAction = DE_LINK_ACTION; - + loopMax++; gUnknown_203B27C->unk7C[loopMax].text = gGulpinForget; gUnknown_203B27C->unk7C[loopMax].menuAction = FORGET_ACTION; @@ -978,12 +978,12 @@ static void sub_8020EB4(void) if(gTeamInventoryRef->teamMoney < 150) { PlayMenuSoundEffect(2); - sub_801FDA8(0x3); + sub_801FDA8(0x3); } else if(!sub_8093318(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves)) { PlayMenuSoundEffect(2); - sub_801FDA8(0x4); + sub_801FDA8(0x4); } else { @@ -1004,7 +1004,7 @@ static void sub_8020EB4(void) if(!sub_809333C(gUnknown_203B27C->moveIndex, gUnknown_203B27C->moves)) { PlayMenuSoundEffect(2); - sub_801FDA8(0x5); + sub_801FDA8(0x5); } else { diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index 5647d636..302b545a 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -65,16 +65,16 @@ bool8 CreateKangaskhanStorage(u32 mode) if (gKangaskhanStorageWork->mode == KANG_MODE_ASLEEP) gKangaskhanStorageWork->unkE8 = NULL; else - gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceFile; + gKangaskhanStorageWork->unkE8 = &gKangaskhanStorageWork->faceInfo; faceFile = GetDialogueSpriteDataPtr(MONSTER_KANGASKHAN); - gKangaskhanStorageWork->faceFile = faceFile; - gKangaskhanStorageWork->faceData = faceFile->data; - gKangaskhanStorageWork->unkE4 = FALSE; - gKangaskhanStorageWork->unkE5 = 0; - gKangaskhanStorageWork->unkE6 = 0; - gKangaskhanStorageWork->unkE0 = 2; - gKangaskhanStorageWork->unkE2 = 8; + gKangaskhanStorageWork->faceInfo.faceFile = faceFile; + gKangaskhanStorageWork->faceInfo.faceData = faceFile->data; + gKangaskhanStorageWork->faceInfo.unkC = FALSE; + gKangaskhanStorageWork->faceInfo.unkD = 0; + gKangaskhanStorageWork->faceInfo.unkE = 0; + gKangaskhanStorageWork->faceInfo.unk8 = 2; + gKangaskhanStorageWork->faceInfo.unkA = 8; UpdateKangaskhanStorageState(KANGASKHAN_STORAGE_INIT); return TRUE; } @@ -133,7 +133,7 @@ u32 KangaskhanStorageCallback(void) void DeleteKangaskhanStorage(void) { if (gKangaskhanStorageWork != NULL) { - CloseFile(gKangaskhanStorageWork->faceFile); + CloseFile(gKangaskhanStorageWork->faceInfo.faceFile); MemoryFree(gKangaskhanStorageWork); gKangaskhanStorageWork = NULL; } @@ -189,65 +189,65 @@ static void sub_8016FF8(void) switch (gKangaskhanStorageWork->currState) { case KANGASKHAN_STORAGE_INIT: BuildKangaskhanMainMenu(); - gKangaskhanStorageWork->unkE4 = TRUE; + gKangaskhanStorageWork->faceInfo.unkC = TRUE; sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_WELCOME], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case KANGASKHAN_STORAGE_MAIN_MENU: BuildKangaskhanMainMenu(); - gKangaskhanStorageWork->unkE4 = FALSE; + gKangaskhanStorageWork->faceInfo.unkC = FALSE; sub_8014248(gCommonKangStorage[gKangaskhanStorageWork->mode][KANG_DLG_ANYTHING_ELSE], 0, gKangaskhanStorageWork->menuAction1, gKangaskhanStorageWork->unk24, gKangaskhanStorageWork->unk4C, 4, 0, gKangaskhanStorageWork->unkE8, 12); break; case 2: 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); break; case 3: 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); break; case KANGASKHAN_STORAGE_NO_INV_ITEMS: 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); break; case KANGASKHAN_STORAGE_TOO_MANY_ITEMS: 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); break; case 7: 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); break; case 8: 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); break; case KANGASKHAN_STORAGE_IS_MONEY_USED_TM: sub_8090E14(gFormatItems, &gKangaskhanStorageWork->storedItem, 0); 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); break; case 10: 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); break; case 11: 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); break; case 12: 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); break; case 13: @@ -264,13 +264,13 @@ static void sub_8016FF8(void) case 17: sub_80177F8(); 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, gKangaskhanStorageWork->unkE8, 12); break; case 18: 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, gKangaskhanStorageWork->unkE8, 12); break; @@ -282,17 +282,17 @@ static void sub_8016FF8(void) else 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); break; case 20: 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); break; case 21: 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); break; case 22: @@ -333,13 +333,13 @@ static void sub_8016FF8(void) case 27: sub_80177F8(); 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, gKangaskhanStorageWork->unkE8, 12); break; case 28: 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, gKangaskhanStorageWork->unkE8, 12); break; @@ -351,7 +351,7 @@ static void sub_8016FF8(void) else 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); break; } diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index 1c9a13ed..0014a2fd 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -74,7 +74,7 @@ bool8 CreateKecleonBros(u32 mode) switch (mode) { case KECLEON_BROS_MODE_ITEMS_AWAKE: sKecleonBrosWork1->isKecleonItemShop = TRUE; - sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile; + sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceInfo; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); @@ -90,7 +90,7 @@ bool8 CreateKecleonBros(u32 mode) break; case KECLEON_BROS_MODE_WARES_AWAKE: sKecleonBrosWork1->isKecleonItemShop = FALSE; - sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceFile; + sKecleonBrosWork1->unkE4 = &sKecleonBrosWork1->faceInfo; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_KECLEON); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_KECLEON); monName = GetMonSpecies(MONSTER_KECLEON); @@ -109,13 +109,13 @@ bool8 CreateKecleonBros(u32 mode) } faceFile = GetDialogueSpriteDataPtr(MONSTER_KECLEON); - sKecleonBrosWork1->faceFile = faceFile; - sKecleonBrosWork1->faceData = faceFile->data; - sKecleonBrosWork1->unkE0 = 0; - sKecleonBrosWork1->unkE1 = 0; - sKecleonBrosWork1->unkE2 = 0; - sKecleonBrosWork1->unkDC = 2; - sKecleonBrosWork1->unkDE = 8; + sKecleonBrosWork1->faceInfo.faceFile = faceFile; + sKecleonBrosWork1->faceInfo.faceData = faceFile->data; + sKecleonBrosWork1->faceInfo.unkC = 0; + sKecleonBrosWork1->faceInfo.unkD = 0; + sKecleonBrosWork1->faceInfo.unkE = 0; + sKecleonBrosWork1->faceInfo.unk8 = 2; + sKecleonBrosWork1->faceInfo.unkA = 8; SetKecleonBrosState(KECLEON_STORE_INIT); return TRUE; } @@ -168,7 +168,7 @@ u32 KecleonBrosCallback(void) void DeleteKecleonBros(void) { if (sKecleonBrosWork1 != NULL) { - CloseFile(sKecleonBrosWork1->faceFile); + CloseFile(sKecleonBrosWork1->faceInfo.faceFile); MemoryFree(sKecleonBrosWork1); sKecleonBrosWork1 = NULL; } @@ -243,7 +243,7 @@ static void UpdateKecleonStoreDialogue(void) sub_8019E04(FALSE); xxx_info_box_80141B4(gCommonKecleonBros[sKecleonBrosWork1->mode][KECLEON_DLG_22], 0, sKecleonBrosWork1->unkE4, 0x10D); break; - case 3: + case 3: sKecleonBrosWork1->fallbackState = KECLEON_STORE_EXIT; sub_8019E04(FALSE); 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 (a0 == TRUE) - sKecleonBrosWork1->unkE0 = 1; + sKecleonBrosWork1->faceInfo.unkC = 1; else - sKecleonBrosWork1->unkE0 = 0; + sKecleonBrosWork1->faceInfo.unkC = 0; } else { if (a0 == TRUE) - sKecleonBrosWork1->unkE0 = 7; + sKecleonBrosWork1->faceInfo.unkC = 7; else - sKecleonBrosWork1->unkE0 = 6; + sKecleonBrosWork1->faceInfo.unkC = 6; } } diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index b444678f..cb58927b 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -92,7 +92,7 @@ bool8 MakuhitaDojo_New(u32 mode) if (sMakuhitaDojoWork1->dlgMode == MAKUHITA_DOJO_MODE_ASLEEP) sMakuhitaDojoWork1->unk68 = NULL; else - sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceFile; + sMakuhitaDojoWork1->unk68 = &sMakuhitaDojoWork1->faceInfo; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_MAKUHITA); CopyYellowMonsterNametoBuffer(gUnknown_202E1C8, MONSTER_MAKUHITA); @@ -100,13 +100,13 @@ bool8 MakuhitaDojo_New(u32 mode) strcpy(gUnknown_202E1C8 - 0x50, monName); faceFile = GetDialogueSpriteDataPtr(MONSTER_MAKUHITA); - sMakuhitaDojoWork1->faceFile = faceFile; - sMakuhitaDojoWork1->faceData = faceFile->data; - sMakuhitaDojoWork1->unk64 = 0; - sMakuhitaDojoWork1->unk65 = 0; - sMakuhitaDojoWork1->unk66 = 0; - sMakuhitaDojoWork1->unk60 = 2; - sMakuhitaDojoWork1->unk62 = 8; + sMakuhitaDojoWork1->faceInfo.faceFile = faceFile; + sMakuhitaDojoWork1->faceInfo.faceData = faceFile->data; + sMakuhitaDojoWork1->faceInfo.unkC = 0; + sMakuhitaDojoWork1->faceInfo.unkD = 0; + sMakuhitaDojoWork1->faceInfo.unkE = 0; + sMakuhitaDojoWork1->faceInfo.unk8 = 2; + sMakuhitaDojoWork1->faceInfo.unkA = 8; MakuhitaDojo_SetState(initialState); return TRUE; } @@ -141,7 +141,7 @@ s16 sub_802FED0(void) void MakuhitaDojo_Delete(void) { if (sMakuhitaDojoWork1 != NULL) { - CloseFile(sMakuhitaDojoWork1->faceFile); + CloseFile(sMakuhitaDojoWork1->faceInfo.faceFile); MemoryFree(sMakuhitaDojoWork1); sMakuhitaDojoWork1 = NULL; } @@ -291,7 +291,7 @@ static void sub_8030258(void) sMakuhitaDojoWork1->unk10 = sub_8030418(); sub_8030480(); MakuhitaDojo_SetState(5); - break; + break; case 2: sub_8030480(); sMakuhitaDojoWork1->unk10 = -1; diff --git a/src/mission_reward.c b/src/mission_reward.c index 24d8c781..99d11e0a 100644 --- a/src/mission_reward.c +++ b/src/mission_reward.c @@ -23,13 +23,7 @@ struct unkStruct_203B310 /* 0x9 */ u8 currTeamRank; // team rank /* 0xC */ s32 itemRewardIndex; unkStruct_802F204 *unk10; - /* 0x14 */ OpenedFile *faceFile; - /* 0x18 */ u8 *faceData; - s16 unk1C; - s16 unk1E; - u8 unk20; - u8 unk21; - u8 unk22; + /* 0x14 */ struct UnkPrintFieldMsgStruct faceInfo; UnkTextStruct2 unk24[4]; }; @@ -138,18 +132,18 @@ u32 sub_802F204(unkStruct_802F204 *r0, bool8 displayClientSprite) strcpy(gUnknown_202E5D8, preload->unk10->clientName); PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); - gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies); - gUnknown_203B310->faceData = NULL; + gUnknown_203B310->faceInfo.faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->clientSpecies); + gUnknown_203B310->faceInfo.faceData = NULL; - gUnknown_203B310->unk20 = 0; - gUnknown_203B310->unk21 = 0; - gUnknown_203B310->unk22 = 0; - gUnknown_203B310->unk1C = 2; - gUnknown_203B310->unk1E = 8; + gUnknown_203B310->faceInfo.unkC = 0; + gUnknown_203B310->faceInfo.unkD = 0; + gUnknown_203B310->faceInfo.unkE = 0; + gUnknown_203B310->faceInfo.unk8 = 2; + 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); @@ -175,8 +169,8 @@ void sub_802F2C0(void) { if(gUnknown_203B310 != NULL) { - if(gUnknown_203B310->faceFile != 0) - CloseFile(gUnknown_203B310->faceFile); + if(gUnknown_203B310->faceInfo.faceFile != 0) + CloseFile(gUnknown_203B310->faceInfo.faceFile); MemoryFree(gUnknown_203B310); gUnknown_203B310 = NULL; } @@ -214,7 +208,7 @@ void HandleMissionReward(void) u8 itemID; struct unkStruct_8090F58 local_20; Item item; - + switch(gUnknown_203B310->state) { case PREP_MONEY_REWARD: moneyReward = gUnknown_203B310->unk10->moneyReward; @@ -224,7 +218,7 @@ void HandleMissionReward(void) else { gFormatData_202DE30 = moneyReward; 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; } else { @@ -250,7 +244,7 @@ void HandleMissionReward(void) else { WriteFriendAreaName(gUnknown_202E628,gUnknown_203B310->unk10->friendAreaReward,FALSE); 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; } else { @@ -282,7 +276,7 @@ void HandleMissionReward(void) break; case PREP_ITEM_REWARD: itemID = gUnknown_203B310->unk10->itemRewards[0]; - if (itemID != ITEM_NOTHING) + if (itemID != ITEM_NOTHING) { if (gUnknown_203B310->unk10->moneyReward == 0) { item.id = itemID; @@ -298,7 +292,7 @@ void HandleMissionReward(void) local_20.unk8 = 1; sub_8090E14(gUnknown_202DEA8,&item,&local_20); 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; } else diff --git a/src/post_office_guide1.c b/src/post_office_guide1.c index dfa83817..2c2660a9 100644 --- a/src/post_office_guide1.c +++ b/src/post_office_guide1.c @@ -53,20 +53,20 @@ bool8 CreateHelperPelipperMenu(s16 speciesID) CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, speciesID); monName = GetMonSpecies(speciesID); strcpy(gAvailablePokemonNames, monName); - sPostOfficeHelper->faceFile = NULL; - sPostOfficeHelper->faceData = NULL; + sPostOfficeHelper->faceInfo.faceFile = NULL; + sPostOfficeHelper->faceInfo.faceData = NULL; if (speciesID != MONSTER_NONE) { faceFile = GetDialogueSpriteDataPtr(species_32); - sPostOfficeHelper->faceFile = faceFile; - sPostOfficeHelper->unk14 = 0; - sPostOfficeHelper->unk15 = 0; - sPostOfficeHelper->unk16 = 0; - sPostOfficeHelper->unk10 = 2; - sPostOfficeHelper->unk12 = 8; + sPostOfficeHelper->faceInfo.faceFile = faceFile; + sPostOfficeHelper->faceInfo.unkC = 0; + sPostOfficeHelper->faceInfo.unkD = 0; + sPostOfficeHelper->faceInfo.unkE = 0; + sPostOfficeHelper->faceInfo.unk8 = 2; + sPostOfficeHelper->faceInfo.unkA = 8; - if (sPostOfficeHelper->faceFile != NULL) - sPostOfficeHelper->faceData = sPostOfficeHelper->faceFile->data; + if (sPostOfficeHelper->faceInfo.faceFile != NULL) + sPostOfficeHelper->faceInfo.faceData = sPostOfficeHelper->faceInfo.faceFile->data; } sPostOfficeHelper->currMenuChoice = 0; @@ -111,8 +111,8 @@ u32 HelperPelipperCallback(void) void CleanHelperPelipper(void) { if (sPostOfficeHelper != NULL) { - if (sPostOfficeHelper->faceFile != NULL) - CloseFile(sPostOfficeHelper->faceFile); + if (sPostOfficeHelper->faceInfo.faceFile != NULL) + CloseFile(sPostOfficeHelper->faceInfo.faceFile); MemoryFree(sPostOfficeHelper); sPostOfficeHelper = NULL; } @@ -124,89 +124,89 @@ static void nullsub_39(void) static void UpdateHelperPelipperText(void) { - OpenedFile **faceFile; - faceFile = NULL; + struct UnkPrintFieldMsgStruct *faceInfoPtr; + faceInfoPtr = NULL; - if (sPostOfficeHelper->faceFile != NULL) - faceFile = &sPostOfficeHelper->faceFile; + if (sPostOfficeHelper->faceInfo.faceFile != NULL) + faceInfoPtr = &sPostOfficeHelper->faceInfo; switch (sPostOfficeHelper->state) { 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; case RETURN_TO_GET_HELP: switch (sPostOfficeHelper->currMenuChoice) { case GETTING_HELP: - xxx_info_box_80141B4(sGettingHelpExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sGettingHelpExplanation, 0, faceInfoPtr, 0x10d); break; case SEND_SOS_MAIL: - xxx_info_box_80141B4(sSendSOSMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sSendSOSMailExplanation, 0, faceInfoPtr, 0x10d); break; case RECEIVE_AOK_MAIL: - xxx_info_box_80141B4(sReceiveAOKMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sReceiveAOKMailExplanation, 0, faceInfoPtr, 0x10d); break; case SEND_THANK_YOU_MAIL: - xxx_info_box_80141B4(sSendThankYouMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sSendThankYouMailExplanation, 0, faceInfoPtr, 0x10d); break; default: break; } break; 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; case RETURN_TO_GO_RESCUE: switch (sPostOfficeHelper->currMenuChoice) { case RESCUE_PROCEDURES: - xxx_info_box_80141B4(sRescueProceduresExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sRescueProceduresExplanation, 0, faceInfoPtr, 0x10d); break; case RECEIVE_SOS_MAIL: - xxx_info_box_80141B4(sReceiveSOSMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sReceiveSOSMailExplanation, 0, faceInfoPtr, 0x10d); break; case SEND_AOK_MAIL: - xxx_info_box_80141B4(sSendAOKMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sSendAOKMailExplanation, 0, faceInfoPtr, 0x10d); break; case LEAVE_FOR_RESCUE: - xxx_info_box_80141B4(sLeaveForRescueExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sLeaveForRescueExplanation, 0, faceInfoPtr, 0x10d); break; case GET_THANK_YOU_MAIL: - xxx_info_box_80141B4(sGetThankYouMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sGetThankYouMailExplanation, 0, faceInfoPtr, 0x10d); break; default: break; } break; 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; 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; case RETURN_TO_START_MENU: switch (sPostOfficeHelper->currMenuChoice) { case POST_OFFICE: - xxx_info_box_80141B4(sPostOfficeExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sPostOfficeExplanation, 0, faceInfoPtr, 0x10d); break; case BULLETIN_BOARD: - xxx_info_box_80141B4(sBulletinBoardExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sBulletinBoardExplanation, 0, faceInfoPtr, 0x10d); break; case DELIVERY: - xxx_info_box_80141B4(sDeliveryExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sDeliveryExplanation, 0, faceInfoPtr, 0x10d); break; default: break; } break; 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; case RETURN_TO_FRIEND_RESCUE: switch (sPostOfficeHelper->currMenuChoice) { case FRIEND_RESCUE_INFO: - xxx_info_box_80141B4(sFriendRescueExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sFriendRescueExplanation, 0, faceInfoPtr, 0x10d); break; case DELETING_MAIL: - xxx_info_box_80141B4(sDeletingMailExplanation, 0, faceFile, 0x10d); + xxx_info_box_80141B4(sDeletingMailExplanation, 0, faceInfoPtr, 0x10d); break; default: break; @@ -345,4 +345,4 @@ static void ReturnToGetHelpMenu(void) if (sub_80144A4(&temp) == 0) UpdateHelperPelipperState(DISPLAY_GET_HELP_MENU); -} \ No newline at end of file +} diff --git a/src/save_write.c b/src/save_write.c index 469e8daf..8c8a8b46 100644 --- a/src/save_write.c +++ b/src/save_write.c @@ -14,30 +14,29 @@ void PrepareSavePakWrite(s16 pokemonID) { OpenedFile *file; s32 id_s32; - OpenedFile **preload_face; id_s32 = pokemonID; // had to cast for asr shift sub_80993D8(); sSavePakWrite = MemoryAlloc(sizeof(SavePakWrite), 5); sSavePakWrite->pokeID = id_s32; - sSavePakWrite->faceFile = NULL; - sSavePakWrite->faceData = NULL; + sSavePakWrite->faceInfo.faceFile = NULL; + sSavePakWrite->faceInfo.faceData = NULL; if (pokemonID != MONSTER_NONE) { file = GetDialogueSpriteDataPtr(pokemonID); - sSavePakWrite->faceFile = file; - sSavePakWrite->faceData = file->data; - sSavePakWrite->unk18 = 0; - sSavePakWrite->unk19 = 0; - sSavePakWrite->unk1A = 0; - sSavePakWrite->unk14 = 2; - sSavePakWrite->unk16 = 8; + sSavePakWrite->faceInfo.faceFile = file; + sSavePakWrite->faceInfo.faceData = file->data; + sSavePakWrite->faceInfo.unkC = 0; + sSavePakWrite->faceInfo.unkD = 0; + sSavePakWrite->faceInfo.unkE = 0; + sSavePakWrite->faceInfo.unk8 = 2; + sSavePakWrite->faceInfo.unkA = 8; } - if (sSavePakWrite->faceFile != 0) { - preload_face = &sSavePakWrite->faceFile; - xxx_info_box_80141B4(sSavingAdventure, 0, preload_face, 0x20); + if (sSavePakWrite->faceInfo.faceFile != 0) { + struct UnkPrintFieldMsgStruct *faceInfoPtr = &sSavePakWrite->faceInfo; + xxx_info_box_80141B4(sSavingAdventure, 0, faceInfoPtr, 0x20); } else xxx_info_box_80141B4(sSavingAdventure, 0, NULL, 0x20); @@ -47,13 +46,13 @@ void PrepareSavePakWrite(s16 pokemonID) bool8 WriteSavePak(void) { - OpenedFile **faceFile; + struct UnkPrintFieldMsgStruct *faceInfoPtr; u32 local_14; u32 other_stack; - faceFile = NULL; - if (sSavePakWrite->faceFile != NULL) - faceFile = &sSavePakWrite->faceFile; + faceInfoPtr = NULL; + if (sSavePakWrite->faceInfo.faceFile != NULL) + faceInfoPtr = &sSavePakWrite->faceInfo; switch (sSavePakWrite->state) { case 0: @@ -78,10 +77,10 @@ bool8 WriteSavePak(void) switch (sSavePakWrite->saveStatus) { case SAVE_COMPLETED: - if (sSavePakWrite->faceFile != NULL) - xxx_info_box_80141B4(sSaveCompleted, 0, faceFile, 0x101); + if (sSavePakWrite->faceInfo.faceFile != NULL) + xxx_info_box_80141B4(sSaveCompleted, 0, faceInfoPtr, 0x101); else - xxx_info_box_80141B4(sSaveCompleted, 0, faceFile, 0x101); + xxx_info_box_80141B4(sSaveCompleted, 0, faceInfoPtr, 0x101); sSavePakWrite->state = 5; break; @@ -90,10 +89,10 @@ bool8 WriteSavePak(void) sSavePakWrite->state = 6; break; default: - if (sSavePakWrite->faceFile != NULL) - xxx_info_box_80141B4(sSaveFailed, 0, faceFile, 0x101); + if (sSavePakWrite->faceInfo.faceFile != NULL) + xxx_info_box_80141B4(sSaveFailed, 0, faceInfoPtr, 0x101); else - xxx_info_box_80141B4(sSaveFailed, 0, faceFile, 0x101); + xxx_info_box_80141B4(sSaveFailed, 0, faceInfoPtr, 0x101); sSavePakWrite->state = 5; break; @@ -120,10 +119,10 @@ u32 GetSavePakStatus(void) void FinishWriteSavePak(void) { if (sSavePakWrite != NULL) { - if (sSavePakWrite->faceFile != NULL) - CloseFile(sSavePakWrite->faceFile); + if (sSavePakWrite->faceInfo.faceFile != NULL) + CloseFile(sSavePakWrite->faceInfo.faceFile); MemoryFree(sSavePakWrite); sSavePakWrite = NULL; } sub_80993E4(); -} \ No newline at end of file +} diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index e7c9a931..8e940cb9 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -252,13 +252,13 @@ u32 CreateThankYouMailPelipper(void) strcpy(gAvailablePokemonNames, monName); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - sUnknown_203B2C4->faceFile = faceFile; - sUnknown_203B2C4->faceData = faceFile->data; - sUnknown_203B2C4->unk42C = 0; - sUnknown_203B2C4->unk42D = 0; - sUnknown_203B2C4->unk42E = 0; - sUnknown_203B2C4->unk428 = 2; - sUnknown_203B2C4->unk42A = 8; + sUnknown_203B2C4->faceInfo.faceFile = faceFile; + sUnknown_203B2C4->faceInfo.faceData = faceFile->data; + sUnknown_203B2C4->faceInfo.unkC = 0; + sUnknown_203B2C4->faceInfo.unkD = 0; + sUnknown_203B2C4->faceInfo.unkE = 0; + sUnknown_203B2C4->faceInfo.unk8 = 2; + sUnknown_203B2C4->faceInfo.unkA = 8; for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ sUnknown_203B2C4->passwordBuffer[counter] = 0; @@ -419,7 +419,7 @@ void CleanThankYouMailPelipper(void) { if(sUnknown_203B2C4 != NULL) { - CloseFile(sUnknown_203B2C4->faceFile); + CloseFile(sUnknown_203B2C4->faceInfo.faceFile); MemoryFree(sUnknown_203B2C4); sUnknown_203B2C4 = NULL; sub_8030DE4(); @@ -445,34 +445,34 @@ void PrintThankYouMailLinkError(u32 errorCode) { switch(errorCode) { 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; 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; 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; 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; 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; 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; 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; case 1: case COMMS_NO_RESPONSE: case 5: 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; 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; case COMMS_GOOD: default: @@ -501,7 +501,7 @@ void DisplayThankYouMailCommsOutcome(void) case WONDER_MAIL_PASSWORD: case 6: // "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; case 4: default: @@ -810,15 +810,15 @@ void HandleThankYouMailPasswordMenu(void) switch(sub_8039068(PASSWORD_ENTRY_THANK_YOU_MAIL_MODE,sUnknown_203B2C4->passwordBuffer,&mail1)) { 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); break; 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); break; 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); break; case PASSWORD_ENTRY_THANK_YOU_MAIL_SUCCESS: @@ -1261,15 +1261,15 @@ void UpdateThankYouMailText(void) pokeStruct = GetPlayerPokemonStruct(); sub_80922B4(buffer1,pokeStruct->name, POKEMON_NAME_LENGTH); 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; case 0xe: // 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; case PROMPT_THANK_YOU_TO_SEND: // 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; case 0x10: if (sub_8030894() != 0) @@ -1339,7 +1339,7 @@ void UpdateThankYouMailText(void) break; case PROMPT_THANK_YOU_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; case PROCESS_THANK_YOU_PASSWORD: RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); @@ -1355,19 +1355,19 @@ void UpdateThankYouMailText(void) break; case 0x1b: // 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; case DISPLAY_THANK_YOU_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; case 0x24: // 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; case 0x20: // 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; case THANK_YOU_PASSWORD_SUCCESS: switch(sUnknown_203B2C4->wonderMailMethod) @@ -1376,7 +1376,7 @@ void UpdateThankYouMailText(void) case WONDER_MAIL_PASSWORD: case 6: // 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; case 4: break; @@ -1409,75 +1409,75 @@ void UpdateThankYouMailText(void) break; case 0x17: // 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; case PROMPT_CONNECT_GAME_LINK: // 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; case THANK_YOU_MAIL_COMMS_CLEANUP: pokeStruct2 = GetPlayerPokemonStruct(); sub_80922B4(buffer2, pokeStruct2->name, POKEMON_NAME_LENGTH); 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; case CONFIRM_ITEM_TO_SEND: // 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; case 0x29: // 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; case 0x2a: // 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; case PROMPT_ITEM_TO_SEND: // 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; case THANK_YOU_MAIL_STORAGE_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; case PROMPT_REWARD_ITEM_TO_SEND: // 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; case ITEM_EXISTS_ON_THANK_YOU_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; case PROMPT_RESEND_WITH_ATTACHED_ITEM: // 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; case NO_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; case THANK_YOU_MAIL_MAIN_MENU: // 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; case ANYTHING_ELSE_THANK_YOU_MAIN_MENU: // 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; case EXIT_THANK_YOU_MAIL_PRE: // 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; case SELECT_THANK_YOU_MAIL_COMMS: switch(sUnknown_203B2C4->wonderMailMode){ case WONDER_MAIL_MODE_SEND: // 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; case WONDER_MAIL_MODE_RECEIVE: // 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; diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index 637d2711..7ac224de 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -74,16 +74,16 @@ bool8 CreateWigglytuffShop(u32 mode) if (sWigglytuffShop3Work->mode == 1) sWigglytuffShop3Work->unkCC = NULL; else - sWigglytuffShop3Work->unkCC = &sWigglytuffShop3Work->faceFile; + sWigglytuffShop3Work->unkCC = &sWigglytuffShop3Work->faceInfo; file = GetDialogueSpriteDataPtr(MONSTER_WIGGLYTUFF); - sWigglytuffShop3Work->faceFile = file; - sWigglytuffShop3Work->faceData = file->data; - sWigglytuffShop3Work->unkC8 = 0; - sWigglytuffShop3Work->unkC9 = 0; - sWigglytuffShop3Work->unkCA = 0; - sWigglytuffShop3Work->unkC4 = 2; - sWigglytuffShop3Work->unkC6 = 8; + sWigglytuffShop3Work->faceInfo.faceFile = file; + sWigglytuffShop3Work->faceInfo.faceData = file->data; + sWigglytuffShop3Work->faceInfo.unkC = 0; + sWigglytuffShop3Work->faceInfo.unkD = 0; + sWigglytuffShop3Work->faceInfo.unkE = 0; + sWigglytuffShop3Work->faceInfo.unk8 = 2; + sWigglytuffShop3Work->faceInfo.unkA = 8; SetWigglytuffState(WIGGLYTUFF_INIT); return TRUE; } @@ -130,7 +130,7 @@ u32 sub_8021C5C(void) void CleanWigglytuffShop(void) { if (sWigglytuffShop3Work) { - CloseFile(sWigglytuffShop3Work->faceFile); + CloseFile(sWigglytuffShop3Work->faceInfo.faceFile); MemoryFree(sWigglytuffShop3Work); sWigglytuffShop3Work = NULL; } diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 11a76ffd..f2589b1b 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -203,13 +203,13 @@ u32 sub_8027F88(void) monName = GetMonSpecies(MONSTER_PELIPPER); strcpy(gAvailablePokemonNames, monName); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - sUnknown_203B2C0->faceFile = faceFile; - sUnknown_203B2C0->faceData = faceFile->data; - sUnknown_203B2C0->unk42C = 0; - sUnknown_203B2C0->unk42D = 0; - sUnknown_203B2C0->unk42E = 0; - sUnknown_203B2C0->unk428 = 2; - sUnknown_203B2C0->unk42A = 8; + sUnknown_203B2C0->faceInfo.faceFile = faceFile; + sUnknown_203B2C0->faceInfo.faceData = faceFile->data; + sUnknown_203B2C0->faceInfo.unkC = 0; + sUnknown_203B2C0->faceInfo.unkD = 0; + sUnknown_203B2C0->faceInfo.unkE = 0; + sUnknown_203B2C0->faceInfo.unk8 = 2; + sUnknown_203B2C0->faceInfo.unkA = 8; for(counter = 0; counter < PASSWORD_BUFFER_SIZE; counter++){ sUnknown_203B2C0->passwordBuffer[counter] = 0; } @@ -220,7 +220,7 @@ u32 sub_8027F88(void) u32 sub_8028078(void) { - + switch(sUnknown_203B2C0->state) { case 0x3c: sub_8029B34(); @@ -403,7 +403,7 @@ s32 sub_80282DC(u8 *r0) void sub_80282FC(void) { if (sUnknown_203B2C0 != NULL) { - CloseFile(sUnknown_203B2C0->faceFile); + CloseFile(sUnknown_203B2C0->faceInfo.faceFile); MemoryFree(sUnknown_203B2C0); sUnknown_203B2C0 = NULL; sub_8031E10(); @@ -432,13 +432,13 @@ void sub_8028348(void) sub_8031D70(sUnknown_203B2C0->mailIndex, 0); break; 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; 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; 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; case SENT_AOK_MAIL: switch(sUnknown_203B2C0->unk534) @@ -447,14 +447,14 @@ void sub_8028348(void) case 0x10: case 0xF: 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; case 0xE: break; } break; 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; case PROMPT_SELECT_HELPER_POKEMON: xxx_info_box_80141B4(gUnknown_80DDCBC, 0, 0,0x101); @@ -474,16 +474,16 @@ void sub_8028348(void) sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; 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; 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; 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; 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; case 0x2A: if(sub_8030894() == 0) @@ -494,19 +494,19 @@ void sub_8028348(void) } break; 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; 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; 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; 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; 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; case FRIEND_RESCUE_COMMUNICATING_PRE: nullsub_23(FALSE); @@ -540,7 +540,7 @@ void sub_8028348(void) break; } if(sUnknown_203B2C0->linkError == COMMS_GOOD) - { + { switch(sUnknown_203B2C0->unk40) { case 3: @@ -565,17 +565,17 @@ void sub_8028348(void) case 0x10: case 0xF: 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; case 0xE: break; } break; 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; 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; case 0x27: RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); @@ -587,30 +587,30 @@ void sub_8028348(void) switch(sUnknown_203B2C0->unk538) { 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; 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; 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; 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; 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; 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; 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; 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; case 0x1F: if(sub_8030894() == 0) @@ -644,58 +644,58 @@ void sub_8028348(void) } break; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; 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; case FRIEND_RESCUE_COUNTER_EXIT: break; @@ -719,37 +719,37 @@ void PrintFriendRescueCounterError(u32 errorCode) break; case 1: 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; 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; 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; case 5: - xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); + xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d); break; 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; 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; 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; 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; 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; case 14: - xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceFile, 0x10d); + xxx_info_box_80141B4(gWonderMailErrorText, 0, &sUnknown_203B2C0->faceInfo, 0x10d); break; 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; default: break; @@ -1370,22 +1370,22 @@ void sub_80293F4(void) switch(sub_8039068(PASSWORD_ENTRY_SOS_MAIL_MODE, (sUnknown_203B2C0->passwordBuffer), &mail)) { 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); break; 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); break; 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); break; case PASSWORD_ENTRY_SOS_MAIL_SUCCESS: sub_8095274(mail.unk10.unk10); mail.mailType = 2; 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); break; case 23: diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 299a16f1..5d55cdf0 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -23,14 +23,7 @@ struct unkStruct_203B2C8 // size: 0x140 /* 0x0 */ u8 currState; /* 0x1 */ u8 unk1; - /* 0x4 */ OpenedFile *faceFile; - /* 0x8 */ u8 *faceData; - /* 0xC */ u16 unkC; - /* 0xE */ u16 unkE; - /* 0x10 */ u8 unk10; - /* 0x11 */ u8 unk11; - /* 0x12 */ u8 unk12; - /* 0x13 */ u8 unk13; + /* 0x4 */ struct UnkPrintFieldMsgStruct faceInfo; /* 0x14 */ u8 teamName[4]; // Figure out size of this buffer u8 fill18[0x114 - 0x18]; unkStruct_802F204 unk114; @@ -94,13 +87,13 @@ s32 sub_802B2D4(void) sUnknown_203B2C8->unk1 = -1; CopyYellowMonsterNametoBuffer(gUnknown_202E5D8, MONSTER_PELIPPER); faceFile = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - sUnknown_203B2C8->faceFile = faceFile; - sUnknown_203B2C8->faceData = faceFile->data; - sUnknown_203B2C8->unk10 = 0; - sUnknown_203B2C8->unk11 = 0; - sUnknown_203B2C8->unk12 = 0; - sUnknown_203B2C8->unkC = 2; - sUnknown_203B2C8->unkE = 8; + sUnknown_203B2C8->faceInfo.faceFile = faceFile; + sUnknown_203B2C8->faceInfo.faceData = faceFile->data; + sUnknown_203B2C8->faceInfo.unkC = 0; + sUnknown_203B2C8->faceInfo.unkD = 0; + sUnknown_203B2C8->faceInfo.unkE = 0; + sUnknown_203B2C8->faceInfo.unk8 = 2; + sUnknown_203B2C8->faceInfo.unkA = 8; if (sub_8099394(&sUnknown_203B2C8->unk1) != 1) { return 0; } @@ -139,7 +132,7 @@ void sub_802B3B8(void) { if(sUnknown_203B2C8 != NULL) { - CloseFile(sUnknown_203B2C8->faceFile); + CloseFile(sUnknown_203B2C8->faceInfo.faceFile); MemoryFree(sUnknown_203B2C8); sUnknown_203B2C8 = NULL; } @@ -168,7 +161,7 @@ void sub_802B3E0(void) // Print and expand placeholders? sprintfStatic(sUnknown_203B2C8->teamName,gUnknown_80DF9F8,teamNameBuffer); // 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; case 1: monName = GetMonSpecies(MONSTER_PELIPPER); @@ -189,12 +182,12 @@ void sub_802B3E0(void) case 2: // I hope you will keep on rescuing your friends // 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; case 4: // Oh yes, that's right. Please don't forget to send an A-OK Mail // 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 5: break; diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index 580d9c06..6e1ac345 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -19,13 +19,7 @@ struct unkStruct_203B328 MenuStruct unk8; MenuStruct unk58; UnkTextStruct2 unkA8[4]; - /* 0x108 */ OpenedFile *faceFile; - /* 0x10C */ u8 *faceData; - u16 unk110; - u16 unk112; - /* 0x114 */ u8 unk114; - /* 0x115 */ u8 unk115; - /* 0x116 */ u8 unk116; + /* 0x108 */ struct UnkPrintFieldMsgStruct faceInfo; u32 wonderMailType; }; static EWRAM_DATA_2 struct unkStruct_203B328 *gUnknown_203B328 = {0}; @@ -41,14 +35,14 @@ enum MenuActions { DELETE_ALL_MAIL_ACTION, // Unused }; -const MenuItem gUnknown_80E0948[] = +const MenuItem gUnknown_80E0948[] = { {"Yes", YES_ACTION}, {"No", NO_ACTION}, {NULL, CANCEL_ACTION} }; -const MenuItem gUnknown_80E0968[] = +const MenuItem gUnknown_80E0968[] = { {"Delete", DELETE_ACTION}, {"Info", INFO_ACTION}, @@ -106,7 +100,7 @@ enum States { bool8 sub_8030F58(u32 wonderMailType) { OpenedFile *file; - + ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); if (gUnknown_203B328 == NULL) { @@ -115,24 +109,24 @@ bool8 sub_8030F58(u32 wonderMailType) } gUnknown_203B328->wonderMailType = wonderMailType; file = GetDialogueSpriteDataPtr(MONSTER_PELIPPER); - gUnknown_203B328->faceFile = file; - gUnknown_203B328->faceData = file->data; - gUnknown_203B328->unk114 = 0; - gUnknown_203B328->unk115 = 0; - gUnknown_203B328->unk116 = 0; - gUnknown_203B328->unk110 = 2; - gUnknown_203B328->unk112 = 8; + gUnknown_203B328->faceInfo.faceFile = file; + gUnknown_203B328->faceInfo.faceData = file->data; + gUnknown_203B328->faceInfo.unkC = 0; + gUnknown_203B328->faceInfo.unkD = 0; + gUnknown_203B328->faceInfo.unkE = 0; + gUnknown_203B328->faceInfo.unk8 = 2; + gUnknown_203B328->faceInfo.unkA = 8; if (HasNoWonderMailType(wonderMailType)) { switch(wonderMailType) { case WONDER_MAIL_TYPE_SOS_1: // "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; case WONDER_MAIL_TYPE_AOK: // "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; } gUnknown_203B328->state = 5; @@ -172,7 +166,7 @@ void sub_80310B4(void) { sub_803084C(); if (gUnknown_203B328 != NULL) { - CloseFile(gUnknown_203B328->faceFile); + CloseFile(gUnknown_203B328->faceInfo.faceFile); MemoryFree(gUnknown_203B328); gUnknown_203B328 = NULL; } @@ -274,7 +268,7 @@ static void sub_8031300(void) static void HandleWonderMail6MainMenu(void) { s32 menuAction; - + menuAction = 0; sub_8030768(0); if (!sub_8012FD8(&gUnknown_203B328->unk8)) { @@ -304,7 +298,7 @@ static void HandleWonderMail6DeleteMailMenu(u32 state) s32 index; s32 menuAction; unkStruct_203B480 *unused; - + menuAction = 0; sub_8030768(0); sub_8012FD8(&gUnknown_203B328->unk8);