diff --git a/asm/code_80130A8.s b/asm/code_80130A8.s index da6218bc2..21bee0f90 100644 --- a/asm/code_80130A8.s +++ b/asm/code_80130A8.s @@ -5,1210 +5,6 @@ .text - thumb_func_start AddMenuCursorSprite_ -AddMenuCursorSprite_: - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - movs r1, 0x1A - ldrsh r0, [r6, r1] - cmp r0, 0 - bgt _080131CC - b _080132D6 -_080131CC: - adds r0, r6, 0 - bl UpdateMenuCursorSpriteCoords - ldrh r1, [r6, 0x24] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _080132D6 - mov r0, sp - ldrh r0, [r0] - ldr r1, _080132FC - ands r1, r0 - ldr r3, _08013300 - ldr r0, [sp] - ands r0, r3 - orrs r0, r1 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - adds r2, r3, 0 - ands r2, r0 - orrs r2, r1 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013304 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r4, _08013308 - adds r0, r4, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _0801330C - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013310 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013314 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - ands r3, r1 - orrs r3, r0 - str r3, [sp] - mov r3, sp - movs r2, 0xFD - lsls r2, 2 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r5, 0xF - movs r1, 0xF0 - lsls r1, 8 - ldr r4, _08013318 - ands r0, r4 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x6] - ldr r1, _0801331C - ands r1, r0 - ldr r0, _08013320 - ands r1, r0 - movs r2, 0x8 - ldrsh r0, [r6, r2] - ldr r2, _08013324 - ands r0, r2 - strh r0, [r3, 0x2] - movs r2, 0xA - ldrsh r0, [r6, r2] - adds r0, 0x1 - ands r0, r4 - lsls r0, 4 - ands r1, r5 - orrs r1, r0 - strh r1, [r3, 0x6] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - movs r3, 0 - bl AddSprite -_080132D6: - adds r0, r6, 0 - bl sub_8013470 - movs r1, 0x14 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _080132EC - adds r0, r6, 0 - adds r0, 0x14 - bl sub_801332C -_080132EC: - ldrh r0, [r6, 0x24] - adds r0, 0x1 - strh r0, [r6, 0x24] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080132FC: .4byte 0x0000feff -_08013300: .4byte 0xffff0000 -_08013304: .4byte 0x0000fdff -_08013308: .4byte 0x0000f3ff -_0801330C: .4byte 0x0000efff -_08013310: .4byte 0x0000dfff -_08013314: .4byte 0x00003fff -_08013318: .4byte 0x00000fff -_0801331C: .4byte 0x0000fffe -_08013320: .4byte 0x0000fffd -_08013324: .4byte 0x000001ff - thumb_func_end AddMenuCursorSprite_ - - thumb_func_start nullsub_34 -nullsub_34: - bx lr - thumb_func_end nullsub_34 - - thumb_func_start sub_801332C -sub_801332C: - push {r4-r6,lr} - sub sp, 0x8 - movs r1, 0 - movs r2, 0 - str r1, [sp] - str r2, [sp, 0x4] - mov r1, sp - ldrh r1, [r1] - ldr r2, _08013440 - ands r2, r1 - ldr r4, _08013444 - ldr r1, [sp] - ands r1, r4 - orrs r1, r2 - str r1, [sp] - mov r2, sp - ldrh r2, [r2] - adds r3, r4, 0 - ands r3, r1 - orrs r3, r2 - str r3, [sp] - mov r1, sp - ldrh r2, [r1] - ldr r1, _08013448 - ands r1, r2 - adds r2, r4, 0 - ands r2, r3 - orrs r2, r1 - str r2, [sp] - mov r1, sp - ldrh r1, [r1] - adds r3, r4, 0 - ands r3, r2 - orrs r3, r1 - str r3, [sp] - movs r5, 0x80 - lsls r5, 3 - mov r1, sp - ldrh r2, [r1] - ldr r6, _0801344C - adds r1, r6, 0 - ands r1, r2 - adds r2, r4, 0 - ands r2, r3 - orrs r2, r1 - str r2, [sp] - mov r1, sp - ldrh r1, [r1] - orrs r5, r1 - adds r3, r4, 0 - ands r3, r2 - orrs r3, r5 - str r3, [sp] - mov r1, sp - ldrh r2, [r1] - ldr r1, _08013450 - ands r1, r2 - adds r2, r4, 0 - ands r2, r3 - orrs r2, r1 - str r2, [sp] - mov r1, sp - ldrh r1, [r1] - adds r3, r4, 0 - ands r3, r2 - orrs r3, r1 - str r3, [sp] - mov r1, sp - ldrh r2, [r1] - ldr r1, _08013454 - ands r1, r2 - adds r2, r4, 0 - ands r2, r3 - orrs r2, r1 - str r2, [sp] - mov r1, sp - ldrh r1, [r1] - adds r3, r4, 0 - ands r3, r2 - orrs r3, r1 - str r3, [sp] - mov r1, sp - ldrh r2, [r1] - ldr r1, _08013458 - ands r1, r2 - adds r2, r4, 0 - ands r2, r3 - orrs r2, r1 - str r2, [sp] - mov r1, sp - ldrh r1, [r1] - ands r4, r2 - orrs r4, r1 - str r4, [sp] - mov r4, sp - ldr r3, _0801345C - ldrh r2, [r4, 0x4] - movs r1, 0xFC - lsls r1, 8 - ands r1, r2 - orrs r1, r3 - ands r1, r6 - movs r6, 0xF - movs r2, 0xF0 - lsls r2, 8 - ldr r5, _08013460 - ands r1, r5 - orrs r1, r2 - strh r1, [r4, 0x4] - ldrh r1, [r4, 0x6] - ldr r2, _08013464 - ands r2, r1 - ldr r1, _08013468 - ands r2, r1 - movs r3, 0 - ldrsh r1, [r0, r3] - ldr r3, _0801346C - ands r1, r3 - strh r1, [r4, 0x2] - movs r1, 0x2 - ldrsh r0, [r0, r1] - adds r0, 0x1 - ands r0, r5 - lsls r0, 4 - ands r2, r6 - orrs r2, r0 - strh r2, [r4, 0x6] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - movs r3, 0 - bl AddSprite - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013440: .4byte 0x0000feff -_08013444: .4byte 0xffff0000 -_08013448: .4byte 0x0000fdff -_0801344C: .4byte 0x0000f3ff -_08013450: .4byte 0x0000efff -_08013454: .4byte 0x0000dfff -_08013458: .4byte 0x00003fff -_0801345C: .4byte 0x000003f5 -_08013460: .4byte 0x00000fff -_08013464: .4byte 0x0000fffe -_08013468: .4byte 0x0000fffd -_0801346C: .4byte 0x000001ff - thumb_func_end sub_801332C - - thumb_func_start sub_8013470 -sub_8013470: - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r0, 0 - movs r1, 0 - str r0, [sp] - str r1, [sp, 0x4] - movs r1, 0xC - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _08013488 - b _08013624 -_08013488: - movs r2, 0x1E - ldrsh r0, [r6, r2] - cmp r0, 0 - beq _08013586 - mov r0, sp - ldrh r0, [r0] - ldr r1, _0801362C - ands r1, r0 - ldr r3, _08013630 - ldr r0, [sp] - ands r0, r3 - orrs r0, r1 - str r0, [sp] - mov r1, sp - ldrh r1, [r1] - adds r2, r3, 0 - ands r2, r0 - orrs r2, r1 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013634 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r4, _08013638 - adds r0, r4, 0 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _0801363C - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013640 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - adds r2, r3, 0 - ands r2, r1 - orrs r2, r0 - str r2, [sp] - mov r0, sp - ldrh r1, [r0] - ldr r0, _08013644 - ands r0, r1 - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - ldrh r0, [r0] - ands r3, r1 - orrs r3, r0 - str r3, [sp] - mov r3, sp - ldr r2, _08013648 - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r5, 0xF - movs r1, 0xF0 - lsls r1, 8 - ldr r4, _0801364C - ands r0, r4 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x6] - ldr r1, _08013650 - ands r1, r0 - ldr r0, _08013654 - ands r1, r0 - movs r2, 0xC - ldrsh r0, [r6, r2] - ldr r2, _08013658 - ands r0, r2 - strh r0, [r3, 0x2] - movs r2, 0xE - ldrsh r0, [r6, r2] - ands r0, r4 - lsls r0, 4 - ands r1, r5 - orrs r1, r0 - strh r1, [r3, 0x6] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - movs r3, 0 - bl AddSprite -_08013586: - movs r1, 0x20 - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _08013624 - adds r1, r0, 0 - movs r2, 0x1E - ldrsh r0, [r6, r2] - adds r0, 0x1 - cmp r1, r0 - beq _08013624 - mov r0, sp - ldrh r0, [r0] - ldr r1, _0801362C - ands r1, r0 - mov r0, sp - strh r1, [r0] - strh r1, [r0] - ldr r0, _08013634 - ands r0, r1 - mov r1, sp - strh r0, [r1] - strh r0, [r1] - ldr r4, _08013638 - ands r0, r4 - strh r0, [r1] - strh r0, [r1] - ldr r1, _0801363C - ands r1, r0 - mov r0, sp - strh r1, [r0] - strh r1, [r0] - ldr r2, _08013640 - ands r2, r1 - strh r2, [r0] - strh r2, [r0] - ldr r0, _08013644 - ands r0, r2 - mov r1, sp - strh r0, [r1] - strh r0, [r1] - mov r3, sp - ldr r2, _0801365C - ldrh r1, [r3, 0x4] - movs r0, 0xFC - lsls r0, 8 - ands r0, r1 - orrs r0, r2 - ands r0, r4 - movs r5, 0xF - movs r1, 0xF0 - lsls r1, 8 - ldr r4, _0801364C - ands r0, r4 - orrs r0, r1 - strh r0, [r3, 0x4] - ldrh r0, [r3, 0x6] - ldr r1, _08013650 - ands r1, r0 - ldr r0, _08013654 - ands r1, r0 - movs r2, 0xC - ldrsh r0, [r6, r2] - adds r0, 0xA - ldr r2, _08013658 - ands r0, r2 - strh r0, [r3, 0x2] - movs r2, 0xE - ldrsh r0, [r6, r2] - ands r0, r4 - lsls r0, 4 - ands r1, r5 - orrs r1, r0 - strh r1, [r3, 0x6] - mov r0, sp - movs r1, 0xFF - movs r2, 0 - movs r3, 0 - bl AddSprite -_08013624: - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801362C: .4byte 0x0000feff -_08013630: .4byte 0xffff0000 -_08013634: .4byte 0x0000fdff -_08013638: .4byte 0x0000f3ff -_0801363C: .4byte 0x0000efff -_08013640: .4byte 0x0000dfff -_08013644: .4byte 0x00003fff -_08013648: .4byte 0x000003f2 -_0801364C: .4byte 0x00000fff -_08013650: .4byte 0x0000fffe -_08013654: .4byte 0x0000fffd -_08013658: .4byte 0x000001ff -_0801365C: .4byte 0x000003f3 - thumb_func_end sub_8013470 - - thumb_func_start sub_8013660 -sub_8013660: - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x1A - ldrsh r0, [r4, r1] - cmp r0, 0 - ble _0801367A - adds r0, r4, 0 - bl UpdateMenuCursorSpriteCoords - adds r0, r4, 0 - adds r0, 0x8 - bl sub_801332C -_0801367A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8013660 - - thumb_func_start UpdateMenuCursorSpriteCoords -UpdateMenuCursorSpriteCoords: - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, [r5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 3 - ldr r0, _080136B8 - adds r4, r0 - movs r1, 0 - ldrsh r0, [r4, r1] - lsls r0, 3 - ldrh r2, [r5, 0x4] - adds r0, r2 - strh r0, [r5, 0x8] - movs r0, 0x18 - ldrsh r1, [r5, r0] - adds r0, r5, 0 - bl sub_8013800 - movs r2, 0x2 - ldrsh r1, [r4, r2] - lsls r1, 3 - adds r1, r0 - strh r1, [r5, 0xA] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080136B8: .4byte gUnknown_2027370 - thumb_func_end UpdateMenuCursorSpriteCoords - - thumb_func_start MoveMenuCursorDown -MoveMenuCursorDown: - push {lr} - adds r1, r0, 0 - movs r3, 0 - strh r3, [r1, 0x24] - movs r0, 0x1A - ldrsh r2, [r1, r0] - cmp r2, 0 - ble _080136DA - ldrh r0, [r1, 0x18] - adds r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, r2 - blt _080136DC -_080136DA: - strh r3, [r1, 0x18] -_080136DC: - pop {r0} - bx r0 - thumb_func_end MoveMenuCursorDown - - thumb_func_start sub_80136E0 -sub_80136E0: - push {r4,r5,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - movs r1, 0 - strh r1, [r2, 0x24] - ldrh r4, [r2, 0x1A] - movs r0, 0x1A - ldrsh r3, [r2, r0] - cmp r3, 0 - ble _08013708 - ldrh r0, [r2, 0x18] - adds r0, 0x1 - strh r0, [r2, 0x18] - lsls r0, 16 - asrs r0, 16 - cmp r0, r3 - blt _08013710 - cmp r5, 0 - beq _0801370C -_08013708: - strh r1, [r2, 0x18] - b _08013710 -_0801370C: - subs r0, r4, 0x1 - strh r0, [r2, 0x18] -_08013710: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80136E0 - - thumb_func_start MoveMenuCursorUp -MoveMenuCursorUp: - push {r4,lr} - adds r1, r0, 0 - movs r2, 0 - strh r2, [r1, 0x24] - ldrh r3, [r1, 0x1A] - movs r4, 0x1A - ldrsh r0, [r1, r4] - cmp r0, 0 - bgt _0801372E - strh r2, [r1, 0x18] - b _0801373E -_0801372E: - ldrh r0, [r1, 0x18] - subs r0, 0x1 - strh r0, [r1, 0x18] - lsls r0, 16 - cmp r0, 0 - bge _0801373E - subs r0, r3, 0x1 - strh r0, [r1, 0x18] -_0801373E: - pop {r4} - pop {r0} - bx r0 - thumb_func_end MoveMenuCursorUp - - thumb_func_start sub_8013744 -sub_8013744: - push {r4-r6,lr} - adds r2, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r5, r1, 0 - movs r3, 0 - strh r3, [r2, 0x24] - ldrh r4, [r2, 0x1A] - movs r6, 0x1A - ldrsh r0, [r2, r6] - cmp r0, 0 - bgt _08013760 - strh r3, [r2, 0x18] - b _08013778 -_08013760: - ldrh r0, [r2, 0x18] - subs r0, 0x1 - strh r0, [r2, 0x18] - lsls r0, 16 - cmp r0, 0 - bge _08013778 - cmp r1, 0 - beq _08013776 - subs r0, r4, 0x1 - strh r0, [r2, 0x18] - b _08013778 -_08013776: - strh r5, [r2, 0x18] -_08013778: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8013744 - - thumb_func_start sub_8013780 -sub_8013780: - push {lr} - adds r2, r0, 0 - cmp r1, 0 - bge _0801378E - movs r0, 0 - strh r0, [r2, 0x18] - b _080137A0 -_0801378E: - movs r3, 0x1A - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _0801379E - ldrh r0, [r2, 0x1A] - subs r0, 0x1 - strh r0, [r2, 0x18] - b _080137A0 -_0801379E: - strh r1, [r2, 0x18] -_080137A0: - movs r0, 0 - strh r0, [r2, 0x24] - pop {r0} - bx r0 - thumb_func_end sub_8013780 - - thumb_func_start sub_80137A8 -sub_80137A8: - movs r1, 0x18 - ldrsh r0, [r0, r1] - bx lr - thumb_func_end sub_80137A8 - - thumb_func_start sub_80137B0 -sub_80137B0: - push {r4,lr} - adds r4, r0, 0 - cmp r1, 0 - ble _080137BC - lsls r0, r1, 8 - b _080137E2 -_080137BC: - ldr r3, _080137F4 - ldr r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r1, r0, 3 - adds r0, r3, 0 - adds r0, 0xC - adds r0, r1, r0 - ldr r0, [r0] - movs r2, 0 - cmp r0, 0x6 - bne _080137D6 - movs r2, 0x10 -_080137D6: - adds r0, r1, r3 - movs r1, 0x6 - ldrsh r0, [r0, r1] - lsls r0, 3 - subs r0, r2 - lsls r0, 8 -_080137E2: - movs r2, 0x1C - ldrsh r1, [r4, r2] - bl __divsi3 - str r0, [r4, 0x10] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080137F4: .4byte gUnknown_2027370 - thumb_func_end sub_80137B0 - - thumb_func_start sub_80137F8 -sub_80137F8: - lsls r1, 8 - str r1, [r0, 0x10] - bx lr - thumb_func_end sub_80137F8 - - thumb_func_start sub_8013800 -sub_8013800: - push {lr} - movs r3, 0x6 - ldrsh r2, [r0, r3] - ldr r0, [r0, 0x10] - muls r0, r1 - cmp r0, 0 - bge _08013810 - adds r0, 0xFF -_08013810: - asrs r0, 8 - adds r0, r2, r0 - pop {r1} - bx r1 - thumb_func_end sub_8013800 - - thumb_func_start sub_8013818 -sub_8013818: - push {r4,lr} - adds r4, r0, 0 - str r3, [r4] - movs r0, 0 - strh r1, [r4, 0x22] - strh r2, [r4, 0x1C] - strh r0, [r4, 0x14] - strh r0, [r4, 0x24] - strh r0, [r4, 0x18] - strh r0, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - adds r0, r4, 0 - bl sub_8013984 - adds r0, r4, 0 - movs r1, 0xC - bl sub_80137F8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8013818 - - thumb_func_start sub_8013848 -sub_8013848: - push {r4,lr} - adds r4, r0, 0 - str r3, [r4] - movs r0, 0 - strh r1, [r4, 0x22] - strh r2, [r4, 0x1C] - strh r0, [r4, 0x14] - strh r0, [r4, 0x24] - strh r0, [r4, 0x18] - strh r0, [r4, 0x1E] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - adds r0, r4, 0 - bl sub_8013984 - adds r0, r4, 0 - movs r1, 0x18 - bl sub_80137F8 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8013848 - - thumb_func_start sub_8013878 -sub_8013878: - push {r4-r6,lr} - adds r5, r0, 0 - adds r6, r1, 0 - cmp r6, 0 - bge _08013886 - movs r6, 0 - b _08013890 -_08013886: - movs r1, 0x22 - ldrsh r0, [r5, r1] - cmp r6, r0 - blt _08013890 - subs r6, r0, 0x1 -_08013890: - movs r0, 0x1C - ldrsh r1, [r5, r0] - adds r0, r6, 0 - bl __divsi3 - movs r4, 0 - strh r0, [r5, 0x1E] - movs r0, 0x1C - ldrsh r1, [r5, r0] - adds r0, r6, 0 - bl __modsi3 - strh r0, [r5, 0x18] - strh r4, [r5, 0x24] - adds r0, r5, 0 - bl sub_8013984 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8013878 - - thumb_func_start sub_80138B8 -sub_80138B8: - push {r4-r7,lr} - adds r5, r0, 0 - lsls r4, r1, 24 - lsrs r4, 24 - movs r0, 0x1E - ldrsh r7, [r5, r0] - movs r1, 0x18 - ldrsh r6, [r5, r1] - adds r0, r5, 0 - bl AddMenuCursorSprite - cmp r4, 0 - beq _0801391C - adds r0, r5, 0 - bl GetKeyPress - cmp r0, 0x8 - beq _080138F8 - cmp r0, 0x8 - bgt _080138E6 - cmp r0, 0x7 - beq _080138F0 - b _0801391C -_080138E6: - cmp r0, 0x9 - beq _0801390E - cmp r0, 0xA - beq _08013916 - b _0801391C -_080138F0: - adds r0, r5, 0 - bl MoveMenuCursorUp - b _080138FE -_080138F8: - adds r0, r5, 0 - bl MoveMenuCursorDown -_080138FE: - movs r1, 0x18 - ldrsh r0, [r5, r1] - cmp r6, r0 - beq _0801391C - movs r0, 0x3 - bl PlayMenuSoundEffect - b _0801391C -_0801390E: - adds r0, r5, 0 - bl sub_8013A7C - b _0801391C -_08013916: - adds r0, r5, 0 - bl sub_8013A54 -_0801391C: - movs r1, 0x1E - ldrsh r0, [r5, r1] - cmp r7, r0 - bne _08013928 - movs r0, 0 - b _08013930 -_08013928: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x1 -_08013930: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80138B8 - - thumb_func_start sub_8013938 -sub_8013938: - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x1E - ldrsh r5, [r4, r0] - movs r0, 0 - strh r0, [r4, 0x1A] - strh r0, [r4, 0x14] - adds r0, r4, 0 - bl AddMenuCursorSprite - adds r0, r4, 0 - bl GetKeyPress - cmp r0, 0x9 - beq _0801395C - cmp r0, 0xA - beq _08013964 - b _0801396A -_0801395C: - adds r0, r4, 0 - bl sub_8013A7C - b _0801396A -_08013964: - adds r0, r4, 0 - bl sub_8013A54 -_0801396A: - movs r1, 0x1E - ldrsh r0, [r4, r1] - cmp r5, r0 - bne _08013976 - movs r0, 0 - b _0801397E -_08013976: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x1 -_0801397E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8013938 - - thumb_func_start sub_8013984 -sub_8013984: - push {r4-r6,lr} - adds r4, r0, 0 - ldr r1, [r4] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 3 - ldr r1, _08013A20 - adds r6, r0, r1 - ldrh r1, [r4, 0x1C] - movs r2, 0x1C - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080139A2 - adds r0, r1, 0x1 - strh r0, [r4, 0x1C] -_080139A2: - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x1C - ldrsh r1, [r4, r2] - bl __divsi3 - adds r5, r0, 0 - strh r5, [r4, 0x20] - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x1C - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - beq _080139C6 - adds r0, r5, 0x1 - strh r0, [r4, 0x20] -_080139C6: - movs r0, 0x1E - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r0, 0x1 - ldrh r5, [r4, 0x20] - cmp r1, r0 - ble _080139DA - subs r0, r5, 0x1 - strh r0, [r4, 0x1E] -_080139DA: - movs r0, 0x1E - ldrsh r1, [r4, r0] - movs r2, 0x20 - ldrsh r0, [r4, r2] - subs r0, 0x1 - cmp r1, r0 - bne _080139F8 - movs r1, 0x22 - ldrsh r0, [r4, r1] - movs r2, 0x1C - ldrsh r1, [r4, r2] - bl __modsi3 - cmp r0, 0 - bne _080139FA -_080139F8: - ldrh r0, [r4, 0x1C] -_080139FA: - strh r0, [r4, 0x1A] - movs r0, 0x18 - ldrsh r1, [r4, r0] - movs r2, 0x1A - ldrsh r0, [r4, r2] - subs r0, 0x1 - cmp r1, r0 - ble _08013A10 - ldrh r0, [r4, 0x1A] - subs r0, 0x1 - strh r0, [r4, 0x18] -_08013A10: - movs r1, 0 - strh r1, [r4, 0x4] - ldr r0, [r6, 0xC] - cmp r0, 0x6 - bne _08013A24 - movs r0, 0x10 - strh r0, [r4, 0x6] - b _08013A26 - .align 2, 0 -_08013A20: .4byte gUnknown_2027370 -_08013A24: - strh r1, [r4, 0x6] -_08013A26: - lsls r0, r5, 16 - asrs r0, 16 - cmp r0, 0x1 - bgt _08013A32 - movs r0, 0 - b _08013A40 -_08013A32: - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0x4 - ldrsh r1, [r6, r2] - adds r0, r1 - subs r0, 0x2 - lsls r0, 3 -_08013A40: - strh r0, [r4, 0xC] - movs r1, 0x2 - ldrsh r0, [r6, r1] - adds r0, 0x1 - lsls r0, 3 - subs r0, 0x2 - strh r0, [r4, 0xE] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8013984 - - thumb_func_start sub_8013A54 -sub_8013A54: - push {lr} - adds r2, r0, 0 - movs r0, 0x1E - ldrsh r1, [r2, r0] - movs r3, 0x20 - ldrsh r0, [r2, r3] - subs r0, 0x1 - cmp r1, r0 - bge _08013A6C - ldrh r0, [r2, 0x1E] - adds r0, 0x1 - b _08013A6E -_08013A6C: - movs r0, 0 -_08013A6E: - strh r0, [r2, 0x1E] - adds r0, r2, 0 - bl sub_8013984 - pop {r0} - bx r0 - thumb_func_end sub_8013A54 - - thumb_func_start sub_8013A7C -sub_8013A7C: - push {lr} - adds r1, r0, 0 - ldrh r2, [r1, 0x1E] - movs r3, 0x1E - ldrsh r0, [r1, r3] - cmp r0, 0 - bgt _08013A90 - ldrh r0, [r1, 0x20] - subs r0, 0x1 - b _08013A92 -_08013A90: - subs r0, r2, 0x1 -_08013A92: - strh r0, [r1, 0x1E] - adds r0, r1, 0 - bl sub_8013984 - pop {r0} - bx r0 - thumb_func_end sub_8013A7C thumb_func_start sub_8013AA0 sub_8013AA0: diff --git a/asm/menu_input.s b/asm/menu_input.s new file mode 100644 index 000000000..21dc1ddd7 --- /dev/null +++ b/asm/menu_input.s @@ -0,0 +1,1213 @@ + #include "asm/constants/gba_constants.inc" + #include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start AddMenuCursorSprite_ +AddMenuCursorSprite_: + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + movs r0, 0 + movs r1, 0 + str r0, [sp] + str r1, [sp, 0x4] + movs r1, 0x1A + ldrsh r0, [r6, r1] + cmp r0, 0 + bgt _080131CC + b _080132D6 +_080131CC: + adds r0, r6, 0 + bl UpdateMenuCursorSpriteCoords + ldrh r1, [r6, 0x24] + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _080132D6 + mov r0, sp + ldrh r0, [r0] + ldr r1, _080132FC + ands r1, r0 + ldr r3, _08013300 + ldr r0, [sp] + ands r0, r3 + orrs r0, r1 + str r0, [sp] + mov r1, sp + ldrh r1, [r1] + adds r2, r3, 0 + ands r2, r0 + orrs r2, r1 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013304 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r4, _08013308 + adds r0, r4, 0 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _0801330C + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013310 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013314 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + ands r3, r1 + orrs r3, r0 + str r3, [sp] + mov r3, sp + movs r2, 0xFD + lsls r2, 2 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r5, 0xF + movs r1, 0xF0 + lsls r1, 8 + ldr r4, _08013318 + ands r0, r4 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x6] + ldr r1, _0801331C + ands r1, r0 + ldr r0, _08013320 + ands r1, r0 + movs r2, 0x8 + ldrsh r0, [r6, r2] + ldr r2, _08013324 + ands r0, r2 + strh r0, [r3, 0x2] + movs r2, 0xA + ldrsh r0, [r6, r2] + adds r0, 0x1 + ands r0, r4 + lsls r0, 4 + ands r1, r5 + orrs r1, r0 + strh r1, [r3, 0x6] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + movs r3, 0 + bl AddSprite +_080132D6: + adds r0, r6, 0 + bl sub_8013470 + movs r1, 0x14 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _080132EC + adds r0, r6, 0 + adds r0, 0x14 + bl sub_801332C +_080132EC: + ldrh r0, [r6, 0x24] + adds r0, 0x1 + strh r0, [r6, 0x24] + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_080132FC: .4byte 0x0000feff +_08013300: .4byte 0xffff0000 +_08013304: .4byte 0x0000fdff +_08013308: .4byte 0x0000f3ff +_0801330C: .4byte 0x0000efff +_08013310: .4byte 0x0000dfff +_08013314: .4byte 0x00003fff +_08013318: .4byte 0x00000fff +_0801331C: .4byte 0x0000fffe +_08013320: .4byte 0x0000fffd +_08013324: .4byte 0x000001ff + thumb_func_end AddMenuCursorSprite_ + + thumb_func_start nullsub_34 +nullsub_34: + bx lr + thumb_func_end nullsub_34 + + thumb_func_start sub_801332C +sub_801332C: + push {r4-r6,lr} + sub sp, 0x8 + movs r1, 0 + movs r2, 0 + str r1, [sp] + str r2, [sp, 0x4] + mov r1, sp + ldrh r1, [r1] + ldr r2, _08013440 + ands r2, r1 + ldr r4, _08013444 + ldr r1, [sp] + ands r1, r4 + orrs r1, r2 + str r1, [sp] + mov r2, sp + ldrh r2, [r2] + adds r3, r4, 0 + ands r3, r1 + orrs r3, r2 + str r3, [sp] + mov r1, sp + ldrh r2, [r1] + ldr r1, _08013448 + ands r1, r2 + adds r2, r4, 0 + ands r2, r3 + orrs r2, r1 + str r2, [sp] + mov r1, sp + ldrh r1, [r1] + adds r3, r4, 0 + ands r3, r2 + orrs r3, r1 + str r3, [sp] + movs r5, 0x80 + lsls r5, 3 + mov r1, sp + ldrh r2, [r1] + ldr r6, _0801344C + adds r1, r6, 0 + ands r1, r2 + adds r2, r4, 0 + ands r2, r3 + orrs r2, r1 + str r2, [sp] + mov r1, sp + ldrh r1, [r1] + orrs r5, r1 + adds r3, r4, 0 + ands r3, r2 + orrs r3, r5 + str r3, [sp] + mov r1, sp + ldrh r2, [r1] + ldr r1, _08013450 + ands r1, r2 + adds r2, r4, 0 + ands r2, r3 + orrs r2, r1 + str r2, [sp] + mov r1, sp + ldrh r1, [r1] + adds r3, r4, 0 + ands r3, r2 + orrs r3, r1 + str r3, [sp] + mov r1, sp + ldrh r2, [r1] + ldr r1, _08013454 + ands r1, r2 + adds r2, r4, 0 + ands r2, r3 + orrs r2, r1 + str r2, [sp] + mov r1, sp + ldrh r1, [r1] + adds r3, r4, 0 + ands r3, r2 + orrs r3, r1 + str r3, [sp] + mov r1, sp + ldrh r2, [r1] + ldr r1, _08013458 + ands r1, r2 + adds r2, r4, 0 + ands r2, r3 + orrs r2, r1 + str r2, [sp] + mov r1, sp + ldrh r1, [r1] + ands r4, r2 + orrs r4, r1 + str r4, [sp] + mov r4, sp + ldr r3, _0801345C + ldrh r2, [r4, 0x4] + movs r1, 0xFC + lsls r1, 8 + ands r1, r2 + orrs r1, r3 + ands r1, r6 + movs r6, 0xF + movs r2, 0xF0 + lsls r2, 8 + ldr r5, _08013460 + ands r1, r5 + orrs r1, r2 + strh r1, [r4, 0x4] + ldrh r1, [r4, 0x6] + ldr r2, _08013464 + ands r2, r1 + ldr r1, _08013468 + ands r2, r1 + movs r3, 0 + ldrsh r1, [r0, r3] + ldr r3, _0801346C + ands r1, r3 + strh r1, [r4, 0x2] + movs r1, 0x2 + ldrsh r0, [r0, r1] + adds r0, 0x1 + ands r0, r5 + lsls r0, 4 + ands r2, r6 + orrs r2, r0 + strh r2, [r4, 0x6] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + movs r3, 0 + bl AddSprite + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_08013440: .4byte 0x0000feff +_08013444: .4byte 0xffff0000 +_08013448: .4byte 0x0000fdff +_0801344C: .4byte 0x0000f3ff +_08013450: .4byte 0x0000efff +_08013454: .4byte 0x0000dfff +_08013458: .4byte 0x00003fff +_0801345C: .4byte 0x000003f5 +_08013460: .4byte 0x00000fff +_08013464: .4byte 0x0000fffe +_08013468: .4byte 0x0000fffd +_0801346C: .4byte 0x000001ff + thumb_func_end sub_801332C + + thumb_func_start sub_8013470 +sub_8013470: + push {r4-r6,lr} + sub sp, 0x8 + adds r6, r0, 0 + movs r0, 0 + movs r1, 0 + str r0, [sp] + str r1, [sp, 0x4] + movs r1, 0xC + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _08013488 + b _08013624 +_08013488: + movs r2, 0x1E + ldrsh r0, [r6, r2] + cmp r0, 0 + beq _08013586 + mov r0, sp + ldrh r0, [r0] + ldr r1, _0801362C + ands r1, r0 + ldr r3, _08013630 + ldr r0, [sp] + ands r0, r3 + orrs r0, r1 + str r0, [sp] + mov r1, sp + ldrh r1, [r1] + adds r2, r3, 0 + ands r2, r0 + orrs r2, r1 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013634 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r4, _08013638 + adds r0, r4, 0 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _0801363C + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013640 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + adds r2, r3, 0 + ands r2, r1 + orrs r2, r0 + str r2, [sp] + mov r0, sp + ldrh r1, [r0] + ldr r0, _08013644 + ands r0, r1 + adds r1, r3, 0 + ands r1, r2 + orrs r1, r0 + str r1, [sp] + mov r0, sp + ldrh r0, [r0] + ands r3, r1 + orrs r3, r0 + str r3, [sp] + mov r3, sp + ldr r2, _08013648 + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r5, 0xF + movs r1, 0xF0 + lsls r1, 8 + ldr r4, _0801364C + ands r0, r4 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x6] + ldr r1, _08013650 + ands r1, r0 + ldr r0, _08013654 + ands r1, r0 + movs r2, 0xC + ldrsh r0, [r6, r2] + ldr r2, _08013658 + ands r0, r2 + strh r0, [r3, 0x2] + movs r2, 0xE + ldrsh r0, [r6, r2] + ands r0, r4 + lsls r0, 4 + ands r1, r5 + orrs r1, r0 + strh r1, [r3, 0x6] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + movs r3, 0 + bl AddSprite +_08013586: + movs r1, 0x20 + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _08013624 + adds r1, r0, 0 + movs r2, 0x1E + ldrsh r0, [r6, r2] + adds r0, 0x1 + cmp r1, r0 + beq _08013624 + mov r0, sp + ldrh r0, [r0] + ldr r1, _0801362C + ands r1, r0 + mov r0, sp + strh r1, [r0] + strh r1, [r0] + ldr r0, _08013634 + ands r0, r1 + mov r1, sp + strh r0, [r1] + strh r0, [r1] + ldr r4, _08013638 + ands r0, r4 + strh r0, [r1] + strh r0, [r1] + ldr r1, _0801363C + ands r1, r0 + mov r0, sp + strh r1, [r0] + strh r1, [r0] + ldr r2, _08013640 + ands r2, r1 + strh r2, [r0] + strh r2, [r0] + ldr r0, _08013644 + ands r0, r2 + mov r1, sp + strh r0, [r1] + strh r0, [r1] + mov r3, sp + ldr r2, _0801365C + ldrh r1, [r3, 0x4] + movs r0, 0xFC + lsls r0, 8 + ands r0, r1 + orrs r0, r2 + ands r0, r4 + movs r5, 0xF + movs r1, 0xF0 + lsls r1, 8 + ldr r4, _0801364C + ands r0, r4 + orrs r0, r1 + strh r0, [r3, 0x4] + ldrh r0, [r3, 0x6] + ldr r1, _08013650 + ands r1, r0 + ldr r0, _08013654 + ands r1, r0 + movs r2, 0xC + ldrsh r0, [r6, r2] + adds r0, 0xA + ldr r2, _08013658 + ands r0, r2 + strh r0, [r3, 0x2] + movs r2, 0xE + ldrsh r0, [r6, r2] + ands r0, r4 + lsls r0, 4 + ands r1, r5 + orrs r1, r0 + strh r1, [r3, 0x6] + mov r0, sp + movs r1, 0xFF + movs r2, 0 + movs r3, 0 + bl AddSprite +_08013624: + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801362C: .4byte 0x0000feff +_08013630: .4byte 0xffff0000 +_08013634: .4byte 0x0000fdff +_08013638: .4byte 0x0000f3ff +_0801363C: .4byte 0x0000efff +_08013640: .4byte 0x0000dfff +_08013644: .4byte 0x00003fff +_08013648: .4byte 0x000003f2 +_0801364C: .4byte 0x00000fff +_08013650: .4byte 0x0000fffe +_08013654: .4byte 0x0000fffd +_08013658: .4byte 0x000001ff +_0801365C: .4byte 0x000003f3 + thumb_func_end sub_8013470 + + thumb_func_start sub_8013660 +sub_8013660: + push {r4,lr} + adds r4, r0, 0 + movs r1, 0x1A + ldrsh r0, [r4, r1] + cmp r0, 0 + ble _0801367A + adds r0, r4, 0 + bl UpdateMenuCursorSpriteCoords + adds r0, r4, 0 + adds r0, 0x8 + bl sub_801332C +_0801367A: + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8013660 + + thumb_func_start UpdateMenuCursorSpriteCoords +UpdateMenuCursorSpriteCoords: + push {r4,r5,lr} + adds r5, r0, 0 + ldr r0, [r5] + lsls r4, r0, 3 + adds r4, r0 + lsls r4, 3 + ldr r0, _080136B8 + adds r4, r0 + movs r1, 0 + ldrsh r0, [r4, r1] + lsls r0, 3 + ldrh r2, [r5, 0x4] + adds r0, r2 + strh r0, [r5, 0x8] + movs r0, 0x18 + ldrsh r1, [r5, r0] + adds r0, r5, 0 + bl sub_8013800 + movs r2, 0x2 + ldrsh r1, [r4, r2] + lsls r1, 3 + adds r1, r0 + strh r1, [r5, 0xA] + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_080136B8: .4byte gUnknown_2027370 + thumb_func_end UpdateMenuCursorSpriteCoords + + thumb_func_start MoveMenuCursorDown +MoveMenuCursorDown: + push {lr} + adds r1, r0, 0 + movs r3, 0 + strh r3, [r1, 0x24] + movs r0, 0x1A + ldrsh r2, [r1, r0] + cmp r2, 0 + ble _080136DA + ldrh r0, [r1, 0x18] + adds r0, 0x1 + strh r0, [r1, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, r2 + blt _080136DC +_080136DA: + strh r3, [r1, 0x18] +_080136DC: + pop {r0} + bx r0 + thumb_func_end MoveMenuCursorDown + + thumb_func_start sub_80136E0 +sub_80136E0: + push {r4,r5,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r5, r1, 24 + movs r1, 0 + strh r1, [r2, 0x24] + ldrh r4, [r2, 0x1A] + movs r0, 0x1A + ldrsh r3, [r2, r0] + cmp r3, 0 + ble _08013708 + ldrh r0, [r2, 0x18] + adds r0, 0x1 + strh r0, [r2, 0x18] + lsls r0, 16 + asrs r0, 16 + cmp r0, r3 + blt _08013710 + cmp r5, 0 + beq _0801370C +_08013708: + strh r1, [r2, 0x18] + b _08013710 +_0801370C: + subs r0, r4, 0x1 + strh r0, [r2, 0x18] +_08013710: + pop {r4,r5} + pop {r0} + bx r0 + thumb_func_end sub_80136E0 + + thumb_func_start MoveMenuCursorUp +MoveMenuCursorUp: + push {r4,lr} + adds r1, r0, 0 + movs r2, 0 + strh r2, [r1, 0x24] + ldrh r3, [r1, 0x1A] + movs r4, 0x1A + ldrsh r0, [r1, r4] + cmp r0, 0 + bgt _0801372E + strh r2, [r1, 0x18] + b _0801373E +_0801372E: + ldrh r0, [r1, 0x18] + subs r0, 0x1 + strh r0, [r1, 0x18] + lsls r0, 16 + cmp r0, 0 + bge _0801373E + subs r0, r3, 0x1 + strh r0, [r1, 0x18] +_0801373E: + pop {r4} + pop {r0} + bx r0 + thumb_func_end MoveMenuCursorUp + + thumb_func_start sub_8013744 +sub_8013744: + push {r4-r6,lr} + adds r2, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r5, r1, 0 + movs r3, 0 + strh r3, [r2, 0x24] + ldrh r4, [r2, 0x1A] + movs r6, 0x1A + ldrsh r0, [r2, r6] + cmp r0, 0 + bgt _08013760 + strh r3, [r2, 0x18] + b _08013778 +_08013760: + ldrh r0, [r2, 0x18] + subs r0, 0x1 + strh r0, [r2, 0x18] + lsls r0, 16 + cmp r0, 0 + bge _08013778 + cmp r1, 0 + beq _08013776 + subs r0, r4, 0x1 + strh r0, [r2, 0x18] + b _08013778 +_08013776: + strh r5, [r2, 0x18] +_08013778: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8013744 + + thumb_func_start sub_8013780 +sub_8013780: + push {lr} + adds r2, r0, 0 + cmp r1, 0 + bge _0801378E + movs r0, 0 + strh r0, [r2, 0x18] + b _080137A0 +_0801378E: + movs r3, 0x1A + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0801379E + ldrh r0, [r2, 0x1A] + subs r0, 0x1 + strh r0, [r2, 0x18] + b _080137A0 +_0801379E: + strh r1, [r2, 0x18] +_080137A0: + movs r0, 0 + strh r0, [r2, 0x24] + pop {r0} + bx r0 + thumb_func_end sub_8013780 + + thumb_func_start sub_80137A8 +sub_80137A8: + movs r1, 0x18 + ldrsh r0, [r0, r1] + bx lr + thumb_func_end sub_80137A8 + + thumb_func_start sub_80137B0 +sub_80137B0: + push {r4,lr} + adds r4, r0, 0 + cmp r1, 0 + ble _080137BC + lsls r0, r1, 8 + b _080137E2 +_080137BC: + ldr r3, _080137F4 + ldr r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r1, r0, 3 + adds r0, r3, 0 + adds r0, 0xC + adds r0, r1, r0 + ldr r0, [r0] + movs r2, 0 + cmp r0, 0x6 + bne _080137D6 + movs r2, 0x10 +_080137D6: + adds r0, r1, r3 + movs r1, 0x6 + ldrsh r0, [r0, r1] + lsls r0, 3 + subs r0, r2 + lsls r0, 8 +_080137E2: + movs r2, 0x1C + ldrsh r1, [r4, r2] + bl __divsi3 + str r0, [r4, 0x10] + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_080137F4: .4byte gUnknown_2027370 + thumb_func_end sub_80137B0 + + thumb_func_start sub_80137F8 +sub_80137F8: + lsls r1, 8 + str r1, [r0, 0x10] + bx lr + thumb_func_end sub_80137F8 + + thumb_func_start sub_8013800 +sub_8013800: + push {lr} + movs r3, 0x6 + ldrsh r2, [r0, r3] + ldr r0, [r0, 0x10] + muls r0, r1 + cmp r0, 0 + bge _08013810 + adds r0, 0xFF +_08013810: + asrs r0, 8 + adds r0, r2, r0 + pop {r1} + bx r1 + thumb_func_end sub_8013800 + + thumb_func_start sub_8013818 +sub_8013818: + push {r4,lr} + adds r4, r0, 0 + str r3, [r4] + movs r0, 0 + strh r1, [r4, 0x22] + strh r2, [r4, 0x1C] + strh r0, [r4, 0x14] + strh r0, [r4, 0x24] + strh r0, [r4, 0x18] + strh r0, [r4, 0x1E] + adds r0, r4, 0 + adds r0, 0x28 + bl sub_801317C + adds r0, r4, 0 + bl sub_8013984 + adds r0, r4, 0 + movs r1, 0xC + bl sub_80137F8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8013818 + + thumb_func_start sub_8013848 +sub_8013848: + push {r4,lr} + adds r4, r0, 0 + str r3, [r4] + movs r0, 0 + strh r1, [r4, 0x22] + strh r2, [r4, 0x1C] + strh r0, [r4, 0x14] + strh r0, [r4, 0x24] + strh r0, [r4, 0x18] + strh r0, [r4, 0x1E] + adds r0, r4, 0 + adds r0, 0x28 + bl sub_801317C + adds r0, r4, 0 + bl sub_8013984 + adds r0, r4, 0 + movs r1, 0x18 + bl sub_80137F8 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_8013848 + + thumb_func_start sub_8013878 +sub_8013878: + push {r4-r6,lr} + adds r5, r0, 0 + adds r6, r1, 0 + cmp r6, 0 + bge _08013886 + movs r6, 0 + b _08013890 +_08013886: + movs r1, 0x22 + ldrsh r0, [r5, r1] + cmp r6, r0 + blt _08013890 + subs r6, r0, 0x1 +_08013890: + movs r0, 0x1C + ldrsh r1, [r5, r0] + adds r0, r6, 0 + bl __divsi3 + movs r4, 0 + strh r0, [r5, 0x1E] + movs r0, 0x1C + ldrsh r1, [r5, r0] + adds r0, r6, 0 + bl __modsi3 + strh r0, [r5, 0x18] + strh r4, [r5, 0x24] + adds r0, r5, 0 + bl sub_8013984 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8013878 + + thumb_func_start sub_80138B8 +sub_80138B8: + push {r4-r7,lr} + adds r5, r0, 0 + lsls r4, r1, 24 + lsrs r4, 24 + movs r0, 0x1E + ldrsh r7, [r5, r0] + movs r1, 0x18 + ldrsh r6, [r5, r1] + adds r0, r5, 0 + bl AddMenuCursorSprite + cmp r4, 0 + beq _0801391C + adds r0, r5, 0 + bl GetKeyPress + cmp r0, 0x8 + beq _080138F8 + cmp r0, 0x8 + bgt _080138E6 + cmp r0, 0x7 + beq _080138F0 + b _0801391C +_080138E6: + cmp r0, 0x9 + beq _0801390E + cmp r0, 0xA + beq _08013916 + b _0801391C +_080138F0: + adds r0, r5, 0 + bl MoveMenuCursorUp + b _080138FE +_080138F8: + adds r0, r5, 0 + bl MoveMenuCursorDown +_080138FE: + movs r1, 0x18 + ldrsh r0, [r5, r1] + cmp r6, r0 + beq _0801391C + movs r0, 0x3 + bl PlayMenuSoundEffect + b _0801391C +_0801390E: + adds r0, r5, 0 + bl sub_8013A7C + b _0801391C +_08013916: + adds r0, r5, 0 + bl sub_8013A54 +_0801391C: + movs r1, 0x1E + ldrsh r0, [r5, r1] + cmp r7, r0 + bne _08013928 + movs r0, 0 + b _08013930 +_08013928: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x1 +_08013930: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_80138B8 + + thumb_func_start sub_8013938 +sub_8013938: + push {r4,r5,lr} + adds r4, r0, 0 + movs r0, 0x1E + ldrsh r5, [r4, r0] + movs r0, 0 + strh r0, [r4, 0x1A] + strh r0, [r4, 0x14] + adds r0, r4, 0 + bl AddMenuCursorSprite + adds r0, r4, 0 + bl GetKeyPress + cmp r0, 0x9 + beq _0801395C + cmp r0, 0xA + beq _08013964 + b _0801396A +_0801395C: + adds r0, r4, 0 + bl sub_8013A7C + b _0801396A +_08013964: + adds r0, r4, 0 + bl sub_8013A54 +_0801396A: + movs r1, 0x1E + ldrsh r0, [r4, r1] + cmp r5, r0 + bne _08013976 + movs r0, 0 + b _0801397E +_08013976: + movs r0, 0x4 + bl PlayMenuSoundEffect + movs r0, 0x1 +_0801397E: + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_8013938 + + thumb_func_start sub_8013984 +sub_8013984: + push {r4-r6,lr} + adds r4, r0, 0 + ldr r1, [r4] + lsls r0, r1, 3 + adds r0, r1 + lsls r0, 3 + ldr r1, _08013A20 + adds r6, r0, r1 + ldrh r1, [r4, 0x1C] + movs r2, 0x1C + ldrsh r0, [r4, r2] + cmp r0, 0 + bne _080139A2 + adds r0, r1, 0x1 + strh r0, [r4, 0x1C] +_080139A2: + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x1C + ldrsh r1, [r4, r2] + bl __divsi3 + adds r5, r0, 0 + strh r5, [r4, 0x20] + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x1C + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + beq _080139C6 + adds r0, r5, 0x1 + strh r0, [r4, 0x20] +_080139C6: + movs r0, 0x1E + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r0, 0x1 + ldrh r5, [r4, 0x20] + cmp r1, r0 + ble _080139DA + subs r0, r5, 0x1 + strh r0, [r4, 0x1E] +_080139DA: + movs r0, 0x1E + ldrsh r1, [r4, r0] + movs r2, 0x20 + ldrsh r0, [r4, r2] + subs r0, 0x1 + cmp r1, r0 + bne _080139F8 + movs r1, 0x22 + ldrsh r0, [r4, r1] + movs r2, 0x1C + ldrsh r1, [r4, r2] + bl __modsi3 + cmp r0, 0 + bne _080139FA +_080139F8: + ldrh r0, [r4, 0x1C] +_080139FA: + strh r0, [r4, 0x1A] + movs r0, 0x18 + ldrsh r1, [r4, r0] + movs r2, 0x1A + ldrsh r0, [r4, r2] + subs r0, 0x1 + cmp r1, r0 + ble _08013A10 + ldrh r0, [r4, 0x1A] + subs r0, 0x1 + strh r0, [r4, 0x18] +_08013A10: + movs r1, 0 + strh r1, [r4, 0x4] + ldr r0, [r6, 0xC] + cmp r0, 0x6 + bne _08013A24 + movs r0, 0x10 + strh r0, [r4, 0x6] + b _08013A26 + .align 2, 0 +_08013A20: .4byte gUnknown_2027370 +_08013A24: + strh r1, [r4, 0x6] +_08013A26: + lsls r0, r5, 16 + asrs r0, 16 + cmp r0, 0x1 + bgt _08013A32 + movs r0, 0 + b _08013A40 +_08013A32: + movs r1, 0 + ldrsh r0, [r6, r1] + movs r2, 0x4 + ldrsh r1, [r6, r2] + adds r0, r1 + subs r0, 0x2 + lsls r0, 3 +_08013A40: + strh r0, [r4, 0xC] + movs r1, 0x2 + ldrsh r0, [r6, r1] + adds r0, 0x1 + lsls r0, 3 + subs r0, 0x2 + strh r0, [r4, 0xE] + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_8013984 + + thumb_func_start sub_8013A54 +sub_8013A54: + push {lr} + adds r2, r0, 0 + movs r0, 0x1E + ldrsh r1, [r2, r0] + movs r3, 0x20 + ldrsh r0, [r2, r3] + subs r0, 0x1 + cmp r1, r0 + bge _08013A6C + ldrh r0, [r2, 0x1E] + adds r0, 0x1 + b _08013A6E +_08013A6C: + movs r0, 0 +_08013A6E: + strh r0, [r2, 0x1E] + adds r0, r2, 0 + bl sub_8013984 + pop {r0} + bx r0 + thumb_func_end sub_8013A54 + + thumb_func_start sub_8013A7C +sub_8013A7C: + push {lr} + adds r1, r0, 0 + ldrh r2, [r1, 0x1E] + movs r3, 0x1E + ldrsh r0, [r1, r3] + cmp r0, 0 + bgt _08013A90 + ldrh r0, [r1, 0x20] + subs r0, 0x1 + b _08013A92 +_08013A90: + subs r0, r2, 0x1 +_08013A92: + strh r0, [r1, 0x1E] + adds r0, r1, 0 + bl sub_8013984 + pop {r0} + bx r0 + thumb_func_end sub_8013A7C + + .align 2,0 diff --git a/include/input.h b/include/input.h index a1cdb3b34..aeb559b6f 100644 --- a/include/input.h +++ b/include/input.h @@ -48,7 +48,7 @@ struct UnusedInputStruct /* 0x2A..0x2B - padding */ }; -struct UnkInputStructSub +struct MenuInputStructSub { u8 unk0; /* 0x1 */ u8 a_button; @@ -60,7 +60,7 @@ struct UnkInputStructSub s16 unkA; }; -struct UnkInputStruct +struct MenuInputStruct { s32 unk0; /* 0x4 */ u16 unk4; @@ -77,10 +77,10 @@ struct UnkInputStruct /* 0x1C */ s16 unk1C; /* 0x1E */ s16 unk1E; /* 0x20 */ u16 unk20; - /* 0x20 */ u16 unk22; + /* 0x22 */ u16 unk22; /* 0x24 */ u16 unk24; u16 unk26; - /* 0x28 */ struct UnkInputStructSub unk28; + /* 0x28 */ struct MenuInputStructSub unk28; }; diff --git a/include/kecleon_items.h b/include/kecleon_items.h index fd530609a..5d5b3cf08 100644 --- a/include/kecleon_items.h +++ b/include/kecleon_items.h @@ -42,7 +42,7 @@ struct unkStruct_203B224 // size: 0xF4 u32 unk0; u32 unk4[INVENTORY_SIZE]; - /* 0x54 */ struct UnkInputStruct input; + /* 0x54 */ struct MenuInputStruct input; u32 unk88; struct UnkTextStruct2 *unk8C; struct UnkTextStruct2 unk90[4]; diff --git a/include/menu.h b/include/menu.h index 0cd6a4cab..a678c2c08 100644 --- a/include/menu.h +++ b/include/menu.h @@ -17,7 +17,7 @@ struct MenuStruct const u32 *menuTextColorArray; u16 *unkC; /* 0x10 */ s32 index; - /* 0x14 */ struct UnkInputStruct input; + /* 0x14 */ struct MenuInputStruct input; /* 0x48 */ s32 menuAction; bool8 unk4C; bool8 unk4D; diff --git a/include/personality_test.h b/include/personality_test.h index 75c35c3e0..54ccf64fb 100644 --- a/include/personality_test.h +++ b/include/personality_test.h @@ -49,7 +49,7 @@ struct PersonalityStruct_203B404 /* 0x0 */ s16 StarterID; /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; u8 unk16; - /* 0x18 */ struct UnkInputStruct *unk18; // something menu related (seems to be some struct) + /* 0x18 */ struct MenuInputStruct *unk18; // something menu related (seems to be some struct) u8 padding[0x30 - 0x1C]; /* 0x30 */ s16 currPartnerSelection; s16 unk32; diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h index 47689a8dd..f31f88cc7 100644 --- a/include/wonder_mail_3.h +++ b/include/wonder_mail_3.h @@ -1,13 +1,7 @@ #include "menu.h" struct unkStruct_203B2F4 { - u8 fill0[0x18]; - u8 unk18; - u8 unk19; - s16 unk1A; - s16 unk1C; - s16 unk1E; - u8 fill20[0x34 - 0x20]; + struct MenuInputStruct input; u32 unk34; struct UnkTextStruct2 *unk38; struct UnkTextStruct2 unk3C[4]; diff --git a/ld_script.txt b/ld_script.txt index b22731f93..78440caf9 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -94,6 +94,7 @@ SECTIONS { src/code_8012A18.o(.text); src/more_input.o(.text); src/menu_input.o(.text); + asm/menu_input.o(.text); asm/code_80130A8.o(.text); src/code_8012A18_1.o(.text); src/felicity_bank.o(.text); diff --git a/src/adventure_log.c b/src/adventure_log.c index 2f97c0037..95f50c71e 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -8,7 +8,7 @@ struct AdventureLog { // size: 0xA0 - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk34; struct UnkTextStruct2 *unk38; struct UnkTextStruct2 unk3C[4]; @@ -42,10 +42,10 @@ const u8 fill_adven[] = "pksdir0"; void sub_8032084(); void DisplayAdventureLog(); extern void sub_8013818(void *, u32, u32, u32); -extern bool8 sub_8013938(struct UnkInputStruct *); -extern void sub_8013660(struct UnkInputStruct *); +extern bool8 sub_8013938(struct MenuInputStruct *); +extern void sub_8013660(struct MenuInputStruct *); extern void PlayMenuSoundEffect(u32); -extern u32 GetKeyPress(struct UnkInputStruct *); +extern u32 GetKeyPress(struct MenuInputStruct *); extern bool8 sub_8097710(u8); extern s16 sub_80978B8(); diff --git a/src/code_801C620.c b/src/code_801C620.c index c0296c098..517f24954 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -34,17 +34,7 @@ struct unkStruct_203B23C /* 0x4 */ struct PokemonStruct *pokeStruct; /* 0x8 */ u8 iqSkills[NUM_IQ_SKILLS]; /* 0x20 */ s32 numIQSkills; - /* 0x24 */ u32 unk24; - u8 fill28[0x3C - 0x28]; - s16 unk3C; - s16 unk3E; - s16 unk40; - s16 unk42; - s16 unk44; - s16 unk46; - u8 fill48[0x52 - 0x48]; - u8 unk52; - u8 fill52[0x58 - 0x53]; + /* 0x24 */ struct MenuInputStruct input; u32 unk58; /* 0x5C */ struct UnkTextStruct2 *unk5C; /* 0x60 */ struct UnkTextStruct2 unk60[4]; @@ -77,15 +67,7 @@ struct unkStruct_203B244 u32 unk0; u8 itemIDs[NUMBER_OF_ITEM_IDS]; u32 unkF4[NUMBER_OF_ITEM_IDS]; - u32 unk4B4; - u8 fill4B8[0x4CC - 0x4B8]; - s16 unk4CC; - s16 unk4CE; - s16 unk4D0; - s16 unk4D2; - s16 unk4D4; - s16 itemCount; - u8 fill4D8[0x4E8 - 0x4D8]; + struct MenuInputStruct input; u32 unk4E8; struct UnkTextStruct2 * unk4EC; struct UnkTextStruct2 unk4F0[4]; @@ -161,9 +143,9 @@ extern u8 *gUnknown_80D4970[]; void sub_8007B7C(s32, s32, s32, s32, s32); extern bool8 sub_801CF14(s32); -extern void sub_8013818(u32 *, u32, u32, u32); +extern void sub_8013818(struct MenuInputStruct *, u32, u32, u32); extern u32 sub_801CE58(void); -extern void sub_8013984(void *); +extern void sub_8013984(struct MenuInputStruct *); extern void sub_801CC38(void); extern void sub_801CCD8(void); extern void sub_801CF94(void); @@ -183,14 +165,14 @@ extern void sub_8013C68(u32 *); extern void xxx_call_draw_string(u32, u32, const u8 *, u32, u32); extern char * GetIQSkillName(u8 r0); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); -extern s32 sub_8013800(u32 *, s32); +extern s32 sub_8013800(struct MenuInputStruct *, s32); extern u32 sub_80095E4(s16, u32); extern void sub_801C440(void); extern void sub_801C4C8(void); -extern void AddMenuCursorSprite(u32 *); -extern u8 sub_80138B8(u32 *, u32); -extern void sub_8013660(u32 *); -extern s32 GetKeyPress(u32 *); +extern void AddMenuCursorSprite(struct MenuInputStruct *); +extern u8 sub_80138B8(struct MenuInputStruct *, u32); +extern void sub_8013660(struct MenuInputStruct *); +extern s32 GetKeyPress(struct MenuInputStruct *); extern bool8 HasNoAvailIQSkills(s16 species); extern u32 sub_801C674(void); extern void sub_801C6B4(void); @@ -441,7 +423,7 @@ bool8 sub_801C244(s16 species, u32 index, u32 param_3) sub_8012D08(gUnknown_203B23C->unk5C,param_3); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B23C->unk60,1,1); - sub_8013818(&gUnknown_203B23C->unk24,gUnknown_203B23C->numIQSkills,param_3,index); + sub_8013818(&gUnknown_203B23C->input,gUnknown_203B23C->numIQSkills,param_3,index); sub_801C440(); sub_801C4C8(); return TRUE; @@ -452,10 +434,10 @@ u32 sub_801C308(u8 r0) { if(r0 == 0) { - sub_8013660(&gUnknown_203B23C->unk24); + sub_8013660(&gUnknown_203B23C->input); return 0; } - switch(GetKeyPress(&gUnknown_203B23C->unk24)) + switch(GetKeyPress(&gUnknown_203B23C->input)) { case 2: PlayMenuSoundEffect(1); @@ -467,7 +449,7 @@ u32 sub_801C308(u8 r0) PlayMenuSoundEffect(4); return 4; default: - if(sub_80138B8(&gUnknown_203B23C->unk24, 1) != 0) + if(sub_80138B8(&gUnknown_203B23C->input, 1) != 0) { sub_801C440(); sub_801C4C8(); @@ -480,19 +462,19 @@ u32 sub_801C308(u8 r0) s32 sub_801C390(void) { - return (gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40) + gUnknown_203B23C->unk3C; + return (gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C) + gUnknown_203B23C->input.menuIndex; } void sub_801C3B0(u8 r0) { ResetUnusedInputStruct(); sub_800641C(gUnknown_203B23C->unk60, 0, 0); - gUnknown_203B23C->unk46 = gUnknown_203B23C->numIQSkills; - sub_8013984(&gUnknown_203B23C->unk24); + gUnknown_203B23C->input.unk22 = gUnknown_203B23C->numIQSkills; + sub_8013984(&gUnknown_203B23C->input); sub_801C440(); sub_801C4C8(); if(r0) - AddMenuCursorSprite(&gUnknown_203B23C->unk24); + AddMenuCursorSprite(&gUnknown_203B23C->input); } void sub_801C3F8(void) @@ -513,13 +495,13 @@ void sub_801C440(void) { u16 sVar2; - gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk44; - gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk42; + gUnknown_203B23C->unkC0 = gUnknown_203B23C->unk24.unk20; + gUnknown_203B23C->unkC1 = gUnknown_203B23C->unk24.unk1E; gUnknown_203B23C->unkC2 = 0xA; gUnknown_203B23C->unkC3 = 0; ResetUnusedInputStruct(); sub_800641C(gUnknown_203B23C->unk60, 1, 1); - sVar2 = sub_80095E4(gUnknown_203B23C->unk3E, 0xc) + 2; + sVar2 = sub_80095E4(gUnknown_203B23C->unk24.unk1A, 0xc) + 2; gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unkE = sVar2; gUnknown_203B23C->unk60[gUnknown_203B23C->unk58].unk10 = sVar2; ResetUnusedInputStruct(); @@ -607,18 +589,18 @@ void sub_801C4C8(void) sub_8008C54(gUnknown_203B23C->unk58); sub_80073B8(gUnknown_203B23C->unk58); - x = gUnknown_203B23C->unk42 * 8; + x = gUnknown_203B23C->input.unk1E * 8; x2 = x; x2 += 10; xxx_call_draw_string(x2,0,gUnknown_80DBE08,gUnknown_203B23C->unk58,0); x += 4; x2 = x + gUnknown_203B23C->unkC2 * 8; - sub_8012BC4(x2,0,gUnknown_203B23C->unk42 + 1,1,7, + sub_8012BC4(x2,0,gUnknown_203B23C->input.unk1E + 1,1,7, gUnknown_203B23C->unk58); - for (counter = 0; counter < gUnknown_203B23C->unk3E; counter++) { + for (counter = 0; counter < gUnknown_203B23C->input.unk1A; counter++) { skillIndex = gUnknown_203B23C->iqSkills - [gUnknown_203B23C->unk42 * gUnknown_203B23C->unk40 + counter]; - y = sub_8013800(&gUnknown_203B23C->unk24,counter); + [gUnknown_203B23C->input.unk1E * gUnknown_203B23C->input.unk1C + counter]; + y = sub_8013800(&gUnknown_203B23C->input,counter); strncpy(gUnknown_202DEA8,GetIQSkillName(skillIndex),0x50); if (IsIQSkillSet((u8 *)&gUnknown_203B23C->pokeStruct->IQSkills,1 << skillIndex)) { strcpy(gUnknown_202DEA8 - 0x50,gUnknown_80DBE14); @@ -805,11 +787,11 @@ bool8 sub_801C8C4(s32 param_1, s32 param_2, struct UnkTextStruct2_sub *param_3, sub_8012D08(gUnknown_203B244->unk4EC, param_4); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B244->unk4F0,1,1); - sub_8013818(&gUnknown_203B244->unk4B4, sub_801CE58(), param_4, param_2); + sub_8013818(&gUnknown_203B244->input, sub_801CE58(), param_4, param_2); if (gUnknown_203B248 == gUnknown_203B244->unk0) { - gUnknown_203B244->unk4CC = gUnknown_203B24C; - gUnknown_203B244->unk4D2 = gUnknown_203B24E; - sub_8013984(&gUnknown_203B244->unk4B4); + gUnknown_203B244->input.menuIndex = gUnknown_203B24C; + gUnknown_203B244->input.unk1E = gUnknown_203B24E; + sub_8013984(&gUnknown_203B244->input); } sub_801CC38(); sub_801CCD8(); @@ -824,10 +806,10 @@ bool8 sub_801CA08(u8 param_1) u32 flag; if (param_1 == 0) { - sub_8013660(&gUnknown_203B244->unk4B4); + sub_8013660(&gUnknown_203B244->input); return 0; } - switch(GetKeyPress(&(gUnknown_203B244->unk4B4))) + switch(GetKeyPress(&(gUnknown_203B244->input))) { case 2: PlayMenuSoundEffect(1); @@ -842,7 +824,7 @@ bool8 sub_801CA08(u8 param_1) if ((temp = sub_801CFE0(index), flag = FALSE, temp != 0) || (flag = (INVENTORY_SIZE > GetNumberOfFilledInventorySlots() + sub_801CFB8())) || flag != 0 ) { PlayMenuSoundEffect(6); gUnknown_203B244->unkF4[index] = gUnknown_203B244->unkF4[index] ^ 1; - sub_80138B8(&gUnknown_203B244->unk4B4,0); + sub_80138B8(&gUnknown_203B244->input,0); sub_801CCD8(); return 1; } @@ -856,7 +838,7 @@ bool8 sub_801CA08(u8 param_1) return 4; default: _0801CAF2: - if (sub_80138B8(&gUnknown_203B244->unk4B4,1) != 0) { + if (sub_80138B8(&gUnknown_203B244->input,1) != 0) { sub_801CC38(); sub_801CCD8(); return 1; @@ -869,19 +851,19 @@ _0801CAF2: } u8 sub_801CB24(void) { - return gUnknown_203B244->itemIDs[(gUnknown_203B244->unk4D2 * gUnknown_203B244->unk4D0) + gUnknown_203B244->unk4CC]; + return gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + gUnknown_203B244->input.menuIndex]; } void sub_801CB5C(u8 r0) { ResetUnusedInputStruct(); sub_800641C(gUnknown_203B244->unk4F0, 0, 0); - gUnknown_203B244->itemCount = sub_801CE58(); - sub_8013984(&gUnknown_203B244->unk4B4); + gUnknown_203B244->input.unk22 = sub_801CE58(); + sub_8013984(&gUnknown_203B244->input); sub_801CC38(); sub_801CCD8(); if(r0) { - AddMenuCursorSprite(&gUnknown_203B244->unk4B4); + AddMenuCursorSprite(&gUnknown_203B244->input); } } @@ -889,8 +871,8 @@ void sub_801CBB8(void) { if(gUnknown_203B244 != NULL) { gUnknown_203B248 = gUnknown_203B244->unk0; - gUnknown_203B24C = gUnknown_203B244->unk4CC; - gUnknown_203B24E = gUnknown_203B244->unk4D2; + gUnknown_203B24C = gUnknown_203B244->input.menuIndex; + gUnknown_203B24E = gUnknown_203B244->input.unk1E; gUnknown_203B244->unk4F0[gUnknown_203B244->unk4E8] = gUnknown_80DBE3C; ResetUnusedInputStruct(); sub_800641C(gUnknown_203B244->unk4F0, 1, 1); @@ -989,17 +971,17 @@ void sub_801CCD8(void) sub_80073B8(gUnknown_203B244->unk4E8); xxx_call_draw_string(10,0,gUnknown_80DBE6C,gUnknown_203B244->unk4E8,0); sub_8012BC4(gUnknown_203B244->unk550[2] * 8 + 4,0, - gUnknown_203B244->unk4D2 + 1,2,7,gUnknown_203B244->unk4E8); - for(index = 0; index < gUnknown_203B244->unk4CE; index++) { - uVar3 = gUnknown_203B244->itemIDs[(gUnknown_203B244->unk4D2 * gUnknown_203B244->unk4D0) + index]; + gUnknown_203B244->input.unk1E + 1,2,7,gUnknown_203B244->unk4E8); + for(index = 0; index < gUnknown_203B244->input.unk1A; index++) { + uVar3 = gUnknown_203B244->itemIDs[(gUnknown_203B244->input.unk1E * gUnknown_203B244->input.unk1C) + index]; sub_8090DC4(buffer,uVar3,0); - y = sub_8013800(&gUnknown_203B244->unk4B4,index); + y = sub_8013800(&gUnknown_203B244->input,index); xxx_call_draw_string(8,y,buffer,gUnknown_203B244->unk4E8,0); - y2 = sub_8013800(&gUnknown_203B244->unk4B4,index); + y2 = sub_8013800(&gUnknown_203B244->input,index); sub_8012BC4((gUnknown_203B244->unk4EC->unkC << 3) - 2,y2, gTeamInventory_203B460->teamStorage[uVar3],3,5,gUnknown_203B244->unk4E8); if ((sub_801CFE0(uVar3) & 1) != 0) { - sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->unk4B4,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10); + sub_8007B7C(gUnknown_203B244->unk4E8,0x8,sub_8013800(&gUnknown_203B244->input,index), (gUnknown_203B244->unk4EC->unkC + -1) * '\b',10); } } sub_80073E0(gUnknown_203B244->unk4E8); diff --git a/src/hints_menu.c b/src/hints_menu.c index 58aae01cb..7c7e44ad0 100644 --- a/src/hints_menu.c +++ b/src/hints_menu.c @@ -14,7 +14,7 @@ struct Hints struct unkStruct_203B268 { // size: 0xA0 - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk34; struct UnkTextStruct2 *unk38; struct UnkTextStruct2 unk3C[4]; @@ -24,7 +24,7 @@ struct unkStruct_203B268 struct unkStruct_203B264 { // size: 0x9C - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk34; struct UnkTextStruct2 *unk38; struct UnkTextStruct2 unk3C[4]; @@ -57,9 +57,9 @@ extern void sub_8008C54(u32); void DrawHintSelectionMenu(void); void sub_801E594(void); void sub_8013984(void *); -void AddMenuCursorSprite(struct UnkInputStruct *); -extern u8 sub_80138B8(struct UnkInputStruct *, u32); -extern void sub_8013660(struct UnkInputStruct *); +void AddMenuCursorSprite(struct MenuInputStruct *); +extern u8 sub_80138B8(struct MenuInputStruct *, u32); +extern void sub_8013660(struct MenuInputStruct *); extern void sub_8012D08(struct UnkTextStruct2 *, u32); u32 sub_801E3F0(u32 r0) diff --git a/src/makuhita_dojo_1.c b/src/makuhita_dojo_1.c index 73ded2fc5..8435bcf9a 100644 --- a/src/makuhita_dojo_1.c +++ b/src/makuhita_dojo_1.c @@ -15,7 +15,7 @@ struct unkStruct_203B31C { // Size: 0xD0 s16 unk0[NUM_DUNGEON_MAZE]; - struct UnkInputStruct unk30; + struct MenuInputStruct unk30; u32 unk64; struct UnkTextStruct2 *unk68; struct UnkTextStruct2 unk6C[4]; @@ -66,7 +66,7 @@ extern bool8 IsMazeCompleted(s32); extern s32 sub_8030668(void); extern void sub_8013984(void *); extern void sub_80304C8(); -extern void AddMenuCursorSprite(struct UnkInputStruct *); +extern void AddMenuCursorSprite(struct MenuInputStruct *); extern void DrawDojoCourseList(void); extern u8 sub_80138B8(void *, u32); diff --git a/src/menu_input.c b/src/menu_input.c index 810940993..48aa55d82 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -17,26 +17,26 @@ extern struct UnkTextStruct1 gUnknown_2027370[4]; extern u8 gUnknown_80D4828[]; extern void PlayMenuSoundEffect(u32); -extern s32 GetKeyPress(struct UnkInputStruct *); -extern u32 sub_80137A8(struct UnkInputStruct *); -void MoveMenuCursorUp(struct UnkInputStruct *); -void MoveMenuCursorDown(struct UnkInputStruct *); +extern s32 GetKeyPress(struct MenuInputStruct *); +extern u32 sub_80137A8(struct MenuInputStruct *); +void MoveMenuCursorUp(struct MenuInputStruct *); +void MoveMenuCursorDown(struct MenuInputStruct *); extern void sub_80073B8(u32); extern s32 sub_8008ED0(const u8 *); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); -extern s32 sub_8013800(struct UnkInputStruct *, s32); +extern s32 sub_8013800(struct MenuInputStruct *, s32); extern void sub_80073E0(u32); -extern void sub_8013660(struct UnkInputStruct *); -void AddMenuCursorSprite(struct UnkInputStruct *); -void AddMenuCursorSprite_(struct UnkInputStruct *, u32); +extern void sub_8013660(struct MenuInputStruct *); +void AddMenuCursorSprite(struct MenuInputStruct *); +void AddMenuCursorSprite_(struct MenuInputStruct *, u32); void sub_8012EBC(struct MenuStruct *param_1); -extern void sub_8013134(struct UnkInputStruct *, u32, u32); -extern void sub_80137B0(struct UnkInputStruct *, u32); +extern void sub_8013134(struct MenuInputStruct *, u32, u32); +extern void sub_80137B0(struct MenuInputStruct *, u32); extern s16 sub_8009614(u32, u32); extern u32 ReturnIntFromChar2(u8); struct unkChar *GetCharacter(u32); extern void xxx_call_draw_char(u32, u32, u32, u32, u32); -extern void sub_801317C(struct UnkInputStructSub *); +extern void sub_801317C(struct MenuInputStructSub *); extern void nullsub_7(u16 *); const u32 gDefaultMenuTextColors[] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED }; @@ -461,7 +461,7 @@ bool8 sub_8013114(struct MenuStruct *param_1, s32 *menuAction) return FALSE; } -void sub_8013134(struct UnkInputStruct *param_1, u32 menuItemCounter, u32 index) { +void sub_8013134(struct MenuInputStruct *param_1, u32 menuItemCounter, u32 index) { struct UnkTextStruct1 *temp; @@ -491,7 +491,7 @@ void sub_8013134(struct UnkInputStruct *param_1, u32 menuItemCounter, u32 index) sub_801317C(¶m_1->unk28); } -void sub_801317C(struct UnkInputStructSub *param_1) +void sub_801317C(struct MenuInputStructSub *param_1) { param_1->unk0 = 0; param_1->a_button = 0; @@ -504,7 +504,7 @@ void sub_801317C(struct UnkInputStructSub *param_1) ResetUnusedInputStruct(); } -void AddMenuCursorSprite(struct UnkInputStruct *param_1) +void AddMenuCursorSprite(struct MenuInputStruct *param_1) { AddMenuCursorSprite_(param_1, 0); } diff --git a/src/more_input.c b/src/more_input.c index 379a81c7b..8b4deee92 100644 --- a/src/more_input.c +++ b/src/more_input.c @@ -3,10 +3,10 @@ #include "input.h" -extern void nullsub_34(struct UnkInputStructSub *r0); +extern void nullsub_34(struct MenuInputStructSub *r0); u32 sub_8012AE8(void); -u32 sub_8012A64(struct UnkInputStructSub *r0, u32 r1) +u32 sub_8012A64(struct MenuInputStructSub *r0, u32 r1) { if(r0 == NULL) { @@ -32,7 +32,7 @@ u32 sub_8012A64(struct UnkInputStructSub *r0, u32 r1) } } -u32 GetKeyPress(struct UnkInputStruct *r0) +u32 GetKeyPress(struct MenuInputStruct *r0) { if(r0 != NULL) { diff --git a/src/personality_test.c b/src/personality_test.c index be6930cff..21d2e5504 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -62,16 +62,16 @@ extern void sub_800836C(u32, u8 *r0, u32); extern void SetBGPaletteBufferColorArray(s32 index, u8 *colorArray); extern void RedrawPartnerSelectionMenu(void); -extern void sub_8013818(struct UnkInputStruct **r0, s32, u32, u32); +extern void sub_8013818(struct MenuInputStruct **r0, s32, u32, u32); -extern u32 GetKeyPress(struct UnkInputStruct **r0); -extern u8 sub_80138B8(struct UnkInputStruct **r0, u32); +extern u32 GetKeyPress(struct MenuInputStruct **r0); +extern u8 sub_80138B8(struct MenuInputStruct **r0, u32); extern void PlayMenuSoundEffect(u32); -extern void sub_8013984(struct UnkInputStruct **r0); -u32 sub_8013800(struct UnkInputStruct **r0, u32); -extern void AddMenuCursorSprite(struct UnkInputStruct **r0); +extern void sub_8013984(struct MenuInputStruct **r0); +u32 sub_8013800(struct MenuInputStruct **r0, u32); +extern void AddMenuCursorSprite(struct MenuInputStruct **r0); extern void xxx_call_draw_string(u32 x, u32 y, const char *text, u32, u32); extern u32 sub_80095E4(s16, u32); diff --git a/src/pokemon_news.c b/src/pokemon_news.c index af963e530..8f54f5a4e 100644 --- a/src/pokemon_news.c +++ b/src/pokemon_news.c @@ -14,7 +14,7 @@ struct unkStruct_203B2CC { // size: 0xD4; u8 receivedNewsletters[NUM_POKEMON_NEWS]; - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk6C; struct UnkTextStruct2 *unk70; struct UnkTextStruct2 unk74[4]; @@ -41,7 +41,7 @@ struct unkStruct_203B2D8 { // size: 0xA4 u8 unk0[4]; - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk38; struct UnkTextStruct2 *unk3C; struct UnkTextStruct2 unk40[4]; @@ -158,9 +158,9 @@ extern void CreatePKMNNewsMenu(void); extern void sub_8013818(void *, u32, u32, u32); extern u8 sub_80138B8(void *, u32); extern void PlayMenuSoundEffect(u32); -extern s32 GetKeyPress(struct UnkInputStruct *); -extern void sub_8013660(struct UnkInputStruct *); -extern void AddMenuCursorSprite(struct UnkInputStruct *); +extern s32 GetKeyPress(struct MenuInputStruct *); +extern void sub_8013660(struct MenuInputStruct *); +extern void AddMenuCursorSprite(struct MenuInputStruct *); extern void sub_802BCC4(void); extern void sub_802BB14(u32); extern void sub_801317C(u32 *); @@ -168,7 +168,7 @@ extern u8 HasNoMailinMailbox(void); extern void sub_802BF30(void); extern void CreateMailMenu(void); extern s32 CountEmptyMailSlots(void); -extern void sub_8013848(struct UnkInputStruct*, s32, u32, u32); +extern void sub_8013848(struct MenuInputStruct*, s32, u32, u32); void sub_802BB28(void); extern void sub_802BB98(void); extern void sub_802BC08(void); @@ -184,8 +184,8 @@ extern void sub_80073E0(u32); extern void xxx_call_draw_string(s32 x, u32 y, const u8 *, u32 , u32); extern void xxx_format_and_draw(u32, u32, const u8 *, u32, u32); extern void sub_803B6B0(u32, u32, u32, u32); -extern s32 sub_8013800(struct UnkInputStruct *, s32); -extern void sub_8013984(struct UnkInputStruct *); +extern s32 sub_8013800(struct MenuInputStruct *, s32); +extern void sub_8013984(struct MenuInputStruct *); extern struct PokemonStruct *sub_808D3BC(void); extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon); diff --git a/src/post_office_guide.c b/src/post_office_guide.c index 0838c5019..41c626f26 100644 --- a/src/post_office_guide.c +++ b/src/post_office_guide.c @@ -29,7 +29,7 @@ EWRAM_DATA_2 struct PostOfficeHelper *gPostOfficeHelper = {0}; struct unkStruct_203B330 { // size: 0x78 - struct UnkInputStructSub input; + struct MenuInputStructSub input; u8 unkC; u8 dungeonIndex; u8 fillE[2]; @@ -178,7 +178,7 @@ extern u8 gAvailablePokemonNames[]; extern void sub_80141B4(const char *r0, u32, struct OpenedFile **r1, u32); extern void sub_8014248(const char *r0, u32, u32, const struct MenuItem *r4, u32, u32, u32, struct OpenedFile **r5, u32); -extern u32 sub_8012A64(struct UnkInputStructSub *, u32); +extern u32 sub_8012A64(struct MenuInputStructSub *, u32); extern void PlayMenuSoundEffect(u32); extern void sub_8031A84(); extern void DisplayMissionObjectives(); diff --git a/src/wonder_mail_2_mid.c b/src/wonder_mail_2_mid.c index d00f6515d..c1eb56a61 100644 --- a/src/wonder_mail_2_mid.c +++ b/src/wonder_mail_2_mid.c @@ -12,21 +12,21 @@ bool8 IsMailSlotEmpty(u8); extern void sub_8013984(void *); -extern void sub_8013848(struct UnkInputStruct *, s32, u32, u32); +extern void sub_8013848(struct MenuInputStruct *, s32, u32, u32); extern s32 CountPelipperBoardSlots(void); extern void sub_802C328(void); extern void DrawPelipperBoardJobMenu(void); extern void PlayMenuSoundEffect(u32); -extern void sub_8013660(struct UnkInputStruct *); -extern s32 GetKeyPress(struct UnkInputStruct *); -extern bool8 sub_80138B8(struct UnkInputStruct *, u32); -extern void AddMenuCursorSprite(struct UnkInputStruct *); +extern void sub_8013660(struct MenuInputStruct *); +extern s32 GetKeyPress(struct MenuInputStruct *); +extern bool8 sub_80138B8(struct MenuInputStruct *, u32); +extern void AddMenuCursorSprite(struct MenuInputStruct *); extern u8 HasNoPelipperBoardJobs(void); extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); -extern s32 sub_8013800(struct UnkInputStruct *, s32); +extern s32 sub_8013800(struct MenuInputStruct *, s32); extern struct WonderMail *GetPelipperBoardSlotInfo(u32); extern void sub_803B35C(struct WonderMail *, u32 *); extern u8 gBulletinBoardText[]; @@ -39,7 +39,7 @@ struct unkStruct_203B2D8 { // size: 0xA4 u8 unk0[4]; - struct UnkInputStruct input; + struct MenuInputStruct input; u32 unk38; struct UnkTextStruct2 *unk3C; struct UnkTextStruct2 unk40[4]; @@ -52,7 +52,7 @@ struct unkStruct_203B2E0 { // size: 0xA8 u8 unk0[0x8]; - struct UnkInputStruct input; + struct MenuInputStruct input; s32 unk3C; struct UnkTextStruct2 *unk40; struct UnkTextStruct2 unk44[4]; diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c index 955155cf3..7d331d851 100644 --- a/src/wonder_mail_3.c +++ b/src/wonder_mail_3.c @@ -154,17 +154,17 @@ extern void sub_8008C54(u32); extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern void CreateRescueTitle(struct unkStruct_802C39C *); -extern s32 sub_8013800(void *, u32); +extern s32 sub_8013800(struct MenuInputStruct *, u32); extern u8 gUnknown_80DFDBC[]; extern void sub_802CF5C(void); extern void sub_802CFD0(void); -extern void sub_8013984(void *); -extern void AddMenuCursorSprite(void *); -extern u8 sub_80138B8(void *, u32); -extern void sub_8013660(void *); -extern u32 GetKeyPress(void *); +extern void sub_8013984(struct MenuInputStruct *); +extern void AddMenuCursorSprite(struct MenuInputStruct *); +extern u8 sub_80138B8(struct MenuInputStruct *, u32); +extern void sub_8013660(struct MenuInputStruct *); +extern u32 GetKeyPress(struct MenuInputStruct *); extern void PlayMenuSoundEffect(u32); -extern void sub_8013848(void *, s32, u32, u32); +extern void sub_8013848(struct MenuInputStruct *, s32, u32, u32); extern void sub_802DF24(void); extern void SetJobListState(u32); @@ -375,7 +375,7 @@ bool8 sub_802CDD4(u32 r0) sub_8012D34(gUnknown_203B2F4->unk38, 4); ResetUnusedInputStruct(); sub_800641C(gUnknown_203B2F4->unk3C, 1, 1); - sub_8013848(gUnknown_203B2F4, 5, 4, r0); + sub_8013848(&gUnknown_203B2F4->input, 5, 4, r0); sub_802CF5C(); sub_802CFD0(); return TRUE; @@ -385,12 +385,12 @@ u32 sub_802CE5C(u8 r0) { if(r0 == 0) { - sub_8013660(gUnknown_203B2F4); + sub_8013660(&gUnknown_203B2F4->input); return 0; } else { - switch(GetKeyPress(gUnknown_203B2F4)) + switch(GetKeyPress(&gUnknown_203B2F4->input)) { case INPUT_B_BUTTON: PlayMenuSoundEffect(1); @@ -398,7 +398,7 @@ u32 sub_802CE5C(u8 r0) case INPUT_A_BUTTON: return 3; default: - if(sub_80138B8(gUnknown_203B2F4, 1) != 0) + if(sub_80138B8(&gUnknown_203B2F4->input, 1) != 0) { sub_802CF5C(); sub_802CFD0(); @@ -414,18 +414,18 @@ u32 sub_802CE5C(u8 r0) u8 sub_802CEBC(void) { - return (gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C) + gUnknown_203B2F4->unk18; + return (gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C) + gUnknown_203B2F4->input.menuIndex; } void sub_802CED8(u8 r0) { ResetUnusedInputStruct(); sub_800641C(gUnknown_203B2F4->unk3C, 0, 0); - sub_8013984(gUnknown_203B2F4); + sub_8013984(&gUnknown_203B2F4->input); sub_802CF5C(); sub_802CFD0(); if(r0) - AddMenuCursorSprite(gUnknown_203B2F4); + AddMenuCursorSprite(&gUnknown_203B2F4->input); } void sub_802CF14(void) @@ -510,17 +510,17 @@ void sub_802CFD0(void) sub_8008C54(gUnknown_203B2F4->unk34); sub_80073B8(gUnknown_203B2F4->unk34); - r5 = r4 = gUnknown_203B2F4->unk1E * 8 + 10; + r5 = r4 = gUnknown_203B2F4->input.unk1E * 8 + 10; xxx_call_draw_string(r5,0,gUnknown_80DFDBC,gUnknown_203B2F4->unk34,0); // RESCUE EVENT r4 -= 6; r5 = r4 + (gUnknown_203B2F4->unk9C[2] * 8); - sub_8012BC4(r5,0,gUnknown_203B2F4->unk1E + 1,2,7,gUnknown_203B2F4->unk34); + sub_8012BC4(r5,0,gUnknown_203B2F4->input.unk1E + 1,2,7,gUnknown_203B2F4->unk34); - for(r5 = 0; r5 < gUnknown_203B2F4->unk1A; r5++) + for(r5 = 0; r5 < gUnknown_203B2F4->input.unk1A; r5++) { - iVar1 = sub_803B344(gUnknown_203B2F4->unk1E * gUnknown_203B2F4->unk1C + r5); + iVar1 = sub_803B344(gUnknown_203B2F4->input.unk1E * gUnknown_203B2F4->input.unk1C + r5); local.unk0[0] = gUnknown_203B2F4->unk34; - local.y = sub_8013800(gUnknown_203B2F4, r5); + local.y = sub_8013800(&gUnknown_203B2F4->input, r5); sub_803B35C(&iVar1->mail,&local); local.unk43 = 1; local.unk4C = iVar1->unk14;