diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2018-12-03 08:41:06 -0500 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2018-12-03 08:41:06 -0500 |
commit | 208c6054475030ce48482c34647bd5728172b074 (patch) | |
tree | 7a3961f4d750fc12a34b067bab2f14c173151263 | |
parent | 9ff5f62747589e403bc8bf215f8ebe3f5ba82353 (diff) |
sub_8146604
-rw-r--r-- | asm/mevent_8145654.s | 218 | ||||
-rw-r--r-- | include/link_rfu.h | 1 | ||||
-rw-r--r-- | src/mevent_8145654.c | 64 |
3 files changed, 65 insertions, 218 deletions
diff --git a/asm/mevent_8145654.s b/asm/mevent_8145654.s index 31a8de0c3..b5e5dc019 100644 --- a/asm/mevent_8145654.s +++ b/asm/mevent_8145654.s @@ -5,224 +5,6 @@ .text - thumb_func_start sub_8146604 -sub_8146604: @ 8146604 - push {r4,r5,lr} - sub sp, 0x8 - adds r2, r0, 0 - ldr r5, =gUnknown_203F3CC - ldr r0, [r5] - cmp r0, 0 - bne _0814661C - movs r0, 0x1 - negs r0, r0 - b _081467E0 - .pool -_0814661C: - movs r4, 0xE0 - lsls r4, 1 - adds r0, r4 - ldrb r0, [r0] - lsrs r0, 1 - cmp r0, 0x6 - bls _0814662C - b _081467AA -_0814662C: - lsls r0, 2 - ldr r1, =_0814663C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814663C: - .4byte _08146658 - .4byte _0814666A - .4byte _081466AC - .4byte _0814670C - .4byte _0814673C - .4byte _08146778 - .4byte _08146788 -_08146658: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - b _081467C4 -_0814666A: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _08146676 - b _081467DE -_08146676: - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x40 - movs r1, 0 - bl SetGpuReg - movs r0, 0x44 - movs r1, 0 - bl SetGpuReg - movs r0, 0x48 - movs r1, 0 - bl SetGpuReg - movs r0, 0x4A - movs r1, 0 - bl SetGpuReg - movs r1, 0x80 - lsls r1, 6 - movs r0, 0 - bl ClearGpuRegBits - b _081467C4 -_081466AC: - movs r4, 0x1E - str r4, [sp] - movs r5, 0x14 - str r5, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r5, 0x18 - str r5, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r5, [sp, 0x4] - movs r0, 0x3 - 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 - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _081467C4 -_0814670C: - movs r0, 0x1 - bl HideBg - movs r0, 0x2 - bl HideBg - ldr r4, =gUnknown_203F3CC - ldr r0, [r4] - movs r1, 0xE5 - lsls r1, 1 - adds r0, r1 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r4] - movs r2, 0xE4 - lsls r2, 1 - adds r0, r2 - ldrb r0, [r0] - bl RemoveWindow - b _081467C4 - .pool -_0814673C: - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - ldr r4, =gUnknown_203F3CC - ldr r0, [r4] - ldr r2, =0x000001c1 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _081467C4 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r2, =0x000001c1 - adds r1, r0, r2 - movs r0, 0xFF - strb r0, [r1] - b _081467C4 - .pool -_08146778: - ldr r0, =gUnknown_203F3B8 - ldrb r0, [r0] - adds r1, r2, 0 - bl sub_8142344 - b _081467C4 - .pool -_08146788: - bl sub_8142420 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - b _081467C4 -_081467AA: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _081467DE - ldr r0, [r5] - adds r0, r4 - ldrb r2, [r0] - movs r1, 0x1 - ands r1, r2 - strb r1, [r0] - movs r0, 0x1 - b _081467E0 -_081467C4: - ldr r0, =gUnknown_203F3CC - ldr r2, [r0] - movs r0, 0xE0 - lsls r0, 1 - adds r2, r0 - ldrb r3, [r2] - lsrs r1, r3, 1 - adds r1, 0x1 - lsls r1, 1 - movs r0, 0x1 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081467DE: - movs r0, 0 -_081467E0: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8146604 - thumb_func_start sub_81467EC sub_81467EC: @ 81467EC push {r4,r5,lr} diff --git a/include/link_rfu.h b/include/link_rfu.h index 065d23f9f..6e54fcc6c 100644 --- a/include/link_rfu.h +++ b/include/link_rfu.h @@ -4,5 +4,6 @@ void sub_8142504(const u8 *str); bool32 mevent_0814257C(u8 * cmdPtr, const u8 * src); void sub_80FA190(void); +void sub_8142420(void); #endif //GUARD_LINK_RFU_H diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c index 3d7f6d3ca..5161d5380 100644 --- a/src/mevent_8145654.c +++ b/src/mevent_8145654.c @@ -10,6 +10,7 @@ #include "mystery_gift_menu.h" #include "menu_indicators.h" #include "string_util.h" +#include "link_rfu.h" #include "mevent.h" struct UnkStruct_8467FB8 @@ -574,3 +575,66 @@ s32 sub_8146318(void) ++gUnknown_203F3CC->unk_01C0_1; return 0; } + +s32 sub_8146604(bool32 flag) +{ + if (gUnknown_203F3CC == NULL) + return -1; + switch (gUnknown_203F3CC->unk_01C0_1) + { + case 0: + BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); + break; + case 1: + if (UpdatePaletteFade()) + return 0; + ChangeBgY(2, 0, 0); + SetGpuReg(REG_OFFSET_WIN0H, 0); + SetGpuReg(REG_OFFSET_WIN0V, 0); + SetGpuReg(REG_OFFSET_WININ, 0); + SetGpuReg(REG_OFFSET_WINOUT, 0); + ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON); + 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, 24); + FillBgTilemapBufferRect_Palette0(3, 0x000, 0, 0, 30, 24); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + CopyBgTilemapBufferToVram(3); + break; + case 3: + HideBg(1); + HideBg(2); + RemoveWindow(gUnknown_203F3CC->unk_01C8[1]); + RemoveWindow(gUnknown_203F3CC->unk_01C8[0]); + break; + case 4: + ChangeBgY(2, 0, 0); + ChangeBgY(3, 0, 0); + if (gUnknown_203F3CC->unk_01C1 != 0xFF) + { + RemoveScrollIndicatorArrowPair(gUnknown_203F3CC->unk_01C1); + gUnknown_203F3CC->unk_01C1 = 0xFF; + } + break; + case 5: + sub_8142344(gUnknown_203F3B8, flag); + break; + case 6: + sub_8142420(); + CopyBgTilemapBufferToVram(0); + CopyBgTilemapBufferToVram(3); + BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); + break; + default: + if (UpdatePaletteFade()) + return 0; + gUnknown_203F3CC->unk_01C0_1 = 0; + return 1; + } + ++gUnknown_203F3CC->unk_01C0_1; + return 0; +} |