diff options
-rw-r--r-- | asm/mevent_8145654.s | 161 | ||||
-rw-r--r-- | include/mystery_gift_menu.h | 3 | ||||
-rw-r--r-- | include/pokemon_icon.h | 1 | ||||
-rw-r--r-- | src/mevent_8145654.c | 57 | ||||
-rw-r--r-- | sym_ewram.txt | 7 |
5 files changed, 62 insertions, 167 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s index 80f9f6d3d..b831c9e87 100644 --- a/asm/mevent_8145654.s +++ b/asm/mevent_8145654.s @@ -5,167 +5,6 @@ .text - thumb_func_start sub_814593C -sub_814593C: @ 814593C - push {r4,r5,lr} - sub sp, 0x8 - adds r2, r0, 0 - ldr r5, =gUnknown_203F3C8 - ldr r0, [r5] - cmp r0, 0 - bne _08145954 - movs r0, 0x1 - negs r0, r0 - b _08145A8C - .pool -_08145954: - movs r4, 0xBA - lsls r4, 1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08145962 - b _08145A64 -_08145962: - lsls r0, 2 - ldr r1, =_08145970 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08145970: - .4byte _0814598C - .4byte _0814599E - .4byte _081459AA - .4byte _081459F2 - .4byte _08145A30 - .4byte _08145A3A - .4byte _08145A4C -_0814598C: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _08145A7A -_0814599E: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _08145A7A - b _08145A8A -_081459AA: - movs r5, 0x1E - str r5, [sp] - movs r4, 0x14 - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r5, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _08145A7A -_081459F2: - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - ldr r4, =gUnknown_203F3C8 - ldr r0, [r4] - movs r1, 0xBD - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - movs r1, 0xBC - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - movs r1, 0xBB - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - bl RemoveWindow - b _08145A7A - .pool -_08145A30: - bl sub_81461D8 - bl FreeMonIconPalettes - b _08145A7A -_08145A3A: - ldr r0, =gUnknown_203F3B8 - ldrb r0, [r0] - adds r1, r2, 0 - bl sub_8142344 - b _08145A7A - .pool -_08145A4C: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _08145A7A -_08145A64: - bl UpdatePaletteFade - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08145A8A - ldr r0, [r5] - adds r0, r4 - strb r1, [r0] - movs r0, 0x1 - b _08145A8C -_08145A7A: - ldr r0, =gUnknown_203F3C8 - ldr r1, [r0] - movs r0, 0xBA - lsls r0, 1 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08145A8A: - movs r0, 0 -_08145A8C: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_814593C - thumb_func_start sub_8145A98 sub_8145A98: @ 8145A98 push {r4-r7,lr} diff --git a/include/mystery_gift_menu.h b/include/mystery_gift_menu.h index 17af9ce57..24bf85a13 100644 --- a/include/mystery_gift_menu.h +++ b/include/mystery_gift_menu.h @@ -1,6 +1,9 @@ #ifndef GUARD_MYSTERY_GIFT_MENU_H #define GUARD_MYSTERY_GIFT_MENU_H +extern bool8 gUnknown_203F3B8; + void sub_81422FC(void); +void sub_8142344(bool8, bool32); #endif //GUARD_MYSTERY_GIFT_MENU_H diff --git a/include/pokemon_icon.h b/include/pokemon_icon.h index cc6c578fe..2c2edcc7c 100644 --- a/include/pokemon_icon.h +++ b/include/pokemon_icon.h @@ -11,5 +11,6 @@ u8 sub_80D2D78(u16 iconId, void callback(struct Sprite *), u16 x, u16 y, u16 a4, void sub_80D2FF0(u16 iconId); void sub_80D2EF8(struct Sprite *sprite); void sub_809707C(void); +void FreeMonIconPalettes(void); #endif // GUARD_POKEMON_ICON_H diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 3477543a8..6c51f9091 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -5,6 +5,7 @@ #include "malloc.h" #include "menu.h" #include "pokemon_icon.h" +#include "mystery_gift_menu.h" #include "mevent.h" struct UnkStruct_8467FB8 @@ -28,11 +29,18 @@ struct UnkStruct_203F3C8 /*045C*/ u8 buffer_045C[0x1000]; }; +struct UnkStruct_203F3CC +{ + /*0000*/ u8 filler_0000[0x13a4]; +}; + EWRAM_DATA struct UnkStruct_203F3C8 * gUnknown_203F3C8 = NULL; +EWRAM_DATA struct UnkStruct_203F3CC * gUnknown_203F3CC = NULL; void sub_8145A98(void); void sub_8145D18(u8 bgId); void sub_8146060(void); +void sub_81461D8(void); extern const struct WindowTemplate gUnknown_8467074[3]; @@ -130,3 +138,52 @@ s32 sub_814571C(void) ++gUnknown_203F3C8->unk_0174; return 0; } + +s32 sub_814593C(bool32 flag) +{ + if (gUnknown_203F3C8 == NULL) + return -1; + switch (gUnknown_203F3C8->unk_0174) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + break; + case 2: + FillBgTilemapBufferRect_Palette0(0, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20); + FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(gUnknown_203F3C8->unk_017A); + RemoveWindow(gUnknown_203F3C8->unk_0178); + RemoveWindow(gUnknown_203F3C8->unk_0176); + break; + case 4: + sub_81461D8(); + FreeMonIconPalettes(); + break; + case 5: + sub_8142344(gUnknown_203F3B8, flag); + break; + case 6: + CopyBgTilemapBufferToVram(0); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_203F3C8->unk_0174 = 0; + return 1; + } + ++gUnknown_203F3C8->unk_0174; + return 0; +} diff --git a/sym_ewram.txt b/sym_ewram.txt index b12c9d4a6..9e638c025 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -1709,12 +1709,7 @@ gUnknown_203F3B8: @ 203F3B8 .include "src/mevent.o" .include "src/mevent_server_helpers.o" .include "src/mevent_server.o" - -gUnknown_203F3C8: @ 203F3C8 - .space 0x4 - -gUnknown_203F3CC: @ 203F3CC - .space 0x4 + .include "src/mevent_8145654.o" gUnknown_203F3D0: @ 203F3D0 .space 0x4 |