diff options
author | DizzyEggg <jajkodizzy@wp.pl> | 2019-08-04 00:02:13 +0200 |
---|---|---|
committer | DizzyEggg <jajkodizzy@wp.pl> | 2019-08-04 00:02:13 +0200 |
commit | 16415792972c3fbdd498dc3e0878d6e8bb0f9abe (patch) | |
tree | 3920b4ab1335ef7cfad3eb639e3e41ffe1a7defd | |
parent | 81a11c4fc9087d54e68694b89f1d8af791c2ae8e (diff) | |
parent | ce941e6f56803b389c20a52c0a5b89f5ade12b7a (diff) |
Merge branch 'master' into pok_jump
44 files changed, 6488 insertions, 12647 deletions
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s deleted file mode 100755 index 8203696be..000000000 --- a/asm/dodrio_berry_picking.s +++ /dev/null @@ -1,7859 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_8026988 -sub_8026988: @ 8026988 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r1, r0, 0 - adds r1, 0x44 - adds r0, 0x48 - ldrb r0, [r0] - mov r8, r0 - ldrb r6, [r1] - cmp r6, r8 - bcs _08026A7A - ldr r0, =gUnknown_082F449C - mov r9, r0 -_080269A8: - ldr r0, =gUnknown_02022C98 - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0x28 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - ldr r2, =0x000031a0 - adds r0, r2 - adds r7, r3, r0 - movs r0, 0xB - adds r2, r1, 0 - muls r2, r0 - adds r2, r6, r2 - adds r3, 0x24 - ldrb r1, [r3] - subs r1, 0x1 - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 3 - subs r0, r1 - adds r2, r0 - add r2, r9 - ldrb r4, [r2] - adds r0, r7, 0 - adds r0, 0x1F - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _080269FC - adds r0, r6, 0 - movs r1, 0 - bl sub_8028BF8 - b _08026A04 - .pool -_080269FC: - adds r0, r6, 0 - movs r1, 0x1 - bl sub_8028BF8 -_08026A04: - adds r0, r7, 0 - adds r0, 0x1F - adds r5, r0, r4 - ldrb r0, [r5] - cmp r0, 0x9 - bls _08026A30 - adds r0, r7, 0 - adds r0, 0x14 - adds r0, r4 - ldrb r1, [r0] - adds r1, 0x3 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8028CA4 - ldrb r1, [r5] - lsls r1, 25 - movs r0, 0xFF - lsls r0, 24 - adds r1, r0 - b _08026A52 -_08026A30: - adds r0, r7, 0 - adds r0, 0x14 - adds r3, r0, r4 - ldrb r0, [r3] - cmp r0, 0x3 - bne _08026A5C - movs r0, 0x7 - strb r0, [r5] - adds r0, r6, 0 - movs r1, 0x6 - bl sub_8028CA4 - ldrb r1, [r5] - lsls r1, 25 - movs r2, 0xFF - lsls r2, 24 - adds r1, r2 -_08026A52: - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8028C7C - b _08026A70 -_08026A5C: - ldrb r1, [r3] - adds r0, r6, 0 - bl sub_8028CA4 - ldrb r1, [r5] - lsls r1, 25 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8028C7C -_08026A70: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r8 - bcc _080269A8 -_08026A7A: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8026988 - - thumb_func_start sub_8026A88 -sub_8026A88: @ 8026A88 - push {r4-r6,lr} - ldr r1, =gUnknown_02022C98 - ldr r0, [r1] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _08026ABA - adds r6, r1, 0 -_08026A9A: - lsls r0, r4, 4 - subs r0, r4 - lsls r0, 2 - ldr r1, [r6] - adds r0, r1 - ldr r1, =0x000031cc - adds r0, r1 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_80286B4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08026A9A -_08026ABA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026A88 - - thumb_func_start sub_8026AC8 -sub_8026AC8: @ 8026AC8 - push {r4,r5,lr} - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _08026AEA -_08026AD8: - adds r0, r4, 0 - movs r1, 0x4 - bl sub_80286B4 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08026AD8 -_08026AEA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026AC8 - - thumb_func_start sub_8026AF4 -sub_8026AF4: @ 8026AF4 - push {lr} - bl sub_8026988 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08026B10 - bl sub_8026AC8 - b _08026B14 - .pool -_08026B10: - bl sub_8026A88 -_08026B14: - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - bl sub_80288D4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026AF4 - - thumb_func_start sub_8026B28 -sub_8026B28: @ 8026B28 - push {lr} - bl sub_8026988 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x9 - bls _08026B44 - bl sub_8026AC8 - b _08026B48 - .pool -_08026B44: - bl sub_8026A88 -_08026B48: - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x40 - ldrb r0, [r0] - bl sub_80288D4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026B28 - - thumb_func_start sub_8026B5C -sub_8026B5C: @ 8026B5C - push {lr} - adds r3, r1, 0 - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x4 - bhi _08026BB4 - lsls r0, 2 - ldr r1, =_08026B78 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08026B78: - .4byte _08026B8C - .4byte _08026B94 - .4byte _08026B9C - .4byte _08026BA4 - .4byte _08026BAC -_08026B8C: - movs r0, 0x4 - strb r0, [r3] - movs r0, 0x7 - b _08026BB2 -_08026B94: - movs r0, 0x3 - strb r0, [r3] - movs r0, 0x8 - b _08026BB2 -_08026B9C: - movs r0, 0x2 - strb r0, [r3] - movs r0, 0x9 - b _08026BB2 -_08026BA4: - movs r0, 0x1 - strb r0, [r3] - movs r0, 0xA - b _08026BB2 -_08026BAC: - movs r0, 0 - strb r0, [r3] - movs r0, 0xB -_08026BB2: - strb r0, [r2] -_08026BB4: - pop {r0} - bx r0 - thumb_func_end sub_8026B5C - - thumb_func_start sub_8026BB8 -sub_8026BB8: @ 8026BB8 - push {r4-r6,lr} - ldr r1, =gUnknown_02022C98 - ldr r0, [r1] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0x1 - cmp r4, r5 - bcs _08026C1E - adds r6, r1, 0 -_08026BCA: - ldr r0, [r6] - movs r1, 0xAC - lsls r1, 1 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08026BEC - adds r0, r4, 0 - bl sub_8027DFC - ldr r1, [r6] - movs r2, 0xAC - lsls r2, 1 - adds r1, r2 - adds r1, r4 - strb r0, [r1] -_08026BEC: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08026BCA - cmp r4, r5 - bcs _08026C1E - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - movs r2, 0xAC - lsls r2, 1 - adds r1, r0, r2 -_08026C04: - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - bne _08026C14 - movs r0, 0 - b _08026C20 - .pool -_08026C14: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08026C04 -_08026C1E: - movs r0, 0x1 -_08026C20: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8026BB8 - - thumb_func_start sub_8026C28 -sub_8026C28: @ 8026C28 - push {r4,lr} - movs r1, 0 - ldr r4, =gUnknown_02022C98 - movs r3, 0xAC - lsls r3, 1 - movs r2, 0 -_08026C34: - ldr r0, [r4] - adds r0, r3 - adds r0, r1 - strb r2, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x4 - bls _08026C34 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026C28 - - thumb_func_start sub_8026C50 -sub_8026C50: @ 8026C50 - push {r4,lr} - ldr r3, =gUnknown_02022C98 - ldr r1, [r3] - adds r2, r1, 0 - adds r2, 0x40 - ldrb r0, [r2] - cmp r0, 0x9 - bls _08026C88 - movs r4, 0x90 - lsls r4, 1 - adds r0, r1, r4 - ldr r0, [r0] - cmp r0, 0 - bne _08026C88 - movs r0, 0xA - strb r0, [r2] - ldr r0, [r3] - movs r1, 0x96 - lsls r1, 1 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - beq _08026C88 - movs r0, 0x1 - b _08026C8A - .pool -_08026C88: - movs r0, 0 -_08026C8A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8026C50 - - thumb_func_start sub_8026C90 -sub_8026C90: @ 8026C90 - push {r4-r6,lr} - ldr r4, =gUnknown_02022C98 - ldr r1, [r4] - adds r2, r1, 0 - adds r2, 0x40 - ldrb r0, [r2] - cmp r0, 0x9 - bls _08026D14 - adds r0, r1, 0 - adds r0, 0x44 - ldrb r3, [r0] - adds r0, 0x4 - ldrb r5, [r0] - movs r0, 0xA - strb r0, [r2] - ldr r4, [r4] - mov r12, r4 - movs r0, 0x96 - lsls r0, 1 - add r0, r12 - ldr r0, [r0] - cmp r0, 0 - beq _08026D14 - adds r4, r3, 0 - cmp r4, r5 - bcs _08026D04 - mov r0, r12 - adds r0, 0x28 - ldrb r3, [r0] - lsls r1, r3, 4 - subs r1, r3 - lsls r1, 2 - ldr r6, =gUnknown_082F449C - subs r0, 0x4 - ldrb r2, [r0] - subs r2, 0x1 - add r1, r12 - movs r0, 0xB - muls r3, r0 - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 3 - subs r2, r0, r2 - ldr r0, =0x000031bf - adds r1, r0 -_08026CEA: - adds r0, r4, r3 - adds r0, r2 - adds r0, r6 - ldrb r0, [r0] - adds r0, r1, r0 - ldrb r0, [r0] - cmp r0, 0xA - bne _08026D14 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08026CEA -_08026D04: - movs r0, 0x1 - b _08026D16 - .pool -_08026D14: - movs r0, 0 -_08026D16: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8026C90 - - thumb_func_start sub_8026D1C -sub_8026D1C: @ 8026D1C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gUnknown_082F7A9C - mov r8, r0 - ldr r0, =gUnknown_02022C98 - ldr r6, [r0] - adds r0, r6, 0 - adds r0, 0x90 - adds r0, r5 - mov r9, r0 - ldrb r7, [r0] - adds r0, r7, 0 - movs r1, 0x7 - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - add r4, r8 - adds r0, r7, 0 - movs r1, 0x7 - bl __udivsi3 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - muls r0, r1 - ldrb r4, [r4] - adds r0, r4 - lsls r0, 24 - lsls r5, 1 - adds r6, 0x86 - adds r6, r5 - ldrh r1, [r6] - lsrs r0, 24 - cmp r1, r0 - bcc _08026D76 - adds r0, r7, 0x1 - mov r1, r9 - strb r0, [r1] -_08026D76: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8026D1C - - thumb_func_start sub_8026D8C -sub_8026D8C: @ 8026D8C - lsls r0, 24 - lsrs r0, 24 - ldr r3, =gUnknown_082F449C+0x1AC - ldr r1, =gUnknown_02022C98 - ldr r1, [r1] - adds r1, 0x24 - ldrb r1, [r1] - subs r1, 0x1 - movs r2, 0xB - muls r1, r2 - adds r0, r1 - adds r0, r3 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8026D8C - - thumb_func_start sub_8026DB0 -sub_8026DB0: @ 8026DB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, =gUnknown_02022C98 - ldr r1, [r4] - adds r1, 0x24 - ldrb r2, [r1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldr r3, =gUnknown_082F449C+0x15E - lsls r1, r0, 1 - adds r1, r0 - lsls r0, r2, 4 - subs r0, r2 - adds r1, r0 - adds r0, r1, r3 - ldrb r0, [r0] - mov r12, r0 - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r7, [r0] - adds r3, 0x2 - adds r1, r3 - ldrb r1, [r1] - mov r8, r1 - movs r3, 0 - ldr r1, =gUnknown_082F449C+0x1E3 - lsls r0, r2, 2 - adds r2, r0, r2 - adds r0, r2, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _08026E18 - adds r6, r1, 0 -_08026DFE: - adds r0, r3, r2 - adds r0, r6 - ldrb r0, [r0] - cmp r5, r0 - beq _08026E3C - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r3, r2 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _08026DFE -_08026E18: - ldr r0, [r4] - adds r0, 0x90 - mov r1, r12 - adds r2, r0, r1 - adds r1, r0, r7 - ldrb r0, [r2] - ldrb r3, [r1] - cmp r0, r3 - bls _08026E46 - adds r1, r0, 0 - b _08026E48 - .pool -_08026E3C: - ldr r0, [r4] - adds r0, 0x90 - adds r0, r7 - ldrb r0, [r0] - b _08026E5A -_08026E46: - ldrb r1, [r1] -_08026E48: - ldr r0, [r4] - adds r0, 0x90 - mov r2, r8 - adds r4, r0, r2 - ldrb r0, [r4] - cmp r0, r1 - bls _08026E58 - adds r1, r0, 0 -_08026E58: - adds r0, r1, 0 -_08026E5A: - adds r1, r5, 0 - bl sub_8026E70 - lsls r0, 24 - lsrs r0, 24 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8026DB0 - - thumb_func_start sub_8026E70 -sub_8026E70: @ 8026E70 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_02022C98 - ldr r2, [r2] - adds r2, 0xE8 - adds r2, r1 - ldrb r4, [r2] - movs r1, 0x7 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x6 - bhi _08026EDE - lsls r0, 2 - ldr r1, =_08026EA4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08026EA4: - .4byte _08026EDE - .4byte _08026ED6 - .4byte _08026EE2 - .4byte _08026EC0 - .4byte _08026EC6 - .4byte _08026ECC - .4byte _08026ED2 -_08026EC0: - cmp r4, 0 - beq _08026ED6 - b _08026EDE -_08026EC6: - cmp r4, 0 - beq _08026EE2 - b _08026EDE -_08026ECC: - cmp r4, 0x2 - beq _08026ED6 - b _08026EE2 -_08026ED2: - cmp r4, 0 - bne _08026EDA -_08026ED6: - movs r0, 0x1 - b _08026EE4 -_08026EDA: - cmp r4, 0x1 - beq _08026EE2 -_08026EDE: - movs r0, 0 - b _08026EE4 -_08026EE2: - movs r0, 0x2 -_08026EE4: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8026E70 - - thumb_func_start sub_8026EEC -sub_8026EEC: @ 8026EEC - push {r4-r6,lr} - movs r6, 0 - movs r5, 0 - adds r4, r0, 0 - b _08026EFE -_08026EF6: - ldrh r0, [r4, 0x6] - adds r6, r0 - adds r4, 0xC - adds r5, 0x1 -_08026EFE: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - blt _08026EF6 - cmp r6, 0xA - bgt _08026F12 - movs r0, 0 - b _08026F14 -_08026F12: - movs r0, 0x1 -_08026F14: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8026EEC - - thumb_func_start sub_8026F1C -sub_8026F1C: @ 8026F1C - push {r4-r6,lr} - lsls r0, 24 - lsrs r3, r0, 24 - lsls r1, 24 - lsrs r4, r1, 24 - lsls r2, 24 - lsrs r2, 24 - ldr r6, =gUnknown_02022C98 - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0x24 - ldrb r5, [r0] - cmp r3, 0 - bge _08026F3A - b _0802722C -_08026F3A: - cmp r3, 0x2 - ble _08026F48 - cmp r3, 0x3 - beq _08026F78 - b _0802722C - .pool -_08026F48: - ldr r3, =0x000031b4 - adds r0, r1, r3 - adds r0, r4 - ldrb r4, [r0] - lsls r4, 1 - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r4, r0 - adds r0, r1, 0 - adds r0, 0x4A - adds r0, r4 - ldrh r0, [r0] - ldr r1, =0x00004e20 - bl sub_8027A28 - ldr r1, [r6] - adds r1, 0x4A - adds r1, r4 - b _0802722A - .pool -_08026F78: - adds r0, r1, 0 - adds r0, 0x4A - bl sub_8026EEC - cmp r0, 0 - beq _08026F86 - b _0802722C -_08026F86: - cmp r5, 0x3 - bne _08026F8C - b _08027154 -_08026F8C: - cmp r5, 0x3 - bgt _08026F98 - cmp r5, 0x2 - bne _08026F96 - b _080271E8 -_08026F96: - b _0802722C -_08026F98: - cmp r5, 0x4 - bne _08026F9E - b _08027090 -_08026F9E: - cmp r5, 0x5 - beq _08026FA4 - b _0802722C -_08026FA4: - cmp r4, 0x9 - bls _08026FAA - b _0802722C -_08026FAA: - lsls r0, r4, 2 - ldr r1, =_08026FB8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08026FB8: - .4byte _08026FE0 - .4byte _08026FF8 - .4byte _08027004 - .4byte _0802701C - .4byte _08027028 - .4byte _08027040 - .4byte _0802704C - .4byte _08027060 - .4byte _0802706C - .4byte _08027084 -_08026FE0: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x74 - b _08027226 - .pool -_08026FF8: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x74 - b _08027226 - .pool -_08027004: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x74 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x80 - b _08027226 - .pool -_0802701C: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x80 - b _08027226 - .pool -_08027028: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x80 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08027226 - .pool -_08027040: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x50 - b _08027226 - .pool -_0802704C: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08027224 - .pool -_08027060: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - b _08027224 - .pool -_0802706C: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08027226 - .pool -_08027084: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x68 - b _08027226 - .pool -_08027090: - subs r0, r4, 0x1 - cmp r0, 0x7 - bls _08027098 - b _0802722C -_08027098: - lsls r0, 2 - ldr r1, =_080270A8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080270A8: - .4byte _080270C8 - .4byte _080270E0 - .4byte _080270EC - .4byte _08027104 - .4byte _08027110 - .4byte _08027124 - .4byte _08027130 - .4byte _08027148 -_080270C8: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x74 - b _08027226 - .pool -_080270E0: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x74 - b _08027226 - .pool -_080270EC: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x74 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08027226 - .pool -_08027104: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x50 - b _08027226 - .pool -_08027110: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08027224 - .pool -_08027124: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - b _08027224 - .pool -_08027130: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08027226 - .pool -_08027148: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x68 - b _08027226 - .pool -_08027154: - subs r0, r4, 0x2 - cmp r0, 0x5 - bhi _0802722C - lsls r0, 2 - ldr r1, =_08027168 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08027168: - .4byte _08027180 - .4byte _08027198 - .4byte _080271A4 - .4byte _080271BC - .4byte _080271C8 - .4byte _080271DC -_08027180: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x5C - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x68 - b _08027226 - .pool -_08027198: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x68 - b _08027226 - .pool -_080271A4: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x68 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - adds r1, 0x50 - b _08027226 - .pool -_080271BC: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x50 - b _08027226 - .pool -_080271C8: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08027224 - .pool -_080271DC: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - b _08027224 - .pool -_080271E8: - cmp r4, 0x4 - beq _0802720E - cmp r4, 0x4 - bgt _080271F6 - cmp r4, 0x3 - beq _08027200 - b _0802722C -_080271F6: - cmp r4, 0x5 - beq _08027214 - cmp r4, 0x6 - beq _08027222 - b _0802722C -_08027200: - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08027224 -_0802720E: - ldr r1, [r6] - adds r1, 0x50 - b _08027226 -_08027214: - ldr r1, [r6] - adds r2, r1, 0 - adds r2, 0x50 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - b _08027224 -_08027222: - ldr r1, [r6] -_08027224: - adds r1, 0x5C -_08027226: - ldrh r0, [r1] - adds r0, 0x1 -_0802722A: - strh r0, [r1] -_0802722C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8026F1C - - thumb_func_start sub_8027234 -sub_8027234: @ 8027234 - push {r4,r5,lr} - adds r1, r0, 0 - ldr r4, =gUnknown_02022C98 - ldr r3, [r4] - adds r0, r3, 0 - adds r0, 0x24 - ldrb r0, [r0] - cmp r0, 0x5 - bne _0802729E - cmp r1, 0x1 - bne _08027280 - movs r5, 0x89 - lsls r5, 1 - adds r1, r3, r5 - ldrh r0, [r1] - adds r2, r0, 0x1 - strh r2, [r1] - movs r0, 0x8A - lsls r0, 1 - adds r1, r3, r0 - lsls r0, r2, 16 - lsrs r0, 16 - ldrh r3, [r1] - cmp r0, r3 - bls _08027268 - strh r2, [r1] -_08027268: - ldr r0, [r4] - adds r2, r0, r5 - ldrh r0, [r2] - ldr r1, =0x0000270f - cmp r0, r1 - bls _0802729E - strh r1, [r2] - b _0802729E - .pool -_08027280: - movs r2, 0x89 - lsls r2, 1 - adds r0, r3, r2 - movs r5, 0x8A - lsls r5, 1 - adds r1, r3, r5 - ldrh r0, [r0] - ldrh r3, [r1] - cmp r0, r3 - bls _08027296 - strh r0, [r1] -_08027296: - ldr r0, [r4] - adds r0, r2 - movs r1, 0 - strh r1, [r0] -_0802729E: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8027234 - - thumb_func_start sub_80272A4 -sub_80272A4: @ 80272A4 - push {r4,r5,lr} - movs r3, 0 - ldr r2, =gUnknown_02022C98 - ldr r0, [r2] - adds r0, 0x24 - ldrb r0, [r0] - cmp r3, r0 - bcs _080272DC - adds r5, r2, 0 - movs r4, 0x8A - lsls r4, 1 -_080272BA: - ldr r2, [r5] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r1, r2, 0 - adds r1, 0x54 - adds r1, r0 - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - adds r2, 0x24 - ldrb r2, [r2] - cmp r3, r2 - bcc _080272BA -_080272DC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80272A4 - - thumb_func_start sub_80272E8 -sub_80272E8: @ 80272E8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r5, 0 - ldr r7, =gUnknown_02022C98 - movs r4, 0 - ldr r0, =0x000031bf - mov r10, r0 -_080272FC: - movs r2, 0 - lsls r6, r5, 4 - lsls r1, r5, 1 - mov r8, r1 - lsls r0, r5, 3 - mov r12, r0 - adds r1, r5, 0x1 - mov r9, r1 - subs r0, r6, r5 - lsls r3, r0, 2 -_08027310: - ldr r0, [r7] - adds r1, r2, r3 - add r0, r10 - adds r0, r1 - strb r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _08027310 - ldr r0, [r7] - subs r1, r6, r5 - lsls r1, 2 - adds r0, r1 - ldr r2, =0x000031cc - adds r0, r2 - strb r4, [r0] - ldr r0, [r7] - adds r0, r1 - ldr r1, =0x000031d0 - adds r0, r1 - strb r4, [r0] - ldr r0, [r7] - adds r0, 0x90 - adds r0, r5 - strb r4, [r0] - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0x86 - add r0, r8 - strh r4, [r0] - add r1, r12 - ldr r2, =0x00003308 - adds r1, r2 - strb r4, [r1] - ldr r2, [r7] - ldr r1, =0x0000330c - adds r0, r2, r1 - add r0, r12 - str r4, [r0] - mov r0, r8 - adds r1, r0, r5 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0x4A - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x4E - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x50 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x52 - adds r0, r1 - strh r4, [r0] - adds r0, r2, 0 - adds r0, 0x54 - adds r0, r1 - strh r4, [r0] - mov r1, r9 - lsls r0, r1, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _080272FC - ldr r2, =gUnknown_02022C98 - ldr r0, [r2] - movs r1, 0xAA - lsls r1, 1 - adds r0, r1 - movs r2, 0 - strb r2, [r0] - ldr r1, =gUnknown_02022C98 - ldr r0, [r1] - movs r1, 0x89 - lsls r1, 1 - adds r3, r0, r1 - movs r1, 0 - strh r2, [r3] - adds r0, 0x40 - strb r1, [r0] - bl sub_8026A88 - bl sub_8026988 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80272E8 - - thumb_func_start sub_80273F0 -sub_80273F0: @ 80273F0 - push {r4,r5,lr} - movs r4, 0 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r0, [r0] - cmp r0, 0x4 - beq _0802740C - cmp r0, 0x5 - beq _08027410 - b _08027412 - .pool -_0802740C: - movs r4, 0x1 - b _08027412 -_08027410: - movs r4, 0x2 -_08027412: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - lsls r1, r4, 2 - ldr r5, =gUnknown_02022C98 - ldr r2, =gUnknown_082F7AA4 - adds r1, r4 - lsls r1, 1 - adds r0, r1 - adds r0, r2 - ldrb r2, [r0] -_08027436: - ldr r1, [r5] - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r1, 0x52 - adds r1, r0 - strh r2, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x4 - bls _08027436 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80273F0 - - thumb_func_start sub_802745C -sub_802745C: @ 802745C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022C98 - ldr r2, [r1] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 2 - adds r0, r2, 0 - adds r0, 0x4A - adds r0, r1 - ldrh r3, [r0] - adds r0, r2, 0 - adds r0, 0x4C - adds r0, r1 - ldrh r0, [r0] - adds r2, 0x4E - adds r2, r1 - adds r3, r0 - ldrh r2, [r2] - adds r0, r3, r2 - ldr r1, =0x0000270f - cmp r0, r1 - bls _0802748E - adds r0, r1, 0 -_0802748E: - pop {r1} - bx r1 - .pool - thumb_func_end sub_802745C - - thumb_func_start sub_802749C -sub_802749C: @ 802749C - push {r4-r6,lr} - ldr r5, =gUnknown_02022C98 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - bl sub_802745C - ldr r1, =0x0000270f - bl sub_8027A38 - adds r4, r0, 0 - ldr r0, [r5] - adds r0, 0x28 - ldrb r0, [r0] - bl sub_80276C0 - ldr r1, =0x000f4236 - bl sub_8027A38 - adds r2, r0, 0 - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - movs r6, 0x83 - lsls r6, 2 - adds r1, r0, r6 - ldr r0, [r1] - cmp r0, r2 - bcs _080274D6 - str r2, [r1] -_080274D6: - ldr r0, [r3] - movs r2, 0x84 - lsls r2, 2 - adds r1, r0, r2 - ldrh r0, [r1] - cmp r0, r4 - bcs _080274E6 - strh r4, [r1] -_080274E6: - ldr r0, [r3] - ldr r6, =0x00000212 - adds r2, r0, r6 - ldr r0, [r5] - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - ldrh r1, [r0] - ldrh r0, [r2] - cmp r0, r1 - bcs _080274FE - strh r1, [r2] -_080274FE: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802749C - - thumb_func_start sub_8027518 -sub_8027518: @ 8027518 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gUnknown_02022C98 - ldr r0, [r1] - adds r0, 0x9B - ldrb r6, [r0] - movs r3, 0x3 - adds r5, r1, 0 - adds r4, r5, 0 -_0802752C: - ldr r0, [r4] - adds r0, 0x98 - adds r2, r0, r3 - subs r1, r3, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - lsls r1, 24 - lsrs r3, r1, 24 - cmp r3, 0 - bne _0802752C - ldr r0, [r5] - adds r0, 0x98 - strb r7, [r0] - adds r0, r6, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8027518 - - thumb_func_start sub_8027554 -sub_8027554: @ 8027554 - push {r4,lr} - ldr r4, =gUnknown_02022C98 - ldr r3, [r4] - adds r0, r3, 0 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, 0x88 - adds r2, r0, r1 - ldrb r0, [r2] - cmp r0, 0 - bne _080275FC - ldr r0, =gMain - ldrh r2, [r0, 0x2E] - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _08027594 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, =0x000031cc - adds r0, r1 - movs r1, 0x2 - b _080275CA - .pool -_08027594: - movs r0, 0x20 - ands r0, r2 - cmp r0, 0 - beq _080275B0 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, =0x000031cc - adds r0, r1 - movs r1, 0x3 - b _080275CA - .pool -_080275B0: - movs r0, 0x10 - ands r0, r2 - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _080275E8 - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, =0x000031cc - adds r0, r1 - movs r1, 0x1 -_080275CA: - strb r1, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0x28 - adds r0, 0xB0 - ldrb r1, [r1] - adds r0, r1 - movs r1, 0x6 - strb r1, [r0] - movs r0, 0xD4 - bl PlaySE - b _08027600 - .pool -_080275E8: - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 2 - adds r0, r3, r0 - ldr r1, =0x000031cc - adds r0, r1 - strb r2, [r0] - b _08027600 - .pool -_080275FC: - subs r0, 0x1 - strb r0, [r2] -_08027600: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8027554 - - thumb_func_start sub_8027608 -sub_8027608: @ 8027608 - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r2, [r0] - lsls r0, r2, 4 - subs r0, r2 - lsls r0, 2 - adds r1, r0 - ldr r0, =0x000031cc - adds r1, r0 - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end sub_8027608 - - thumb_func_start sub_802762C -sub_802762C: @ 802762C - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0x28 - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, 0x52 - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - bx lr - .pool - thumb_func_end sub_802762C - - thumb_func_start sub_8027650 -sub_8027650: @ 8027650 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_8027650 - - thumb_func_start sub_8027660 -sub_8027660: @ 8027660 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0802768C - ldr r0, =gUnknown_02022C98 - lsls r1, r2, 4 - subs r1, r2 - lsls r1, 2 - ldr r2, =0x000031a0 - adds r1, r2 - ldr r0, [r0] - b _08027694 - .pool -_0802768C: - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - ldr r1, =gLinkPlayers + 8 -_08027694: - adds r0, r1 - pop {r1} - bx r1 - .pool - thumb_func_end sub_8027660 - - thumb_func_start sub_80276A0 -sub_80276A0: @ 80276A0 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r2, =gUnknown_02022C98 - ldr r3, [r2] - lsrs r1, 23 - lsls r2, r0, 1 - adds r2, r0 - lsls r2, 2 - adds r1, r2 - adds r3, 0x4A - adds r3, r1 - ldrh r0, [r3] - bx lr - .pool - thumb_func_end sub_80276A0 - - thumb_func_start sub_80276C0 -sub_80276C0: @ 80276C0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - movs r3, 0 - ldr r0, =gUnknown_02022C98 - mov r9, r0 - ldr r2, =gUnknown_082F7B24 - mov r10, r2 - ldr r2, [r0] - lsls r1, r4, 1 - adds r0, r1, r4 - lsls r0, 2 - str r0, [sp] - adds r6, r2, 0 - adds r6, 0x4A - mov r12, r1 - mov r8, r10 -_080276EE: - lsls r1, r3, 1 - ldr r7, [sp] - adds r0, r1, r7 - adds r0, r6, r0 - ldrh r2, [r0] - add r1, r8 - movs r7, 0 - ldrsh r0, [r1, r7] - muls r0, r2 - adds r5, r0 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _080276EE - mov r0, r9 - ldr r1, [r0] - mov r2, r12 - adds r0, r2, r4 - lsls r0, 2 - adds r1, 0x50 - adds r1, r0 - ldrh r1, [r1] - mov r3, r10 - movs r7, 0x6 - ldrsh r0, [r3, r7] - muls r0, r1 - cmp r5, r0 - bls _08027734 - subs r0, r5, r0 - b _08027736 - .pool -_08027734: - movs r0, 0 -_08027736: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80276C0 - - thumb_func_start sub_8027748 -sub_8027748: @ 8027748 - push {r4-r6,lr} - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r6, [r0] - movs r0, 0 - bl sub_80276C0 - adds r5, r0, 0 - movs r4, 0x1 - cmp r4, r6 - bcs _08027776 -_08027760: - adds r0, r4, 0 - bl sub_80276C0 - cmp r0, r5 - bls _0802776C - adds r5, r0, 0 -_0802776C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r6 - bcc _08027760 -_08027776: - ldr r1, =0x000f4236 - adds r0, r5, 0 - bl sub_8027A38 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8027748 - - thumb_func_start sub_802778C -sub_802778C: @ 802778C - push {r4,r5,lr} - lsls r0, 24 - ldr r1, =gUnknown_02022C98 - ldr r2, [r1] - adds r1, r2, 0 - adds r1, 0x24 - ldrb r5, [r1] - lsrs r4, r0, 23 - adds r2, 0x4A - adds r0, r2, r4 - ldrh r3, [r0] - movs r1, 0 - cmp r1, r5 - bcs _080277C4 -_080277A8: - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r4, r0 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r3 - bls _080277BA - adds r3, r0, 0 -_080277BA: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, r5 - bcc _080277A8 -_080277C4: - adds r0, r3, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_802778C - - thumb_func_start sub_80277D0 -sub_80277D0: @ 80277D0 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0x1 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - movs r4, 0 - cmp r4, r5 - bcs _080277FE -_080277E8: - adds r0, r4, 0 - bl sub_80276C0 - lsls r1, r4, 2 - add r1, sp - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _080277E8 -_080277FE: - lsls r7, 2 - mov r12, r7 - cmp r6, 0 - beq _08027838 - subs r7, r5, 0x1 -_08027808: - movs r6, 0 - movs r4, 0 - cmp r6, r7 - bge _08027834 - adds r5, r7, 0 -_08027812: - lsls r0, r4, 2 - mov r2, sp - adds r1, r2, r0 - adds r4, 0x1 - lsls r0, r4, 2 - adds r3, r2, r0 - ldr r0, [r1] - ldr r2, [r3] - cmp r0, r2 - bcs _0802782C - str r2, [r1] - str r0, [r3] - movs r6, 0x1 -_0802782C: - lsls r0, r4, 24 - lsrs r4, r0, 24 - cmp r4, r5 - blt _08027812 -_08027834: - cmp r6, 0 - bne _08027808 -_08027838: - mov r0, sp - add r0, r12 - ldr r0, [r0] - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80277D0 - - thumb_func_start sub_802784C -sub_802784C: @ 802784C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r0, 0 - mov r10, r0 - mov r8, r0 - mov r9, r0 - ldr r6, =gUnknown_02022C98 - ldr r0, [r6] - adds r0, 0x24 - ldrb r5, [r0] - bl sub_8027748 - bl sub_8027748 - cmp r0, 0 - bne _080278A0 - movs r4, 0 - cmp r9, r5 - bcs _080278A0 - adds r2, r6, 0 - ldr r1, =0x00003308 - mov r12, r1 - movs r7, 0 - movs r6, 0x4 - ldr r3, =0x0000330c -_08027884: - ldr r0, [r2] - lsls r1, r4, 3 - adds r0, r1 - add r0, r12 - strb r6, [r0] - ldr r0, [r2] - adds r0, r3 - adds r0, r1 - str r7, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08027884 -_080278A0: - movs r4, 0 - cmp r4, r5 - bcs _080278CA -_080278A6: - adds r0, r4, 0 - bl sub_80276C0 - ldr r1, =0x000f4236 - bl sub_8027A38 - ldr r1, =gUnknown_02022C98 - ldr r1, [r1] - lsls r2, r4, 3 - ldr r3, =0x0000330c - adds r1, r3 - adds r1, r2 - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _080278A6 -_080278CA: - mov r0, r10 - bl sub_80277D0 - adds r6, r0, 0 - mov r3, r8 - movs r4, 0 - cmp r4, r5 - bcs _08027916 - ldr r7, =gUnknown_02022C98 - mov r10, r7 -_080278DE: - mov r0, r10 - ldr r2, [r0] - lsls r1, r4, 3 - ldr r7, =0x0000330c - adds r0, r2, r7 - adds r0, r1 - ldr r0, [r0] - cmp r6, r0 - bne _0802790C - adds r0, r2, r1 - ldr r1, =0x00003308 - adds r0, r1 - strb r3, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 -_0802790C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _080278DE -_08027916: - mov r10, r8 - cmp r9, r5 - bcc _080278CA - movs r0, 0 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_802784C - - thumb_func_start sub_802793C -sub_802793C: @ 802793C - lsls r1, 24 - ldr r2, =gUnknown_02022C98 - ldr r2, [r2] - lsrs r1, 21 - ldr r3, =0x00003308 - adds r2, r3 - adds r2, r1 - ldr r1, [r2] - ldr r2, [r2, 0x4] - str r1, [r0] - str r2, [r0, 0x4] - bx lr - .pool - thumb_func_end sub_802793C - - thumb_func_start sub_802795C -sub_802795C: @ 802795C - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r6, r0, 24 - movs r7, 0 - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r5, [r0] - mov r0, sp - movs r1, 0 - movs r2, 0x14 - bl memset - movs r4, 0 - cmp r7, r5 - bcs _08027994 -_0802797E: - adds r0, r4, 0 - bl sub_80276C0 - lsls r1, r4, 2 - add r1, sp - str r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0802797E -_08027994: - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - movs r4, 0 -_0802799C: - cmp r4, r6 - beq _080279B0 - lsls r0, r4, 2 - add r0, sp - ldr r0, [r0] - cmp r1, r0 - bcs _080279B0 - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 -_080279B0: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _0802799C - adds r0, r7, 0 - add sp, 0x14 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_802795C - - thumb_func_start sub_80279C8 -sub_80279C8: @ 80279C8 - push {r4-r6,lr} - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x28 - ldrb r4, [r0] - bl sub_802762C - lsls r0, 16 - lsrs r5, r0, 16 - adds r6, r5, 0 - adds r0, r4, 0 - bl sub_80276C0 - adds r4, r0, 0 - bl sub_8027748 - cmp r4, r0 - beq _080279F4 - movs r0, 0x3 - b _08027A22 - .pool -_080279F4: - adds r0, r5, 0 - movs r1, 0x1 - bl CheckBagHasSpace - lsls r0, 24 - cmp r0, 0 - bne _08027A06 - movs r0, 0x2 - b _08027A22 -_08027A06: - adds r0, r6, 0 - movs r1, 0x1 - bl AddBagItem - adds r0, r6, 0 - movs r1, 0x1 - bl CheckBagHasSpace - lsls r0, 24 - cmp r0, 0 - beq _08027A20 - movs r0, 0 - b _08027A22 -_08027A20: - movs r0, 0x1 -_08027A22: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80279C8 - - thumb_func_start sub_8027A28 -sub_8027A28: @ 8027A28 - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - cmp r2, r0 - bcs _08027A34 - adds r0, r2, 0x1 -_08027A34: - pop {r1} - bx r1 - thumb_func_end sub_8027A28 - - thumb_func_start sub_8027A38 -sub_8027A38: @ 8027A38 - push {lr} - adds r2, r0, 0 - adds r0, r1, 0 - cmp r2, r0 - bcs _08027A44 - adds r0, r2, 0 -_08027A44: - pop {r1} - bx r1 - thumb_func_end sub_8027A38 - - thumb_func_start sub_8027A48 -sub_8027A48: @ 8027A48 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gUnknown_02022C98 - ldr r1, [r1] - adds r1, 0x34 - adds r1, r0 - ldrb r0, [r1] - bx lr - .pool - thumb_func_end sub_8027A48 - - thumb_func_start sub_8027A5C -sub_8027A5C: @ 8027A5C - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gSpecialVar_Result -_08027A62: - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0x5 - bl GetMonData - cmp r0, 0 - beq _08027A94 - adds r0, r4, 0 - movs r1, 0x41 - bl GetMonData - cmp r0, 0x55 - bne _08027A94 - movs r0, 0x1 - strh r0, [r6] - b _08027AA0 - .pool -_08027A94: - adds r5, 0x1 - cmp r5, 0x5 - ble _08027A62 - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] -_08027AA0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027A5C - - thumb_func_start sub_8027AAC -sub_8027AAC: @ 8027AAC - push {r4,lr} - ldr r4, =sub_8027ACC - adds r0, r4, 0 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - bl _call_via_r4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027AAC - - thumb_func_start sub_8027ACC -sub_8027ACC: @ 8027ACC - push {r4-r7,lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r7, r0, r1 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _08027B94 - cmp r0, 0x1 - bgt _08027AF4 - cmp r0, 0 - beq _08027AFE - b _08027BE2 - .pool -_08027AF4: - cmp r0, 0x2 - beq _08027BA0 - cmp r0, 0x3 - beq _08027BC8 - b _08027BE2 -_08027AFE: - ldr r0, =gUnknown_082F7B2C - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r1, =gText_BerryPickingRecords - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - adds r4, r0, 0 - movs r6, 0 - ldr r5, =gUnknown_082F7B34 -_08027B18: - ldr r1, [r5] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - adds r0, 0x32 - cmp r0, r4 - ble _08027B2A - adds r4, r0, 0 -_08027B2A: - adds r5, 0x4 - adds r6, 0x1 - cmp r6, 0x2 - bls _08027B18 - adds r0, r4, 0x7 - cmp r0, 0 - bge _08027B3A - adds r0, 0x7 -_08027B3A: - asrs r4, r0, 3 - movs r0, 0x1 - ands r0, r4 - cmp r0, 0 - beq _08027B46 - adds r4, 0x1 -_08027B46: - movs r1, 0x1E - subs r1, r4 - lsrs r0, r1, 31 - adds r1, r0 - asrs r1, 1 - lsls r1, 24 - lsrs r1, 16 - ldr r2, =0xffff00ff - ldr r0, [sp] - ands r0, r2 - orrs r0, r1 - lsls r2, r4, 24 - ldr r1, =0x00ffffff - ands r0, r1 - orrs r0, r2 - str r0, [sp] - mov r0, sp - bl AddWindow - strh r0, [r7, 0x2] - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_8027BEC - ldrb r0, [r7, 0x2] - movs r1, 0x3 - b _08027BB6 - .pool -_08027B94: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08027BE2 - b _08027BBA -_08027BA0: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - beq _08027BE2 - ldrb r0, [r7, 0x2] - bl rbox_fill_rectangle - ldrb r0, [r7, 0x2] - movs r1, 0x1 -_08027BB6: - bl CopyWindowToVram -_08027BBA: - ldrh r0, [r7] - adds r0, 0x1 - strh r0, [r7] - b _08027BE2 - .pool -_08027BC8: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08027BE2 - ldrb r0, [r7, 0x2] - bl RemoveWindow - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_08027BE2: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8027ACC - - thumb_func_start sub_8027BEC -sub_8027BEC: @ 8027BEC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - str r1, [sp, 0x18] - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - movs r2, 0x84 - lsls r2, 2 - adds r0, r1, r2 - ldrh r0, [r0] - str r0, [sp, 0xC] - subs r2, 0x4 - adds r0, r1, r2 - ldr r0, [r0] - str r0, [sp, 0x10] - ldr r0, =0x00000212 - adds r1, r0 - ldrh r0, [r1] - str r0, [sp, 0x14] - ldr r4, =0x0000021d - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0xD0 - bl LoadUserWindowBorderGfx_ - adds r0, r7, 0 - adds r1, r4, 0 - movs r2, 0xD - bl DrawTextBorderOuter - adds r0, r7, 0 - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r4, =gText_BerryPickingRecords - ldr r0, [sp, 0x18] - lsls r2, r0, 3 - movs r0, 0x1 - adds r1, r4, 0 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl AddTextPrinterParameterized - movs r6, 0 - ldr r2, =gStringVar1 - mov r8, r2 - movs r0, 0xFF - mov r10, r0 - mov r9, r6 - mov r2, sp - adds r2, 0xC - str r2, [sp, 0x1C] -_08027C76: - lsls r4, r6, 2 - ldr r0, [sp, 0x1C] - ldm r0!, {r1} - str r0, [sp, 0x1C] - ldr r0, =gUnknown_082F7B40 - adds r0, r6, r0 - ldrb r3, [r0] - mov r0, r8 - movs r2, 0 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - mov r1, r8 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r5, r0, 0 - ldr r0, =gUnknown_082F7B34 - adds r4, r0 - ldr r2, [r4] - ldr r0, =gUnknown_082F7B44 - lsls r4, r6, 1 - adds r0, r4, r0 - ldrb r0, [r0] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - mov r0, r9 - str r0, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r2, [sp, 0x18] - lsls r3, r2, 3 - subs r3, r5 - lsls r3, 24 - lsrs r3, 24 - ldr r0, =gUnknown_082F7B4A - adds r4, r0 - ldrb r0, [r4] - str r0, [sp] - mov r0, r10 - str r0, [sp, 0x4] - mov r2, r9 - str r2, [sp, 0x8] - adds r0, r7, 0 - movs r1, 0x1 - mov r2, r8 - bl AddTextPrinterParameterized - adds r6, 0x1 - cmp r6, 0x2 - ble _08027C76 - adds r0, r7, 0 - bl PutWindowTilemap - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027BEC - - thumb_func_start sub_8027D20 -sub_8027D20: @ 8027D20 - push {lr} - bl GetLinkPlayerCount - ldr r1, =gUnknown_02022C98 - ldr r1, [r1] - adds r1, 0x24 - strb r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027D20 - - thumb_func_start sub_8027D38 -sub_8027D38: @ 8027D38 - push {r4-r7,lr} - ldr r0, =gUnknown_02022C98 - ldr r0, [r0] - adds r0, 0x24 - ldrb r4, [r0] - cmp r4, 0x4 - bhi _08027D66 - ldr r5, =gUnknown_082F7B90 -_08027D48: - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - ldr r1, =gLinkPlayers + 8 - adds r0, r1 - lsls r1, r4, 2 - adds r1, r5 - ldr r1, [r1] - bl StringCopy - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x4 - bls _08027D48 -_08027D66: - ldr r0, =gUnknown_02022C98 - ldr r1, [r0] - adds r1, 0x24 - movs r2, 0x5 - strb r2, [r1] - movs r1, 0 - mov r12, r0 -_08027D74: - movs r4, 0 - mov r2, r12 - ldr r0, [r2] - adds r0, 0x24 - adds r5, r1, 0x1 - ldrb r0, [r0] - cmp r4, r0 - bcs _08027DB2 - ldr r7, =gUnknown_02022C98 - lsls r3, r1, 1 - ldr r6, =gUnknown_082F7B50 -_08027D8A: - ldr r2, [r7] - lsls r0, r4, 1 - adds r0, r4 - lsls r0, 2 - adds r0, r3, r0 - adds r1, r2, 0 - adds r1, 0x4A - adds r1, r0 - lsls r0, r4, 3 - adds r0, r3, r0 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r2, 0x24 - ldrb r2, [r2] - cmp r4, r2 - bcc _08027D8A -_08027DB2: - lsls r0, r5, 24 - lsrs r1, r0, 24 - cmp r1, 0x3 - bls _08027D74 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027D38 - - thumb_func_start sub_8027DD0 -sub_8027DD0: @ 8027DD0 - push {lr} - sub sp, 0x8 - ldr r3, =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x1 - orrs r1, r2 - str r1, [sp] - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_800FE50 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8027DD0 - - thumb_func_start sub_8027DFC -sub_8027DFC: @ 8027DFC - push {lr} - adds r2, r0, 0 - ldr r3, =gRecvCmds - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _08027E1E - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x1 - beq _08027E28 -_08027E1E: - movs r0, 0 - b _08027E2A - .pool -_08027E28: - ldrb r0, [r1, 0x4] -_08027E2A: - pop {r1} - bx r1 - thumb_func_end sub_8027DFC - - thumb_func_start sub_8027E30 -sub_8027E30: @ 8027E30 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - ldr r4, [sp, 0x48] - lsls r4, 24 - str r4, [sp, 0x1C] - movs r4, 0x14 - adds r4, r0 - mov r9, r4 - mov r5, sp - movs r4, 0x2 - strb r4, [r5] - mov r10, sp - mov r5, r9 - ldrb r4, [r5, 0xB] - movs r7, 0xF - adds r5, r7, 0 - ands r5, r4 - mov r6, r10 - ldrb r6, [r6, 0x1] - mov r8, r6 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x1] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xC] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x1] - ldrb r5, [r6, 0xD] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x2] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x2] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0xE] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x2] - ldrb r5, [r6, 0xF] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x3] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x3] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x10] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x3] - ldrb r5, [r6, 0x11] - movs r6, 0xF - ands r5, r6 - mov r4, r10 - ldrb r4, [r4, 0x4] - mov r8, r4 - movs r4, 0x10 - negs r4, r4 - mov r6, r8 - ands r4, r6 - orrs r4, r5 - mov r5, r10 - strb r4, [r5, 0x4] - mov r8, sp - mov r6, r9 - ldrb r5, [r6, 0x12] - lsls r5, 4 - ands r4, r7 - orrs r4, r5 - mov r5, r8 - strb r4, [r5, 0x4] - ldrb r4, [r6, 0x13] - movs r6, 0xF - ands r4, r6 - mov r6, r8 - ldrb r5, [r6, 0x5] - movs r6, 0x10 - negs r6, r6 - ands r6, r5 - orrs r6, r4 - str r6, [sp, 0xC] - mov r4, r8 - strb r6, [r4, 0x5] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x14] - lsls r4, 4 - ldr r6, [sp, 0xC] - ands r6, r7 - orrs r6, r4 - strb r6, [r5, 0x5] - mov r7, sp - movs r4, 0x3 - mov r8, r4 - ldrb r0, [r0, 0x14] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x6] - movs r6, 0x4 - negs r6, r6 - mov r10, r6 - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x6] - mov r5, r9 - ldrb r0, [r5, 0x1] - mov r6, r8 - ands r0, r6 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x6] - mov r0, r9 - ldrb r4, [r0, 0x2] - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x6] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x3] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x6] - mov r4, r9 - ldrb r0, [r4, 0x4] - mov r5, r8 - ands r0, r5 - ldrb r5, [r7, 0x7] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - strb r4, [r7, 0x7] - mov r6, r9 - ldrb r0, [r6, 0x5] - mov r5, r8 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - strb r5, [r7, 0x7] - ldrb r4, [r6, 0x6] - mov r6, r8 - ands r4, r6 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - strb r0, [r7, 0x7] - mov r5, sp - mov r6, r9 - ldrb r4, [r6, 0x7] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x7] - mov r8, sp - mov r0, r9 - ldrb r4, [r0, 0x8] - movs r7, 0x3 - adds r0, r7, 0 - ands r0, r4 - mov r4, r8 - ldrb r5, [r4, 0x8] - mov r4, r10 - ands r4, r5 - orrs r4, r0 - mov r5, r8 - strb r4, [r5, 0x8] - mov r6, r9 - ldrb r5, [r6, 0x9] - adds r0, r7, 0 - ands r0, r5 - lsls r0, 2 - movs r5, 0xD - negs r5, r5 - ands r5, r4 - orrs r5, r0 - mov r0, r8 - strb r5, [r0, 0x8] - ldrb r0, [r1] - adds r4, r7, 0 - ands r4, r0 - lsls r4, 4 - movs r0, 0x31 - negs r0, r0 - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x8] - mov r5, sp - ldrb r4, [r2] - lsls r4, 6 - movs r6, 0x3F - ands r0, r6 - orrs r0, r4 - strb r0, [r5, 0x8] - ldrb r4, [r3] - adds r0, r7, 0 - ands r0, r4 - ldrb r4, [r5, 0x9] - mov r6, r10 - ands r6, r4 - orrs r6, r0 - mov r10, r6 - strb r6, [r5, 0x9] - ldr r0, [sp, 0x40] - ldrb r4, [r0] - adds r0, r7, 0 - ands r0, r4 - lsls r0, 2 - movs r4, 0xD - negs r4, r4 - ands r6, r4 - orrs r6, r0 - str r6, [sp, 0x10] - strb r6, [r5, 0x9] - mov r4, sp - ldr r5, [sp, 0x44] - ldrb r0, [r5] - adds r6, r7, 0 - ands r6, r0 - lsls r0, r6, 4 - subs r7, 0x34 - ldr r5, [sp, 0x10] - ands r7, r5 - orrs r7, r0 - strb r7, [r4, 0x9] - mov r5, sp - ldrb r0, [r1, 0x4] - movs r6, 0x1 - mov r12, r6 - mov r4, r12 - ands r4, r0 - lsls r4, 6 - movs r0, 0x41 - negs r0, r0 - mov r10, r0 - ands r0, r7 - orrs r0, r4 - strb r0, [r5, 0x9] - ldrb r4, [r2, 0x4] - lsls r4, 7 - movs r5, 0x7F - ands r0, r5 - orrs r0, r4 - mov r4, r8 - strb r0, [r4, 0x9] - ldrb r4, [r3, 0x4] - mov r0, r12 - ands r0, r4 - mov r5, r8 - ldrb r4, [r5, 0xA] - movs r7, 0x2 - negs r7, r7 - adds r5, r7, 0 - ands r5, r4 - orrs r5, r0 - mov r6, r8 - strb r5, [r6, 0xA] - mov r9, sp - ldr r4, [sp, 0x40] - ldrb r0, [r4, 0x4] - mov r4, r12 - ands r4, r0 - lsls r4, 1 - movs r6, 0x3 - negs r6, r6 - mov r8, r6 - mov r0, r8 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - ldr r6, [sp, 0x44] - ldrb r5, [r6, 0x4] - mov r4, r12 - ands r4, r5 - lsls r4, 2 - movs r5, 0x5 - negs r5, r5 - ands r0, r5 - orrs r0, r4 - mov r4, r9 - strb r0, [r4, 0xA] - mov r4, sp - ldrb r1, [r1, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 2 - ldrb r1, [r4, 0xB] - ands r5, r1 - orrs r5, r0 - strb r5, [r4, 0xB] - ldrb r1, [r2, 0x8] - mov r0, r12 - ands r0, r1 - lsls r0, 3 - movs r1, 0x9 - negs r1, r1 - ands r1, r5 - orrs r1, r0 - strb r1, [r4, 0xB] - ldrb r2, [r3, 0x8] - mov r0, r12 - ands r0, r2 - lsls r0, 4 - movs r2, 0x11 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r4, 0xB] - mov r3, sp - ldr r5, [sp, 0x40] - ldrb r0, [r5, 0x8] - mov r1, r12 - ands r1, r0 - lsls r1, 5 - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0xB] - mov r2, sp - ldrb r1, [r6, 0x8] - mov r6, r12 - ands r6, r1 - lsls r1, r6, 6 - mov r3, r10 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0xB] - ldr r4, [sp, 0x1C] - lsrs r3, r4, 21 - ldrb r1, [r2, 0xA] - movs r0, 0x7 - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0xA] - mov r1, sp - ldr r5, [sp, 0x4C] - movs r6, 0x1 - ands r5, r6 - lsls r2, r5, 1 - ldrb r0, [r1, 0xB] - mov r3, r8 - ands r3, r0 - orrs r3, r2 - mov r8, r3 - strb r3, [r1, 0xB] - mov r0, sp - ldr r4, [sp, 0x50] - ands r4, r6 - mov r5, r8 - ands r5, r7 - orrs r5, r4 - strb r5, [r0, 0xB] - bl sub_800FE50 - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8027E30 - - thumb_func_start sub_8028164 -sub_8028164: @ 8028164 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r7, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - ldr r0, [sp, 0x1C] - mov r12, r0 - ldr r1, [sp, 0x20] - mov r8, r1 - ldr r0, [sp, 0x24] - mov r9, r0 - adds r2, r7, 0 - adds r2, 0x14 - ldr r4, =gRecvCmds - ldrh r0, [r4] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0802819C - adds r3, r4, 0x2 - ldrb r0, [r4, 0x2] - cmp r0, 0x2 - beq _080281A4 -_0802819C: - movs r0, 0 - b _080282DE - .pool -_080281A4: - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xB] - ldrb r0, [r3, 0x1] - lsrs r0, 4 - strb r0, [r2, 0xC] - ldrb r0, [r3, 0x2] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xD] - ldrb r0, [r3, 0x2] - lsrs r0, 4 - strb r0, [r2, 0xE] - ldrb r0, [r3, 0x3] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0xF] - ldrb r0, [r3, 0x3] - lsrs r0, 4 - strb r0, [r2, 0x10] - ldrb r0, [r3, 0x4] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x11] - ldrb r0, [r3, 0x4] - lsrs r0, 4 - strb r0, [r2, 0x12] - ldrb r0, [r3, 0x5] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x13] - ldrb r0, [r3, 0x5] - lsrs r0, 4 - strb r0, [r2, 0x14] - ldrb r0, [r3, 0x1] - lsls r0, 28 - lsrs r0, 28 - strb r0, [r2, 0x15] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r7, 0x14] - ldrb r0, [r3, 0x6] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x1] - ldrb r0, [r3, 0x6] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x2] - ldrb r0, [r3, 0x6] - lsrs r0, 6 - strb r0, [r2, 0x3] - ldrb r0, [r3, 0x7] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x4] - ldrb r0, [r3, 0x7] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x5] - ldrb r0, [r3, 0x7] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r2, 0x6] - ldrb r0, [r3, 0x7] - lsrs r0, 6 - strb r0, [r2, 0x7] - ldrb r0, [r3, 0x8] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0x8] - ldrb r0, [r3, 0x8] - lsls r0, 28 - lsrs r0, 30 - strb r0, [r2, 0x9] - ldrb r0, [r3, 0x6] - lsls r0, 30 - lsrs r0, 30 - strb r0, [r2, 0xA] - ldrb r0, [r3, 0x8] - lsls r0, 26 - lsrs r0, 30 - strb r0, [r5] - ldrb r0, [r3, 0x9] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r5, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r5, 0x8] - ldrb r0, [r3, 0x8] - lsrs r0, 6 - strb r0, [r6] - ldrb r0, [r3, 0x9] - lsrs r0, 7 - strb r0, [r6, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 28 - lsrs r0, 31 - strb r0, [r6, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 30 - lsrs r0, 30 - mov r1, r12 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 31 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 27 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 28 - lsrs r0, 30 - mov r1, r8 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 30 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 26 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0x9] - lsls r0, 26 - lsrs r0, 30 - mov r1, r9 - strb r0, [r1] - ldrb r0, [r3, 0xA] - lsls r0, 29 - lsrs r0, 31 - strb r0, [r1, 0x4] - ldrb r0, [r3, 0xB] - lsls r0, 25 - lsrs r0, 31 - strb r0, [r1, 0x8] - ldrb r0, [r3, 0xA] - lsrs r0, 3 - ldr r1, [sp, 0x28] - strb r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 30 - lsrs r0, 31 - ldr r1, [sp, 0x2C] - str r0, [r1] - ldrb r0, [r3, 0xB] - lsls r0, 31 - lsrs r0, 31 - ldr r1, [sp, 0x30] - str r0, [r1] - movs r0, 0x1 -_080282DE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8028164 - - thumb_func_start sub_80282EC -sub_80282EC: @ 80282EC - push {lr} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - ldr r3, =0xffffff00 - ldr r1, [sp] - ands r1, r3 - movs r2, 0x3 - orrs r1, r2 - str r1, [sp] - ldr r1, [sp, 0x4] - ands r1, r3 - orrs r1, r0 - str r1, [sp, 0x4] - mov r0, sp - bl sub_800FE50 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80282EC - - thumb_func_start sub_8028318 -sub_8028318: @ 8028318 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - ldr r3, =gRecvCmds - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0802833C - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x3 - beq _08028344 -_0802833C: - movs r0, 0 - b _0802834A - .pool -_08028344: - ldrb r0, [r1, 0x4] - strb r0, [r4] - movs r0, 0x1 -_0802834A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8028318 - - thumb_func_start sub_8028350 -sub_8028350: @ 8028350 - push {lr} - sub sp, 0x8 - ldr r2, =0xffffff00 - ldr r1, [sp] - ands r1, r2 - movs r2, 0x4 - orrs r1, r2 - str r1, [sp] - str r0, [sp, 0x4] - mov r0, sp - bl sub_800FE50 - add sp, 0x8 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028350 - - thumb_func_start sub_8028374 -sub_8028374: @ 8028374 - push {lr} - adds r2, r0, 0 - ldr r3, =gRecvCmds - ldrh r0, [r3] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _08028396 - lsls r0, r2, 4 - adds r1, r3, 0x2 - adds r1, r0, r1 - ldrb r0, [r1] - cmp r0, 0x4 - beq _080283A0 -_08028396: - movs r0, 0 - b _080283A2 - .pool -_080283A0: - ldr r0, [r1, 0x4] -_080283A2: - pop {r1} - bx r1 - thumb_func_end sub_8028374 - - thumb_func_start sub_80283A8 -sub_80283A8: @ 80283A8 - push {r4,r5,lr} - sub sp, 0x18 - movs r5, 0xC0 - lsls r5, 6 - adds r0, r5, 0 - bl AllocZeroed - adds r4, r0, 0 - ldr r0, =gUnknown_082FB2D8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, =gUnknown_082FB2E0 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x10] - str r1, [sp, 0x14] - ldr r0, =gDodrioBerryPkmnGfx - adds r1, r4, 0 - bl LZ77UnCompWram - cmp r4, 0 - beq _080283E8 - str r4, [sp] - str r5, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet - adds r0, r4, 0 - bl Free -_080283E8: - add r0, sp, 0x8 - bl LoadSpritePalette - add r0, sp, 0x10 - bl LoadSpritePalette - add sp, 0x18 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80283A8 - - thumb_func_start sub_8028408 -sub_8028408: @ 8028408 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x30 - adds r6, r1, 0 - mov r8, r2 - adds r5, r3, 0 - lsls r6, 24 - lsrs r6, 24 - mov r1, r8 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r5, 24 - lsrs r5, 24 - add r1, sp, 0x18 - movs r3, 0 - strh r3, [r1] - ldrb r2, [r0] - mov r0, sp - adds r0, 0x1A - strh r2, [r0] - ldr r0, =gUnknown_082FB1E0 - str r0, [sp, 0x1C] - ldr r0, =gUnknown_082FB228 - str r0, [sp, 0x20] - str r3, [sp, 0x24] - ldr r0, =gDummySpriteAffineAnimTable - str r0, [sp, 0x28] - ldr r0, =sub_80284A8 - str r0, [sp, 0x2C] - mov r0, sp - movs r2, 0x18 - bl memcpy - movs r0, 0x4 - bl AllocZeroed - ldr r1, =gUnknown_02022C9C - mov r2, r8 - lsls r4, r2, 2 - adds r4, r1 - str r0, [r4] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_8028F14 - adds r1, r0, 0 - lsls r1, 16 - asrs r1, 16 - mov r0, sp - movs r2, 0x88 - movs r3, 0x3 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - movs r0, 0x1 - mov r1, r8 - bl sub_8028654 - add sp, 0x30 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028408 - - thumb_func_start sub_80284A8 -sub_80284A8: @ 80284A8 - push {lr} - movs r2, 0x2E - ldrsh r1, [r0, r2] - cmp r1, 0x1 - beq _080284BC - cmp r1, 0x1 - ble _080284C6 - cmp r1, 0x2 - beq _080284C2 - b _080284C6 -_080284BC: - bl sub_802853C - b _080284C6 -_080284C2: - bl sub_80285AC -_080284C6: - pop {r0} - bx r0 - thumb_func_end sub_80284A8 - - thumb_func_start sub_80284CC -sub_80284CC: @ 80284CC - push {lr} - bl GetMultiplayerId - ldr r1, =gUnknown_02022C9C - lsls r0, 24 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x1 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - pop {r0} - bx r0 - .pool - thumb_func_end sub_80284CC - - thumb_func_start sub_8028504 -sub_8028504: @ 8028504 - push {lr} - bl GetMultiplayerId - ldr r1, =gUnknown_02022C9C - lsls r0, 24 - lsrs r0, 22 - adds r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r2, 0 - movs r1, 0x2 - strh r1, [r0, 0x2E] - strh r2, [r0, 0x30] - strh r2, [r0, 0x32] - strh r2, [r0, 0x34] - strh r2, [r0, 0x36] - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028504 - - thumb_func_start sub_802853C -sub_802853C: @ 802853C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r2, r0, 16 - lsrs r0, 31 - adds r0, r2, r0 - asrs r1, r0, 1 - adds r0, r1, 0 - cmp r1, 0 - bge _08028558 - adds r0, r1, 0x3 -_08028558: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 24 - lsrs r0, 24 - cmp r2, 0x2 - ble _080285A2 - cmp r0, 0x2 - bgt _0802856E - cmp r0, 0x1 - bge _08028572 -_0802856E: - movs r0, 0x1 - b _08028574 -_08028572: - movs r0, 0xFF -_08028574: - lsls r0, 24 - asrs r0, 24 - ldrh r1, [r4, 0x20] - adds r0, r1 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x27 - ble _080285A2 - movs r0, 0 - strh r0, [r4, 0x2E] - bl sub_8027650 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - movs r0, 0 - bl sub_8028F14 - strh r0, [r4, 0x20] -_080285A2: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_802853C - - thumb_func_start sub_80285AC -sub_80285AC: @ 80285AC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - lsls r0, 16 - asrs r0, 16 - movs r1, 0xD - bl __divsi3 - lsls r0, 16 - asrs r1, r0, 16 - adds r0, r1, 0 - cmp r1, 0 - bge _080285CC - adds r0, r1, 0x3 -_080285CC: - asrs r0, 2 - lsls r0, 2 - subs r0, r1, r0 - lsls r0, 24 - lsrs r4, r0, 24 - movs r1, 0x30 - ldrsh r0, [r5, r1] - movs r1, 0xD - bl __modsi3 - lsls r0, 16 - cmp r0, 0 - bne _080285F0 - cmp r4, 0 - beq _080285F0 - movs r0, 0xD4 - bl PlaySE -_080285F0: - movs r1, 0x30 - ldrsh r0, [r5, r1] - cmp r0, 0x67 - ble _080285FE - movs r0, 0 - strh r0, [r5, 0x2E] - movs r4, 0 -_080285FE: - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - bl sub_80286B4 - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_80285AC - - thumb_func_start sub_8028614 -sub_8028614: @ 8028614 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r4, r5 - bcs _08028646 - ldr r6, =gUnknown_02022C9C -_08028622: - lsls r0, r4, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - cmp r0, 0 - beq _0802863C - bl DestroySpriteAndFreeResources -_0802863C: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _08028622 -_08028646: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028614 - - thumb_func_start sub_8028654 -sub_8028654: @ 8028654 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, =gSprites - ldr r2, =gUnknown_02022C9C - lsrs r1, 22 - adds r1, r2 - ldr r1, [r1] - ldrh r1, [r1] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - ldrb r3, [r2] - movs r1, 0x5 - negs r1, r1 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .pool - thumb_func_end sub_8028654 - - thumb_func_start sub_802868C -sub_802868C: @ 802868C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - movs r4, 0 - cmp r4, r5 - bcs _080286AE -_0802869C: - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_8028654 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcc _0802869C -_080286AE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802868C - - thumb_func_start sub_80286B4 -sub_80286B4: @ 80286B4 - push {lr} - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_02022C9C - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, =gSprites - adds r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_80286B4 - - thumb_func_start nullsub_15 -nullsub_15: @ 80286E0 - bx lr - thumb_func_end nullsub_15 - - thumb_func_start sub_80286E4 -sub_80286E4: @ 80286E4 - push {r4-r7,lr} - movs r4, 0 - ldr r0, =gSprites - mov r12, r0 - movs r6, 0 - ldr r5, =gUnknown_02022CF4 -_080286F0: - ldr r3, [r5] - lsls r1, r4, 1 - adds r0, r3, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - add r1, r12 - lsls r0, r4, 4 - adds r0, 0x30 - strh r0, [r1, 0x20] - lsls r2, r4, 3 - movs r7, 0x8 - negs r7, r7 - adds r0, r7, 0 - subs r0, r2 - strh r0, [r1, 0x22] - adds r3, 0xC - adds r3, r4 - strb r6, [r3] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080286F0 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80286E4 - - thumb_func_start sub_8028734 -sub_8028734: @ 8028734 - push {r4-r6,lr} - sub sp, 0x28 - movs r4, 0xC0 - lsls r4, 1 - adds r0, r4, 0 - bl AllocZeroed - adds r6, r0, 0 - ldr r0, =gUnknown_082FB2E8 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - ldr r0, =gDodrioBerryStatusGfx - adds r1, r6, 0 - bl LZ77UnCompWram - cmp r6, 0 - beq _080287C4 - str r6, [sp, 0x18] - add r5, sp, 0x18 - movs r0, 0x80 - lsls r0, 9 - orrs r0, r4 - str r0, [r5, 0x4] - mov r1, sp - ldr r0, =gUnknown_082FB2F0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r4, =gUnknown_02022CF4 - movs r0, 0x40 - bl AllocZeroed - str r0, [r4] - adds r0, r5, 0 - bl LoadSpriteSheet - add r0, sp, 0x20 - bl LoadSpritePalette - movs r4, 0 -_0802878A: - lsls r1, r4, 20 - movs r0, 0xC0 - lsls r0, 14 - adds r1, r0 - asrs r1, 16 - lsls r0, r4, 3 - movs r3, 0x8 - negs r3, r3 - adds r2, r3, 0 - subs r2, r0 - lsls r2, 16 - asrs r2, 16 - mov r0, sp - movs r3, 0 - bl CreateSprite - ldr r1, =gUnknown_02022CF4 - ldr r1, [r1] - lsls r2, r4, 1 - adds r1, 0x2A - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _0802878A -_080287C4: - adds r0, r6, 0 - bl Free - add sp, 0x28 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028734 - - thumb_func_start sub_80287E4 -sub_80287E4: @ 80287E4 - push {r4,r5,lr} - movs r4, 0 -_080287E8: - ldr r5, =gUnknown_02022CF4 - ldr r0, [r5] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - cmp r0, 0 - beq _08028806 - bl DestroySpriteAndFreeResources -_08028806: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080287E8 - ldr r0, [r5] - bl Free - movs r0, 0 - str r0, [r5] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80287E4 - - thumb_func_start sub_8028828 -sub_8028828: @ 8028828 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x4 - movs r3, 0 - movs r6, 0 - ldr r0, =gUnknown_02022CF4 - mov r9, r0 -_0802883A: - mov r7, r9 - ldr r2, [r7] - lsls r5, r6, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r5 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - adds r0, r2, 0 - adds r0, 0x16 - adds r0, r5 - movs r1, 0x2 - strh r1, [r0] - adds r0, r2, 0 - adds r0, 0xC - adds r2, r0, r6 - ldrb r1, [r2] - cmp r1, 0 - beq _08028870 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r0, 0x8 - beq _080288A6 -_08028870: - movs r3, 0x1 - movs r7, 0x22 - ldrsh r0, [r4, r7] - cmp r0, 0x8 - bne _08028896 - cmp r1, 0 - bne _080288A6 - strb r3, [r2] - mov r1, r9 - ldr r0, [r1] - adds r0, 0x16 - adds r0, r5 - ldr r1, =0x0000fff0 - strh r1, [r0] - movs r0, 0x24 - str r3, [sp] - bl PlaySE - ldr r3, [sp] -_08028896: - mov r7, r9 - ldr r0, [r7] - adds r0, 0x16 - adds r0, r5 - ldrh r0, [r0] - ldrh r1, [r4, 0x22] - adds r0, r1 - strh r0, [r4, 0x22] -_080288A6: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, 0x9 - bls _0802883A - cmp r3, 0 - bne _080288C4 - movs r0, 0x1 - b _080288C6 - .pool -_080288C4: - movs r0, 0 -_080288C6: - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8028828 - - thumb_func_start sub_80288D4 -sub_80288D4: @ 80288D4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _08028910 - movs r4, 0 -_080288E0: - ldr r0, =gUnknown_02022CF4 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080288E0 - b _080289DA - .pool -_08028910: - movs r4, 0 - movs r0, 0xA - subs r0, r5 - cmp r4, r0 - bge _080289D6 - ldr r6, =gSprites -_0802891C: - cmp r5, 0x6 - bls _08028984 - ldr r0, =gUnknown_02022CF4 - ldr r2, [r0] - ldr r1, =0x0000fffa - adds r0, r1, 0 - ldrh r1, [r2, 0x3E] - adds r0, r1 - adds r0, r5 - movs r1, 0 - strh r0, [r2, 0x3E] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1E - bls _0802894C - strh r1, [r2, 0x3E] - b _0802899E - .pool -_0802894C: - cmp r0, 0xA - bls _0802896A - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0x2 - bl StartSpriteAnim - b _0802899E -_0802896A: - lsls r1, r4, 1 - adds r0, r2, 0 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim - b _0802899E -_08028984: - ldr r0, =gUnknown_02022CF4 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r6 - movs r1, 0 - bl StartSpriteAnim -_0802899E: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0xA - subs r0, r5 - cmp r4, r0 - blt _0802891C - b _080289D6 - .pool -_080289B4: - ldr r0, =gUnknown_02022CF4 - ldr r0, [r0] - lsls r1, r4, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - movs r1, 0x1 - bl StartSpriteAnim - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080289D6: - cmp r4, 0x9 - bls _080289B4 -_080289DA: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80288D4 - - thumb_func_start sub_80289E8 -sub_80289E8: @ 80289E8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, =gSprites - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r6, 0x5 - negs r6, r6 - ldr r5, =gUnknown_02022CF4 -_080289FE: - ldr r0, [r5] - lsls r1, r3, 1 - adds r0, 0x2A - adds r0, r1 - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x9 - bls _080289FE - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80289E8 - - thumb_func_start sub_8028A34 -sub_8028A34: @ 8028A34 - push {r4,r5,lr} - sub sp, 0x10 - movs r5, 0x90 - lsls r5, 3 - adds r0, r5, 0 - bl AllocZeroed - adds r4, r0, 0 - ldr r0, =gUnknown_082FB314 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r0, =gDodrioBerrySpritesGfx - adds r1, r4, 0 - bl LZ77UnCompWram - cmp r4, 0 - beq _08028A6A - str r4, [sp] - movs r0, 0x80 - lsls r0, 10 - orrs r0, r5 - str r0, [sp, 0x4] - mov r0, sp - bl LoadSpriteSheet -_08028A6A: - add r0, sp, 0x8 - bl LoadSpritePalette - adds r0, r4, 0 - bl Free - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028A34 - - thumb_func_start sub_8028A88 -sub_8028A88: @ 8028A88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x30 - mov r1, sp - ldr r0, =gUnknown_082FB324 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2,r3,r5} - stm r1!, {r2,r3,r5} - add r2, sp, 0x18 - adds r1, r2, 0 - ldr r0, =gUnknown_082FB33C - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - ldm r0!, {r3-r5} - stm r1!, {r3-r5} - movs r5, 0 - mov r9, r2 -_08028AB0: - movs r0, 0x4 - bl AllocZeroed - ldr r1, =gUnknown_02022CB8 - lsls r4, r5, 2 - adds r4, r1 - str r0, [r4] - lsls r0, r5, 3 - lsls r1, r5, 4 - adds r1, r0 - mov r0, sp - movs r2, 0x8 - movs r3, 0x1 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8028BF8 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _08028AB0 - movs r5, 0 - ldr r7, =gUnknown_02022CE4 - ldr r4, =gUnknown_082FB31C - mov r8, r4 -_08028AF0: - movs r0, 0x4 - bl AllocZeroed - lsls r1, r5, 2 - adds r4, r1, r7 - str r0, [r4] - adds r6, r1, 0 - cmp r5, 0x3 - bne _08028B2C - mov r0, r8 - movs r2, 0x6 - ldrsh r1, [r0, r2] - mov r0, r9 - movs r2, 0x31 - movs r3, 0 - bl CreateSprite - ldr r1, [r7, 0xC] - b _08028B40 - .pool -_08028B2C: - lsls r0, r5, 1 - add r0, r8 - movs r3, 0 - ldrsh r1, [r0, r3] - mov r0, r9 - movs r2, 0x34 - movs r3, 0 - bl CreateSprite - ldr r1, [r4] -_08028B40: - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r6, r7 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r1, r5, 0 - bl StartSpriteAnim - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08028AF0 - movs r0, 0x1 - bl sub_8028C30 - add sp, 0x30 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028A88 - - thumb_func_start sub_8028B80 -sub_8028B80: @ 8028B80 - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gUnknown_02022CB8 -_08028B86: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - cmp r0, 0 - beq _08028BA0 - bl DestroySprite -_08028BA0: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _08028B86 - movs r5, 0 - ldr r6, =gUnknown_02022CE4 -_08028BB8: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - cmp r0, 0 - beq _08028BD2 - bl DestroySprite -_08028BD2: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _08028BB8 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028B80 - - thumb_func_start sub_8028BF8 -sub_8028BF8: @ 8028BF8 - lsls r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, =gSprites - ldr r2, =gUnknown_02022CB8 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - adds r2, 0x3E - movs r0, 0x1 - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_8028BF8 - - thumb_func_start sub_8028C30 -sub_8028C30: @ 8028C30 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, =gSprites - ldr r6, =gUnknown_02022CE4 - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_08028C46: - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _08028C46 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028C30 - - thumb_func_start sub_8028C7C -sub_8028C7C: @ 8028C7C - lsls r0, 24 - lsls r1, 24 - ldr r3, =gSprites - ldr r2, =gUnknown_02022CB8 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r3 - lsrs r1, 21 - strh r1, [r0, 0x22] - bx lr - .pool - thumb_func_end sub_8028C7C - - thumb_func_start sub_8028CA4 -sub_8028CA4: @ 8028CA4 - push {lr} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - ldr r2, =gUnknown_02022CB8 - lsrs r0, 14 - adds r0, r2 - ldr r0, [r0] - ldrh r2, [r0] - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r2, =gSprites - adds r0, r2 - bl StartSpriteAnim - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028CA4 - - thumb_func_start sub_8028CD0 -sub_8028CD0: @ 8028CD0 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 2 - adds r1, 0x32 - strh r1, [r2, 0x20] - movs r0, 0x32 - strh r0, [r2, 0x22] - bx lr - .pool - thumb_func_end sub_8028CD0 - - thumb_func_start sub_8028CF4 -sub_8028CF4: @ 8028CF4 - push {r4-r7,lr} - adds r4, r0, 0 - adds r0, 0x42 - movs r1, 0 - ldrsh r0, [r0, r1] - cmp r0, 0x1 - beq _08028D36 - movs r3, 0 - ldr r7, =gUnknown_082FB354 - ldr r6, =gUnknown_02022CB0 - movs r5, 0 -_08028D0A: - lsls r0, r3, 2 - adds r2, r0, r6 - ldr r1, [r2] - ldrh r0, [r1, 0x2] - adds r0, 0x1 - strh r0, [r1, 0x2] - adds r1, r3, r7 - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r1] - cmp r0, r1 - bls _08028D2C - ldrh r0, [r4, 0x20] - subs r0, 0x1 - strh r0, [r4, 0x20] - ldr r0, [r2] - strh r5, [r0, 0x2] -_08028D2C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _08028D0A -_08028D36: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028CF4 - - thumb_func_start sub_8028D44 -sub_8028D44: @ 8028D44 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x28 - movs r4, 0x80 - lsls r4, 3 - adds r0, r4, 0 - bl AllocZeroed - adds r6, r0, 0 - ldr r0, =gUnknown_082FB360 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp, 0x20] - str r1, [sp, 0x24] - ldr r0, =gDodrioBerryPlatformGfx - adds r1, r6, 0 - bl LZ77UnCompWram - cmp r6, 0 - beq _08028DD2 - str r6, [sp, 0x18] - add r0, sp, 0x18 - movs r1, 0xA0 - lsls r1, 11 - orrs r1, r4 - str r1, [r0, 0x4] - mov r2, sp - ldr r1, =gUnknown_082FB368 - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - ldm r1!, {r3-r5} - stm r2!, {r3-r5} - bl LoadSpriteSheet - add r0, sp, 0x20 - bl LoadSpritePalette - movs r5, 0 - ldr r7, =gUnknown_082FB356 - adds r0, r7, 0x2 - mov r9, r0 - ldr r1, =gUnknown_02022CB0 - mov r8, r1 -_08028D9E: - movs r0, 0x4 - bl AllocZeroed - lsls r2, r5, 2 - mov r3, r8 - adds r4, r2, r3 - str r0, [r4] - adds r0, r2, r7 - movs r3, 0 - ldrsh r1, [r0, r3] - add r2, r9 - movs r0, 0 - ldrsh r2, [r2, r0] - mov r0, sp - movs r3, 0x4 - bl CreateSprite - ldr r1, [r4] - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08028D9E -_08028DD2: - adds r0, r6, 0 - bl Free - add sp, 0x28 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028D44 - - thumb_func_start sub_8028DFC -sub_8028DFC: @ 8028DFC - push {r4-r7,lr} - movs r3, 0 - ldr r0, =gUnknown_02022CB0 - mov r12, r0 - ldr r4, =gUnknown_082FB356 - adds r7, r4, 0x2 - ldr r6, =gSprites - movs r5, 0x1 -_08028E0C: - lsls r2, r3, 2 - mov r1, r12 - adds r0, r2, r1 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r6 - adds r0, r1, 0 - adds r0, 0x42 - strh r5, [r0] - adds r0, r2, r4 - ldrh r0, [r0] - strh r0, [r1, 0x20] - adds r2, r7 - ldrh r0, [r2] - strh r0, [r1, 0x22] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _08028E0C - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028DFC - - thumb_func_start sub_8028E4C -sub_8028E4C: @ 8028E4C - push {r4,r5,lr} - movs r2, 0 - ldr r5, =gUnknown_02022CB0 - ldr r4, =gSprites - movs r3, 0 -_08028E56: - lsls r0, r2, 2 - adds r0, r5 - ldr r0, [r0] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - adds r0, 0x42 - strh r3, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1 - bls _08028E56 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028E4C - - thumb_func_start sub_8028E84 -sub_8028E84: @ 8028E84 - push {r4-r6,lr} - movs r5, 0 - ldr r6, =gUnknown_02022CB0 -_08028E8A: - lsls r0, r5, 2 - adds r4, r0, r6 - ldr r0, [r4] - ldrh r1, [r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - cmp r0, 0 - beq _08028EA4 - bl DestroySprite -_08028EA4: - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _08028E8A - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028E84 - - thumb_func_start sub_8028EC8 -sub_8028EC8: @ 8028EC8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r0, 24 - movs r3, 0 - ldr r7, =gSprites - ldr r6, =gUnknown_02022CB0 - movs r1, 0x1 - ands r0, r1 - lsls r4, r0, 2 - movs r5, 0x5 - negs r5, r5 -_08028EDE: - lsls r0, r3, 2 - adds r0, r6 - ldr r0, [r0] - ldrh r0, [r0] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r7 - adds r1, 0x3E - ldrb r2, [r1] - adds r0, r5, 0 - ands r0, r2 - orrs r0, r4 - strb r0, [r1] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x1 - bls _08028EDE - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8028EC8 - - thumb_func_start sub_8028F14 -sub_8028F14: @ 8028F14 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r1, 24 - lsrs r1, 24 - movs r3, 0 - subs r0, r1, 0x1 - cmp r0, 0x4 - bhi _08028FC6 - lsls r0, 2 - ldr r1, =_08028F34 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08028F34: - .4byte _08028FB4 - .4byte _08028F48 - .4byte _08028F52 - .4byte _08028F66 - .4byte _08028F8E -_08028F48: - cmp r2, 0 - beq _08028F7E - cmp r2, 0x1 - bne _08028FC6 - b _08028F82 -_08028F52: - cmp r2, 0x1 - beq _08028FB8 - cmp r2, 0x1 - bgt _08028F60 - cmp r2, 0 - beq _08028FB4 - b _08028FC6 -_08028F60: - cmp r2, 0x2 - bne _08028FC6 - b _08028FC4 -_08028F66: - cmp r2, 0x1 - beq _08028F82 - cmp r2, 0x1 - bgt _08028F74 - cmp r2, 0 - beq _08028F7E - b _08028FC6 -_08028F74: - cmp r2, 0x2 - beq _08028F86 - cmp r2, 0x3 - beq _08028F8A - b _08028FC6 -_08028F7E: - movs r3, 0xC - b _08028FC6 -_08028F82: - movs r3, 0x12 - b _08028FC6 -_08028F86: - movs r3, 0x18 - b _08028FC6 -_08028F8A: - movs r3, 0x6 - b _08028FC6 -_08028F8E: - cmp r2, 0x4 - bhi _08028FC6 - lsls r0, r2, 2 - ldr r1, =_08028FA0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08028FA0: - .4byte _08028FB4 - .4byte _08028FB8 - .4byte _08028FBC - .4byte _08028FC0 - .4byte _08028FC4 -_08028FB4: - movs r3, 0xF - b _08028FC6 -_08028FB8: - movs r3, 0x15 - b _08028FC6 -_08028FBC: - movs r3, 0x1B - b _08028FC6 -_08028FC0: - movs r3, 0x3 - b _08028FC6 -_08028FC4: - movs r3, 0x9 -_08028FC6: - lsls r0, r3, 3 - pop {r1} - bx r1 - thumb_func_end sub_8028F14 - - thumb_func_start sub_8028FCC -sub_8028FCC: @ 8028FCC - push {r4,lr} - movs r4, 0 -_08028FD0: - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8028BF8 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8028C7C - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _08028FD0 - movs r0, 0 - bl sub_80289E8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8028FCC - - thumb_func_start sub_8028FF8 -sub_8028FF8: @ 8028FF8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl GetWindowFrameTilesPal - ldr r1, [r0] - movs r2, 0x90 - lsls r2, 1 - movs r0, 0 - movs r3, 0x1 - bl LoadBgTiles - adds r0, r4, 0 - bl GetWindowFrameTilesPal - ldr r0, [r0, 0x4] - movs r1, 0xA0 - movs r2, 0x20 - bl LoadPalette - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8028FF8 - - thumb_func_start sub_802902C -sub_802902C: @ 802902C - push {lr} - movs r0, 0 - movs r1, 0xA - movs r2, 0xB0 - bl LoadUserWindowBorderGfx_ - pop {r0} - bx r0 - thumb_func_end sub_802902C - - thumb_func_start sub_802903C -sub_802903C: @ 802903C - ldr r3, =gUnknown_02022CF8 - ldr r0, [r3] - movs r2, 0xC0 - lsls r2, 6 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r1, =0x00003014 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x8 - adds r0, r1 - strb r2, [r0] - ldr r0, [r3] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - bx lr - .pool - thumb_func_end sub_802903C - - thumb_func_start sub_8029074 -sub_8029074: @ 8029074 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r6, 0xA - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x1 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x2 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x3 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x4 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x6 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x7 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x8 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r4, [r4, 0x2] - adds r3, r4 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x9 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8029074 - - thumb_func_start sub_8029174 -sub_8029174: @ 8029174 - push {r4-r6,lr} - sub sp, 0xC - adds r4, r0, 0 - movs r6, 0xB - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - movs r5, 0x1 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xA - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xB - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - subs r3, 0x1 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xC - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xD - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x2] - str r5, [sp] - ldrb r0, [r4, 0x4] - str r0, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0xF - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - subs r2, 0x1 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x10 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x1] - ldrb r3, [r4, 0x4] - ldrb r0, [r4, 0x2] - adds r3, r0 - lsls r3, 24 - lsrs r3, 24 - ldrb r0, [r4, 0x3] - str r0, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x11 - bl FillBgTilemapBufferRect - ldrb r2, [r4, 0x3] - ldrb r0, [r4, 0x1] - adds r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r3, [r4, 0x4] - ldrb r4, [r4, 0x2] - adds r3, r4 - lsls r3, 24 - lsrs r3, 24 - str r5, [sp] - str r5, [sp, 0x4] - str r6, [sp, 0x8] - movs r0, 0 - movs r1, 0x12 - bl FillBgTilemapBufferRect - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8029174 - - thumb_func_start sub_8029274 -sub_8029274: @ 8029274 - push {r4,lr} - ldr r4, =gUnknown_02022CF8 - str r0, [r4] - movs r2, 0xC0 - lsls r2, 6 - adds r1, r0, r2 - movs r2, 0 - str r2, [r1] - ldr r3, =0x00003014 - adds r1, r0, r3 - strb r2, [r1] - ldr r1, =0x00003018 - adds r0, r1 - strb r2, [r0] - ldr r0, [r4] - adds r3, 0xC - adds r0, r3 - strb r2, [r0] - ldr r0, [r4] - adds r1, 0xC - adds r0, r1 - strb r2, [r0] - ldr r0, =sub_8029314 - movs r1, 0x3 - bl CreateTask - ldr r1, [r4] - ldr r2, =0x00003004 - adds r1, r2 - strb r0, [r1] - ldr r0, =sub_8029338 - bl sub_802A72C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8029274 - - thumb_func_start sub_80292D4 -sub_80292D4: @ 80292D4 - push {lr} - bl FreeAllWindowBuffers - pop {r0} - bx r0 - thumb_func_end sub_80292D4 - - thumb_func_start sub_80292E0 -sub_80292E0: @ 80292E0 - push {r4-r7,lr} - lsls r0, 24 - lsrs r6, r0, 24 - movs r4, 0 - ldr r5, =gUnknown_082FB40C - adds r7, r5, 0x4 -_080292EC: - lsls r1, r4, 3 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, r6 - bne _080292FE - adds r0, r1, r7 - ldr r0, [r0] - bl sub_802A72C -_080292FE: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x9 - bls _080292EC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80292E0 - - thumb_func_start sub_8029314 -sub_8029314: @ 8029314 - push {lr} - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0 - bne _0802932E - bl sub_802A75C - bl _call_via_r0 -_0802932E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8029314 - - thumb_func_start sub_8029338 -sub_8029338: @ 8029338 - push {lr} - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r2, =0x00003014 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0x4 - bhi _08029430 - lsls r0, 2 - ldr r1, =_08029360 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08029360: - .4byte _08029374 - .4byte _0802937A - .4byte _08029394 - .4byte _080293D8 - .4byte _08029404 -_08029374: - bl sub_802A7A8 - b _08029414 -_0802937A: - bl sub_802A8E8 - cmp r0, 0x1 - bne _0802943A - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r2, =0x00003014 - adds r1, r2 - b _0802941C - .pool -_08029394: - ldr r1, =gDodrioBerryBgTilemap1 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, =gDodrioBerryBgTilemap2Left - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, =gDodrioBerryBgTilemap2Right - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - b _08029414 - .pool -_080293D8: - movs r0, 0 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r2, =0x00003014 - adds r1, r2 - b _0802941C - .pool -_08029404: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x14] - lsrs r0, 3 - bl sub_8028FF8 - bl sub_802902C -_08029414: - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003014 - adds r1, r0 -_0802941C: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802943A - .pool -_08029430: - movs r2, 0xC0 - lsls r2, 6 - adds r1, r2 - movs r0, 0x1 - str r0, [r1] -_0802943A: - pop {r0} - bx r0 - thumb_func_end sub_8029338 - - thumb_func_start sub_8029440 -sub_8029440: @ 8029440 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r2, =0x00003014 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08029488 - cmp r0, 0x1 - bne _08029460 - b _080295EC -_08029460: - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xB4 - bhi _0802946E - b _0802968E -_0802946E: - bl sub_8027650 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - cmp r6, r7 - bcc _0802947E - b _08029666 -_0802947E: - b _08029640 - .pool -_08029488: - bl sub_8027650 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, =gUnknown_082FB3C8 - subs r0, r7, 0x1 - lsls r0, 2 - adds r0, r1 - ldr r5, [r0] - ldr r2, =0xffffff00 - ldr r0, [sp, 0xC] - ands r0, r2 - ldr r1, =0x00ffffff - ands r0, r1 - movs r1, 0xE0 - lsls r1, 19 - orrs r0, r1 - str r0, [sp, 0xC] - ldr r0, [sp, 0x10] - ands r0, r2 - movs r1, 0x2 - orrs r0, r1 - ldr r1, =0xffff00ff - ands r0, r1 - movs r1, 0xD0 - lsls r1, 4 - orrs r0, r1 - ldr r1, =0x0000ffff - ands r0, r1 - movs r1, 0x98 - lsls r1, 13 - orrs r0, r1 - str r0, [sp, 0x10] - movs r6, 0 - cmp r6, r7 - bcs _080295B8 - mov r3, sp - adds r3, 0xC - str r3, [sp, 0x18] - mov r10, r4 - ldr r0, =0x00003008 - mov r9, r0 -_080294DC: - movs r1, 0 - mov r8, r1 - adds r0, r6, 0 - bl sub_8027A48 - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - bl sub_8027660 - adds r1, r0, 0 - movs r0, 0x1 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - movs r1, 0x38 - subs r1, r0 - lsrs r1, 1 - str r1, [sp, 0x14] - ldrb r0, [r5] - lsls r0, 8 - ldr r2, =0xffff00ff - ldr r1, [sp, 0xC] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0xC] - ldrb r2, [r5, 0x1] - lsls r2, 16 - ldr r0, =0xff00ffff - ands r0, r1 - orrs r0, r2 - str r0, [sp, 0xC] - add r0, sp, 0xC - bl AddWindow - mov r2, r10 - ldr r1, [r2] - add r1, r9 - adds r1, r6 - strb r0, [r1] - ldr r0, [r2] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r3, r10 - ldr r0, [r3] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0802955A - movs r0, 0x2 - mov r8, r0 -_0802955A: - adds r0, r4, 0 - bl sub_8027660 - adds r4, r0, 0 - mov r1, r10 - ldr r0, [r1] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - ldr r3, [sp, 0x14] - lsls r2, r3, 24 - lsrs r2, 24 - mov r3, r8 - lsls r1, r3, 1 - add r1, r8 - ldr r3, =gUnknown_082FB380 - adds r1, r3 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x1 - bl AddTextPrinterParameterized3 - mov r2, r10 - ldr r0, [r2] - add r0, r9 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r3, [sp, 0x18] - ldrh r0, [r3, 0x6] - adds r0, 0xE - strh r0, [r3, 0x6] - add r0, sp, 0xC - bl sub_8029174 - adds r5, 0x4 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _080294DC -_080295B8: - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003014 - adds r1, r0 - b _0802962A - .pool -_080295EC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0802968E - bl sub_8027650 - lsls r0, 24 - lsrs r7, r0, 24 - movs r6, 0 - cmp r6, r7 - bcs _0802961C -_08029604: - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - adds r0, r6 - ldrb r0, [r0] - bl PutWindowTilemap - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08029604 -_0802961C: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r2, =0x00003014 - adds r1, r2 -_0802962A: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802968E - .pool -_08029640: - ldr r5, =gUnknown_02022CF8 - ldr r0, [r5] - ldr r4, =0x00003008 - adds r0, r4 - adds r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r4 - adds r0, r6 - ldrb r0, [r0] - bl RemoveWindow - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r6, r7 - bcc _08029640 -_08029666: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - movs r3, 0xC0 - lsls r3, 6 - adds r0, r3 - movs r1, 0x1 - str r1, [r0] -_0802968E: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8029440 - - thumb_func_start sub_80296A8 -sub_80296A8: @ 80296A8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x6C - lsls r0, 24 - movs r1, 0 - mov r8, r1 - movs r6, 0 - lsrs r7, r0, 24 - add r4, sp, 0x2C - ldr r1, =gUnknown_082FB45C - adds r0, r4, 0 - movs r2, 0x5 - bl memcpy - movs r5, 0 - cmp r5, r7 - bcs _080296F8 - add r4, sp, 0x34 -_080296D2: - mov r0, sp - adds r0, r5 - adds r0, 0x2C - strb r5, [r0] - add r0, sp, 0x5C - adds r1, r5, 0 - bl sub_802793C - lsls r2, r5, 3 - adds r2, r4, r2 - ldr r0, [sp, 0x5C] - ldr r1, [sp, 0x60] - str r0, [r2] - str r1, [r2, 0x4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _080296D2 -_080296F8: - bl sub_8027748 - cmp r0, 0 - beq _0802972E -_08029700: - movs r5, 0 - cmp r5, r7 - bcs _08029728 - add r2, sp, 0x34 - add r1, sp, 0x2C -_0802970A: - lsls r0, r5, 3 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r8 - bne _0802971E - adds r0, r1, r6 - strb r5, [r0] - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 -_0802971E: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _0802970A -_08029728: - mov r8, r6 - cmp r6, r7 - bcc _08029700 -_0802972E: - movs r5, 0 - ldr r4, =gText_SpacePoints - cmp r5, r7 - bcs _08029754 - add r1, sp, 0x34 - add r6, sp, 0x38 - subs r3, r7, 0x1 -_0802973C: - lsls r2, r5, 3 - adds r0, r6, r2 - ldr r0, [r0] - cmp r0, 0 - bne _0802974A - adds r0, r1, r2 - strb r3, [r0] -_0802974A: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _0802973C -_08029754: - movs r0, 0x1 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r1, 0xD8 - subs r1, r0 - str r1, [sp, 0x64] - movs r5, 0 - cmp r5, r7 - bcs _08029860 - mov r2, sp - adds r2, 0x34 - str r2, [sp, 0x68] - ldr r3, =0x00003009 - mov r10, r3 -_08029774: - movs r0, 0 - mov r8, r0 - mov r0, sp - adds r0, r5 - adds r0, 0x2C - ldrb r0, [r0] - adds r4, r0, 0 - lsls r1, r4, 3 - add r0, sp, 0x38 - adds r0, r1 - ldr r0, [r0] - mov r9, r0 - ldr r2, =gUnknown_02022CF8 - ldr r0, [r2] - add r0, r10 - ldrb r0, [r0] - ldr r2, =gUnknown_082FB3DC - ldr r3, [sp, 0x68] - adds r1, r3, r1 - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r2, [r1] - ldr r3, =gUnknown_082FB402 - lsls r1, r5, 1 - adds r1, r3 - ldrb r6, [r1] - str r6, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - mov r3, r8 - str r3, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _080297CC - movs r0, 0x2 - mov r8, r0 -_080297CC: - adds r0, r4, 0 - bl sub_8027660 - adds r3, r0, 0 - ldr r1, =gUnknown_02022CF8 - ldr r0, [r1] - add r0, r10 - ldrb r0, [r0] - mov r2, r8 - lsls r1, r2, 1 - add r1, r8 - ldr r2, =gUnknown_082FB380 - adds r1, r2 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - str r3, [sp, 0x8] - movs r1, 0x1 - movs r2, 0x1C - adds r3, r6, 0 - bl AddTextPrinterParameterized3 - add r0, sp, 0xC - mov r1, r9 - movs r2, 0 - movs r3, 0x7 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - add r1, sp, 0xC - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r3, r0, 0 - ldr r2, =gUnknown_02022CF8 - ldr r0, [r2] - add r0, r10 - ldrb r0, [r0] - ldr r1, [sp, 0x64] - subs r3, r1, r3 - lsls r3, 24 - lsrs r3, 24 - str r6, [sp] - movs r2, 0xFF - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - add r2, sp, 0xC - bl AddTextPrinterParameterized - ldr r2, =gUnknown_02022CF8 - ldr r0, [r2] - add r0, r10 - ldrb r0, [r0] - ldr r1, [sp, 0x64] - lsls r3, r1, 24 - str r6, [sp] - movs r2, 0xFF - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - ldr r2, =gText_SpacePoints - lsrs r3, 24 - bl AddTextPrinterParameterized - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r7 - bcc _08029774 -_08029860: - add sp, 0x6C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80296A8 - - thumb_func_start sub_802988C -sub_802988C: @ 802988C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - bl sub_8027650 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - ldr r6, =gUnknown_02022CF8 - ldr r1, [r6] - ldr r2, =0x00003014 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0xB - bls _080298B2 - b _08029FA8 -_080298B2: - lsls r0, 2 - ldr r1, =_080298C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080298C8: - .4byte _080298F8 - .4byte _08029914 - .4byte _0802996C - .4byte _08029B6C - .4byte _08029BB8 - .4byte _08029BFC - .4byte _08029C60 - .4byte _08029C9C - .4byte _08029CE0 - .4byte _08029DA0 - .4byte _08029F08 - .4byte _08029F5C -_080298F8: - bl sub_802784C - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x0000301c - adds r2, r1, r0 - movs r0, 0 - strh r0, [r2] - b _08029F8A - .pool -_08029914: - ldr r6, =gUnknown_082F7BBC - adds r0, r6, 0 - bl AddWindow - ldr r4, =gUnknown_02022CF8 - ldr r1, [r4] - ldr r2, =0x00003008 - mov r8, r2 - add r1, r8 - strb r0, [r1] - movs r0, 0x8 - adds r0, r6 - mov r9, r0 - bl AddWindow - ldr r1, [r4] - ldr r5, =0x00003009 - adds r1, r5 - strb r0, [r1] - ldr r0, [r4] - add r0, r8 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, 0 - bl sub_8029174 - mov r0, r9 - bl sub_8029174 - b _08029F88 - .pool -_0802996C: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r5, =0x00003008 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, =0x00003009 - mov r9, r1 - add r0, r9 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r2, =gText_BerryPickingResults - mov r8, r2 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - mov r1, r8 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r6, 0xFF - str r6, [sp, 0x4] - movs r5, 0 - str r5, [sp, 0x8] - mov r2, r8 - bl AddTextPrinterParameterized - ldr r0, [r4] - add r0, r9 - ldrb r0, [r0] - ldr r2, =gText_10P30P50P50P - movs r1, 0x11 - str r1, [sp] - str r6, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x44 - bl AddTextPrinterParameterized - mov r9, r5 - ldr r0, [sp, 0xC] - cmp r9, r0 - bcc _080299E2 - b _08029B2A -_080299E2: - movs r4, 0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r0, 24 - cmp r9, r0 - bne _080299F2 - movs r4, 0x2 -_080299F2: - mov r0, r9 - bl sub_8027660 - adds r6, r0, 0 - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r1, =0x00003009 - adds r0, r1 - ldrb r0, [r0] - mov r2, r9 - lsls r5, r2, 1 - ldr r2, =gUnknown_082FB3F8 - adds r1, r5, r2 - ldrb r3, [r1] - lsls r1, r4, 1 - adds r1, r4 - ldr r2, =gUnknown_082FB380 - adds r1, r2 - str r1, [sp] - movs r4, 0x1 - negs r4, r4 - str r4, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - movs r2, 0 - bl AddTextPrinterParameterized3 - movs r7, 0 - mov r8, r5 - mov r0, r9 - adds r0, 0x1 - str r0, [sp, 0x10] - ldr r1, =gStringVar4 - mov r10, r1 -_08029A36: - mov r0, r9 - adds r1, r7, 0 - bl sub_80276A0 - lsls r0, 16 - lsrs r0, 16 - ldr r1, =0x0000270f - bl sub_8027A38 - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - adds r0, r7, 0 - bl sub_802778C - ldr r1, =0x0000270f - bl sub_8027A38 - lsls r0, 16 - lsrs r6, r0, 16 - mov r0, r10 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - movs r0, 0x1 - mov r1, r10 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r5, r0, 0 - cmp r6, r4 - bne _08029AE0 - cmp r6, 0 - beq _08029AE0 - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - lsls r1, r7, 1 - ldr r2, =gUnknown_082FB3F0 - adds r1, r2 - ldrb r2, [r1] - subs r2, r5 - lsls r2, 24 - lsrs r2, 24 - ldr r1, =gUnknown_082FB3F8 - add r1, r8 - ldrb r3, [r1] - ldr r1, =gUnknown_082FB383 - str r1, [sp] - movs r1, 0x1 - negs r1, r1 - str r1, [sp, 0x4] - mov r1, r10 - str r1, [sp, 0x8] - movs r1, 0x1 - bl AddTextPrinterParameterized3 - b _08029B10 - .pool -_08029AE0: - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - lsls r1, r7, 1 - ldr r2, =gUnknown_082FB3F0 - adds r1, r2 - ldrb r3, [r1] - subs r3, r5 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gUnknown_082FB3F8 - add r1, r8 - ldrb r1, [r1] - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - ldr r2, =gStringVar4 - bl AddTextPrinterParameterized -_08029B10: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0x3 - bls _08029A36 - ldr r1, [sp, 0x10] - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 - ldr r2, [sp, 0xC] - cmp r9, r2 - bcs _08029B2A - b _080299E2 -_08029B2A: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029B6C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08029B90 - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08029B90: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0 - bl sub_8028C30 - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029BB8: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _08029BD0 - b _08029FF8 -_08029BD0: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08029BDE - b _08029FF8 -_08029BDE: - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE - movs r0, 0x1 - bl sub_8028C30 - b _08029F88 - .pool -_08029BFC: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r5, =0x00003008 - adds r0, r5 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, =0x00003009 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r6, =gText_AnnouncingRankings - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r6, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r5 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r1, 0x1 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - adds r2, r6, 0 - bl AddTextPrinterParameterized - b _08029F88 - .pool -_08029C60: - ldr r0, [sp, 0xC] - bl sub_80296A8 - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029C9C: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08029CC0 - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08029CC0: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029CE0: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bhi _08029CF8 - b _08029FF8 -_08029CF8: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08029D06 - b _08029FF8 -_08029D06: - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE - bl sub_8027748 - ldr r1, =0x00000bb7 - cmp r0, r1 - bhi _08029D3C - ldr r0, [r4] - ldr r2, =0x00003014 - adds r0, r2 - movs r1, 0x7F - strb r1, [r0] - b _08029D4C - .pool -_08029D3C: - bl StopMapMusic - ldr r1, [r4] - ldr r0, =0x00003014 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08029D4C: - movs r0, 0x1E - str r0, [sp] - movs r0, 0xF - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0x5 - bl FillBgTilemapBufferRect_Palette0 - ldr r5, =gUnknown_02022CF8 - ldr r0, [r5] - ldr r4, =0x00003009 - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - ldr r6, =gUnknown_082F7BCC - adds r0, r6, 0 - bl AddWindow - ldr r1, [r5] - adds r1, r4 - strb r0, [r1] - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r6, 0 - bl sub_8029174 - b _08029FF8 - .pool -_08029DA0: - ldr r0, =0x0000016f - bl PlayNewMapMusic - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r6, =0x00003008 - adds r0, r6 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r4] - ldr r1, =0x00003009 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r5, =gText_AnnouncingPrizes - movs r2, 0x1 - negs r2, r2 - movs r0, 0x1 - adds r1, r5, 0 - bl GetStringWidth - adds r1, r0, 0 - movs r0, 0xE0 - subs r0, r1 - lsrs r3, r0, 1 - ldr r0, [r4] - adds r0, r6 - ldrb r0, [r0] - lsls r3, 24 - lsrs r3, 24 - movs r2, 0x1 - mov r9, r2 - str r2, [sp] - movs r1, 0xFF - mov r8, r1 - str r1, [sp, 0x4] - movs r6, 0 - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r5, 0 - bl AddTextPrinterParameterized - bl DynamicPlaceholderTextUtil_Reset - bl sub_802762C - lsls r0, 16 - lsrs r0, 16 - ldr r5, =gStringVar1 - adds r1, r5, 0 - bl CopyItemName - movs r0, 0 - adds r1, r5, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r7, =gStringVar4 - ldr r1, =gText_FirstPlacePrize - adds r0, r7, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r0, [r4] - add r0, r10 - ldrb r0, [r0] - mov r2, r9 - str r2, [sp] - mov r1, r8 - str r1, [sp, 0x4] - str r6, [sp, 0x8] - movs r1, 0x1 - adds r2, r7, 0 - movs r3, 0 - bl AddTextPrinterParameterized - bl sub_80279C8 - lsls r0, 24 - lsrs r4, r0, 24 - adds r6, r4, 0 - cmp r4, 0 - beq _08029EC8 - cmp r4, 0x3 - beq _08029EC8 - bl DynamicPlaceholderTextUtil_Reset - bl sub_802762C - lsls r0, 16 - lsrs r0, 16 - adds r1, r5, 0 - bl CopyItemName - movs r0, 0 - adds r1, r5, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - cmp r4, 0x2 - bne _08029E9C - ldr r1, =gText_CantHoldAnyMore - adds r0, r7, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - b _08029EA8 - .pool -_08029E9C: - cmp r6, 0x1 - bne _08029EA8 - ldr r1, =gText_FilledStorageSpace - adds r0, r7, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders -_08029EA8: - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - ldr r2, =gStringVar4 - movs r1, 0x29 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized -_08029EC8: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r4] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029F08: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _08029F2C - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r4] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl PutWindowTilemap -_08029F2C: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =0x0000020b - movs r1, 0x14 - movs r2, 0xA - bl FadeOutAndFadeInNewMapMusic - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003014 - adds r1, r0 - b _08029F8E - .pool -_08029F5C: - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x0000301c - adds r2, r0, r1 - ldrh r0, [r2] - adds r0, 0x1 - strh r0, [r2] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1D - bls _08029FF8 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08029FF8 - movs r0, 0 - strh r0, [r2] - movs r0, 0x5 - bl PlaySE -_08029F88: - ldr r1, [r4] -_08029F8A: - ldr r2, =0x00003014 - adds r1, r2 -_08029F8E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08029FF8 - .pool -_08029FA8: - ldr r5, =0x00003008 - adds r0, r1, r5 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - ldr r4, =0x00003009 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r5 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_08029FF8: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802988C - - thumb_func_start sub_802A010 -sub_802A010: @ 802A010 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - ldr r1, =gUnknown_02022CF8 - ldr r2, [r1] - ldr r3, =0x00003014 - adds r0, r2, r3 - ldrb r6, [r0] - adds r7, r1, 0 - cmp r6, 0x1 - beq _0802A0CC - cmp r6, 0x1 - bgt _0802A040 - cmp r6, 0 - beq _0802A04E - b _0802A2FC - .pool -_0802A040: - cmp r6, 0x2 - bne _0802A046 - b _0802A194 -_0802A046: - cmp r6, 0x3 - bne _0802A04C - b _0802A1D0 -_0802A04C: - b _0802A2FC -_0802A04E: - ldr r0, =gUnknown_082F7BD4 - mov r9, r0 - bl AddWindow - ldr r1, [r7] - ldr r4, =0x00003008 - adds r1, r4 - strb r0, [r1] - movs r1, 0x8 - add r1, r9 - mov r8, r1 - mov r0, r8 - bl AddWindow - ldr r1, [r7] - ldr r2, =0x00003009 - adds r1, r2 - strb r0, [r1] - ldr r0, [r7] - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r7] - ldr r3, =0x00003009 - adds r0, r3 - ldrb r0, [r0] - bl ClearWindowTilemap - mov r0, r9 - bl sub_8029174 - mov r0, r8 - bl sub_8029074 - ldr r1, [r7] - ldr r0, =0x00003014 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r7] - ldr r1, =0x00003020 - adds r0, r1 - strb r6, [r0] - ldr r0, [r7] - ldr r2, =0x00003024 - adds r0, r2 - strb r6, [r0] - b _0802A35E - .pool -_0802A0CC: - ldr r3, =0x00003008 - mov r8, r3 - adds r0, r2, r3 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r7] - ldr r1, =0x00003009 - mov r10, r1 - add r0, r10 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - ldr r2, =gText_WantToPlayAgain - movs r1, 0x5 - str r1, [sp] - movs r3, 0xFF - mov r9, r3 - str r3, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r10 - ldrb r0, [r0] - ldr r2, =gText_Yes - str r6, [sp] - mov r3, r9 - str r3, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r10 - ldrb r0, [r0] - ldr r2, =gText_No - movs r1, 0x11 - str r1, [sp] - mov r3, r9 - str r3, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r10 - ldrb r0, [r0] - ldr r2, =gText_SelectorArrow2 - str r6, [sp] - mov r3, r9 - str r3, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r0, [r7] - add r0, r10 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r7] - ldr r2, =0x00003014 - adds r1, r2 - b _0802A2EA - .pool -_0802A194: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0802A1B6 - ldr r0, [r7] - ldr r3, =0x00003008 - adds r0, r3 - ldrb r0, [r0] - bl PutWindowTilemap - ldr r0, [r7] - ldr r1, =0x00003009 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_0802A1B6: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r7] - ldr r2, =0x00003014 - adds r1, r2 - b _0802A2EA - .pool -_0802A1D0: - ldr r3, =0x00003020 - adds r0, r2, r3 - ldrb r5, [r0] - cmp r5, 0 - bne _0802A1DC - movs r5, 0x1 -_0802A1DC: - ldr r0, =0x00003009 - mov r8, r0 - adds r0, r2, r0 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - ldr r2, =gText_Yes - movs r1, 0x1 - str r1, [sp] - movs r3, 0xFF - mov r10, r3 - str r3, [sp, 0x4] - movs r1, 0 - mov r9, r1 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - ldr r2, =gText_No - movs r1, 0x11 - str r1, [sp] - mov r3, r10 - str r3, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - ldr r2, =gText_SelectorArrow2 - subs r1, r5, 0x1 - lsls r1, 4 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp] - mov r3, r10 - str r3, [sp, 0x4] - mov r1, r9 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r7] - add r0, r8 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r5, 0x1 - movs r2, 0x1 - ands r2, r1 - cmp r2, 0 - beq _0802A294 - movs r0, 0x5 - bl PlaySE - ldr r0, [r7] - ldr r3, =0x00003020 - adds r1, r0, r3 - ldrb r0, [r1] - cmp r0, 0 - bne _0802A2E4 - strb r5, [r1] - b _0802A2E4 - .pool -_0802A294: - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _0802A2CC - movs r0, 0x5 - bl PlaySE - ldr r0, [r7] - ldr r2, =0x00003020 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x1 - beq _0802A2C2 - cmp r0, 0x1 - bgt _0802A2BC - cmp r0, 0 - beq _0802A2C2 - b _0802A35E - .pool -_0802A2BC: - cmp r0, 0x2 - beq _0802A2C8 - b _0802A35E -_0802A2C2: - movs r0, 0x2 - strb r0, [r1] - b _0802A35E -_0802A2C8: - strb r5, [r1] - b _0802A35E -_0802A2CC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0802A35E - movs r0, 0x5 - bl PlaySE - ldr r0, [r7] - ldr r3, =0x00003020 - adds r0, r3 - movs r1, 0x2 - strb r1, [r0] -_0802A2E4: - ldr r1, [r7] - ldr r0, =0x00003014 - adds r1, r0 -_0802A2EA: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802A35E - .pool -_0802A2FC: - ldr r0, [r7] - ldr r2, =0x00003020 - adds r1, r0, r2 - ldrb r1, [r1] - ldr r3, =0x00003024 - adds r0, r3 - strb r1, [r0] - ldr r0, [r7] - ldr r6, =0x00003008 - adds r0, r6 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r7] - ldr r1, =0x00003009 - adds r0, r1 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r7] - adds r0, r6 - ldrb r0, [r0] - bl RemoveWindow - ldr r0, [r7] - ldr r2, =0x00003009 - adds r0, r2 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r7] - movs r3, 0xC0 - lsls r3, 6 - adds r0, r3 - movs r1, 0x1 - str r1, [r0] -_0802A35E: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A010 - - thumb_func_start sub_802A380 -sub_802A380: @ 802A380 - push {r4-r6,lr} - sub sp, 0x10 - ldr r5, =gUnknown_02022CF8 - ldr r0, [r5] - ldr r6, =0x00003014 - adds r0, r6 - ldrb r4, [r0] - cmp r4, 0x1 - beq _0802A3D8 - cmp r4, 0x1 - bgt _0802A3A4 - cmp r4, 0 - beq _0802A3AE - b _0802A420 - .pool -_0802A3A4: - cmp r4, 0x2 - beq _0802A3EC - cmp r4, 0x3 - beq _0802A404 - b _0802A420 -_0802A3AE: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldr r2, =gText_SavingDontTurnOffPower - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized2 - b _0802A410 - .pool -_0802A3D8: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, =0x00003014 - adds r1, r0 - b _0802A414 - .pool -_0802A3EC: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0802A448 - ldr r0, =sub_8153688 - movs r1, 0 - bl CreateTask - b _0802A410 - .pool -_0802A404: - ldr r0, =sub_8153688 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _0802A448 -_0802A410: - ldr r1, [r5] - adds r1, r6 -_0802A414: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802A448 - .pool -_0802A420: - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_0802A448: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A380 - - thumb_func_start sub_802A454 -sub_802A454: @ 802A454 - push {r4-r6,lr} - sub sp, 0xC - ldr r1, =gUnknown_02022CF8 - ldr r2, [r1] - ldr r6, =0x00003014 - adds r0, r2, r6 - ldrb r0, [r0] - adds r5, r1, 0 - cmp r0, 0x1 - beq _0802A4AC - cmp r0, 0x1 - bgt _0802A47C - cmp r0, 0 - beq _0802A482 - b _0802A520 - .pool -_0802A47C: - cmp r0, 0x2 - beq _0802A4F4 - b _0802A520 -_0802A482: - ldr r4, =gUnknown_082F7BEC - adds r0, r4, 0 - bl AddWindow - ldr r1, [r5] - ldr r2, =0x00003008 - adds r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, 0 - bl sub_8029174 - b _0802A510 - .pool -_0802A4AC: - ldr r4, =0x00003008 - adds r0, r2, r4 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - ldr r2, =gText_CommunicationStandby3 - movs r1, 0x5 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r5] - ldr r0, =0x00003014 - adds r1, r0 - b _0802A514 - .pool -_0802A4F4: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0802A50A - ldr r0, [r5] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_0802A50A: - movs r0, 0 - bl CopyBgTilemapBufferToVram -_0802A510: - ldr r1, [r5] - adds r1, r6 -_0802A514: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802A52C - .pool -_0802A520: - ldr r0, [r5] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] -_0802A52C: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_802A454 - - thumb_func_start sub_802A534 -sub_802A534: @ 802A534 - push {r4,r5,lr} - sub sp, 0x8 - ldr r5, =gUnknown_02022CF8 - ldr r0, [r5] - ldr r4, =0x00003008 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r5] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r5] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A534 - - thumb_func_start sub_802A588 -sub_802A588: @ 802A588 - push {r4-r7,lr} - sub sp, 0xC - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r7, =0x00003014 - adds r2, r1, r7 - ldrb r5, [r2] - adds r6, r0, 0 - cmp r5, 0x1 - beq _0802A610 - cmp r5, 0x1 - bgt _0802A5B0 - cmp r5, 0 - beq _0802A5BA - b _0802A6A4 - .pool -_0802A5B0: - cmp r5, 0x2 - beq _0802A658 - cmp r5, 0x3 - beq _0802A684 - b _0802A6A4 -_0802A5BA: - ldr r4, =gUnknown_082F7BE4 - adds r0, r4, 0 - bl AddWindow - ldr r1, [r6] - ldr r2, =0x00003008 - adds r1, r2 - strb r0, [r1] - ldr r0, [r6] - adds r0, r2 - ldrb r0, [r0] - bl ClearWindowTilemap - adds r0, r4, 0 - bl sub_8029174 - ldr r1, [r6] - adds r1, r7 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r0, [r6] - ldr r2, =0x0000301c - adds r1, r0, r2 - movs r2, 0 - strh r5, [r1] - ldr r1, =0x00003020 - adds r0, r1 - strb r2, [r0] - ldr r0, [r6] - adds r1, 0x4 - adds r0, r1 - strb r2, [r0] - b _0802A6EA - .pool -_0802A610: - ldr r4, =0x00003008 - adds r0, r1, r4 - ldrb r0, [r0] - movs r1, 0x11 - bl FillWindowPixelBuffer - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - ldr r2, =gText_SomeoneDroppedOut - movs r1, 0x5 - str r1, [sp] - movs r1, 0xFF - str r1, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl AddTextPrinterParameterized - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - movs r1, 0x2 - bl CopyWindowToVram - ldr r1, [r6] - ldr r2, =0x00003014 - adds r1, r2 - b _0802A678 - .pool -_0802A658: - bl IsDma3ManagerBusyWithBgCopy - lsls r0, 24 - cmp r0, 0 - bne _0802A66E - ldr r0, [r6] - ldr r1, =0x00003008 - adds r0, r1 - ldrb r0, [r0] - bl PutWindowTilemap -_0802A66E: - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r1, [r6] - adds r1, r7 -_0802A678: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0802A6EA - .pool -_0802A684: - ldr r0, =0x0000301c - adds r1, r0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x77 - bls _0802A6EA - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - b _0802A6EA - .pool -_0802A6A4: - ldr r0, [r6] - ldr r1, =0x00003024 - adds r0, r1 - movs r1, 0x5 - strb r1, [r0] - ldr r0, [r6] - ldr r4, =0x00003008 - adds r0, r4 - ldrb r0, [r0] - bl ClearWindowTilemap - ldr r0, [r6] - adds r0, r4 - ldrb r0, [r0] - bl RemoveWindow - movs r0, 0x1E - str r0, [sp] - movs r0, 0x14 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - ldr r0, [r6] - movs r2, 0xC0 - lsls r2, 6 - adds r0, r2 - movs r1, 0x1 - str r1, [r0] -_0802A6EA: - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A588 - - thumb_func_start unused_0 -unused_0: @ 802A6FC - push {r4,lr} - ldr r4, =gUnknown_02022CF8 - ldr r0, [r4] - ldr r1, =0x00003004 - adds r0, r1 - ldrb r0, [r0] - bl DestroyTask - ldr r0, [r4] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - movs r1, 0x1 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end unused_0 - - thumb_func_start nullsub_16 -nullsub_16: @ 802A728 - bx lr - thumb_func_end nullsub_16 - - thumb_func_start sub_802A72C -sub_802A72C: @ 802A72C - push {r4,lr} - ldr r2, =gUnknown_02022CF8 - ldr r1, [r2] - ldr r3, =0x00003014 - adds r1, r3 - movs r3, 0 - strb r3, [r1] - ldr r1, [r2] - movs r4, 0xC0 - lsls r4, 6 - adds r2, r1, r4 - str r3, [r2] - ldr r2, =0x00003028 - adds r1, r2 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A72C - - thumb_func_start sub_802A75C -sub_802A75C: @ 802A75C - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r1, =0x00003028 - adds r0, r1 - ldr r0, [r0] - bx lr - .pool - thumb_func_end sub_802A75C - - thumb_func_start sub_802A770 -sub_802A770: @ 802A770 - push {lr} - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - ldr r0, [r0] - cmp r0, 0x1 - beq _0802A78C - movs r0, 0x1 - b _0802A78E - .pool -_0802A78C: - movs r0, 0 -_0802A78E: - pop {r1} - bx r1 - thumb_func_end sub_802A770 - - thumb_func_start sub_802A794 -sub_802A794: @ 802A794 - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r1, =0x00003024 - adds r0, r1 - ldrb r0, [r0] - bx lr - .pool - thumb_func_end sub_802A794 - - thumb_func_start sub_802A7A8 -sub_802A7A8: @ 802A7A8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - movs r3, 0xC0 - lsls r3, 19 - movs r4, 0xC0 - lsls r4, 9 - add r0, sp, 0x4 - mov r8, r0 - mov r2, sp - movs r6, 0 - ldr r1, =0x040000d4 - movs r5, 0x80 - lsls r5, 5 - ldr r7, =0x81000800 - movs r0, 0x81 - lsls r0, 24 - mov r12, r0 -_0802A7CE: - strh r6, [r2] - mov r0, sp - str r0, [r1] - str r3, [r1, 0x4] - str r7, [r1, 0x8] - ldr r0, [r1, 0x8] - adds r3, r5 - subs r4, r5 - cmp r4, r5 - bhi _0802A7CE - strh r6, [r2] - mov r2, sp - str r2, [r1] - str r3, [r1, 0x4] - lsrs r0, r4, 1 - mov r2, r12 - orrs r0, r2 - str r0, [r1, 0x8] - ldr r0, [r1, 0x8] - movs r0, 0xE0 - lsls r0, 19 - movs r3, 0x80 - lsls r3, 3 - movs r4, 0 - str r4, [sp, 0x4] - ldr r2, =0x040000d4 - mov r1, r8 - str r1, [r2] - str r0, [r2, 0x4] - lsrs r0, r3, 2 - movs r1, 0x85 - lsls r1, 24 - orrs r0, r1 - str r0, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r1, 0xA0 - lsls r1, 19 - mov r0, sp - strh r4, [r0] - str r0, [r2] - str r1, [r2, 0x4] - lsrs r3, 1 - movs r0, 0x81 - lsls r0, 24 - orrs r3, r0 - str r3, [r2, 0x8] - ldr r0, [r2, 0x8] - movs r0, 0 - movs r1, 0 - bl SetGpuReg - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_082F7BA4 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl InitStandardTextBoxWindows - bl sub_8197200 - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - ldr r4, =gUnknown_02022CF8 - ldr r1, [r4] - movs r0, 0x3 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r2, 0x80 - lsls r2, 5 - adds r1, r2 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 6 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_802A7A8 - - thumb_func_start sub_802A8E8 -sub_802A8E8: @ 802A8E8 - push {lr} - sub sp, 0x4 - ldr r0, =gUnknown_02022CF8 - ldr r0, [r0] - ldr r2, =0x00003018 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0x5 - bhi _0802A982 - lsls r0, 2 - ldr r1, =_0802A910 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0802A910: - .4byte _0802A928 - .4byte _0802A938 - .4byte _0802A93E - .4byte _0802A94C - .4byte _0802A964 - .4byte _0802A972 -_0802A928: - ldr r0, =gDodrioBerryBgPal1 - movs r1, 0 - movs r2, 0x40 - bl LoadPalette - b _0802A98A - .pool -_0802A938: - bl reset_temp_tile_data_buffers - b _0802A98A -_0802A93E: - ldr r1, =gDodrioBerryBgGfx1 - movs r0, 0 - str r0, [sp] - movs r0, 0x3 - b _0802A954 - .pool -_0802A94C: - ldr r1, =gDodrioBerryBgGfx2 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 -_0802A954: - movs r2, 0 - movs r3, 0 - bl decompress_and_copy_tile_data_to_vram - b _0802A98A - .pool -_0802A964: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0802A98A - b _0802A998 -_0802A972: - movs r0, 0x3 - bl stdpal_get - movs r1, 0xD0 - movs r2, 0x20 - bl LoadPalette - b _0802A98A -_0802A982: - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _0802A99A -_0802A98A: - ldr r0, =gUnknown_02022CF8 - ldr r1, [r0] - ldr r0, =0x00003018 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_0802A998: - movs r0, 0 -_0802A99A: - add sp, 0x4 - pop {r1} - bx r1 - .pool - thumb_func_end sub_802A8E8 - - .align 2, 0 @ don't pad with nop diff --git a/asm/pokenav_unk_2.s b/asm/pokenav_unk_2.s index 89a8bde9e..da83ccf55 100644 --- a/asm/pokenav_unk_2.s +++ b/asm/pokenav_unk_2.s @@ -943,7 +943,7 @@ sub_81CA0C8: @ 81CA0C8 lsls r2, r0, 3 subs r2, r0 lsls r2, 2 - ldr r1, =gUnknown_08620244 + ldr r1, =gUnknown_08620240+4 adds r0, r2, r1 subs r1, 0x4 adds r2, r1 diff --git a/data/dodrio_berry_picking.s b/data/dodrio_berry_picking.s deleted file mode 100755 index 7537d9f04..000000000 --- a/data/dodrio_berry_picking.s +++ /dev/null @@ -1,666 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - - .align 2 -gUnknown_082F449C:: @ 82F449C - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08 - .byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03 - .byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09 - .byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02 - .byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07 - .byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00 - .byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01 - .byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08 - .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07 - .byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03 - .byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00 - .byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08 - .byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - .byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 - .byte 0x06, 0x07, 0x08 - -gUknnown_082F45AF:: - .byte 0x04, 0x05, 0x06, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03 - .byte 0x04, 0x05, 0x05, 0x06, 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x05 - .byte 0x06, 0x06, 0x07, 0x02, 0x02, 0x03, 0x04, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x04, 0x05 - .byte 0x05, 0x06, 0x07, 0x07, 0x08, 0x01, 0x01, 0x02 - .byte 0x03, 0x00, 0x00, 0x00, 0x04, 0x05, 0x06, 0x06 - .byte 0x07, 0x08, 0x08, 0x09, 0x00, 0x00, 0x01, 0x02 - .byte 0x02, 0x03, 0x04, 0x01, 0x00, 0x01, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x01, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02 - .byte 0x03, 0x02, 0x03, 0x00, 0x00, 0x00, 0x00, 0x04 - .byte 0x00, 0x01, 0x00, 0x01, 0x02, 0x01, 0x02, 0x03 - .byte 0x02, 0x03, 0x04, 0x03, 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x09, 0x09, 0x09, 0x09, 0x01, 0x01, 0x01 - .byte 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x09, 0x00 - .byte 0x00, 0x01, 0x01, 0x00, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x02, 0x02, 0x00, 0x00, 0x01, 0x01, 0x01 - .byte 0x09, 0x09, 0x09, 0x03, 0x03, 0x00, 0x00, 0x01 - .byte 0x01, 0x02, 0x02, 0x03, 0x09, 0x03, 0x03, 0x04 - .byte 0x04, 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03 - .byte 0x05, 0x00, 0x00, 0x00, 0x00, 0x04, 0x06, 0x00 - .byte 0x00, 0x00, 0x03, 0x05, 0x07, 0x00, 0x00, 0x02 - .byte 0x04, 0x06, 0x08, 0x00, 0x01, 0x03, 0x05, 0x06 - .byte 0x09 - - .align 2 -gUnknown_082F7DF0_UnrefDupe:: @ 82F4698 - .incbin "graphics/link_games/dodrioberry_bg1.gbapal" - - .align 2 - .incbin "graphics/link_games/dodrioberry_bg2.gbapal" - - .align 2 -gUnknown_082F7E30_UnrefDupe:: @ 82F46B8 - .incbin "graphics/link_games/dodrioberry_pkmn.gbapal" - - .align 2 -gUnknown_082F7E50_UnrefDupe:: @ 82F46D8 - .incbin "graphics/link_games/dodrioberry_shiny.gbapal" - - .align 2 -gUnknown_082F7E70_UnrefDupe:: @ 82F46F8 - .incbin "graphics/link_games/dodrioberry_status.gbapal" - - .align 2 -gUnknown_082F7E90_UnrefDupe:: @ 82F4718 - .incbin "graphics/link_games/dodrioberry_berrysprites.gbapal" - - .align 2 -gUnknown_082F7EB0_UnrefDupe:: @ 82F4738 - .incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz" - - .align 2 -gUnknown_082F8064_UnrefDupe:: @ 82F490C - .incbin "graphics/link_games/dodrioberry_platform.gbapal" - - .align 2 -gUnknown_082F8084_UnrefDupe:: @ 82F492C - .incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz" - - .align 2 -gUnknown_082F8914_UnrefDupe:: @ 82F51BC - .incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz" - - .align 2 -gUnknown_082F96E0_UnrefDupe:: @ 82F5F88 - .incbin "graphics/link_games/dodrioberry_status.4bpp.lz" - - .align 2 -gUnknown_082F9774_UnrefDupe:: @ 82F601C - .incbin "graphics/link_games/dodrioberry_platform.4bpp.lz" - - .align 2 -gUnknown_082F98BC_UnrefDupe:: @ 82F6164 - .incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz" - - .align 2 -gUnknown_082FAAD8_UnrefDupe:: @ 82F7380 - .incbin "graphics/link_games/dodrioberry_bg1.bin.lz" - - .align 2 -gUnknown_082FAD44_UnrefDupe:: @ 82F75EC - .incbin "graphics/link_games/dodrioberry_bg2right.bin.lz" - - .align 2 -gUnknown_082FAF94_UnrefDupe:: @ 82F783C - .incbin "graphics/link_games/dodrioberry_bg2left.bin.lz" - - .align 2 -gUnknown_082F7A88:: @ 82F7A88 - .byte 0x28, 0x18, 0x0d, 0x20, 0x13, 0x0a, 0x16, 0x0d - .byte 0x07, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_082F7A94:: @ 82F7A94 - .byte 0x08, 0x05, 0x08, 0x0b, 0x0f, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_082F7A9C:: @ 82F7A9C - .byte 0x05, 0x0a, 0x14, 0x1e, 0x32, 0x46, 0x64, 0x00 - - .align 2 -gUnknown_082F7AA4:: @ 82F7AA4 - .byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x13, 0x12, 0x11 - .byte 0x10, 0x0f, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19 - .byte 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21 - .byte 0x22, 0x22, 0x21, 0x20, 0x1f, 0x1e, 0x00, 0x00 - - .align 2 -gUnknown_082F7AC4:: @ 82F7AC4 - .4byte sub_8024DBC - .4byte sub_8024E00 - .4byte sub_8024E38 - .4byte sub_8024F10 - .4byte sub_8024F38 - .4byte sub_8025198 - .4byte sub_8025324 - .4byte sub_8025470 - .4byte sub_8025644 - .4byte sub_80256AC - .4byte sub_8025758 - .4byte sub_80250D4 - - .align 2 -gUnknown_082F7AF4:: @ 82F7AF4 - .4byte sub_8024DBC - .4byte sub_8024E00 - .4byte sub_8024E38 - .4byte sub_8024F10 - .4byte sub_8024FFC - .4byte sub_8025230 - .4byte sub_8025324 - .4byte sub_8025470 - .4byte sub_8025644 - .4byte sub_80256AC - .4byte sub_8025758 - .4byte sub_8025158 - - .align 2 -gUnknown_082F7B24:: @ 82F7B24 - .2byte 0x000a, 0x001e, 0x0032, 0x0032 - - .align 2 -gUnknown_082F7B2C:: @ 82F7B2C - .byte 0x00, 0x05, 0x01, 0x14, 0x0b, 0x0f, 0x01, 0x00 - - .align 2 -gUnknown_082F7B34:: @ 82F7B34 - .4byte gText_BerriesPicked - .4byte gText_BestScore - .4byte gText_BerriesInRowFivePlayers - - .align 2 -gUnknown_082F7B40:: @ 82F7B40 - .byte 0x04, 0x07, 0x04, 0x00 - - .align 2 -gUnknown_082F7B44:: @ 82F7B44 - .2byte 0x0019, 0x0029, 0x0039 - -gUnknown_082F7B4A:: @ 82F7B4A - .2byte 0x0019, 0x0029, 0x0049 - - .align 2 -gUnknown_082F7B50:: @ 82F7B50 - .2byte 0x270f, 0x0000, 0x005a, 0x270f, 0x270f, 0x270f, 0x0046, 0x270f - .2byte 0x270f, 0x0000, 0x270f, 0x0000, 0x270f, 0x270f, 0x003c, 0x0000 - .2byte 0x270f, 0x270f, 0x270f, 0x0000 - - .align 2 -gUnknown_082F7B78:: @ 82F7B78 - .string "ÀÁÂÇÈÉÊ$" - - .align 2 -gUnknown_082F7B80:: @ 82F7B80 - .string "ABCDEFG$" - - .align 2 -gUnknown_082F7B88:: @ 82F7B88 - .string "0123456$" - - .align 2 -gUnknown_082F7B90:: @ 82F7B90 - .4byte gUnknown_082F7B78 - .4byte gUnknown_082F7B78 - .4byte gUnknown_082F7B78 - .4byte gUnknown_082F7B80 - .4byte gUnknown_082F7B88 - - .align 2 -gUnknown_082F7BA4:: @ 82F7BA4 struct BgTemplate - .4byte 0x000001e0 - .4byte 0x000012c9 - .4byte 0x000012ea - .4byte 0x000021ff - .4byte 0x000000ff - .4byte 0x00000000 - - .align 2 -gUnknown_082F7BBC:: @ 82F7BBC - window_template 0x00, 0x01, 0x01, 0x1c, 0x02, 0x0d, 0x0013 - window_template 0x00, 0x01, 0x05, 0x1c, 0x0e, 0x0d, 0x004b - - .align 2 -gUnknown_082F7BCC:: @ 82F7BCC - window_template 0x00, 0x01, 0x05, 0x1c, 0x07, 0x0d, 0x004b - - .align 2 -gUnknown_082F7BD4:: @ 82F7BD4 - window_template 0x00, 0x01, 0x08, 0x13, 0x03, 0x0d, 0x0013 - window_template 0x00, 0x16, 0x07, 0x06, 0x04, 0x0d, 0x004c - - .align 2 -gUnknown_082F7BE4:: @ 82F7BE4 - window_template 0x00, 0x04, 0x06, 0x16, 0x05, 0x0d, 0x0013 - - .align 2 -gUnknown_082F7BEC:: @ 82F7BEC - window_template 0x00, 0x05, 0x08, 0x13, 0x03, 0x0d, 0x0013 - - .align 2 -gUnknown_082F449C_UnrefDupe:: @ 82F7BF4 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x08, 0x09, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x03, 0x08 - .byte 0x09, 0x00, 0x00, 0x01, 0x02, 0x05, 0x06, 0x03 - .byte 0x04, 0x05, 0x08, 0x09, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 - .byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x02, 0x09 - .byte 0x00, 0x00, 0x01, 0x04, 0x05, 0x06, 0x07, 0x02 - .byte 0x03, 0x04, 0x09, 0x00, 0x00, 0x01, 0x06, 0x07 - .byte 0x02, 0x03, 0x04, 0x05, 0x06, 0x09, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01, 0x00 - .byte 0x00, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x01 - .byte 0x02, 0x03, 0x00, 0x00, 0x05, 0x06, 0x07, 0x08 - .byte 0x01, 0x02, 0x03, 0x04, 0x05, 0x00, 0x00, 0x07 - .byte 0x08, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x03 - .byte 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00, 0x02 - .byte 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x00 - .byte 0x01, 0x02, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09 - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x06, 0x07, 0x08 - .byte 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 - .byte 0x08, 0x09, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05 - .byte 0x06, 0x07, 0x08, 0x04, 0x05, 0x06, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x03, 0x04, 0x05, 0x05, 0x06, 0x03 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x04, 0x05, 0x06, 0x06, 0x07, 0x02, 0x02 - .byte 0x03, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x03, 0x04, 0x05, 0x05, 0x06, 0x07, 0x07, 0x08 - .byte 0x01, 0x01, 0x02, 0x03, 0x00, 0x00, 0x00, 0x04 - .byte 0x05, 0x06, 0x06, 0x07, 0x08, 0x08, 0x09, 0x00 - .byte 0x00, 0x01, 0x02, 0x02, 0x03, 0x04, 0x01, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00 - .byte 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x01 - .byte 0x02, 0x01, 0x02, 0x03, 0x02, 0x03, 0x00, 0x00 - .byte 0x00, 0x00, 0x04, 0x00, 0x01, 0x00, 0x01, 0x02 - .byte 0x01, 0x02, 0x03, 0x02, 0x03, 0x04, 0x03, 0x04 - .byte 0x00, 0x00, 0x00, 0x00, 0x09, 0x09, 0x09, 0x09 - .byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x09, 0x09 - .byte 0x09, 0x09, 0x00, 0x00, 0x01, 0x01, 0x00, 0x09 - .byte 0x09, 0x09, 0x09, 0x09, 0x02, 0x02, 0x00, 0x00 - .byte 0x01, 0x01, 0x01, 0x09, 0x09, 0x09, 0x03, 0x03 - .byte 0x00, 0x00, 0x01, 0x01, 0x02, 0x02, 0x03, 0x09 - .byte 0x03, 0x03, 0x04, 0x04, 0x00, 0x00, 0x01, 0x01 - .byte 0x02, 0x02, 0x03, 0x05, 0x00, 0x00, 0x00, 0x00 - .byte 0x04, 0x06, 0x00, 0x00, 0x00, 0x03, 0x05, 0x07 - .byte 0x00, 0x00, 0x02, 0x04, 0x06, 0x08, 0x00, 0x01 - .byte 0x03, 0x05, 0x06, 0x09 - - .align 2 -gDodrioBerryBgPal1:: @ 82F7DF0 - .incbin "graphics/link_games/dodrioberry_bg1.gbapal" - - .align 2 - .incbin "graphics/link_games/dodrioberry_bg2.gbapal" - - .align 2 -gDodrioBerryPkmnPal:: @ 82F7E30 - .incbin "graphics/link_games/dodrioberry_pkmn.gbapal" - - .align 2 -gDodrioBerryShinyPal:: @ 82F7E50 - .incbin "graphics/link_games/dodrioberry_shiny.gbapal" - - .align 2 -gDodrioBerryStatusPal:: @ 82F7E70 - .incbin "graphics/link_games/dodrioberry_status.gbapal" - - .align 2 -gDodrioBerrySpritesPal:: @ 82F7E90 - .incbin "graphics/link_games/dodrioberry_berrysprites.gbapal" - - .align 2 -gDodrioBerrySpritesGfx:: @ 82F7EB0 - .incbin "graphics/link_games/dodrioberry_berrysprites.4bpp.lz" - - .align 2 -gDodrioBerryPlatformPal:: @ 82F8064 - .incbin "graphics/link_games/dodrioberry_platform.gbapal" - - .align 2 -gDodrioBerryBgGfx1:: @ 82F8084 - .incbin "graphics/link_games/dodrioberry_bg1.4bpp.lz" - - .align 2 -gDodrioBerryBgGfx2:: @ 82F8914 - .incbin "graphics/link_games/dodrioberry_bg2.4bpp.lz" - - .align 2 -gDodrioBerryStatusGfx:: @ 82F96E0 - .incbin "graphics/link_games/dodrioberry_status.4bpp.lz" - - .align 2 -gDodrioBerryPlatformGfx:: @ 82F9774 - .incbin "graphics/link_games/dodrioberry_platform.4bpp.lz" - - .align 2 -gDodrioBerryPkmnGfx:: @ 82F98BC - .incbin "graphics/link_games/dodrioberry_pkmn.4bpp.lz" - - .align 2 -gDodrioBerryBgTilemap1:: @ 82FAAD8 - .incbin "graphics/link_games/dodrioberry_bg1.bin.lz" - - .align 2 -gDodrioBerryBgTilemap2Right:: @ 82FAD44 - .incbin "graphics/link_games/dodrioberry_bg2right.bin.lz" - - .align 2 -gDodrioBerryBgTilemap2Left:: @ 82FAF94 - .incbin "graphics/link_games/dodrioberry_bg2left.bin.lz" - - .align 2 -gUnknown_082FB1E0:: @ 82FB1E0 - .byte 0x00, 0x00, 0x00, 0xc0, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_082FB1E8:: @ 82FB1E8 - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x00 - - .align 2 -gUnknown_082FB1F0:: @ 82FB1F0 - .byte 0x00, 0x00, 0x00, 0x40, 0x00, 0x08, 0x00, 0x00 - - .align 2 -gUnknown_082FB1F8:: @ 82FB1F8 - .byte 0x00, 0x40, 0x00, 0xc0, 0x00, 0x0c, 0x00, 0x00 - - .align 2 -gUnknown_082FB200:: @ 82FB200 - .2byte 0x0000, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB208:: @ 82FB208 - .2byte 0x0040, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB210:: @ 82FB210 - .2byte 0x0080, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB218:: @ 82FB218 - .2byte 0x00c0, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB220:: @ 82FB220 - .2byte 0x0100, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB228:: @ 82FB228 - .4byte gUnknown_082FB200 - .4byte gUnknown_082FB208 - .4byte gUnknown_082FB210 - .4byte gUnknown_082FB218 - .4byte gUnknown_082FB220 - - .align 2 -gUnknown_082FB23C:: @ 82FB23C - .2byte 0x0000, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB244:: @ 82FB244 - .2byte 0x0004, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB24C:: @ 82FB24C - .2byte 0x0008, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB254:: @ 82FB254 - .4byte gUnknown_082FB23C - .4byte gUnknown_082FB244 - .4byte gUnknown_082FB24C - - .align 2 -gUnknown_082FB260:: @ 82FB260 - .2byte 0x0000, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB268:: @ 82FB268 - .2byte 0x0004, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB270:: @ 82FB270 - .2byte 0x0008, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB278:: @ 82FB278 - .2byte 0x000c, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB280:: @ 82FB280 - .2byte 0x0010, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB288:: @ 82FB288 - .2byte 0x0014, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB290:: @ 82FB290 - .2byte 0x0018, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB298:: @ 82FB298 - .2byte 0x001c, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB2A0:: @ 82FB2A0 - .2byte 0x0020, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB2A8:: @ 82FB2A8 - .4byte gUnknown_082FB260 - .4byte gUnknown_082FB268 - .4byte gUnknown_082FB270 - .4byte gUnknown_082FB278 - .4byte gUnknown_082FB280 - .4byte gUnknown_082FB288 - .4byte gUnknown_082FB290 - .4byte gUnknown_082FB298 - .4byte gUnknown_082FB2A0 - - .align 2 -gUnknown_082FB2CC:: @ 82FB2CC - .2byte 0x0000, 0x0014 - .2byte 0xfffe, 0x0000 - - .align 2 -gUnknown_082FB2D4:: @ 82FB2D4 - .4byte gUnknown_082FB2CC - - .align 2 -gUnknown_082FB2D8:: @ 82FB2D8 - obj_pal gDodrioBerryPkmnPal, 0x0000 - - .align 2 -gUnknown_082FB2E0:: @ 82FB2E0 - obj_pal gDodrioBerryShinyPal, 0x0001 - - .align 2 -gUnknown_082FB2E8:: @ 82FB2E8 - obj_pal gDodrioBerryStatusPal, 0x0002 - - .align 2 -gUnknown_082FB2F0:: @ 82FB2F0 - spr_template 0x0001, 0x0002, gUnknown_082FB1E8, gUnknown_082FB254, NULL, gDummySpriteAffineAnimTable, nullsub_15 - - .align 2 - .byte 0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44 - .byte 0x45, 0xFB, 0x00, 0x00 - - .align 2 -gUnknown_082FB314:: @ 82FB314 - obj_pal gDodrioBerrySpritesPal, 0x0003 - - .align 2 -gUnknown_082FB31C:: @ 82FB31C - .2byte 0x0058, 0x0080, 0x00a8, 0x00d0 - - .align 2 -gUnknown_082FB324:: @ 82FB324 - spr_template 0x0002, 0x0003, gUnknown_082FB1F0, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_082FB33C:: @ 82FB33C - spr_template 0x0002, 0x0003, gUnknown_082FB1E8, gUnknown_082FB2A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - - .align 2 -gUnknown_082FB354:: @ 82FB354 - .byte 0x1E, 0x14 - -gUnknown_082FB356:: @ 82FB356 - .byte 0xE6, 0x00 - - .align 2 -gUnknown_082FB358:: @ 82FB358 - .2byte 0x0037, 0x001e, 0x004a, 0x0000 - - .align 2 -gUnknown_082FB360:: @ 82FB360 - obj_pal gDodrioBerryPlatformPal, 0x0006 - - .align 2 -gUnknown_082FB368:: @ 82FB368 - spr_template 0x0005, 0x0006, gUnknown_082FB1F8, gUnknown_082FB2D4, NULL, gDummySpriteAffineAnimTable, sub_8028CF4 - - .align 2 -gUnknown_082FB380:: @ 82FB380 - .byte 0x01, 0x02, 0x03 - -gUnknown_082FB383:: @ 82FB383 - .byte 0x01, 0x04, 0x05 - .byte 0x01, 0x08, 0x09 - .byte 0x01, 0x06, 0x07 - - .align 2 -gUnknown_082FB38C:: @ 82FB38C - .byte 0x0c, 0x06, 0x00, 0x00 - - .align 2 -gUnknown_082FB390:: @ 82FB390 - .byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00 - - .align 2 -gUnknown_082FB398:: @ 82FB398 - .byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00 - .byte 0x06, 0x0a, 0x00, 0x00 - - .align 2 -gUnknown_082FB3A4:: @ 82FB3A4 - .byte 0x09, 0x0a, 0x00, 0x00, 0x0f, 0x06, 0x00, 0x00 - .byte 0x15, 0x0a, 0x00, 0x00, 0x03, 0x06, 0x00, 0x00 - - .align 2 -gUnknown_082FB3B4:: @ 82FB3B4 - .byte 0x0c, 0x06, 0x00, 0x00, 0x12, 0x0a, 0x00, 0x00 - .byte 0x17, 0x06, 0x00, 0x00, 0x01, 0x06, 0x00, 0x00 - .byte 0x06, 0x0a, 0x00, 0x00 - - .align 2 -gUnknown_082FB3C8:: @ 82FB3C8 - .4byte gUnknown_082FB38C - .4byte gUnknown_082FB390 - .4byte gUnknown_082FB398 - .4byte gUnknown_082FB3A4 - .4byte gUnknown_082FB3B4 - - .align 2 -gUnknown_082FB3DC:: @ 82FB3DC - .4byte gText_1Colon - .4byte gText_2Colon - .4byte gText_3Colon - .4byte gText_4Colon - .4byte gText_5Colon - - .align 2 -gUnknown_082FB3F0:: @ 82FB3F0 - .2byte 0x005c, 0x0084, 0x00ac, 0x00d4 - -gUnknown_082FB3F8:: @ 82FB3F8 - .2byte 0x0021, 0x0031, 0x0041, 0x0051, 0x0061 - -gUnknown_082FB402:: @ 82FB402 - .2byte 0x0011, 0x0021, 0x0031, 0x0041, 0x0051 - - .align 2 -gUnknown_082FB40C:: @ 82FB40C - .4byte 0x00000000, sub_8029338 - .4byte 0x00000001, sub_8029440 - .4byte 0x00000002, sub_802988C - .4byte 0x00000003, sub_802A010 - .4byte 0x00000004, sub_802A380 - .4byte 0x00000005, sub_802A454 - .4byte 0x00000006, sub_802A534 - .4byte 0x00000007, sub_802A588 - .4byte 0x00000008, unused_0 - .4byte 0x00000009, nullsub_16 - - .align 2 -gUnknown_082FB45C:: @ 82FB45C - .byte 0x00, 0x01, 0x02, 0x03, 0x04, 0x00, 0x00, 0x00 diff --git a/data/pokenav.s b/data/pokenav.s deleted file mode 100644 index 2ed2cf9a0..000000000 --- a/data/pokenav.s +++ /dev/null @@ -1,1658 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -// pokenav_unk_2.s -gUnknown_0861FC78:: @ 861FC78 - .incbin "graphics/pokenav/bg.gbapal" - -gUnknown_0861FC98:: @ 861FC98 - .incbin "graphics/pokenav/bg.4bpp.lz" - -gUnknown_0861FCAC:: @ 861FCAC - .incbin "graphics/pokenav/bg.bin.lz" - -gUnknown_0861FD4C:: @ 861FD4C - .incbin "graphics/pokenav/outline.gbapal" - -gUnknown_0861FD6C:: @ 861FD6C - .incbin "graphics/pokenav/outline.4bpp.lz" - -gUnknown_0861FFF4:: @ 861FFF4 - .incbin "graphics/pokenav/outline_map.bin.lz" - -gUnknown_08620104:: @ 8620104 - .incbin "graphics/pokenav/blue_light.gbapal" - -gUnknown_08620124:: @ 8620124 - .incbin "graphics/pokenav/blue_light.4bpp.lz" - -gUnknown_08620194:: @ 8620194 - .byte 0xF5, 0x10, 0, 0, 0x7A, 0x21, 0, 0, 0xFF, 0x31, 0, 0 - -gUnknown_086201A0:: @ 86201A0 - .4byte NULL - .4byte sub_81C9C6C - .4byte sub_81C9CA8 - .4byte sub_81C9D44 - .4byte sub_81C9DD8 - .4byte sub_81C9E58 - .4byte sub_81C9EC8 - .4byte sub_81C9EF8 - .4byte sub_81C9F28 - -gUnknown_086201C4:: @ 86201C4 - .4byte gPokenavOptions_Gfx - .byte 0, 0x34, 3, 0 - .4byte gUnknown_08620124 - .byte 0, 1, 1, 0 - -gUnknown_086201D4:: @ 86201D4 - .4byte gPokenavOptions_Pal + 0x0, 4 - .4byte gPokenavOptions_Pal + 0x20, 5 - .4byte gPokenavOptions_Pal + 0x40, 6 - .4byte gPokenavOptions_Pal + 0x60, 7 - .4byte gPokenavOptions_Pal + 0x80, 8 - .4byte gUnknown_08620104, 3 - .4byte 0, 0 - -gUnknown_0862020C:: @ 862020C - .2byte 0, 0 - -gUnknown_08620210:: @ 8620210 - .2byte 0x20, 1 - -gUnknown_08620214:: @ 8620214 - .2byte 0x40, 4 - -gUnknown_08620218:: @ 8620218 - .2byte 0x60, 2 - -gUnknown_0862021C:: @ 862021C - .2byte 0x80, 3 - -gUnknown_08620220:: @ 8620220 - .2byte 0xA0, 1 - -gUnknown_08620224:: @ 8620224 - .2byte 0xC0, 1 - -gUnknown_08620228:: @ 8620228 - .2byte 0xE0, 4 - -gUnknown_0862022C:: @ 862022C - .2byte 0x100, 1 - -gUnknown_08620230:: @ 8620230 - .2byte 0x120, 2 - -gUnknown_08620234:: @ 8620234 - .2byte 0x140, 0 - -gUnknown_08620238:: @ 8620238 - .2byte 0x160, 0 - -gUnknown_0862023C:: @ 862023C - .2byte 0x180, 3 - -gUnknown_08620240:: @ 8620240 - .2byte 0x2A, 0x14 - -gUnknown_08620244:: @ 8620244 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_0862021C - .4byte NULL - .4byte NULL - .4byte NULL - .2byte 0x2A, 0x14 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_08620214 - .4byte gUnknown_0862021C - .4byte NULL - .4byte NULL - .2byte 0x2A, 0x14 - .4byte gUnknown_0862020C - .4byte gUnknown_08620210 - .4byte gUnknown_08620214 - .4byte gUnknown_08620218 - .4byte gUnknown_0862021C - .4byte NULL - .2byte 0x38, 0x14 - .4byte gUnknown_08620220 - .4byte gUnknown_08620224 - .4byte gUnknown_0862023C - .4byte NULL - .4byte NULL - .4byte NULL - .2byte 0x28, 0x10 - .4byte gUnknown_08620228 - .4byte gUnknown_0862022C - .4byte gUnknown_08620230 - .4byte gUnknown_08620234 - .4byte gUnknown_08620238 - .4byte gUnknown_0862023C - -gUnknown_086202CC:: @ 86202CC - window_template 1, 3, 17, 0x18, 2, 1, 8 - -gUnknown_086202D4:: @ 86202D4 - .4byte gUnknown_085EBCC5 - .4byte gUnknown_085EBCE8 - .4byte gUnknown_085EBD01 - .4byte gUnknown_085EBD1C - .4byte gUnknown_085EBD34 - .4byte gUnknown_085EBD83 - .4byte gUnknown_085EBDA2 - .4byte gUnknown_085EBDBF - .4byte gUnknown_085EBDDB - .4byte gUnknown_085EBDEE - .4byte gUnknown_085EBE06 - .4byte gUnknown_085EBE19 - .4byte gUnknown_085EBE2D - .4byte gUnknown_085EBE41 - -gUnknown_0862030C:: @ 862030C - .byte 6, 8, 7 - -gUnknown_0862030F:: @ 862030F - .byte 6, 8, 7, 0, 0 - -gUnknown_08620314:: @ 8620314 - .byte 0, 0x40, 0, 0x80, 0, 8, 0, 0 - -gUnknown_0862031C:: @ 862031C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_end - -gUnknown_0862032C:: @ 862032C - obj_rot_scal_anim_frame 0x100, 0x100, 0, 0 - obj_rot_scal_anim_frame 0x10, 0x10, 0, 0x12 - obj_rot_scal_anim_end - -gUnknown_08620344:: @ 8620344 - .4byte gUnknown_0862031C - .4byte gUnknown_0862032C - -gUnknown_0862034C:: @ 862034C - spr_template 3, 4, gUnknown_08620314, gDummySpriteAnimTable, NULL, gUnknown_08620344, SpriteCallbackDummy - -gUnknown_08620364:: @ 8620364 - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x800 - .2byte 0 - -gUnknown_0862036C:: @ 862036C - spr_template 1, 3, gUnknown_08620364, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_08620384:: @ 8620384 - .4byte 0x4000040 - .4byte 0xa2600001 - .byte 1, 0, 0, 0 - -// pokenav_unk_3.s -gUnknown_08620390:: @ 8620390 - .string "Becalm fighting emotions.$" - -gUnknown_086203AA:: @ 86203AA - .string "Fragrant GRASS POKéMON.$" - -gUnknown_086203C2:: @ 86203C2 - .string "Soothing aromas make the$" - -gUnknown_086203DB:: @ 86203DB - .string "body and mind healthy.$" - -gUnknown_086203F2:: @ 86203F2 - .string "I'm not very good at this.$" - -gUnknown_0862040D:: @ 862040D - .string "Ruin-exploration partners.$" - -gUnknown_08620428:: @ 8620428 - .string "I am searching for undersea$" - -gUnknown_08620444:: @ 8620444 - .string "ruins and relics.$" - -gUnknown_08620456:: @ 8620456 - .string "Overwhelm with power!$" - -gUnknown_0862046C:: @ 862046C - .string "Craggy ROCK POKéMON.$" - -gUnknown_08620481:: @ 8620481 - .string "In search of ancient lore,$" - -gUnknown_0862049C:: @ 862049C - .string "I travel the world.$" - -gUnknown_086204B0:: @ 86204B0 - .string "I'm going to try hard!$" - -gUnknown_086204C7:: @ 86204C7 - .string "Good swimmer POKéMON.$" - -gUnknown_086204DD:: @ 86204DD - .string "I wish I could swim without$" - -gUnknown_086204F9:: @ 86204F9 - .string "using an inner tube.$" - -gUnknown_0862050E:: @ 862050E - .string "I don't know. I'll try hard.$" - -gUnknown_0862052B:: @ 862052B - .string "WATER POKéMON are buddies.$" - -gUnknown_08620546:: @ 8620546 - .string "It's not like I can't swim.$" - -gUnknown_08620562:: @ 8620562 - .string "I just like my inner tube.$" - -gUnknown_0862057D:: @ 862057D - .string "We split our duties.$" - -gUnknown_08620592:: @ 8620592 - .string "We like friendly POKéMON.$" - -gUnknown_086205AC:: @ 86205AC - .string "We enjoy POKéMON together$" - -gUnknown_086205C6:: @ 86205C6 - .string "as sister and brother.$" - -gUnknown_086205DD:: @ 86205DD - .string "I finish with power moves!$" - -gUnknown_086205F8:: @ 86205F8 - .string "A mix of different types.$" - -gUnknown_08620612:: @ 8620612 - .string "I aim to become the ultimate$" - -gUnknown_0862062F:: @ 862062F - .string "TRAINER!$" - -gUnknown_08620638:: @ 8620638 - .string "Exploit the foe's weakness.$" - -gUnknown_08620654:: @ 8620654 - .string "Balance is crucial.$" - -gUnknown_08620668:: @ 8620668 - .string "My goal is to become the$" - -gUnknown_08620681:: @ 8620681 - .string "POKéMON CHAMPION.$" - -gUnknown_08620693:: @ 8620693 - .string "Upset the opponent.$" - -gUnknown_086206A7:: @ 86206A7 - .string "Type doesn't matter.$" - -gUnknown_086206BC:: @ 86206BC - .string "I'm a top student at the$" - -gUnknown_086206D5:: @ 86206D5 - .string "TRAINER'S SCHOOL.$" - -gUnknown_086206E7:: @ 86206E7 - .string "Slow, steady suffering.$" - -gUnknown_086206FF:: @ 86206FF - .string "Scary to meet at night.$" - -gUnknown_08620717:: @ 8620717 - .string "I see things that others$" - -gUnknown_08620730:: @ 8620730 - .string "can't see...$" - -gUnknown_0862073D:: @ 862073D - .string "Anything to win.$" - -gUnknown_0862074E:: @ 862074E - .string "Gorgeous type!$" - -gUnknown_0862075D:: @ 862075D - .string "I have a pool specially for$" - -gUnknown_08620779:: @ 8620779 - .string "my POKéMON at home.$" - -gUnknown_0862078D:: @ 862078D - .string "You'll fall under my spell!$" - -gUnknown_086207A9:: @ 86207A9 - .string "Mature WATER type.$" - -gUnknown_086207BC:: @ 86207BC - .string "I dream of cruising around$" - -gUnknown_086207D7:: @ 86207D7 - .string "the world on a luxury liner.$" - -gUnknown_086207F4:: @ 86207F4 - .string "I'll lead you astray.$" - -gUnknown_0862080A:: @ 862080A - .string "Cute, of course.$" - -gUnknown_0862081B:: @ 862081B - .string "I love the SAFARI ZONE.$" - -gUnknown_08620833:: @ 8620833 - .string "I seem to end up there.$" - -gUnknown_0862084B:: @ 862084B - .string "Strategy? Who needs it?$" - -gUnknown_08620863:: @ 8620863 - .string "I spent big money on it!$" - -gUnknown_0862087C:: @ 862087C - .string "I, being rich, sleep in a$" - -gUnknown_08620896:: @ 8620896 - .string "custom POKéMON bed.$" - -gUnknown_086208AA:: @ 86208AA - .string "Wrestle down with power.$" - -gUnknown_086208C3:: @ 86208C3 - .string "Took all night to catch.$" - -gUnknown_086208DC:: @ 86208DC - .string "Big, burly, and buff$" - -gUnknown_086208F1:: @ 86208F1 - .string "POKéMON are the best...$" - -gUnknown_08620909:: @ 8620909 - .string "Ram at full speed!$" - -gUnknown_0862091C:: @ 862091C - .string "Funky WATER type!$" - -gUnknown_0862092E:: @ 862092E - .string "If I can't be out swimming,$" - -gUnknown_0862094A:: @ 862094A - .string "I'll be pumping weights.$" - -gUnknown_08620963:: @ 8620963 - .string "Grand slam pummeling!$" - -gUnknown_08620979:: @ 8620979 - .string "FIGHTING type.$" - -gUnknown_08620988:: @ 8620988 - .string "Not to brag, but I can bust$" - -gUnknown_086209A4:: @ 86209A4 - .string "ten roof tiles!$" - -gUnknown_086209B4:: @ 86209B4 - .string "Witness karate power!$" - -gUnknown_086209CA:: @ 86209CA - .string "My partners in training!$" - -gUnknown_086209E3:: @ 86209E3 - .string "Let us discuss matters of$" - -gUnknown_086209FD:: @ 86209FD - .string "the world with bare fists!$" - -gUnknown_08620A18:: @ 8620A18 - .string "Rock to stunning sounds!$" - -gUnknown_08620A31:: @ 8620A31 - .string "Electric-and-sound combo!$" - -gUnknown_08620A4B:: @ 8620A4B - .string "My compositions will shock$" - -gUnknown_08620A66:: @ 8620A66 - .string "you and stun you!$" - -gUnknown_08620A78:: @ 8620A78 - .string "I'll electrify you!$" - -gUnknown_08620A8C:: @ 8620A8C - .string "They're ELECTRIC!$" - -gUnknown_08620A9E:: @ 8620A9E - .string "I want to make people cry$" - -gUnknown_08620AB8:: @ 8620AB8 - .string "with songs from my heart.$" - -gUnknown_08620AD2:: @ 8620AD2 - .string "Burn it all down!$" - -gUnknown_08620AE4:: @ 8620AE4 - .string "Burn-inducing POKéMON.$" - -gUnknown_08620AFB:: @ 8620AFB - .string "When you light a campfire,$" - -gUnknown_08620B16:: @ 8620B16 - .string "be sure there's some water.$" - -gUnknown_08620B32:: @ 8620B32 - .string "Hang in and be tenacious!$" - -gUnknown_08620B4C:: @ 8620B4C - .string "I'll raise any POKéMON.$" - -gUnknown_08620B64:: @ 8620B64 - .string "POKéMON raised in the wild$" - -gUnknown_08620B7F:: @ 8620B7F - .string "grow strong!$" - -gUnknown_08620B8C:: @ 8620B8C - .string "Our love lets us prevail.$" - -gUnknown_08620BA6:: @ 8620BA6 - .string "We've had them for years.$" - -gUnknown_08620BC0:: @ 8620BC0 - .string "Married 50 years, we've$" - -gUnknown_08620BD8:: @ 8620BD8 - .string "devotedly raised POKéMON.$" - -gUnknown_08620BF2:: @ 8620BF2 - .string "Attack in waves!$" - -gUnknown_08620C03:: @ 8620C03 - .string "BUG POKéMON are cool.$" - -gUnknown_08620C19:: @ 8620C19 - .string "I go into the forest every$" - -gUnknown_08620C34:: @ 8620C34 - .string "day to catch BUG POKéMON.$" - -gUnknown_08620C4E:: @ 8620C4E - .string "Daze and confuse!$" - -gUnknown_08620C60:: @ 8620C60 - .string "Ones with weird powers.$" - -gUnknown_08620C78:: @ 8620C78 - .string "I can see through exactly$" - -gUnknown_08620C92:: @ 8620C92 - .string "what you're thinking!$" - -gUnknown_08620CA8:: @ 8620CA8 - .string "Battle at full power.$" - -gUnknown_08620CBE:: @ 8620CBE - .string "POKéMON of many mysteries.$" - -gUnknown_08620CD9:: @ 8620CD9 - .string "When we spoke, I was really$" - -gUnknown_08620CF5:: @ 8620CF5 - .string "using telepathy.$" - -gUnknown_08620D06:: @ 8620D06 - .string "Calm and collected.$" - -gUnknown_08620D1A:: @ 8620D1A - .string "POKéMON of distinction.$" - -gUnknown_08620D32:: @ 8620D32 - .string "We enjoy a spot of tea$" - -gUnknown_08620D49:: @ 8620D49 - .string "every day. It's imported.$" - -gUnknown_08620D63:: @ 8620D63 - .string "I use my head to battle.$" - -gUnknown_08620D7C:: @ 8620D7C - .string "I love any kind of POKéMON!$" - -gUnknown_08620D98:: @ 8620D98 - .string "My daddy gives me spending$" - -gUnknown_08620DB3:: @ 8620DB3 - .string "money if I ace a test.$" - -gUnknown_08620DCA:: @ 8620DCA - .string "My knowledge rules!$" - -gUnknown_08620DDE:: @ 8620DDE - .string "Any smart POKéMON!$" - -gUnknown_08620DF1:: @ 8620DF1 - .string "I want to be a POKéMON$" - -gUnknown_08620E08:: @ 8620E08 - .string "researcher in the future.$" - -gUnknown_08620E22:: @ 8620E22 - .string "We talk it over first.$" - -gUnknown_08620E39:: @ 8620E39 - .string "POKéMON that we both like.$" - -gUnknown_08620E54:: @ 8620E54 - .string "We're senior and junior$" - -gUnknown_08620E6C:: @ 8620E6C - .string "students into POKéMON!$" - -gUnknown_08620E83:: @ 8620E83 - .string "Go for it, my dears!$" - -gUnknown_08620E98:: @ 8620E98 - .string "I have no likes or dislikes.$" - -gUnknown_08620EB5:: @ 8620EB5 - .string "While out shopping for$" - -gUnknown_08620ECC:: @ 8620ECC - .string "supper, I battle too.$" - -gUnknown_08620EE2:: @ 8620EE2 - .string "I battle with love!$" - -gUnknown_08620EF6:: @ 8620EF6 - .string "A POKéMON raised with love!$" - -gUnknown_08620F12:: @ 8620F12 - .string "It's important to build$" - -gUnknown_08620F2A:: @ 8620F2A - .string "trust with your POKéMON.$" - -gUnknown_08620F43:: @ 8620F43 - .string "I see through your moves!$" - -gUnknown_08620F5D:: @ 8620F5D - .string "The essence of FIGHTING.$" - -gUnknown_08620F76:: @ 8620F76 - .string "I'm not ready to give way$" - -gUnknown_08620F90:: @ 8620F90 - .string "to the young yet!$" - -gUnknown_08620FA2:: @ 8620FA2 - .string "Attack while defending.$" - -gUnknown_08620FBA:: @ 8620FBA - .string "The FIGHTING type.$" - -gUnknown_08620FCD:: @ 8620FCD - .string "Being old, I have my own$" - -gUnknown_08620FE6:: @ 8620FE6 - .string "style of battling.$" - -gUnknown_08620FF9:: @ 8620FF9 - .string "I do what I can.$" - -gUnknown_0862100A:: @ 862100A - .string "I use different types.$" - -gUnknown_08621021:: @ 8621021 - .string "I'm going to keep working$" - -gUnknown_0862103B:: @ 862103B - .string "until I beat a GYM LEADER.$" - -gUnknown_08621056:: @ 8621056 - .string "I battle patiently.$" - -gUnknown_0862106A:: @ 862106A - .string "WATER POKéMON to battle!$" - -gUnknown_08621083:: @ 8621083 - .string "I'm the world's only guy to$" - -gUnknown_0862109F:: @ 862109F - .string "catch a huge POKéMON!$" - -gUnknown_086210B5:: @ 86210B5 - .string "Exploit the environment!$" - -gUnknown_086210CE:: @ 86210CE - .string "All hail the WATER type!$" - -gUnknown_086210E7:: @ 86210E7 - .string "I won't be beaten by some$" - -gUnknown_08621101:: @ 8621101 - .string "beach bum SWIMMER!$" - -gUnknown_08621114:: @ 8621114 - .string "Speed above all!$" - -gUnknown_08621125:: @ 8621125 - .string "I use a speedy POKéMON.$" - -gUnknown_0862113D:: @ 862113D - .string "A marathon is a challenge$" - -gUnknown_08621157:: @ 8621157 - .string "against your own self.$" - -gUnknown_0862116E:: @ 862116E - .string "Defense is crucial.$" - -gUnknown_08621182:: @ 8621182 - .string "My POKéMON is solid.$" - -gUnknown_08621197:: @ 8621197 - .string "I started this for dieting,$" - -gUnknown_086211B3:: @ 86211B3 - .string "but I got right into it.$" - -gUnknown_086211CC:: @ 86211CC - .string "Strike before stricken!$" - -gUnknown_086211E4:: @ 86211E4 - .string "A fast-running POKéMON!$" - -gUnknown_086211FC:: @ 86211FC - .string "If you ran and ran, you'd$" - -gUnknown_08621216:: @ 8621216 - .string "become one with the wind.$" - -gUnknown_08621230:: @ 8621230 - .string "All-out offensive!$" - -gUnknown_08621243:: @ 8621243 - .string "WATER POKéMON rule!$" - -gUnknown_08621257:: @ 8621257 - .string "I must swim over 6 miles$" - -gUnknown_08621270:: @ 8621270 - .string "every day.$" - -gUnknown_0862127B:: @ 862127B - .string "Push and push again!$" - -gUnknown_08621290:: @ 8621290 - .string "The strength of STEEL.$" - -gUnknown_086212A7:: @ 86212A7 - .string "If you're sweating, get$" - -gUnknown_086212BF:: @ 86212BF - .string "fluids into you regularly.$" - -gUnknown_086212DA:: @ 86212DA - .string "Draw the power of WATER.$" - -gUnknown_086212F3:: @ 86212F3 - .string "Toughened WATER POKéMON.$" - -gUnknown_0862130C:: @ 862130C - .string "Training POKéMON is good,$" - -gUnknown_08621326:: @ 8621326 - .string "but don't neglect yourself.$" - -gUnknown_08621342:: @ 8621342 - .string "It's about POKéMON power!$" - -gUnknown_0862135C:: @ 862135C - .string "See the power of DRAGONS!$" - -gUnknown_08621376:: @ 8621376 - .string "I'll become legendary as the$" - -gUnknown_08621393:: @ 8621393 - .string "strongest one day!$" - -gUnknown_086213A6:: @ 86213A6 - .string "I'll show you my technique!$" - -gUnknown_086213C2:: @ 86213C2 - .string "Elegantly wheeling BIRDS.$" - -gUnknown_086213DC:: @ 86213DC - .string "My BIRD POKéMON, deliver my$" - -gUnknown_086213F8:: @ 86213F8 - .string "love to that girl!$" - -gUnknown_0862140B:: @ 862140B - .string "You'll suffer from poison!$" - -gUnknown_08621426:: @ 8621426 - .string "Poisonous POKéMON.$" - -gUnknown_08621439:: @ 8621439 - .string "I undertake training so$" - -gUnknown_08621451:: @ 8621451 - .string "that I may become a ninja.$" - -gUnknown_0862146C:: @ 862146C - .string "The first strike wins!$" - -gUnknown_08621483:: @ 8621483 - .string "Speedy FIGHTING type.$" - -gUnknown_08621499:: @ 8621499 - .string "If my POKéMON lose,$" - -gUnknown_086214AD:: @ 86214AD - .string "I'll carry on the fight!$" - -gUnknown_086214C6:: @ 86214C6 - .string "Go, go, my POKéMON!$" - -gUnknown_086214DA:: @ 86214DA - .string "I'll raise anything.$" - -gUnknown_086214EF:: @ 86214EF - .string "UV rays are your skin's$" - -gUnknown_08621507:: @ 8621507 - .string "enemy. Get protected.$" - -gUnknown_0862151D:: @ 862151D - .string "No mercy!$" - -gUnknown_08621527:: @ 8621527 - .string "Cute WATER POKéMON.$" - -gUnknown_0862153B:: @ 862153B - .string "I have too many fans.$" - -gUnknown_08621551:: @ 8621551 - .string "I was interviewed on TV.$" - -gUnknown_0862156A:: @ 862156A - .string "I think about this & that.$" - -gUnknown_08621585:: @ 8621585 - .string "I like all POKéMON.$" - -gUnknown_08621599:: @ 8621599 - .string "What lies beyond that$" - -gUnknown_086215AF:: @ 86215AF - .string "yonder hill?$" - -gUnknown_086215BC:: @ 86215BC - .string "We battle together!$" - -gUnknown_086215D0:: @ 86215D0 - .string "We train together!$" - -gUnknown_086215E3:: @ 86215E3 - .string "We like the same POKéMON,$" - -gUnknown_086215FD:: @ 86215FD - .string "but different desserts.$" - -gUnknown_08621615:: @ 8621615 - .string "I force things with power!$" - -gUnknown_08621630:: @ 8621630 - .string "WATER and FIGHTING types.$" - -gUnknown_0862164A:: @ 862164A - .string "Seamen are rough spirits!$" - -gUnknown_08621664:: @ 8621664 - .string "Any complaints?$" - -gUnknown_08621674:: @ 8621674 - .string "Up for a fight anytime!$" - -gUnknown_0862168C:: @ 862168C - .string "WATER POKéMON are my faves!$" - -gUnknown_086216A8:: @ 86216A8 - .string "If you want to shout loud,$" - -gUnknown_086216C3:: @ 86216C3 - .string "suck in air with your belly!$" - -gUnknown_086216E0:: @ 86216E0 - .string "Protect POKéMON from harm.$" - -gUnknown_086216FB:: @ 86216FB - .string "I love rare POKéMON.$" - -gUnknown_08621710:: @ 8621710 - .string "I want to collect all the$" - -gUnknown_0862172A:: @ 862172A - .string "world's rare POKéMON.$" - -gUnknown_08621740:: @ 8621740 - .string "I count on power.$" - -gUnknown_08621752:: @ 8621752 - .string "POKéMON are my children.$" - -gUnknown_0862176B:: @ 862176B - .string "It takes knowledge and$" - -gUnknown_08621782:: @ 8621782 - .string "love to raise POKéMON.$" - -gUnknown_08621799:: @ 8621799 - .string "Full-on attack!$" - -gUnknown_086217A9:: @ 86217A9 - .string "Anything. I'll raise it.$" - -gUnknown_086217C2:: @ 86217C2 - .string "I give them {POKEBLOCK}S for$" - -gUnknown_086217D9:: @ 86217D9 - .string "going after CONTEST titles.$" - -gUnknown_086217F5:: @ 86217F5 - .string "I raise POKéMON with care.$" - -gUnknown_08621810:: @ 8621810 - .string "Fun-to-raise POKéMON.$" - -gUnknown_08621826:: @ 8621826 - .string "Treat every POKéMON you$" - -gUnknown_0862183E:: @ 862183E - .string "meet with respect.$" - -gUnknown_08621851:: @ 8621851 - .string "I believe in my POKéMON.$" - -gUnknown_0862186A:: @ 862186A - .string "I like strong POKéMON.$" - -gUnknown_08621881:: @ 8621881 - .string "I'm training for rescue$" - -gUnknown_08621899:: @ 8621899 - .string "work with my POKéMON.$" - -gUnknown_086218AF:: @ 86218AF - .string "Attack in waves!$" - -gUnknown_086218C0:: @ 86218C0 - .string "I use different types.$" - -gUnknown_086218D7:: @ 86218D7 - .string "Those who destroy nature$" - -gUnknown_086218F0:: @ 86218F0 - .string "must never be forgiven!$" - -gUnknown_08621908:: @ 8621908 - .string "I'll show you some guts!$" - -gUnknown_08621921:: @ 8621921 - .string "Cute POKéMON are my faves!$" - -gUnknown_0862193C:: @ 862193C - .string "After a battle, I always$" - -gUnknown_08621955:: @ 8621955 - .string "bathe with my POKéMON.$" - -gUnknown_0862196C:: @ 862196C - .string "Lightning-fast attack!$" - -gUnknown_08621983:: @ 8621983 - .string "BUG POKéMON are number 1!$" - -gUnknown_0862199D:: @ 862199D - .string "If you want to catch BUG$" - -gUnknown_086219B6:: @ 86219B6 - .string "POKéMON, wake up early.$" - -gUnknown_086219CE:: @ 86219CE - .string "I battle with power.$" - -gUnknown_086219E3:: @ 86219E3 - .string "Hard-bodied POKéMON.$" - -gUnknown_086219F8:: @ 86219F8 - .string "I've been planning a month$" - -gUnknown_08621A13:: @ 8621A13 - .string "for today's hike.$" - -gUnknown_08621A25:: @ 8621A25 - .string "I like it hot!$" - -gUnknown_08621A34:: @ 8621A34 - .string "Hot POKéMON!$" - -gUnknown_08621A41:: @ 8621A41 - .string "As much as I love POKéMON,$" - -gUnknown_08621A5C:: @ 8621A5C - .string "I surely like hiking!$" - -gUnknown_08621A72:: @ 8621A72 - .string "Lovey-dovey strategy!$" - -gUnknown_08621A88:: @ 8621A88 - .string "Lovey-dovey POKéMON!$" - -gUnknown_08621A9D:: @ 8621A9D - .string "We're lovey-dovey!$" - -gUnknown_08621AB0:: @ 8621AB0 - .string "Forever lovey-dovey!$" - -gUnknown_08621AC5:: @ 8621AC5 - .string "We let it all hang out.$" - -gUnknown_08621ADD:: @ 8621ADD - .string "The 1st POKéMON I caught.$" - -gUnknown_08621AF7:: @ 8621AF7 - .string "POKéMON and I have grown$" - -gUnknown_08621B10:: @ 8621B10 - .string "stronger together.$" - -gUnknown_08621B23:: @ 8621B23 - .string "ROCK-type power attack.$" - -gUnknown_08621B3B:: @ 8621B3B - .string "I prefer rock-hard POKéMON.$" - -gUnknown_08621B57:: @ 8621B57 - .string "A LEADER of a big GYM bears$" - -gUnknown_08621B73:: @ 8621B73 - .string "a lot of responsibility.$" - -gUnknown_08621B8C:: @ 8621B8C - .string "Direct physical action!$" - -gUnknown_08621BA4:: @ 8621BA4 - .string "FIGHTING POKéMON rule!$" - -gUnknown_08621BBB:: @ 8621BBB - .string "The world awaits me as the$" - -gUnknown_08621BD6:: @ 8621BD6 - .string "next big wave!$" - -gUnknown_08621BE5:: @ 8621BE5 - .string "I choose to electrify.$" - -gUnknown_08621BFC:: @ 8621BFC - .string "Get shocked by electricity!$" - -gUnknown_08621C18:: @ 8621C18 - .string "One must never throw a$" - -gUnknown_08621C2F:: @ 8621C2F - .string "match. Even I must not.$" - -gUnknown_08621C47:: @ 8621C47 - .string "Battle aggressively.$" - -gUnknown_08621C5C:: @ 8621C5C - .string "Burn with passion!$" - -gUnknown_08621C6F:: @ 8621C6F - .string "Completely wash away daily$" - -gUnknown_08621C8A:: @ 8621C8A - .string "fatigue in hot springs!$" - -gUnknown_08621CA2:: @ 8621CA2 - .string "I flexibly adapt my style.$" - -gUnknown_08621CBD:: @ 8621CBD - .string "Grown in a balanced manner.$" - -gUnknown_08621CD9:: @ 8621CD9 - .string "I walk the 30 minutes from$" - -gUnknown_08621CF4:: @ 8621CF4 - .string "home to here every day.$" - -gUnknown_08621D0C:: @ 8621D0C - .string "I take advantage of speed.$" - -gUnknown_08621D27:: @ 8621D27 - .string "Graceful sky dancers.$" - -gUnknown_08621D3D:: @ 8621D3D - .string "The ultimate would be to$" - -gUnknown_08621D56:: @ 8621D56 - .string "live as one with nature.$" - -gUnknown_08621D6F:: @ 8621D6F - .string "We battle in cooperation.$" - -gUnknown_08621D89:: @ 8621D89 - .string "Always friendly POKéMON.$" - -gUnknown_08621DA2:: @ 8621DA2 - .string "Papa has trouble telling$" - -gUnknown_08621DBB:: @ 8621DBB - .string "the two of us apart!$" - -gUnknown_08621DD0:: @ 8621DD0 - .string "I use splendid waterpower.$" - -gUnknown_08621DEB:: @ 8621DEB - .string "POKéMON of elegance!$" - -gUnknown_08621E00:: @ 8621E00 - .string "The adulation of beautiful$" - -gUnknown_08621E1B:: @ 8621E1B - .string "ladies fills me with energy!$" - -gUnknown_08621E38:: @ 8621E38 - .string "Offense over defense!$" - -gUnknown_08621E4E:: @ 8621E4E - .string "The DARK side's beauties.$" - -gUnknown_08621E68:: @ 8621E68 - .string "They said I was a punk, but$" - -gUnknown_08621E84:: @ 8621E84 - .string "I'm one of the ELITE FOUR!$" - -gUnknown_08621E9F:: @ 8621E9F - .string "Confuse and confound.$" - -gUnknown_08621EB5:: @ 8621EB5 - .string "There's nothing definite.$" - -gUnknown_08621ECF:: @ 8621ECF - .string "I wonder how my grandma at$" - -gUnknown_08621EEA:: @ 8621EEA - .string "MT. PYRE is doing?$" - -gUnknown_08621EFD:: @ 8621EFD - .string "I use items for help.$" - -gUnknown_08621F13:: @ 8621F13 - .string "Flaming passion in icy cold!$" - -gUnknown_08621F30:: @ 8621F30 - .string "The ICE type can be better$" - -gUnknown_08621F4B:: @ 8621F4B - .string "trained in this hot land.$" - -gUnknown_08621F65:: @ 8621F65 - .string "Harness strong abilities.$" - -gUnknown_08621F7F:: @ 8621F7F - .string "The raw power of DRAGONS!$" - -gUnknown_08621F99:: @ 8621F99 - .string "I dedicate myself to the$" - -gUnknown_08621FB2:: @ 8621FB2 - .string "POKéMON that saved me.$" - -gUnknown_08621FC9:: @ 8621FC9 - .string "Dignity and respect.$" - -gUnknown_08621FDE:: @ 8621FDE - .string "I prefer POKéMON of grace.$" - -gUnknown_08621FF9:: @ 8621FF9 - .string "I represent beauty as$" - -gUnknown_0862200F:: @ 862200F - .string "well as intelligence.$" - -.align 2 - -@ strategy, mon text, introduction1, introduction2 -gUnknown_08622028:: @ 8622028 - .4byte gUnknown_08620390, gUnknown_086203AA, gUnknown_086203C2, gUnknown_086203DB - .4byte gUnknown_086203F2, gUnknown_0862040D, gUnknown_08620428, gUnknown_08620444 - .4byte gUnknown_08620456, gUnknown_0862046C, gUnknown_08620481, gUnknown_0862049C - .4byte gUnknown_086204B0, gUnknown_086204C7, gUnknown_086204DD, gUnknown_086204F9 - .4byte gUnknown_0862050E, gUnknown_0862052B, gUnknown_08620546, gUnknown_08620562 - .4byte gUnknown_0862057D, gUnknown_08620592, gUnknown_086205AC, gUnknown_086205C6 - .4byte gUnknown_086205DD, gUnknown_086205F8, gUnknown_08620612, gUnknown_0862062F - .4byte gUnknown_08620638, gUnknown_08620654, gUnknown_08620668, gUnknown_08620681 - .4byte gUnknown_08620693, gUnknown_086206A7, gUnknown_086206BC, gUnknown_086206D5 - .4byte gUnknown_086206E7, gUnknown_086206FF, gUnknown_08620717, gUnknown_08620730 - .4byte gUnknown_0862073D, gUnknown_0862074E, gUnknown_0862075D, gUnknown_08620779 - .4byte gUnknown_0862078D, gUnknown_086207A9, gUnknown_086207BC, gUnknown_086207D7 - .4byte gUnknown_086207F4, gUnknown_0862080A, gUnknown_0862081B, gUnknown_08620833 - .4byte gUnknown_0862084B, gUnknown_08620863, gUnknown_0862087C, gUnknown_08620896 - .4byte gUnknown_086208AA, gUnknown_086208C3, gUnknown_086208DC, gUnknown_086208F1 - .4byte gUnknown_08620909, gUnknown_0862091C, gUnknown_0862092E, gUnknown_0862094A - .4byte gUnknown_08620963, gUnknown_08620979, gUnknown_08620988, gUnknown_086209A4 - .4byte gUnknown_086209B4, gUnknown_086209CA, gUnknown_086209E3, gUnknown_086209FD - .4byte gUnknown_08620A18, gUnknown_08620A31, gUnknown_08620A4B, gUnknown_08620A66 - .4byte gUnknown_08620A78, gUnknown_08620A8C, gUnknown_08620A9E, gUnknown_08620AB8 - .4byte gUnknown_08620AD2, gUnknown_08620AE4, gUnknown_08620AFB, gUnknown_08620B16 - .4byte gUnknown_08620B32, gUnknown_08620B4C, gUnknown_08620B64, gUnknown_08620B7F - .4byte gUnknown_08620B8C, gUnknown_08620BA6, gUnknown_08620BC0, gUnknown_08620BD8 - .4byte gUnknown_08620BF2, gUnknown_08620C03, gUnknown_08620C19, gUnknown_08620C34 - .4byte gUnknown_08620C4E, gUnknown_08620C60, gUnknown_08620C78, gUnknown_08620C92 - .4byte gUnknown_08620CA8, gUnknown_08620CBE, gUnknown_08620CD9, gUnknown_08620CF5 - .4byte gUnknown_08620D06, gUnknown_08620D1A, gUnknown_08620D32, gUnknown_08620D49 - .4byte gUnknown_08620D63, gUnknown_08620D7C, gUnknown_08620D98, gUnknown_08620DB3 - .4byte gUnknown_08620DCA, gUnknown_08620DDE, gUnknown_08620DF1, gUnknown_08620E08 - .4byte gUnknown_08620E22, gUnknown_08620E39, gUnknown_08620E54, gUnknown_08620E6C - .4byte gUnknown_08620E83, gUnknown_08620E98, gUnknown_08620EB5, gUnknown_08620ECC - .4byte gUnknown_08620EE2, gUnknown_08620EF6, gUnknown_08620F12, gUnknown_08620F2A - .4byte gUnknown_08620F43, gUnknown_08620F5D, gUnknown_08620F76, gUnknown_08620F90 - .4byte gUnknown_08620FA2, gUnknown_08620FBA, gUnknown_08620FCD, gUnknown_08620FE6 - .4byte gUnknown_08620FF9, gUnknown_0862100A, gUnknown_08621021, gUnknown_0862103B - .4byte gUnknown_08621056, gUnknown_0862106A, gUnknown_08621083, gUnknown_0862109F - .4byte gUnknown_086210B5, gUnknown_086210CE, gUnknown_086210E7, gUnknown_08621101 - .4byte gUnknown_08621114, gUnknown_08621125, gUnknown_0862113D, gUnknown_08621157 - .4byte gUnknown_0862116E, gUnknown_08621182, gUnknown_08621197, gUnknown_086211B3 - .4byte gUnknown_086211CC, gUnknown_086211E4, gUnknown_086211FC, gUnknown_08621216 - .4byte gUnknown_08621230, gUnknown_08621243, gUnknown_08621257, gUnknown_08621270 - .4byte gUnknown_0862127B, gUnknown_08621290, gUnknown_086212A7, gUnknown_086212BF - .4byte gUnknown_086212DA, gUnknown_086212F3, gUnknown_0862130C, gUnknown_08621326 - .4byte gUnknown_08621342, gUnknown_0862135C, gUnknown_08621376, gUnknown_08621393 - .4byte gUnknown_086213A6, gUnknown_086213C2, gUnknown_086213DC, gUnknown_086213F8 - .4byte gUnknown_0862140B, gUnknown_08621426, gUnknown_08621439, gUnknown_08621451 - .4byte gUnknown_0862146C, gUnknown_08621483, gUnknown_08621499, gUnknown_086214AD - .4byte gUnknown_086214C6, gUnknown_086214DA, gUnknown_086214EF, gUnknown_08621507 - .4byte gUnknown_0862151D, gUnknown_08621527, gUnknown_0862153B, gUnknown_08621551 - .4byte gUnknown_0862156A, gUnknown_08621585, gUnknown_08621599, gUnknown_086215AF - .4byte gUnknown_086215BC, gUnknown_086215D0, gUnknown_086215E3, gUnknown_086215FD - .4byte gUnknown_08621615, gUnknown_08621630, gUnknown_0862164A, gUnknown_08621664 - .4byte gUnknown_08621674, gUnknown_0862168C, gUnknown_086216A8, gUnknown_086216C3 - .4byte gUnknown_086216E0, gUnknown_086216FB, gUnknown_08621710, gUnknown_0862172A - .4byte gUnknown_08621740, gUnknown_08621752, gUnknown_0862176B, gUnknown_08621782 - .4byte gUnknown_08621799, gUnknown_086217A9, gUnknown_086217C2, gUnknown_086217D9 - .4byte gUnknown_086217F5, gUnknown_08621810, gUnknown_08621826, gUnknown_0862183E - .4byte gUnknown_08621851, gUnknown_0862186A, gUnknown_08621881, gUnknown_08621899 - .4byte gUnknown_086218AF, gUnknown_086218C0, gUnknown_086218D7, gUnknown_086218F0 - .4byte gUnknown_08621908, gUnknown_08621921, gUnknown_0862193C, gUnknown_08621955 - .4byte gUnknown_0862196C, gUnknown_08621983, gUnknown_0862199D, gUnknown_086219B6 - .4byte gUnknown_086219CE, gUnknown_086219E3, gUnknown_086219F8, gUnknown_08621A13 - .4byte gUnknown_08621A25, gUnknown_08621A34, gUnknown_08621A41, gUnknown_08621A5C - .4byte gUnknown_08621A72, gUnknown_08621A88, gUnknown_08621A9D, gUnknown_08621AB0 - .4byte gUnknown_08621AC5, gUnknown_08621ADD, gUnknown_08621AF7, gUnknown_08621B10 - .4byte gUnknown_08621B23, gUnknown_08621B3B, gUnknown_08621B57, gUnknown_08621B73 - .4byte gUnknown_08621B8C, gUnknown_08621BA4, gUnknown_08621BBB, gUnknown_08621BD6 - .4byte gUnknown_08621BE5, gUnknown_08621BFC, gUnknown_08621C18, gUnknown_08621C2F - .4byte gUnknown_08621C47, gUnknown_08621C5C, gUnknown_08621C6F, gUnknown_08621C8A - .4byte gUnknown_08621CA2, gUnknown_08621CBD, gUnknown_08621CD9, gUnknown_08621CF4 - .4byte gUnknown_08621D0C, gUnknown_08621D27, gUnknown_08621D3D, gUnknown_08621D56 - .4byte gUnknown_08621D6F, gUnknown_08621D89, gUnknown_08621DA2, gUnknown_08621DBB - .4byte gUnknown_08621DD0, gUnknown_08621DEB, gUnknown_08621E00, gUnknown_08621E1B - .4byte gUnknown_08621E38, gUnknown_08621E4E, gUnknown_08621E68, gUnknown_08621E84 - .4byte gUnknown_08621E9F, gUnknown_08621EB5, gUnknown_08621ECF, gUnknown_08621EEA - .4byte gUnknown_08621EFD, gUnknown_08621F13, gUnknown_08621F30, gUnknown_08621F4B - .4byte gUnknown_08621F65, gUnknown_08621F7F, gUnknown_08621F99, gUnknown_08621FB2 - .4byte gUnknown_08621FC9, gUnknown_08621FDE, gUnknown_08621FF9, gUnknown_0862200F - -gUnknown_08622508:: @ 8622508 - .byte 0, 2 - -gUnknown_0862250A:: @ 862250A - .byte 0, 1, 2, 0, 0, 0 - -// pokenav_unk_4.s -gUnknown_08622510:: @ 8622510 - .incbin "graphics/pokenav/ui_matchcall.gbapal" - -gUnknown_08622530:: @ 8622530 - .incbin "graphics/pokenav/ui_matchcall.4bpp.lz" - -gUnknown_086225D4:: @ 86225D4 - .incbin "graphics/pokenav/ui_matchcall.bin.lz" - -gUnknown_08622698:: @ 8622698 - .incbin "graphics/pokenav/arrow2.gbapal" - -gUnknown_086226B8:: @ 86226B8 - .incbin "graphics/pokenav/arrow2.4bpp.lz" - -gUnknown_086226E0:: @ 86226E0 - .incbin "graphics/pokenav/86226E0.gbapal" - -gUnknown_08622700:: @ 8622700 - .incbin "graphics/pokenav/8622700.gbapal" - -gUnknown_08622720:: @ 8622720 - .incbin "graphics/pokenav/pokeball_matchcall.gbapal" - -gUnknown_08622760:: @ 8622760 - .incbin "graphics/pokenav/pokeball_matchcall.4bpp.lz" - -gUnknown_0862278C:: @ 862278C - .4byte 0x11FD - .4byte 0x20206A - -gUnknown_08622794:: @ 8622794 - .4byte 0x00003077 - -gUnknown_08622798:: @ 8622798 - .4byte NULL - .4byte sub_81CB510 - .4byte sub_81CB588 - .4byte sub_81CB600 - .4byte sub_81CB678 - .4byte sub_81CB6F0 - .4byte sub_81CB734 - .4byte sub_81CB75C - .4byte sub_81CB7A0 - .4byte sub_81CB824 - .4byte sub_81CB888 - .4byte sub_81CB93C - .4byte sub_81CBAD4 - .4byte sub_81CB9C8 - .4byte sub_81CBA68 - .4byte sub_81CBB74 - -gUnknown_086227D8:: @ 86227D8 - window_template 2, 0, 5, 11, 2, 2, 16 - -gUnknown_086227E0:: @ 86227E0 - window_template 2, 0, 9, 11, 8, 2, 0x26 - -gUnknown_086227E8:: @ 86227E8 - .4byte gUnknown_085EC017 - .4byte gUnknown_085EC01C - .4byte gUnknown_085EC022 - -gUnknown_086227F4:: @ 86227F4 - .string "·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p" - .string "$" - .align 2 - -gUnknown_08622808:: @ 8622808 - window_template 1, 1, 12, 0x1C, 4, 1, 10 - -gUnknown_08622810:: @ 8622810 - obj_tiles gUnknown_086226B8, 0x40, 7 - -gUnknown_08622818:: @ 8622818 - obj_pal gUnknown_08622698, 12 - null_obj_pal - -gUnknown_08622828:: @ 8622828 - .2byte 0x8000 - .2byte 0x0 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622830:: @ 8622830 - spr_template 7, 12, gUnknown_08622828, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CC34C - -gUnknown_08622848:: @ 8622848 - .2byte 0x0 - .2byte 0xC000 - .2byte 0x400 - .2byte 0x0 - -gUnknown_08622850:: @ 8622850 - spr_template 8, 13, gUnknown_08622848, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -// pokenav_unk_5.s -gUnknown_08622868:: @ 8622868 - .incbin "graphics/pokenav/8622868.gbapal" - -gUnknown_08622888:: @ 8622888 - .incbin "graphics/pokenav/zoom_tiles.4bpp.lz" - -gUnknown_08622A7C:: @ 8622A7C - .incbin "graphics/pokenav/city_maps/lavaridge_0.bin.lz" - -gUnknown_08622AC0:: @ 8622AC0 - .incbin "graphics/pokenav/city_maps/fallarbor_0.bin.lz" - -gUnknown_08622B08:: @ 8622B08 - .incbin "graphics/pokenav/city_maps/fortree_0.bin.lz" - -gUnknown_08622B58:: @ 8622B58 - .incbin "graphics/pokenav/city_maps/slateport_0.bin.lz" - -gUnknown_08622BB8:: @ 8622BB8 - .incbin "graphics/pokenav/city_maps/slateport_1.bin.lz" - -gUnknown_08622C04:: @ 8622C04 - .incbin "graphics/pokenav/city_maps/rustboro_0.bin.lz" - -gUnknown_08622C58:: @ 8622C58 - .incbin "graphics/pokenav/city_maps/rustboro_1.bin.lz" - -gUnknown_08622CAC:: @ 8622CAC - .incbin "graphics/pokenav/city_maps/pacifidlog_0.bin.lz" - -gUnknown_08622CEC:: @ 8622CEC - .incbin "graphics/pokenav/city_maps/mauville_0.bin.lz" - -gUnknown_08622D44:: @ 8622D44 - .incbin "graphics/pokenav/city_maps/mauville_1.bin.lz" - -gUnknown_08622D98:: @ 8622D98 - .incbin "graphics/pokenav/city_maps/oldale_0.bin.lz" - -gUnknown_08622DC8:: @ 8622DC8 - .incbin "graphics/pokenav/city_maps/lilycove_0.bin.lz" - -gUnknown_08622E14:: @ 8622E14 - .incbin "graphics/pokenav/city_maps/lilycove_1.bin.lz" - -gUnknown_08622E6C:: @ 8622E6C - .incbin "graphics/pokenav/city_maps/littleroot_0.bin.lz" - -gUnknown_08622E9C:: @ 8622E9C - .incbin "graphics/pokenav/city_maps/dewford_0.bin.lz" - -gUnknown_08622ED4:: @ 8622ED4 - .incbin "graphics/pokenav/city_maps/sootopolis_0.bin.lz" - -gUnknown_08622F14:: @ 8622F14 - .incbin "graphics/pokenav/city_maps/ever_grande_0.bin.lz" - -gUnknown_08622F5C:: @ 8622F5C - .incbin "graphics/pokenav/city_maps/ever_grande_1.bin.lz" - -gUnknown_08622FA0:: @ 8622FA0 - .incbin "graphics/pokenav/city_maps/verdanturf_0.bin.lz" - -gUnknown_08622FD8:: @ 8622FD8 - .incbin "graphics/pokenav/city_maps/mossdeep_0.bin.lz" - -gUnknown_08623020:: @ 8623020 - .incbin "graphics/pokenav/city_maps/mossdeep_1.bin.lz" - -gUnknown_0862307C:: @ 862307C - .incbin "graphics/pokenav/city_maps/petalburg_0.bin.lz" - -gUnknown_086230D8:: @ 86230D8 - .4byte 0x11F5 - .4byte 0x206A - .4byte 0x3402 - -gUnknown_086230E4:: @ 86230E4 - .4byte NULL - .4byte sub_81CC848 - .4byte sub_81CC878 - .4byte sub_81CC8D8 - .4byte sub_81CC95C - -gUnknown_086230F8:: @ 86230F8 - obj_tiles gHoennMapZoomIcons_Gfx, 0x800, 6 - -gUnknown_08623100:: @ 8623100 - obj_pal gHoennMapZoomIcons_Pal, 11 - null_obj_pal - -gUnknown_08623110:: @ 8623110 - .byte 1 - .byte 17 - .byte 4 - .byte 12 - .byte 13 - .byte 1 - .2byte 0x4C - -gUnknown_08623118:: @ 8623118 - .4byte 0, gUnknown_08622E6C - .4byte 1, gUnknown_08622D98 - .4byte 2, gUnknown_08622E9C - .4byte 3, gUnknown_08622A7C - .4byte 4, gUnknown_08622AC0 - .4byte 5, gUnknown_08622FA0 - .4byte 6, gUnknown_08622CAC - .4byte 7, gUnknown_0862307C - .4byte 8, gUnknown_08622B58 - .4byte 0x10008, gUnknown_08622BB8 - .4byte 9, gUnknown_08622D44 - .4byte 0x10009, gUnknown_08622CEC - .4byte 0xA, gUnknown_08622C04 - .4byte 0x1000A, gUnknown_08622C58 - .4byte 0xB, gUnknown_08622B08 - .4byte 0xC, gUnknown_08622E14 - .4byte 0x1000C, gUnknown_08622DC8 - .4byte 0xD, gUnknown_08623020 - .4byte 0x1000D, gUnknown_08622FD8 - .4byte 0xE, gUnknown_08622ED4 - .4byte 0xF, gUnknown_08622F14 - .4byte 0x1000F, gUnknown_08622F5C - -gUnknown_086231C8:: @ 86231C8 - .2byte 0x4000 - .2byte 0x4000 - .2byte 0x400 - .2byte 0x0 - -gUnknown_086231D0:: @ 86231D0 - spr_template 6, 11, gUnknown_086231C8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_81CCEF4 - -// pokenav_unk_6.s -// <none> - -// pokenav_unk_7.s -gUnknown_086231E8:: @ 86231E8 - .incbin "graphics/pokenav/86231E8.gbapal" - -gUnknown_08623208:: @ 8623208 - .incbin "graphics/pokenav/8623208.gbapal" - -gUnknown_08623228:: @ 8623228 - .incbin "graphics/pokenav/8623228.4bpp.lz" - -gUnknown_0862323C:: @ 862323C - .incbin "graphics/pokenav/862323C.bin.lz" - -gUnknown_08623338:: @ 8623338 - .incbin "graphics/pokenav/8623338.gbapal" - -gUnknown_08623358:: @ 8623358 - .4byte 0x11F5 - .4byte 0x21DE - .4byte 0x31EB - -gUnknown_08623364:: @ 8623364 - window_template 1, 13, 1, 13, 4, 15, 2 - -gUnknown_0862336C:: @ 862336C - window_template 1, 1, 6, 7, 2, 15, 0x36 - -gUnknown_08623374:: @ 8623374 - window_template 1, 1, 0x1C, 5, 2, 15, 0x44 - -gUnknown_0862337C:: @ 862337C - window_template 1, 13, 0x1C, 3, 2, 15, 0x44 - -// pokenav_unk_8.s -gUnknown_08623384:: @ 8623384 - .4byte NULL - .4byte sub_81CE37C - .4byte sub_81CE2D0 - .4byte sub_81CE4D8 - .4byte sub_81CE5E4 - .4byte sub_81CE6BC - .4byte sub_81CE700 - -gUnknown_086233A0:: @ 86233A0 - .4byte 0x16, 0x17, 0x18, 0x21, 0x2F - -gUnknown_086233B4:: @ 86233B4 - .4byte sub_81CF134 - .4byte sub_81CF1C4 - .4byte sub_81CF1D8 - .4byte sub_81CF278 - -gUnknown_086233C4:: @ 86233C4 - .incbin "graphics/pokenav/condition_search2.gbapal" - -gUnknown_086233E4:: @ 86233E4 - .incbin "graphics/pokenav/condition_search2.4bpp.lz" - -gUnknown_086234AC:: @ 86234AC - .incbin "graphics/pokenav/condition_search2.bin.lz" - -gUnknown_08623570:: @ 8623570 - .incbin "graphics/pokenav/8623570.gbapal" - -gUnknown_08623590:: @ 8623590 - .4byte 0x2065 - -gUnknown_08623594:: @ 8623594 - .4byte 0x307A - -gUnknown_08623598:: @ 8623598 - .4byte NULL - .4byte sub_81CF578 - .4byte sub_81CF5F0 - .4byte sub_81CF668 - .4byte sub_81CF6E0 - .4byte sub_81CF758 - .4byte sub_81CF798 - -gUnknown_086235B4:: @ 86235B4 - window_template 1, 1, 6, 7, 2, 1, 20 - -gUnknown_086235BC:: @ 86235BC - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086235C8:: @ 86235C8 - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086235D4:: @ 86235D4 - .string "{UNK_SPACER}$" - .align 2 - -// pokenav_unk_9.s -gUnknown_086235D8:: @ 86235D8 - .4byte sub_81CFB8C - .4byte sub_81CFC2C - .4byte sub_81CFC40 - -gUnknown_086235E4:: @ 86235E4 - .incbin "graphics/pokenav/ui_ribbons.gbapal" - -gUnknown_08623604:: @ 8623604 - .incbin "graphics/pokenav/ui_ribbons.4bpp.lz" - -gUnknown_086236CC:: @ 86236CC - .incbin "graphics/pokenav/ui_ribbons.bin.lz" - -gUnknown_08623790:: @ 8623790 - .incbin "graphics/pokenav/8623790.gbapal" - -gUnknown_086237B0:: @ 86237B0 - .4byte 0x2065 - -gUnknown_086237B4:: @ 86237B4 - .4byte 0x307A - -gUnknown_086237B8:: @ 86237B8 - .4byte NULL - .4byte sub_81CFFFC - .4byte sub_81D0074 - .4byte sub_81D00EC - .4byte sub_81D0164 - .4byte sub_81D01DC - .4byte sub_81D021C - -gUnknown_086237D4:: @ 86237D4 - window_template 1, 1, 6, 7, 2, 1, 20 - -gUnknown_086237DC:: @ 86237DC - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086237E8:: @ 86237E8 - .string "{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}$" - .align 2 - -gUnknown_086237F4:: @ 86237F4 - .string "{UNK_SPACER}$" - .align 2 - -// pokenav_unk_10.s -gUnknown_086237F8:: @ 86237F8 - .byte 1, 1, 0, 0 - .byte 3, 4, 1, 0 - .byte 3, 4, 5, 0 - .byte 3, 4, 9, 0 - .byte 3, 4, 13, 0 - .byte 3, 4, 17, 0 - .byte 1, 1, 21, 0 - .byte 1, 1, 22, 0 - .byte 1, 1, 23, 0 - .byte 1, 1, 24, 0 - .byte 1, 1, 25, 1 - .byte 1, 1, 26, 1 - .byte 1, 1, 27, 1 - .byte 1, 1, 28, 1 - .byte 1, 1, 29, 1 - .byte 1, 1, 30, 1 - .byte 1, 1, 31, 1 - -@ 862383C - .include "data/text/ribbon_descriptions.inc" - -@ 8623A74 - .include "data/text/gift_ribbon_descriptions.inc" - -gUnknown_08623FF8:: @ 8623FF8 - .incbin "graphics/pokenav/ribbons_icon1.gbapal" - -gUnknown_08624018:: @ 8624018 - .incbin "graphics/pokenav/ribbons_icon2.gbapal" - -gUnknown_08624038:: @ 8624038 - .incbin "graphics/pokenav/ribbons_icon3.gbapal" - -gUnknown_08624058:: @ 8624058 - .incbin "graphics/pokenav/ribbons_icon4.gbapal" - -gUnknown_08624078:: @ 8624078 - .incbin "graphics/pokenav/ribbons_icon5.gbapal" - -gUnknown_08624098:: @ 8624098 - .incbin "graphics/pokenav/8624098.gbapal" - -gUnknown_086240B8:: @ 86240B8 - .incbin "graphics/pokenav/ribbons_icon.4bpp.lz" - -gUnknown_08624280:: @ 8624280 - .incbin "graphics/pokenav/ribbons_icon_big.4bpp.lz" - -gUnknown_08624B98:: @ 8624B98 - .4byte 0x107D - .4byte 0x2066 - -gUnknown_08624BA0:: @ 8624BA0 - .4byte NULL - .4byte sub_81D0C84 - .4byte sub_81D0D2C - .4byte sub_81D0D8C - .4byte sub_81D0E00 - .4byte sub_81D0C54 diff --git a/data/text/gift_ribbon_descriptions.inc b/data/text/gift_ribbon_descriptions.inc deleted file mode 100644 index 47e004d67..000000000 --- a/data/text/gift_ribbon_descriptions.inc +++ /dev/null @@ -1,207 +0,0 @@ -gGiftRibbonDescriptionPart1_2003RegionalTourney:: @ 8623A74 - .string "2003 REGIONAL TOURNEY$" - -gGiftRibbonDescriptionPart2_Champion:: @ 8623A8A - .string "CHAMPION RIBBON$" - -gGiftRibbonDescriptionPart1_2003NationalTourney:: @ 8623A9A - .string "2003 NATIONAL TOURNEY$" - -gGiftRibbonDescriptionPart1_2003GlobalCup:: @ 8623AB0 - .string "2003 GLOBAL CUP$" - -gGiftRibbonDescriptionPart2_RunnerUp:: @ 8623AC0 - .string "Runner-up RIBBON$" - -gGiftRibbonDescriptionPart2_Semifinalist:: @ 8623AD1 - .string "Semifinalist RIBBON$" - -gGiftRibbonDescriptionPart1_2004RegionalTourney:: @ 8623AE5 - .string "2004 REGIONAL TOURNEY$" - -gGiftRibbonDescriptionPart1_2004NationalTourney:: @ 8623AFB - .string "2004 NATIONAL TOURNEY$" - -gGiftRibbonDescriptionPart1_2004GlobalCup:: @ 8623B11 - .string "2004 GLOBAL CUP$" - -gGiftRibbonDescriptionPart1_2005RegionalTourney:: @ 8623B21 - .string "2005 REGIONAL TOURNEY$" - -gGiftRibbonDescriptionPart1_2005NationalTourney:: @ 8623B37 - .string "2005 NATIONAL TOURNEY$" - -gGiftRibbonDescriptionPart1_2005GlobalCup:: @ 8623B4D - .string "2005 GLOBAL CUP$" - -gGiftRibbonDescriptionPart1_PokemonBattleCup:: @ 8623B5D - .string "POKéMON BATTLE CUP$" - -gGiftRibbonDescriptionPart2_Participation:: @ 8623B70 - .string "Participation RIBBON$" - -gGiftRibbonDescriptionPart1_PokemonLeague:: @ 8623B85 - .string "POKéMON LEAGUE$" - -gGiftRibbonDescriptionPart1_AdvanceCup:: @ 8623B94 - .string "ADVANCE CUP$" - -gGiftRibbonDescriptionPart1_PokemonTournament:: @ 8623BA0 - .string "POKéMON Tournament$" - -gGiftRibbonDescriptionPart2_Participation2:: @ 8623BB3 - .string "Participation RIBBON$" - -gGiftRibbonDescriptionPart1_PokemonEvent:: @ 8623BC8 - .string "POKéMON Event$" - -gGiftRibbonDescriptionPart1_PokemonFestival:: @ 8623BD6 - .string "POKéMON Festival$" - -gGiftRibbonDescriptionPart1_DifficultyClearing:: @ 8623BE7 - .string "Difficulty-clearing$" - -gGiftRibbonDescriptionPart2_Commemorative:: @ 8623BFB - .string "Commemorative RIBBON$" - -gGiftRibbonDescriptionPart1_ClearingAllChallenges:: @ 8623C10 - .string "RIBBON awarded for$" - -gGiftRibbonDescriptionPart2_ClearingAllChallenges:: @ 8623C23 - .string "clearing all challenges.$" - -gGiftRibbonDescriptionPart1_100StraightWin:: @ 8623C3C - .string "100-straight Win$" - -gGiftRibbonDescriptionPart1_DarknessTower:: @ 8623C4D - .string "DARKNESS TOWER Clear$" - -gGiftRibbonDescriptionPart1_RedTower:: @ 8623C62 - .string "RED TOWER Clear$" - -gGiftRibbonDescriptionPart1_BlackironTower:: @ 8623C72 - .string "BLACKIRON TOWER Clear$" - -gGiftRibbonDescriptionPart1_FinalTower:: @ 8623C88 - .string "FINAL TOWER Clear$" - -gGiftRibbonDescriptionPart1_LegendMaking:: @ 8623C9A - .string "Legend-making$" - -gGiftRibbonDescriptionPart1_PokemonCenterTokyo:: @ 8623CA8 - .string "POKéMON CENTER TOKYO$" - -gGiftRibbonDescriptionPart1_PokemonCenterOsaka:: @ 8623CBD - .string "POKéMON CENTER OSAKA$" - -gGiftRibbonDescriptionPart1_PokemonCenterNagoya:: @ 8623CD2 - .string "POKéMON CENTER NAGOYA$" - -gGiftRibbonDescriptionPart1_PokemonCenterNY:: @ 8623CE8 - .string "POKéMON CENTER NY$" - -gGiftRibbonDescriptionPart1_SummerHolidays:: @ 8623CFA - .string "Summer Holidays RIBBON$" - -gGiftRibbonDescriptionPart2_EmptyString:: @ 8623D11 - .string "$" - -gGiftRibbonDescriptionPart1_WinterHolidays:: @ 8623D12 - .string "Winter Holidays RIBBON$" - -gGiftRibbonDescriptionPart1_SpringHolidays:: @ 8623D29 - .string "Spring Holidays RIBBON$" - -gGiftRibbonDescriptionPart1_Evergreen:: @ 8623D40 - .string "Evergreen RIBBON$" - -gGiftRibbonDescriptionPart1_SpecialHoliday:: @ 8623D51 - .string "Special Holiday RIBBON$" - -gGiftRibbonDescriptionPart1_HardWorker:: @ 8623D68 - .string "Hard Worker RIBBON$" - -gGiftRibbonDescriptionPart1_LotsOfFriends:: @ 8623D7B - .string "Lots of Friends RIBBON$" - -gGiftRibbonDescriptionPart1_FullOfEnergy:: @ 8623D92 - .string "Full of Energy RIBBON$" - -gGiftRibbonDescriptionPart1_LovedPokemon:: @ 8623DA8 - .string "A commemorative RIBBON$" - -gGiftRibbonDescriptionPart2_LovedPokemon:: @ 8623DBF - .string "for a loved POKéMON.$" - -gGiftRibbonDescriptionPart1_LoveForPokemon:: @ 8623DD4 - .string "RIBBON that shows$" - -gGiftRibbonDescriptionPart2_LoveForPokemon:: @ 8623DE6 - .string "love for POKéMON.$" - - .align 2 -gGiftRibbonDescriptionPointers:: @ 8623DF8 - .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation - .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation - .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion - .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp - .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist - .4byte gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation - .4byte gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2 - .4byte gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2 - .4byte gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2 - .4byte gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges - .4byte gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative - .4byte gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString - .4byte gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon - .4byte gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon diff --git a/data/text/ribbon_descriptions.inc b/data/text/ribbon_descriptions.inc deleted file mode 100644 index 6dd82c288..000000000 --- a/data/text/ribbon_descriptions.inc +++ /dev/null @@ -1,84 +0,0 @@ -gRibbonDescriptionPart1_Champion:: @ 862383C - .string "CHAMPION-beating, HALL$" - -gRibbonDescriptionPart2_Champion:: @ 8623853 - .string "OF FAME Member RIBBON$" - -gRibbonDescriptionPart1_CoolContest:: @ 8623869 - .string "COOL CONTEST$" - -gRibbonDescriptionPart1_BeautyContest:: @ 8623876 - .string "BEAUTY CONTEST$" - -gRibbonDescriptionPart1_CuteContest:: @ 8623885 - .string "CUTE CONTEST$" - -gRibbonDescriptionPart1_SmartContest:: @ 8623892 - .string "SMART CONTEST$" - -gRibbonDescriptionPart1_ToughContest:: @ 86238A0 - .string "TOUGH CONTEST$" - -gRibbonDescriptionPart2_NormalRank:: @ 86238AE - .string "Normal Rank winner!$" - -gRibbonDescriptionPart2_SuperRank:: @ 86238C2 - .string "Super Rank winner!$" - -gRibbonDescriptionPart2_HyperRank:: @ 86238D5 - .string "Hyper Rank winner!$" - -gRibbonDescriptionPart2_MasterRank:: @ 86238E8 - .string "Master Rank winner!$" - -gRibbonDescriptionPart1_Winning:: @ 86238FC - .string "For clearing LV50$" - -gRibbonDescriptionPart2_Winning:: @ 862390E - .string "at the BATTLE TOWER.$" - -gRibbonDescriptionPart1_Victory:: @ 8623923 - .string "For clearing Open Level$" - -gRibbonDescriptionPart2_Victory:: @ 862393B - .string "at the BATTLE TOWER.$" - -gRibbonDescriptionPart1_Artist:: @ 8623950 - .string "RIBBON for being chosen$" - -gRibbonDescriptionPart2_Artist:: @ 8623968 - .string "as a super sketch model.$" - -gRibbonDescriptionPart1_Effort:: @ 8623981 - .string "RIBBON awarded for$" - -gRibbonDescriptionPart2_Effort:: @ 8623994 - .string "being a hard worker.$" - - .align 2 -gRibbonDescriptionPointers:: @ 86239AC - .4byte gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion - .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank - .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank - .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank - .4byte gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank - .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank - .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank - .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank - .4byte gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank - .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank - .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank - .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank - .4byte gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank - .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank - .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank - .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank - .4byte gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank - .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank - .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank - .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank - .4byte gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank - .4byte gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning - .4byte gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory - .4byte gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist - .4byte gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort diff --git a/data/use_pokeblock.s b/data/use_pokeblock.s deleted file mode 100644 index dc2c7bd70..000000000 --- a/data/use_pokeblock.s +++ /dev/null @@ -1,113 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -.align 4 - -gUnknown_085DFA60:: @ 85DFA60 - .incbin "graphics/interface/85DFA60.bin" - -gUnknown_085DFA80:: @ 85DFA80 - .incbin "graphics/interface/85DFA80.4bpp" - -gUnknown_085DFB60:: @ 85DFB60 - .incbin "graphics/interface/85DFB60.bin" - -gUnknown_085DFC0C:: @ 85DFC0C - .incbin "graphics/interface/85DFC0C.bin" - -gUnknown_085DFCB0:: @ 85DFCB0 - .4byte 22, 47, 33, 24, 23 - -gUnknown_085DFCC4:: @ 85DFCC4 - .byte 0, 4, 3, 2, 1 - -gUnknown_085DFCC9:: @ 85DFCC9 - .byte 0, 8, 1 - -gUnknown_085DFCCC:: @ 85DFCCC - .4byte 0x1F8 - .4byte 0x31E1 - .4byte 0x4021DF - .4byte 0x1172 - -gUnknown_085DFCDC:: @ 85DFCDC - window_template 0, 0xD, 1, 0xD, 4, 0xF, 1 - window_template 0, 0, 0xE, 0xB, 2, 0xF, 0x35 - window_template 0, 1, 0x11, 0x1C, 2, 0xF, 0x4B - null_window_template - -sUsePokeblockYesNoWinTemplate:: @ 85DFCFC - window_template 0, 0x18, 0xB, 5, 4, 0xF, 0x83 - -sContestStatNames:: @ 85DFD04 - .4byte gText_Coolness - .4byte gText_Toughness - .4byte gText_Smartness - .4byte gText_Cuteness - .4byte gText_Beauty3 - -gSpriteSheet_ConditionUpDown:: @ 85DFD18 - obj_tiles gUsePokeblockUpDown_Gfx, 0x200, 0 - -gSpritePalette_ConditionUpDown:: @ 85DFD20 - obj_pal gUsePokeblockUpDown_Pal, 0 - -gUnknown_085DFD28:: @ 85DFD28 - .2byte 0x9c, 0x24 - .2byte 0x75, 0x3b - .2byte 0x75, 0x76 - .2byte 0xc5, 0x76 - .2byte 0xc5, 0x3b - -gUnknown_085DFD3C:: @ 85DFD3C - .2byte 0x4000 - .2byte 0x8000 - .2byte 0x400 - .2byte 0 - -gUnknown_085DFD44:: @ 85DFD44 - obj_image_anim_frame 0, 5 - obj_image_anim_end - -gUnknown_085DFD4C:: @ 85DFD4C - obj_image_anim_frame 8, 5 - obj_image_anim_end - -gUnknown_085DFD54:: @ 85DFD54 - .4byte gUnknown_085DFD44 - .4byte gUnknown_085DFD4C - -gSpriteTemplate_085DFD5C:: @ 85DFD5C - spr_template 0, 0, gUnknown_085DFD3C, gUnknown_085DFD54, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy - -gUnknown_085DFD74:: @ 85DFD74 - .2byte 0x4000 - .2byte 0xC000 - .2byte 0x400 - .2byte 0 - -gUnknown_085DFD7C:: @ 85DFD7C - obj_image_anim_frame 0, 5 - obj_image_anim_end - -gUnknown_085DFD84:: @ 85DFD84 - obj_image_anim_frame 32, 5 - obj_image_anim_end - -gUnknown_085DFD8C:: @ 85DFD8C - obj_image_anim_frame 64, 5 - obj_image_anim_end - -gUnknown_085DFD94:: @ 85DFD94 - .4byte gUnknown_085DFD7C - .4byte gUnknown_085DFD84 - .4byte gUnknown_085DFD8C - -gUnknown_085DFDA0:: @ 85DFDA0 - spr_template 1, 1, gUnknown_085DFD74, gUnknown_085DFD94, NULL, gDummySpriteAffineAnimTable, sub_8168374 - -gUnknown_085DFDB8:: @ 85DFDB8 - .4byte gUsePokeblockCondition_Pal - .4byte 1 diff --git a/graphics/pokenav/city_maps/lilycove_0.bin b/graphics/pokenav/city_maps/lilycove_0.bin index e8bf09eae..99895574d 100644 --- a/graphics/pokenav/city_maps/lilycove_0.bin +++ b/graphics/pokenav/city_maps/lilycove_0.bin @@ -1 +1,3 @@ -0000000000000000000000000000000 0
0000000000000000000
00000000000000000000
00000000000000000000000000000
\ No newline at end of file +000000000000000000000000000000000 0 0 0 00 000000000 +00000 0 0 0 0 00 000000000 +000000 0 0 0 00 0000000000000000000000
\ No newline at end of file diff --git a/graphics/pokenav/city_maps/lilycove_1.bin b/graphics/pokenav/city_maps/lilycove_1.bin index 99895574d..e8bf09eae 100644 --- a/graphics/pokenav/city_maps/lilycove_1.bin +++ b/graphics/pokenav/city_maps/lilycove_1.bin @@ -1,3 +1 @@ -000000000000000000000000000000000 0 0 0 00 000000000 -00000 0 0 0 0 00 000000000 -000000 0 0 0 00 0000000000000000000000
\ No newline at end of file +0000000000000000000000000000000 0
0000000000000000000
00000000000000000000
00000000000000000000000000000
\ No newline at end of file diff --git a/graphics/pokenav/city_maps/mauville_0.bin b/graphics/pokenav/city_maps/mauville_0.bin index 103d39e54..a0662010a 100644 --- a/graphics/pokenav/city_maps/mauville_0.bin +++ b/graphics/pokenav/city_maps/mauville_0.bin @@ -1,3 +1,3 @@ -000000000000000000000000000000000000000000 00 00 0
000000 -0000000000 -00000000 0 00
00000000000000000000000000
\ No newline at end of file +000000000000000000000000000000000000 +000000000 00 0 000000 +00000000000000000000000 0 0000000000000000000000
\ No newline at end of file diff --git a/graphics/pokenav/city_maps/mauville_1.bin b/graphics/pokenav/city_maps/mauville_1.bin index a0662010a..103d39e54 100644 --- a/graphics/pokenav/city_maps/mauville_1.bin +++ b/graphics/pokenav/city_maps/mauville_1.bin @@ -1,3 +1,3 @@ -000000000000000000000000000000000000 -000000000 00 0 000000 -00000000000000000000000 0 0000000000000000000000
\ No newline at end of file +000000000000000000000000000000000000000000 00 00 0
000000 +0000000000 +00000000 0 00
00000000000000000000000000
\ No newline at end of file diff --git a/graphics/pokenav/city_maps/mossdeep_0.bin b/graphics/pokenav/city_maps/mossdeep_0.bin index fd03cfe02..6c11d5624 100644 --- a/graphics/pokenav/city_maps/mossdeep_0.bin +++ b/graphics/pokenav/city_maps/mossdeep_0.bin @@ -1 +1,3 @@ -0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000
\ No newline at end of file +00000000000000000000000000 0
00000000 +0000000000 +000000000 000000000000 0 000000000000000000000000000000000
\ No newline at end of file diff --git a/graphics/pokenav/city_maps/mossdeep_1.bin b/graphics/pokenav/city_maps/mossdeep_1.bin index 6c11d5624..fd03cfe02 100644 --- a/graphics/pokenav/city_maps/mossdeep_1.bin +++ b/graphics/pokenav/city_maps/mossdeep_1.bin @@ -1,3 +1 @@ -00000000000000000000000000 0
00000000 -0000000000 -000000000 000000000000 0 000000000000000000000000000000000
\ No newline at end of file +0000000000000000000000000000000000000000000000000000000000000000000000000000000000 0 00000000000000000
\ No newline at end of file diff --git a/include/berry_crush.h b/include/berry_crush.h index 101450a33..8909ae821 100755 --- a/include/berry_crush.h +++ b/include/berry_crush.h @@ -1,6 +1,8 @@ #ifndef GUARD_BERRY_CRUSH_H #define GUARD_BERRY_CRUSH_H +#include "main.h" + void sub_8020C70(MainCallback callback); #endif // GUARD_BERRY_CRUSH_H diff --git a/include/dodrio_berry_picking.h b/include/dodrio_berry_picking.h new file mode 100644 index 000000000..55e8fa880 --- /dev/null +++ b/include/dodrio_berry_picking.h @@ -0,0 +1,8 @@ +#ifndef GUARD_DODRIO_BERRY_PICKING_H +#define GUARD_DODRIO_BERRY_PICKING_H + +void sub_802493C(u16 a0, void (*callback)(void)); +void sub_8027A5C(void); +void sub_8027AAC(void); + +#endif // GUARD_DODRIO_BERRY_PICKING_H diff --git a/include/graphics.h b/include/graphics.h index af1a0d7e7..ff62087b9 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -4939,6 +4939,9 @@ extern const u32 gLinkMiscMenu_Tilemap[]; // Use Pokeblock extern const u8 gPokenavConditionCancel_Gfx[]; extern const u16 gPokenavConditionCancel_Pal[]; +extern const u8 gUsePokeblockUpDown_Gfx[]; +extern const u16 gUsePokeblockUpDown_Pal[]; +extern const u16 gUsePokeblockCondition_Pal[]; // Berry Crush extern const u32 gUnknown_08DE34B8[]; diff --git a/include/menu.h b/include/menu.h index 08cad40bd..62e2558dc 100644 --- a/include/menu.h +++ b/include/menu.h @@ -25,7 +25,7 @@ void InitStandardTextBoxWindows(void); void sub_8197200(void); u16 RunTextPrintersAndIsPrinter0Active(void); void sub_81973A4(void); -void DrawDialogueFrame(u8, u8); +void DrawDialogueFrame(u8 windowId, bool8 copyToVram); void ClearStdWindowAndFrame(u8 windowId, bool8 copyToVram); u16 AddTextPrinterParameterized2(u8 windowId, u8 fontId, const u8 *str, u8 speed, void (*callback)(struct TextPrinterTemplate *, u16), u8 fgColor, u8 bgColor, u8 shadowColor); void PrintPlayerNameOnWindow(u8, const u8*, u16, u16); diff --git a/include/pokenav.h b/include/pokenav.h index d254858ac..69a9f1f58 100644 --- a/include/pokenav.h +++ b/include/pokenav.h @@ -107,7 +107,7 @@ void sub_81C8234(void); // pokenav_match_call_data.c bool32 sub_81D17E8(u32 idx); -u8 sub_81D16DC(u32 idx); +u8 MatchCallMapSecGetByIndex(u32 idx); bool32 sub_81D1BF8(u32 idx); bool32 MatchCallFlagGetByIndex(u32 idx); u32 MatchCall_GetRematchTableIdx(u32 idx); diff --git a/include/strings.h b/include/strings.h index bead5849d..1f62e3f50 100644 --- a/include/strings.h +++ b/include/strings.h @@ -2708,6 +2708,28 @@ extern const u8 gText_Symbols[]; extern const u8 gText_Register2[]; extern const u8 gText_Exit2[]; +// Dodrio Berry Picking +extern const u8 gText_BerryPickingRecords[]; +extern const u8 gText_BerriesPicked[]; +extern const u8 gText_BerriesInRowFivePlayers[]; +extern const u8 gText_BestScore[]; +extern const u8 gText_1Colon[]; +extern const u8 gText_2Colon[]; +extern const u8 gText_3Colon[]; +extern const u8 gText_4Colon[]; +extern const u8 gText_5Colon[]; +extern const u8 gText_SpacePoints[]; +extern const u8 gText_10P30P50P50P[]; +extern const u8 gText_AnnouncingPrizes[]; +extern const u8 gText_AnnouncingRankings[]; +extern const u8 gText_FirstPlacePrize[]; +extern const u8 gText_CantHoldAnyMore[]; +extern const u8 gText_FilledStorageSpace[]; +extern const u8 gText_BerryPickingResults[]; +extern const u8 gText_WantToPlayAgain[]; +extern const u8 gText_CommunicationStandby3[]; +extern const u8 gText_SomeoneDroppedOut[]; + // Pokemon jump extern const u8 gText_WantToPlayAgain2[]; extern const u8 gText_SomeoneDroppedOut2[]; @@ -2729,4 +2751,32 @@ extern const u8 gText_NumberOfBattles[]; extern const u8 gText_Unknown[]; extern const u8 gText_TrainerCloseBy[]; +// pokenav_unk_2 +extern const u8 gUnknown_085EBCC5[]; +extern const u8 gUnknown_085EBCE8[]; +extern const u8 gUnknown_085EBD01[]; +extern const u8 gUnknown_085EBD1C[]; +extern const u8 gUnknown_085EBD34[]; +extern const u8 gUnknown_085EBD83[]; +extern const u8 gUnknown_085EBDA2[]; +extern const u8 gUnknown_085EBDBF[]; +extern const u8 gUnknown_085EBDDB[]; +extern const u8 gUnknown_085EBDEE[]; +extern const u8 gUnknown_085EBE06[]; +extern const u8 gUnknown_085EBE19[]; +extern const u8 gUnknown_085EBE2D[]; +extern const u8 gUnknown_085EBE41[]; + +// pokenav_unk_4 +extern const u8 gUnknown_085EC017[]; +extern const u8 gUnknown_085EC01C[]; +extern const u8 gUnknown_085EC022[]; + +// use_pokeblock +extern const u8 gText_Coolness[]; +extern const u8 gText_Toughness[]; +extern const u8 gText_Smartness[]; +extern const u8 gText_Cuteness[]; +extern const u8 gText_Beauty3[]; + #endif // GUARD_STRINGS_H diff --git a/ld_script.txt b/ld_script.txt index 97605865d..63afe45d2 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -75,7 +75,6 @@ SECTIONS { asm/berry_crush.o(.text*); src/berry_powder.o(.text*); src/dodrio_berry_picking.o(.text*); - asm/dodrio_berry_picking.o(.text*); src/pokemon_jump.o(.text*); src/rtc.o(.text*); src/main_menu.o(.text*); @@ -447,7 +446,6 @@ SECTIONS { data/berry_crush.o(.rodata); data/berry_powder.o(.rodata); src/dodrio_berry_picking.o(.rodata); - data/dodrio_berry_picking.o(.rodata); src/pokemon_jump.o(.rodata); src/rtc.o(.rodata); src/main_menu.o(.rodata); @@ -599,7 +597,6 @@ SECTIONS { src/roamer.o(.rodata); src/battle_tower.o(.rodata); src/use_pokeblock.o(.rodata); - data/use_pokeblock.o(.rodata); src/battle_controller_wally.o(.rodata); src/player_pc.o(.rodata); src/intro.o(.rodata); @@ -657,10 +654,13 @@ SECTIONS { src/pokenav_main_menu.o(.rodata); src/pokenav_match_call_ui.o(.rodata); src/pokenav_unk_1.o(.rodata); - data/pokenav.o(.rodata); + src/pokenav_unk_2.o(.rodata); src/pokenav_unk_3.o(.rodata); src/pokenav_unk_4.o(.rodata); src/pokenav_unk_5.o(.rodata); + src/pokenav_unk_7.o(.rodata); + src/pokenav_unk_8.o(.rodata); + src/pokenav_unk_9.o(.rodata); src/pokenav_unk_10.o(.rodata); src/pokenav_match_call_data.o(.rodata); src/menu_specialized.o(.rodata); diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 15b73a1e0..b3a67a509 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -5315,21 +5315,19 @@ static void sub_8102D8C(s16 a, s16 b, s16* c, s16* d, s8 e) static void sub_8102DE4(struct Sprite* sprite) { - int b; - s16 a; - int c; + s16 y, yDelta; u8 index; + sprite->data[0]++; - b = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); + yDelta = sprite->data[0] * 5 - ((sprite->data[0] * 5 / 256) << 8); sprite->data[4] += sprite->data[6]; sprite->data[5] += sprite->data[7]; sprite->pos1.x = sprite->data[4] >> 4; sprite->pos1.y = sprite->data[5] >> 4; - sprite->pos2.y = Sin(b, 15); - a = (u16)sprite->pos1.y; - c = (u16)sprite->pos1.x; + sprite->pos2.y = Sin(yDelta, 15); - if ((u32)((c + 16) << 16) > (0x110) << 16 || a < -16 || a > 0x80) + y = sprite->pos1.y; + if (sprite->pos1.x < -16 || sprite->pos1.x > 256 || y < -16 || y > 128) { DestroySpriteAndMatrix(sprite); } @@ -5350,12 +5348,8 @@ static void sub_8102DE4(struct Sprite* sprite) void sub_8102EB0(struct Sprite* sprite) { - int a; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_OPPONENT) - { - a = gBattleAnimArgs[1]; - *(u16 *)&gBattleAnimArgs[1] = -a; - } + gBattleAnimArgs[1] *= -1; sprite->pos1.x = GetBattlerSpriteCoord(gBattleAnimAttacker, 2) + gBattleAnimArgs[1]; sprite->pos1.y = GetBattlerSpriteCoord(gBattleAnimAttacker, 3) + gBattleAnimArgs[2]; @@ -5541,8 +5535,8 @@ static void sub_8103300(struct Sprite* sprite) static void sub_8103320(struct Sprite* sprite) { - s16 temp; - s16 temp2; + s16 x1, x2; + sprite->data[1] += 4; if (sprite->data[1] > 254) { @@ -5564,20 +5558,21 @@ static void sub_8103320(struct Sprite* sprite) if (sprite->data[1] > 0x9F) sprite->subpriority = sprite->data[2]; - temp = gSineTable[sprite->data[1]]; - sprite->pos2.x = (temp2 = temp >> 3) + (temp2 >> 1); + x1 = gSineTable[sprite->data[1]]; + x2 = x1 >> 3; + sprite->pos2.x = (x1 >> 3) + (x2 >> 1); } void sub_8103390(struct Sprite* sprite) { - u8 bank; + u8 battler; if (gBattleAnimArgs[0] == 0) - bank = gBattleAnimAttacker; + battler = gBattleAnimAttacker; else - bank = gBattleAnimTarget; + battler = gBattleAnimTarget; - sub_810310C(bank, sprite); - if (GetBattlerSide(bank) == B_SIDE_PLAYER) + sub_810310C(battler, sprite); + if (GetBattlerSide(battler) == B_SIDE_PLAYER) { StartSpriteAnim(sprite, 0); sprite->data[0] = 2; diff --git a/src/battle_anim_effects_3.c b/src/battle_anim_effects_3.c index ab765b8c1..5d79a9e6b 100755 --- a/src/battle_anim_effects_3.c +++ b/src/battle_anim_effects_3.c @@ -2504,13 +2504,10 @@ void sub_815BE04(struct Sprite *sprite) static void sub_815BF44(struct Sprite *sprite) { - int var0; - s8 var1; - - var0 = (u16)sprite->data[2] + (u16)sprite->data[3]; - var1 = var0 >> 8; - sprite->pos2.y -= var1; - sprite->data[3] = var0 & 0xFF; + s16 delta = sprite->data[3] + sprite->data[2]; + sprite->pos2.y -= delta >> 8; + sprite->data[3] += sprite->data[2]; + sprite->data[3] &= 0xFF; if (sprite->data[4] == 0 && sprite->pos2.y < -8) { gSprites[sprite->data[6]].invisible = 0; @@ -2543,19 +2540,12 @@ static void sub_815BFF4(struct Sprite *sprite) static void sub_815C050(struct Sprite *sprite) { - u16 d2; - register u16 d3 asm("r1"); - int var0; - s8 var1; - if (!sprite->invisible) { - d2 = sprite->data[2]; - d3 = sprite->data[3]; - var0 = d2 + d3; - var1 = var0 >> 8; - sprite->pos2.y -= var1; - sprite->data[3] = var0 & 0xFF; + s16 delta = sprite->data[3] + sprite->data[2]; + sprite->pos2.y -= delta >> 8; + sprite->data[3] += sprite->data[2]; + sprite->data[3] &= 0xFF; if (--sprite->data[1] == -1) { sprite->invisible = 1; @@ -4322,7 +4312,7 @@ static void AnimSmellingSaltExclamationStep(struct Sprite *sprite) // Claps a hand several times. // arg 0: which hand -// arg 1: +// arg 1: void AnimHelpingHandClap(struct Sprite *sprite) { if (gBattleAnimArgs[0] == 0) diff --git a/src/contest_link_80F57C4.c b/src/contest_link_80F57C4.c index bae7859b5..a0a29f0ad 100644 --- a/src/contest_link_80F57C4.c +++ b/src/contest_link_80F57C4.c @@ -71,15 +71,10 @@ struct ContestLinkUnk14 u8 unk12; }; -struct ContestLinkUnk4 -{ - struct ContestLinkUnk14 unk0[4]; -}; - struct ContestLink80F57C4 { struct ContestLinkUnk0 *unk0; - struct ContestLinkUnk4 *unk4; + struct ContestLinkUnk14 (*unk4)[4]; u8 *unk8; u8 *unkC[4]; u8 *unk1C; @@ -205,9 +200,7 @@ void sub_80F57C4(void) void sub_80F591C(void) { int i, j; - s8 var0; - s8 var1; - int var2; + s8 var0, var1; u16 tile1, tile2; LZDecompressVram(gUnknown_08C19588, (void *)BG_CHAR_ADDR(0)); @@ -228,11 +221,7 @@ void sub_80F591C(void) if (j < var0) tile1 += 2; - var2 = var1; - if (var1 < 0) - var2 = -var2; - - if (j < var2) + if (j < abs(var1)) { tile2 = 0x60A4; if (var1 < 0) @@ -719,7 +708,7 @@ static void sub_80F6404(u8 taskId) if (top > 80) top = 80; - gBattle_WIN0V = (top << 8) | (160 - top);; + gBattle_WIN0V = (top << 8) | (160 - top); if (top == 80) gTasks[taskId].data[0]++; } @@ -737,8 +726,7 @@ static void sub_80F6404(u8 taskId) static void sub_80F66B4(u8 taskId) { - int i; - u16 nationalDexNum; + int i, nationalDexNum; if (gMain.newKeys & A_BUTTON) { @@ -859,13 +847,13 @@ static void sub_80F68F0(u8 taskId) void sub_80F69B8(u16 species, u8 monIndex, u8 srcOffset, u8 useDmaNow, u32 personality) { - u8 frameNum; const u8 *iconPtr; - u16 var0; - u16 var1; + u16 var0, var1, frameNum; - u8 *contestPlayerMonIndex = &gContestPlayerMonIndex; // fake match - frameNum = (monIndex == *contestPlayerMonIndex) ? 1 : 0; + if (monIndex == gContestPlayerMonIndex) + frameNum = 1; + else + frameNum = 0; iconPtr = GetMonIconPtr(species, personality, frameNum); iconPtr += srcOffset * 0x200 + 0x80; @@ -892,13 +880,12 @@ static void LoadAllContestMonIcons(u8 srcOffset, u8 useDmaNow) static void sub_80F6A9C(void) { - int i; - register u16 species asm("r0"); + int i, species; for (i = 0; i < 4; i++) { - species = GetIconSpecies(gContestMons[i].species, 0); - LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[species]], i * 0x10 + 0xA0, 0x20); + species = gContestMons[i].species; + LoadPalette(gMonIconPalettes[gMonIconPaletteIndices[GetIconSpecies(species, 0)]], i * 0x10 + 0xA0, 0x20); } } @@ -1335,11 +1322,11 @@ static void sub_80F6F40(struct Sprite *sprite) static void sub_80F6F68(struct Sprite *sprite) { int i; - s16 var0; - var0 = (u16)sprite->data[7] + (u16)sprite->data[6]; - sprite->pos1.x -= var0 >> 8; - sprite->data[7] = (sprite->data[6] + sprite->data[7]) & 0xFF; + s16 delta = sprite->data[7] + sprite->data[6]; + sprite->pos1.x -= delta >> 8; + sprite->data[7] += sprite->data[6]; + sprite->data[7] &= 0xFF; if (sprite->pos1.x < sprite->data[4]) sprite->pos1.x = sprite->data[4]; @@ -1366,11 +1353,12 @@ static void sub_80F6FDC(struct Sprite *sprite) static void sub_80F7014(struct Sprite *sprite) { int i; - s16 var0; + s16 delta; - var0 = (u16)sprite->data[7] + (u16)sprite->data[6]; - sprite->pos1.x -= var0 >> 8; - sprite->data[7] = (sprite->data[6] + sprite->data[7]) & 0xFF; + delta = sprite->data[7] + sprite->data[6]; + sprite->pos1.x -= delta >> 8; + sprite->data[7] += sprite->data[6]; + sprite->data[7] &= 0xFF; for (i = 0; i < 3; i++) { struct Sprite *sprite2 = &gSprites[sprite->data[i]]; @@ -1487,14 +1475,11 @@ static void sub_80F71C8(void) CopyToBgTilemapBufferRect_ChangePalette(2, gUnknown_0203A034->unkC[2], 0, 0, 32, 4, palette); } -// fakematching? u8 sub_80F7310(u8 monIndex, u8 arg1) { - u32 var0; - u32 var1; + u32 var0 = gContestMonConditions[monIndex] << 16; + u32 var1 = var0 / 0x3F; - var0 = gContestMonConditions[monIndex] << 16; - var1 = var0 / 0x3F; if (var1 & 0xFFFF) var1 += 0x10000; @@ -1510,8 +1495,7 @@ u8 sub_80F7310(u8 monIndex, u8 arg1) s8 sub_80F7364(u8 arg0, u8 arg1) { - u32 r4; - u32 r2; + u32 r4, r2; s16 val; s8 ret; @@ -1607,9 +1591,10 @@ static void sub_80F75A8(struct Sprite *sprite) } else { - s16 delta = (u16)sprite->data[1] + 0x600; + s16 delta = sprite->data[1] + 0x600; sprite->pos1.x -= delta >> 8; - sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + sprite->data[1] += 0x600; + sprite->data[1] &= 0xFF; if (sprite->pos1.x < 120) sprite->pos1.x = 120; @@ -1624,9 +1609,10 @@ static void sub_80F75A8(struct Sprite *sprite) static void sub_80F7620(struct Sprite *sprite) { - s16 delta = (u16)sprite->data[1] + 0x600; + s16 delta = sprite->data[1] + 0x600; sprite->pos1.x -= delta >> 8; - sprite->data[1] = (sprite->data[1] + 0x600) & 0xFF; + sprite->data[1] += + 0x600; + sprite->data[1] &= 0xFF; if (sprite->pos1.x < -32) { sprite->callback = SpriteCallbackDummy; @@ -1657,14 +1643,15 @@ static void sub_80F7670(u8 taskId) void sub_80F7768(struct Sprite *sprite) { - register s16 var0 asm("r1"); + s16 delta; sprite->data[3] += sprite->data[0]; sprite->pos2.x = Sin(sprite->data[3] >> 8, sprite->data[1]); - var0 = sprite->data[4] + sprite->data[2]; - sprite->pos1.x += var0 >> 8; - var0 = var0 & 0xFF; - sprite->data[4] = var0; + delta = sprite->data[4] + sprite->data[2]; + sprite->pos1.x += delta >> 8; + sprite->data[4] += sprite->data[2]; + sprite->data[4] &= 0xff; + sprite->pos1.y++; if (gUnknown_0203A034->unk0->unk9) sprite->invisible = 1; @@ -1695,705 +1682,145 @@ static void sub_80F7824(u8 taskId) } } -// static void sub_80F7880(void) -// { -// int i; -// int var0; -// int var1; -// int var2; -// int var3; -// u32 var4; -// int var5; -// int var6; -// s16 var7; -// s16 var8; -// s16 r2; - -// r2 = gUnknown_02039F08[0]; -// for (i = 1; i < 4; i++) -// { -// if (r2 < gUnknown_02039F08[i]) -// r2 = gUnknown_02039F08[i]; -// } - -// if (r2 < 0) -// { -// r2 = gUnknown_02039F08[0]; -// for (i = 1; i < 4; i++) -// { -// if (r2 > gUnknown_02039F08[i]) -// r2 = gUnknown_02039F08[i]; -// } -// } - -// // _080F78E4 -// for (i = 0; i < 4; i++) -// { -// var0 = gContestMonConditions[i] * 1000; -// var1 = r2; -// if (r2 < 0) -// var1 = -var1; - -// var2 = var0 / var1; -// if (var2 % 10 > 4) -// var2 += 10; - -// gUnknown_0203A034->unk4->unk0[i].unk0 = var2 / 10; -// var3 = gUnknown_02039F18[i]; -// if (var3 < 0) -// var3 = -var3; - -// var0 = var3 * 1000; -// var1 = r2; -// if (r2 < 0) -// var1 = -var1; - -// var2 = var0 / var1; -// if (var2 % 10 > 4) -// var2 += 10; - -// // _080F7966 -// gUnknown_0203A034->unk4->unk0[i].unk4 = var2 / 10; -// if (gUnknown_02039F18[i] < 0) -// gUnknown_0203A034->unk4->unk0[i].unk10 = 1; - -// var4 = gUnknown_0203A034->unk4->unk0[i].unk0 * 22528 / 100; -// if ((var4 & 0xFF) > 0x7F) -// var4 += 0x100; - -// gUnknown_0203A034->unk4->unk0[i].unk8 = var4 >> 8; -// var4 = gUnknown_0203A034->unk4->unk0[i].unk4 * 22528 / 100; -// if ((var4 & 0xFF) > 0x7F) -// var4 += 0x100; - -// gUnknown_0203A034->unk4->unk0[i].unkC = var4 >> 8; -// gUnknown_0203A034->unk4->unk0[i].unk11 = sub_80F7310(i, 1); -// var5 = sub_80F7364(i, 1); -// if (var5 < 0) -// var5 = -var5; - -// gUnknown_0203A034->unk4->unk0[i].unk12 = var5; -// if (gContestFinalStandings[i]) -// { -// var7 = gUnknown_0203A034->unk4->unk0[i].unk8; -// var8 = gUnknown_0203A034->unk4->unk0[i].unkC; -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// var8 = -var8; - -// if (var7 + var8 == 88) -// { -// if (var8 > 0) -// gUnknown_0203A034->unk4->unk0[i].unkC--; -// else if (var7 > 0) -// gUnknown_0203A034->unk4->unk0[i].unk8--; -// } -// } -// } -// } - -NAKED static void sub_80F7880(void) { - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x4\n\ - ldr r0, =gUnknown_02039F08\n\ - ldrh r2, [r0]\n\ - adds r4, r0, 0\n\ - adds r3, r4, 0x2\n\ - movs r0, 0x2\n\ - mov r8, r0\n\ -_080F7898:\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - movs r5, 0\n\ - ldrsh r1, [r3, r5]\n\ - cmp r0, r1\n\ - bge _080F78A6\n\ - ldrh r2, [r3]\n\ -_080F78A6:\n\ - adds r3, 0x2\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - add r8, r0\n\ - mov r1, r8\n\ - cmp r1, 0\n\ - bge _080F7898\n\ - lsls r0, r2, 16\n\ - str r0, [sp]\n\ - cmp r0, 0\n\ - bge _080F78E4\n\ - ldrh r2, [r4]\n\ - adds r3, r4, 0x2\n\ - movs r4, 0x2\n\ - mov r8, r4\n\ -_080F78C4:\n\ - lsls r0, r2, 16\n\ - asrs r0, 16\n\ - movs r5, 0\n\ - ldrsh r1, [r3, r5]\n\ - cmp r0, r1\n\ - ble _080F78D2\n\ - ldrh r2, [r3]\n\ -_080F78D2:\n\ - adds r3, 0x2\n\ - movs r0, 0x1\n\ - negs r0, r0\n\ - add r8, r0\n\ - lsls r1, r2, 16\n\ - str r1, [sp]\n\ - mov r4, r8\n\ - cmp r4, 0\n\ - bge _080F78C4\n\ -_080F78E4:\n\ - movs r5, 0\n\ - mov r8, r5\n\ - mov r10, r5\n\ -_080F78EA:\n\ - ldr r0, =gContestMonConditions\n\ - mov r1, r8\n\ - lsls r7, r1, 1\n\ - adds r0, r7, r0\n\ - movs r2, 0\n\ - ldrsh r1, [r0, r2]\n\ - lsls r0, r1, 5\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - ldr r4, [sp]\n\ - asrs r5, r4, 16\n\ - adds r1, r5, 0\n\ - cmp r5, 0\n\ - bge _080F790C\n\ - negs r1, r5\n\ -_080F790C:\n\ - bl __divsi3\n\ - adds r4, r0, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - cmp r0, 0x4\n\ - ble _080F791E\n\ - adds r4, 0xA\n\ -_080F791E:\n\ - ldr r0, =gUnknown_0203A034\n\ - mov r9, r0\n\ - ldr r0, [r0]\n\ - ldr r0, [r0, 0x4]\n\ - mov r1, r10\n\ - adds r6, r1, r0\n\ - adds r0, r4, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - str r0, [r6]\n\ - ldr r0, =gUnknown_02039F18\n\ - adds r7, r0\n\ - movs r2, 0\n\ - ldrsh r1, [r7, r2]\n\ - cmp r1, 0\n\ - bge _080F7942\n\ - negs r1, r1\n\ -_080F7942:\n\ - lsls r0, r1, 5\n\ - subs r0, r1\n\ - lsls r0, 2\n\ - adds r0, r1\n\ - lsls r0, 3\n\ - adds r1, r5, 0\n\ - cmp r1, 0\n\ - bge _080F7954\n\ - negs r1, r1\n\ -_080F7954:\n\ - bl __divsi3\n\ - adds r4, r0, 0\n\ - movs r1, 0xA\n\ - bl __modsi3\n\ - cmp r0, 0x4\n\ - ble _080F7966\n\ - adds r4, 0xA\n\ -_080F7966:\n\ - adds r0, r4, 0\n\ - movs r1, 0xA\n\ - bl __divsi3\n\ - str r0, [r6, 0x4]\n\ - movs r4, 0\n\ - ldrsh r0, [r7, r4]\n\ - cmp r0, 0\n\ - bge _080F797C\n\ - movs r0, 0x1\n\ - strb r0, [r6, 0x10]\n\ -_080F797C:\n\ - mov r5, r9\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x4]\n\ - mov r1, r10\n\ - adds r4, r1, r0\n\ - ldr r1, [r4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - subs r0, r1\n\ - lsls r0, 11\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - movs r5, 0xFF\n\ - ands r0, r5\n\ - cmp r0, 0x7F\n\ - bls _080F79A8\n\ - movs r2, 0x80\n\ - lsls r2, 1\n\ - adds r1, r2\n\ -_080F79A8:\n\ - lsrs r0, r1, 8\n\ - str r0, [r4, 0x8]\n\ - ldr r1, [r4, 0x4]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 2\n\ - subs r0, r1\n\ - lsls r0, 11\n\ - movs r1, 0x64\n\ - bl __divsi3\n\ - adds r1, r0, 0\n\ - ands r0, r5\n\ - cmp r0, 0x7F\n\ - bls _080F79CC\n\ - movs r5, 0x80\n\ - lsls r5, 1\n\ - adds r1, r5\n\ -_080F79CC:\n\ - lsrs r0, r1, 8\n\ - str r0, [r4, 0xC]\n\ - mov r0, r8\n\ - lsls r4, r0, 24\n\ - lsrs r4, 24\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_80F7310\n\ - mov r2, r9\n\ - ldr r1, [r2]\n\ - ldr r1, [r1, 0x4]\n\ - add r1, r10\n\ - strb r0, [r1, 0x11]\n\ - adds r0, r4, 0\n\ - movs r1, 0x1\n\ - bl sub_80F7364\n\ - mov r4, r9\n\ - ldr r1, [r4]\n\ - ldr r1, [r1, 0x4]\n\ - add r1, r10\n\ - lsls r0, 24\n\ - asrs r0, 24\n\ - cmp r0, 0\n\ - bge _080F7A02\n\ - negs r0, r0\n\ -_080F7A02:\n\ - strb r0, [r1, 0x12]\n\ - ldr r0, =gContestFinalStandings\n\ - add r0, r8\n\ - ldrb r0, [r0]\n\ - cmp r0, 0\n\ - beq _080F7A60\n\ - mov r5, r9\n\ - ldr r0, [r5]\n\ - ldr r0, [r0, 0x4]\n\ - mov r2, r10\n\ - adds r1, r2, r0\n\ - ldr r5, [r1, 0x8]\n\ - ldrh r3, [r1, 0x8]\n\ - ldr r4, [r1, 0xC]\n\ - ldrh r2, [r1, 0xC]\n\ - ldrb r0, [r1, 0x10]\n\ - cmp r0, 0\n\ - beq _080F7A2C\n\ - lsls r0, r2, 16\n\ - negs r0, r0\n\ - lsrs r2, r0, 16\n\ -_080F7A2C:\n\ - lsls r0, r3, 16\n\ - asrs r3, r0, 16\n\ - lsls r0, r2, 16\n\ - asrs r2, r0, 16\n\ - adds r0, r3, r2\n\ - cmp r0, 0x58\n\ - bne _080F7A60\n\ - cmp r2, 0\n\ - ble _080F7A58\n\ - subs r0, r4, 0x1\n\ - str r0, [r1, 0xC]\n\ - b _080F7A60\n\ - .pool\n\ -_080F7A58:\n\ - cmp r3, 0\n\ - ble _080F7A60\n\ - subs r0, r5, 0x1\n\ - str r0, [r1, 0x8]\n\ -_080F7A60:\n\ - movs r4, 0x14\n\ - add r10, r4\n\ - movs r5, 0x1\n\ - add r8, r5\n\ - mov r0, r8\n\ - cmp r0, 0x3\n\ - bgt _080F7A70\n\ - b _080F78EA\n\ -_080F7A70:\n\ - add sp, 0x4\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); -} - -// static void sub_80F7A80(u8 arg0, u8 arg1) -// { -// int i; -// u8 taskId; -// u8 sp8, spC; - -// sp8 = 0; -// spC = 0; -// if (!arg0) -// { -// u32 var0; -// for (i = 0; i < 4; i++) -// { -// int var1 = gUnknown_0203A034->unk4->unk0[i].unk11; -// if (arg1 < var1) -// { -// int x = var1 + 19; -// x -= arg1; -// x--; -// FillBgTilemapBufferRect_Palette0(1, 0x60B3, x, i * 3 + 5, 1, 1); -// taskId = CreateTask(sub_80F7CA8, 10); -// var0 = ((gUnknown_0203A034->unk4->unk0[i].unk8 << 16) / gUnknown_0203A034->unk4->unk0[i].unk11) * (arg1 + 1); -// var0 &= 0xFFFF; -// if (var0 > 0x7FFF) -// var0 += 0x10000; - -// gTasks[taskId].data[0] = i; -// gTasks[taskId].data[1] = var0 >> 16; -// gUnknown_0203A034->unk0->unk14++; -// sp8++; -// } -// } -// } -// else -// { -// u32 var0; -// for (i = 0; i < 4; i++) -// { -// int tile; -// s8 var1 = gUnknown_0203A034->unk4->unk0[i].unk12; -// tile = gUnknown_0203A034->unk4->unk0[i].unk10 ? 0x60A5 : 0x60A3; -// if (arg1 < var1) -// { -// int thing = ((s8)arg1 - 19); -// int x = var1 - thing; -// x--; -// FillBgTilemapBufferRect_Palette0(1, tile, x, i * 3 + 6, 1, 1); -// taskId = CreateTask(sub_80F7CA8, 10); -// var0 = ((gUnknown_0203A034->unk4->unk0[i].unkC << 16) / gUnknown_0203A034->unk4->unk0[i].unk12) * (arg1 + 1); -// var0 &= 0xFFFF; -// if (var0 > 0x7FFF) -// var0 += 0x10000; - -// gTasks[taskId].data[0] = i; -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// { -// gTasks[taskId].data[2] = 1; -// spC++; -// } -// else -// { -// sp8++; -// } - -// if (gUnknown_0203A034->unk4->unk0[i].unk10) -// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 - (var0 >> 16); -// else -// gTasks[taskId].data[1] = gUnknown_0203A034->unk4->unk0[i].unk8 + (var0 >> 16); - -// gUnknown_0203A034->unk0->unk14++; -// } -// } -// } - -// if (spC) -// PlaySE(SE_PIN); - -// if (sp8) -// PlaySE(SE_BAN); -// } + int i, r4; + u32 r1; + s16 r2; + s8 var; + + r2 = gUnknown_02039F08[0]; + for (i = 1; i < 4; i++) + { + if (r2 < gUnknown_02039F08[i]) + r2 = gUnknown_02039F08[i]; + } + + if (r2 < 0) + { + r2 = gUnknown_02039F08[0]; + for (i = 1; i < 4; i++) + { + if (r2 > gUnknown_02039F08[i]) + r2 = gUnknown_02039F08[i]; + } + } + + for (i = 0; i < 4; i++) + { + r4 = (gContestMonConditions[i] * 1000) / abs(r2); + if (r4 % 10 > 4) + r4 += 10; + (*gUnknown_0203A034->unk4)[i].unk0 = r4 / 10; + + r4 = (abs(gUnknown_02039F18[i]) * 1000) / abs(r2); + if (r4 % 10 > 4) + r4 += 10; + (*gUnknown_0203A034->unk4)[i].unk4 = r4 / 10; + + if (gUnknown_02039F18[i] < 0) + (*gUnknown_0203A034->unk4)[i].unk10 = 1; + + r1 = ((*gUnknown_0203A034->unk4)[i].unk0 * 22528) / 100; + if ((r1 & 0xFF) > 0x7F) + r1 += 0x100; + (*gUnknown_0203A034->unk4)[i].unk8 = r1 >> 8; + + r1 = ((*gUnknown_0203A034->unk4)[i].unk4 * 22528) / 100; + if ((r1 & 0xFF) > 0x7F) + r1 += 0x100; + (*gUnknown_0203A034->unk4)[i].unkC = r1 >> 8; + + (*gUnknown_0203A034->unk4)[i].unk11 = sub_80F7310(i, 1); + var = sub_80F7364(i, 1); + (*gUnknown_0203A034->unk4)[i].unk12 = abs(var); + + if (gContestFinalStandings[i]) + { + s16 var1 = (*gUnknown_0203A034->unk4)[i].unk8; + s16 var2 = (*gUnknown_0203A034->unk4)[i].unkC; + + if ((*gUnknown_0203A034->unk4)[i].unk10) + var2 *= -1; + + if (var1 + var2 == 88) + { + if (var2 > 0) + (*gUnknown_0203A034->unk4)[i].unkC--; + else if (var1 > 0) + (*gUnknown_0203A034->unk4)[i].unk8--; + } + } + } +} -NAKED static void sub_80F7A80(u8 arg0, u8 arg1) { - asm_unified("\n\ - push {r4-r7,lr}\n\ - mov r7, r10\n\ - mov r6, r9\n\ - mov r5, r8\n\ - push {r5-r7}\n\ - sub sp, 0x14\n\ - lsls r0, 24\n\ - lsls r1, 24\n\ - lsrs r1, 24\n\ - mov r8, r1\n\ - movs r1, 0\n\ - str r1, [sp, 0x8]\n\ - movs r3, 0\n\ - str r3, [sp, 0xC]\n\ - cmp r0, 0\n\ - bne _080F7B5C\n\ - mov r9, r3\n\ - ldr r4, =gUnknown_0203A034\n\ - mov r10, r4\n\ - movs r7, 0xA0\n\ - lsls r7, 19\n\ - movs r6, 0\n\ -_080F7AAC:\n\ - mov r1, r10\n\ - ldr r0, [r1]\n\ - ldr r0, [r0, 0x4]\n\ - adds r0, r6, r0\n\ - ldrb r2, [r0, 0x11]\n\ - cmp r8, r2\n\ - bcs _080F7B2E\n\ - adds r2, 0x13\n\ - mov r3, r8\n\ - subs r2, r3\n\ - subs r2, 0x1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - lsrs r3, r7, 24\n\ - movs r0, 0x1\n\ - str r0, [sp]\n\ - str r0, [sp, 0x4]\n\ - ldr r1, =0x000060b3\n\ - bl FillBgTilemapBufferRect_Palette0\n\ - ldr r0, =sub_80F7CA8\n\ - movs r1, 0xA\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - mov r0, r10\n\ - ldr r4, [r0]\n\ - ldr r1, [r4, 0x4]\n\ - adds r1, r6, r1\n\ - ldr r0, [r1, 0x8]\n\ - lsls r0, 16\n\ - ldrb r1, [r1, 0x11]\n\ - bl __udivsi3\n\ - mov r1, r8\n\ - adds r1, 0x1\n\ - adds r3, r0, 0\n\ - muls r3, r1\n\ - ldr r0, =0x0000ffff\n\ - ands r0, r3\n\ - ldr r1, =0x00007fff\n\ - cmp r0, r1\n\ - bls _080F7B0A\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r3, r1\n\ -_080F7B0A:\n\ - ldr r1, =gTasks\n\ - lsls r0, r5, 2\n\ - adds r0, r5\n\ - lsls r0, 3\n\ - adds r0, r1\n\ - mov r1, r9\n\ - strh r1, [r0, 0x8]\n\ - lsrs r1, r3, 16\n\ - strh r1, [r0, 0xA]\n\ - ldr r1, [r4]\n\ - ldrb r0, [r1, 0x14]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x14]\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ -_080F7B2E:\n\ - movs r3, 0xC0\n\ - lsls r3, 18\n\ - adds r7, r3\n\ - adds r6, 0x14\n\ - movs r4, 0x1\n\ - add r9, r4\n\ - mov r0, r9\n\ - cmp r0, 0x3\n\ - ble _080F7AAC\n\ - b _080F7C7E\n\ - .pool\n\ -_080F7B5C:\n\ - movs r1, 0\n\ - mov r9, r1\n\ - mov r10, r1\n\ - movs r3, 0xC0\n\ - lsls r3, 19\n\ - str r3, [sp, 0x10]\n\ -_080F7B68:\n\ - ldr r4, =gUnknown_0203A034\n\ - ldr r0, [r4]\n\ - ldr r0, [r0, 0x4]\n\ - add r0, r10\n\ - ldrb r2, [r0, 0x12]\n\ - ldrb r0, [r0, 0x10]\n\ - ldr r1, =0x000060a3\n\ - cmp r0, 0\n\ - beq _080F7B7C\n\ - adds r1, 0x2\n\ -_080F7B7C:\n\ - lsls r0, r2, 24\n\ - asrs r0, 24\n\ - cmp r8, r0\n\ - bge _080F7C64\n\ - mov r3, r8\n\ - lsls r2, r3, 24\n\ - asrs r2, 24\n\ - subs r2, 0x13\n\ - subs r2, r0, r2\n\ - subs r2, 0x1\n\ - lsls r2, 24\n\ - lsrs r2, 24\n\ - ldr r4, [sp, 0x10]\n\ - lsrs r3, r4, 24\n\ - movs r7, 0x1\n\ - str r7, [sp]\n\ - str r7, [sp, 0x4]\n\ - movs r0, 0x1\n\ - bl FillBgTilemapBufferRect_Palette0\n\ - ldr r0, =sub_80F7CA8\n\ - movs r1, 0xA\n\ - bl CreateTask\n\ - lsls r0, 24\n\ - lsrs r5, r0, 24\n\ - ldr r0, =gUnknown_0203A034\n\ - ldr r6, [r0]\n\ - ldr r1, [r6, 0x4]\n\ - add r1, r10\n\ - ldr r0, [r1, 0xC]\n\ - lsls r0, 16\n\ - ldrb r1, [r1, 0x12]\n\ - bl __udivsi3\n\ - mov r1, r8\n\ - adds r1, 0x1\n\ - adds r3, r0, 0\n\ - muls r3, r1\n\ - ldr r0, =0x0000ffff\n\ - ands r0, r3\n\ - ldr r1, =0x00007fff\n\ - cmp r0, r1\n\ - bls _080F7BDA\n\ - movs r1, 0x80\n\ - lsls r1, 9\n\ - adds r3, r1\n\ -_080F7BDA:\n\ - ldr r1, =gTasks\n\ - lsls r2, r5, 2\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r4, r0, r1\n\ - mov r0, r9\n\ - strh r0, [r4, 0x8]\n\ - ldr r0, [r6, 0x4]\n\ - add r0, r10\n\ - ldrb r0, [r0, 0x10]\n\ - adds r6, r1, 0\n\ - cmp r0, 0\n\ - beq _080F7C1C\n\ - strh r7, [r4, 0xC]\n\ - ldr r0, [sp, 0xC]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0xC]\n\ - b _080F7C26\n\ - .pool\n\ -_080F7C1C:\n\ - ldr r0, [sp, 0x8]\n\ - adds r0, 0x1\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - str r0, [sp, 0x8]\n\ -_080F7C26:\n\ - ldr r1, =gUnknown_0203A034\n\ - ldr r0, [r1]\n\ - ldr r0, [r0, 0x4]\n\ - mov r4, r10\n\ - adds r1, r4, r0\n\ - ldrb r0, [r1, 0x10]\n\ - ldr r4, =gUnknown_0203A034\n\ - cmp r0, 0\n\ - beq _080F7C4C\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - lsrs r2, r3, 16\n\ - ldr r1, [r1, 0x8]\n\ - subs r1, r2\n\ - b _080F7C58\n\ - .pool\n\ -_080F7C4C:\n\ - adds r0, r2, r5\n\ - lsls r0, 3\n\ - adds r0, r6\n\ - lsrs r2, r3, 16\n\ - ldr r1, [r1, 0x8]\n\ - adds r1, r2\n\ -_080F7C58:\n\ - strh r1, [r0, 0xA]\n\ - ldr r0, [r4]\n\ - ldr r1, [r0]\n\ - ldrb r0, [r1, 0x14]\n\ - adds r0, 0x1\n\ - strb r0, [r1, 0x14]\n\ -_080F7C64:\n\ - movs r0, 0x14\n\ - add r10, r0\n\ - ldr r1, [sp, 0x10]\n\ - movs r3, 0xC0\n\ - lsls r3, 18\n\ - adds r1, r3\n\ - str r1, [sp, 0x10]\n\ - movs r4, 0x1\n\ - add r9, r4\n\ - mov r0, r9\n\ - cmp r0, 0x3\n\ - bgt _080F7C7E\n\ - b _080F7B68\n\ -_080F7C7E:\n\ - ldr r1, [sp, 0xC]\n\ - cmp r1, 0\n\ - beq _080F7C8A\n\ - movs r0, 0x16\n\ - bl PlaySE\n\ -_080F7C8A:\n\ - ldr r3, [sp, 0x8]\n\ - cmp r3, 0\n\ - beq _080F7C96\n\ - movs r0, 0x15\n\ - bl PlaySE\n\ -_080F7C96:\n\ - add sp, 0x14\n\ - pop {r3-r5}\n\ - mov r8, r3\n\ - mov r9, r4\n\ - mov r10, r5\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0"); + int i, taskId; + u32 var0; + u8 sp8 = 0, spC = 0; + + if (!arg0) + { + for (i = 0; i < 4; i++) + { + u8 unk = (*gUnknown_0203A034->unk4)[i].unk11; + if (arg1 < unk) + { + FillBgTilemapBufferRect_Palette0(1, 0x60B3, ((19 + unk) - arg1) - 1, i * 3 + 5, 1, 1); + taskId = CreateTask(sub_80F7CA8, 10); + + var0 = (((*gUnknown_0203A034->unk4)[i].unk8 << 16) / (*gUnknown_0203A034->unk4)[i].unk11) * (arg1 + 1); + if ((var0 & 0xFFFF) > 0x7FFF) + var0 += 0x10000; + + gTasks[taskId].data[0] = i; + gTasks[taskId].data[1] = var0 >> 16; + gUnknown_0203A034->unk0->unk14++; + sp8++; + } + } + } + else + { + for (i = 0; i < 4; i++) + { + s8 unk = (*gUnknown_0203A034->unk4)[i].unk12; + u32 tile = (*gUnknown_0203A034->unk4)[i].unk10 ? 0x60A5 : 0x60A3; + if (arg1 < unk) + { + FillBgTilemapBufferRect_Palette0(1, tile, ((19 + unk) - arg1) - 1, i * 3 + 6, 1, 1); + taskId = CreateTask(sub_80F7CA8, 10); + + var0 = (((*gUnknown_0203A034->unk4)[i].unkC << 16) / (*gUnknown_0203A034->unk4)[i].unk12) * (arg1 + 1); + if ((var0 & 0xFFFF) > 0x7FFF) + var0 += 0x10000; + + gTasks[taskId].data[0] = i; + if ((*gUnknown_0203A034->unk4)[i].unk10) + { + gTasks[taskId].data[2] = 1; + spC++; + } + else + { + sp8++; + } + + if ((*gUnknown_0203A034->unk4)[i].unk10) + gTasks[taskId].data[1] = -(var0 >> 16) + (*gUnknown_0203A034->unk4)[i].unk8 ; + else + gTasks[taskId].data[1] = (var0 >> 16) + (*gUnknown_0203A034->unk4)[i].unk8; + + gUnknown_0203A034->unk0->unk14++; + } + } + } + + if (spC) + PlaySE(SE_BOO); + if (sp8) + PlaySE(SE_PIN); } void sub_80F7CA8(u8 taskId) @@ -2624,8 +2051,7 @@ void sub_80F8290(void) void sub_80F82B4(void) { - u8 i; - u8 count; + u8 i, count; for (i = 0, count = 0; i < 4; i++) { diff --git a/src/contest_painting.c b/src/contest_painting.c index 820505b6e..66127cbbc 100644 --- a/src/contest_painting.c +++ b/src/contest_painting.c @@ -684,7 +684,7 @@ static void sub_8130760(u8 contestResult) gUnknown_030061A0.var_16 = 2; gUnknown_030061A0.var_0 = contestResult; - gUnknown_030061A0.var_10 = 0x6010000; + gUnknown_030061A0.var_10 = OBJ_VRAM0; sub_8124F2C(&gUnknown_030061A0); sub_81261A4(&gUnknown_030061A0); diff --git a/src/data/region_map/city_map_entries.h b/src/data/region_map/city_map_entries.h new file mode 100644 index 000000000..7b8361a7c --- /dev/null +++ b/src/data/region_map/city_map_entries.h @@ -0,0 +1,113 @@ +const struct CityMapEntry gPokenavCityMaps[] = +{ + { + .mapSecId = 0, + .index = 0, + .tilemap = gPokenavCityMap_Littleroot_0, + }, + { + .mapSecId = 1, + .index = 0, + .tilemap = gPokenavCityMap_Oldale_0, + }, + { + .mapSecId = 2, + .index = 0, + .tilemap = gPokenavCityMap_Dewford_0, + }, + { + .mapSecId = 3, + .index = 0, + .tilemap = gPokenavCityMap_Lavarige_0, + }, + { + .mapSecId = 4, + .index = 0, + .tilemap = gPokenavCityMap_Fallarbor_0, + }, + { + .mapSecId = 5, + .index = 0, + .tilemap = gPokenavCityMap_Verdanturf_0, + }, + { + .mapSecId = 6, + .index = 0, + .tilemap = gPokenavCityMap_Pacifidlog_0, + }, + { + .mapSecId = 7, + .index = 0, + .tilemap = gPokenavCityMap_Petalburg_0, + }, + { + .mapSecId = 8, + .index = 0, + .tilemap = gPokenavCityMap_Slateport_0, + }, + { + .mapSecId = 8, + .index = 1, + .tilemap = gPokenavCityMap_Slateport_1, + }, + { + .mapSecId = 9, + .index = 0, + .tilemap = gPokenavCityMap_Mauville_0, + }, + { + .mapSecId = 9, + .index = 1, + .tilemap = gPokenavCityMap_Mauville_1, + }, + { + .mapSecId = 10, + .index = 0, + .tilemap = gPokenavCityMap_Rustboro_0, + }, + { + .mapSecId = 10, + .index = 1, + .tilemap = gPokenavCityMap_Rustboro_1, + }, + { + .mapSecId = 11, + .index = 0, + .tilemap = gPokenavCityMap_Fortree_0, + }, + { + .mapSecId = 12, + .index = 0, + .tilemap = gPokenavCityMap_Lilycove_0, + }, + { + .mapSecId = 12, + .index = 1, + .tilemap = gPokenavCityMap_Lilycove_1, + }, + { + .mapSecId = 13, + .index = 0, + .tilemap = gPokenavCityMap_Mossdeep_0, + }, + { + .mapSecId = 13, + .index = 1, + .tilemap = gPokenavCityMap_Mossdeep_1, + }, + { + .mapSecId = 14, + .index = 0, + .tilemap = gPokenavCityMap_Sootopolis_0, + }, + { + .mapSecId = 15, + .index = 0, + .tilemap = gPokenavCityMap_EverGrande_0, + }, + { + .mapSecId = 15, + .index = 1, + .tilemap = gPokenavCityMap_EverGrande_1, + }, +}; diff --git a/src/data/region_map/city_map_tilemaps.h b/src/data/region_map/city_map_tilemaps.h new file mode 100644 index 000000000..8a8a931f9 --- /dev/null +++ b/src/data/region_map/city_map_tilemaps.h @@ -0,0 +1,22 @@ +const u32 gPokenavCityMap_Lavarige_0[] = INCBIN_U32("graphics/pokenav/city_maps/lavaridge_0.bin.lz"); +const u32 gPokenavCityMap_Fallarbor_0[] = INCBIN_U32("graphics/pokenav/city_maps/fallarbor_0.bin.lz"); +const u32 gPokenavCityMap_Fortree_0[] = INCBIN_U32("graphics/pokenav/city_maps/fortree_0.bin.lz"); +const u32 gPokenavCityMap_Slateport_0[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_0.bin.lz"); +const u32 gPokenavCityMap_Slateport_1[] = INCBIN_U32("graphics/pokenav/city_maps/slateport_1.bin.lz"); +const u32 gPokenavCityMap_Rustboro_0[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_0.bin.lz"); +const u32 gPokenavCityMap_Rustboro_1[] = INCBIN_U32("graphics/pokenav/city_maps/rustboro_1.bin.lz"); +const u32 gPokenavCityMap_Pacifidlog_0[] = INCBIN_U32("graphics/pokenav/city_maps/pacifidlog_0.bin.lz"); +const u32 gPokenavCityMap_Mauville_1[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_1.bin.lz"); +const u32 gPokenavCityMap_Mauville_0[] = INCBIN_U32("graphics/pokenav/city_maps/mauville_0.bin.lz"); +const u32 gPokenavCityMap_Oldale_0[] = INCBIN_U32("graphics/pokenav/city_maps/oldale_0.bin.lz"); +const u32 gPokenavCityMap_Lilycove_1[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_1.bin.lz"); +const u32 gPokenavCityMap_Lilycove_0[] = INCBIN_U32("graphics/pokenav/city_maps/lilycove_0.bin.lz"); +const u32 gPokenavCityMap_Littleroot_0[] = INCBIN_U32("graphics/pokenav/city_maps/littleroot_0.bin.lz"); +const u32 gPokenavCityMap_Dewford_0[] = INCBIN_U32("graphics/pokenav/city_maps/dewford_0.bin.lz"); +const u32 gPokenavCityMap_Sootopolis_0[] = INCBIN_U32("graphics/pokenav/city_maps/sootopolis_0.bin.lz"); +const u32 gPokenavCityMap_EverGrande_0[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_0.bin.lz"); +const u32 gPokenavCityMap_EverGrande_1[] = INCBIN_U32("graphics/pokenav/city_maps/ever_grande_1.bin.lz"); +const u32 gPokenavCityMap_Verdanturf_0[] = INCBIN_U32("graphics/pokenav/city_maps/verdanturf_0.bin.lz"); +const u32 gPokenavCityMap_Mossdeep_1[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_1.bin.lz"); +const u32 gPokenavCityMap_Mossdeep_0[] = INCBIN_U32("graphics/pokenav/city_maps/mossdeep_0.bin.lz"); +const u32 gPokenavCityMap_Petalburg_0[] = INCBIN_U32("graphics/pokenav/city_maps/petalburg_0.bin.lz"); diff --git a/src/data/text/gift_ribbon_descriptions.h b/src/data/text/gift_ribbon_descriptions.h new file mode 100644 index 000000000..ea108be18 --- /dev/null +++ b/src/data/text/gift_ribbon_descriptions.h @@ -0,0 +1,115 @@ +const u8 gGiftRibbonDescriptionPart1_2003RegionalTourney[] = _("2003 REGIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart2_Champion[] = _("CHAMPION RIBBON"); +const u8 gGiftRibbonDescriptionPart1_2003NationalTourney[] = _("2003 NATIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart1_2003GlobalCup[] = _("2003 GLOBAL CUP"); +const u8 gGiftRibbonDescriptionPart2_RunnerUp[] = _("Runner-up RIBBON"); +const u8 gGiftRibbonDescriptionPart2_Semifinalist[] = _("Semifinalist RIBBON"); +const u8 gGiftRibbonDescriptionPart1_2004RegionalTourney[] = _("2004 REGIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart1_2004NationalTourney[] = _("2004 NATIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart1_2004GlobalCup[] = _("2004 GLOBAL CUP"); +const u8 gGiftRibbonDescriptionPart1_2005RegionalTourney[] = _("2005 REGIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart1_2005NationalTourney[] = _("2005 NATIONAL TOURNEY"); +const u8 gGiftRibbonDescriptionPart1_2005GlobalCup[] = _("2005 GLOBAL CUP"); +const u8 gGiftRibbonDescriptionPart1_PokemonBattleCup[] = _("POKéMON BATTLE CUP"); +const u8 gGiftRibbonDescriptionPart2_Participation[] = _("Participation RIBBON"); +const u8 gGiftRibbonDescriptionPart1_PokemonLeague[] = _("POKéMON LEAGUE"); +const u8 gGiftRibbonDescriptionPart1_AdvanceCup[] = _("ADVANCE CUP"); +const u8 gGiftRibbonDescriptionPart1_PokemonTournament[] = _("POKéMON Tournament"); +const u8 gGiftRibbonDescriptionPart2_Participation2[] = _("Participation RIBBON"); +const u8 gGiftRibbonDescriptionPart1_PokemonEvent[] = _("POKéMON Event"); +const u8 gGiftRibbonDescriptionPart1_PokemonFestival[] = _("POKéMON Festival"); +const u8 gGiftRibbonDescriptionPart1_DifficultyClearing[] = _("Difficulty-clearing"); +const u8 gGiftRibbonDescriptionPart2_Commemorative[] = _("Commemorative RIBBON"); +const u8 gGiftRibbonDescriptionPart1_ClearingAllChallenges[] = _("RIBBON awarded for"); +const u8 gGiftRibbonDescriptionPart2_ClearingAllChallenges[] = _("clearing all challenges."); +const u8 gGiftRibbonDescriptionPart1_100StraightWin[] = _("100-straight Win"); +const u8 gGiftRibbonDescriptionPart1_DarknessTower[] = _("DARKNESS TOWER Clear"); +const u8 gGiftRibbonDescriptionPart1_RedTower[] = _("RED TOWER Clear"); +const u8 gGiftRibbonDescriptionPart1_BlackironTower[] = _("BLACKIRON TOWER Clear"); +const u8 gGiftRibbonDescriptionPart1_FinalTower[] = _("FINAL TOWER Clear"); +const u8 gGiftRibbonDescriptionPart1_LegendMaking[] = _("Legend-making"); +const u8 gGiftRibbonDescriptionPart1_PokemonCenterTokyo[] = _("POKéMON CENTER TOKYO"); +const u8 gGiftRibbonDescriptionPart1_PokemonCenterOsaka[] = _("POKéMON CENTER OSAKA"); +const u8 gGiftRibbonDescriptionPart1_PokemonCenterNagoya[] = _("POKéMON CENTER NAGOYA"); +const u8 gGiftRibbonDescriptionPart1_PokemonCenterNY[] = _("POKéMON CENTER NY"); +const u8 gGiftRibbonDescriptionPart1_SummerHolidays[] = _("Summer Holidays RIBBON"); +const u8 gGiftRibbonDescriptionPart2_EmptyString[] = _(""); +const u8 gGiftRibbonDescriptionPart1_WinterHolidays[] = _("Winter Holidays RIBBON"); +const u8 gGiftRibbonDescriptionPart1_SpringHolidays[] = _("Spring Holidays RIBBON"); +const u8 gGiftRibbonDescriptionPart1_Evergreen[] = _("Evergreen RIBBON"); +const u8 gGiftRibbonDescriptionPart1_SpecialHoliday[] = _("Special Holiday RIBBON"); +const u8 gGiftRibbonDescriptionPart1_HardWorker[] = _("Hard Worker RIBBON"); +const u8 gGiftRibbonDescriptionPart1_LotsOfFriends[] = _("Lots of Friends RIBBON"); +const u8 gGiftRibbonDescriptionPart1_FullOfEnergy[] = _("Full of Energy RIBBON"); +const u8 gGiftRibbonDescriptionPart1_LovedPokemon[] = _("A commemorative RIBBON"); +const u8 gGiftRibbonDescriptionPart2_LovedPokemon[] = _("for a loved POKéMON."); +const u8 gGiftRibbonDescriptionPart1_LoveForPokemon[] = _("RIBBON that shows"); +const u8 gGiftRibbonDescriptionPart2_LoveForPokemon[] = _("love for POKéMON."); + +const u8 *const gGiftRibbonDescriptionPointers[][2] = +{ + {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2003RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2003NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2003GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2004RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2004NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2004GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_2005RegionalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2005NationalTourney, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_2005GlobalCup, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_PokemonBattleCup, gGiftRibbonDescriptionPart2_Participation}, + {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_PokemonLeague, gGiftRibbonDescriptionPart2_Participation}, + {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Champion}, + {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_RunnerUp}, + {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Semifinalist}, + {gGiftRibbonDescriptionPart1_AdvanceCup, gGiftRibbonDescriptionPart2_Participation}, + {gGiftRibbonDescriptionPart1_PokemonTournament, gGiftRibbonDescriptionPart2_Participation2}, + {gGiftRibbonDescriptionPart1_PokemonEvent, gGiftRibbonDescriptionPart2_Participation2}, + {gGiftRibbonDescriptionPart1_PokemonFestival, gGiftRibbonDescriptionPart2_Participation2}, + {gGiftRibbonDescriptionPart1_DifficultyClearing, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_ClearingAllChallenges, gGiftRibbonDescriptionPart2_ClearingAllChallenges}, + {gGiftRibbonDescriptionPart1_100StraightWin, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_DarknessTower, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_RedTower, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_BlackironTower, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_FinalTower, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_LegendMaking, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_PokemonCenterTokyo, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_PokemonCenterOsaka, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_PokemonCenterNagoya, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_PokemonCenterNY, gGiftRibbonDescriptionPart2_Commemorative}, + {gGiftRibbonDescriptionPart1_SummerHolidays, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_WinterHolidays, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_SpringHolidays, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_Evergreen, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_SpecialHoliday, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_HardWorker, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_LotsOfFriends, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_FullOfEnergy, gGiftRibbonDescriptionPart2_EmptyString}, + {gGiftRibbonDescriptionPart1_LovedPokemon, gGiftRibbonDescriptionPart2_LovedPokemon}, + {gGiftRibbonDescriptionPart1_LoveForPokemon, gGiftRibbonDescriptionPart2_LoveForPokemon} +}; diff --git a/src/data/text/match_call_messages.h b/src/data/text/match_call_messages.h new file mode 100644 index 000000000..c3015b5a7 --- /dev/null +++ b/src/data/text/match_call_messages.h @@ -0,0 +1,476 @@ +#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \ + gMatchCallFlavorText_##name##_Pokemon, \ + gMatchCallFlavorText_##name##_Intro1, \ + gMatchCallFlavorText_##name##_Intro2} + +const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions."); +const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON."); +const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the"); +const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy."); + +const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this."); +const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners."); +const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea"); +const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics."); + +const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!"); +const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON."); +const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,"); +const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world."); + +const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!"); +const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON."); +const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without"); +const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube."); + +const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard."); +const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies."); +const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim."); +const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube."); + +const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties."); +const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON."); +const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together"); +const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother."); + +const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!"); +const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types."); +const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate"); +const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!"); + +const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness."); +const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial."); +const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the"); +const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION."); + +const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent."); +const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter."); +const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the"); +const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL."); + +const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering."); +const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night."); +const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others"); +const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see..."); + +const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win."); +const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!"); +const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for"); +const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home."); + +const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!"); +const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type."); +const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around"); +const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner."); + +const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray."); +const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course."); +const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE."); +const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there."); + +const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?"); +const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!"); +const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a"); +const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed."); + +const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power."); +const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch."); +const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff"); +const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best..."); + +const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!"); +const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!"); +const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,"); +const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights."); + +const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!"); +const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type."); +const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust"); +const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!"); + +const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!"); +const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!"); +const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of"); +const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!"); + +const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!"); +const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!"); +const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock"); +const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!"); + +const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!"); +const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!"); +const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry"); +const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart."); + +const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!"); +const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON."); +const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,"); +const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water."); + +const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!"); +const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON."); +const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild"); +const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!"); + +const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail."); +const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years."); +const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've"); +const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON."); + +const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!"); +const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool."); +const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every"); +const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON."); + +const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!"); +const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers."); +const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly"); +const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!"); + +const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power."); +const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries."); +const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really"); +const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy."); + +const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected."); +const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction."); +const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea"); +const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported."); + +const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle."); +const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!"); +const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending"); +const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test."); + +const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!"); +const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!"); +const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON"); +const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future."); + +const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first."); +const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like."); +const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior"); +const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!"); + +const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!"); +const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes."); +const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for"); +const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too."); + +const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!"); +const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!"); +const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build"); +const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON."); + +const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!"); +const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING."); +const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way"); +const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!"); + +const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending."); +const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type."); +const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own"); +const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling."); + +const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can."); +const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types."); +const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working"); +const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER."); + +const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently."); +const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!"); +const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to"); +const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!"); + +const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!"); +const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!"); +const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some"); +const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!"); + +const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!"); +const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON."); +const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge"); +const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self."); + +const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial."); +const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid."); +const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,"); +const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it."); + +const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!"); +const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!"); +const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd"); +const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind."); + +const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!"); +const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!"); +const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles"); +const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day."); + +const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!"); +const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL."); +const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get"); +const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly."); + +const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER."); +const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON."); +const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,"); +const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself."); + +const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!"); +const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!"); +const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the"); +const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!"); + +const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!"); +const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS."); +const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my"); +const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!"); + +const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!"); +const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON."); +const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so"); +const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja."); + +const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!"); +const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type."); +const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,"); +const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!"); + +const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!"); +const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything."); +const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's"); +const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected."); + +const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!"); +const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON."); +const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans."); +const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV."); + +const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that."); +const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON."); +const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that"); +const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?"); + +const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!"); +const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!"); +const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,"); +const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts."); + +const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!"); +const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types."); +const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!"); +const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?"); + +const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!"); +const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!"); +const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,"); +const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!"); + +const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm."); +const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON."); +const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the"); +const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON."); + +const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power."); +const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children."); +const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and"); +const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON."); + +const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!"); +const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it."); +const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for"); +const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles."); + +const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care."); +const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON."); +const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you"); +const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect."); + +const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON."); +const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON."); +const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue"); +const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON."); + +const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!"); +const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types."); +const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature"); +const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!"); + +const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!"); +const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!"); +const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always"); +const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON."); + +const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!"); +const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!"); +const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG"); +const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early."); + +const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power."); +const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON."); +const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month"); +const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike."); + +const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!"); +const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!"); +const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,"); +const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!"); + +const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!"); +const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!"); +const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!"); +const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!"); + +const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out."); +const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught."); +const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown"); +const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together."); + +const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack."); +const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON."); +const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears"); +const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility."); + +const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!"); +const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!"); +const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the"); +const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!"); + +const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify."); +const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!"); +const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a"); +const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not."); + +const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively."); +const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!"); +const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily"); +const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!"); + +const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style."); +const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner."); +const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from"); +const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day."); + +const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed."); +const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers."); +const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to"); +const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature."); + +const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation."); +const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON."); +const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling"); +const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!"); + +const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower."); +const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!"); +const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful"); +const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!"); + +const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!"); +const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties."); +const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but"); +const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!"); + +const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound."); +const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite."); +const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at"); +const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?"); + +const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help."); +const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!"); +const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better"); +const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land."); + +const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities."); +const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!"); +const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the"); +const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me."); + +const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect."); +const u8 gMatchCallFlavorText_Champion_Wallace_Pokemon[] = _("I prefer POKéMON of grace."); +const u8 gMatchCallFlavorText_Champion_Wallace_Intro1[] = _("I represent beauty as"); +const u8 gMatchCallFlavorText_Champion_Wallace_Intro2[] = _("well as intelligence."); + +const u8 *const gMatchCallMessages[][4] = +{ + [REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose), + [REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres), + [REMATCH_DUSTY] = MCFLAVOR(RuinManiac_Dusty), + [REMATCH_LOLA] = MCFLAVOR(Tuber_Lola), + [REMATCH_RICKY] = MCFLAVOR(Tuber_Ricky), + [REMATCH_LILA_AND_ROY] = MCFLAVOR(SisAndBro_LilaAndRoy), + [REMATCH_CRISTIN] = MCFLAVOR(Cooltrainer_Cristin), + [REMATCH_BROOKE] = MCFLAVOR(Cooltrainer_Brooke), + [REMATCH_WILTON] = MCFLAVOR(Cooltrainer_Wilton), + [REMATCH_VALERIE] = MCFLAVOR(HexManiac_Valerie), + [REMATCH_CINDY] = MCFLAVOR(Lady_Cindy), + [REMATCH_THALIA] = MCFLAVOR(Beauty_Thalia), + [REMATCH_JESSICA] = MCFLAVOR(Beauty_Jessica), + [REMATCH_WINSTON] = MCFLAVOR(RichBoy_Winston), + [REMATCH_STEVE] = MCFLAVOR(PokeManiac_Steve), + [REMATCH_TONY] = MCFLAVOR(Swimmer_Tony), + [REMATCH_NOB] = MCFLAVOR(BlackBelt_Nob), + [REMATCH_KOJI] = MCFLAVOR(BlackBelt_Koji), + [REMATCH_FERNANDO] = MCFLAVOR(Guitarist_Fernando), + [REMATCH_DALTON] = MCFLAVOR(Guitarist_Dalton), + [REMATCH_BERNIE] = MCFLAVOR(Kindler_Bernie), + [REMATCH_ETHAN] = MCFLAVOR(Camper_Ethan), + [REMATCH_JOHN_AND_JAY] = MCFLAVOR(OldCouple_JohnAndJay), + [REMATCH_JEFFREY] = MCFLAVOR(BugManiac_Jeffrey), + [REMATCH_CAMERON] = MCFLAVOR(Psychic_Cameron), + [REMATCH_JACKI] = MCFLAVOR(Psychic_Jacki), + [REMATCH_WALTER] = MCFLAVOR(Gentleman_Walter), + [REMATCH_KAREN] = MCFLAVOR(SchoolKid_Karen), + [REMATCH_JERRY] = MCFLAVOR(SchoolKid_Jerry), + [REMATCH_ANNA_AND_MEG] = MCFLAVOR(SrAndJr_AnnaAndMeg), + [REMATCH_ISABEL] = MCFLAVOR(Pokefan_Isabel), + [REMATCH_MIGUEL] = MCFLAVOR(Pokefan_Miguel), + [REMATCH_TIMOTHY] = MCFLAVOR(Expert_Timothy), + [REMATCH_SHELBY] = MCFLAVOR(Expert_Shelby), + [REMATCH_CALVIN] = MCFLAVOR(Youngster_Calvin), + [REMATCH_ELLIOT] = MCFLAVOR(Fisherman_Elliot), + [REMATCH_ISAIAH] = MCFLAVOR(Triathlete_Isaiah), + [REMATCH_MARIA] = MCFLAVOR(Triathlete_Maria), + [REMATCH_ABIGAIL] = MCFLAVOR(Triathlete_Abigail), + [REMATCH_DYLAN] = MCFLAVOR(Triathlete_Dylan), + [REMATCH_KATELYN] = MCFLAVOR(Triathlete_Katelyn), + [REMATCH_BENJAMIN] = MCFLAVOR(Triathlete_Benjamin), + [REMATCH_PABLO] = MCFLAVOR(Triathlete_Pablo), + [REMATCH_NICOLAS] = MCFLAVOR(DragonTamer_Nicolas), + [REMATCH_ROBERT] = MCFLAVOR(BirdKeeper_Robert), + [REMATCH_LAO] = MCFLAVOR(NinjaBoy_Lao), + [REMATCH_CYNDY] = MCFLAVOR(BattleGirl_Cyndy), + [REMATCH_MADELINE] = MCFLAVOR(ParasolLady_Madeline), + [REMATCH_JENNY] = MCFLAVOR(Swimmer_Jenny), + [REMATCH_DIANA] = MCFLAVOR(Picnicker_Diana), + [REMATCH_AMY_AND_LIV] = MCFLAVOR(Twins_AmyAndLiv), + [REMATCH_ERNEST] = MCFLAVOR(Sailor_Ernest), + [REMATCH_CORY] = MCFLAVOR(Sailor_Cory), + [REMATCH_EDWIN] = MCFLAVOR(Collector_Edwin), + [REMATCH_LYDIA] = MCFLAVOR(PkmnBreeder_Lydia), + [REMATCH_ISAAC] = MCFLAVOR(PkmnBreeder_Isaac), + [REMATCH_GABRIELLE] = MCFLAVOR(PkmnBreeder_Gabrielle), + [REMATCH_CATHERINE] = MCFLAVOR(PkmnRanger_Catherine), + [REMATCH_JACKSON] = MCFLAVOR(PkmnRanger_Jackson), + [REMATCH_HALEY] = MCFLAVOR(Lass_Haley), + [REMATCH_JAMES] = MCFLAVOR(BugCatcher_James), + [REMATCH_TRENT] = MCFLAVOR(Hiker_Trent), + [REMATCH_SAWYER] = MCFLAVOR(Hiker_Sawyer), + [REMATCH_KIRA_AND_DAN] = MCFLAVOR(YoungCouple_LoisAndHal), + [REMATCH_WALLY_3] = MCFLAVOR(PkmnTrainer_Wally), + [REMATCH_ROXANNE] = MCFLAVOR(RockinWhiz_Roxanne), + [REMATCH_BRAWLY] = MCFLAVOR(TheBigHit_Brawly), + [REMATCH_WATTSON] = MCFLAVOR(SwellShock_Wattson), + [REMATCH_FLANNERY] = MCFLAVOR(PassionBurn_Flannery), + [REMATCH_NORMAN] = MCFLAVOR(ReliableOne_Dad), + [REMATCH_WINONA] = MCFLAVOR(SkyTamer_Winona), + [REMATCH_TATE_AND_LIZA] = MCFLAVOR(MysticDuo_TateAndLiza), + [REMATCH_JUAN] = MCFLAVOR(DandyCharm_Juan), + [REMATCH_SIDNEY] = MCFLAVOR(EliteFour_Sidney), + [REMATCH_PHOEBE] = MCFLAVOR(EliteFour_Phoebe), + [REMATCH_GLACIA] = MCFLAVOR(EliteFour_Glacia), + [REMATCH_DRAKE] = MCFLAVOR(EliteFour_Drake), + [REMATCH_WALLACE] = MCFLAVOR(Champion_Wallace), +}; diff --git a/src/data/text/ribbon_descriptions.h b/src/data/text/ribbon_descriptions.h new file mode 100644 index 000000000..f455a7771 --- /dev/null +++ b/src/data/text/ribbon_descriptions.h @@ -0,0 +1,48 @@ +const u8 gRibbonDescriptionPart1_Champion[] = _("CHAMPION-beating, HALL"); +const u8 gRibbonDescriptionPart2_Champion[] = _("OF FAME Member RIBBON"); +const u8 gRibbonDescriptionPart1_CoolContest[] = _("COOL CONTEST"); +const u8 gRibbonDescriptionPart1_BeautyContest[] = _("BEAUTY CONTEST"); +const u8 gRibbonDescriptionPart1_CuteContest[] = _("CUTE CONTEST"); +const u8 gRibbonDescriptionPart1_SmartContest[] = _("SMART CONTEST"); +const u8 gRibbonDescriptionPart1_ToughContest[] = _("TOUGH CONTEST"); +const u8 gRibbonDescriptionPart2_NormalRank[] = _("Normal Rank winner!"); +const u8 gRibbonDescriptionPart2_SuperRank[] = _("Super Rank winner!"); +const u8 gRibbonDescriptionPart2_HyperRank[] = _("Hyper Rank winner!"); +const u8 gRibbonDescriptionPart2_MasterRank[] = _("Master Rank winner!"); +const u8 gRibbonDescriptionPart1_Winning[] = _("For clearing LV50"); +const u8 gRibbonDescriptionPart2_Winning[] = _("at the BATTLE TOWER."); +const u8 gRibbonDescriptionPart1_Victory[] = _("For clearing Open Level"); +const u8 gRibbonDescriptionPart2_Victory[] = _("at the BATTLE TOWER."); +const u8 gRibbonDescriptionPart1_Artist[] = _("RIBBON for being chosen"); +const u8 gRibbonDescriptionPart2_Artist[] = _("as a super sketch model."); +const u8 gRibbonDescriptionPart1_Effort[] = _("RIBBON awarded for"); +const u8 gRibbonDescriptionPart2_Effort[] = _("being a hard worker."); + +const u8 *const gRibbonDescriptionPointers[][2] = +{ + {gRibbonDescriptionPart1_Champion, gRibbonDescriptionPart2_Champion}, + {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_NormalRank}, + {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_SuperRank}, + {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_HyperRank}, + {gRibbonDescriptionPart1_CoolContest, gRibbonDescriptionPart2_MasterRank}, + {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_NormalRank}, + {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_SuperRank}, + {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_HyperRank}, + {gRibbonDescriptionPart1_BeautyContest, gRibbonDescriptionPart2_MasterRank}, + {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_NormalRank}, + {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_SuperRank}, + {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_HyperRank}, + {gRibbonDescriptionPart1_CuteContest, gRibbonDescriptionPart2_MasterRank}, + {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_NormalRank}, + {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_SuperRank}, + {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_HyperRank}, + {gRibbonDescriptionPart1_SmartContest, gRibbonDescriptionPart2_MasterRank}, + {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_NormalRank}, + {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_SuperRank}, + {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_HyperRank}, + {gRibbonDescriptionPart1_ToughContest, gRibbonDescriptionPart2_MasterRank}, + {gRibbonDescriptionPart1_Winning, gRibbonDescriptionPart2_Winning}, + {gRibbonDescriptionPart1_Victory, gRibbonDescriptionPart2_Victory}, + {gRibbonDescriptionPart1_Artist, gRibbonDescriptionPart2_Artist}, + {gRibbonDescriptionPart1_Effort, gRibbonDescriptionPart2_Effort}, +}; diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 0eb0c12f8..714b10ef6 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -1,249 +1,456 @@ #include "global.h" #include "alloc.h" -#include "palette.h" -#include "window.h" #include "bg.h" +#include "dodrio_berry_picking.h" +#include "dynamic_placeholder_text_util.h" +#include "event_data.h" #include "gpu_regs.h" -#include "random.h" +#include "international_string_util.h" +#include "item.h" #include "link.h" #include "link_rfu.h" -#include "task.h" -#include "main.h" -#include "constants/songs.h" -#include "sound.h" #include "m4a.h" +#include "main.h" +#include "palette.h" #include "pokemon_jump.h" +#include "random.h" +#include "save.h" +#include "script.h" +#include "sound.h" +#include "string_util.h" +#include "strings.h" +#include "task.h" +#include "text_window.h" +#include "window.h" +#include "constants/items.h" +#include "constants/songs.h" +#include "constants/species.h" -struct DodrioBerryPickingSubstruct_0160 +struct DodrioSubstruct_0160 { - /*0x0000 : 0x0160*/ u8 filler_000[12]; - /*0x000C : 0x016C*/ u8 unk_00C; - /*0x000D : 0x016D*/ u8 filler_00D[0x3000 - 0xd]; - /*0x3000 : 0x3160*/ u32 unk_3000; - /*0x3004 : 0x3164*/ u8 filler_3004[16]; - /*0x3014 : 0x3174*/ u8 unk_3014; - /*0x3015 : 0x3175*/ u8 filler_3015[0x318C - 0x3175]; + /*0x0000 : 0x3000*/ u16 ALIGNED(4) tilemapBuffers[3][BG_SCREEN_SIZE]; + /*0x3000 : 0x3160*/ bool32 finished; + /*0x3004 : 0x3164*/ u8 ALIGNED(4) unk3004; + /*0x3008 : 0x3168*/ u8 ALIGNED(4) unk3008[10]; + /*0x3014 : 0x3174*/ u8 ALIGNED(4) state; + /*0x3018 : 0x3178*/ u8 ALIGNED(4) unk3018; + /*0x301C : 0x317C*/ u16 ALIGNED(4) unk301C; + /*0x3020 : 0x3180*/ u8 ALIGNED(4) unk3020; + /*0x3024 : 0x3184*/ u8 ALIGNED(4) unk3024; + /*0x3024 : 0x3184*/ void (*unk3028)(void); }; // size = 0x302C -struct DodrioBerryPickingStruct_2022CF4 +struct DodrioStruct_2022CF4 { - u8 filler_00[0x40]; + u8 filler_00[0xc]; + u8 unkC[10]; + s16 unk16[10]; + u16 unk2A[10]; + u16 unk3E; }; // size = 0x40 -struct DodrioBerryPickingSubstruct_31A0_14 +struct DodrioSubstruct_31A0_14 { - u8 unk_0[11]; - u8 unk_B[11]; + u8 unk0[11]; + u8 unkB[11]; }; -struct DodrioBerryPickingSubstruct_31A0 -{ - u8 unk_00[0x10]; - u32 unk_10; - struct DodrioBerryPickingSubstruct_31A0_14 unk_14; - u8 unk_2C; - u8 filler_2D[3]; - u8 unk_30; - u8 filler_31[3]; - u8 unk_34; - u8 filler_35[7]; +struct DodrioSubstruct_31A0_2C +{ + u8 unk0; + u8 ALIGNED(4) unk4; + u8 ALIGNED(4) unk8; +}; + +struct DodrioSubstruct_31A0 +{ + u8 name[0x10]; + u32 unk10; + struct DodrioSubstruct_31A0_14 unk14; + struct DodrioSubstruct_31A0_2C unk2C; + u8 filler_35[4]; }; // size = 0x3C -struct DodrioBerryPickingSubstruct_318C +struct DodrioSubstruct_318C { bool8 isShiny; }; -struct DodrioBerryPickingStruct +struct DodrioSubstruct_3308 +{ + u8 unk0; + u32 unk4; +}; + +struct DodrioStruct { /*0x0000*/ void (*savedCallback)(void); - /*0x0004*/ u8 unk_0004; - /*0x0005*/ u8 filler_0005[3]; - /*0x0008*/ u8 unk_0008; - /*0x0009*/ u8 filler_0009[3]; - /*0x000C*/ u8 unk_000C; - /*0x000D*/ u8 filler_000D[3]; - /*0x0010*/ u8 unk_0010; - /*0x0011*/ u8 filler_0011[3]; - /*0x0014*/ u8 unk_0014; - /*0x0015*/ u8 filler_0015[3]; - /*0x0018*/ u8 unk_0018; - /*0x0019*/ u8 filler_0019[3]; - /*0x001C*/ u8 unk_001C; - /*0x001D*/ u8 filler_001D[3]; - /*0x0020*/ u8 unk_0020; - /*0x0021*/ u8 filler_0021[3]; - /*0x0024*/ u8 unk_0024; - /*0x0025*/ u8 filler_0025[3]; - /*0x0028*/ u8 multiplayerId; + /*0x0004*/ u8 ALIGNED(4) unk04; + /*0x0008*/ u8 ALIGNED(4) unk08; + /*0x000C*/ u8 ALIGNED(4) unk0C; + /*0x0010*/ u8 ALIGNED(4) unk10; + /*0x0014*/ u8 ALIGNED(4) unk14; + /*0x0018*/ u8 ALIGNED(4) unk18; + /*0x001C*/ u8 ALIGNED(4) unk1C; + /*0x0020*/ u8 ALIGNED(4) unk20; + /*0x0024*/ u8 ALIGNED(4) unk24; + /*0x0028*/ u8 ALIGNED(4) multiplayerId; /*0x0029*/ u8 filler_0029[7]; - /*0x0030*/ u8 unk_0030; - /*0x0031*/ u8 filler_0031[3]; - /*0x0034*/ u8 unk_0034[5]; - /*0x0039*/ u8 filler_0039[3]; - /*0x003C*/ u8 unk_003C; - /*0x003D*/ u8 filler_003D[3]; - /*0x0040*/ u8 unk_0040; - /*0x0041*/ u8 filler_0041[3]; - /*0x0044*/ u8 unk_0044; - /*0x0045*/ u8 filler_0045[3]; - /*0x0048*/ u8 unk_0048; - // align 1 - /*0x004A*/ u16 unk_004A[5][6]; - /*0x0086*/ u16 unk_0086[5]; - /*0x0090*/ u8 unk_0090[5]; - /*0x0095*/ u8 filler_0095[3]; - /*0x0098*/ u8 unk_0098[4]; - /*0x009C*/ u8 unk_009C[12]; - /*0x00A8*/ u8 unk_00A8[5]; - /*0x00AD*/ u8 filler_00AD[3]; - /*0x00B0*/ u8 unk_00B0[5]; - /*0x00B5*/ u8 filler_00B5[3]; - /*0x00B8*/ u8 unk_00B8[5]; - /*0x00BD*/ u8 filler_00BD[7]; - /*0x00C4*/ u8 unk_00C4[11]; - /*0x00CF*/ u8 filler_00CF[1]; - /*0x00D0*/ u8 unk_00D0[11]; - /*0x00DB*/ u8 filler_00DB[1]; - /*0x00DC*/ u8 unk_00DC[11]; - /*0x00E7*/ u8 filler_0xE7[1]; - /*0x00E8*/ u8 unk_00E8[5]; - /*0x00ED*/ u8 filler_00ED[7]; - /*0x00F4*/ u8 unk_00F4[11][2]; - /*0x010A*/ u8 filler_010A[2]; - /*0x010C*/ u8 unk_010C[5]; - /*0x0111*/ u8 filler_0111[3]; - /*0x0114*/ u16 unk_0114; - // align 2 - /*0x0118*/ u32 unk_0118; - /*0x011C*/ u32 unk_011C; - /*0x0120*/ u32 unk_0120; - /*0x0124*/ u8 unk_0124; - /*0x0125*/ u8 filler_0125[3]; - /*0x0128*/ u8 unk_0128; - // align 2 - /*0x012C*/ u32 unk_012C; - /*0x0130*/ u32 unk_0130[5]; - /*0x0144*/ u8 unk_0144; - /*0x0145*/ u8 filler_0145[3]; - /*0x0148*/ u8 unk_0148[11]; - /*0x0153*/ u8 filler_0153[1]; - /*0x0154*/ u8 unk_0154; - /*0x0155*/ u8 filler_0155[11]; - /*0x0160*/ struct DodrioBerryPickingSubstruct_0160 unk_0160; - /*0x318C*/ struct DodrioBerryPickingSubstruct_318C unk_318C[5]; - /*0x31A0*/ struct DodrioBerryPickingSubstruct_31A0 unk_31A0[5]; - /*0x32CC*/ struct DodrioBerryPickingSubstruct_31A0 unk_32CC; - /*0x3308*/ u8 unk_3308[0x3330 - 0x3308]; + /*0x0030*/ u8 ALIGNED(4) unk30; + /*0x0034*/ u8 ALIGNED(4) unk34[5]; + /*0x003C*/ u8 ALIGNED(4) unk3C; + /*0x0040*/ u8 ALIGNED(4) unk40; + /*0x0044*/ u8 ALIGNED(4) unk44; + /*0x0048*/ u8 ALIGNED(4) unk48; + /*0x004A*/ u16 unk4A[5][6]; + /*0x0086*/ u16 unk86[5]; + /*0x0090*/ u8 ALIGNED(4) unk90[5]; + /*0x0098*/ u8 ALIGNED(4) unk98[4]; + /*0x009C*/ u8 ALIGNED(4) unk9C[11]; + /*0x00A8*/ u8 ALIGNED(4) unkA8[5]; + /*0x00B0*/ u8 ALIGNED(4) unkB0[5]; + /*0x00B8*/ u8 ALIGNED(4) unkB8[11]; + /*0x00C4*/ u8 ALIGNED(4) unkC4[11]; + /*0x00D0*/ u8 ALIGNED(4) unkD0[11]; + /*0x00DC*/ u8 ALIGNED(4) unkDC[11]; + /*0x00E8*/ u8 ALIGNED(4) unkE8[11]; + /*0x00F4*/ u8 ALIGNED(4) unkF4[11][2]; + /*0x010C*/ u8 ALIGNED(4) unk10C[5]; + /*0x0112*/ u16 unk112; + /*0x0114*/ u16 unk114; + /*0x0118*/ u32 unk118; + /*0x011C*/ u32 unk11C; + /*0x0120*/ u32 unk120; + /*0x0124*/ u8 ALIGNED(4) unk124; + /*0x0128*/ u8 ALIGNED(4) unk128; + /*0x012C*/ u32 unk12C; + /*0x0130*/ u32 unk130[5]; + /*0x0144*/ u8 ALIGNED(4) unk144; + /*0x0148*/ u8 ALIGNED(4) unk148[11]; + /*0x0154*/ u8 ALIGNED(4) unk154; + /*0x0158*/ u8 ALIGNED(4) unk158[5]; + /*0x0160*/ struct DodrioSubstruct_0160 unk160; + /*0x318C*/ struct DodrioSubstruct_318C unk318C[5]; + /*0x31A0*/ struct DodrioSubstruct_31A0 unk31A0[5]; + /*0x32CC*/ struct DodrioSubstruct_31A0 unk32CC; + /*0x3308*/ struct DodrioSubstruct_3308 unk3308[5]; }; // size = 0x3330 -EWRAM_DATA struct DodrioBerryPickingStruct * gUnknown_02022C98 = NULL; -EWRAM_DATA u16 * gUnknown_02022C9C[5] = {NULL}; -EWRAM_DATA u16 * gUnknown_02022CB0[2] = {NULL}; -EWRAM_DATA u16 * gUnknown_02022CB8[11] = {NULL}; -EWRAM_DATA u16 * gUnknown_02022CE4[4] = {NULL}; -EWRAM_DATA struct DodrioBerryPickingStruct_2022CF4 * gUnknown_02022CF4 = NULL; -EWRAM_DATA struct DodrioBerryPickingSubstruct_0160 * gUnknown_02022CF8 = NULL; +EWRAM_DATA static struct DodrioStruct * gUnknown_02022C98 = NULL; +EWRAM_DATA static u16 *gUnknown_02022C9C[5] = {NULL}; +EWRAM_DATA static u16 *gUnknown_02022CB0[2] = {NULL}; +EWRAM_DATA static u16 *gUnknown_02022CB8[11] = {NULL}; +EWRAM_DATA static u16 *gUnknown_02022CE4[4] = {NULL}; +EWRAM_DATA static struct DodrioStruct_2022CF4 *gUnknown_02022CF4 = NULL; +EWRAM_DATA static struct DodrioSubstruct_0160 *gUnknown_02022CF8 = NULL; static bool32 gUnknown_03000DB0; -void sub_8024A1C(void); -void sub_8024A30(struct DodrioBerryPickingStruct *); -void sub_8024BC8(u8 taskId); -void sub_8024DBC(void); -void sub_8024E00(void); -void sub_8024E38(void); -void sub_8024F10(void); -void sub_8024F38(void); -void sub_8024FFC(void); -void sub_80250D4(void); -void sub_8025158(void); -void sub_8025198(void); -void sub_8025230(void); -void sub_8025324(void); -void sub_8025470(void); -void sub_8025644(void); -void sub_80256AC(void); -void sub_8025758(void); -void sub_802589C(u8 taskId); -void sub_8025910(u8 taskId); -void sub_8025D04(void); -void sub_8025D50(void); -void sub_8025E0C(void); -void sub_8025ED8(void); -void sub_8025F48(void); -void sub_8026044(void); -void sub_80261CC(void); -void sub_80261E4(void); -void sub_80261F8(struct DodrioBerryPickingSubstruct_318C *, struct Pokemon *); -void sub_802620C(TaskFunc, u8); -void sub_802621C(TaskFunc); -void sub_8026240(u8); -bool32 sub_8026264(void); -void sub_80262C0(void); -u32 sub_8026634(u8, u8, u8); -void sub_802671C(void); -void sub_8026AF4(void); -void sub_8026B28(void); -void sub_8026B5C(u8, u8*, u8*); -u32 sub_8026BB8(void); -void sub_8026C28(void); -bool32 sub_8026C50(void); -bool32 sub_8026C90(void); -void sub_8026D1C(u8); -u8 sub_8026D8C(u8); -u8 sub_8026DB0(u8, u8); -void sub_8026F1C(u8, u8, u8); -void sub_8027234(u8); -void sub_80272A4(void); -void sub_80272E8(void); -void sub_80273F0(void); -void sub_802749C(void); -u8 sub_8027518(u8); -void sub_8027554(void); -void sub_8027608(void); -u32 sub_8027748(void); -void sub_8027DD0(u8); -u32 sub_8027E30(struct DodrioBerryPickingSubstruct_31A0 *, u8 *, u8 *, u8 *, u8 *, u8 *, u8, u32, u32); -u32 sub_8028164(u32 unused, struct DodrioBerryPickingSubstruct_31A0 *, u8 *, u8 *, u8 *, u8 *, u8 *, u8 *, u32 *, u32 *); -void sub_80282EC(u8); -u32 sub_8028318(u8, u8 *); -void sub_8028350(u8); -bool32 sub_8028374(u8); -void sub_80283A8(void); -void sub_8028408(struct DodrioBerryPickingSubstruct_318C *, u8, u8, u8); -void sub_80284CC(u8); -void sub_8028504(u8); -void sub_8028614(u8); -void sub_802868C(u8, u8); -void sub_8028734(void); -void sub_80287E4(void); -void sub_80289E8(u8); -void sub_80286E4(void); -bool32 sub_8028828(void); -void sub_8028A34(void); -void sub_8028A88(void); -void sub_8028B80(void); -void sub_8028D44(void); -void sub_8028DFC(void); -void sub_8028E4C(void); -void sub_8028E84(void); -void sub_8028EC8(u8); -void sub_8028FCC(void); -void sub_802903C(void); -void sub_8029274(struct DodrioBerryPickingSubstruct_0160 *); -void sub_80292E0(u8); -bool32 sub_802A770(void); -u8 sub_802A794(void); - -extern const u8 gUnknown_082F7A88[][3]; -extern const u8 gUnknown_082F449C[]; -extern const u8 gUknnown_082F45AF[]; -extern const u8 gUnknown_082F7A94[]; -extern void (*const gUnknown_082F7AC4[])(void); -extern void (*const gUnknown_082F7AF4[])(void); - -void sub_802493C(u16 a0, void (*a1)(void)) +static void sub_8024A1C(void); +static void sub_8024A30(struct DodrioStruct *); +static void sub_8024BC8(u8 taskId); +static void sub_8024DBC(void); +static void sub_8024E00(void); +static void sub_8024E38(void); +static void sub_8024F10(void); +static void sub_8024F38(void); +static void sub_8024FFC(void); +static void sub_80250D4(void); +static void sub_8025158(void); +static void sub_8025198(void); +static void sub_8025230(void); +static void sub_8025324(void); +static void sub_8025470(void); +static void sub_8025644(void); +static void sub_80256AC(void); +static void sub_8025758(void); +static void sub_802589C(u8 taskId); +static void sub_8025910(u8 taskId); +static void sub_8025D04(void); +static void sub_8025D50(void); +static void sub_8025E0C(void); +static void sub_8025ED8(void); +static void sub_8025F48(void); +static void sub_8026044(void); +static void sub_80261CC(void); +static void sub_80261E4(void); +static void sub_80261F8(struct DodrioSubstruct_318C *, struct Pokemon *); +static void sub_802620C(TaskFunc, u8); +static void sub_802621C(TaskFunc); +static void sub_8026240(u8); +static bool32 sub_8026264(void); +static void sub_80262C0(void); +static bool32 sub_8026634(u8, u8, u8); +static void sub_802671C(void); +static void sub_8026AF4(void); +static void sub_8026B28(void); +static void sub_8026B5C(u8, u8*, u8*); +static bool32 sub_8026BB8(void); +static void sub_8026C28(void); +static bool32 sub_8026C50(void); +static bool32 sub_8026C90(void); +static void sub_8026D1C(u8); +static u8 sub_8026D8C(u8); +static u8 sub_8026DB0(u8, u8); +static void sub_8026F1C(u8, u8, u8); +static void sub_8027234(bool32 arg0); +static void sub_80272A4(void); +static void sub_80272E8(void); +static void sub_80273F0(void); +static void sub_802749C(void); +static u8 sub_8027518(u8); +static void sub_8027554(void); +static void sub_8027608(void); +static u32 sub_8027748(void); +static void sub_8027DD0(u32 arg0); +static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8); +static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8); +static void sub_80282EC(u8); +static u32 sub_8028318(u32 arg0, u8 *arg1); +static void sub_8028350(u32 arg0); +static u32 sub_8028374(u32 arg0); +static void sub_80283A8(void); +static void sub_8028408(struct DodrioSubstruct_318C *arg0, u8 arg1, u8 id, u8 arg3); +static void sub_80284CC(u8); +static void sub_8028504(u8); +static void sub_8028614(u8 count); +static void sub_802868C(bool8 invisible, u8 count); +static void sub_8028734(void); +static void sub_80287E4(void); +static void sub_80289E8(bool8 invisible); +static void sub_80286E4(void); +static bool32 sub_8028828(void); +static void sub_8028A34(void); +static void sub_8028A88(void); +static void sub_8028B80(void); +static void sub_8028D44(void); +static void sub_8028DFC(void); +static void sub_8028E4C(void); +static void sub_8028E84(void); +static void sub_8028EC8(bool8 invisible); +static void sub_8028FCC(void); +static void sub_802903C(void); +static void sub_8029274(struct DodrioSubstruct_0160 *PTR); +static void sub_80292E0(u8); +static bool32 sub_802A770(void); +static u8 sub_802A794(void); +static void sub_8028BF8(u8 id, bool8 invisible); +static void sub_8028C30(bool8 invisible); +static void sub_8028CA4(u16 id, u8 frameNum); +static void sub_8028C7C(u8 id, u8 y); +static void sub_80286B4(u8 id, u8 frameNum); +static u8 sub_8026E70(u8 arg0, u8 arg1); +static void sub_80288D4(u8 arg0); +static u32 sub_8027DFC(u32 arg0); +static u32 IncrementWithLimit(u32 arg0, u32 arg1); +static u32 Min(u32 arg0, u32 arg1); +static u32 sub_80276C0(u8 arg0); +static void sub_8027ACC(u8 taskId); +static void sub_8029314(u8 taskId); +static void sub_8027BEC(u8 windowId, s32 width); +static void nullsub_15(struct Sprite *sprite); +static void sub_80284A8(struct Sprite *sprite); +static u32 sub_802853C(struct Sprite *sprite); +static u32 sub_80285AC(struct Sprite *sprite); +static s16 sub_8028F14(u8 arg0, u8 arg1); +static void sub_8028654(bool8 invisible, u8 id); +static void sub_8029338(void); +static bool32 sub_802A8E8(void); +static void sub_802A7A8(void); +static void sub_802A72C(void (*func)(void)); +static void (*sub_802A75C(void))(void); +static void sub_8029338(void); +static void sub_8029440(void); +static void sub_802988C(void); +static void sub_802A010(void); +static void sub_802A380(void); +static void sub_802A454(void); +static void sub_802A534(void); +static void sub_802A588(void); +static void sub_802A6FC(void); +static void nullsub_16(void); + +// const rom data +static const u8 gUnknown_082F449C[5][5][11] = +{ + { + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, + }, + { + {0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0}, + {0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0}, + }, + { + {0, 1, 2, 3, 4, 5, 6, 7, 2, 9, 0}, + {0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0}, + {0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0}, + }, + { + {0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0}, + {0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0}, + {0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0}, + {0, 7, 8, 1, 2, 3, 4, 5, 6, 7, 0}, + }, + { + {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0}, + {2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2}, + {4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4}, + {6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6}, + {8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8}, + }, +}; + +static const u8 gUknnown_082F45AF[5][5][3] = +{ + { + {4, 5, 6}, + }, + { + {3, 4, 5}, + {5, 6, 3}, + }, + { + {4, 5, 6}, + {6, 7, 2}, + {2, 3, 4}, + }, + { + {3, 4, 5}, + {5, 6, 7}, + {7, 8, 1}, + {1, 2, 3}, + }, + { + {4, 5, 6}, + {6, 7, 8}, + {8, 9, 0}, + {0, 1, 2}, + {2, 3, 4}, + }, +}; + +static const u8 gUnknown_082F45FA[5][5][3] = +{ + { + {1, 0, 1}, + }, + { + {1, 0, 1}, + {0, 1, 0}, + }, + { + {2, 0, 1}, + {0, 1, 2}, + {1, 2, 0}, + }, + { + {3, 0, 1}, + {0, 1, 2}, + {1, 2, 3}, + {2, 3, 0}, + }, + { + {4, 0, 1}, + {0, 1, 2}, + {1, 2, 3}, + {2, 3, 4}, + {3, 4, 0}, + }, +}; + +ALIGNED(4) +static const u8 gUnknown_082F4648[5][11] = +{ + {9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9}, + {9, 9, 9, 0, 0, 1, 1, 0, 9, 9, 9}, + {9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9}, + {9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9}, + {3, 3, 4, 4, 0, 0, 1, 1, 2, 2, 3}, +}; + +static const u8 gUnknown_082F467F[5][5] = +{ + {5}, + {4, 6}, + {3, 5, 7}, + {2, 4, 6, 8}, + {1, 3, 5, 6, 9}, +}; + +// Duplicate and unused gfx. Feel free to remove. +static const u32 sDuplicateGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.gbapal", + "graphics/link_games/dodrioberry_bg2.gbapal", + "graphics/link_games/dodrioberry_pkmn.gbapal", + "graphics/link_games/dodrioberry_shiny.gbapal", + "graphics/link_games/dodrioberry_status.gbapal", + "graphics/link_games/dodrioberry_berrysprites.gbapal", + "graphics/link_games/dodrioberry_berrysprites.4bpp.lz", + "graphics/link_games/dodrioberry_platform.gbapal", + "graphics/link_games/dodrioberry_bg1.4bpp.lz", + "graphics/link_games/dodrioberry_bg2.4bpp.lz", + "graphics/link_games/dodrioberry_status.4bpp.lz", + "graphics/link_games/dodrioberry_platform.4bpp.lz", + "graphics/link_games/dodrioberry_pkmn.4bpp.lz", + "graphics/link_games/dodrioberry_bg1.bin.lz", + "graphics/link_games/dodrioberry_bg2right.bin.lz", + "graphics/link_games/dodrioberry_bg2left.bin.lz"); + + +static const u8 gUnknown_082F7A88[][3] = +{ + {40, 24, 13}, + {32, 19, 10}, + {22, 13, 7}, +}; + +ALIGNED(4) +static const u8 gUnknown_082F7A94[] = {8, 5, 8, 11, 15}; + +ALIGNED(4) +static const u8 gUnknown_082F7A9C[] = {5, 10, 20, 30, 50, 70, 100}; + +ALIGNED(4) +static const u8 gUnknown_082F7AA4[][10] = +{ + {15, 16, 17, 18, 19, 19, 18, 17, 16, 15}, + {20, 21, 22, 23, 24, 25, 26, 27, 28, 29}, + {30, 31, 32, 33, 34, 34, 33, 32, 31, 30}, +}; + +static void (*const gUnknown_082F7AC4[])(void) = +{ + sub_8024DBC, + sub_8024E00, + sub_8024E38, + sub_8024F10, + sub_8024F38, + sub_8025198, + sub_8025324, + sub_8025470, + sub_8025644, + sub_80256AC, + sub_8025758, + sub_80250D4 +}; + +static void (*const gUnknown_082F7AF4[])(void) = +{ + sub_8024DBC, + sub_8024E00, + sub_8024E38, + sub_8024F10, + sub_8024FFC, + sub_8025230, + sub_8025324, + sub_8025470, + sub_8025644, + sub_80256AC, + sub_8025758, + sub_8025158 +}; + +// code +void sub_802493C(u16 a0, void (*callback)(void)) { gUnknown_03000DB0 = FALSE; @@ -251,108 +458,108 @@ void sub_802493C(u16 a0, void (*a1)(void)) { sub_8024A1C(); sub_8024A30(gUnknown_02022C98); - gUnknown_02022C98->savedCallback = a1; + gUnknown_02022C98->savedCallback = callback; gUnknown_02022C98->multiplayerId = GetMultiplayerId(); - gUnknown_02022C98->unk_32CC = gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId]; - sub_80261F8(&gUnknown_02022C98->unk_318C[gUnknown_02022C98->multiplayerId], &gPlayerParty[a0]); + gUnknown_02022C98->unk32CC = gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; + sub_80261F8(&gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId], &gPlayerParty[a0]); CreateTask(sub_8024BC8, 1); SetMainCallback2(sub_80261CC); sub_80273F0(); - sub_8026B5C(gUnknown_02022C98->unk_0024, &gUnknown_02022C98->unk_0044, &gUnknown_02022C98->unk_0048); + sub_8026B5C(gUnknown_02022C98->unk24, &gUnknown_02022C98->unk44, &gUnknown_02022C98->unk48); StopMapMusic(); PlayNewMapMusic(MUS_RG_KINOMIKUI); } else { - SetMainCallback2(a1); + SetMainCallback2(callback); return; } } -void sub_8024A1C(void) +static void sub_8024A1C(void) { ResetTasks(); ResetSpriteData(); FreeAllSpritePalettes(); } -void sub_8024A30(struct DodrioBerryPickingStruct * data) +static void sub_8024A30(struct DodrioStruct * data) { u8 i; - data->unk_000C = 0; - data->unk_0010 = 0; - data->unk_0014 = 0; - data->unk_0018 = 0; - data->unk_001C = 0; - data->unk_011C = 0; - data->unk_0120 = 0; - data->unk_0030 = 0; - data->unk_0040 = 0; - data->unk_003C = 0; - data->unk_012C = 0; + data->unk0C = 0; + data->unk10 = 0; + data->unk14 = 0; + data->unk18 = 0; + data->unk1C = 0; + data->unk11C = 0; + data->unk120 = 0; + data->unk30 = 0; + data->unk40 = 0; + data->unk3C = 0; + data->unk12C = 0; for (i = 0; i < 4; i++) { - data->unk_0098[i] = 0; + data->unk98[i] = 0; } for (i = 0; i < 5; i++) { - data->unk_00A8[i] = 0; - data->unk_00B0[i] = 0; - data->unk_004A[i][0] = 0; - data->unk_004A[i][1] = 0; - data->unk_004A[i][2] = 0; - data->unk_004A[i][3] = 0; - data->unk_004A[i][5] = 0; - data->unk_010C[i] = 0; - data->unk_0130[i] = 0; + data->unkA8[i] = 0; + data->unkB0[i] = 0; + data->unk4A[i][0] = 0; + data->unk4A[i][1] = 0; + data->unk4A[i][2] = 0; + data->unk4A[i][3] = 0; + data->unk4A[i][5] = 0; + data->unk10C[i] = 0; + data->unk130[i] = 0; } for (i = 0; i < 11; i++) { - data->unk_00D0[i] = 0; - data->unk_00DC[i] = 0; - data->unk_00C4[i] = 0; - data->unk_00F4[i][0] = 0xFF; - data->unk_00F4[i][1] = 0xFF; + data->unkD0[i] = 0; + data->unkDC[i] = 0; + data->unkC4[i] = 0; + data->unkF4[i][0] = 0xFF; + data->unkF4[i][1] = 0xFF; } - data->unk_0020 = GetMultiplayerId() == 0 ? 1 : 0; - data->unk_0024 = GetLinkPlayerCount(); - data->unk_0034[0] = GetMultiplayerId(); - for (i = 1; i < data->unk_0024; i++) + data->unk20 = GetMultiplayerId() == 0 ? 1 : 0; + data->unk24 = GetLinkPlayerCount(); + data->unk34[0] = GetMultiplayerId(); + for (i = 1; i < data->unk24; i++) { - data->unk_0034[i] = data->unk_0034[i - 1] + 1; - if (data->unk_0034[i] > data->unk_0024 - 1) - data->unk_0034[i] %= data->unk_0024; + data->unk34[i] = data->unk34[i - 1] + 1; + if (data->unk34[i] > data->unk24 - 1) + data->unk34[i] %= data->unk24; } } -void sub_8024BC8(u8 taskId) +static void sub_8024BC8(u8 taskId) { u8 r4, r5; - switch (gUnknown_02022C98->unk_000C) + switch (gUnknown_02022C98->unk0C) { case 0: SetVBlankCallback(NULL); sub_802620C(sub_8025910, 4); - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; break; case 1: if (!FuncIsActiveTask(sub_8025910)) { - sub_8029274(&gUnknown_02022C98->unk_0160); - gUnknown_02022C98->unk_000C++; + sub_8029274(&gUnknown_02022C98->unk160); + gUnknown_02022C98->unk0C++; } break; case 2: if (!sub_802A770()) { sub_8010434(); - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; } break; case 3: @@ -363,37 +570,37 @@ void sub_8024BC8(u8 taskId) LoadWirelessStatusIndicatorSpriteGfx(); CreateWirelessStatusIndicatorSprite(0, 0); } - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; } break; case 4: - r5 = gUnknown_02022C98->unk_0024; + r5 = gUnknown_02022C98->unk24; sub_80283A8(); for (r4 = 0; r4 < r5; r4++) { - sub_8028408(&gUnknown_02022C98->unk_318C[gUnknown_02022C98->unk_0034[r4]], r4, gUnknown_02022C98->unk_0034[r4], gUnknown_02022C98->unk_0024); + sub_8028408(&gUnknown_02022C98->unk318C[gUnknown_02022C98->unk34[r4]], r4, gUnknown_02022C98->unk34[r4], gUnknown_02022C98->unk24); } - sub_802868C(0, gUnknown_02022C98->unk_0024); - gUnknown_02022C98->unk_000C++; + sub_802868C(FALSE, gUnknown_02022C98->unk24); + gUnknown_02022C98->unk0C++; break; case 5: sub_8028A34(); sub_8028A88(); sub_8028D44(); sub_8028734(); - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; break; case 6: BlendPalettes(0xFFFFFFFF, 0x10, 0x00); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); SetVBlankCallback(sub_80261E4); - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; break; case 7: UpdatePaletteFade(); if (!gPaletteFade.active) { - gUnknown_02022C98->unk_000C++; + gUnknown_02022C98->unk0C++; } break; default: @@ -403,36 +610,36 @@ void sub_8024BC8(u8 taskId) } } -void sub_8024D4C(u8 taskId) +static void sub_8024D4C(u8 taskId) { sub_8025D04(); - gUnknown_082F7AC4[gUnknown_02022C98->unk_0018](); - if (gUnknown_03000DB0 == FALSE) + gUnknown_082F7AC4[gUnknown_02022C98->unk18](); + if (!gUnknown_03000DB0) { sub_8026AF4(); } sub_8025D50(); } -void sub_8024D84(u8 taskId) +static void sub_8024D84(u8 taskId) { sub_8025E0C(); - gUnknown_082F7AF4[gUnknown_02022C98->unk_0018](); - if (gUnknown_03000DB0 == FALSE) + gUnknown_082F7AF4[gUnknown_02022C98->unk18](); + if (!gUnknown_03000DB0) { sub_8026B28(); } sub_8025ED8(); } -void sub_8024DBC(void) +static void sub_8024DBC(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: sub_8028504(1); sub_80292E0(1); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: if (!sub_802A770()) @@ -441,50 +648,50 @@ void sub_8024DBC(void) } } -void sub_8024E00(void) +static void sub_8024E00(void) { - if (gUnknown_02022C98->unk_0010 == 0) + if (gUnknown_02022C98->unk10 == 0) { sub_80262C0(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } else { - gUnknown_02022C98->unk_0118 = 1; + gUnknown_02022C98->unk118 = 1; sub_8026240(2); } } -void sub_8024E38(void) +static void sub_8024E38(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: sub_802EB24(7, 8, 120, 80, 0); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: sub_8010434(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 2: if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk_0010++; - gUnknown_02022C98->unk_0030 = 0; + gUnknown_02022C98->unk10++; + gUnknown_02022C98->unk30 = 0; } break; case 3: if (!sub_802EB84()) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 4: - if (++gUnknown_02022C98->unk_0030 > 5) + if (++gUnknown_02022C98->unk30 > 5) { sub_8010434(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 5: @@ -496,52 +703,52 @@ void sub_8024E38(void) } } -void sub_8024F10(void) +static void sub_8024F10(void) { - if (gUnknown_02022C98->unk_0010 == 0) + if (gUnknown_02022C98->unk10 == 0) { - if (gUnknown_02022C98->unk_011C != 0) + if (gUnknown_02022C98->unk11C != 0) { sub_8026240(4); } } } -void sub_8024F38(void) +static void sub_8024F38(void) { - if (gUnknown_02022C98->unk_0010 == 0) + if (gUnknown_02022C98->unk10 == 0) { - if (gUnknown_02022C98->unk_0040 < 10) + if (gUnknown_02022C98->unk40 < 10) { - if (gUnknown_02022C98->unk_00A8[0] == 0) + if (gUnknown_02022C98->unkA8[0] == 0) { if (JOY_NEW(DPAD_UP)) { - if (gUnknown_02022C98->unk_31A0[0].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_31A0[0].unk_30 = 0; - gUnknown_02022C98->unk_31A0[0].unk_2C = sub_8027518(2); + gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; + gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(2); } } else if (JOY_NEW(DPAD_RIGHT)) { - if (gUnknown_02022C98->unk_31A0[0].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_31A0[0].unk_30 = 0; - gUnknown_02022C98->unk_31A0[0].unk_2C = sub_8027518(1); + gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; + gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(1); } } else if (JOY_NEW(DPAD_LEFT)) { - if (gUnknown_02022C98->unk_31A0[0].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[0].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_31A0[0].unk_30 = 0; - gUnknown_02022C98->unk_31A0[0].unk_2C = sub_8027518(3); + gUnknown_02022C98->unk31A0[0].unk2C.unk4 = 0; + gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(3); } } else { - gUnknown_02022C98->unk_31A0[0].unk_2C = sub_8027518(0); + gUnknown_02022C98->unk31A0[0].unk2C.unk0 = sub_8027518(0); } } } @@ -554,34 +761,34 @@ void sub_8024F38(void) } } -void sub_8024FFC(void) +static void sub_8024FFC(void) { - if (gUnknown_02022C98->unk_0040 < 10) + if (gUnknown_02022C98->unk40 < 10) { if (JOY_NEW(DPAD_UP)) { - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_32CC.unk_2C = 2; + gUnknown_02022C98->unk32CC.unk2C.unk0 = 2; } } else if (JOY_NEW(DPAD_RIGHT)) { - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_32CC.unk_2C = 1; + gUnknown_02022C98->unk32CC.unk2C.unk0 = 1; } } else if (JOY_NEW(DPAD_LEFT)) { - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) { - gUnknown_02022C98->unk_32CC.unk_2C = 3; + gUnknown_02022C98->unk32CC.unk2C.unk0 = 3; } } else { - gUnknown_02022C98->unk_32CC.unk_2C = 0; + gUnknown_02022C98->unk32CC.unk2C.unk0 = 0; } } else @@ -591,7 +798,7 @@ void sub_8024FFC(void) sub_8026044(); } -void sub_80250D4(void) +static void sub_80250D4(void) { u8 i; @@ -604,26 +811,26 @@ void sub_80250D4(void) } else { - gUnknown_02022C98->unk_012C = 1; - for (i = 1; i < gUnknown_02022C98->unk_0024; i++) + gUnknown_02022C98->unk12C = 1; + for (i = 1; i < gUnknown_02022C98->unk24; i++) { - if (gUnknown_02022C98->unk_0130[i] != 1) + if (gUnknown_02022C98->unk130[i] != 1) { - gUnknown_02022C98->unk_012C = 0; + gUnknown_02022C98->unk12C = 0; break; } } } } -void sub_8025158(void) +static void sub_8025158(void) { sub_8026044(); if (sub_8026C90() == 1) sub_8026240(5); } -bool32 sub_8025170(void) +static bool32 sub_8025170(void) { u8 r4 = GetBlockReceivedStatus(); u8 r0 = sub_800A9D8(); @@ -638,32 +845,32 @@ bool32 sub_8025170(void) } } -void sub_8025198(void) +static void sub_8025198(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: - if (SendBlock(0, gUnknown_02022C98->unk_004A, sizeof(gUnknown_02022C98->unk_004A))) + if (SendBlock(0, gUnknown_02022C98->unk4A, sizeof(gUnknown_02022C98->unk4A))) { - gUnknown_02022C98->unk_0008 = 0; - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk08 = 0; + gUnknown_02022C98->unk10++; } break; case 1: if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: if (sub_8025170()) { - gUnknown_02022C98->unk_0008 = gUnknown_02022C98->unk_0024; + gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; } - if (gUnknown_02022C98->unk_0008 >= gUnknown_02022C98->unk_0024) + if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { - gUnknown_02022C98->unk_0014++; - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk14++; + gUnknown_02022C98->unk10++; } break; default: @@ -676,38 +883,38 @@ void sub_8025198(void) } } -void sub_8025230(void) +static void sub_8025230(void) { u8 i; - switch (gUnknown_02022C98->unk_0010) { + switch (gUnknown_02022C98->unk10) { case 0: - if (SendBlock(0, gUnknown_02022C98->unk_004A[gUnknown_02022C98->unk_0014], - sizeof(gUnknown_02022C98->unk_004A))) { - gUnknown_02022C98->unk_0008 = 0; - gUnknown_02022C98->unk_0010++; + if (SendBlock(0, gUnknown_02022C98->unk4A[gUnknown_02022C98->unk14], + sizeof(gUnknown_02022C98->unk4A))) { + gUnknown_02022C98->unk08 = 0; + gUnknown_02022C98->unk10++; } break; case 1: if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: if (sub_8025170()) { - for (i = 0; i < gUnknown_02022C98->unk_0024; i++) { - memcpy(gUnknown_02022C98->unk_004A, gBlockRecvBuffer, sizeof(gUnknown_02022C98->unk_004A)); - gUnknown_02022C98->unk_0008 = gUnknown_02022C98->unk_0024; + for (i = 0; i < gUnknown_02022C98->unk24; i++) { + memcpy(gUnknown_02022C98->unk4A, gBlockRecvBuffer, sizeof(gUnknown_02022C98->unk4A)); + gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; } } - if (gUnknown_02022C98->unk_0008 >= gUnknown_02022C98->unk_0024) { - gUnknown_02022C98->unk_0014++; - gUnknown_02022C98->unk_0010++; + if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { + gUnknown_02022C98->unk14++; + gUnknown_02022C98->unk10++; } break; default: if (WaitFanfare(TRUE)) { - gUnknown_02022C98->unk_0114 = gUnknown_02022C98->unk_004A[gUnknown_02022C98->multiplayerId][5]; + gUnknown_02022C98->unk114 = gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][5]; sub_8026240(6); FadeOutAndPlayNewMapMusic(MUS_RG_WIN_YASEI, 4); } @@ -715,56 +922,56 @@ void sub_8025230(void) } } -void sub_8025324(void) +static void sub_8025324(void) { u8 sp00 = 1; u8 i; - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: sub_802749C(); - sub_80289E8(1); + sub_80289E8(TRUE); sub_8028DFC(); - sub_8028EC8(1); + sub_8028EC8(TRUE); sub_80292E0(2); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: if (!sub_802A770()) { sub_80292E0(5); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: sp00 = sub_802A794(); if (SendBlock(0, &sp00, sizeof(sp00))) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 3: if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk_0010++; - gUnknown_02022C98->unk_0008 = 0; + gUnknown_02022C98->unk10++; + gUnknown_02022C98->unk08 = 0; } break; case 4: if (sub_8025170()) { - for (i = 0; i < gUnknown_02022C98->unk_0024; i++) + for (i = 0; i < gUnknown_02022C98->unk24; i++) { - *(gUnknown_02022C98->unk_010C + i) = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk_0008 = gUnknown_02022C98->unk_0024; + *(gUnknown_02022C98->unk10C + i) = *(u8 *)gBlockRecvBuffer[i]; + gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; } } - if (gUnknown_02022C98->unk_0008 >= gUnknown_02022C98->unk_0024) { - if (++gUnknown_02022C98->unk_0014 >= 120) + if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { + if (++gUnknown_02022C98->unk14 >= 120) { sub_80292E0(6); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } } break; @@ -777,74 +984,74 @@ void sub_8025324(void) } } -void sub_8025470(void) +static void sub_8025470(void) { u8 sp0; u8 i; - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: if (sub_8027748() >= 3000) { sub_80292E0(4); } - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: if (!sub_802A770()) { sub_80292E0(3); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: sub_8028FCC(); sub_80272E8(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 3: if ((sp0 = sub_802A794()) != 0) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 4: if (!sub_802A770()) { sub_80292E0(5); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 5: sp0 = sub_802A794(); if (SendBlock(0, &sp0, sizeof(sp0))) { - gUnknown_02022C98->unk_0008 = 0; - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk08 = 0; + gUnknown_02022C98->unk10++; } break; case 6: if (IsLinkTaskFinished()) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 7: if (sub_8025170()) { - for (i = 0; i < gUnknown_02022C98->unk_0024; i++) + for (i = 0; i < gUnknown_02022C98->unk24; i++) { - *(gUnknown_02022C98->unk_010C + i) = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk_0008 = gUnknown_02022C98->unk_0024; + *(gUnknown_02022C98->unk10C + i) = *(u8 *)gBlockRecvBuffer[i]; + gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; } } - if (gUnknown_02022C98->unk_0008 >= gUnknown_02022C98->unk_0024) { - if (++gUnknown_02022C98->unk_0014 >= 120) + if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { + if (++gUnknown_02022C98->unk14 >= 120) { sub_8027608(); sub_80292E0(6); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } } else @@ -855,9 +1062,9 @@ void sub_8025470(void) default: if (!sub_802A770()) { - for (i = 0; i < gUnknown_02022C98->unk_0024; i++) + for (i = 0; i < gUnknown_02022C98->unk24; i++) { - if (gUnknown_02022C98->unk_010C[i] == 2) + if (gUnknown_02022C98->unk10C[i] == 2) { sub_8026240(8); return; @@ -869,25 +1076,25 @@ void sub_8025470(void) } } -void sub_8025644(void) +static void sub_8025644(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: sub_800AC34(); sub_80292E0(7); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: if (!sub_802A770()) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: if (sub_802A794() == 5) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; default: @@ -899,35 +1106,35 @@ void sub_8025644(void) } } -void sub_80256AC(void) +static void sub_80256AC(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: UpdatePaletteFade(); if (!gPaletteFade.active) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: sub_8028B80(); sub_80287E4(); - sub_8028614(gUnknown_02022C98->unk_0024); + sub_8028614(gUnknown_02022C98->unk24); sub_8028E84(); gUnknown_03000DB0 = TRUE; sub_80292E0(8); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; default: if (!sub_802A770()) { SetMainCallback2(gUnknown_02022C98->savedCallback); - DestroyTask(gUnknown_02022C98->unk_0004); + DestroyTask(gUnknown_02022C98->unk04); Free(gUnknown_02022C98); FreeAllWindowBuffers(); } @@ -935,20 +1142,20 @@ void sub_80256AC(void) } } -void sub_8025758(void) +static void sub_8025758(void) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: sub_80292E0(9); BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 1: UpdatePaletteFade(); if (!gPaletteFade.active) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 2: @@ -960,66 +1167,66 @@ void sub_8025758(void) ChangeBgY(2, 0, 0); ChangeBgX(3, 0, 0); ChangeBgY(3, 0, 0); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 3: StopMapMusic(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 4: PlayNewMapMusic(MUS_RG_KINOMIKUI); sub_8028E4C(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 5: BlendPalettes(0xFFFFFFFF, 16, 0); BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 6: UpdatePaletteFade(); if (!gPaletteFade.active) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; default: - DestroyTask(gUnknown_02022C98->unk_0004); + DestroyTask(gUnknown_02022C98->unk04); sub_802621C(sub_802589C); sub_802903C(); sub_8024A30(gUnknown_02022C98); if (gReceivedRemoteLinkPlayers == 0) { - gUnknown_02022C98->unk_0024 = 1; + gUnknown_02022C98->unk24 = 1; } sub_80273F0(); - sub_8028EC8(0); + sub_8028EC8(FALSE); break; } } -void sub_802589C(u8 taskId) +static void sub_802589C(u8 taskId) { - switch (gUnknown_02022C98->unk_0010) + switch (gUnknown_02022C98->unk10) { case 0: if (sub_8026264() == 1) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; case 1: sub_80286E4(); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; break; case 2: - if (sub_8028828() == 1) + if (sub_8028828() == TRUE) { - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; default: - if (gUnknown_02022C98->unk_0020 != 0) + if (gUnknown_02022C98->unk20 != 0) { sub_802621C(sub_8024D4C); } @@ -1032,7 +1239,7 @@ void sub_802589C(u8 taskId) } } -void sub_8025910(u8 taskId) +static void sub_8025910(u8 taskId) { s16 * data = gTasks[taskId].data; u8 i; @@ -1040,9 +1247,9 @@ void sub_8025910(u8 taskId) switch (data[0]) { case 0: - if (SendBlock(0, &gUnknown_02022C98->unk_318C[gUnknown_02022C98->multiplayerId].isShiny, sizeof(gUnknown_02022C98->unk_318C[gUnknown_02022C98->multiplayerId].isShiny))) + if (SendBlock(0, &gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId].isShiny, sizeof(gUnknown_02022C98->unk318C[gUnknown_02022C98->multiplayerId].isShiny))) { - gUnknown_02022C98->unk_0008 = 0; + gUnknown_02022C98->unk08 = 0; data[0]++; } break; @@ -1055,129 +1262,129 @@ void sub_8025910(u8 taskId) case 2: if (sub_8025170()) { - for (i = 0; i < gUnknown_02022C98->unk_0024; i++) + for (i = 0; i < gUnknown_02022C98->unk24; i++) { - *(u8 *)&gUnknown_02022C98->unk_318C[i] = *(u8 *)gBlockRecvBuffer[i]; - gUnknown_02022C98->unk_0008 = gUnknown_02022C98->unk_0024; + *(u8 *)&gUnknown_02022C98->unk318C[i] = *(u8 *)gBlockRecvBuffer[i]; + gUnknown_02022C98->unk08 = gUnknown_02022C98->unk24; } } - if (gUnknown_02022C98->unk_0008 >= gUnknown_02022C98->unk_0024) + if (gUnknown_02022C98->unk08 >= gUnknown_02022C98->unk24) { DestroyTask(taskId); sub_80292E0(6); - gUnknown_02022C98->unk_0010++; + gUnknown_02022C98->unk10++; } break; } } -void sub_80259FC(void) +static void sub_80259FC(void) { u8 i; - u8 r7 = gUnknown_02022C98->unk_0024; + u8 r7 = gUnknown_02022C98->unk24; - gUnknown_02022C98->unk_31A0[0].unk_10 = sub_8028164(0, &gUnknown_02022C98->unk_31A0[0], &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, &gUnknown_02022C98->unk_0040, &gUnknown_02022C98->unk_0120, &gUnknown_02022C98->unk_012C); - gUnknown_02022C98->unk_0128 = 1; + gUnknown_02022C98->unk31A0[0].unk10 = sub_8028164(0, &gUnknown_02022C98->unk31A0[0], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); + gUnknown_02022C98->unk128 = 1; for (i = 1; i < r7; i++) { - if ( gUnknown_02022C98->unk_00A8[i] == 0 - && sub_8028318(i, &gUnknown_02022C98->unk_31A0[i].unk_2C) == 0) + if ( gUnknown_02022C98->unkA8[i] == 0 + && sub_8028318(i, &gUnknown_02022C98->unk31A0[i].unk2C.unk0) == 0) { - gUnknown_02022C98->unk_31A0[i].unk_2C = 0; - gUnknown_02022C98->unk_0128 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; + gUnknown_02022C98->unk128 = 0; } } - if (++gUnknown_02022C98->unk_0124 >= 60) + if (++gUnknown_02022C98->unk124 >= 60) { - if (gUnknown_02022C98->unk_0128 != 0) + if (gUnknown_02022C98->unk128 != 0) { sub_8011AC8(); - gUnknown_02022C98->unk_0124 = 0; + gUnknown_02022C98->unk124 = 0; } - else if (gUnknown_02022C98->unk_0124 > 70) + else if (gUnknown_02022C98->unk124 > 70) { sub_8011AC8(); - gUnknown_02022C98->unk_0124 = 0; + gUnknown_02022C98->unk124 = 0; } } for (i = 0; i < r7; i++) { - if ( gUnknown_02022C98->unk_31A0[i].unk_2C != 0 - && gUnknown_02022C98->unk_00A8[i] == 0) + if ( gUnknown_02022C98->unk31A0[i].unk2C.unk0 != 0 + && gUnknown_02022C98->unkA8[i] == 0) { - gUnknown_02022C98->unk_00A8[i] = 1; + gUnknown_02022C98->unkA8[i] = 1; } - switch (gUnknown_02022C98->unk_00A8[i]) + switch (gUnknown_02022C98->unkA8[i]) { case 0: default: break; case 1 ... 3: - if (++gUnknown_02022C98->unk_00B0[i] >= 6) + if (++gUnknown_02022C98->unkB0[i] >= 6) { - gUnknown_02022C98->unk_00B0[i] = 0; - gUnknown_02022C98->unk_00A8[i] = 0; - gUnknown_02022C98->unk_31A0[i].unk_2C = 0; - gUnknown_02022C98->unk_31A0[i].unk_30 = 0; - gUnknown_02022C98->unk_31A0[i].unk_34 = 0; + gUnknown_02022C98->unkB0[i] = 0; + gUnknown_02022C98->unkA8[i] = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk8 = 0; } break; case 4: - if (++gUnknown_02022C98->unk_00B0[i] >= 40) + if (++gUnknown_02022C98->unkB0[i] >= 40) { - gUnknown_02022C98->unk_00B0[i] = 0; - gUnknown_02022C98->unk_00A8[i] = 0; - gUnknown_02022C98->unk_31A0[i].unk_2C = 0; - gUnknown_02022C98->unk_31A0[i].unk_30 = 0; - gUnknown_02022C98->unk_31A0[i].unk_34 = 0; + gUnknown_02022C98->unkB0[i] = 0; + gUnknown_02022C98->unkA8[i] = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk8 = 0; } break; } } } -void sub_8025C0C(void) +static void sub_8025C0C(void) { u8 i; - u8 r6 = gUnknown_02022C98->unk_0024; + u8 r6 = gUnknown_02022C98->unk24; - gUnknown_02022C98->unk_31A0[0].unk_10 = sub_8028164(0, &gUnknown_02022C98->unk_31A0[0], &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, &gUnknown_02022C98->unk_0040, &gUnknown_02022C98->unk_0120, &gUnknown_02022C98->unk_012C); - gUnknown_02022C98->unk_0128 = 1; + gUnknown_02022C98->unk31A0[0].unk10 = sub_8028164(0, &gUnknown_02022C98->unk31A0[0], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); + gUnknown_02022C98->unk128 = 1; for (i = 1; i < r6; i++) { if (sub_8028374(i) != 0) { - gUnknown_02022C98->unk_0130[i] = 1; - gUnknown_02022C98->unk_0128 = 0; + gUnknown_02022C98->unk130[i] = 1; + gUnknown_02022C98->unk128 = 0; } } - if (++gUnknown_02022C98->unk_0124 >= 60) + if (++gUnknown_02022C98->unk124 >= 60) { - if (gUnknown_02022C98->unk_0128 != 0) + if (gUnknown_02022C98->unk128 != 0) { sub_8011AC8(); - gUnknown_02022C98->unk_0124 = 0; + gUnknown_02022C98->unk124 = 0; } - else if (gUnknown_02022C98->unk_0124 > 70) + else if (gUnknown_02022C98->unk124 > 70) { sub_8011AC8(); - gUnknown_02022C98->unk_0124 = 0; + gUnknown_02022C98->unk124 = 0; } } } -void sub_8025D04(void) +static void sub_8025D04(void) { - switch (gUnknown_02022C98->unk_0018) + switch (gUnknown_02022C98->unk18) { case 3: - if (sub_8026BB8() == 1) + if (sub_8026BB8() == TRUE) { sub_8026C28(); - gUnknown_02022C98->unk_011C = 1; + gUnknown_02022C98->unk11C = 1; } break; case 4: @@ -1189,48 +1396,48 @@ void sub_8025D04(void) } } -void sub_8025D50(void) +static void sub_8025D50(void) { - switch (gUnknown_02022C98->unk_0018) + switch (gUnknown_02022C98->unk18) { case 4: - sub_8027E30(&gUnknown_02022C98->unk_32CC, &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, gUnknown_02022C98->unk_0040, gUnknown_02022C98->unk_0120, gUnknown_02022C98->unk_012C); + sub_8027E30(&gUnknown_02022C98->unk32CC, &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, gUnknown_02022C98->unk40, gUnknown_02022C98->unk120, gUnknown_02022C98->unk12C); break; case 11: - sub_8027E30(&gUnknown_02022C98->unk_32CC, &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, gUnknown_02022C98->unk_0040, gUnknown_02022C98->unk_0120, gUnknown_02022C98->unk_012C); + sub_8027E30(&gUnknown_02022C98->unk32CC, &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, gUnknown_02022C98->unk40, gUnknown_02022C98->unk120, gUnknown_02022C98->unk12C); break; } } -void sub_8025E0C(void) +static void sub_8025E0C(void) { - switch (gUnknown_02022C98->unk_0018) + switch (gUnknown_02022C98->unk18) { case 4: - sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, &gUnknown_02022C98->unk_0040, &gUnknown_02022C98->unk_0120, &gUnknown_02022C98->unk_012C); + sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); break; case 11: - sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk_31A0[0].unk_2C, &gUnknown_02022C98->unk_31A0[1].unk_2C, &gUnknown_02022C98->unk_31A0[2].unk_2C, &gUnknown_02022C98->unk_31A0[3].unk_2C, &gUnknown_02022C98->unk_31A0[4].unk_2C, &gUnknown_02022C98->unk_0040, &gUnknown_02022C98->unk_0120, &gUnknown_02022C98->unk_012C); + sub_8028164(gUnknown_02022C98->multiplayerId, &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId], &gUnknown_02022C98->unk31A0[0].unk2C, &gUnknown_02022C98->unk31A0[1].unk2C, &gUnknown_02022C98->unk31A0[2].unk2C, &gUnknown_02022C98->unk31A0[3].unk2C, &gUnknown_02022C98->unk31A0[4].unk2C, &gUnknown_02022C98->unk40, &gUnknown_02022C98->unk120, &gUnknown_02022C98->unk12C); break; } } -void sub_8025ED8(void) +static void sub_8025ED8(void) { - switch (gUnknown_02022C98->unk_0018) + switch (gUnknown_02022C98->unk18) { case 3: sub_8027DD0(1); - gUnknown_02022C98->unk_011C = 1; + gUnknown_02022C98->unk11C = 1; break; case 4: - if (gUnknown_02022C98->unk_32CC.unk_2C != 0) + if (gUnknown_02022C98->unk32CC.unk2C.unk0 != 0) { - sub_80282EC(gUnknown_02022C98->unk_32CC.unk_2C); + sub_80282EC(gUnknown_02022C98->unk32CC.unk2C.unk0); } break; case 11: - if (gUnknown_02022C98->unk_0120 == 0 && gUnknown_02022C98->unk_012C == 0) + if (gUnknown_02022C98->unk120 == 0 && gUnknown_02022C98->unk12C == 0) { sub_8028350(1); } @@ -1238,105 +1445,105 @@ void sub_8025ED8(void) } } -void sub_8025F48(void) +static void sub_8025F48(void) { - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) { if (!IsSEPlaying()) { - gUnknown_02022C98->unk_0144 = 0; + gUnknown_02022C98->unk144 = 0; } } - else if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_30 == 1) + else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 == 1) { - if (gUnknown_02022C98->unk_0144 == 0) + if (gUnknown_02022C98->unk144 == 0) { m4aSongNumStop(SE_SEIKAI); PlaySE(SE_SEIKAI); - gUnknown_02022C98->unk_0144 = 1; + gUnknown_02022C98->unk144 = 1; } } - else if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_34 == 1) + else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 == 1) { - if (gUnknown_02022C98->unk_0144 == 0 && !IsSEPlaying()) + if (gUnknown_02022C98->unk144 == 0 && !IsSEPlaying()) { PlaySE(SE_BOO); sub_80284CC(1); - gUnknown_02022C98->unk_0144 = 1; + gUnknown_02022C98->unk144 = 1; } } - if (gUnknown_02022C98->unk_0154 == 0 && gUnknown_02022C98->unk_0040 >= 10) + if (gUnknown_02022C98->unk154 == 0 && gUnknown_02022C98->unk40 >= 10) { StopMapMusic(); - gUnknown_02022C98->unk_0154 = 1; + gUnknown_02022C98->unk154 = 1; } - else if (gUnknown_02022C98->unk_0154 == 1) + else if (gUnknown_02022C98->unk154 == 1) { PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN - gUnknown_02022C98->unk_0154 = 2; + gUnknown_02022C98->unk154 = 2; } } -void sub_8026044(void) +static void sub_8026044(void) { - u8 r8 = gUnknown_02022C98->unk_0044; - u8 r7 = gUnknown_02022C98->unk_0048; + u8 r8 = gUnknown_02022C98->unk44; + u8 r7 = gUnknown_02022C98->unk48; u8 r4; - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_2C == 0) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 == 0) { - if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_30 != 1 && gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_34 != 1) + if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 != 1 && gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 != 1) { - gUnknown_02022C98->unk_0144 = 0; + gUnknown_02022C98->unk144 = 0; } } - else if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_30 == 1) + else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk4 == 1) { - if (gUnknown_02022C98->unk_0144 == 0) + if (gUnknown_02022C98->unk144 == 0) { m4aSongNumStop(SE_SEIKAI); PlaySE(SE_SEIKAI); - gUnknown_02022C98->unk_0144 = 1; + gUnknown_02022C98->unk144 = 1; } } - else if (gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_34 == 1) + else if (gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk8 == 1) { - if (gUnknown_02022C98->unk_0144 == 0 && !IsSEPlaying()) + if (gUnknown_02022C98->unk144 == 0 && !IsSEPlaying()) { PlaySE(SE_BOO); sub_80284CC(1); - gUnknown_02022C98->unk_0144 = 1; + gUnknown_02022C98->unk144 = 1; } } for (r4 = r8; r4 < r7; r4++) { - struct DodrioBerryPickingSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk_31A0[gUnknown_02022C98->multiplayerId].unk_14; - if (ptr->unk_B[r4] >= 10) + struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk14; + if (ptr->unkB[r4] >= 10) { - if (gUnknown_02022C98->unk_0148[r4] == 0) + if (gUnknown_02022C98->unk148[r4] == 0) { - PlaySE(SE_FUUSEN1 + ptr->unk_0[r4]); - gUnknown_02022C98->unk_0148[r4] = 1; + PlaySE(SE_FUUSEN1 + ptr->unk0[r4]); + gUnknown_02022C98->unk148[r4] = 1; } } else { - gUnknown_02022C98->unk_0148[r4] = 0; + gUnknown_02022C98->unk148[r4] = 0; } } - if (gUnknown_02022C98->unk_0154 == 0 && gUnknown_02022C98->unk_0040 >= 10) + if (gUnknown_02022C98->unk154 == 0 && gUnknown_02022C98->unk40 >= 10) { StopMapMusic(); - gUnknown_02022C98->unk_0154 = 1; + gUnknown_02022C98->unk154 = 1; } - else if (gUnknown_02022C98->unk_0154 == 1) + else if (gUnknown_02022C98->unk154 == 1) { PlayFanfareByFanfareNum(11); // MUS_ME_ZANNEN - gUnknown_02022C98->unk_0154 = 2; + gUnknown_02022C98->unk154 = 2; } } -void sub_80261CC(void) +static void sub_80261CC(void) { RunTasks(); AnimateSprites(); @@ -1344,46 +1551,46 @@ void sub_80261CC(void) UpdatePaletteFade(); } -void sub_80261E4(void) +static void sub_80261E4(void) { TransferPlttBuffer(); LoadOam(); ProcessSpriteCopyRequests(); } -void sub_80261F8(struct DodrioBerryPickingSubstruct_318C * a0, struct Pokemon * a1) +static void sub_80261F8(struct DodrioSubstruct_318C * a0, struct Pokemon * a1) { a0->isShiny = IsMonShiny(a1); } -void sub_802620C(TaskFunc func, u8 priority) +static void sub_802620C(TaskFunc func, u8 priority) { CreateTask(func, priority); } -void sub_802621C(TaskFunc func) +static void sub_802621C(TaskFunc func) { - gUnknown_02022C98->unk_0004 = CreateTask(func, 1); - gUnknown_02022C98->unk_0010 = 0; - gUnknown_02022C98->unk_000C = 0; - gUnknown_02022C98->unk_0014 = 0; + gUnknown_02022C98->unk04 = CreateTask(func, 1); + gUnknown_02022C98->unk10 = 0; + gUnknown_02022C98->unk0C = 0; + gUnknown_02022C98->unk14 = 0; } -void sub_8026240(u8 a0) +static void sub_8026240(u8 a0) { - gUnknown_02022C98->unk_001C = gUnknown_02022C98->unk_0018; - gUnknown_02022C98->unk_0018 = a0; - gUnknown_02022C98->unk_0010 = 0; - gUnknown_02022C98->unk_0014 = 0; + gUnknown_02022C98->unk1C = gUnknown_02022C98->unk18; + gUnknown_02022C98->unk18 = a0; + gUnknown_02022C98->unk10 = 0; + gUnknown_02022C98->unk14 = 0; } -bool32 sub_8026264(void) +static bool32 sub_8026264(void) { - u8 r2 = gUnknown_02022C98->unk_0014 / 4; - gUnknown_02022C98->unk_0014++; - if (r2 != 0 && gUnknown_02022C98->unk_0014 % 4 == 0) + u8 r2 = gUnknown_02022C98->unk14 / 4; + gUnknown_02022C98->unk14++; + if (r2 != 0 && gUnknown_02022C98->unk14 % 4 == 0) { - if (r2 < gUnknown_082F7A94[gUnknown_02022C98->unk_0024 - 1]) + if (r2 < gUnknown_082F7A94[gUnknown_02022C98->unk24 - 1]) { SetGpuReg(REG_OFFSET_BG1HOFS, (r2 * 8)); SetGpuReg(REG_OFFSET_BG2HOFS, -(r2 * 8)); @@ -1400,530 +1607,125 @@ bool32 sub_8026264(void) } } -void sub_80262C0(void) +static void sub_80262C0(void) { u8 i; - u8 start = gUnknown_02022C98->unk_0044; - u8 finish = gUnknown_02022C98->unk_0048; + u8 start = gUnknown_02022C98->unk44; + u8 finish = gUnknown_02022C98->unk48; for (i = start; i < finish; i++) { - struct DodrioBerryPickingSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk_32CC.unk_14; - ptr->unk_B[i] = (i % 2 == 0) ? 1 : 0; - ptr->unk_0[i] = 0; + struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk32CC.unk14; + ptr->unkB[i] = (i % 2 == 0) ? 1 : 0; + ptr->unk0[i] = 0; } } -#ifdef NONMATCHING -void sub_8026324(void) -{ - u8 sp0 = gUnknown_02022C98->unk_0044; - u8 sp4 = gUnknown_02022C98->unk_0048; - u8 sp8 = gUnknown_02022C98->unk_0024; - u8 r6; - u8 r10; - s32 r2; - u8 r5; - u8 r3; - s32 r2_2; - u8 r4; - u8 r7, r7_2; +static void sub_8026324(void) +{ + u8 sp0 = gUnknown_02022C98->unk44; + u8 sp4 = gUnknown_02022C98->unk48; + u8 sp8 = gUnknown_02022C98->unk24; + u8 i, j, k, r5; - if (gUnknown_02022C98->unk_0040 >= 10) + if (gUnknown_02022C98->unk40 >= 10) return; - for (r6 = 0; r6 < sp8; r6++) + for (i = 0; i < sp8; i++) { - if (gUnknown_02022C98->unk_31A0[r6].unk_2C != 0 && gUnknown_02022C98->unk_00A8[r6] == 1) + u8 *ptr = &gUnknown_02022C98->unk31A0[i].unk2C.unk0; + if (*ptr != 0 && gUnknown_02022C98->unkA8[i] == 1) { - for (r10 = sp0; r10 < sp4; r10++) + for (j = sp0; j < sp4; j++) { - r5 = gUnknown_082F449C[r10]; - if (gUnknown_02022C98->unk_00F4[r5][0] == r6) - { + r5 = gUnknown_082F449C[0][0][j]; + if (gUnknown_02022C98->unkF4[r5][0] == i || gUnknown_02022C98->unkF4[r5][1] == i) break; - } - if (gUnknown_02022C98->unk_00F4[r5][1] == r6) - { - break; - } - if (sub_8026634(gUnknown_02022C98->unk_31A0[r6].unk_2C, r6, gUnknown_082F449C[r10]) == 1) + if (sub_8026634(i, *ptr, r5) == TRUE) { - for (r2 = 0; r2 < 2; r2++) + for (k = 0; k < 2; k++) { - if (gUnknown_02022C98->unk_00F4[r5][r2] == 0xFF) + if (gUnknown_02022C98->unkF4[r5][k] == 0xFF) { - gUnknown_02022C98->unk_00F4[r5][r2] = r6; - gUnknown_02022C98->unk_00A8[r6] = 2; - gUnknown_02022C98->unk_00C4[r5] = 1; + gUnknown_02022C98->unkF4[r5][k] = i; + gUnknown_02022C98->unkA8[i] = 2; + gUnknown_02022C98->unkC4[r5] = 1; break; } } break; } - if (gUnknown_02022C98->unk_31A0[r6].unk_34 == 1) - { + if (gUnknown_02022C98->unk31A0[i].unk2C.unk8 == 1) break; - } } } } - for (r10 = sp0; r10 < sp4; r10++) + for (j = sp0; j < sp4; j++) { - r6 = 0xFF; - r5 = gUnknown_082F449C[r10]; - if (gUnknown_02022C98->unk_00C4[r5] == 1) + u8 id = 0xFF; + r5 = gUnknown_082F449C[0][0][j]; + if (gUnknown_02022C98->unkC4[r5] == 1) { - r3 = gUnknown_02022C98->unk_0090[sub_8026D8C(r5)] / 7; - if (r3 < 2) - { - r3 = 2; - } - r2 = gUnknown_082F7A88[r3][gUnknown_02022C98->unk_31A0[0].unk_14.unk_0[r5]] - gUnknown_02022C98->unk_00D0[r5]; + s32 r2; + u8 r4, r3 = gUnknown_02022C98->unk90[sub_8026D8C(r5)] / 7; + if (r3 >= ARRAY_COUNT(gUnknown_082F7A88) - 1) + r3 = ARRAY_COUNT(gUnknown_082F7A88) - 1; + + r2 = gUnknown_082F7A88[r3][gUnknown_02022C98->unk31A0[0].unk14.unk0[r5]] - gUnknown_02022C98->unkD0[r5]; if (r2 < 6) + gUnknown_02022C98->unk9C[r5] += r2; + + if (++gUnknown_02022C98->unk9C[r5] >= 6) { - gUnknown_02022C98->unk_009C[r5] += r2; - } - if (++gUnknown_02022C98->unk_009C[r5] >= 6) - { - gUnknown_02022C98->unk_009C[r5] = 0; - if (gUnknown_02022C98->unk_00F4[r5][0] != 0xFF && gUnknown_02022C98->unk_00F4[r5][1] == 0xFF) + gUnknown_02022C98->unk9C[r5] = 0; + if (gUnknown_02022C98->unkF4[r5][0] == 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF) { - r4 = gUnknown_02022C98->unk_00F4[r5][0]; + continue; } - else if (gUnknown_02022C98->unk_00F4[r5][0] == 0xFF && gUnknown_02022C98->unk_00F4[r5][1] == 0xFF) + else if (gUnknown_02022C98->unkF4[r5][0] != 0xFF && gUnknown_02022C98->unkF4[r5][1] == 0xFF) { - continue; + r4 = gUnknown_02022C98->unkF4[r5][0]; } else { - r7 = gUnknown_02022C98->unk_00F4[r5][0]; - r7_2 = gUnknown_02022C98->unk_00F4[r5][1]; - if ((Random() & 1)) + u8 unk0 = gUnknown_02022C98->unkF4[r5][0]; + i = gUnknown_02022C98->unkF4[r5][1]; // Have to re-use the variable to match. + if (!(Random() & 1)) { - r4 = r7_2; - r6 = r7; + r4 = unk0; + id = i; } else { - r4 = r7; - r6 = r7_2; + r4 = i; + id = unk0; } } - gUnknown_02022C98->unk_32CC.unk_14.unk_B[r5] = 7; - gUnknown_02022C98->unk_00C4[r5] = 2; - gUnknown_02022C98->unk_00A8[r4] = 3; - gUnknown_02022C98->unk_00B8[r5] = r4; - gUnknown_02022C98->unk_31A0[r4].unk_30 = 1; - gUnknown_02022C98->unk_31A0[r6].unk_34 = 1; - gUnknown_02022C98->unk_0086[r4]++; + gUnknown_02022C98->unk32CC.unk14.unkB[r5] = 7; + gUnknown_02022C98->unkC4[r5] = 2; + gUnknown_02022C98->unkA8[r4] = 3; + gUnknown_02022C98->unkB8[r5] = r4; + gUnknown_02022C98->unk31A0[r4].unk2C.unk4 = 1; + gUnknown_02022C98->unk31A0[id].unk2C.unk8 = 1; + gUnknown_02022C98->unk86[r4]++; sub_8026F1C(0, r5, r4); - sub_8027234(1); + sub_8027234(TRUE); sub_8026D1C(r4); - gUnknown_02022C98->unk_00E8[r5] = gUnknown_02022C98->unk_32CC.unk_14.unk_0[r5]; - gUnknown_02022C98->unk_32CC.unk_14.unk_0[r5] = 3; - gUnknown_02022C98->unk_00F4[r5][0] = 0xFF; - gUnknown_02022C98->unk_00F4[r5][1] = 0xFF; + gUnknown_02022C98->unkE8[r5] = gUnknown_02022C98->unk32CC.unk14.unk0[r5]; + gUnknown_02022C98->unk32CC.unk14.unk0[r5] = 3; + gUnknown_02022C98->unkF4[r5][0] = 0xFF; + gUnknown_02022C98->unkF4[r5][1] = 0xFF; } } } } -#else -NAKED -void sub_8026324(void) -{ - asm_unified("\tpush {r4-r7,lr}\n" - "\tmov r7, r10\n" - "\tmov r6, r9\n" - "\tmov r5, r8\n" - "\tpush {r5-r7}\n" - "\tsub sp, 0x10\n" - "\tldr r0, =gUnknown_02022C98\n" - "\tldr r1, [r0]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0x44\n" - "\tldrb r0, [r0]\n" - "\tstr r0, [sp]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0x48\n" - "\tldrb r0, [r0]\n" - "\tstr r0, [sp, 0x4]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0x24\n" - "\tldrb r0, [r0]\n" - "\tstr r0, [sp, 0x8]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0x40\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x9\n" - "\tbls _08026358\n" - "\tb _08026614\n" - "_08026358:\n" - "\tmovs r6, 0\n" - "\tldr r0, [sp, 0x8]\n" - "\tcmp r6, r0\n" - "\tbcs _08026440\n" - "_08026360:\n" - "\tldr r3, =gUnknown_02022C98\n" - "\tlsls r0, r6, 4\n" - "\tsubs r1, r0, r6\n" - "\tlsls r1, 2\n" - "\tldr r2, [r3]\n" - "\tadds r1, r2\n" - "\tldr r4, =0x000031cc\n" - "\tadds r4, r1\n" - "\tmov r8, r4\n" - "\tldrb r1, [r4]\n" - "\tmov r9, r0\n" - "\tadds r0, r6, 0x1\n" - "\tstr r0, [sp, 0xC]\n" - "\tcmp r1, 0\n" - "\tbeq _08026434\n" - "\tadds r0, r2, 0\n" - "\tadds r0, 0xA8\n" - "\tadds r0, r6\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x1\n" - "\tbne _08026434\n" - "\tldr r1, [sp]\n" - "\tmov r10, r1\n" - "\tldr r2, [sp, 0x4]\n" - "\tcmp r10, r2\n" - "\tbcs _08026434\n" - "\tadds r7, r3, 0\n" - "_08026396:\n" - "\tldr r0, =gUnknown_082F449C\n" - "\tadd r0, r10\n" - "\tldrb r5, [r0]\n" - "\tldr r1, [r7]\n" - "\tlsls r4, r5, 1\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0xF4\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, r6\n" - "\tbeq _08026434\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0xF5\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, r6\n" - "\tbeq _08026434\n" - "\tmov r0, r8\n" - "\tldrb r1, [r0]\n" - "\tadds r0, r6, 0\n" - "\tadds r2, r5, 0\n" - "\tbl sub_8026634\n" - "\tcmp r0, 0x1\n" - "\tbne _08026410\n" - "\tmovs r2, 0\n" - "\tldr r3, =gUnknown_02022C98\n" - "\tmov r8, r4\n" - "_080263CE:\n" - "\tldr r0, [r3]\n" - "\tmov r4, r8\n" - "\tadds r1, r2, r4\n" - "\tadds r0, 0xF4\n" - "\tadds r1, r0, r1\n" - "\tldrb r0, [r1]\n" - "\tcmp r0, 0xFF\n" - "\tbne _08026404\n" - "\tstrb r6, [r1]\n" - "\tldr r0, [r3]\n" - "\tadds r0, 0xA8\n" - "\tadds r0, r6\n" - "\tmovs r1, 0x2\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r3]\n" - "\tadds r0, 0xC4\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x1\n" - "\tstrb r1, [r0]\n" - "\tb _08026434\n" - "\t.pool\n" - "_08026404:\n" - "\tadds r0, r2, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r2, r0, 24\n" - "\tcmp r2, 0x1\n" - "\tbls _080263CE\n" - "\tb _08026434\n" - "_08026410:\n" - "\tldr r0, [r7]\n" - "\tmov r2, r9\n" - "\tsubs r1, r2, r6\n" - "\tlsls r1, 2\n" - "\tadds r0, r1\n" - "\tldr r4, =0x000031d4\n" - "\tadds r0, r4\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x1\n" - "\tbeq _08026434\n" - "\tmov r0, r10\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r10, r0\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r10, r0\n" - "\tbcc _08026396\n" - "_08026434:\n" - "\tldr r1, [sp, 0xC]\n" - "\tlsls r0, r1, 24\n" - "\tlsrs r6, r0, 24\n" - "\tldr r2, [sp, 0x8]\n" - "\tcmp r6, r2\n" - "\tbcc _08026360\n" - "_08026440:\n" - "\tldr r4, [sp]\n" - "\tmov r10, r4\n" - "\tldr r0, [sp, 0x4]\n" - "\tcmp r10, r0\n" - "\tbcc _0802644C\n" - "\tb _08026614\n" - "_0802644C:\n" - "\tldr r1, =gUnknown_02022C98\n" - "\tmov r9, r1\n" - "_08026450:\n" - "\tmovs r6, 0xFF\n" - "\tldr r0, =gUnknown_082F449C\n" - "\tadd r0, r10\n" - "\tldrb r5, [r0]\n" - "\tmov r2, r9\n" - "\tldr r0, [r2]\n" - "\tadds r0, 0xC4\n" - "\tadds r0, r5\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0x1\n" - "\tbeq _08026468\n" - "\tb _08026602\n" - "_08026468:\n" - "\tadds r0, r5, 0\n" - "\tbl sub_8026D8C\n" - "\tmov r1, r9\n" - "\tldr r4, [r1]\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tadds r1, r4, 0\n" - "\tadds r1, 0x90\n" - "\tadds r1, r0\n" - "\tldrb r0, [r1]\n" - "\tmovs r1, 0x7\n" - "\tbl __udivsi3\n" - "\tlsls r0, 24\n" - "\tlsrs r3, r0, 24\n" - "\tcmp r3, 0x1\n" - "\tbls _0802648E\n" - "\tmovs r3, 0x2\n" - "_0802648E:\n" - "\tldr r2, =gUnknown_082F7A88\n" - "\tldr r0, =0x000031b4\n" - "\tadds r1, r4, r0\n" - "\tadds r1, r5\n" - "\tlsls r0, r3, 1\n" - "\tadds r0, r3\n" - "\tldrb r1, [r1]\n" - "\tadds r0, r1\n" - "\tadds r0, r2\n" - "\tldrb r1, [r0]\n" - "\tadds r0, r4, 0\n" - "\tadds r0, 0xD0\n" - "\tadds r0, r5\n" - "\tldrb r0, [r0]\n" - "\tsubs r2, r1, r0\n" - "\tcmp r2, 0x5\n" - "\tbgt _080264BC\n" - "\tadds r1, r4, 0\n" - "\tadds r1, 0x9C\n" - "\tadds r1, r5\n" - "\tldrb r0, [r1]\n" - "\tadds r0, r2\n" - "\tstrb r0, [r1]\n" - "_080264BC:\n" - "\tmov r2, r9\n" - "\tldr r1, [r2]\n" - "\tadds r1, 0x9C\n" - "\tadds r1, r5\n" - "\tldrb r0, [r1]\n" - "\tadds r0, 0x1\n" - "\tmovs r2, 0\n" - "\tstrb r0, [r1]\n" - "\tmovs r4, 0xFF\n" - "\tands r0, r4\n" - "\tcmp r0, 0x5\n" - "\tbhi _080264D6\n" - "\tb _08026602\n" - "_080264D6:\n" - "\tmov r1, r9\n" - "\tldr r0, [r1]\n" - "\tadds r0, 0x9C\n" - "\tadds r0, r5\n" - "\tstrb r2, [r0]\n" - "\tldr r3, [r1]\n" - "\tlsls r1, r5, 1\n" - "\tadds r0, r3, 0\n" - "\tadds r0, 0xF4\n" - "\tadds r2, r0, r1\n" - "\tldrb r0, [r2]\n" - "\tmov r8, r1\n" - "\tcmp r0, 0xFF\n" - "\tbne _08026518\n" - "\tadds r0, r3, 0\n" - "\tadds r0, 0xF5\n" - "\tadd r0, r8\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0xFF\n" - "\tbne _08026500\n" - "\tb _08026602\n" - "_08026500:\n" - "\tb _08026528\n" - "\t.pool\n" - "_08026518:\n" - "\tadds r0, r3, 0\n" - "\tadds r0, 0xF5\n" - "\tadd r0, r8\n" - "\tldrb r0, [r0]\n" - "\tcmp r0, 0xFF\n" - "\tbne _08026528\n" - "\tldrb r4, [r2]\n" - "\tb _0802654E\n" - "_08026528:\n" - "\tmov r2, r9\n" - "\tldr r1, [r2]\n" - "\tadds r0, r1, 0\n" - "\tadds r0, 0xF4\n" - "\tadd r0, r8\n" - "\tldrb r7, [r0]\n" - "\tadds r1, 0xF5\n" - "\tadd r1, r8\n" - "\tldrb r6, [r1]\n" - "\tbl Random\n" - "\tmovs r1, 0x1\n" - "\tands r1, r0\n" - "\tcmp r1, 0\n" - "\tbne _0802654A\n" - "\tadds r4, r7, 0\n" - "\tb _0802654E\n" - "_0802654A:\n" - "\tadds r4, r6, 0\n" - "\tadds r6, r7, 0\n" - "_0802654E:\n" - "\tmov r1, r9\n" - "\tldr r0, [r1]\n" - "\tldr r2, =0x000032eb\n" - "\tadds r0, r2\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x7\n" - "\tstrb r1, [r0]\n" - "\tmov r1, r9\n" - "\tldr r0, [r1]\n" - "\tadds r0, 0xC4\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x2\n" - "\tstrb r1, [r0]\n" - "\tmov r2, r9\n" - "\tldr r0, [r2]\n" - "\tadds r0, 0xA8\n" - "\tadds r0, r4\n" - "\tmovs r1, 0x3\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r2]\n" - "\tadds r0, 0xB8\n" - "\tadds r0, r5\n" - "\tstrb r4, [r0]\n" - "\tldr r1, [r2]\n" - "\tlsls r0, r4, 4\n" - "\tsubs r0, r4\n" - "\tlsls r0, 2\n" - "\tadds r1, r0\n" - "\tldr r2, =0x000031d0\n" - "\tadds r1, r2\n" - "\tmovs r0, 0x1\n" - "\tstrb r0, [r1]\n" - "\tmov r2, r9\n" - "\tldr r1, [r2]\n" - "\tlsls r0, r6, 4\n" - "\tsubs r0, r6\n" - "\tlsls r0, 2\n" - "\tadds r1, r0\n" - "\tldr r0, =0x000031d4\n" - "\tadds r1, r0\n" - "\tmovs r2, 0x1\n" - "\tstrb r2, [r1]\n" - "\tmov r0, r9\n" - "\tldr r1, [r0]\n" - "\tlsls r0, r4, 1\n" - "\tadds r1, 0x86\n" - "\tadds r1, r0\n" - "\tldrh r0, [r1]\n" - "\tadds r0, 0x1\n" - "\tstrh r0, [r1]\n" - "\tmovs r0, 0\n" - "\tadds r1, r5, 0\n" - "\tadds r2, r4, 0\n" - "\tbl sub_8026F1C\n" - "\tmovs r0, 0x1\n" - "\tbl sub_8027234\n" - "\tadds r0, r4, 0\n" - "\tbl sub_8026D1C\n" - "\tmov r1, r9\n" - "\tldr r0, [r1]\n" - "\tadds r1, r0, 0\n" - "\tadds r1, 0xE8\n" - "\tadds r1, r5\n" - "\tldr r2, =0x000032e0\n" - "\tadds r0, r2\n" - "\tadds r0, r5\n" - "\tldrb r0, [r0]\n" - "\tstrb r0, [r1]\n" - "\tmov r4, r9\n" - "\tldr r0, [r4]\n" - "\tadds r0, r2\n" - "\tadds r0, r5\n" - "\tmovs r1, 0x3\n" - "\tstrb r1, [r0]\n" - "\tldr r1, [r4]\n" - "\tadds r1, 0xF4\n" - "\tadd r1, r8\n" - "\tldrb r0, [r1]\n" - "\tmovs r2, 0xFF\n" - "\torrs r0, r2\n" - "\tstrb r0, [r1]\n" - "\tldr r1, [r4]\n" - "\tadds r1, 0xF5\n" - "\tadd r1, r8\n" - "\tldrb r0, [r1]\n" - "\torrs r0, r2\n" - "\tstrb r0, [r1]\n" - "_08026602:\n" - "\tmov r0, r10\n" - "\tadds r0, 0x1\n" - "\tlsls r0, 24\n" - "\tlsrs r0, 24\n" - "\tmov r10, r0\n" - "\tldr r4, [sp, 0x4]\n" - "\tcmp r10, r4\n" - "\tbcs _08026614\n" - "\tb _08026450\n" - "_08026614:\n" - "\tadd sp, 0x10\n" - "\tpop {r3-r5}\n" - "\tmov r8, r3\n" - "\tmov r9, r4\n" - "\tmov r10, r5\n" - "\tpop {r4-r7}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.pool"); -} -#endif // NONMATCHING -u32 sub_8026634(u8 a0, u8 a1, u8 a2) +static bool32 sub_8026634(u8 a0, u8 a1, u8 a2) { s32 r7 = 0; - u8 r5 = gUnknown_02022C98->unk_0024 - 1; - struct DodrioBerryPickingSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk_32CC.unk_14; + u8 r5 = gUnknown_02022C98->unk24 - 1; + struct DodrioSubstruct_31A0_14 * ptr = &gUnknown_02022C98->unk32CC.unk14; switch (a1) { @@ -1938,13 +1740,13 @@ u32 sub_8026634(u8 a0, u8 a1, u8 a2) r7 = 2; break; } - if (ptr->unk_B[a2] == 6 || ptr->unk_B[a2] == 7) + if (ptr->unkB[a2] == 6 || ptr->unkB[a2] == 7) { - if (a2 == gUknnown_082F45AF[r7 + a0 * 3 + 15 * r5]) + if (a2 == gUknnown_082F45AF[r5][a0][r7]) { - if (gUnknown_02022C98->unk_00C4[a2] == 1 || gUnknown_02022C98->unk_00C4[a2] == 2) + if (gUnknown_02022C98->unkC4[a2] == 1 || gUnknown_02022C98->unkC4[a2] == 2) { - gUnknown_02022C98->unk_31A0[a0].unk_34 = 1; + gUnknown_02022C98->unk31A0[a0].unk2C.unk8 = 1; return FALSE; } else @@ -1955,98 +1757,3330 @@ u32 sub_8026634(u8 a0, u8 a1, u8 a2) } else { - if (a2 == gUknnown_082F45AF[r7 + a0 * 3 + 15 * r5]) + if (a2 == gUknnown_082F45AF[r5][a0][r7]) { - gUnknown_02022C98->unk_00A8[a0] = 4; - gUnknown_02022C98->unk_31A0[a0].unk_34 = 1; + gUnknown_02022C98->unkA8[a0] = 4; + gUnknown_02022C98->unk31A0[a0].unk2C.unk8 = 1; } } return FALSE; } -void sub_802671C(void) +static void sub_802671C(void) { - u8 r1 = gUnknown_02022C98->unk_0044; - u8 r9 = gUnknown_02022C98->unk_0048; + u8 r1 = gUnknown_02022C98->unk44; + u8 r9 = gUnknown_02022C98->unk48; u8 r3 = 0; u8 r10 = 0; u8 i; u8 r2; - struct DodrioBerryPickingStruct *ptr; + struct DodrioStruct *ptr; - gUnknown_02022C98->unk_0120 = 0; + gUnknown_02022C98->unk120 = 0; for (i = r1; i < r9 - 1; i++) { ptr = gUnknown_02022C98; - if (gUnknown_02022C98->unk_00C4[i] == 0 || gUnknown_02022C98->unk_00C4[i] == 1) + if (gUnknown_02022C98->unkC4[i] == 0 || gUnknown_02022C98->unkC4[i] == 1) { - gUnknown_02022C98->unk_0120 = 1; - if (ptr->unk_32CC.unk_14.unk_B[i] >= 10) + gUnknown_02022C98->unk120 = 1; + if (ptr->unk32CC.unk14.unkB[i] >= 10) { - ptr->unk_32CC.unk_14.unk_B[i] = 10; - gUnknown_02022C98->unk_00C4[i] = 3; - if (gUnknown_02022C98->unk_0148[i] == 0) + ptr->unk32CC.unk14.unkB[i] = 10; + gUnknown_02022C98->unkC4[i] = 3; + if (gUnknown_02022C98->unk148[i] == 0) { - gUnknown_02022C98->unk_0148[i] = 1; - PlaySE(SE_FUUSEN1 + ptr->unk_32CC.unk_14.unk_0[i]); + gUnknown_02022C98->unk148[i] = 1; + PlaySE(SE_FUUSEN1 + ptr->unk32CC.unk14.unk0[i]); } - if (gUnknown_02022C98->unk_0040 < 10 || r10 == 1) + if (gUnknown_02022C98->unk40 < 10 || r10 == 1) { r10 = 1; - gUnknown_02022C98->unk_0148[i] = 0; - if (gUnknown_02022C98->unk_0040 < 10) + gUnknown_02022C98->unk148[i] = 0; + if (gUnknown_02022C98->unk40 < 10) { - gUnknown_02022C98->unk_0040++; + gUnknown_02022C98->unk40++; } sub_8026F1C(3, i, 0); - sub_8027234(0); + sub_8027234(FALSE); } } else { - r3 = gUnknown_02022C98->unk_0090[sub_8026D8C(i)] / 7; + r3 = gUnknown_02022C98->unk90[sub_8026D8C(i)] / 7; if (r3 >= 2) { r3 = 2; } - r2 = gUnknown_082F7A88[r3][ptr->unk_32CC.unk_14.unk_0[i]]; - if (++gUnknown_02022C98->unk_00D0[i] >= r2) + r2 = gUnknown_082F7A88[r3][ptr->unk32CC.unk14.unk0[i]]; + if (++gUnknown_02022C98->unkD0[i] >= r2) { - ptr->unk_32CC.unk_14.unk_B[i]++; - gUnknown_02022C98->unk_00D0[i] = 0; + ptr->unk32CC.unk14.unkB[i]++; + gUnknown_02022C98->unkD0[i] = 0; } sub_8026324(); } } - else if (gUnknown_02022C98->unk_00C4[i] == 2) + else if (gUnknown_02022C98->unkC4[i] == 2) + { + gUnknown_02022C98->unk120 = 1; + if (++gUnknown_02022C98->unkDC[i] >= 20) + { + gUnknown_02022C98->unk31A0[gUnknown_02022C98->unkB8[i]].unk2C.unk4 = 0; + gUnknown_02022C98->unkDC[i] = 0; + gUnknown_02022C98->unkD0[i] = 0; + gUnknown_02022C98->unkC4[i] = 0; + ptr->unk32CC.unk14.unkB[i] = 1; + ptr->unk32CC.unk14.unk0[i] = sub_8026DB0(sub_8026D8C(i), i); + } + } + else if (gUnknown_02022C98->unkC4[i] == 3) + { + if (++gUnknown_02022C98->unkDC[i] >= 20) + { + if (gUnknown_02022C98->unk40 < 10) + { + gUnknown_02022C98->unkDC[i] = 0; + gUnknown_02022C98->unkD0[i] = 0; + gUnknown_02022C98->unkC4[i] = 0; + ptr->unk32CC.unk14.unkB[i] = 1; + gUnknown_02022C98->unkE8[i] = ptr->unk32CC.unk14.unk0[i]; + ptr->unk32CC.unk14.unk0[i] = sub_8026DB0(sub_8026D8C(i), i); + } + } + } + } +} + +static void sub_8026988(void) +{ + u8 i, first, count; + + first = gUnknown_02022C98->unk44; + count = gUnknown_02022C98->unk48; + for (i = first; i < count; i++) + { + struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; + u8 var = gUnknown_082F449C[gUnknown_02022C98->unk24 - 1][gUnknown_02022C98->multiplayerId][i]; + + if (ptr->unk14.unkB[var] != 0) + sub_8028BF8(i, FALSE); + else + sub_8028BF8(i, TRUE); + + if (ptr->unk14.unkB[var] > 9) + { + sub_8028CA4(i, ptr->unk14.unk0[var] + 3); + sub_8028C7C(i, ptr->unk14.unkB[var] * 2 - 1); + } + else if (ptr->unk14.unk0[var] == 3) + { + ptr->unk14.unkB[var] = 7; + sub_8028CA4(i, 6); + sub_8028C7C(i, ptr->unk14.unkB[var] * 2 - 1); + } + else + { + sub_8028CA4(i, ptr->unk14.unk0[var]); + sub_8028C7C(i, ptr->unk14.unkB[var] * 2); + } + } +} + +static void sub_8026A88(void) +{ + u8 i, count; + + count = gUnknown_02022C98->unk24; + for (i = 0; i < count; i++) + { + struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[i]; + sub_80286B4(i, ptr->unk2C.unk0); + } +} + +static void sub_8026AC8(void) +{ + u8 i, count; + + count = gUnknown_02022C98->unk24; + for (i = 0; i < count; i++) + sub_80286B4(i, 4); +} + +static void sub_8026AF4(void) +{ + sub_8026988(); + if (gUnknown_02022C98->unk40 > 9) + sub_8026AC8(); + else + sub_8026A88(); + + sub_80288D4(gUnknown_02022C98->unk40); +} + +// This function is literally the same as the one above...Why? +static void sub_8026B28(void) +{ + sub_8026988(); + if (gUnknown_02022C98->unk40 > 9) + sub_8026AC8(); + else + sub_8026A88(); + + sub_80288D4(gUnknown_02022C98->unk40); +} + +static void sub_8026B5C(u8 arg0, u8 *arg1, u8 *arg2) +{ + switch (arg0) + { + case 1: + *arg1 = 4, *arg2 = 7; + break; + case 2: + *arg1 = 3, *arg2 = 8; + break; + case 3: + *arg1 = 2, *arg2 = 9; + break; + case 4: + *arg1 = 1, *arg2 = 10; + break; + case 5: + *arg1 = 0, *arg2 = 11; + break; + } +} + +static bool32 sub_8026BB8(void) +{ + u8 i, count; + + count = gUnknown_02022C98->unk24; + for (i = 1; i < count; i++) + { + if (gUnknown_02022C98->unk158[i] == 0) + gUnknown_02022C98->unk158[i] = sub_8027DFC(i); + } + + // This loop won't ever run, the seemingly poitnless assingment below is to make the compiler + // generate code for it. + count = count; + for (; i < count; i++) + { + if (gUnknown_02022C98->unk158[i] == 0) + return FALSE; + } + + return TRUE; +} + +static void sub_8026C28(void) +{ + u8 i; + + for (i = 0; i < 5; i++) + gUnknown_02022C98->unk158[i] = 0; +} + +static bool32 sub_8026C50(void) +{ + if (gUnknown_02022C98->unk40 > 9 && gUnknown_02022C98->unk120 == 0) + { + gUnknown_02022C98->unk40 = 10; + if (gUnknown_02022C98->unk12C != 0) + return TRUE; + } + + return FALSE; +} + +static bool32 sub_8026C90(void) +{ + u8 i, first, count; + + if (gUnknown_02022C98->unk40 > 9) + { + first = gUnknown_02022C98->unk44; + count = gUnknown_02022C98->unk48; + gUnknown_02022C98->unk40 = 10; + if (gUnknown_02022C98->unk12C != 0) + { + for (i = first; i < count; i++) + { + struct DodrioSubstruct_31A0 *ptr = &gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId]; + u8 var = gUnknown_082F449C[gUnknown_02022C98->unk24 - 1][gUnknown_02022C98->multiplayerId][i]; + + if (ptr->unk14.unkB[var] != 10) + return FALSE; + } + return TRUE; + } + } + + return FALSE; +} + +static void sub_8026D1C(u8 arg0) +{ + u8 var = gUnknown_082F7A9C[gUnknown_02022C98->unk90[arg0] % 7] + (gUnknown_02022C98->unk90[arg0] / 7) * 100; + if (gUnknown_02022C98->unk86[arg0] >= var) + gUnknown_02022C98->unk90[arg0]++; +} + +static u8 sub_8026D8C(u8 arg0) +{ + return gUnknown_082F4648[gUnknown_02022C98->unk24 - 1][arg0]; +} + +static u8 sub_8026DB0(u8 arg0, u8 arg1) +{ + u8 i, var3; + u8 count = gUnknown_02022C98->unk24 - 1; + u8 var0 = gUnknown_082F45FA[count][arg0][0]; + u8 var1 = gUnknown_082F45FA[count][arg0][1]; + u8 var2 = gUnknown_082F45FA[count][arg0][2]; + + for (i = 0; gUnknown_082F467F[count][i] != 0; i++) + { + if (arg1 == gUnknown_082F467F[count][i]) + return sub_8026E70(gUnknown_02022C98->unk90[var1], arg1); + } + + // Gets the highest of the three. + if (gUnknown_02022C98->unk90[var0] > gUnknown_02022C98->unk90[var1]) + var3 = gUnknown_02022C98->unk90[var0]; + else + var3 = gUnknown_02022C98->unk90[var1]; + + if (gUnknown_02022C98->unk90[var2] > var3) + var3 = gUnknown_02022C98->unk90[var2]; + + return sub_8026E70(var3, arg1); +} + +static u8 sub_8026E70(u8 arg0, u8 arg1) +{ + u8 var = gUnknown_02022C98->unkE8[arg1]; + switch (arg0 % 7) + { + default: return 0; + case 0: return 0; + case 1: return 1; + case 2: return 2; + case 3: + if (var == 0) + return 1; + else + return 0; + case 4: + if (var == 0) + return 2; + else + return 0; + case 5: + if (var == 2) + return 1; + else + return 2; + case 6: + if (var == 0) + return 1; + else if (var == 1) + return 2; + else + return 0; + } +} + +static bool32 sub_8026EEC(u16 arg0[5][6]) +{ + int sum, i; + for (sum = 0, i = 0; i < GetLinkPlayerCount(); sum += arg0[i][3], i++) + ; + + if (sum >= 11) + return TRUE; + else + return FALSE; +} + +static void sub_8026F1C(u8 arg0, u8 arg1, u8 arg2) +{ + u8 var; + u8 count = gUnknown_02022C98->unk24; + switch (arg0) + { + case 0: + case 1: + case 2: + var = gUnknown_02022C98->unk31A0[0].unk14.unk0[arg1]; + gUnknown_02022C98->unk4A[arg2][var] = IncrementWithLimit(gUnknown_02022C98->unk4A[arg2][var], 20000); + break; + case 3: + if (sub_8026EEC(gUnknown_02022C98->unk4A)) + break; + switch (count) + { + case 5: + switch (arg1) + { + case 0: + gUnknown_02022C98->unk4A[2][3]++; + gUnknown_02022C98->unk4A[3][3]++; + break; + case 1: + gUnknown_02022C98->unk4A[3][3]++; + break; + case 2: + gUnknown_02022C98->unk4A[3][3]++; + gUnknown_02022C98->unk4A[4][3]++; + break; + case 3: + gUnknown_02022C98->unk4A[4][3]++; + break; + case 4: + gUnknown_02022C98->unk4A[4][3]++; + gUnknown_02022C98->unk4A[0][3]++; + break; + case 5: + gUnknown_02022C98->unk4A[0][3]++; + break; + case 6: + gUnknown_02022C98->unk4A[0][3]++; + gUnknown_02022C98->unk4A[1][3]++; + break; + case 7: + gUnknown_02022C98->unk4A[1][3]++; + break; + case 8: + gUnknown_02022C98->unk4A[1][3]++; + gUnknown_02022C98->unk4A[2][3]++; + break; + case 9: + gUnknown_02022C98->unk4A[2][3]++; + break; + } + break; + case 4: + switch (arg1) + { + case 1: + gUnknown_02022C98->unk4A[2][3]++; + gUnknown_02022C98->unk4A[3][3]++; + break; + case 2: + gUnknown_02022C98->unk4A[3][3]++; + break; + case 3: + gUnknown_02022C98->unk4A[3][3]++; + gUnknown_02022C98->unk4A[0][3]++; + break; + case 4: + gUnknown_02022C98->unk4A[0][3]++; + break; + case 5: + gUnknown_02022C98->unk4A[0][3]++; + gUnknown_02022C98->unk4A[1][3]++; + break; + case 6: + gUnknown_02022C98->unk4A[1][3]++; + break; + case 7: + gUnknown_02022C98->unk4A[1][3]++; + gUnknown_02022C98->unk4A[2][3]++; + break; + case 8: + gUnknown_02022C98->unk4A[2][3]++; + break; + } + break; + case 3: + switch (arg1) + { + case 2: + gUnknown_02022C98->unk4A[1][3]++; + gUnknown_02022C98->unk4A[2][3]++; + break; + case 3: + gUnknown_02022C98->unk4A[2][3]++; + break; + case 4: + gUnknown_02022C98->unk4A[2][3]++; + gUnknown_02022C98->unk4A[0][3]++; + break; + case 5: + gUnknown_02022C98->unk4A[0][3]++; + break; + case 6: + gUnknown_02022C98->unk4A[0][3]++; + gUnknown_02022C98->unk4A[1][3]++; + break; + case 7: + gUnknown_02022C98->unk4A[1][3]++; + break; + } + break; + case 2: + switch (arg1) + { + case 3: + gUnknown_02022C98->unk4A[0][3]++; + gUnknown_02022C98->unk4A[1][3]++; + break; + case 4: + gUnknown_02022C98->unk4A[0][3]++; + break; + case 5: + gUnknown_02022C98->unk4A[0][3]++; + gUnknown_02022C98->unk4A[1][3]++; + break; + case 6: + gUnknown_02022C98->unk4A[1][3]++; + break; + } + break; + } + break; + } +} + +static void sub_8027234(bool32 arg0) +{ + if (gUnknown_02022C98->unk24 != 5) + return; + + if (arg0 == TRUE) + { + if (++gUnknown_02022C98->unk112 > gUnknown_02022C98->unk114) + gUnknown_02022C98->unk114 = gUnknown_02022C98->unk112; + if (gUnknown_02022C98->unk112 > 9999) + gUnknown_02022C98->unk112 = 9999; + } + else + { + if (gUnknown_02022C98->unk112 > gUnknown_02022C98->unk114) + gUnknown_02022C98->unk114 = gUnknown_02022C98->unk112; + gUnknown_02022C98->unk112 = 0; + } +} + +static void sub_80272A4(void) +{ + u8 i; + for (i = 0; i < gUnknown_02022C98->unk24; i++) + gUnknown_02022C98->unk4A[i][5] = gUnknown_02022C98->unk114; +} + +static void sub_80272E8(void) +{ + u8 i, j; + + for (i = 0; i < 5; i++) + { + for (j = 0; j < 11; j++) + gUnknown_02022C98->unk31A0[i].unk14.unkB[j] = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk0 = 0; + gUnknown_02022C98->unk31A0[i].unk2C.unk4 = 0; + gUnknown_02022C98->unk90[i] = 0; + gUnknown_02022C98->unk86[i] = 0; + gUnknown_02022C98->unk3308[i].unk0 = 0; + gUnknown_02022C98->unk3308[i].unk4 = 0; + gUnknown_02022C98->unk4A[i][0] = 0; + gUnknown_02022C98->unk4A[i][1] = 0; + gUnknown_02022C98->unk4A[i][2] = 0; + gUnknown_02022C98->unk4A[i][3] = 0; + gUnknown_02022C98->unk4A[i][4] = 0; + gUnknown_02022C98->unk4A[i][5] = 0; + } + gUnknown_02022C98->unk154 = 0; + gUnknown_02022C98->unk112 = 0; + gUnknown_02022C98->unk40 = 0; + sub_8026A88(); + sub_8026988(); +} + +static const s16 gUnknown_082F7B24[] = {10, 30, 50, 50}; + +static void sub_80273F0(void) +{ + u8 i, var = 0, var2 = 0; + + switch (gUnknown_02022C98->unk24) + { + case 4: var = 1; break; + case 5: var = 2; break; + } + + var2 = Random() % 10; + for (i = 0; i < 5; i++) + gUnknown_02022C98->unk4A[i][4] = gUnknown_082F7AA4[var][var2]; +} + +static u32 sub_802745C(u8 arg0) +{ + u32 sum = gUnknown_02022C98->unk4A[arg0][0] + + gUnknown_02022C98->unk4A[arg0][1] + + gUnknown_02022C98->unk4A[arg0][2]; + return min(sum, 9999); +} + +static void sub_802749C(void) +{ + u32 berriesPicked = Min(sub_802745C(gUnknown_02022C98->multiplayerId), 9999); + u32 score = Min(sub_80276C0(gUnknown_02022C98->multiplayerId), 999990); + + if (gSaveBlock2Ptr->berryPick.bestScore < score) + gSaveBlock2Ptr->berryPick.bestScore = score; + if (gSaveBlock2Ptr->berryPick.berriesPicked < berriesPicked) + gSaveBlock2Ptr->berryPick.berriesPicked = berriesPicked; + if (gSaveBlock2Ptr->berryPick.berriesPickedInRow < gUnknown_02022C98->unk114) + gSaveBlock2Ptr->berryPick.berriesPickedInRow = gUnknown_02022C98->unk114; +} + +static u8 sub_8027518(u8 arg0) +{ + u8 i, saved; + + saved = gUnknown_02022C98->unk98[3]; + for (i = 3; i != 0; i--) + gUnknown_02022C98->unk98[i] = gUnknown_02022C98->unk98[i - 1]; + gUnknown_02022C98->unk98[0] = arg0; + return saved; +} + +static void sub_8027554(void) +{ + if (gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] == 0) + { + if (gMain.newKeys & DPAD_UP) + { + gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 2; + gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; + PlaySE(SE_W204); + } + else if (gMain.newKeys & DPAD_LEFT) + { + gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 3; + gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; + PlaySE(SE_W204); + } + else if (gMain.newKeys & DPAD_RIGHT) + { + gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 1; + gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId] = 6; + PlaySE(SE_W204); + } + else + { + gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 0; + } + } + else + { + gUnknown_02022C98->unkB0[gUnknown_02022C98->multiplayerId]--; + } +} + +static void sub_8027608(void) +{ + gUnknown_02022C98->unk31A0[gUnknown_02022C98->multiplayerId].unk2C.unk0 = 0; +} + +static u16 sub_802762C(void) +{ + return gUnknown_02022C98->unk4A[gUnknown_02022C98->multiplayerId][4] + FIRST_BERRY_INDEX; +} + +static u8 sub_8027650(void) +{ + return gUnknown_02022C98->unk24; +} + +static u8 *sub_8027660(u8 id) +{ + if (gReceivedRemoteLinkPlayers) + return gLinkPlayers[id].name; + else + return gUnknown_02022C98->unk31A0[id].name; +} + +static u16 sub_80276A0(u8 arg0, u8 arg1) +{ + return gUnknown_02022C98->unk4A[arg0][arg1]; +} + +static u32 sub_80276C0(u8 arg0) +{ + u8 i; + u32 var, sum = 0; + + for (i = 0; i < 3; i++) + sum += gUnknown_02022C98->unk4A[arg0][i] * gUnknown_082F7B24[i]; + + var = gUnknown_02022C98->unk4A[arg0][3] * gUnknown_082F7B24[3]; + if (sum <= var) + return 0; + else + return sum - var; +} + +static u32 sub_8027748(void) +{ + u8 i, count = gUnknown_02022C98->unk24; + u32 maxVar = sub_80276C0(0); + + for (i = 1; i < count; i++) + { + u32 var = sub_80276C0(i); + if (var > maxVar) + maxVar = var; + } + return Min(maxVar, 999990); +} + +static u32 sub_802778C(u8 arg0) +{ + u8 i, count = gUnknown_02022C98->unk24; + u16 maxVar = gUnknown_02022C98->unk4A[0][arg0]; + + for (i = 0; i < count; i++) + { + u16 var = gUnknown_02022C98->unk4A[i][arg0]; + if (var > maxVar) + maxVar = var; + } + return maxVar; +} + +static u32 sub_80277D0(u8 arg0) +{ + u32 vals[5], temp; + s16 r6 = TRUE; + u8 i, count = gUnknown_02022C98->unk24; + + for (i = 0; i < count; i++) + vals[i] = temp = sub_80276C0(i); + + while (r6) + { + r6 = FALSE; + for (i = 0; i < count - 1; i++) + { + if (vals[i] < vals[i + 1]) + { + SWAP(vals[i], vals[i + 1], temp); + r6 = TRUE; + } + } + } + + return vals[arg0]; +} + +static u32 sub_802784C(void) +{ + u8 i, r10 = 0, r8 = 0, r9 = 0, count = gUnknown_02022C98->unk24; + + // Function called two times for some reason. + sub_8027748(); + if (sub_8027748() == 0) + { + for (i = 0; i < count; i++) + { + gUnknown_02022C98->unk3308[i].unk0 = 4; + gUnknown_02022C98->unk3308[i].unk4 = 0; + } + } + + for (i = 0; i < count; i++) + gUnknown_02022C98->unk3308[i].unk4 = Min(sub_80276C0(i), 999990); + + do + { + u32 r6 = sub_80277D0(r10); + u8 r3 = r8; + for (i = 0; i < count; i++) + { + if (r6 == gUnknown_02022C98->unk3308[i].unk4) + { + gUnknown_02022C98->unk3308[i].unk0 = r3; + r8++; + r9++; + } + } + r10 = r8; + } while (r9 < count); + + return 0; +} + +static void sub_802793C(struct DodrioSubstruct_3308 *dst, u8 id) +{ + *dst = gUnknown_02022C98->unk3308[id]; +} + +// Unused function +static u8 sub_802795C(u8 arg0) +{ + u8 i, ret = 0, count = gUnknown_02022C98->unk24; + u32 var, vars[5] = {0}; + + for (i = 0; i < count; i++) + vars[i] = sub_80276C0(i); + + var = vars[arg0]; + for (i = 0; i < 5; i++) + { + if (i != arg0 && var < vars[i]) + ret++; + } + + return ret; +} + +static u8 sub_80279C8(void) +{ + u8 multiplayerId = gUnknown_02022C98->multiplayerId; + u16 itemId = sub_802762C(); + + if (sub_80276C0(multiplayerId) != sub_8027748()) + return 3; + if (!CheckBagHasSpace(itemId, 1)) + return 2; + + AddBagItem(itemId, 1); + if (!CheckBagHasSpace(itemId, 1)) + return 1; + return 0; +} + +// Really? What next, u32 Add(u32 a)return a+1;? +static u32 IncrementWithLimit(u32 a, u32 max) +{ + if (a < max) + return a + 1; + else + return max; +} + +// Gamefreak pls, min(a, b) ((a) < (b) ? (a) : (b)) is a well-known macro +static u32 Min(u32 a, u32 b) +{ + if (a < b) + return a; + else + return b; +} + +static u8 sub_8027A48(u8 id) +{ + return gUnknown_02022C98->unk34[id]; +} + +void sub_8027A5C(void) +{ + int i; + for (i = 0; i < PARTY_SIZE; i++) + { + if (GetMonData(&gPlayerParty[i], MON_DATA_SANITY_HAS_SPECIES) + && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) == SPECIES_DODRIO) + { + gSpecialVar_Result = 1; + return; + } + } + + gSpecialVar_Result = 0; +} + +void sub_8027AAC(void) +{ + u8 taskId = CreateTask(sub_8027ACC, 0); + sub_8027ACC(taskId); +} + +// Data related to printing saved results. +static const struct WindowTemplate gUnknown_082F7B2C = +{ + .bg = 0, + .tilemapLeft = 5, + .tilemapTop = 1, + .width = 20, + .height = 11, + .paletteNum = 15, + .baseBlock = 0x1, +}; + +static const u8 *const gUnknown_082F7B34[3] = {gText_BerriesPicked, gText_BestScore, gText_BerriesInRowFivePlayers}; +static const u8 gUnknown_082F7B40[] = {4, 7, 4}; + +ALIGNED(4) +static const u8 gUnknown_082F7B44[][2] = {{25}, {41}, {57}}; +static const u8 gUnknown_082F7B4A[][2] = {{25}, {41}, {73}}; + +static void sub_8027ACC(u8 taskId) +{ + struct WindowTemplate window; + s32 i, width, widthCurr; + s16 *data = gTasks[taskId].data; + + switch (data[0]) + { + case 0: + window = gUnknown_082F7B2C; + width = GetStringWidth(1, gText_BerryPickingRecords, 0); + for (i = 0; i < ARRAY_COUNT(gUnknown_082F7B34); i++) + { + widthCurr = GetStringWidth(1, gUnknown_082F7B34[i], 0) + 50; + if (widthCurr > width) + width = widthCurr; + } + width = (width + 7) / 8; + if (width & 1) + width++; + window.tilemapLeft = (30 - width) / 2; + window.width = width; + data[1] = AddWindow(&window); + sub_8027BEC(data[1], width); + CopyWindowToVram(data[1], 3); + data[0]++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + data[0]++; + break; + case 2: + if (gMain.newKeys & (A_BUTTON | B_BUTTON)) + { + rbox_fill_rectangle(data[1]); + CopyWindowToVram(data[1], 1); + data[0]++; + } + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + RemoveWindow(data[1]); + DestroyTask(taskId); + EnableBothScriptContexts(); + } + break; + } +} + +static void sub_8027BEC(u8 windowId, s32 width) +{ + s32 i, x, numWidth; + s32 results[3]; + results[0] = gSaveBlock2Ptr->berryPick.berriesPicked; + results[1] = gSaveBlock2Ptr->berryPick.bestScore; + results[2] = gSaveBlock2Ptr->berryPick.berriesPickedInRow; + + LoadUserWindowBorderGfx_(windowId, 0x21D, 0xD0); + DrawTextBorderOuter(windowId, 0x21D, 0xD); + FillWindowPixelBuffer(windowId, PIXEL_FILL(1)); + AddTextPrinterParameterized(windowId, 1, gText_BerryPickingRecords, GetStringCenterAlignXOffset(1, gText_BerryPickingRecords, width * 8), 1, TEXT_SPEED_FF, NULL); + for (i = 0; i < 3; i++) + { + ConvertIntToDecimalStringN(gStringVar1, results[i], STR_CONV_MODE_LEFT_ALIGN, gUnknown_082F7B40[i]); + numWidth = GetStringWidth(1, gStringVar1, -1); + AddTextPrinterParameterized(windowId, 1, gUnknown_082F7B34[i], 0, gUnknown_082F7B44[i][0], TEXT_SPEED_FF, NULL); + x = (width * 8) - numWidth; + AddTextPrinterParameterized(windowId, 1, gStringVar1, x, gUnknown_082F7B4A[i][0], TEXT_SPEED_FF, NULL); + } + PutWindowTilemap(windowId); +} + +// Debug functions? +static const u16 gUnknown_082F7B50[][4] = +{ + {9999, 0, 90, 9999}, + {9999, 9999, 70, 9999}, + {9999, 0, 9999, 0}, + {9999, 9999, 60, 0}, + {9999, 9999, 9999, 0}, +}; + +static const u8 gUnknown_082F7B78[] = _("あいうえおかき"); +static const u8 gUnknown_082F7B80[] = _("ABCDEFG"); +static const u8 gUnknown_082F7B88[] = _("0123456"); + +static const u8 *const gUnknown_082F7B90[] = +{ + gUnknown_082F7B78, + gUnknown_082F7B78, + gUnknown_082F7B78, + gUnknown_082F7B80, + gUnknown_082F7B88 +}; + +static void sub_8027D20(void) +{ + gUnknown_02022C98->unk24 = GetLinkPlayerCount(); +} + +static void sub_8027D38(void) +{ + u8 i, playerId; + + for (playerId = gUnknown_02022C98->unk24; playerId < 5; playerId++) + StringCopy(gLinkPlayers[playerId].name, gUnknown_082F7B90[playerId]); + + gUnknown_02022C98->unk24 = 5; + for (i = 0; i < 4; i++) + { + for (playerId = 0; playerId < gUnknown_02022C98->unk24; playerId++) + gUnknown_02022C98->unk4A[playerId][i] = gUnknown_082F7B50[playerId][i]; + } +} + +struct UnkPacket1 +{ + u8 id; + u8 ALIGNED(4) unk4; +}; + +static void sub_8027DD0(u32 arg0) +{ + struct UnkPacket1 packet; + packet.id = 1; + packet.unk4 = arg0; + sub_800FE50(&packet); +} + +static u32 sub_8027DFC(u32 arg0) +{ + struct UnkPacket1 *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00) + return 0; + + packet = (void *)&gRecvCmds[arg0][1]; + if (packet->id == 1) + return packet->unk4; + + return 0; +} + +struct UnkPacket2 +{ + u8 id; + u8 unk1_0:4; + u8 unk1_1:4; + u8 unk2_0:4; + u8 unk2_1:4; + u8 unk3_0:4; + u8 unk3_1:4; + u8 unk4_0:4; + u8 unk4_1:4; + u8 unk5_0:4; + u8 unk5_1:4; + u8 unk6_0:2; + u8 unk6_1:2; + u8 unk6_2:2; + u8 unk6_3:2; + u8 unk7_0:2; + u8 unk7_1:2; + u8 unk7_2:2; + u8 unk7_3:2; + u8 unk8_0:2; + u8 unk8_1:2; + u8 unk8_2:2; + u8 unk8_3:2; + u8 unk9_0:2; + u8 unk9_1:2; + u8 unk9_2:2; + u8 unk9_3:1; + u8 unk9_4:1; + u8 unkA_0:1; + u8 unkA_1:1; + u8 unkA_2:1; + u8 unkA_3:5; + u8 unkB_0:1; + u8 unkB_1:1; + u8 unkB_2:1; + u8 unkB_3:1; + u8 unkB_4:1; + u8 unkB_5:1; + u8 unkB_6:1; +}; + +#ifdef NONMATCHING +static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8) +{ + struct UnkPacket2 packet; + struct DodrioSubstruct_31A0_14 *ptr = &arg0->unk14; + + packet.id = 2; + packet.unk1_0 = ptr->unkB[0]; + packet.unk1_1 = ptr->unkB[1]; + packet.unk2_0 = ptr->unkB[2]; + packet.unk2_1 = ptr->unkB[3]; + packet.unk3_0 = ptr->unkB[4]; + packet.unk3_1 = ptr->unkB[5]; + packet.unk4_0 = ptr->unkB[6]; + packet.unk4_1 = ptr->unkB[7]; + packet.unk5_0 = ptr->unkB[8]; + packet.unk5_1 = ptr->unkB[9]; + + packet.unk6_0 = ptr->unk0[0]; + packet.unk6_1 = ptr->unk0[1]; + packet.unk6_2 = ptr->unk0[2]; + packet.unk6_3 = ptr->unk0[3]; + packet.unk7_0 = ptr->unk0[4]; + packet.unk7_1 = ptr->unk0[5]; + packet.unk7_2 = ptr->unk0[6]; + packet.unk7_3 = ptr->unk0[7]; + packet.unk8_0 = ptr->unk0[8]; + packet.unk8_1 = ptr->unk0[9]; + + packet.unk8_2 = arg1->unk0; + packet.unk8_3 = arg2->unk0; + packet.unk9_0 = arg3->unk0; + packet.unk9_1 = arg4->unk0; + packet.unk9_2 = arg5->unk0; + + packet.unk9_3 = arg1->unk4; + packet.unk9_4 = arg2->unk4; + packet.unkA_0 = arg3->unk4; + packet.unkA_1 = arg4->unk4; + packet.unkA_2 = arg5->unk4; + + packet.unkB_2 = arg1->unk8; + packet.unkB_3 = arg2->unk8; + packet.unkB_4 = arg3->unk8; + packet.unkB_5 = arg4->unk8; + packet.unkB_6 = arg5->unk8; + + packet.unkA_3 = arg6; + packet.unkB_1 = arg7; + packet.unkB_0 = arg8; + sub_800FE50(&packet); +} +#else +NAKED +static void sub_8027E30(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8) +{ + asm_unified(" push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x20\n\ + ldr r4, [sp, 0x48]\n\ + lsls r4, 24\n\ + str r4, [sp, 0x1C]\n\ + movs r4, 0x14\n\ + adds r4, r0\n\ + mov r9, r4\n\ + mov r5, sp\n\ + movs r4, 0x2\n\ + strb r4, [r5]\n\ + mov r10, sp\n\ + mov r5, r9\n\ + ldrb r4, [r5, 0xB]\n\ + movs r7, 0xF\n\ + adds r5, r7, 0\n\ + ands r5, r4\n\ + mov r6, r10\n\ + ldrb r6, [r6, 0x1]\n\ + mov r8, r6\n\ + movs r4, 0x10\n\ + negs r4, r4\n\ + mov r6, r8\n\ + ands r4, r6\n\ + orrs r4, r5\n\ + mov r5, r10\n\ + strb r4, [r5, 0x1]\n\ + mov r8, sp\n\ + mov r6, r9\n\ + ldrb r5, [r6, 0xC]\n\ + lsls r5, 4\n\ + ands r4, r7\n\ + orrs r4, r5\n\ + mov r5, r8\n\ + strb r4, [r5, 0x1]\n\ + ldrb r5, [r6, 0xD]\n\ + movs r6, 0xF\n\ + ands r5, r6\n\ + mov r4, r10\n\ + ldrb r4, [r4, 0x2]\n\ + mov r8, r4\n\ + movs r4, 0x10\n\ + negs r4, r4\n\ + mov r6, r8\n\ + ands r4, r6\n\ + orrs r4, r5\n\ + mov r5, r10\n\ + strb r4, [r5, 0x2]\n\ + mov r8, sp\n\ + mov r6, r9\n\ + ldrb r5, [r6, 0xE]\n\ + lsls r5, 4\n\ + ands r4, r7\n\ + orrs r4, r5\n\ + mov r5, r8\n\ + strb r4, [r5, 0x2]\n\ + ldrb r5, [r6, 0xF]\n\ + movs r6, 0xF\n\ + ands r5, r6\n\ + mov r4, r10\n\ + ldrb r4, [r4, 0x3]\n\ + mov r8, r4\n\ + movs r4, 0x10\n\ + negs r4, r4\n\ + mov r6, r8\n\ + ands r4, r6\n\ + orrs r4, r5\n\ + mov r5, r10\n\ + strb r4, [r5, 0x3]\n\ + mov r8, sp\n\ + mov r6, r9\n\ + ldrb r5, [r6, 0x10]\n\ + lsls r5, 4\n\ + ands r4, r7\n\ + orrs r4, r5\n\ + mov r5, r8\n\ + strb r4, [r5, 0x3]\n\ + ldrb r5, [r6, 0x11]\n\ + movs r6, 0xF\n\ + ands r5, r6\n\ + mov r4, r10\n\ + ldrb r4, [r4, 0x4]\n\ + mov r8, r4\n\ + movs r4, 0x10\n\ + negs r4, r4\n\ + mov r6, r8\n\ + ands r4, r6\n\ + orrs r4, r5\n\ + mov r5, r10\n\ + strb r4, [r5, 0x4]\n\ + mov r8, sp\n\ + mov r6, r9\n\ + ldrb r5, [r6, 0x12]\n\ + lsls r5, 4\n\ + ands r4, r7\n\ + orrs r4, r5\n\ + mov r5, r8\n\ + strb r4, [r5, 0x4]\n\ + ldrb r4, [r6, 0x13]\n\ + movs r6, 0xF\n\ + ands r4, r6\n\ + mov r6, r8\n\ + ldrb r5, [r6, 0x5]\n\ + movs r6, 0x10\n\ + negs r6, r6\n\ + ands r6, r5\n\ + orrs r6, r4\n\ + str r6, [sp, 0xC]\n\ + mov r4, r8\n\ + strb r6, [r4, 0x5]\n\ + mov r5, sp\n\ + mov r6, r9\n\ + ldrb r4, [r6, 0x14]\n\ + lsls r4, 4\n\ + ldr r6, [sp, 0xC]\n\ + ands r6, r7\n\ + orrs r6, r4\n\ + strb r6, [r5, 0x5]\n\ + mov r7, sp\n\ + movs r4, 0x3\n\ + mov r8, r4\n\ + ldrb r0, [r0, 0x14]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + ldrb r5, [r7, 0x6]\n\ + movs r6, 0x4\n\ + negs r6, r6\n\ + mov r10, r6\n\ + mov r4, r10\n\ + ands r4, r5\n\ + orrs r4, r0\n\ + strb r4, [r7, 0x6]\n\ + mov r5, r9\n\ + ldrb r0, [r5, 0x1]\n\ + mov r6, r8\n\ + ands r0, r6\n\ + lsls r0, 2\n\ + movs r5, 0xD\n\ + negs r5, r5\n\ + ands r5, r4\n\ + orrs r5, r0\n\ + strb r5, [r7, 0x6]\n\ + mov r0, r9\n\ + ldrb r4, [r0, 0x2]\n\ + ands r4, r6\n\ + lsls r4, 4\n\ + movs r0, 0x31\n\ + negs r0, r0\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + strb r0, [r7, 0x6]\n\ + mov r5, sp\n\ + mov r6, r9\n\ + ldrb r4, [r6, 0x3]\n\ + lsls r4, 6\n\ + movs r6, 0x3F\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strb r0, [r5, 0x6]\n\ + mov r4, r9\n\ + ldrb r0, [r4, 0x4]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + ldrb r5, [r7, 0x7]\n\ + mov r4, r10\n\ + ands r4, r5\n\ + orrs r4, r0\n\ + strb r4, [r7, 0x7]\n\ + mov r6, r9\n\ + ldrb r0, [r6, 0x5]\n\ + mov r5, r8\n\ + ands r0, r5\n\ + lsls r0, 2\n\ + movs r5, 0xD\n\ + negs r5, r5\n\ + ands r5, r4\n\ + orrs r5, r0\n\ + strb r5, [r7, 0x7]\n\ + ldrb r4, [r6, 0x6]\n\ + mov r6, r8\n\ + ands r4, r6\n\ + lsls r4, 4\n\ + movs r0, 0x31\n\ + negs r0, r0\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + strb r0, [r7, 0x7]\n\ + mov r5, sp\n\ + mov r6, r9\n\ + ldrb r4, [r6, 0x7]\n\ + lsls r4, 6\n\ + movs r6, 0x3F\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strb r0, [r5, 0x7]\n\ + mov r8, sp\n\ + mov r0, r9\n\ + ldrb r4, [r0, 0x8]\n\ + movs r7, 0x3\n\ + adds r0, r7, 0\n\ + ands r0, r4\n\ + mov r4, r8\n\ + ldrb r5, [r4, 0x8]\n\ + mov r4, r10\n\ + ands r4, r5\n\ + orrs r4, r0\n\ + mov r5, r8\n\ + strb r4, [r5, 0x8]\n\ + mov r6, r9\n\ + ldrb r5, [r6, 0x9]\n\ + adds r0, r7, 0\n\ + ands r0, r5\n\ + lsls r0, 2\n\ + movs r5, 0xD\n\ + negs r5, r5\n\ + ands r5, r4\n\ + orrs r5, r0\n\ + mov r0, r8\n\ + strb r5, [r0, 0x8]\n\ + ldrb r0, [r1]\n\ + adds r4, r7, 0\n\ + ands r4, r0\n\ + lsls r4, 4\n\ + movs r0, 0x31\n\ + negs r0, r0\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + mov r4, r8\n\ + strb r0, [r4, 0x8]\n\ + mov r5, sp\n\ + ldrb r4, [r2]\n\ + lsls r4, 6\n\ + movs r6, 0x3F\n\ + ands r0, r6\n\ + orrs r0, r4\n\ + strb r0, [r5, 0x8]\n\ + ldrb r4, [r3]\n\ + adds r0, r7, 0\n\ + ands r0, r4\n\ + ldrb r4, [r5, 0x9]\n\ + mov r6, r10\n\ + ands r6, r4\n\ + orrs r6, r0\n\ + mov r10, r6\n\ + strb r6, [r5, 0x9]\n\ + ldr r0, [sp, 0x40]\n\ + ldrb r4, [r0]\n\ + adds r0, r7, 0\n\ + ands r0, r4\n\ + lsls r0, 2\n\ + movs r4, 0xD\n\ + negs r4, r4\n\ + ands r6, r4\n\ + orrs r6, r0\n\ + str r6, [sp, 0x10]\n\ + strb r6, [r5, 0x9]\n\ + mov r4, sp\n\ + ldr r5, [sp, 0x44]\n\ + ldrb r0, [r5]\n\ + adds r6, r7, 0\n\ + ands r6, r0\n\ + lsls r0, r6, 4\n\ + subs r7, 0x34\n\ + ldr r5, [sp, 0x10]\n\ + ands r7, r5\n\ + orrs r7, r0\n\ + strb r7, [r4, 0x9]\n\ + mov r5, sp\n\ + ldrb r0, [r1, 0x4]\n\ + movs r6, 0x1\n\ + mov r12, r6\n\ + mov r4, r12\n\ + ands r4, r0\n\ + lsls r4, 6\n\ + movs r0, 0x41\n\ + negs r0, r0\n\ + mov r10, r0\n\ + ands r0, r7\n\ + orrs r0, r4\n\ + strb r0, [r5, 0x9]\n\ + ldrb r4, [r2, 0x4]\n\ + lsls r4, 7\n\ + movs r5, 0x7F\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + mov r4, r8\n\ + strb r0, [r4, 0x9]\n\ + ldrb r4, [r3, 0x4]\n\ + mov r0, r12\n\ + ands r0, r4\n\ + mov r5, r8\n\ + ldrb r4, [r5, 0xA]\n\ + movs r7, 0x2\n\ + negs r7, r7\n\ + adds r5, r7, 0\n\ + ands r5, r4\n\ + orrs r5, r0\n\ + mov r6, r8\n\ + strb r5, [r6, 0xA]\n\ + mov r9, sp\n\ + ldr r4, [sp, 0x40]\n\ + ldrb r0, [r4, 0x4]\n\ + mov r4, r12\n\ + ands r4, r0\n\ + lsls r4, 1\n\ + movs r6, 0x3\n\ + negs r6, r6\n\ + mov r8, r6\n\ + mov r0, r8\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + mov r4, r9\n\ + strb r0, [r4, 0xA]\n\ + ldr r6, [sp, 0x44]\n\ + ldrb r5, [r6, 0x4]\n\ + mov r4, r12\n\ + ands r4, r5\n\ + lsls r4, 2\n\ + movs r5, 0x5\n\ + negs r5, r5\n\ + ands r0, r5\n\ + orrs r0, r4\n\ + mov r4, r9\n\ + strb r0, [r4, 0xA]\n\ + mov r4, sp\n\ + ldrb r1, [r1, 0x8]\n\ + mov r0, r12\n\ + ands r0, r1\n\ + lsls r0, 2\n\ + ldrb r1, [r4, 0xB]\n\ + ands r5, r1\n\ + orrs r5, r0\n\ + strb r5, [r4, 0xB]\n\ + ldrb r1, [r2, 0x8]\n\ + mov r0, r12\n\ + ands r0, r1\n\ + lsls r0, 3\n\ + movs r1, 0x9\n\ + negs r1, r1\n\ + ands r1, r5\n\ + orrs r1, r0\n\ + strb r1, [r4, 0xB]\n\ + ldrb r2, [r3, 0x8]\n\ + mov r0, r12\n\ + ands r0, r2\n\ + lsls r0, 4\n\ + movs r2, 0x11\n\ + negs r2, r2\n\ + ands r2, r1\n\ + orrs r2, r0\n\ + strb r2, [r4, 0xB]\n\ + mov r3, sp\n\ + ldr r5, [sp, 0x40]\n\ + ldrb r0, [r5, 0x8]\n\ + mov r1, r12\n\ + ands r1, r0\n\ + lsls r1, 5\n\ + movs r0, 0x21\n\ + negs r0, r0\n\ + ands r0, r2\n\ + orrs r0, r1\n\ + strb r0, [r3, 0xB]\n\ + mov r2, sp\n\ + ldrb r1, [r6, 0x8]\n\ + mov r6, r12\n\ + ands r6, r1\n\ + lsls r1, r6, 6\n\ + mov r3, r10\n\ + ands r0, r3\n\ + orrs r0, r1\n\ + strb r0, [r2, 0xB]\n\ + ldr r4, [sp, 0x1C]\n\ + lsrs r3, r4, 21\n\ + ldrb r1, [r2, 0xA]\n\ + movs r0, 0x7\n\ + ands r0, r1\n\ + orrs r0, r3\n\ + strb r0, [r2, 0xA]\n\ + mov r1, sp\n\ + ldr r5, [sp, 0x4C]\n\ + movs r6, 0x1\n\ + ands r5, r6\n\ + lsls r2, r5, 1\n\ + ldrb r0, [r1, 0xB]\n\ + mov r3, r8\n\ + ands r3, r0\n\ + orrs r3, r2\n\ + mov r8, r3\n\ + strb r3, [r1, 0xB]\n\ + mov r0, sp\n\ + ldr r4, [sp, 0x50]\n\ + ands r4, r6\n\ + mov r5, r8\n\ + ands r5, r7\n\ + orrs r5, r4\n\ + strb r5, [r0, 0xB]\n\ + bl sub_800FE50\n\ + add sp, 0x20\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ +"); +} +#endif + +static u32 sub_8028164(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8) +{ + struct UnkPacket2 *packet; + struct DodrioSubstruct_31A0_14 *ptr = &arg0->unk14; + + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00) + return 0; + + packet = (void *)&gRecvCmds[0][1]; + if (packet->id == 2) + { + ptr->unkB[0] = packet->unk1_0; + ptr->unkB[1] = packet->unk1_1; + ptr->unkB[2] = packet->unk2_0; + ptr->unkB[3] = packet->unk2_1; + ptr->unkB[4] = packet->unk3_0; + ptr->unkB[5] = packet->unk3_1; + ptr->unkB[6] = packet->unk4_0; + ptr->unkB[7] = packet->unk4_1; + ptr->unkB[8] = packet->unk5_0; + ptr->unkB[9] = packet->unk5_1; + ptr->unkB[10] = packet->unk1_0; + + ptr->unk0[0] = packet->unk6_0; + ptr->unk0[1] = packet->unk6_1; + ptr->unk0[2] = packet->unk6_2; + ptr->unk0[3] = packet->unk6_3; + ptr->unk0[4] = packet->unk7_0; + ptr->unk0[5] = packet->unk7_1; + ptr->unk0[6] = packet->unk7_2; + ptr->unk0[7] = packet->unk7_3; + ptr->unk0[8] = packet->unk8_0; + ptr->unk0[9] = packet->unk8_1; + ptr->unk0[10] = packet->unk6_0; + + arg1->unk0 = packet->unk8_2; + arg1->unk4 = packet->unk9_3; + arg1->unk8 = packet->unkB_2; + + arg2->unk0 = packet->unk8_3; + arg2->unk4 = packet->unk9_4; + arg2->unk8 = packet->unkB_3; + + arg3->unk0 = packet->unk9_0; + arg3->unk4 = packet->unkA_0; + arg3->unk8 = packet->unkB_4; + + arg4->unk0 = packet->unk9_1; + arg4->unk4 = packet->unkA_1; + arg4->unk8 = packet->unkB_5; + + arg5->unk0 = packet->unk9_2; + arg5->unk4 = packet->unkA_2; + arg5->unk8 = packet->unkB_6; + + *arg6 = packet->unkA_3; + *arg7 = packet->unkB_1; + *arg8 = packet->unkB_0; + return 1; + } + + return 0; +} + +struct UnkPacket3 +{ + u8 id; + u8 ALIGNED(4) unk4; +}; + +static void sub_80282EC(u8 arg0) +{ + struct UnkPacket3 packet; + packet.id = 3; + packet.unk4 = arg0; + sub_800FE50(&packet); +} + +static u32 sub_8028318(u32 arg0, u8 *arg1) +{ + struct UnkPacket3 *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00) + return 0; + + packet = (void *)&gRecvCmds[arg0][1]; + if (packet->id == 3) + { + *arg1 = packet->unk4; + return 1; + } + + return 0; +} + +struct UnkPacket4 +{ + u8 id; + u32 unk4; +}; + +static void sub_8028350(u32 arg0) +{ + struct UnkPacket4 packet; + packet.id = 4; + packet.unk4 = arg0; + sub_800FE50(&packet); +} + +static u32 sub_8028374(u32 arg0) +{ + struct UnkPacket4 *packet; + + if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00) + return 0; + + packet = (void *)&gRecvCmds[arg0][1]; + if (packet->id == 4) + return packet->unk4; + + return 0; +} + +// Large chunk of data +static const struct BgTemplate gUnknown_082F7BA4[] = +{ + { + .bg = 0, + .charBaseIndex = 0, + .mapBaseIndex = 30, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 2, + .mapBaseIndex = 12, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 14, + .screenSize = 1, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 31, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, +}; + +// Unknown unreferenced data, feel free to remove. +static const u32 sUnused[] = {255, 0}; + +static const struct WindowTemplate gUnknown_082F7BBC[] = +{ + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 1, + .width = 28, + .height = 2, + .paletteNum = 13, + .baseBlock = 0x13, + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 5, + .width = 28, + .height = 14, + .paletteNum = 13, + .baseBlock = 0x4B, + } +}; +static const struct WindowTemplate gUnknown_082F7BCC = +{ + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 5, + .width = 28, + .height = 7, + .paletteNum = 13, + .baseBlock = 0x4B, +}; +static const struct WindowTemplate gUnknown_082F7BD4[] = +{ + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 8, + .width = 19, + .height = 3, + .paletteNum = 13, + .baseBlock = 0x13, + }, + { + .bg = 0, + .tilemapLeft = 22, + .tilemapTop = 7, + .width = 6, + .height = 4, + .paletteNum = 13, + .baseBlock = 0x4C, + } +}; +static const struct WindowTemplate gUnknown_082F7BE4 = +{ + .bg = 0, + .tilemapLeft = 4, + .tilemapTop = 6, + .width = 22, + .height = 5, + .paletteNum = 13, + .baseBlock = 0x13, +}; +static const struct WindowTemplate gUnknown_082F7BEC = +{ + .bg = 0, + .tilemapLeft = 5, + .tilemapTop = 8, + .width = 19, + .height = 3, + .paletteNum = 13, + .baseBlock = 0x13, +}; + +// This is an unused copy of the tables from the top of the file. Feel free to remove. +static const u8 sDuplicateArray[] = +{ + 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0, 0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 2, 9, + 0, 0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0, 0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0, 0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0, 0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0, 0, 7, + 8, 1, 2, 3, 4, 5, 6, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 2, 3, 4, 5, 6, 7, 8, 9, 0, + 1, 2, 4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4, 6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6, 8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 5, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6, 7, 2, 2, 3, 4, 0, 0, 0, 0, 0, 0, + 3, 4, 5, 5, 6, 7, 7, 8, 1, 1, 2, 3, 0, 0, 0, 4, 5, 6, 6, 7, 8, 8, 9, 0, 0, 1, 2, 2, 3, 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 1, + 2, 1, 2, 3, 2, 3, 0, 0, 0, 0, 4, 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 0, 0, 0, 0, 9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9, 9, + 9, 9, 0, 0, 1, 1, 0, 9, 9, 9, 9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9, 9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9, 3, 3, 4, 4, 0, 0, 1, 1, + 2, 2, 3, 5, 0, 0, 0, 0, 4, 6, 0, 0, 0, 3, 5, 7, 0, 0, 2, 4, 6, 8, 0, 1, 3, 5, 6, 9 +}; + +static const u16 gDodrioBerryBgPal1[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal", + "graphics/link_games/dodrioberry_bg2.gbapal"); +static const u16 gDodrioBerryPkmnPal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal"); +static const u16 gDodrioBerryShinyPal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal"); +static const u16 gDodrioBerryStatusPal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal"); +static const u16 gDodrioBerrySpritesPal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal"); +static const u32 gDodrioBerrySpritesGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz"); +static const u16 gDodrioBerryPlatformPal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal"); +static const u32 gDodrioBerryBgGfx1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz"); +static const u32 gDodrioBerryBgGfx2[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz"); +static const u32 gDodrioBerryStatusGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz"); +static const u32 gDodrioBerryPlatformGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz"); +static const u32 gDodrioBerryPkmnGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz"); +static const u32 gDodrioBerryBgTilemap1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz"); +static const u32 gDodrioBerryBgTilemap2Right[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz"); +static const u32 gDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz"); + +static const struct OamData sOamData_82FB1E0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_82FB1E8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 0, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_82FB1F0 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 0, + .x = 0, + .matrixNum = 0, + .size = 1, + .tileNum = 0, + .priority = 2, + .paletteNum = 0, + .affineParam = 0 +}; + +static const struct OamData sOamData_82FB1F8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .mosaic = 0, + .bpp = 0, + .shape = 1, + .x = 0, + .matrixNum = 0, + .size = 3, + .tileNum = 0, + .priority = 3, + .paletteNum = 0, + .affineParam = 0 +}; + +static const union AnimCmd sSpriteAnim_82FB200[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB208[] = +{ + ANIMCMD_FRAME(64, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB210[] = +{ + ANIMCMD_FRAME(128, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB218[] = +{ + ANIMCMD_FRAME(192, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB220[] = +{ + ANIMCMD_FRAME(256, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_82FB228[] = +{ + sSpriteAnim_82FB200, + sSpriteAnim_82FB208, + sSpriteAnim_82FB210, + sSpriteAnim_82FB218, + sSpriteAnim_82FB220 +}; + +static const union AnimCmd sSpriteAnim_82FB23C[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB244[] = +{ + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB24C[] = +{ + ANIMCMD_FRAME(8, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_82FB254[] = +{ + sSpriteAnim_82FB23C, + sSpriteAnim_82FB244, + sSpriteAnim_82FB24C +}; + +static const union AnimCmd sSpriteAnim_82FB260[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB268[] = +{ + ANIMCMD_FRAME(4, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB270[] = +{ + ANIMCMD_FRAME(8, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB278[] = +{ + ANIMCMD_FRAME(12, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB280[] = +{ + ANIMCMD_FRAME(16, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB288[] = +{ + ANIMCMD_FRAME(20, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB290[] = +{ + ANIMCMD_FRAME(24, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB298[] = +{ + ANIMCMD_FRAME(28, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd sSpriteAnim_82FB2A0[] = +{ + ANIMCMD_FRAME(32, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_82FB2A8[] = +{ + sSpriteAnim_82FB260, + sSpriteAnim_82FB268, + sSpriteAnim_82FB270, + sSpriteAnim_82FB278, + sSpriteAnim_82FB280, + sSpriteAnim_82FB288, + sSpriteAnim_82FB290, + sSpriteAnim_82FB298, + sSpriteAnim_82FB2A0 +}; + +static const union AnimCmd sSpriteAnim_82FB2CC[] = +{ + ANIMCMD_FRAME(0, 20), + ANIMCMD_JUMP(0) +}; + +static const union AnimCmd *const sSpriteAnimTable_82FB2D4[] = +{ + sSpriteAnim_82FB2CC +}; + +static void sub_80283A8(void) +{ + void *ptr = AllocZeroed(0x3000); + struct SpritePalette pal1 = {gDodrioBerryPkmnPal, 0}; + struct SpritePalette pal2 = {gDodrioBerryShinyPal, 1}; + + LZ77UnCompWram(gDodrioBerryPkmnGfx, ptr); + // This check should be one line up. + if (ptr != NULL) + { + struct SpriteSheet sheet = {ptr, 0x3000, 0}; + LoadSpriteSheet(&sheet); + Free(ptr); + } + LoadSpritePalette(&pal1); + LoadSpritePalette(&pal2); +} + +static void sub_8028408(struct DodrioSubstruct_318C *arg0, u8 arg1, u8 id, u8 arg3) +{ + struct SpriteTemplate sprTemplate = + { + .tileTag = 0, + .paletteTag = arg0->isShiny, + .oam = &sOamData_82FB1E0, + .anims = sSpriteAnimTable_82FB228, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_80284A8, + }; + + gUnknown_02022C9C[id] = AllocZeroed(4); + *gUnknown_02022C9C[id] = CreateSprite(&sprTemplate, sub_8028F14(arg1, arg3), 136, 3); + sub_8028654(TRUE, id); +} + +static void sub_80284A8(struct Sprite *sprite) +{ + switch (sprite->data[0]) + { + case 0: + break; + case 1: + sub_802853C(sprite); + break; + case 2: + sub_80285AC(sprite); + break; + } +} + +static void sub_80284CC(u8 unused) +{ + struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[GetMultiplayerId()]]; + sprite->data[0] = 1; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 0; +} + +static void sub_8028504(u8 unused) +{ + struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[GetMultiplayerId()]]; + sprite->data[0] = 2; + sprite->data[1] = 0; + sprite->data[2] = 0; + sprite->data[3] = 0; + sprite->data[4] = 0; +} + +static u32 sub_802853C(struct Sprite *sprite) +{ + s8 var; + u8 mod = (++sprite->data[1] / 2) % 4; + + if (sprite->data[1] >= 3) + { + switch (mod) + { + default: + var = 1; + break; + case 1: + case 2: + var = -1; + break; + } + + sprite->pos1.x += var; + if (++sprite->data[1] >= 40) + { + sprite->data[0] = 0; + sprite->pos1.x = sub_8028F14(0, sub_8027650()); + } + } + + return 0; +} + +static u32 sub_80285AC(struct Sprite *sprite) +{ + u8 mod = (++sprite->data[1] / 13) % 4; + + if (sprite->data[1] % 13 == 0 && mod != 0) + PlaySE(SE_W204); + if (sprite->data[1] >= 104) + { + sprite->data[0] = 0; + mod = 0; + } + sub_80286B4(GetMultiplayerId(), mod); + return 0; +} + +static void sub_8028614(u8 count) +{ + u8 i; + for (i = 0; i < count; i++) + { + struct Sprite *sprite = &gSprites[*gUnknown_02022C9C[i]]; + if (sprite != NULL) + DestroySpriteAndFreeResources(sprite); + // Memory should be freed here but is not. + } +} + +static void sub_8028654(bool8 invisible, u8 id) +{ + gSprites[*gUnknown_02022C9C[id]].invisible = invisible; +} + +static void sub_802868C(bool8 invisible, u8 count) +{ + u8 i; + for (i = 0; i < count; i++) + sub_8028654(invisible, i); +} + +static void sub_80286B4(u8 id, u8 frameNum) +{ + StartSpriteAnim(&gSprites[*gUnknown_02022C9C[id]], frameNum); +} + +static void nullsub_15(struct Sprite *sprite) +{ + +} + +static void sub_80286E4(void) +{ + u8 i; + for (i = 0; i < 10; i++) + { + struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; + sprite->pos1.x = (i * 16) + 48; + sprite->pos1.y = -8 - (i * 8); + gUnknown_02022CF4->unkC[i] = 0; + } +} + +static void sub_8028734(void) +{ + u8 i; + void *ptr = AllocZeroed(0x180); + struct SpritePalette spPal = {gDodrioBerryStatusPal, 2}; + + LZ77UnCompWram(gDodrioBerryStatusGfx, ptr); + // This check should be one line up. + if (ptr != NULL) + { + struct SpriteSheet spSheet = {ptr, 0x180, 1}; + struct SpriteTemplate spTemplate = + { + .tileTag = 1, + .paletteTag = 2, + .oam = &sOamData_82FB1E8, + .anims = sSpriteAnimTable_82FB254, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_15, + }; + + gUnknown_02022CF4 = AllocZeroed(sizeof(*gUnknown_02022CF4)); + LoadSpriteSheet(&spSheet); + LoadSpritePalette(&spPal); + for (i = 0; i < 10; i++) + gUnknown_02022CF4->unk2A[i] = CreateSprite(&spTemplate, (i * 16) + 48, -8 - (i * 8), 0); + } + + Free(ptr); +} + +static void sub_80287E4(void) +{ + u8 i; + for (i = 0; i < 10; i++) + { + struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; + if (sprite != NULL) + DestroySpriteAndFreeResources(sprite); + } + FREE_AND_SET_NULL(gUnknown_02022CF4); +} + +static bool32 sub_8028828(void) +{ + u8 i; + bool32 r3 = FALSE; + for (i = 0; i < 10; i++) + { + struct Sprite *sprite = &gSprites[gUnknown_02022CF4->unk2A[i]]; + gUnknown_02022CF4->unk16[i] = 2; + if (gUnknown_02022CF4->unkC[i] != 0 && sprite->pos1.y == 8) + continue; + r3 = TRUE; + if (sprite->pos1.y == 8) + { + if (gUnknown_02022CF4->unkC[i] != 0) + continue; + gUnknown_02022CF4->unkC[i] = 1; + gUnknown_02022CF4->unk16[i] = -16; + PlaySE(SE_TK_KASYA); + } + sprite->pos1.y += gUnknown_02022CF4->unk16[i]; + } + + if (r3) + return FALSE; + else + return TRUE; +} + +static void sub_80288D4(u8 arg0) +{ + u8 i; + + if (arg0 > 10) + { + for (i = 0; i < 10; i++) + StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 1); + } + else + { + for (i = 0; i < 10 - arg0; i++) + { + if (arg0 > 6) + { + gUnknown_02022CF4->unk3E += arg0 - 6; + if (gUnknown_02022CF4->unk3E > 30) + gUnknown_02022CF4->unk3E = 0; + else if (gUnknown_02022CF4->unk3E > 10) + StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 2); + else + StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 0); + } + else + { + StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 0); + } + } + for (; i < 10; i++) + StartSpriteAnim(&gSprites[gUnknown_02022CF4->unk2A[i]], 1); + } +} + +static void sub_80289E8(bool8 invisible) +{ + u8 i; + for (i = 0; i < 10; i++) + gSprites[gUnknown_02022CF4->unk2A[i]].invisible = invisible; +} + +// Unknown unused data, feel free to remove. +static const u8 sUnused2[] = {0xD4, 0x3E, 0x3F, 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0xFB, 0x0, 0x0}; + +static void sub_8028A34(void) +{ + void *ptr = AllocZeroed(0x480); + struct SpritePalette sprPal = {gDodrioBerrySpritesPal, 3}; + + LZ77UnCompWram(gDodrioBerrySpritesGfx, ptr); + if (ptr != NULL) + { + struct SpriteSheet sprSheet = {ptr, 0x480, 2}; + LoadSpriteSheet(&sprSheet); + } + + LoadSpritePalette(&sprPal); + Free(ptr); +} + +static const s16 gUnknown_082FB31C[] = {88, 128, 168, 208}; + +static void sub_8028A88(void) +{ + u8 i; + s16 x; + + struct SpriteTemplate sprTemplate1 = + { + .tileTag = 2, + .paletteTag = 3, + .oam = &sOamData_82FB1F0, + .anims = sSpriteAnimTable_82FB2A8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + struct SpriteTemplate sprTemplate2 = + { + .tileTag = 2, + .paletteTag = 3, + .oam = &sOamData_82FB1E8, + .anims = sSpriteAnimTable_82FB2A8, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }; + + for (i = 0; i < 11; i++) + { + gUnknown_02022CB8[i] = AllocZeroed(4); + x = i * 16; + *gUnknown_02022CB8[i] = CreateSprite(&sprTemplate1, x + (i * 8), 8, 1); + sub_8028BF8(i, TRUE); + } + for (i = 0; i < 4; i++) + { + gUnknown_02022CE4[i] = AllocZeroed(4); + if (i == 3) + *gUnknown_02022CE4[i] = CreateSprite(&sprTemplate2, gUnknown_082FB31C[i], 49, 0); + else + *gUnknown_02022CE4[i] = CreateSprite(&sprTemplate2, gUnknown_082FB31C[i], 52, 0); + StartSpriteAnim(&gSprites[*gUnknown_02022CE4[i]], i); + } + + sub_8028C30(TRUE); +} + +static void sub_8028B80(void) +{ + struct Sprite *sprite; + u8 i; + + for (i = 0; i < 11; i++) + { + sprite = &gSprites[*gUnknown_02022CB8[i]]; + if (sprite != NULL) + DestroySprite(sprite); + FREE_AND_SET_NULL(gUnknown_02022CB8[i]); + } + for (i = 0; i < 4; i++) + { + sprite = &gSprites[*gUnknown_02022CE4[i]]; + if (sprite != NULL) + DestroySprite(sprite); + FREE_AND_SET_NULL(gUnknown_02022CE4[i]); + } +} + +static void sub_8028BF8(u8 id, bool8 invisible) +{ + gSprites[*gUnknown_02022CB8[id]].invisible = invisible; +} + +static void sub_8028C30(bool8 invisible) +{ + u8 i; + for (i = 0; i < 4; i++) + gSprites[*gUnknown_02022CE4[i]].invisible = invisible; +} + +static void sub_8028C7C(u8 id, u8 y) +{ + gSprites[*gUnknown_02022CB8[id]].pos1.y = y * 8; +} + +static void sub_8028CA4(u16 id, u8 frameNum) +{ + StartSpriteAnim(&gSprites[*gUnknown_02022CB8[id]], frameNum); +} + +// Unused +static void sub_8028CD0(u8 spriteId) +{ + gSprites[spriteId].pos1.x = 20 * spriteId + 50; + gSprites[spriteId].pos1.y = 50; +} + +// Gamefreak made a mistake there and goes out of bounds for the data array as it holds 8 elements +// in turn overwriting sprite's subpriority and subsprites fields. +#if defined(NONMATCHING) || MODERN + #define sKeepPosX data[1] +#else + #define sKeepPosX data[10] +#endif // NONMATCHING + +static void sub_8028CF4(struct Sprite *sprite) +{ + u8 i; + static const u8 array[] = {30, 20}; + + if (sprite->sKeepPosX != TRUE) + { + for (i = 0; i < 2; i++) + { + if (++gUnknown_02022CB0[i][1] > array[i]) + { + sprite->pos1.x--; + gUnknown_02022CB0[i][1] = 0; + } + } + } +} + +static const s16 gUnknown_082FB356[][2] = {{230, 55}, {30, 74}}; + +static void sub_8028D44(void) +{ + u8 i; + void *ptr = AllocZeroed(0x400); + struct SpritePalette sprPal = {gDodrioBerryPlatformPal, 6}; + + LZ77UnCompWram(gDodrioBerryPlatformGfx, ptr); + if (ptr != NULL) + { + struct SpriteSheet sprSheet = {ptr, 0x400, 5}; + struct SpriteTemplate sprTemplate = + { + .tileTag = 5, + .paletteTag = 6, + .oam = &sOamData_82FB1F8, + .anims = sSpriteAnimTable_82FB2D4, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8028CF4, + }; + + LoadSpriteSheet(&sprSheet); + LoadSpritePalette(&sprPal); + for (i = 0; i < 2; i++) + { + gUnknown_02022CB0[i] = AllocZeroed(4); + *gUnknown_02022CB0[i] = CreateSprite(&sprTemplate, gUnknown_082FB356[i][0], gUnknown_082FB356[i][1], 4); + } + } + + Free(ptr); +} + +static void sub_8028DFC(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; + sprite->sKeepPosX = TRUE; + sprite->pos1.x = gUnknown_082FB356[i][0]; + sprite->pos1.y = gUnknown_082FB356[i][1]; + } +} + +static void sub_8028E4C(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; + sprite->sKeepPosX = FALSE; + } +} + +static void sub_8028E84(void) +{ + u8 i; + for (i = 0; i < 2; i++) + { + struct Sprite *sprite = &gSprites[*gUnknown_02022CB0[i]]; + if (sprite) + DestroySprite(sprite); + FREE_AND_SET_NULL(gUnknown_02022CB0[i]); + } +} + +static void sub_8028EC8(bool8 invisible) +{ + u8 i; + for (i = 0; i < 2; i++) + gSprites[*gUnknown_02022CB0[i]].invisible = invisible; +} + +#undef sKeepPosX + +static s16 sub_8028F14(u8 arg0, u8 arg1) +{ + s16 x = 0; + switch (arg1) + { + case 1: + x = 15; + break; + case 2: + switch (arg0) + { + case 0: x = 12; break; + case 1: x = 18; break; + } + break; + case 3: + switch (arg0) + { + case 0: x = 15; break; + case 1: x = 21; break; + case 2: x = 9; break; + } + break; + case 4: + switch (arg0) { - gUnknown_02022C98->unk_0120 = 1; - if (++gUnknown_02022C98->unk_00DC[i] >= 20) + case 0: x = 12; break; + case 1: x = 18; break; + case 2: x = 24; break; + case 3: x = 6; break; + } + break; + case 5: + switch (arg0) + { + case 0: x = 15; break; + case 1: x = 21; break; + case 2: x = 27; break; + case 3: x = 3; break; + case 4: x = 9; break; + } + break; + } + + return x * 8; +} + +static void sub_8028FCC(void) +{ + u8 i; + for (i = 0; i < 11; i++) + { + sub_8028BF8(i, TRUE); + sub_8028C7C(i, 1); + } + sub_80289E8(FALSE); +} + +static void sub_8028FF8(u8 frameId) +{ + LoadBgTiles(0, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); + LoadPalette(GetWindowFrameTilesPal(frameId)->pal, 0xA0, 0x20); +} + +static void sub_802902C(void) +{ + LoadUserWindowBorderGfx_(0, 0xA, 0xB0); +} + +static void sub_802903C(void) +{ + gUnknown_02022CF8->finished = FALSE; + gUnknown_02022CF8->state = 0; + gUnknown_02022CF8->unk3018 = 0; + gUnknown_02022CF8->unk3020 = 0; + gUnknown_02022CF8->unk3024 = 0; +} + +static void sub_8029074(const struct WindowTemplate *winTempl) +{ + u8 pal = 0xA; + + FillBgTilemapBufferRect(0, 1, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(0, 2, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); + FillBgTilemapBufferRect(0, 3, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(0, 4, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); + FillBgTilemapBufferRect(0, 6, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); + FillBgTilemapBufferRect(0, 7, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); + FillBgTilemapBufferRect(0, 8, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); + FillBgTilemapBufferRect(0, 9, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); +} + +static void sub_8029174(const struct WindowTemplate *winTempl) +{ + u8 pal = 0xB; + + FillBgTilemapBufferRect(0, 10, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(0, 11, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); + FillBgTilemapBufferRect(0, 12, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); + FillBgTilemapBufferRect(0, 13, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); + FillBgTilemapBufferRect(0, 15, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); + FillBgTilemapBufferRect(0, 16, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); + FillBgTilemapBufferRect(0, 17, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); + FillBgTilemapBufferRect(0, 18, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); +} + +static void sub_8029274(struct DodrioSubstruct_0160 *ptr) +{ + gUnknown_02022CF8 = ptr; + gUnknown_02022CF8->finished = FALSE; + gUnknown_02022CF8->state = 0; + gUnknown_02022CF8->unk3018 = 0; + gUnknown_02022CF8->unk3020 = 0; + gUnknown_02022CF8->unk3024 = 0; + gUnknown_02022CF8->unk3004 = CreateTask(sub_8029314, 3); + sub_802A72C(sub_8029338); +} + +static void sub_80292D4(void) +{ + FreeAllWindowBuffers(); +} + +// Data used by functions below. +struct WinCoords +{ + u8 left; + u8 top; +}; + +static const u8 gUnknown_082FB380[][3] = +{ + {1, 2, 3}, + {1, 4, 5}, + {1, 8, 9}, + {1, 6, 7}, +}; + +static const struct WinCoords gUnknown_082FB38C[] = {{12, 6}}; +static const struct WinCoords gUnknown_082FB390[] = {{9, 10}, {15, 6}}; +static const struct WinCoords gUnknown_082FB398[] = {{12, 6}, {18, 10}, {6, 10}}; +static const struct WinCoords gUnknown_082FB3A4[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}}; +static const struct WinCoords gUnknown_082FB3B4[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}}; + +static const struct WinCoords *const gUnknown_082FB3C8[] = +{ + gUnknown_082FB38C, + gUnknown_082FB390, + gUnknown_082FB398, + gUnknown_082FB3A4, + gUnknown_082FB3B4, +}; + +static const u8 *const gUnknown_082FB3DC[] = +{ + gText_1Colon, + gText_2Colon, + gText_3Colon, + gText_4Colon, + gText_5Colon, +}; + +static const u16 gUnknown_082FB3F0[] = {92, 132, 172, 212}; +static const u16 gUnknown_082FB3F8[] = {33, 49, 65, 81, 97}; +static const u16 gUnknown_082FB402[] = {17, 33, 49, 65, 81}; + +struct +{ + u8 id; + void (*func)(void); +} const gUnknown_082FB40C[] = +{ + {0, sub_8029338}, + {1, sub_8029440}, + {2, sub_802988C}, + {3, sub_802A010}, + {4, sub_802A380}, + {5, sub_802A454}, + {6, sub_802A534}, + {7, sub_802A588}, + {8, sub_802A6FC}, + {9, nullsub_16}, +}; + +static void sub_80292E0(u8 arg0) +{ + u8 i; + for (i = 0; i < 10; i++) + { + if (gUnknown_082FB40C[i].id == arg0) + sub_802A72C(gUnknown_082FB40C[i].func); + } +} + +static void sub_8029314(u8 taskId) +{ + if (!gUnknown_02022CF8->finished) + sub_802A75C()(); +} + +static void sub_8029338(void) +{ + switch (gUnknown_02022CF8->state) + { + case 0: + sub_802A7A8(); + gUnknown_02022CF8->state++; + break; + case 1: + if (sub_802A8E8() == TRUE) + gUnknown_02022CF8->state++; + break; + case 2: + CopyToBgTilemapBuffer(3, gDodrioBerryBgTilemap1, 0, 0); + CopyToBgTilemapBuffer(1, gDodrioBerryBgTilemap2Left, 0, 0); + CopyToBgTilemapBuffer(2, gDodrioBerryBgTilemap2Right, 0, 0); + CopyBgTilemapBufferToVram(3); + CopyBgTilemapBufferToVram(1); + CopyBgTilemapBufferToVram(2); + gUnknown_02022CF8->state++; + break; + case 3: + ShowBg(0); + ShowBg(3); + ShowBg(1); + ShowBg(2); + gUnknown_02022CF8->state++; + break; + case 4: + sub_8028FF8(gSaveBlock2Ptr->optionsWindowFrameType); + sub_802902C(); + gUnknown_02022CF8->state++; + break; + default: + gUnknown_02022CF8->finished = TRUE; + break; + } +} + +static void sub_8029440(void) +{ + u8 i, playersCount, id, colorsId, *name; + u32 left; + struct WindowTemplate window; + const struct WinCoords *ptr; + + switch (gUnknown_02022CF8->state) + { + case 0: + playersCount = sub_8027650(); + ptr = gUnknown_082FB3C8[playersCount - 1]; + window.bg = 0; + window.width = 7; + window.height = 2; + window.paletteNum = 0xD; + window.baseBlock = 0x13; + for (i = 0; i < playersCount; ptr++, i++) + { + colorsId = 0; + id = sub_8027A48(i); + left = (56 - GetStringWidth(1, sub_8027660(id), -1)) / 2u; + window.tilemapLeft = ptr->left; + window.tilemapTop = ptr->top; + gUnknown_02022CF8->unk3008[i] = AddWindow(&window); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[i]); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[i], PIXEL_FILL(1)); + if (id == GetMultiplayerId()) + colorsId = 2; + name = sub_8027660(id); + AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[i], 1, left, 1, gUnknown_082FB380[colorsId], -1, name); + CopyWindowToVram(gUnknown_02022CF8->unk3008[i], 2); + window.baseBlock += 0xE; + sub_8029174(&window); + } + gUnknown_02022CF8->state++; + break; + case 1: + if (!IsDma3ManagerBusyWithBgCopy()) + { + playersCount = sub_8027650(); + for (i = 0; i < playersCount; i++) + PutWindowTilemap(gUnknown_02022CF8->unk3008[i]); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->state++; + } + break; + default: + if (++gUnknown_02022CF8->state > 180) + { + playersCount = sub_8027650(); + for (i = 0; i < playersCount; i++) { - gUnknown_02022C98->unk_31A0[gUnknown_02022C98->unk_00B8[i]].unk_30 = 0; - gUnknown_02022C98->unk_00DC[i] = 0; - gUnknown_02022C98->unk_00D0[i] = 0; - gUnknown_02022C98->unk_00C4[i] = 0; - ptr->unk_32CC.unk_14.unk_B[i] = 1; - ptr->unk_32CC.unk_14.unk_0[i] = sub_8026DB0(sub_8026D8C(i), i); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[i]); + RemoveWindow(gUnknown_02022CF8->unk3008[i]); } + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; } - else if (gUnknown_02022C98->unk_00C4[i] == 3) + break; + } +} + +static void sub_80296A8(u8 playersCount_) +{ + u8 i, r8 = 0, r6 = 0; + u8 playersCount = playersCount_; // Pointless variable, I know, but it's needed to match. + u8 *name; + u32 x, numWidth; + u8 numString[32]; + u8 array[5] = {0, 1, 2, 3, 4}; + struct DodrioSubstruct_3308 temp, structArray[5]; + + for (i = 0; i < playersCount; i++) + { + array[i] = i; + sub_802793C(&temp, i); + structArray[i] = temp; + } + + if (sub_8027748() != 0) + { + do { - if (++gUnknown_02022C98->unk_00DC[i] >= 20) + for (i = 0; i < playersCount; i++) { - if (gUnknown_02022C98->unk_0040 < 10) + if (structArray[i].unk0 == r8) { - gUnknown_02022C98->unk_00DC[i] = 0; - gUnknown_02022C98->unk_00D0[i] = 0; - gUnknown_02022C98->unk_00C4[i] = 0; - ptr->unk_32CC.unk_14.unk_B[i] = 1; - gUnknown_02022C98->unk_00E8[i] = ptr->unk_32CC.unk_14.unk_0[i]; - ptr->unk_32CC.unk_14.unk_0[i] = sub_8026DB0(sub_8026D8C(i), i); + array[r6] = i; + r6++; } } + r8 = r6; + } while (r6 < playersCount); + } + + for (i = 0; i < playersCount; i++) + { + if (structArray[i].unk4 == 0) + structArray[i].unk0 = playersCount - 1; + } + + x = 216 - GetStringWidth(1, gText_SpacePoints, 0); + for (i = 0; i < playersCount; i++) + { + u8 colorsId = 0; + u8 id = array[i]; + u32 points = structArray[id].unk4; + + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3DC[structArray[id].unk0], 8, gUnknown_082FB402[i], -1, NULL); + if (id == GetMultiplayerId()) + colorsId = 2; + name = sub_8027660(id); + AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 28, gUnknown_082FB402[i], gUnknown_082FB380[colorsId], -1, name); + ConvertIntToDecimalStringN(numString, points, STR_CONV_MODE_LEFT_ALIGN, 7); + numWidth = GetStringWidth(1, numString, -1); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, numString, x - numWidth, gUnknown_082FB402[i], -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SpacePoints, x, gUnknown_082FB402[i], -1, NULL); + } +} + +static void sub_802988C(void) +{ + u8 i, j, itemGiveRet, playersCount = sub_8027650(); + u8 *name; + u32 strWidth, x; + + switch (gUnknown_02022CF8->state) + { + case 0: + sub_802784C(); + gUnknown_02022CF8->unk301C = 0; + gUnknown_02022CF8->state++; + break; + case 1: + gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BBC[0]); + gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BBC[1]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); + sub_8029174(&gUnknown_082F7BBC[0]); + sub_8029174(&gUnknown_082F7BBC[1]); + gUnknown_02022CF8->state++; + break; + case 2: + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + strWidth = GetStringWidth(1, gText_BerryPickingResults, -1); + x = (224 - strWidth) / 2; + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_BerryPickingResults, x, 1, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_10P30P50P50P, 68, 17, -1, NULL); + for (i = 0; i < playersCount; i++) + { + u8 colorsId = 0; + if (i == GetMultiplayerId()) + colorsId = 2; + + name = sub_8027660(i); + AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, 0, gUnknown_082FB3F8[i], gUnknown_082FB380[colorsId], -1, name); + for (j = 0; j < 4; j++) + { + u32 width; + u16 result1 = Min(sub_80276A0(i, j), 9999); + u16 result2 = Min(sub_802778C(j), 9999); + + ConvertIntToDecimalStringN(gStringVar4, result1, STR_CONV_MODE_LEFT_ALIGN, 4); + width = GetStringWidth(1, gStringVar4, -1); + if (result2 == result1 && result2 != 0) + AddTextPrinterParameterized3(gUnknown_02022CF8->unk3008[1], 1, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], gUnknown_082FB380[1], -1, gStringVar4); + else + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, gUnknown_082FB3F0[j] - width, gUnknown_082FB3F8[i], -1, NULL); + } + } + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); + gUnknown_02022CF8->state++; + break; + case 3: + if (!IsDma3ManagerBusyWithBgCopy()) + { + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + } + CopyBgTilemapBufferToVram(0); + sub_8028C30(FALSE); + gUnknown_02022CF8->state++; + break; + case 4: + if (++gUnknown_02022CF8->unk301C >= 30 && gMain.newKeys & A_BUTTON) + { + gUnknown_02022CF8->unk301C = 0; + PlaySE(SE_SELECT); + sub_8028C30(TRUE); + gUnknown_02022CF8->state++; + } + break; + case 5: + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + strWidth = GetStringWidth(1, gText_AnnouncingRankings, -1); + x = (224 - strWidth) / 2; + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_AnnouncingRankings, x, 1, -1, NULL); + gUnknown_02022CF8->state++; + break; + case 6: + sub_80296A8(playersCount); + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); + gUnknown_02022CF8->state++; + break; + case 7: + if (!IsDma3ManagerBusyWithBgCopy()) + { + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + } + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->state++; + break; + case 8: + if (++gUnknown_02022CF8->unk301C >= 30 && gMain.newKeys & A_BUTTON) + { + gUnknown_02022CF8->unk301C = 0; + PlaySE(SE_SELECT); + if (sub_8027748() < 3000) + { + gUnknown_02022CF8->state = 127; + } + else + { + StopMapMusic(); + gUnknown_02022CF8->state++; + } + + FillBgTilemapBufferRect_Palette0(0, 0, 0, 5, 30, 15); + RemoveWindow(gUnknown_02022CF8->unk3008[1]); + gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BCC); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); + sub_8029174(&gUnknown_082F7BCC); + } + break; + case 9: + PlayNewMapMusic(MUS_FANFA1); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + strWidth = GetStringWidth(1, gText_AnnouncingPrizes, -1); + x = (224 - strWidth) / 2; + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_AnnouncingPrizes, x, 1, -1, NULL); + DynamicPlaceholderTextUtil_Reset(); + CopyItemName(sub_802762C(), gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FirstPlacePrize); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, 0, 1, -1, NULL); + itemGiveRet = sub_80279C8(); + if (itemGiveRet != 0 && itemGiveRet != 3) + { + DynamicPlaceholderTextUtil_Reset(); + CopyItemName(sub_802762C(), gStringVar1); + DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gStringVar1); + if (itemGiveRet == 2) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_CantHoldAnyMore); + else if (itemGiveRet == 1) + DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gText_FilledStorageSpace); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gStringVar4, 0, 41, -1, NULL); + } + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); + gUnknown_02022CF8->state++; + break; + case 10: + if (!IsDma3ManagerBusyWithBgCopy()) + { + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + } + CopyBgTilemapBufferToVram(0); + FadeOutAndFadeInNewMapMusic(MUS_RG_WIN_YASEI, 20, 10); + gUnknown_02022CF8->state++; + break; + case 11: + if (++gUnknown_02022CF8->unk301C >= 30 && gMain.newKeys & A_BUTTON) + { + gUnknown_02022CF8->unk301C = 0; + PlaySE(SE_SELECT); + gUnknown_02022CF8->state++; + } + break; + default: + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); + RemoveWindow(gUnknown_02022CF8->unk3008[0]); + RemoveWindow(gUnknown_02022CF8->unk3008[1]); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; + break; + } +} + +static void sub_802A010(void) +{ + u8 y; + + switch (gUnknown_02022CF8->state) + { + case 0: + gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BD4[0]); + gUnknown_02022CF8->unk3008[1] = AddWindow(&gUnknown_082F7BD4[1]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); + sub_8029174(&gUnknown_082F7BD4[0]); + sub_8029074(&gUnknown_082F7BD4[1]); + gUnknown_02022CF8->state++; + gUnknown_02022CF8->unk3020 = 0; + gUnknown_02022CF8->unk3024 = 0; + break; + case 1: + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_WantToPlayAgain, 0, 5, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_Yes, 8, 1, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_No, 8, 17, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SelectorArrow2, 0, 1, -1, NULL); + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 2); + gUnknown_02022CF8->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + PutWindowTilemap(gUnknown_02022CF8->unk3008[1]); + } + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->state++; + break; + case 3: + y = gUnknown_02022CF8->unk3020; + if (y == 0) + y = 1; + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[1], PIXEL_FILL(1)); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_Yes, 8, 1, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_No, 8, 17, -1, NULL); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[1], 1, gText_SelectorArrow2, 0, ((y - 1) * 16) + 1, -1, NULL); + CopyWindowToVram(gUnknown_02022CF8->unk3008[1], 3); + // Increment state only if A or B button have been pressed. + if (gMain.newKeys & A_BUTTON) + { + PlaySE(SE_SELECT); + if (gUnknown_02022CF8->unk3020 == 0) + gUnknown_02022CF8->unk3020 = 1; + gUnknown_02022CF8->state++; + } + else if (gMain.newKeys & (DPAD_UP | DPAD_DOWN)) + { + PlaySE(SE_SELECT); + switch (gUnknown_02022CF8->unk3020) + { + case 0: + gUnknown_02022CF8->unk3020 = 2; + break; + case 1: + gUnknown_02022CF8->unk3020 = 2; + break; + case 2: + gUnknown_02022CF8->unk3020 = 1; + break; + } + } + else if (gMain.newKeys & B_BUTTON) + { + PlaySE(SE_SELECT); + gUnknown_02022CF8->unk3020 = 2; + gUnknown_02022CF8->state++; + } + break; + default: + gUnknown_02022CF8->unk3024 = gUnknown_02022CF8->unk3020; + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[1]); + RemoveWindow(gUnknown_02022CF8->unk3008[0]); + RemoveWindow(gUnknown_02022CF8->unk3008[1]); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; + break; + } +} + +static void sub_802A380(void) +{ + switch (gUnknown_02022CF8->state) + { + case 0: + DrawDialogueFrame(0, FALSE); + AddTextPrinterParameterized2(0, 1, gText_SavingDontTurnOffPower, 0, NULL, 2, 1, 3); + gUnknown_02022CF8->state++; + break; + case 1: + CopyWindowToVram(0, 3); + gUnknown_02022CF8->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + { + CreateTask(sub_8153688, 0); + gUnknown_02022CF8->state++; } + break; + case 3: + if (!FuncIsActiveTask(sub_8153688)) + gUnknown_02022CF8->state++; + break; + default: + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; + break; } } + +static void sub_802A454(void) +{ + switch (gUnknown_02022CF8->state) + { + case 0: + gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BEC); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + sub_8029174(&gUnknown_082F7BEC); + gUnknown_02022CF8->state++; + break; + case 1: + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_CommunicationStandby3, 0, 5, -1, NULL); + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + gUnknown_02022CF8->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->state++; + break; + default: + gUnknown_02022CF8->finished = TRUE; + break; + } +} + +static void sub_802A534(void) +{ + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + RemoveWindow(gUnknown_02022CF8->unk3008[0]); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; +} + +static void sub_802A588(void) +{ + switch (gUnknown_02022CF8->state) + { + case 0: + gUnknown_02022CF8->unk3008[0] = AddWindow(&gUnknown_082F7BE4); + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + sub_8029174(&gUnknown_082F7BE4); + gUnknown_02022CF8->state++; + gUnknown_02022CF8->unk301C = 0; + gUnknown_02022CF8->unk3020 = 0; + gUnknown_02022CF8->unk3024 = 0; + break; + case 1: + FillWindowPixelBuffer(gUnknown_02022CF8->unk3008[0], PIXEL_FILL(1)); + AddTextPrinterParameterized(gUnknown_02022CF8->unk3008[0], 1, gText_SomeoneDroppedOut, 0, 5, -1, NULL); + CopyWindowToVram(gUnknown_02022CF8->unk3008[0], 2); + gUnknown_02022CF8->state++; + break; + case 2: + if (!IsDma3ManagerBusyWithBgCopy()) + PutWindowTilemap(gUnknown_02022CF8->unk3008[0]); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->state++; + break; + case 3: + if (++gUnknown_02022CF8->unk301C >= 120) + gUnknown_02022CF8->state++; + break; + default: + gUnknown_02022CF8->unk3024 = 5; + ClearWindowTilemap(gUnknown_02022CF8->unk3008[0]); + RemoveWindow(gUnknown_02022CF8->unk3008[0]); + FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); + CopyBgTilemapBufferToVram(0); + gUnknown_02022CF8->finished = TRUE; + break; + } +} + +static void sub_802A6FC(void) +{ + DestroyTask(gUnknown_02022CF8->unk3004); + gUnknown_02022CF8->finished = TRUE; +} + +static void nullsub_16(void) +{ + +} + +static void sub_802A72C(void (*func)(void)) +{ + gUnknown_02022CF8->state = 0; + gUnknown_02022CF8->finished = FALSE; + gUnknown_02022CF8->unk3028 = func; +} + +static void (*sub_802A75C(void))(void) +{ + return gUnknown_02022CF8->unk3028; +} + +static bool32 sub_802A770(void) +{ + if (gUnknown_02022CF8->finished == TRUE) + return FALSE; + else + return TRUE; +} + +static u8 sub_802A794(void) +{ + return gUnknown_02022CF8->unk3024; +} + +static void sub_802A7A8(void) +{ + DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000); + DmaClear32(3,(void *)OAM, OAM_SIZE); + DmaClear16(3, (void *)PLTT, PLTT_SIZE); + SetGpuReg(REG_OFFSET_DISPCNT, 0); + ResetBgsAndClearDma3BusyFlags(0); + InitBgsFromTemplates(0, gUnknown_082F7BA4, ARRAY_COUNT(gUnknown_082F7BA4)); + ChangeBgX(0, 0, 0); + ChangeBgY(0, 0, 0); + ChangeBgX(1, 0, 0); + ChangeBgY(1, 0, 0); + ChangeBgX(2, 0, 0); + ChangeBgY(2, 0, 0); + ChangeBgX(3, 0, 0); + ChangeBgY(3, 0, 0); + InitStandardTextBoxWindows(); + sub_8197200(); + SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); + SetBgTilemapBuffer(3, gUnknown_02022CF8->tilemapBuffers[0]); + SetBgTilemapBuffer(1, gUnknown_02022CF8->tilemapBuffers[1]); + SetBgTilemapBuffer(2, gUnknown_02022CF8->tilemapBuffers[2]); +} + +static bool32 sub_802A8E8(void) +{ + switch (gUnknown_02022CF8->unk3018) + { + case 0: + LoadPalette(gDodrioBerryBgPal1, 0, sizeof(gDodrioBerryBgPal1)); + break; + case 1: + reset_temp_tile_data_buffers(); + break; + case 2: + decompress_and_copy_tile_data_to_vram(3, gDodrioBerryBgGfx1, 0, 0, 0); + break; + case 3: + decompress_and_copy_tile_data_to_vram(1, gDodrioBerryBgGfx2, 0, 0, 0); + break; + case 4: + if (free_temp_tile_data_buffers_if_possible() == TRUE) + return FALSE; + break; + case 5: + LoadPalette(stdpal_get(3), 0xD0, 0x20); + break; + default: + gUnknown_02022CF8->unk3018 = 0; + return TRUE; + } + + gUnknown_02022CF8->unk3018++; + return FALSE; +} diff --git a/src/field_player_avatar.c b/src/field_player_avatar.c index b322fc1c7..6d62cdc4a 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -336,14 +336,9 @@ void player_step(u8 direction, u16 newKeys, u16 heldKeys) static bool8 TryInterruptEventObjectSpecialAnim(struct EventObject *playerEventObj, u8 direction) { - #ifdef NONMATCHING - u8 r5 = direction; - u8 r6 = direction; - #else - u8 r5 = direction; - register u8 r6 asm("r6") = direction; - #endif - //a very bad HACK + u8 r5 = direction; + u8 r6 = direction; + r6++; r6--; if (EventObjectIsMovementOverridden(playerEventObj) && !EventObjectClearHeldMovementIfFinished(playerEventObj)) diff --git a/src/fldeff_flash.c b/src/fldeff_flash.c index c002f700f..a2457307b 100644 --- a/src/fldeff_flash.c +++ b/src/fldeff_flash.c @@ -219,8 +219,8 @@ static void sub_8137404(u8 taskId) static void sub_8137420(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800); + LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); LoadPalette(gCaveTransitionPalette_White, 0xE0, 0x20); LoadPalette(gUnknown_085B28A0, 0xE0, 0x10); SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG0 @@ -304,8 +304,8 @@ static void sub_81375BC(u8 taskId) static void sub_81375D8(u8 taskId) { SetGpuReg(REG_OFFSET_DISPCNT, 0); - LZ77UnCompVram(gCaveTransitionTiles, (void *)0x600C000); - LZ77UnCompVram(gCaveTransitionTilemap, (void *)0x600F800); + LZ77UnCompVram(gCaveTransitionTiles, (void *)(VRAM + 0xC000)); + LZ77UnCompVram(gCaveTransitionTilemap, (void *)(VRAM + 0xF800)); SetGpuReg(REG_OFFSET_BLDCNT, 0); SetGpuReg(REG_OFFSET_BLDALPHA, 0); SetGpuReg(REG_OFFSET_BLDY, 0); diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c index 5c1fb59f7..d2d89babf 100644 --- a/src/pokenav_match_call_data.c +++ b/src/pokenav_match_call_data.c @@ -6,6 +6,7 @@ #include "battle.h" #include "gym_leader_rematch.h" #include "match_call.h" +#include "constants/region_map_sections.h" // Static type declarations @@ -17,13 +18,13 @@ typedef struct MatchCallTextDataStruct { struct MatchCallStructCommon { u8 type; - u8 v1; + u8 mapSec; u16 flag; }; struct MatchCallStruct0 { u8 type; - u8 v1; + u8 mapSec; u16 flag; const u8 *desc; const u8 *name; @@ -32,7 +33,7 @@ struct MatchCallStruct0 { struct MatchCallStruct1 { u8 type; - u8 v1; + u8 mapSec; u16 flag; u16 rematchTableIdx; const u8 *desc; @@ -42,12 +43,12 @@ struct MatchCallStruct1 { struct MatchCallSubstruct2 { u16 flag; - u8 v2; + u8 mapSec; }; struct MatchCallStruct2 { u8 type; - u8 v1; + u8 mapSec; u16 flag; u16 rematchTableIdx; const u8 *desc; @@ -57,7 +58,7 @@ struct MatchCallStruct2 { struct MatchCallStruct3 { u8 type; - u8 v1; + u8 mapSec; u16 flag; const u8 *desc; const u8 *name; @@ -75,7 +76,7 @@ struct MatchCallStruct4 { // Note: Type1 and Type5 have identical struct layouts. struct MatchCallStruct5 { u8 type; - u8 v1; + u8 mapSec; u16 flag; u16 rematchTableIdx; const u8 *desc; @@ -110,11 +111,11 @@ static bool32 MatchCallGetFlag_Type2(match_call_t); static bool32 MatchCallGetFlag_Type3(match_call_t); static bool32 MatchCallGetFlag_Type4(match_call_t); -static u8 sub_81D1714(match_call_t); -static u8 sub_81D1718(match_call_t); -static u8 sub_81D171C(match_call_t); -static u8 sub_81D1750(match_call_t); -static u8 sub_81D1754(match_call_t); +static u8 MatchCallGetMapSec_Type0(match_call_t); +static u8 MatchCallGetMapSec_Type1(match_call_t); +static u8 MatchCallGetMapSec_Type2(match_call_t); +static u8 MatchCallGetMapSec_Type3(match_call_t); +static u8 MatchCallGetMapSec_Type4(match_call_t); static bool32 MatchCall_IsRematchable_Type0(match_call_t); static bool32 MatchCall_IsRematchable_Type1(match_call_t); @@ -325,7 +326,7 @@ static const match_call_text_data_t sMrStoneTextScripts[] = { static const struct MatchCallStruct0 sMrStoneMatchCallHeader = { .type = 0, - .v1 = 10, + .mapSec = MAPSEC_RUSTBORO_CITY, .flag = 0xFFFF, .desc = gMrStoneMatchCallDesc, .name = gMrStoneMatchCallName, @@ -348,7 +349,7 @@ static const match_call_text_data_t sNormanTextScripts[] = { static const struct MatchCallStruct5 sNormanMatchCallHeader = { .type = 5, - .v1 = 7, + .mapSec = MAPSEC_PETALBURG_CITY, .flag = FLAG_ENABLE_NORMAN_MATCH_CALL, .rematchTableIdx = REMATCH_NORMAN, .desc = gNormanMatchCallDesc, @@ -359,7 +360,7 @@ static const struct MatchCallStruct5 sNormanMatchCallHeader = static const struct MatchCallStruct3 sProfBirchMatchCallHeader = { .type = 3, - .v1 = 0, + .mapSec = 0, .flag = FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, .desc = gProfBirchMatchCallDesc, .name = gProfBirchMatchCallName @@ -375,7 +376,7 @@ static const match_call_text_data_t sMomTextScripts[] = { static const struct MatchCallStruct0 sMomMatchCallHeader = { .type = 0, - .v1 = 0, + .mapSec = MAPSEC_LITTLEROOT_TOWN, .flag = FLAG_ENABLE_MOM_MATCH_CALL, .desc = gMomMatchCallDesc, .name = gMomMatchCallName, @@ -396,7 +397,7 @@ static const match_call_text_data_t sStevenTextScripts[] = { static const struct MatchCallStruct0 sStevenMatchCallHeader = { .type = 0, - .v1 = 0xD5, + .mapSec = MAPSEC_NONE, .flag = FLAG_REGISTERED_STEVEN_POKENAV, .desc = gStevenMatchCallDesc, .name = gStevenMatchCallName, @@ -473,16 +474,16 @@ static const match_call_text_data_t sWallyTextScripts[] = { }; const struct MatchCallSubstruct2 sWallyAdditionalData[] = { - { FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 }, - { FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xD5 }, - { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 }, - { 0xFFFF, 0xD5 } + { FLAG_HIDE_MAUVILLE_CITY_WALLY, MAPSEC_VERDANTURF_TOWN }, + { FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, MAPSEC_NONE }, + { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, MAPSEC_VICTORY_ROAD }, + { 0xFFFF, MAPSEC_NONE } }; static const struct MatchCallStruct2 sWallyMatchCallHeader = { .type = 2, - .v1 = 0, + .mapSec = 0, .flag = FLAG_ENABLE_WALLY_MATCH_CALL, .rematchTableIdx = REMATCH_WALLY_3, .desc = gWallyMatchCallDesc, @@ -505,7 +506,7 @@ static const match_call_text_data_t sScottTextScripts[] = { static const struct MatchCallStruct0 sScottMatchCallHeader = { .type = 0, - .v1 = 0xD5, + .mapSec = MAPSEC_NONE, .flag = FLAG_ENABLE_SCOTT_MATCH_CALL, .desc = gScottMatchCallDesc, .name = gScottMatchCallName, @@ -523,7 +524,7 @@ static const match_call_text_data_t sRoxanneTextScripts[] = { static const struct MatchCallStruct5 sRoxanneMatchCallHeader = { .type = 5, - .v1 = 10, + .mapSec = MAPSEC_RUSTBORO_CITY, .flag = FLAG_ENABLE_ROXANNE_MATCH_CALL, .rematchTableIdx = REMATCH_ROXANNE, .desc = gRoxanneMatchCallDesc, @@ -542,7 +543,7 @@ static const match_call_text_data_t sBrawlyTextScripts[] = { static const struct MatchCallStruct5 sBrawlyMatchCallHeader = { .type = 5, - .v1 = 2, + .mapSec = MAPSEC_DEWFORD_TOWN, .flag = FLAG_ENABLE_BRAWLY_MATCH_CALL, .rematchTableIdx = REMATCH_BRAWLY, .desc = gBrawlyMatchCallDesc, @@ -561,7 +562,7 @@ static const match_call_text_data_t sWattsonTextScripts[] = { static const struct MatchCallStruct5 sWattsonMatchCallHeader = { .type = 5, - .v1 = 9, + .mapSec = MAPSEC_MAUVILLE_CITY, .flag = FLAG_ENABLE_WATTSON_MATCH_CALL, .rematchTableIdx = REMATCH_WATTSON, .desc = gWattsonMatchCallDesc, @@ -580,7 +581,7 @@ static const match_call_text_data_t sFlanneryTextScripts[] = { static const struct MatchCallStruct5 sFlanneryMatchCallHeader = { .type = 5, - .v1 = 3, + .mapSec = MAPSEC_LAVARIDGE_TOWN, .flag = FLAG_ENABLE_FLANNERY_MATCH_CALL, .rematchTableIdx = REMATCH_FLANNERY, .desc = gFlanneryMatchCallDesc, @@ -599,7 +600,7 @@ static const match_call_text_data_t sWinonaTextScripts[] = { static const struct MatchCallStruct5 sWinonaMatchCallHeader = { .type = 5, - .v1 = 11, + .mapSec = MAPSEC_FORTREE_CITY, .flag = FLAG_ENABLE_WINONA_MATCH_CALL, .rematchTableIdx = REMATCH_WINONA, .desc = gWinonaMatchCallDesc, @@ -618,7 +619,7 @@ static const match_call_text_data_t sTateLizaTextScripts[] = { static const struct MatchCallStruct5 sTateLizaMatchCallHeader = { .type = 5, - .v1 = 13, + .mapSec = MAPSEC_MOSSDEEP_CITY, .flag = FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL, .rematchTableIdx = REMATCH_TATE_AND_LIZA, .desc = gTateLizaMatchCallDesc, @@ -637,7 +638,7 @@ static const match_call_text_data_t sJuanTextScripts[] = { static const struct MatchCallStruct5 sJuanMatchCallHeader = { .type = 5, - .v1 = 14, + .mapSec = MAPSEC_SOOTOPOLIS_CITY, .flag = FLAG_ENABLE_JUAN_MATCH_CALL, .rematchTableIdx = REMATCH_JUAN, .desc = gJuanMatchCallDesc, @@ -653,7 +654,7 @@ static const match_call_text_data_t sSidneyTextScripts[] = { static const struct MatchCallStruct5 sSidneyMatchCallHeader = { .type = 5, - .v1 = 15, + .mapSec = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_REMATCH_SIDNEY, .rematchTableIdx = REMATCH_SIDNEY, .desc = gEliteFourMatchCallDesc, @@ -669,7 +670,7 @@ static const match_call_text_data_t sPhoebeTextScripts[] = { static const struct MatchCallStruct5 sPhoebeMatchCallHeader = { .type = 5, - .v1 = 15, + .mapSec = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_REMATCH_PHOEBE, .rematchTableIdx = REMATCH_PHOEBE, .desc = gEliteFourMatchCallDesc, @@ -685,7 +686,7 @@ static const match_call_text_data_t sGlaciaTextScripts[] = { static const struct MatchCallStruct5 sGlaciaMatchCallHeader = { .type = 5, - .v1 = 15, + .mapSec = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_REMATCH_GLACIA, .rematchTableIdx = REMATCH_GLACIA, .desc = gEliteFourMatchCallDesc, @@ -701,7 +702,7 @@ static const match_call_text_data_t sDrakeTextScripts[] = { static const struct MatchCallStruct5 sDrakeMatchCallHeader = { .type = 5, - .v1 = 15, + .mapSec = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_REMATCH_DRAKE, .rematchTableIdx = REMATCH_DRAKE, .desc = gEliteFourMatchCallDesc, @@ -717,7 +718,7 @@ static const match_call_text_data_t sWallaceTextScripts[] = { static const struct MatchCallStruct5 sWallaceMatchCallHeader = { .type = 5, - .v1 = 15, + .mapSec = MAPSEC_EVER_GRANDE_CITY, .flag = FLAG_REMATCH_WALLACE, .rematchTableIdx = REMATCH_WALLACE, .desc = gChampionMatchCallDesc, @@ -753,24 +754,24 @@ static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = { MatchCallGetFlag_Type0, MatchCallGetFlag_Type1, MatchCallGetFlag_Type2, - MatchCallGetFlag_Type3, - MatchCallGetFlag_Type4 + MatchCallGetFlag_Type4, + MatchCallGetFlag_Type3 }; -static u8 (*const gUnknown_08625310[])(match_call_t) = { - sub_81D1714, - sub_81D1718, - sub_81D171C, - sub_81D1750, - sub_81D1754 +static u8 (*const sMatchCallGetMapSecFuncs[])(match_call_t) = { + MatchCallGetMapSec_Type0, + MatchCallGetMapSec_Type1, + MatchCallGetMapSec_Type2, + MatchCallGetMapSec_Type4, + MatchCallGetMapSec_Type3 }; static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = { MatchCall_IsRematchable_Type0, MatchCall_IsRematchable_Type1, MatchCall_IsRematchable_Type2, - MatchCall_IsRematchable_Type3, - MatchCall_IsRematchable_Type4 + MatchCall_IsRematchable_Type4, + MatchCall_IsRematchable_Type3 }; static bool32 (*const gUnknown_08625338[])(match_call_t) = { @@ -785,24 +786,24 @@ static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = { MatchCall_GetRematchTableIdx_Type0, MatchCall_GetRematchTableIdx_Type1, MatchCall_GetRematchTableIdx_Type2, - MatchCall_GetRematchTableIdx_Type3, - MatchCall_GetRematchTableIdx_Type4 + MatchCall_GetRematchTableIdx_Type4, + MatchCall_GetRematchTableIdx_Type3 }; static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = { MatchCall_GetMessage_Type0, MatchCall_GetMessage_Type1, MatchCall_GetMessage_Type2, - MatchCall_GetMessage_Type3, - MatchCall_GetMessage_Type4 + MatchCall_GetMessage_Type4, + MatchCall_GetMessage_Type3 }; static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = { MatchCall_GetNameAndDesc_Type0, MatchCall_GetNameAndDesc_Type1, MatchCall_GetNameAndDesc_Type2, - MatchCall_GetNameAndDesc_Type3, - MatchCall_GetNameAndDesc_Type4 + MatchCall_GetNameAndDesc_Type4, + MatchCall_GetNameAndDesc_Type3 }; static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = { @@ -883,7 +884,7 @@ static bool32 MatchCallGetFlag_Type2(match_call_t matchCall) return FlagGet(matchCall.type2->flag); } -static bool32 MatchCallGetFlag_Type3(match_call_t matchCall) +static bool32 MatchCallGetFlag_Type4(match_call_t matchCall) { if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender) return FALSE; @@ -892,12 +893,12 @@ static bool32 MatchCallGetFlag_Type3(match_call_t matchCall) return FlagGet(matchCall.type4->flag); } -static bool32 MatchCallGetFlag_Type4(match_call_t matchCall) +static bool32 MatchCallGetFlag_Type3(match_call_t matchCall) { return FlagGet(matchCall.type3->flag); } -u8 sub_81D16DC(u32 idx) +u8 MatchCallMapSecGetByIndex(u32 idx) { match_call_t matchCall; u32 i; @@ -906,20 +907,20 @@ u8 sub_81D16DC(u32 idx) return 0; matchCall = sMatchCallHeaders[idx]; i = MatchCallGetFunctionIndex(matchCall); - return gUnknown_08625310[i](matchCall); + return sMatchCallGetMapSecFuncs[i](matchCall); } -static u8 sub_81D1714(match_call_t matchCall) +static u8 MatchCallGetMapSec_Type0(match_call_t matchCall) { - return matchCall.type0->v1; + return matchCall.type0->mapSec; } -static u8 sub_81D1718(match_call_t matchCall) +static u8 MatchCallGetMapSec_Type1(match_call_t matchCall) { - return matchCall.type1->v1; + return matchCall.type1->mapSec; } -static u8 sub_81D171C(match_call_t matchCall) +static u8 MatchCallGetMapSec_Type2(match_call_t matchCall) { s32 i; @@ -928,17 +929,17 @@ static u8 sub_81D171C(match_call_t matchCall) if (!FlagGet(matchCall.type2->v10[i].flag)) break; } - return matchCall.type2->v10[i].v2; + return matchCall.type2->v10[i].mapSec; } -static u8 sub_81D1750(match_call_t matchCall) +static u8 MatchCallGetMapSec_Type4(match_call_t matchCall) { - return 0xd5; + return MAPSEC_NONE; } -static u8 sub_81D1754(match_call_t matchCall) +static u8 MatchCallGetMapSec_Type3(match_call_t matchCall) { - return 0xd5; + return MAPSEC_NONE; } bool32 MatchCall_IsRematchable(u32 idx) @@ -970,12 +971,12 @@ static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall) return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE; } -static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall) +static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall) { return FALSE; } -static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall) +static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall) { return FALSE; } @@ -1051,12 +1052,12 @@ static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall) return matchCall.type2->rematchTableIdx; } -static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall) +static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall) { return REMATCH_TABLE_ENTRIES; } -static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall) +static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall) { return REMATCH_TABLE_ENTRIES; } @@ -1091,12 +1092,12 @@ static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest) sub_81D1920(matchCall.type2->textData, dest); } -static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest) +static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest) { sub_81D1920(matchCall.type4->textData, dest); } -static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest) +static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest) { sub_8197080(dest); } @@ -1190,13 +1191,13 @@ static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **de *desc = matchCall.type2->desc; } -static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name) +static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name) { *desc = matchCall.type4->desc; *name = matchCall.type4->name; } -static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name) +static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name) { *desc = matchCall.type3->desc; *name = matchCall.type3->name; diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c index dd91e930a..0ca0ea20d 100644 --- a/src/pokenav_unk_10.c +++ b/src/pokenav_unk_10.c @@ -60,8 +60,77 @@ u32 sub_81D0954(void); void sub_81D1500(struct Pokenav10Struct *structPtr); bool32 sub_81D1524(struct Pokenav10Struct *structPtr); void sub_81D1538(struct Sprite *sprite); +u32 sub_81D0C84(s32); +u32 sub_81D0D2C(s32); +u32 sub_81D0D8C(s32); +u32 sub_81D0E00(s32); +u32 sub_81D0C54(s32); + +const u8 gUnknown_086237F8[][4] = +{ + {1, 1, 0, 0}, + {3, 4, 1, 0}, + {3, 4, 5, 0}, + {3, 4, 9, 0}, + {3, 4, 13, 0}, + {3, 4, 17, 0}, + {1, 1, 21, 0}, + {1, 1, 22, 0}, + {1, 1, 23, 0}, + {1, 1, 24, 0}, + {1, 1, 25, 1}, + {1, 1, 26, 1}, + {1, 1, 27, 1}, + {1, 1, 28, 1}, + {1, 1, 29, 1}, + {1, 1, 30, 1}, + {1, 1, 31, 1} +}; + +#include "data/text/ribbon_descriptions.h" +#include "data/text/gift_ribbon_descriptions.h" + +const u16 gUnknown_08623FF8[] = INCBIN_U16("graphics/pokenav/ribbons_icon1.gbapal"); +const u16 gUnknown_08624018[] = INCBIN_U16("graphics/pokenav/ribbons_icon2.gbapal"); +const u16 gUnknown_08624038[] = INCBIN_U16("graphics/pokenav/ribbons_icon3.gbapal"); +const u16 gUnknown_08624058[] = INCBIN_U16("graphics/pokenav/ribbons_icon4.gbapal"); +const u16 gUnknown_08624078[] = INCBIN_U16("graphics/pokenav/ribbons_icon5.gbapal"); +const u16 gUnknown_08624098[] = INCBIN_U16("graphics/pokenav/8624098.gbapal"); +const u32 gUnknown_086240B8[] = INCBIN_U32("graphics/pokenav/ribbons_icon.4bpp.lz"); +const u32 gUnknown_08624280[] = INCBIN_U32("graphics/pokenav/ribbons_icon_big.4bpp.lz"); + +const struct BgTemplate gUnknown_08624B98[2] = +{ + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 1, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + } +}; + +const LoopedTask gUnknown_08624BA0[] = +{ + NULL, + sub_81D0C84, + sub_81D0D2C, + sub_81D0D8C, + sub_81D0E00, + sub_81D0C54 +}; -// code static const struct WindowTemplate gUnknown_08624BB8 = { .bg = 2, diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c index 3aec4685e..60aa5ea5e 100644 --- a/src/pokenav_unk_2.c +++ b/src/pokenav_unk_2.c @@ -1,6 +1,261 @@ #include "global.h" +#include "bg.h" #include "gym_leader_rematch.h" #include "pokenav.h" +#include "sprite.h" +#include "window.h" +#include "strings.h" +#include "scanline_effect.h" + +extern const u32 gPokenavOptions_Gfx[]; +extern const u16 gPokenavOptions_Pal[]; + +const u16 gUnknown_0861FC78[] = INCBIN_U16("graphics/pokenav/bg.gbapal"); +const u32 gUnknown_0861FC98[] = INCBIN_U32("graphics/pokenav/bg.4bpp.lz"); +const u32 gUnknown_0861FCAC[] = INCBIN_U32("graphics/pokenav/bg.bin.lz"); +const u16 gUnknown_0861FD4C[] = INCBIN_U16("graphics/pokenav/outline.gbapal"); +const u32 gUnknown_0861FD6C[] = INCBIN_U32("graphics/pokenav/outline.4bpp.lz"); +const u32 gUnknown_0861FFF4[] = INCBIN_U32("graphics/pokenav/outline_map.bin.lz"); +const u16 gUnknown_08620104[] = INCBIN_U16("graphics/pokenav/blue_light.gbapal"); +const u32 gUnknown_08620124[] = INCBIN_U32("graphics/pokenav/blue_light.4bpp.lz"); + +const struct BgTemplate gUnknown_08620194[3] = +{ + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x0F, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x17, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +u32 sub_81C9C6C(s32); +u32 sub_81C9CA8(s32); +u32 sub_81C9D44(s32); +u32 sub_81C9DD8(s32); +u32 sub_81C9E58(s32); +u32 sub_81C9EC8(s32); +u32 sub_81C9EF8(s32); +u32 sub_81C9F28(s32); + +u32 (*const gUnknown_086201A0[])(s32) = +{ + NULL, + sub_81C9C6C, + sub_81C9CA8, + sub_81C9D44, + sub_81C9DD8, + sub_81C9E58, + sub_81C9EC8, + sub_81C9EF8, + sub_81C9F28 +}; + +const struct CompressedSpriteSheet gUnknown_086201C4[] = +{ + { + .data = gPokenavOptions_Gfx, + .size = 0x3400, + .tag = 0x0003 + }, + { + .data = gUnknown_08620124, + .size = 0x0100, + .tag = 0x0001 + } +}; + + const struct SpritePalette gUnknown_086201D4[] = + { + {gPokenavOptions_Pal + 0x00, 4}, + {gPokenavOptions_Pal + 0x10, 5}, + {gPokenavOptions_Pal + 0x20, 6}, + {gPokenavOptions_Pal + 0x30, 7}, + {gPokenavOptions_Pal + 0x40, 8}, + {gUnknown_08620104, 3}, + {} +}; + +const u16 gUnknown_0862020C[] = {0, 0}; +const u16 gUnknown_08620210[] = {0x20, 1}; +const u16 gUnknown_08620214[] = {0x40, 4}; +const u16 gUnknown_08620218[] = {0x60, 2}; +const u16 gUnknown_0862021C[] = {0x80, 3}; +const u16 gUnknown_08620220[] = {0xA0, 1}; +const u16 gUnknown_08620224[] = {0xC0, 1}; +const u16 gUnknown_08620228[] = {0xE0, 4}; +const u16 gUnknown_0862022C[] = {0x100, 1}; +const u16 gUnknown_08620230[] = {0x120, 2}; +const u16 gUnknown_08620234[] = {0x140, 0}; +const u16 gUnknown_08620238[] = {0x160, 0}; +const u16 gUnknown_0862023C[] = {0x180, 3}; + +struct UnkStruct_08620240 +{ + u16 unk0; + u16 unk2; + const u16 *unk4[6]; +}; + +const struct UnkStruct_08620240 gUnknown_08620240[5] = +{ + { + 0x2A, + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_0862021C, NULL, NULL, NULL} + }, + { + 0x2A, + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_0862021C, NULL, NULL} + }, + { + 0x2A, + 0x14, + {gUnknown_0862020C, gUnknown_08620210, gUnknown_08620214, gUnknown_08620218, gUnknown_0862021C, NULL} + }, + { + 0x38, + 0x14, + {gUnknown_08620220, gUnknown_08620224, gUnknown_0862023C, NULL, NULL, NULL} + }, + { + 0x28, + 0x10, + {gUnknown_08620228, gUnknown_0862022C, gUnknown_08620230, gUnknown_08620234, gUnknown_08620238, gUnknown_0862023C} + }, +}; + +const struct WindowTemplate gUnknown_086202CC = +{ + .bg = 1, + .tilemapLeft = 3, + .tilemapTop = 17, + .width = 0x18, + .height = 0x2, + .paletteNum = 1, + .baseBlock = 8 +}; + +const u8 *const gUnknown_086202D4[] = +{ + gUnknown_085EBCC5, + gUnknown_085EBCE8, + gUnknown_085EBD01, + gUnknown_085EBD1C, + gUnknown_085EBD34, + gUnknown_085EBD83, + gUnknown_085EBDA2, + gUnknown_085EBDBF, + gUnknown_085EBDDB, + gUnknown_085EBDEE, + gUnknown_085EBE06, + gUnknown_085EBE19, + gUnknown_085EBE2D, + gUnknown_085EBE41 +}; + +const u8 gUnknown_0862030C[] = {6, 8, 7}; + +const u8 gUnknown_0862030F[] = {6, 8, 7, 0, 0}; + +const struct OamData gUnknown_08620314 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const union AffineAnimCmd gUnknown_0862031C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd gUnknown_0862032C[] = +{ + AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0), + AFFINEANIMCMD_FRAME(0x10, 0x10, 0, 0x12), + AFFINEANIMCMD_END, +}; + +const union AffineAnimCmd *const gUnknown_08620344[] = +{ + gUnknown_0862031C, + gUnknown_0862032C +}; + +const struct SpriteTemplate gUnknown_0862034C = +{ + .tileTag = 3, + .paletteTag = 4, + .oam = &gUnknown_08620314, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gUnknown_08620344, + .callback = SpriteCallbackDummy, +}; + +const struct OamData gUnknown_08620364 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 2, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_0862036C = +{ + .tileTag = 1, + .paletteTag = 3, + .oam = &gUnknown_08620364, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct ScanlineEffectParams gUnknown_08620384 = +{ + (void *)REG_ADDR_WIN0H, + ((DMA_ENABLE | DMA_START_HBLANK | DMA_REPEAT | DMA_DEST_RELOAD) << 16) | 1, + 1, + 0 +}; bool32 sub_81C98D4(void) { diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c index d7afada49..9b62bea78 100755 --- a/src/pokenav_unk_3.c +++ b/src/pokenav_unk_3.c @@ -37,9 +37,10 @@ static u32 sub_81CACF8(struct Pokenav3Struct *); static u32 sub_81CAD20(s32); static bool32 sub_81CB1D0(void); -extern const u8 gUnknown_08622508[]; -extern const u8 gUnknown_0862250A[]; -extern const u8 *const gUnknown_08622028[][4]; +#include "data/text/match_call_messages.h" + +const u8 gUnknown_08622508[] = {0, 2}; +const u8 gUnknown_0862250A[] = {0, 1, 2}; bool32 sub_81CAAE8(void) { @@ -207,7 +208,7 @@ static u32 sub_81CAD20(s32 taskState) { state->unk1C[state->unkA].unk2 = j; state->unk1C[state->unkA].unk0 = 1; - state->unk1C[state->unkA].unk1 = sub_81D16DC(j); + state->unk1C[state->unkA].unk1 = MatchCallMapSecGetByIndex(j); state->unkA++; } @@ -364,7 +365,7 @@ const u8 *sub_81CAFD8(int index, int textType) var0 = state->unk1C[index].unk2; } - return gUnknown_08622028[var0][textType]; + return gMatchCallMessages[var0][textType]; } u16 sub_81CB01C(void) diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c index cd9651580..93dab4491 100755 --- a/src/pokenav_unk_4.c +++ b/src/pokenav_unk_4.c @@ -93,27 +93,191 @@ static void sub_81CC330(struct Pokenav4Struct *); static struct Sprite *sub_81CC370(void); static void sub_81CC440(struct Sprite *sprite); static void sub_81CC4A4(struct Sprite *sprite); +void sub_81CC34C(struct Sprite *sprite); +u32 sub_81CB510(s32); +u32 sub_81CB588(s32); +u32 sub_81CB600(s32); +u32 sub_81CB678(s32); +u32 sub_81CB6F0(s32); +u32 sub_81CB734(s32); +u32 sub_81CB75C(s32); +u32 sub_81CB7A0(s32); +u32 sub_81CB824(s32); +u32 sub_81CB888(s32); +u32 sub_81CB93C(s32); +u32 sub_81CBAD4(s32); +u32 sub_81CB9C8(s32); +u32 sub_81CBA68(s32); +u32 sub_81CBB74(s32); -extern const LoopedTask gUnknown_08622798[]; -extern const struct BgTemplate gUnknown_0862278C[3]; -extern const u16 gUnknown_08622510[]; -extern const u32 gUnknown_08622530[]; -extern const u32 gUnknown_08622760[]; -extern const u16 gUnknown_08622700[]; -extern const u16 gUnknown_08622720[]; -extern const u8 gUnknown_086225D4[]; -extern const u16 gUnknown_086226E0[]; -extern const struct BgTemplate gUnknown_08622794; -extern const struct WindowTemplate gUnknown_086227D8; -extern const struct WindowTemplate gUnknown_086227E0; -extern const u8 *const gUnknown_086227E8[]; extern const struct WindowTemplate gUnknown_08622808; -extern const u8 gUnknown_086227F4[]; -extern const struct CompressedSpriteSheet gUnknown_08622810[1]; -extern const struct SpritePalette gUnknown_08622818[]; extern const struct SpriteTemplate gUnknown_08622830; extern const struct SpriteTemplate gUnknown_08622850; +const u16 gUnknown_08622510[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal"); +const u32 gUnknown_08622530[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz"); +const u32 gUnknown_086225D4[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz"); +const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal"); +const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz"); +const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal"); +const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal"); +const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal"); +const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz"); + +const struct BgTemplate gUnknown_0862278C[3] = +{ + { + .bg = 1, + .charBaseIndex = 3, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x80 + }, + { + .bg = 3, + .charBaseIndex = 1, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const LoopedTask gUnknown_08622798[] = +{ + NULL, + sub_81CB510, + sub_81CB588, + sub_81CB600, + sub_81CB678, + sub_81CB6F0, + sub_81CB734, + sub_81CB75C, + sub_81CB7A0, + sub_81CB824, + sub_81CB888, + sub_81CB93C, + sub_81CBAD4, + sub_81CB9C8, + sub_81CBA68, + sub_81CBB74 +}; + +const struct WindowTemplate gUnknown_086227D8 = +{ + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 5, + .width = 11, + .height = 2, + .paletteNum = 2, + .baseBlock = 16 +}; + +const struct WindowTemplate gUnknown_086227E0 = +{ + .bg = 2, + .tilemapLeft = 0, + .tilemapTop = 9, + .width = 11, + .height = 8, + .paletteNum = 2, + .baseBlock = 38 +}; + +const u8 *const gUnknown_086227E8[] = +{ + gUnknown_085EC017, + gUnknown_085EC01C, + gUnknown_085EC022 +}; + +const u8 gUnknown_086227F4[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p"); + +const struct WindowTemplate gUnknown_08622808 = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 12, + .width = 0x1C, + .height = 0x04, + .paletteNum = 1, + .baseBlock = 10 +}; + +const struct CompressedSpriteSheet gUnknown_08622810[1] = +{ + {gUnknown_086226B8, 0x40, 7} +}; + +const struct SpritePalette gUnknown_08622818[] = +{ + {gUnknown_08622698, 12}, + {} +}; + +const struct OamData gUnknown_08622828 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(8x16), + .x = 0, + .size = SPRITE_SIZE(8x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_08622830 = +{ + .tileTag = 7, + .paletteTag = 12, + .oam = &gUnknown_08622828, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81CC34C, +}; + +const struct OamData gUnknown_08622848 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(64x64), + .x = 0, + .size = SPRITE_SIZE(64x64), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_08622850 = +{ + .tileTag = 8, + .paletteTag = 13, + .oam = &gUnknown_08622848, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + bool32 sub_81CB260(void) { struct Pokenav4Struct *state = AllocSubstruct(6, sizeof(struct Pokenav4Struct)); @@ -718,7 +882,7 @@ static void sub_81CBBB8(void) template.unkE = 7; template.unk10 = sub_81CB050; template.unk14 = sub_81CBCEC; - sub_81C81D4(&gUnknown_08622794, &template, 2); + sub_81C81D4(&gUnknown_0862278C[2], &template, 2); CreateTask(sub_81CBC64, 7); } diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c index 5f24fd07f..ccab58078 100755 --- a/src/pokenav_unk_5.c +++ b/src/pokenav_unk_5.c @@ -32,11 +32,11 @@ struct Pokenav5Struct_2 u8 cityZoomPics[22][0xC8]; }; -struct CityZoomPic +struct CityMapEntry { u16 mapSecId; - u16 unk2; - const u32 *data; + u16 index; + const u32 *tilemap; }; static u32 sub_81CC568(struct Pokenav5Struct *); @@ -61,17 +61,110 @@ static void sub_81CCDE8(struct Pokenav5Struct_2 *, int, int); static void sub_81CCFA4(int); static void sub_81CCC9C(u8 taskId); static void sub_81CCF78(void); +void sub_81CCEF4(struct Sprite *sprite); +u32 sub_81CC848(s32); +u32 sub_81CC878(s32); +u32 sub_81CC8D8(s32); +u32 sub_81CC95C(s32); -extern const LoopedTask gUnknown_086230E4[]; -extern const struct BgTemplate gUnknown_086230D8[2]; -extern const struct CompressedSpriteSheet gUnknown_086230F8[1]; -extern const struct SpritePalette gUnknown_08623100[]; -extern const struct WindowTemplate gUnknown_08623110; -extern const u32 gUnknown_08622888[]; -extern const u16 gUnknown_08622868[]; extern const u16 gHoennMapZoomIcons_Pal[]; -extern const struct CityZoomPic gUnknown_08623118[22]; extern const struct SpriteTemplate gUnknown_086231D0; +extern const u32 gHoennMapZoomIcons_Gfx[]; + +const u16 gUnknown_08622868[] = INCBIN_U16("graphics/pokenav/8622868.gbapal"); +const u32 gUnknown_08622888[] = INCBIN_U32("graphics/pokenav/zoom_tiles.4bpp.lz"); + +#include "data/region_map/city_map_tilemaps.h" + + +const struct BgTemplate gUnknown_086230D8[3] = +{ + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 0x00, + .screenSize = 2, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, +}; + +const LoopedTask gUnknown_086230E4[] = +{ + NULL, + sub_81CC848, + sub_81CC878, + sub_81CC8D8, + sub_81CC95C +}; + +const struct CompressedSpriteSheet gUnknown_086230F8[1] = +{ + {gHoennMapZoomIcons_Gfx, 0x800, 6} +}; + +const struct SpritePalette gUnknown_08623100[] = +{ + {gHoennMapZoomIcons_Pal, 11}, + {} +}; + +const struct WindowTemplate gUnknown_08623110 = +{ + .bg = 1, + .tilemapLeft = 17, + .tilemapTop = 4, + .width = 12, + .height = 13, + .paletteNum = 1, + .baseBlock = 0x4C +}; + +#include "data/region_map/city_map_entries.h" + +const struct OamData gUnknown_086231C8 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x8), + .x = 0, + .size = SPRITE_SIZE(32x8), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const struct SpriteTemplate gUnknown_086231D0 = +{ + .tileTag = 6, + .paletteTag = 11, + .oam = &gUnknown_086231C8, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_81CCEF4, +}; u32 sub_81CC4D4(void) { @@ -215,7 +308,7 @@ static u32 sub_81CC6F4(s32 taskState) HideBg(2); HideBg(3); SetBgMode(1); - InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8)); + InitBgTemplates(gUnknown_086230D8, ARRAY_COUNT(gUnknown_086230D8) - 1); regionMap = GetSubstructPtr(16); sub_8122CF8(regionMap, &gUnknown_086230D8[1], sub_81CC6D0()); sub_81CC9C0(); @@ -278,7 +371,7 @@ static u32 sub_81CC6F4(s32 taskState) } } -u32 sub_81CC848(int taskState) +u32 sub_81CC848(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); switch (taskState) @@ -295,7 +388,7 @@ u32 sub_81CC848(int taskState) return 4; } -u32 sub_81CC878(int taskState) +u32 sub_81CC878(s32 taskState) { switch (taskState) { @@ -321,7 +414,7 @@ u32 sub_81CC878(int taskState) return 4; } -u32 sub_81CC8D8(int taskState) +u32 sub_81CC8D8(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); switch (taskState) @@ -354,7 +447,7 @@ u32 sub_81CC8D8(int taskState) return 4; } -u32 sub_81CC95C(int taskState) +u32 sub_81CC95C(s32 taskState) { switch (taskState) { @@ -521,9 +614,9 @@ static bool32 sub_81CCD24(void) static u32 sub_81CCD34(s32 taskState) { struct Pokenav5Struct_2 *state = GetSubstructPtr(4); - if (taskState < (int)ARRAY_COUNT(gUnknown_08623118)) + if (taskState < (int)ARRAY_COUNT(gPokenavCityMaps)) { - LZ77UnCompWram(gUnknown_08623118[taskState].data, state->cityZoomPics[taskState]); + LZ77UnCompWram(gPokenavCityMaps[taskState].tilemap, state->cityZoomPics[taskState]); return 1; } @@ -533,10 +626,10 @@ static u32 sub_81CCD34(s32 taskState) static void sub_81CCD70(struct Pokenav5Struct_2 *state, int mapSecId, int pos) { int i; - for (i = 0; i < (int)ARRAY_COUNT(gUnknown_08623118) && (gUnknown_08623118[i].mapSecId != mapSecId || gUnknown_08623118[i].unk2 != pos); i++) + for (i = 0; i < (int)ARRAY_COUNT(gPokenavCityMaps) && (gPokenavCityMaps[i].mapSecId != mapSecId || gPokenavCityMaps[i].index != pos); i++) ; - if (i == ARRAY_COUNT(gUnknown_08623118)) + if (i == ARRAY_COUNT(gPokenavCityMaps)) return; FillBgTilemapBufferRect_Palette0(1, 0x1041, 17, 6, 12, 11); diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c index ff5d2cc6e..90b677fa7 100644 --- a/src/pokenav_unk_7.c +++ b/src/pokenav_unk_7.c @@ -1,5 +1,7 @@ #include "global.h" #include "bg.h" +#include "window.h" +#include "pokenav.h" #include "decompress.h" #include "gpu_regs.h" #include "graphics.h" @@ -13,7 +15,106 @@ #include "strings.h" #include "text.h" -static u8 gUnknown_030012BC; +u32 sub_81CE37C(s32); +u32 sub_81CE2D0(s32); +u32 sub_81CE4D8(s32); +u32 sub_81CE5E4(s32); +u32 sub_81CE6BC(s32); +u32 sub_81CE700(s32); + +BSS_DATA u8 gUnknown_030012BC; + +const u16 gUnknown_086231E8[] = INCBIN_U16("graphics/pokenav/86231E8.gbapal"); +const u16 gUnknown_08623208[] = INCBIN_U16("graphics/pokenav/8623208.gbapal"); +const u32 gUnknown_08623228[] = INCBIN_U32("graphics/pokenav/8623228.4bpp.lz"); +const u32 gUnknown_0862323C[] = INCBIN_U32("graphics/pokenav/862323C.bin.lz"); +const u16 gUnknown_08623338[] = INCBIN_U16("graphics/pokenav/8623338.gbapal"); + +const struct BgTemplate gUnknown_08623358[3] = +{ + { + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + }, + { + .bg = 2, + .charBaseIndex = 3, + .mapBaseIndex = 0x1D, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 2, + .mapBaseIndex = 0x1E, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + } +}; + +const struct WindowTemplate gUnknown_08623364 = +{ + .bg = 1, + .tilemapLeft = 13, + .tilemapTop = 1, + .width = 13, + .height = 4, + .paletteNum = 15, + .baseBlock = 2 +}; + +const struct WindowTemplate gUnknown_0862336C = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 7, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x36 +}; + +const struct WindowTemplate gUnknown_08623374 = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 0x1C, + .width = 5, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x44 +}; + +const struct WindowTemplate gUnknown_0862337C = +{ + .bg = 1, + .tilemapLeft = 13, + .tilemapTop = 0x1C, + .width = 3, + .height = 2, + .paletteNum = 15, + .baseBlock = 0x44 +}; + +const LoopedTask gUnknown_08623384[] = +{ + NULL, + sub_81CE37C, + sub_81CE2D0, + sub_81CE4D8, + sub_81CE5E4, + sub_81CE6BC, + sub_81CE700 +}; struct Pokenav7Struct { @@ -52,19 +153,6 @@ void sub_81CEEC8(void); void sub_81CEE68(void); void sub_81CEE74(bool8 showBg); -// const data -extern const LoopedTask gUnknown_08623384[]; -extern const struct BgTemplate gUnknown_08623358[3]; -extern const u32 gUnknown_08623228[]; -extern const u32 gUnknown_0862323C[]; -extern const u16 gUnknown_086231E8[]; -extern const u16 gUnknown_08623338[]; -extern const u16 gUnknown_08623208[]; -extern const struct WindowTemplate gUnknown_08623364; -extern const struct WindowTemplate gUnknown_0862336C; -extern const struct WindowTemplate gUnknown_08623374; -extern const struct WindowTemplate gUnknown_0862337C; - // code bool32 sub_81CDDD4(void) { diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c index 56ffd0f0a..bcafc14d0 100644 --- a/src/pokenav_unk_8.c +++ b/src/pokenav_unk_8.c @@ -1,5 +1,81 @@ #include "global.h" #include "pokenav.h" +#include "bg.h" +#include "window.h" + +u32 sub_81CF134(void); +u32 sub_81CF1C4(void); +u32 sub_81CF1D8(void); +u32 sub_81CF278(void); +u32 sub_81CF578(s32); +u32 sub_81CF5F0(s32); +u32 sub_81CF668(s32); +u32 sub_81CF6E0(s32); +u32 sub_81CF758(s32); +u32 sub_81CF798(s32); + +const u32 gUnknown_086233A0[] = {0x16, 0x17, 0x18, 0x21, 0x2F}; + +u32 (*const gUnknown_086233B4[])(void) = +{ + sub_81CF134, + sub_81CF1C4, + sub_81CF1D8, + sub_81CF278 +}; + +const u16 gUnknown_086233C4[] = INCBIN_U16("graphics/pokenav/condition_search2.gbapal"); +const u32 gUnknown_086233E4[] = INCBIN_U32("graphics/pokenav/condition_search2.4bpp.lz"); +const u32 gUnknown_086234AC[] = INCBIN_U32("graphics/pokenav/condition_search2.bin.lz"); +const u16 gUnknown_08623570[] = INCBIN_U16("graphics/pokenav/8623570.gbapal"); + +const struct BgTemplate gUnknown_08623590 = +{ + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 +}; + +const struct BgTemplate gUnknown_08623594 = +{ + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 +}; + +const LoopedTask gUnknown_08623598[] = +{ + NULL, + sub_81CF578, + sub_81CF5F0, + sub_81CF668, + sub_81CF6E0, + sub_81CF758, + sub_81CF798 +}; + +const struct WindowTemplate gUnknown_086235B4 = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 7, + .height = 2, + .paletteNum = 1, + .baseBlock = 20 +}; + +const u8 gUnknown_086235BC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +const u8 gUnknown_086235C8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +const u8 gUnknown_086235D4[] = _("{UNK_SPACER}"); struct PokenavSub7 { @@ -12,8 +88,6 @@ struct PokenavSub7 struct PokenavSub18 *unkPtr; }; -extern const u32 gUnknown_086233A0[]; - u32 sub_81CF010(struct PokenavSub7 *structPtr); u32 sub_81CF030(struct PokenavSub7 *structPtr); u32 sub_81CF0B8(struct PokenavSub7 *structPtr); diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c new file mode 100644 index 000000000..2927d7211 --- /dev/null +++ b/src/pokenav_unk_9.c @@ -0,0 +1,74 @@ +#include "global.h" +#include "pokenav.h" +#include "bg.h" +#include "window.h" + +u32 sub_81CFB8C(void); +u32 sub_81CFC2C(void); +u32 sub_81CFC40(void); +u32 sub_81CFFFC(s32); +u32 sub_81D0074(s32); +u32 sub_81D00EC(s32); +u32 sub_81D0164(s32); +u32 sub_81D01DC(s32); +u32 sub_81D021C(s32); + +u32 (*const gUnknown_086235D8[])(void) = +{ + sub_81CFB8C, + sub_81CFC2C, + sub_81CFC40 +}; + +const u16 gUnknown_086235E4[] = INCBIN_U16("graphics/pokenav/ui_ribbons.gbapal"); +const u32 gUnknown_08623604[] = INCBIN_U32("graphics/pokenav/ui_ribbons.4bpp.lz"); +const u32 gUnknown_086236CC[] = INCBIN_U32("graphics/pokenav/ui_ribbons.bin.lz"); +const u16 gUnknown_08623790[] = INCBIN_U16("graphics/pokenav/8623790.gbapal"); + +const struct BgTemplate gUnknown_086237B0 = +{ + .bg = 1, + .charBaseIndex = 1, + .mapBaseIndex = 0x06, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0 +}; + +const struct BgTemplate gUnknown_086237B4 = +{ + .bg = 2, + .charBaseIndex = 2, + .mapBaseIndex = 0x07, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 +}; + +const LoopedTask gUnknown_086237B8[] = +{ + NULL, + sub_81CFFFC, + sub_81D0074, + sub_81D00EC, + sub_81D0164, + sub_81D01DC, + sub_81D021C +}; + +const struct WindowTemplate gUnknown_086237D4 = +{ + .bg = 1, + .tilemapLeft = 1, + .tilemapTop = 6, + .width = 7, + .height = 2, + .paletteNum = 1, + .baseBlock = 20 +}; + +const u8 gUnknown_086237DC[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_RED}{WHITE}{GREEN}♂{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +const u8 gUnknown_086237E8[] = _("{COLOR_HIGHLIGHT_SHADOW}{LIGHT_GREEN}{WHITE}{BLUE}♀{COLOR_HIGHLIGHT_SHADOW}{DARK_GREY}{WHITE}{LIGHT_GREY}"); +const u8 gUnknown_086237F4[] = _("{UNK_SPACER}"); diff --git a/src/text.c b/src/text.c index 91a82b19f..7e4fa7104 100644 --- a/src/text.c +++ b/src/text.c @@ -462,6 +462,108 @@ u8 GetLastTextColor(u8 colorType) } } +#ifdef NONMATCHING + +#define GLYPH_COPY(fromY_, toY_, fromX_, toX_, unk) \ +{ \ + u32 i, j, *ptr, toY, fromX, toX, r5, toOrr, bits; \ + u8 *dst; \ + \ + j = fromX_; \ + i = fromY_; \ + ptr = unk; \ + toX = toX_; \ + toY = toY_; \ + fromX = fromX_; \ + \ + for (; i < toY; i++) \ + { \ + r5 = *(ptr++); \ + for (j = fromX; j < toX; j++) \ + { \ + toOrr = r5 & 0xF; \ + if (toOrr) \ + { \ + dst = windowTiles + ((j / 8) * 32) + ((j & 7) / 2) + ((i / 8) * widthOffset) + ((i & 7) * 4); \ + bits = ((j & 1) << 2); \ + *dst = ((toOrr << bits) | (*dst & (0xF0 >> bits))); \ + } \ + r5 >>= 4; \ + } \ + } \ +} + +void CopyGlyphToWindow(struct TextPrinter *textPrinter) +{ + struct Window *win; + struct WindowTemplate *winTempl; + struct Struct_03002F90 *unkStruct; + u32 currX, widthOffset, currY; + s32 r4, r0; + u8 *windowTiles; + + win = &gWindows[textPrinter->printerTemplate.windowId]; + winTempl = &win->window; + + r4 = (winTempl->width * 8) - textPrinter->printerTemplate.currentX; + if (r4 > gUnknown_03002F90.unk80) + r4 = gUnknown_03002F90.unk80; + + r0 = (winTempl->height * 8) - textPrinter->printerTemplate.currentY; + if (r0 > gUnknown_03002F90.unk81) + r0 = gUnknown_03002F90.unk81; + + currX = textPrinter->printerTemplate.currentX; + currY = textPrinter->printerTemplate.currentY; + unkStruct = &gUnknown_03002F90; + windowTiles = win->tileData; + widthOffset = winTempl->width * 32; + + if (r4 <= 8) + { + if (r0 <= 8) + { + GLYPH_COPY(currY, currY + r0, currX, currX + r4, unkStruct->unk0); + } + else + { + u32 temp; + GLYPH_COPY(currY, currY + 8, currX, currX + r4, unkStruct->unk0); + + temp = currY + 8; + GLYPH_COPY(temp, (temp - 8) + r0, currX, currX + r4, unkStruct->unk40); + } + } + else + { + if (r0 <= 8) + { + u32 temp; + GLYPH_COPY(currY, currY + r0, currX, currX + 8, unkStruct->unk0); + + temp = currX + 8; + GLYPH_COPY(currY, currY + r0, temp, (temp - 8) + r4, unkStruct->unk20); + } + else + { + u32 temp; + GLYPH_COPY(currY, currY + 8, currX, currX + 8, unkStruct->unk0); + + temp = currX + 8; + GLYPH_COPY(currY, currY + 8, temp, temp - 8 + r4, unkStruct->unk20); + + temp = currY + 8; + GLYPH_COPY(temp, temp - 8 + r0, currX, currX + 8, unkStruct->unk40); + { + u32 tempX, tempY; + tempX = currX + 8; + tempY = currY + 8; + GLYPH_COPY(tempY, tempY - 8 + r0, tempX, tempX - 8 + r4, unkStruct->unk60); + } + } + } +} +#else NAKED void CopyGlyphToWindow(struct TextPrinter *x) { @@ -1164,6 +1266,7 @@ _080052AA:\n\ bx r0\n\ .pool"); } +#endif // NONMATCHING void ClearTextSpan(struct TextPrinter *textPrinter, u32 width) { diff --git a/src/union_room.c b/src/union_room.c index 486771af7..01288c8cc 100644 --- a/src/union_room.c +++ b/src/union_room.c @@ -1,53 +1,54 @@ #include "global.h" -#include "window.h" +#include "alloc.h" +#include "battle.h" +#include "berry_crush.h" #include "bg.h" -#include "random.h" -#include "string_util.h" -#include "task.h" +#include "cable_club.h" +#include "data.h" +#include "decompress.h" +#include "dodrio_berry_picking.h" +#include "dynamic_placeholder_text_util.h" +#include "easy_chat.h" #include "event_data.h" +#include "event_obj_lock.h" +#include "field_control_avatar.h" +#include "field_player_avatar.h" +#include "field_screen_effect.h" +#include "field_weather.h" +#include "international_string_util.h" +#include "librfu.h" #include "link.h" #include "link_rfu.h" -#include "librfu.h" -#include "alloc.h" -#include "menu.h" #include "list_menu.h" +#include "load_save.h" +#include "menu.h" #include "menu_helpers.h" -#include "script.h" -#include "sound.h" -#include "constants/songs.h" -#include "constants/game_stat.h" -#include "constants/maps.h" -#include "constants/species.h" -#include "constants/rgb.h" -#include "constants/battle_frontier.h" -#include "trade.h" -#include "trainer_card.h" +#include "mevent.h" +#include "mystery_gift.h" #include "overworld.h" -#include "battle.h" -#include "load_save.h" -#include "cable_club.h" -#include "field_control_avatar.h" -#include "party_menu.h" -#include "field_weather.h" #include "palette.h" -#include "decompress.h" -#include "start_menu.h" -#include "data.h" -#include "field_screen_effect.h" +#include "party_menu.h" +#include "pokemon_jump.h" +#include "random.h" +#include "script.h" #include "script_pokemon_util_80F87D8.h" -#include "international_string_util.h" -#include "field_player_avatar.h" +#include "sound.h" +#include "start_menu.h" +#include "string_util.h" #include "strings.h" -#include "mevent.h" -#include "dynamic_placeholder_text_util.h" +#include "task.h" +#include "trade.h" +#include "trainer_card.h" #include "union_room.h" -#include "easy_chat.h" -#include "event_obj_lock.h" #include "union_room_chat.h" -#include "berry_crush.h" -#include "mystery_gift.h" #include "union_room_player_avatar.h" -#include "pokemon_jump.h" +#include "window.h" +#include "constants/battle_frontier.h" +#include "constants/game_stat.h" +#include "constants/maps.h" +#include "constants/rgb.h" +#include "constants/songs.h" +#include "constants/species.h" EWRAM_DATA u8 gUnknown_02022C20[12] = {}; EWRAM_DATA u8 gUnknown_02022C2C = 0; @@ -98,7 +99,6 @@ bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1) u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId); void sub_801807C(struct TradeUnkStruct *arg0); void sub_801AC54(void); -void sub_802493C(u8 monId, MainCallback callback); void sub_80149D8(void); void MG_DrawTextBorder(u8 windowId); s8 mevent_message_print_and_prompt_yes_no(u8 *textState, u8 *arg1, u8 arg2, const u8 *str); diff --git a/src/use_pokeblock.c b/src/use_pokeblock.c index f28b651cc..655f38def 100644 --- a/src/use_pokeblock.c +++ b/src/use_pokeblock.c @@ -85,6 +85,10 @@ struct UsePokeblockStruct /*0x7FD0*/ struct UsePokeblockSubStruct info; }; +#define TAG_TILE_CONDITION_UP_DOWN 0 +#define TAG_PAL_CONDITION_UP_DOWN 0 +#define TAG_PAL_POKEBLOCK_CONDITION 1 + extern void sub_81D21DC(u8); // this file's functions @@ -130,26 +134,12 @@ static u8 sub_8168048(void); void sub_8168180(struct Sprite *sprite); void sub_81681B4(struct Sprite *sprite); void sub_8168168(struct Sprite *sprite); +void sub_8168374(struct Sprite *sprite); -extern const struct BgTemplate gUnknown_085DFCCC[4]; -extern const struct WindowTemplate gUnknown_085DFCDC[]; -extern const struct WindowTemplate sUsePokeblockYesNoWinTemplate[]; -extern const u8* sContestStatNames[]; -extern const u32 gUnknown_085DFCB0[]; -extern const u8 gUnknown_085DFCC4[]; -extern const struct SpriteSheet gSpriteSheet_ConditionUpDown; -extern const struct SpritePalette gSpritePalette_ConditionUpDown; -extern const struct SpriteTemplate gSpriteTemplate_085DFD5C; -extern const s16 gUnknown_085DFD28[][2]; -extern const u32 gUnknown_085DFB60[]; -extern const u32 gUnknown_085DFA80[]; -extern const u32 gUnknown_085DFA60[]; -extern const u32 gUnknown_085DFC0C[]; extern const u16 gUnknown_086231E8[]; extern const u16 gUnknown_08623208[]; -extern const u8 gUnknown_085DFCC9[]; -extern const struct SpritePalette gUnknown_085DFDB8; -extern const struct SpriteTemplate gUnknown_085DFDA0; +extern const struct SpritePalette gSpritePalette_085DFDB8; +extern const struct SpriteTemplate gSpriteTemplate_085DFDA0; // ram variables EWRAM_DATA struct UsePokeblockSubStruct *gUnknown_0203BC90 = NULL; @@ -165,6 +155,245 @@ EWRAM_DATA struct UsePokeblockStruct *gUnknown_0203BCAC = NULL; // const rom data // todo: make it static once the file is decompiled +const u32 gUnknown_085DFA60[] = INCBIN_U32("graphics/interface/85DFA60.bin"); +const u32 gUnknown_085DFA80[] = INCBIN_U32("graphics/interface/85DFA80.4bpp"); +const u32 gUnknown_085DFB60[] = INCBIN_U32("graphics/interface/85DFB60.bin"); +const u32 gUnknown_085DFC0C[] = INCBIN_U32("graphics/interface/85DFC0C.bin"); + +const u32 gUnknown_085DFCB0[] = +{ + MON_DATA_COOL, + MON_DATA_TOUGH, + MON_DATA_SMART, + MON_DATA_CUTE, + MON_DATA_BEAUTY +}; + +const u8 gUnknown_085DFCC4[] = +{ + 0, // Spicy/Cool + 4, // Dry/Beauty + 3, // Sweet/Cute + 2, // Bitter/Smart + 1 // Sour/Tough +}; + +const u8 gUnknown_085DFCC9[] = +{ + 0, + 8, + 1 +}; + +const struct BgTemplate gUnknown_085DFCCC[4] = +{ + { + .bg = 0, + .charBaseIndex = 2, + .mapBaseIndex = 0x1F, + .screenSize = 0, + .paletteMode = 0, + .priority = 0, + .baseTile = 0 + }, + { + .bg = 1, + .charBaseIndex = 0, + .mapBaseIndex = 0x1E, + .screenSize = 0, + .paletteMode = 0, + .priority = 3, + .baseTile = 0 + }, + { + .bg = 3, + .charBaseIndex = 3, + .mapBaseIndex = 0x1D, + .screenSize = 0, + .paletteMode = 0, + .priority = 2, + .baseTile = 0x100 + }, + { + .bg = 2, + .charBaseIndex = 0, + .mapBaseIndex = 0x17, + .screenSize = 0, + .paletteMode = 0, + .priority = 1, + .baseTile = 0 + } +}; + +const struct WindowTemplate gUnknown_085DFCDC[] = +{ + { + .bg = 0, + .tilemapLeft = 0xD, + .tilemapTop = 1, + .width = 0xD, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 1 + }, + { + .bg = 0, + .tilemapLeft = 0, + .tilemapTop = 0xE, + .width = 0xB, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x35 + }, + { + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 0x11, + .width = 0x1C, + .height = 2, + .paletteNum = 0xF, + .baseBlock = 0x4B + }, + DUMMY_WIN_TEMPLATE +}; + +const struct WindowTemplate sUsePokeblockYesNoWinTemplate = +{ + .bg = 0, + .tilemapLeft = 0x18, + .tilemapTop = 0xB, + .width = 5, + .height = 4, + .paletteNum = 0xF, + .baseBlock = 0x83 +}; + +const u8 *const sContestStatNames[] = +{ + gText_Coolness, + gText_Toughness, + gText_Smartness, + gText_Cuteness, + gText_Beauty3 +}; + +const struct SpriteSheet gSpriteSheet_ConditionUpDown = +{ + gUsePokeblockUpDown_Gfx, 0x200, TAG_TILE_CONDITION_UP_DOWN +}; + +const struct SpritePalette gSpritePalette_ConditionUpDown = +{ + gUsePokeblockUpDown_Pal, TAG_PAL_CONDITION_UP_DOWN +}; + +const s16 gUnknown_085DFD28[][2] = +{ + {0x9C, 0x24}, + {0x75, 0x3B}, + {0x75, 0x76}, + {0xC5, 0x76}, + {0xC5, 0x3B} +}; + +const struct OamData gOamData_085DFD3C = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(32x16), + .x = 0, + .size = SPRITE_SIZE(32x16), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const union AnimCmd gSpriteAnim_085DFD44[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_085DFD4C[] = +{ + ANIMCMD_FRAME(8, 5), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_085DFD54[] = +{ + gSpriteAnim_085DFD44, + gSpriteAnim_085DFD4C +}; + +const struct SpriteTemplate gSpriteTemplate_085DFD5C = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gOamData_085DFD3C, + .anims = gSpriteAnimTable_085DFD54, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, +}; + +const struct OamData gOamData_085DFD74 = +{ + .y = 0, + .affineMode = 0, + .objMode = 0, + .bpp = 0, + .shape = SPRITE_SHAPE(64x32), + .x = 0, + .size = SPRITE_SIZE(64x32), + .tileNum = 0, + .priority = 1, + .paletteNum = 0, +}; + +const union AnimCmd gSpriteAnim_085DFD7C[] = +{ + ANIMCMD_FRAME(0, 5), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_085DFD84[] = +{ + ANIMCMD_FRAME(32, 5), + ANIMCMD_END +}; + +const union AnimCmd gSpriteAnim_085DFD8C[] = +{ + ANIMCMD_FRAME(64, 5), + ANIMCMD_END +}; + +const union AnimCmd *const gSpriteAnimTable_085DFD94[] = +{ + gSpriteAnim_085DFD7C, + gSpriteAnim_085DFD84, + gSpriteAnim_085DFD8C +}; + +const struct SpriteTemplate gSpriteTemplate_085DFDA0 = +{ + .tileTag = 1, + .paletteTag = 1, + .oam = &gOamData_085DFD74, + .anims = gSpriteAnimTable_085DFD94, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8168374, +}; + +const struct SpritePalette gSpritePalette_085DFDB8 = +{ + gUsePokeblockCondition_Pal, TAG_PAL_POKEBLOCK_CONDITION +}; + // code void ChooseMonToGivePokeblock(struct Pokeblock *pokeblock, void (*callback)(void)) { @@ -618,7 +847,7 @@ void sub_8166D44(void) AddTextPrinterParameterized(2, 1, gStringVar4, 0, 1, 0, NULL); PutWindowTilemap(2); CopyWindowToVram(2, 3); - CreateYesNoMenu(sUsePokeblockYesNoWinTemplate, 151, 14, 0); + CreateYesNoMenu(&sUsePokeblockYesNoWinTemplate, 151, 14, 0); } s8 sub_8166DE4(void) @@ -1373,7 +1602,7 @@ static void sub_8168248(void) struct CompressedSpriteSheet spriteSheet; struct SpritePalette spritePalette; - spritePalette = gUnknown_085DFDB8; + spritePalette = gSpritePalette_085DFDB8; spriteSheet.data = gUsePokeblockCondition_Gfx; spriteSheet.size = 0x800; spriteSheet.tag = 1; @@ -1388,7 +1617,7 @@ static void sub_8168294(void) int yStart = 17; int var = 8; struct Sprite **sprites = gUnknown_0203BCAC->field_7B44; - const struct SpriteTemplate *template = &gUnknown_085DFDA0; + const struct SpriteTemplate *template = &gSpriteTemplate_085DFDA0; for (i = 0, xDiff = 64, xStart = -96; i < 2; i++) { |