diff options
-rwxr-xr-x | asm/pokeblock.s | 193 | ||||
-rwxr-xr-x | src/pokeblock.c | 82 |
2 files changed, 82 insertions, 193 deletions
diff --git a/asm/pokeblock.s b/asm/pokeblock.s index b99780edb..3244b3586 100755 --- a/asm/pokeblock.s +++ b/asm/pokeblock.s @@ -6,199 +6,6 @@ .text - thumb_func_start sub_810BF38 -sub_810BF38: @ 810BF38 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x5 - bl PlaySE - ldr r2, _0810BF6C @ =gSprites - ldr r0, _0810BF70 @ =0x02000000 - ldr r1, _0810BF74 @ =0x0001fffe - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _0810BF78 @ =sub_810C8D4 - str r1, [r0] - adds r0, r4, 0 - bl sub_810BDAC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0810BF6C: .4byte gSprites -_0810BF70: .4byte 0x02000000 -_0810BF74: .4byte 0x0001fffe -_0810BF78: .4byte sub_810C8D4 - thumb_func_end sub_810BF38 - - thumb_func_start sub_810BF7C -sub_810BF7C: @ 810BF7C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r4, r5, 0 - ldr r0, _0810BFB8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r3, 0x80 - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810BF94 - b _0810C0B8 -_0810BF94: - ldr r2, _0810BFBC @ =gMain - ldrh r1, [r2, 0x30] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0810BFCE - ldr r4, _0810BFC0 @ =gUnknown_02039248 - ldrb r0, [r4] - cmp r0, 0 - beq _0810BFC4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFB8: .4byte gPaletteFade -_0810BFBC: .4byte gMain -_0810BFC0: .4byte gUnknown_02039248 -_0810BFC4: - ldrb r0, [r4, 0x1] - cmp r0, 0 - beq _0810C0B8 - subs r0, 0x1 - b _0810C002 -_0810BFCE: - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _0810C012 - ldr r4, _0810BFF0 @ =gUnknown_02039248 - ldrb r0, [r4] - ldrb r1, [r4, 0x3] - cmp r0, r1 - beq _0810BFF4 - movs r0, 0x5 - movs r1, 0x14 - bl sub_810BD64 - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - b _0810C00A - .align 2, 0 -_0810BFF0: .4byte gUnknown_02039248 -_0810BFF4: - ldrb r1, [r4, 0x1] - ldrb r0, [r4] - adds r0, r1, r0 - ldrb r2, [r4, 0x2] - cmp r0, r2 - beq _0810C0B8 - adds r0, r1, 0x1 -_0810C002: - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x1] - bl sub_810BB88 -_0810C00A: - movs r0, 0 - bl sub_810BF38 - b _0810C0B8 -_0810C012: - ldrh r1, [r2, 0x2E] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0810C05C - ldr r4, _0810C050 @ =gUnknown_02039248 - ldrb r0, [r4, 0x1] - ldrb r1, [r4] - adds r0, r1 - ldrb r1, [r4, 0x2] - cmp r0, r1 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_810BDAC - ldr r1, _0810C054 @ =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldrb r1, [r4, 0x1] - ldrb r2, [r4] - adds r1, r2 - strh r1, [r0, 0x8] - ldr r1, _0810C058 @ =sub_810C0C8 - str r1, [r0] - b _0810C0B8 - .align 2, 0 -_0810C050: .4byte gUnknown_02039248 -_0810C054: .4byte gTasks -_0810C058: .4byte sub_810C0C8 -_0810C05C: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0810C09C - movs r0, 0x5 - bl PlaySE - ldr r0, _0810C088 @ =gUnknown_02039248 - ldrb r1, [r0, 0x1] - ldrb r2, [r0] - adds r1, r2 - ldrb r0, [r0, 0x2] - cmp r1, r0 - bne _0810C094 - ldr r1, _0810C08C @ =gScriptResult - ldr r2, _0810C090 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r5, 0 - bl sub_810C31C - b _0810C0B8 - .align 2, 0 -_0810C088: .4byte gUnknown_02039248 -_0810C08C: .4byte gScriptResult -_0810C090: .4byte 0x0000ffff -_0810C094: - adds r0, r5, 0 - bl sub_810C368 - b _0810C0B8 -_0810C09C: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0810C0B8 - movs r0, 0x5 - bl PlaySE - ldr r1, _0810C0C0 @ =gScriptResult - ldr r2, _0810C0C4 @ =0x0000ffff - adds r0, r2, 0 - strh r0, [r1] - adds r0, r4, 0 - bl sub_810C31C -_0810C0B8: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0810C0C0: .4byte gScriptResult -_0810C0C4: .4byte 0x0000ffff - thumb_func_end sub_810BF7C - thumb_func_start sub_810C0C8 sub_810C0C8: @ 810C0C8 push {r4,r5,lr} diff --git a/src/pokeblock.c b/src/pokeblock.c index e7405349f..e22752253 100755 --- a/src/pokeblock.c +++ b/src/pokeblock.c @@ -5,6 +5,7 @@ #include "global.h" #include "rom4.h" #include "sprite.h" +#include "script.h" #include "strings.h" #include "task.h" #include "unknown_task.h" @@ -19,6 +20,8 @@ #include "item_menu.h" #include "item.h" #include "items.h" +#include "sound.h" +#include "songs.h" #include "pokeblock.h" // rodata @@ -550,3 +553,82 @@ void sub_810BDAC(bool8 flag) MenuZeroFillWindowRect(11, 17, 12, 18); } } + +void sub_810C8D4(struct Sprite *); + +void sub_810BF38(bool8 flag) +{ + PlaySE(SE_SELECT); + gSprites[ewram[0x1fffe]].callback = sub_810C8D4; + sub_810BDAC(flag); +} + +void sub_810C0C8(u8); +void sub_810C31C(u8); +void sub_810C368(u8); + +void sub_810BF7C(u8 taskId) +{ + if (!gPaletteFade.active) + { + if (gMain.newAndRepeatedKeys & DPAD_UP) + { + if (gUnknown_02039248[0] != 0) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]--; + sub_810BF38(FALSE); + } + else if (gUnknown_02039248[1] != 0) + { + gUnknown_02039248[1]--; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(FALSE); + } + } + else if (gMain.newAndRepeatedKeys & DPAD_DOWN) + { + if (gUnknown_02039248[0] != gUnknown_02039248[3]) + { + sub_810BD64(5, 20); + gUnknown_02039248[0]++; + sub_810BF38(FALSE); + } + else if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2]) + { + gUnknown_02039248[1]++; + sub_810BB88(gUnknown_02039248[1]); + sub_810BF38(FALSE); + } + } + else if (gMain.newKeys & SELECT_BUTTON) + { + if (gUnknown_02039248[1] + gUnknown_02039248[0] != gUnknown_02039248[2]) + { + PlaySE(SE_SELECT); + sub_810BDAC(TRUE); + gTasks[taskId].data[0] = gUnknown_02039248[1] + gUnknown_02039248[0]; + gTasks[taskId].func = sub_810C0C8; + } + } + else if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_02039248[1] + gUnknown_02039248[0] == gUnknown_02039248[2]) + { + gScriptResult = 0xffff; + sub_810C31C(taskId); + } + else + { + sub_810C368(taskId); + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gScriptResult = 0xffff; + sub_810C31C(taskId); + } + } +} |