diff --git a/asm/code_8023868.s b/asm/code_8023868.s deleted file mode 100644 index b88ed6dba..000000000 --- a/asm/code_8023868.s +++ /dev/null @@ -1,1190 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8023868 -sub_8023868: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r5, r0, 0 - mov r8, r1 - mov r9, r2 - mov r10, r3 - bl sub_8024108 - lsls r0, 24 - cmp r0, 0 - beq _08023888 - movs r0, 0 - b _08023A6E -_08023888: - ldr r4, _080238AC - ldr r0, [r4] - cmp r0, 0 - bne _0802389C - movs r0, 0xFE - lsls r0, 2 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r4] -_0802389C: - ldr r1, [r4] - str r5, [r1] - ldr r0, _080238B0 - ldr r0, [r0] - cmp r0, r5 - beq _080238B4 - movs r0, 0x1 - b _080238B8 - .align 2, 0 -_080238AC: .4byte gUnknown_3001B60 -_080238B0: .4byte gUnknown_203B2A0 -_080238B4: - ldr r0, _080238E4 - ldr r0, [r0] -_080238B8: - str r0, [r1, 0x4] - ldr r2, _080238E8 - ldr r0, [r2] - movs r1, 0 - strb r1, [r0, 0x14] - ldr r0, [r2] - strb r1, [r0, 0x15] - ldr r0, [r2] - strb r1, [r0, 0x16] - ldr r0, [r2] - strb r1, [r0, 0x17] - ldr r0, [r2] - strb r1, [r0, 0x18] - ldr r0, [r2] - ldr r0, [r0] - cmp r0, 0x4 - bhi _08023980 - lsls r0, 2 - ldr r1, _080238EC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080238E4: .4byte gUnknown_203B2A4 -_080238E8: .4byte gUnknown_3001B60 -_080238EC: .4byte _080238F0 - .align 2, 0 -_080238F0: - .4byte _08023958 - .4byte _08023904 - .4byte _08023914 - .4byte _08023924 - .4byte _0802393C -_08023904: - ldr r0, _08023910 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x18] - b _08023958 - .align 2, 0 -_08023910: .4byte gUnknown_3001B60 -_08023914: - ldr r0, _08023920 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x14] - b _08023958 - .align 2, 0 -_08023920: .4byte gUnknown_3001B60 -_08023924: - ldr r2, _08023938 - ldr r0, [r2] - movs r1, 0x1 - strb r1, [r0, 0x17] - ldr r0, [r2] - strb r1, [r0, 0x15] - ldr r0, [r2] - strb r1, [r0, 0x16] - b _08023958 - .align 2, 0 -_08023938: .4byte gUnknown_3001B60 -_0802393C: - ldr r5, _0802397C - ldr r0, [r5] - movs r4, 0x1 - strb r4, [r0, 0x18] - ldr r0, [r5] - strb r4, [r0, 0x15] - movs r0, 0x9 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - bne _08023958 - ldr r0, [r5] - strb r4, [r0, 0x16] -_08023958: - ldr r4, _0802397C - ldr r0, [r4] - ldr r0, [r0] - cmp r0, 0x4 - bne _08023980 - bl sub_80A5728 - lsls r0, 16 - asrs r0, 16 - bl sub_8002658 - ldr r1, [r4] - movs r2, 0xD5 - lsls r2, 2 - adds r1, r2 - strb r0, [r1] - b _0802398E - .align 2, 0 -_0802397C: .4byte gUnknown_3001B60 -_08023980: - ldr r0, _08023A7C - ldr r0, [r0] - movs r3, 0xD5 - lsls r3, 2 - adds r0, r3 - movs r1, 0 - strb r1, [r0] -_0802398E: - ldr r5, _08023A7C - ldr r0, [r5] - movs r4, 0xE3 - lsls r4, 2 - adds r1, r0, r4 - mov r2, r8 - str r2, [r1] - movs r7, 0xE4 - lsls r7, 2 - adds r2, r0, r7 - mov r3, r8 - lsls r1, r3, 1 - add r1, r8 - lsls r1, 3 - movs r6, 0xE5 - lsls r6, 2 - adds r1, r6 - adds r1, r0, r1 - str r1, [r2] - adds r0, r6 - bl RestoreSavedWindows - ldr r1, [r5] - adds r4, r1, r4 - ldr r2, [r4] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 3 - adds r1, r0 - adds r1, r6 - ldr r0, _08023A80 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r2, [r5] - adds r0, r2, r7 - ldr r1, [r0] - movs r4, 0xFD - lsls r4, 2 - adds r0, r2, r4 - str r0, [r1, 0x14] - mov r0, r9 - cmp r0, 0 - beq _08023A04 - movs r1, 0xE3 - lsls r1, 2 - adds r0, r2, r1 - ldr r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 3 - movs r3, 0xE7 - lsls r3, 2 - adds r1, r2, r3 - adds r1, r0 - mov r4, r9 - ldr r0, [r4] - str r0, [r1] -_08023A04: - ldr r0, [r5] - adds r0, r7 - ldr r0, [r0] - mov r1, r10 - bl sub_8012D08 - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, r6 - movs r1, 0x1 - movs r2, 0x1 - bl ShowWindows - ldr r4, [r5] - movs r0, 0xD6 - lsls r0, 2 - adds r4, r0 - bl sub_8023F8C - adds r1, r0, 0 - adds r0, r4, 0 - mov r2, r10 - mov r3, r8 - bl sub_8013818 - ldr r0, _08023A84 - ldr r4, [r5] - ldr r1, [r0] - ldr r0, [r4] - cmp r1, r0 - bne _08023A64 - ldr r0, _08023A88 - ldrh r1, [r0] - movs r2, 0xDC - lsls r2, 2 - adds r0, r4, r2 - strh r1, [r0] - ldr r0, _08023A8C - ldrh r1, [r0] - ldr r3, _08023A90 - adds r0, r4, r3 - strh r1, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r4, r1 - bl sub_8013984 -_08023A64: - bl sub_8023CF4 - bl sub_8023DA4 - movs r0, 0x1 -_08023A6E: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08023A7C: .4byte gUnknown_3001B60 -_08023A80: .4byte sUnknown_80DC968 -_08023A84: .4byte gUnknown_203B2A0 -_08023A88: .4byte gUnknown_203B2A8 -_08023A8C: .4byte gUnknown_203B2AA -_08023A90: .4byte 0x00000376 - thumb_func_end sub_8023868 - - thumb_func_start sub_8023A94 -sub_8023A94: - push {r4,lr} - lsls r0, 24 - cmp r0, 0 - bne _08023AB4 - ldr r0, _08023AB0 - ldr r0, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl sub_8013660 - movs r0, 0 - b _08023B3E - .align 2, 0 -_08023AB0: .4byte gUnknown_3001B60 -_08023AB4: - ldr r4, _08023AD0 - ldr r0, [r4] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl GetKeyPress - cmp r0, 0x2 - beq _08023ADE - cmp r0, 0x2 - bgt _08023AD4 - cmp r0, 0x1 - beq _08023AF2 - b _08023B16 - .align 2, 0 -_08023AD0: .4byte gUnknown_3001B60 -_08023AD4: - cmp r0, 0x3 - beq _08023AFC - cmp r0, 0x4 - beq _08023AE8 - b _08023B16 -_08023ADE: - movs r0, 0x1 - bl PlayMenuSoundEffect - movs r0, 0x2 - b _08023B3E -_08023AE8: - movs r0, 0x4 - bl PlayMenuSoundEffect - movs r0, 0x4 - b _08023B3E -_08023AF2: - movs r0, 0 - bl PlayMenuSoundEffect - movs r0, 0x3 - b _08023B3E -_08023AFC: - movs r0, 0x5 - bl PlayMenuSoundEffect - ldr r0, [r4] - ldr r1, [r0, 0x4] - movs r2, 0x1 - cmp r1, 0x2 - bhi _08023B0E - adds r2, r1, 0x1 -_08023B0E: - str r2, [r0, 0x4] - bl sub_8023F8C - b _08023B34 -_08023B16: - ldr r0, _08023B30 - ldr r0, [r0] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - movs r1, 0x1 - bl sub_80138B8 - lsls r0, 24 - cmp r0, 0 - bne _08023B34 - movs r0, 0 - b _08023B3E - .align 2, 0 -_08023B30: .4byte gUnknown_3001B60 -_08023B34: - bl sub_8023CF4 - bl sub_8023DA4 - movs r0, 0x1 -_08023B3E: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8023A94 - - thumb_func_start sub_8023B44 -sub_8023B44: - ldr r0, _08023B74 - ldr r0, [r0] - ldr r2, _08023B78 - adds r1, r0, r2 - movs r3, 0 - ldrsh r2, [r1, r3] - movs r3, 0xDD - lsls r3, 2 - adds r1, r0, r3 - movs r3, 0 - ldrsh r1, [r1, r3] - muls r1, r2 - movs r3, 0xDC - lsls r3, 2 - adds r2, r0, r3 - movs r3, 0 - ldrsh r2, [r2, r3] - adds r1, r2 - lsls r1, 1 - adds r0, 0x1A - adds r0, r1 - movs r1, 0 - ldrsh r0, [r0, r1] - bx lr - .align 2, 0 -_08023B74: .4byte gUnknown_3001B60 -_08023B78: .4byte 0x00000376 - thumb_func_end sub_8023B44 - - thumb_func_start sub_8023B7C -sub_8023B7C: - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ResetUnusedInputStruct - ldr r5, _08023BD0 - ldr r0, [r5] - movs r1, 0xE5 - lsls r1, 2 - adds r0, r1 - movs r1, 0 - movs r2, 0 - bl ShowWindows - bl sub_8023BD8 - adds r2, r0, 0 - ldr r0, [r5] - ldr r3, _08023BD4 - adds r1, r0, r3 - strh r2, [r1] - movs r1, 0xD6 - lsls r1, 2 - adds r0, r1 - bl sub_8013984 - bl sub_8023CF4 - bl sub_8023DA4 - cmp r4, 0 - beq _08023BCA - ldr r0, [r5] - movs r3, 0xD6 - lsls r3, 2 - adds r0, r3 - bl AddMenuCursorSprite -_08023BCA: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023BD0: .4byte gUnknown_3001B60 -_08023BD4: .4byte 0x0000037a - thumb_func_end sub_8023B7C - - thumb_func_start sub_8023BD8 -sub_8023BD8: - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r3, 0 - ldr r1, _08023C58 - ldr r0, [r1] - ldr r0, [r0, 0x8] - adds r7, r1, 0 - cmp r3, r0 - bge _08023C4A - ldr r0, _08023C5C - mov r8, r0 - mov r12, r7 -_08023BF2: - ldr r2, [r1] - lsls r4, r3, 1 - adds r0, r2, 0 - adds r0, 0x1A - adds r0, r4 - movs r5, 0 - ldrsh r1, [r0, r5] - movs r0, 0x58 - muls r0, r1 - mov r5, r8 - ldr r1, [r5] - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - adds r6, r3, 0x1 - cmp r0, 0 - bne _08023C3E - ldr r0, [r2, 0x8] - subs r0, 0x1 - str r0, [r2, 0x8] - cmp r3, r0 - bge _08023C3E - mov r5, r12 - adds r4, 0x2 -_08023C24: - ldr r2, [r5] - lsls r1, r3, 1 - adds r0, r2, 0 - adds r0, 0x1A - adds r1, r0, r1 - adds r0, r4 - ldrh r0, [r0] - strh r0, [r1] - adds r4, 0x2 - adds r3, 0x1 - ldr r0, [r2, 0x8] - cmp r3, r0 - blt _08023C24 -_08023C3E: - adds r3, r6, 0 - adds r1, r7, 0 - ldr r0, [r7] - ldr r0, [r0, 0x8] - cmp r3, r0 - blt _08023BF2 -_08023C4A: - ldr r0, [r7] - ldr r0, [r0, 0x8] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08023C58: .4byte gUnknown_3001B60 -_08023C5C: .4byte gRecruitedPokemonRef - thumb_func_end sub_8023BD8 - - thumb_func_start sub_8023C60 -sub_8023C60: - push {r4-r6,lr} - ldr r5, _08023CCC - ldr r2, [r5] - cmp r2, 0 - beq _08023CC6 - ldr r1, _08023CD0 - ldr r0, [r2] - str r0, [r1] - ldr r1, _08023CD4 - ldr r0, [r2, 0x4] - str r0, [r1] - ldr r1, _08023CD8 - movs r3, 0xDC - lsls r3, 2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1] - ldr r1, _08023CDC - ldr r6, _08023CE0 - adds r0, r2, r6 - ldrh r0, [r0] - strh r0, [r1] - movs r1, 0xE3 - lsls r1, 2 - adds r0, r2, r1 - ldr r0, [r0] - lsls r1, r0, 1 - adds r1, r0 - lsls r1, 3 - adds r1, r2, r1 - movs r4, 0xE5 - lsls r4, 2 - adds r1, r4 - ldr r0, _08023CE4 - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - ldm r0!, {r2,r3,r6} - stm r1!, {r2,r3,r6} - bl ResetUnusedInputStruct - ldr r0, [r5] - adds r0, r4 - movs r1, 0x1 - movs r2, 0x1 - bl ShowWindows - ldr r0, [r5] - bl MemoryFree - movs r0, 0 - str r0, [r5] -_08023CC6: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08023CCC: .4byte gUnknown_3001B60 -_08023CD0: .4byte gUnknown_203B2A0 -_08023CD4: .4byte gUnknown_203B2A4 -_08023CD8: .4byte gUnknown_203B2A8 -_08023CDC: .4byte gUnknown_203B2AA -_08023CE0: .4byte 0x00000376 -_08023CE4: .4byte sUnknown_80DC950 - thumb_func_end sub_8023C60 - - thumb_func_start sub_8023CE8 -sub_8023CE8: - ldr r0, _08023CF0 - ldr r0, [r0] - bx lr - .align 2, 0 -_08023CF0: .4byte gUnknown_3001B60 - thumb_func_end sub_8023CE8 - - thumb_func_start sub_8023CF4 -sub_8023CF4: - push {r4,r5,lr} - ldr r2, _08023D28 - ldr r0, [r2] - movs r1, 0xFD - lsls r1, 2 - adds r0, r1 - movs r3, 0 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _08023D2C - adds r0, r1 - strb r3, [r0] - ldr r0, [r2] - adds r1, 0x2 - adds r0, r1 - strb r3, [r0] - ldr r1, [r2] - ldr r0, [r1] - adds r5, r2, 0 - cmp r0, 0x2 - bne _08023D34 - ldr r0, _08023D30 - adds r1, r0 - b _08023D38 - .align 2, 0 -_08023D28: .4byte gUnknown_3001B60 -_08023D2C: .4byte 0x000003f5 -_08023D30: .4byte 0x000003f6 -_08023D34: - ldr r2, _08023D98 - adds r1, r2 -_08023D38: - movs r0, 0xC - strb r0, [r1] - ldr r0, [r5] - ldr r1, _08023D9C - adds r0, r1 - movs r2, 0 - ldrsh r0, [r0, r2] - movs r1, 0xC - bl sub_80095E4 - adds r0, 0x2 - ldr r3, [r5] - movs r1, 0xE3 - lsls r1, 2 - adds r4, r3, r1 - ldr r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r1, r3, r1 - ldr r2, _08023DA0 - adds r1, r2 - lsls r0, 16 - lsrs r0, 16 - strh r0, [r1] - ldr r2, [r4] - lsls r1, r2, 1 - adds r1, r2 - lsls r1, 3 - adds r3, r1 - movs r1, 0xE9 - lsls r1, 2 - adds r3, r1 - strh r0, [r3] - bl ResetUnusedInputStruct - ldr r0, [r5] - movs r2, 0xE5 - lsls r2, 2 - adds r0, r2 - movs r1, 0x1 - movs r2, 0x1 - bl ShowWindows - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08023D98: .4byte 0x000003f6 -_08023D9C: .4byte 0x00000372 -_08023DA0: .4byte 0x000003a2 - thumb_func_end sub_8023CF4 - - thumb_func_start sub_8023DA4 -sub_8023DA4: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x58 - ldr r4, _08023DD8 - ldr r0, [r4] - movs r5, 0xE3 - lsls r5, 2 - adds r0, r5 - ldr r0, [r0] - bl CallPrepareTextbox_8008C54 - ldr r0, [r4] - adds r0, r5 - ldr r0, [r0] - bl sub_80073B8 - ldr r0, [r4] - ldr r1, [r0] - cmp r1, 0x2 - beq _08023DE0 - cmp r1, 0x4 - beq _08023E00 - ldr r2, _08023DDC - b _08023E02 - .align 2, 0 -_08023DD8: .4byte gUnknown_3001B60 -_08023DDC: .4byte sUnknown_80DC988 -_08023DE0: - add r0, sp, 0x8 - bl sub_80920D8 - ldr r0, [r4] - movs r1, 0xE3 - lsls r1, 2 - adds r0, r1 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - add r2, sp, 0x8 - bl PrintStringOnWindow - b _08023E3C -_08023E00: - ldr r2, _08023EBC -_08023E02: - adds r0, r5 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0xA - movs r1, 0 - bl PrintStringOnWindow - ldr r1, [r4] - ldr r2, _08023EC0 - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 3 - adds r3, r0, 0x4 - ldr r4, _08023EC4 - adds r0, r1, r4 - movs r4, 0 - ldrsh r2, [r0, r4] - adds r2, 0x1 - movs r0, 0x7 - str r0, [sp] - adds r1, r5 - ldr r0, [r1] - str r0, [sp, 0x4] - adds r0, r3, 0 - movs r1, 0 - movs r3, 0x2 - bl sub_8012BC4 -_08023E3C: - movs r7, 0 - ldr r1, _08023EC8 - ldr r0, [r1] - ldr r2, _08023ECC - adds r0, r2 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r7, r0 - blt _08023E50 - b _08023F62 -_08023E50: - mov r8, r1 - add r0, sp, 0x30 - mov r9, r0 -_08023E56: - ldr r3, [r1] - ldr r1, _08023EC4 - adds r0, r3, r1 - movs r2, 0 - ldrsh r1, [r0, r2] - movs r4, 0xDD - lsls r4, 2 - adds r0, r3, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - muls r1, r0 - adds r1, r7 - lsls r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r1 - movs r4, 0 - ldrsh r5, [r0, r4] - ldr r2, _08023ED0 - movs r0, 0x58 - adds r1, r5, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - movs r6, 0x7 - ldrh r0, [r4] - lsrs r0, 1 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023ED4 - movs r0, 0 - ldrb r1, [r4, 0x4] - cmp r1, 0x41 - bne _08023E9E - movs r0, 0x1 -_08023E9E: - cmp r0, 0 - beq _08023EA4 - movs r6, 0x6 -_08023EA4: - movs r0, 0 - cmp r1, 0x40 - bne _08023EAC - movs r0, 0x1 -_08023EAC: - cmp r0, 0 - beq _08023EB2 - movs r6, 0x6 -_08023EB2: - ldrb r0, [r4, 0x2] - cmp r0, 0 - beq _08023EEA - movs r6, 0x5 - b _08023EEA - .align 2, 0 -_08023EBC: .4byte sUnknown_80DC980 -_08023EC0: .4byte 0x000003f6 -_08023EC4: .4byte 0x00000376 -_08023EC8: .4byte gUnknown_3001B60 -_08023ECC: .4byte 0x00000372 -_08023ED0: .4byte gRecruitedPokemonRef -_08023ED4: - ldrb r0, [r3, 0x18] - cmp r0, 0 - beq _08023EEA - adds r0, r5, 0 - bl sub_808D750 - lsls r0, 24 - movs r6, 0x2 - cmp r0, 0 - beq _08023EEA - movs r6, 0x4 -_08023EEA: - mov r0, r8 - ldr r1, [r0] - ldr r0, [r1] - cmp r0, 0x4 - bne _08023F02 - movs r2, 0xD5 - lsls r2, 2 - adds r0, r1, r2 - ldrb r1, [r0] - adds r0, r4, 0 - bl sub_8024184 -_08023F02: - adds r1, r4, 0 - adds r1, 0x4C - mov r0, r9 - movs r2, 0xA - bl sub_80922B4 - movs r0, 0x8 - ldrsh r1, [r4, r0] - add r0, sp, 0x44 - bl sub_808D930 - add r0, sp, 0x8 - ldr r1, _08023F80 - adds r2, r6, 0 - mov r3, r9 - bl sprintfStatic - mov r1, r8 - ldr r0, [r1] - movs r2, 0xD6 - lsls r2, 2 - adds r0, r2 - adds r1, r7, 0 - bl GetMenuEntryYCoord - adds r1, r0, 0 - mov r4, r8 - ldr r0, [r4] - movs r2, 0xE3 - lsls r2, 2 - adds r0, r2 - ldr r3, [r0] - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - add r2, sp, 0x8 - bl PrintStringOnWindow - adds r7, 0x1 - mov r1, r8 - ldr r0, [r4] - ldr r4, _08023F84 - adds r0, r4 - movs r2, 0 - ldrsh r0, [r0, r2] - cmp r7, r0 - bge _08023F62 - b _08023E56 -_08023F62: - ldr r0, _08023F88 - ldr r0, [r0] - movs r4, 0xE3 - lsls r4, 2 - adds r0, r4 - ldr r0, [r0] - bl sub_80073E0 - add sp, 0x58 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08023F80: .4byte sUnknown_80DC998 -_08023F84: .4byte 0x00000372 -_08023F88: .4byte gUnknown_3001B60 - thumb_func_end sub_8023DA4 - - thumb_func_start sub_8023F8C -sub_8023F8C: - push {r4-r7,lr} - ldr r2, _08023FD0 - ldr r1, [r2] - movs r0, 0 - str r0, [r1, 0x8] - ldrb r0, [r1, 0x15] - adds r6, r2, 0 - cmp r0, 0 - bne _08023FE2 - movs r4, 0 - ldr r2, _08023FD4 -_08023FA2: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r2] - adds r1, r0, r1 - ldrb r0, [r1, 0x2] - cmp r0, 0 - beq _08023FD8 - ldrb r1, [r1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08023FD8 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - b _08023FE2 - .align 2, 0 -_08023FD0: .4byte gUnknown_3001B60 -_08023FD4: .4byte gRecruitedPokemonRef -_08023FD8: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08023FA2 -_08023FE2: - ldr r0, [r6] - ldrb r0, [r0, 0x16] - cmp r0, 0 - bne _08024042 - movs r4, 0 - ldr r3, _08024034 -_08023FEE: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r3] - adds r1, r0, r1 - movs r2, 0 - ldrb r0, [r1, 0x4] - cmp r0, 0x41 - bne _08024002 - movs r2, 0x1 -_08024002: - cmp r2, 0 - beq _08024038 - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _08024038 - ldrh r1, [r1] - lsrs r0, r1, 1 - movs r2, 0x1 - ands r0, r2 - cmp r0, 0 - beq _08024038 - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08024038 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - b _08024042 - .align 2, 0 -_08024034: .4byte gRecruitedPokemonRef -_08024038: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08023FEE -_08024042: - ldr r0, [r6] - ldr r1, [r0, 0x8] - str r1, [r0, 0xC] - ldrb r0, [r0, 0x17] - cmp r0, 0 - bne _080240A4 - movs r4, 0 - ldr r7, _08024100 - movs r5, 0x1 -_08024054: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r7] - adds r1, r0, r1 - ldrh r2, [r1] - lsrs r0, r2, 1 - ands r0, r5 - cmp r0, 0 - beq _0802409A - adds r0, r5, 0 - ands r0, r2 - cmp r0, 0 - beq _0802409A - ldrb r0, [r1, 0x2] - cmp r0, 0 - bne _0802409A - movs r2, 0 - ldrb r0, [r1, 0x4] - cmp r0, 0x41 - bne _08024080 - movs r2, 0x1 -_08024080: - cmp r2, 0 - bne _0802409A - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] - cmp r1, 0x3 - bgt _080240A4 -_0802409A: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _08024054 -_080240A4: - ldr r0, [r6] - ldr r1, [r0, 0x8] - str r1, [r0, 0x10] - ldrb r0, [r0, 0x14] - cmp r0, 0 - bne _080240EE - movs r4, 0 - ldr r7, _08024100 - movs r5, 0x1 -_080240B6: - movs r0, 0x58 - adds r1, r4, 0 - muls r1, r0 - ldr r0, [r7] - adds r1, r0, r1 - ldrh r1, [r1] - adds r0, r5, 0 - ands r0, r1 - cmp r0, 0 - beq _080240E4 - lsrs r0, r1, 1 - ands r0, r5 - cmp r0, 0 - bne _080240E4 - ldr r3, [r6] - ldr r1, [r3, 0x8] - lsls r2, r1, 1 - adds r0, r3, 0 - adds r0, 0x1A - adds r0, r2 - strh r4, [r0] - adds r1, 0x1 - str r1, [r3, 0x8] -_080240E4: - adds r4, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r4, r0 - ble _080240B6 -_080240EE: - bl sub_80241A8 - ldr r0, _08024104 - ldr r0, [r0] - ldr r0, [r0, 0x8] - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08024100: .4byte gRecruitedPokemonRef -_08024104: .4byte gUnknown_3001B60 - thumb_func_end sub_8023F8C - - thumb_func_start sub_8024108 -sub_8024108: - push {r4-r7,lr} - adds r5, r0, 0 - movs r7, 0 - movs r6, 0x1 -_08024110: - ldr r2, _08024134 - movs r0, 0x58 - adds r1, r7, 0 - muls r1, r0 - ldr r0, [r2] - adds r4, r0, r1 - ldrh r1, [r4] - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - beq _08024172 - cmp r5, 0x2 - bne _08024138 - lsrs r0, r1, 1 - ands r0, r6 - cmp r0, 0 - beq _08024172 - b _0802416E - .align 2, 0 -_08024134: .4byte gRecruitedPokemonRef -_08024138: - cmp r5, 0x3 - bne _08024140 - lsrs r0, r1, 1 - b _08024168 -_08024140: - cmp r5, 0x4 - bne _0802416E - ldrb r0, [r4, 0x2] - cmp r0, 0 - bne _08024172 - movs r0, 0x9 - bl sub_80023E4 - lsls r0, 24 - cmp r0, 0 - bne _0802416E - movs r1, 0 - ldrb r0, [r4, 0x4] - cmp r0, 0x41 - bne _08024160 - movs r1, 0x1 -_08024160: - cmp r1, 0 - beq _0802416E - ldrh r0, [r4] - lsrs r0, 1 -_08024168: - ands r0, r6 - cmp r0, 0 - bne _08024172 -_0802416E: - movs r0, 0 - b _0802417E -_08024172: - adds r7, 0x1 - movs r0, 0xCE - lsls r0, 1 - cmp r7, r0 - ble _08024110 - movs r0, 0x1 -_0802417E: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8024108 - - .align 2,0 \ No newline at end of file diff --git a/include/code_8023868.h b/include/code_8023868.h deleted file mode 100644 index 548472a71..000000000 --- a/include/code_8023868.h +++ /dev/null @@ -1,30 +0,0 @@ -#ifndef GUARD_CODE_8023868_H -#define GUARD_CODE_8023868_H - -struct unkStruct_3001B60 -{ - u32 unk0; - u32 sortMethod; - u32 unk8; - u32 unkC; - u32 unk10; - u8 fill14[0x18 - 0x14]; - s16 unk18; - s16 unk1A[2]; - u8 fill1C[0x370 - 0x1E]; - s16 unk370; - s16 unk372; - s16 unk374; - s16 unk376; -}; - -// code_8023868.s -extern void sub_8023868(u32, u32, u32, u32); -extern u32 sub_8023A94(bool8); -extern s16 sub_8023B44(void); -extern void sub_8023B7C(u32); -extern void sub_8023C60(void); -extern void sub_8023DA4(void); -extern bool8 sub_8024108(u32); - -#endif // GUARD_CODE_8023868_H \ No newline at end of file diff --git a/include/friend_list.h b/include/friend_list.h new file mode 100644 index 000000000..e071edc9c --- /dev/null +++ b/include/friend_list.h @@ -0,0 +1,31 @@ +#ifndef GUARD_FRIEND_LIST_H +#define GUARD_FRIEND_LIST_H + +#include "structs/struct_sub80095e4.h" + +struct unkStruct_3001B60 +{ + u32 unk0; + u32 sortMethod; + s32 unk8; + u32 unkC; + u32 unk10; + u8 unk14; + u8 unk15; + u8 unk16; + u8 unk17; + u8 unk18; + s16 unk1A[NUM_MONSTERS]; + u8 unk354; + struct_Sub80095E4_2 unk358; +}; + +bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10); +u32 FriendList_HandleInput(bool8); +s32 FriendList_GetCurrId(void); +void sub_8023B7C(bool8 addCursor); +void FriendList_Free(void); +void FriendList_ShowWindow(void); +bool8 sub_8024108(s32); + +#endif // GUARD_FRIEND_LIST_H diff --git a/include/pokemon.h b/include/pokemon.h index 48851851c..3cf1b8d91 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -146,6 +146,11 @@ static inline bool8 IsMonPartner(PokemonStruct1 *mon) return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_PARTNER); } +static inline bool8 IsMonLeader(PokemonStruct1 *mon) +{ + return (mon->dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER); +} + // Needed to match a couple of functions which use species id. // The theory is that there was some internal species conversion which got scrapped later on. static inline s16 SpeciesId(s32 id) diff --git a/include/structs/struct_sub80095e4.h b/include/structs/struct_sub80095e4.h index 7b8ecb595..69ee9c90c 100644 --- a/include/structs/struct_sub80095e4.h +++ b/include/structs/struct_sub80095e4.h @@ -12,7 +12,7 @@ typedef struct struct_Sub80095E4 { /* 0x0 */ MenuInputStruct input; - /* 0x34 */ u32 unk34; + /* 0x34 */ u32 winId; /* 0x38 */ WindowTemplate *unk38; /* 0x3C */ WindowTemplates windows; } struct_Sub80095E4; @@ -22,7 +22,7 @@ typedef struct struct_Sub80095E4 typedef struct struct_Sub80095E4_2 { /* 0x0 */ struct_Sub80095E4 s0; // s as in 'struct' ; decided to go against unk as to not have `->unk0->unk3C` - /* 0x9C */ WindowHeader unk9C; + /* 0x9C */ WindowHeader header; } struct_Sub80095E4_2; // Note: In order to get matching ASM, this macro had to be created. @@ -33,13 +33,13 @@ typedef struct struct_Sub80095E4_2 s16 newE; \ s16 a0 = (_a0); \ UNUSED s32 a0_ = a0; \ - UNUSED s16 oldE = (ptr).windows.id[(ptr).unk34].height; \ + UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \ a0_ = 0; \ new10 = a0 + 2; \ newE = a0; \ \ - (ptr).windows.id[(ptr).unk34].height = newE; \ - (ptr).windows.id[(ptr).unk34].unk10 = a0 + 2; \ + (ptr).windows.id[(ptr).winId].height = newE; \ + (ptr).windows.id[(ptr).winId].unk10 = a0 + 2; \ \ ResetUnusedInputStruct(); \ ShowWindows(&(ptr).windows, TRUE, TRUE); \ @@ -54,14 +54,14 @@ typedef struct struct_Sub80095E4_2 #define SUB_80095E4_CALL_2(ptr) \ { \ s32 a0 = sub_80095E4((ptr).input.unk1A, 12) + 2; \ - UNUSED s16 oldE = (ptr).windows.id[(ptr).unk34].height; \ + UNUSED s16 oldE = (ptr).windows.id[(ptr).winId].height; \ s16 newE = a0; \ \ - (ptr).windows.id[(ptr).unk34].height = newE; \ - (ptr).windows.id[(ptr).unk34].unk10 = newE; \ + (ptr).windows.id[(ptr).winId].height = newE; \ + (ptr).windows.id[(ptr).winId].unk10 = newE; \ \ ResetUnusedInputStruct(); \ - ShowWindows(&(ptr).windows, TRUE, TRUE); \ + ShowWindows(&(ptr).windows, TRUE, TRUE); \ } // sub_802BF30 and sub_802C328 use a different function call, and 24 instead of 12 diff --git a/ld_script.txt b/ld_script.txt index a453c767d..6641e139d 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -136,8 +136,7 @@ SECTIONS { src/wigglytuff_shop3.o(.text); src/code_80227B8.o(.text); src/code_8023144.o(.text); - asm/code_8023868.o(.text); - src/code_8023868.o(.text); + src/friend_list.o(.text); src/code_8024458.o(.text); src/luminous_cave.o(.text); src/friend_list_menu.o(.text); @@ -492,7 +491,7 @@ SECTIONS { src/wigglytuff_shop3.o(.rodata); src/code_80227B8.o(.rodata); src/code_8023144.o(.rodata); - src/code_8023868.o(.rodata); + src/friend_list.o(.rodata); src/code_8024458.o(.rodata); src/luminous_cave.o(.rodata); src/friend_list_menu.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index bd164e671..7ef542156 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -22,11 +22,11 @@ static void sub_8032084(); bool8 CreateAdventureLogScreen(u32 kind) { sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8); - sAdventureLog->s0.unk34 = kind; + sAdventureLog->s0.winId = kind; sAdventureLog->s0.unk38 = &sAdventureLog->s0.windows.id[kind]; RestoreSavedWindows(&sAdventureLog->s0.windows); - sAdventureLog->s0.windows.id[sAdventureLog->s0.unk34] = sUnknown_80E2008; - sAdventureLog->s0.unk38->header = &sAdventureLog->unk9C; + sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E2008; + sAdventureLog->s0.unk38->header = &sAdventureLog->header; ResetUnusedInputStruct(); ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE); @@ -63,7 +63,7 @@ u32 HandleAdventureLogInput(bool8 a0) void CleanAdventureLogScreen(void) { if (sAdventureLog != NULL) { - sAdventureLog->s0.windows.id[sAdventureLog->s0.unk34] = sUnknown_80E1FF0; + sAdventureLog->s0.windows.id[sAdventureLog->s0.winId] = sUnknown_80E1FF0; ResetUnusedInputStruct(); ShowWindows(&sAdventureLog->s0.windows, TRUE, TRUE); MemoryFree(sAdventureLog); @@ -73,10 +73,10 @@ void CleanAdventureLogScreen(void) static void sub_8032084(void) { - sAdventureLog->unk9C.count = sAdventureLog->s0.input.unk20; - sAdventureLog->unk9C.currId = sAdventureLog->s0.input.unk1E; - sAdventureLog->unk9C.width = 11; - sAdventureLog->unk9C.f3 = 0; + sAdventureLog->header.count = sAdventureLog->s0.input.unk20; + sAdventureLog->header.currId = sAdventureLog->s0.input.unk1E; + sAdventureLog->header.width = 11; + sAdventureLog->header.f3 = 0; SUB_80095E4_CALL(sAdventureLog->s0); } @@ -88,16 +88,16 @@ static void DisplayAdventureLog(void) s32 r6; // r6 u8 aa; - CallPrepareTextbox_8008C54(sAdventureLog->s0.unk34); - sub_80073B8(sAdventureLog->s0.unk34); + CallPrepareTextbox_8008C54(sAdventureLog->s0.winId); + sub_80073B8(sAdventureLog->s0.winId); r4 = sAdventureLog->s0.input.unk1E * 8; r6 = r4; r6 += 10; - PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.unk34, 0); + PrintStringOnWindow(r6, 0, sAdventureLogText, sAdventureLog->s0.winId, 0); r4 += 4; - r6 = r4 + (sAdventureLog->unk9C.width * 8); - sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.unk34); + r6 = r4 + (sAdventureLog->header.width * 8); + sub_8012BC4(r6, 0, sAdventureLog->s0.input.unk1E + 1, 1, 7, sAdventureLog->s0.winId); for (i = 0; i < sAdventureLog->s0.input.unk1A; i++) { aa = (sAdventureLog->s0.input.unk1E * sAdventureLog->s0.input.unk1C) + i; @@ -107,31 +107,31 @@ static void DisplayAdventureLog(void) case AA_NUM_FLOORS_EXPLORED: { s32 v1 = GetAdventureFloorsExplored(); gFormatArgs[0] = (s16)v1; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } case AA_NUM_MOVES_LEARNED: { s32 v2 = GetAdventureMovesLearned(); gFormatArgs[0] = (s16)v2; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } case AA_NUM_THIEVING_SUCCESSES: { s32 v3 = GetThievingSuccesses(); gFormatArgs[0] = (s16)v3; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } case AA_NUM_FRIEND_RESCUE_SUCCESSES: { s32 v4 = GetFriendRescueSuccesses(); gFormatArgs[0] = v4; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } case AA_NUM_POKEMON_EVOLVED: { s32 v5 = GetAdventureNumEvolved(); gFormatArgs[0] = v5; - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } case AA_NUM_POKEMON_JOINED: { @@ -140,14 +140,14 @@ static void DisplayAdventureLog(void) // fallthrough } default: { - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), GetAdventureLogLine(aa), sAdventureLog->s0.winId, 0); break; } } } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sAdventureLog->s0.input, i), sPlaceholder, sAdventureLog->s0.winId, 0); } - sub_80073E0(sAdventureLog->s0.unk34); + sub_80073E0(sAdventureLog->s0.winId); } diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index 223bc4110..18fefa423 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -29,14 +29,14 @@ bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3) sUnknown_203B244->unk0 = a0; sub_801CF94(); - sUnknown_203B244->unk4B4.s0.unk34 = a1; + sUnknown_203B244->unk4B4.s0.winId = a1; sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.windows.id[a1]; RestoreSavedWindows(&sUnknown_203B244->unk4B4.s0.windows); - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE54; - sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.unk9C; + sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE54; + sUnknown_203B244->unk4B4.s0.unk38->header = &sUnknown_203B244->unk4B4.header; if (a2 != NULL) - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34].pos = *a2; + sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId].pos = *a2; sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3); ResetUnusedInputStruct(); @@ -128,7 +128,7 @@ void sub_801CBB8(void) sUnknown_203B248 = sUnknown_203B244->unk0; sUnknown_203B24C = sUnknown_203B244->unk4B4.s0.input.menuIndex; sUnknown_203B24E = sUnknown_203B244->unk4B4.s0.input.unk1E; - sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE3C; + sUnknown_203B244->unk4B4.s0.windows.id[sUnknown_203B244->unk4B4.s0.winId] = sUnknown_80DBE3C; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B244->unk4B4.s0.windows, TRUE, TRUE); MemoryFree(sUnknown_203B244); @@ -138,10 +138,10 @@ void sub_801CBB8(void) static void sub_801CC38(void) { - sUnknown_203B244->unk4B4.unk9C.count = 1; - sUnknown_203B244->unk4B4.unk9C.currId = 0; - sUnknown_203B244->unk4B4.unk9C.width = 12; - sUnknown_203B244->unk4B4.unk9C.f3 = 0; + sUnknown_203B244->unk4B4.header.count = 1; + sUnknown_203B244->unk4B4.header.currId = 0; + sUnknown_203B244->unk4B4.header.width = 12; + sUnknown_203B244->unk4B4.header.f3 = 0; SUB_80095E4_CALL(sUnknown_203B244->unk4B4.s0); } @@ -154,24 +154,24 @@ void sub_801CCD8(void) s32 index; u8 buffer[80]; - CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.unk34); - sub_80073B8(sUnknown_203B244->unk4B4.s0.unk34); - PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.unk34, 0); - sub_8012BC4(sUnknown_203B244->unk4B4.unk9C.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.unk1E + 1, 2, 7, sUnknown_203B244->unk4B4.s0.unk34); + CallPrepareTextbox_8008C54(sUnknown_203B244->unk4B4.s0.winId); + sub_80073B8(sUnknown_203B244->unk4B4.s0.winId); + PrintStringOnWindow(10, 0, sStorage, sUnknown_203B244->unk4B4.s0.winId, 0); + sub_8012BC4(sUnknown_203B244->unk4B4.header.width * 8 + 4, 0, sUnknown_203B244->unk4B4.s0.input.unk1E + 1, 2, 7, sUnknown_203B244->unk4B4.s0.winId); for(index = 0; index < sUnknown_203B244->unk4B4.s0.input.unk1A; index++) { itemID = sUnknown_203B244->itemIDs[(sUnknown_203B244->unk4B4.s0.input.unk1E * sUnknown_203B244->unk4B4.s0.input.unk1C) + index]; BufferItemName(buffer, itemID, NULL); y = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index); - PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.unk34, 0); + PrintStringOnWindow(8, y, buffer, sUnknown_203B244->unk4B4.s0.winId, 0); y2 = GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index); - sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.unk34); + sub_8012BC4((sUnknown_203B244->unk4B4.s0.unk38->width * 8) - 2, y2, gTeamInventoryRef->teamStorage[itemID], 3, 5, sUnknown_203B244->unk4B4.s0.winId); if (sub_801CFE0(itemID) & 1) - sub_8007B7C(sUnknown_203B244->unk4B4.s0.unk34, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10); + sub_8007B7C(sUnknown_203B244->unk4B4.s0.winId, 8, GetMenuEntryYCoord(&sUnknown_203B244->unk4B4.s0.input, index), (sUnknown_203B244->unk4B4.s0.unk38->width - 1) * 8, 10); } - sub_80073E0(sUnknown_203B244->unk4B4.s0.unk34); + sub_80073E0(sUnknown_203B244->unk4B4.s0.winId); } static u32 sub_801CE58(void) diff --git a/src/code_801D014.c b/src/code_801D014.c index de746eabe..f752fca99 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -5,7 +5,7 @@ #include "code_800D090.h" #include "code_801D014.h" #include "code_80227B8.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "code_80958E8.h" #include "common_strings.h" diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c index 1d5ef6a9c..e49db9059 100644 --- a/src/code_801D9E4.c +++ b/src/code_801D9E4.c @@ -23,14 +23,14 @@ static void sub_801DBD4(void); bool8 sub_801D9E4(void) { sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8); - sUnknown_203B258->s0.unk34 = 3; + sUnknown_203B258->s0.winId = 3; sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.windows.id[3]; RestoreSavedWindows(&sUnknown_203B258->s0.windows); - sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.unk34] = sUnknown_80DBF88; - sUnknown_203B258->s0.unk38->header = &sUnknown_203B258->unk9C; + sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF88; + sUnknown_203B258->s0.unk38->header = &sUnknown_203B258->header; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.unk34); + sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.winId); sub_801DB54(); sub_801DBD4(); return TRUE; @@ -81,7 +81,7 @@ UNUSED static void sub_801DADC(bool8 a0) void sub_801DB0C(void) { if (sUnknown_203B258 != NULL) { - sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.unk34] = sUnknown_80DBF70; + sUnknown_203B258->s0.windows.id[sUnknown_203B258->s0.winId] = sUnknown_80DBF70; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); MemoryFree(sUnknown_203B258); @@ -91,10 +91,10 @@ void sub_801DB0C(void) static void sub_801DB54(void) { - sUnknown_203B258->unk9C.count = 1; - sUnknown_203B258->unk9C.currId = 0; - sUnknown_203B258->unk9C.width = 8; - sUnknown_203B258->unk9C.f3 = 0; + sUnknown_203B258->header.count = 1; + sUnknown_203B258->header.currId = 0; + sUnknown_203B258->header.width = 8; + sUnknown_203B258->header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B258->s0.windows, TRUE, TRUE); @@ -110,13 +110,13 @@ static void sub_801DBD4(void) s16 index; int counter; - CallPrepareTextbox_8008C54(sUnknown_203B258->s0.unk34); - sub_80073B8(sUnknown_203B258->s0.unk34); - PrintStringOnWindow(10, 0, sField, sUnknown_203B258->s0.unk34, 0); // Field + CallPrepareTextbox_8008C54(sUnknown_203B258->s0.winId); + sub_80073B8(sUnknown_203B258->s0.winId); + PrintStringOnWindow(10, 0, sField, sUnknown_203B258->s0.winId, 0); // Field - x = (sUnknown_203B258->unk9C.width * 8) - 2; + x = (sUnknown_203B258->header.width * 8) - 2; n = sUnknown_203B258->s0.input.unk1E + 1; - sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.unk34); + sub_8012BC4(x, 0, n, 2, 7, sUnknown_203B258->s0.winId); // This line has no real effect. It's a magic 'fakematch' to fool agb into generating the same asm. It can be removed if you don't care about matching. if (x) { counter = 0; } @@ -127,11 +127,11 @@ static void sub_801DBD4(void) temp2 = &gUnknown_81188F0[temp->unk4]; y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter); - PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.unk34, 0); + PrintStringOnWindow(8, y, temp2->text1, sUnknown_203B258->s0.winId, 0); y = GetMenuEntryYCoord(&sUnknown_203B258->s0.input, counter); - PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.unk34, 0); + PrintStringOnWindow(62, y, temp->text, sUnknown_203B258->s0.winId, 0); } - sub_80073E0(sUnknown_203B258->s0.unk34); + sub_80073E0(sUnknown_203B258->s0.winId); } diff --git a/src/code_801F428.c b/src/code_801F428.c index 125edddad..b96e35540 100644 --- a/src/code_801F428.c +++ b/src/code_801F428.c @@ -53,15 +53,15 @@ bool8 sub_801F428(s16 index, s32 param_2) gUnknown_203B274 = MemoryAlloc(sizeof(struct unkStruct_203B274), 0x8); gUnknown_203B274->pokeStruct = &gRecruitedPokemonRef->pokemon[index_s32]; gUnknown_203B274->unk4 = &gUnknown_203B274->unk8; - gUnknown_203B274->s348.s0.unk34 = param_2; - gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34]; + gUnknown_203B274->s348.s0.winId = param_2; + gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId]; RestoreSavedWindows(&gUnknown_203B274->s348.s0.windows); - gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4; - gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.unk9C; - gUnknown_203B274->s348.unk9C.count = 1; - gUnknown_203B274->s348.unk9C.currId = 0; - gUnknown_203B274->s348.unk9C.width = 0xC; - gUnknown_203B274->s348.unk9C.f3 = 0; + gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2C4; + gUnknown_203B274->s348.s0.unk38->header = &gUnknown_203B274->s348.header; + gUnknown_203B274->s348.header.count = 1; + gUnknown_203B274->s348.header.currId = 0; + gUnknown_203B274->s348.header.width = 0xC; + gUnknown_203B274->s348.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE); sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2); @@ -122,7 +122,7 @@ void sub_801F63C(void) { if(gUnknown_203B274 != NULL) { - gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC; + gUnknown_203B274->s348.s0.windows.id[gUnknown_203B274->s348.s0.winId] = sUnknown_80DC2AC; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B274->s348.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B274); @@ -142,17 +142,17 @@ void sub_801F700(void) u8 buffer2 [48]; u8 buffer1 [128]; - CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.unk34); - sub_80073B8(gUnknown_203B274->s348.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B274->s348.s0.winId); + sub_80073B8(gUnknown_203B274->s348.s0.winId); sprintfStatic(buffer1,gUnknown_80DC2DC,gUnknown_203B274->s348.s0.input.unk1E + 1,gUnknown_203B274->s348.s0.input.unk20); // Moves Page: %d/%d - PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.unk34,0); + PrintStringOnWindow(0x10,0,buffer1,gUnknown_203B274->s348.s0.winId,0); for(index = 0; index < gUnknown_203B274->s348.s0.input.unk1A; index++) { sub_8092C84(buffer2,gUnknown_203B274->unk4->unk0[gUnknown_203B274->s348.s0.input.unk1E * gUnknown_203B274->s348.s0.input.unk1C + index]); y = GetMenuEntryYCoord(&gUnknown_203B274->s348.s0.input, index); - PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.unk34,0); + PrintStringOnWindow(8,y,buffer2,gUnknown_203B274->s348.s0.winId,0); } - sub_80073E0(gUnknown_203B274->s348.s0.unk34); + sub_80073E0(gUnknown_203B274->s348.s0.winId); } u32 sub_801F7E4(void) diff --git a/src/code_8023144.c b/src/code_8023144.c index c925778c1..ad73ab849 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -47,15 +47,15 @@ bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3) gUnknown_3001B5C->unk0 = param_1_u8; gUnknown_3001B5C->unk4 = gUnknown_203B298; - gUnknown_3001B5C->s35C.s0.unk34 = index; + gUnknown_3001B5C->s35C.s0.winId = index; gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.windows.id[index]; RestoreSavedWindows(&gUnknown_3001B5C->s35C.s0.windows); - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC91C; + gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC91C; - gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.unk9C; + gUnknown_3001B5C->s35C.s0.unk38->header = &gUnknown_3001B5C->s35C.header; if (sub != NULL) - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34].pos = *sub; + gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId].pos = *sub; sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3); ResetUnusedInputStruct(); @@ -128,7 +128,7 @@ void sub_80233A0(void) gUnknown_203B298 = gUnknown_3001B5C->unk4; gUnknown_203B29C = gUnknown_3001B5C->s35C.s0.input.menuIndex; gUnknown_203B29E = gUnknown_3001B5C->s35C.s0.input.unk1E; - gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC904; + gUnknown_3001B5C->s35C.s0.windows.id[gUnknown_3001B5C->s35C.s0.winId] = sUnknown_80DC904; ResetUnusedInputStruct(); ShowWindows(&gUnknown_3001B5C->s35C.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_3001B5C); @@ -138,10 +138,10 @@ void sub_80233A0(void) static void sub_8023420(void) { - gUnknown_3001B5C->s35C.unk9C.count = 1; - gUnknown_3001B5C->s35C.unk9C.currId = 0; - gUnknown_3001B5C->s35C.unk9C.width = 12; - gUnknown_3001B5C->s35C.unk9C.f3 = 0; + gUnknown_3001B5C->s35C.header.count = 1; + gUnknown_3001B5C->s35C.header.currId = 0; + gUnknown_3001B5C->s35C.header.width = 12; + gUnknown_3001B5C->s35C.header.f3 = 0; SUB_80095E4_CALL_2(gUnknown_3001B5C->s35C.s0); } @@ -159,11 +159,11 @@ static void sub_80234BC(void) u8 buffer1[100]; FriendAreaCapacity auStack_2c; - CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.unk34); - sub_80073B8(gUnknown_3001B5C->s35C.s0.unk34); - PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.unk34, 0); + CallPrepareTextbox_8008C54(gUnknown_3001B5C->s35C.s0.winId); + sub_80073B8(gUnknown_3001B5C->s35C.s0.winId); + PrintStringOnWindow(10, 0, sPokemon, gUnknown_3001B5C->s35C.s0.winId, 0); - sub_8012BC4((gUnknown_3001B5C->s35C.unk9C.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.unk1E + 1, 2, 7, gUnknown_3001B5C->s35C.s0.unk34); + sub_8012BC4((gUnknown_3001B5C->s35C.header.width * 8) + 4, 0, gUnknown_3001B5C->s35C.s0.input.unk1E + 1, 2, 7, gUnknown_3001B5C->s35C.s0.winId); for (i = 0; i < gUnknown_3001B5C->s35C.s0.input.unk1A; i++) { y = GetMenuEntryYCoord(&gUnknown_3001B5C->s35C.s0.input, i); @@ -175,26 +175,26 @@ static void sub_80234BC(void) iVar4 = GetDexInternalNo(species, 0); cVar2 = (iVar4 % 10) + 48; - sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34); + sub_8012C60(20, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); if (9 < iVar4) { iVar4 /= 10; cVar2 = (iVar4 % 10) + 48; - sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34); + sub_8012C60(13, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); if (9 < iVar4) { uVar3 = iVar4 / 10; cVar2 = (uVar3 % 10) + 48; - sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.unk34); + sub_8012C60(6, y, cVar2, color, gUnknown_3001B5C->s35C.s0.winId); } } sub_808D930(buffer1,species); sprintfStatic(buffer2, sFmtColoredString, color, buffer1); - PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.unk34, 0); + PrintStringOnWindow(36, y, buffer2, gUnknown_3001B5C->s35C.s0.winId, 0); } - sub_80073E0(gUnknown_3001B5C->s35C.s0.unk34); + sub_80073E0(gUnknown_3001B5C->s35C.s0.winId); } static u32 sub_80236A4(void) diff --git a/src/code_8023868.c b/src/code_8023868.c deleted file mode 100644 index 154e1821a..000000000 --- a/src/code_8023868.c +++ /dev/null @@ -1,174 +0,0 @@ -#include "global.h" -#include "globaldata.h" -#include "code_800D090.h" -#include "code_8023868.h" -#include "pokemon.h" -#include "structs/str_text.h" -#include "text_util.h" - -//static // MAKE STATIC WHEN code_8023868.s IS DONE -IWRAM_INIT struct unkStruct_3001B60 *gUnknown_3001B60 = {NULL}; - -#include "data/code_8023868.h" - -static void SortbyAlphabetNo(s32, s32); -static void SortbyInternalNo(s32, s32); -static void SortbyName(s32, s32); - -//static bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area); -//static void sub_80241A8(void); - -// THE REMAINING CODE FROM THIS FILE IS IN code_8023868.s STARTING WITH sub_8023868 - -//static // MAKE STATIC WHEN code_8023868.s IS DONE -bool8 sub_8024184(PokemonStruct1 *pokemon, u8 area) -{ - if (area == GetFriendArea(pokemon->speciesNum)) - return TRUE; - return FALSE; -} - -//static // MAKE STATIC WHEN code_8023868.s IS DONE -void sub_80241A8(void) -{ - switch (gUnknown_3001B60->sortMethod) { - case 2: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) - SortbyAlphabetNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) - SortbyAlphabetNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - break; - case 3: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) - SortbyName(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) - SortbyName(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - break; - case 1: - if (gUnknown_3001B60->unkC != gUnknown_3001B60->unk10) - SortbyInternalNo(gUnknown_3001B60->unkC, gUnknown_3001B60->unk10); - - if (gUnknown_3001B60->unk10 != gUnknown_3001B60->unk8) - SortbyInternalNo(gUnknown_3001B60->unk10, gUnknown_3001B60->unk8); - break; - } -} - -// TODO: Remove hacky if/do -static void SortbyInternalNo(s32 param_1, s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - if (GetInternalNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -// TODO: Remove hacky if/do -static void SortbyAlphabetNo(s32 param_1, s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[r5 = r4 - 1, *r5].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[*r4].speciesNum, 0)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -// TODO: Remove hacky if/do -static void SortbyName(s32 param_1, s32 param_2) -{ - s16 *r4; - s32 iVar4; - s16 *r10; - s16 *r5; - s32 r6; - s32 r1; - s32 r7; - s32 r9; - - r10 = &gUnknown_3001B60->unk18 + param_2; - r7 = param_1; - r1 = param_2 - 1; - if (r7 < r1) { - r9 = r1; - do { - r4 = r10; - r6 = r1; - iVar4 = r7 + 1; - for (; r6 > r7; r6--) { - r5 = r4 - 1; - if (ComparePokemonNames(*r5, *r4)) { - r1 = *r4; - *r4 = *r5; - *r5 = r1; - } - r4 = r5; - } - r7 = iVar4; - r1 = r9; - } while (iVar4 < r1); - } -} - -UNUSED static PokemonStruct1 *sub_80243E8(void) -{ - u8 buffer[40]; - u8 nameBuffer[20]; - PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_3001B60->unk1A[(gUnknown_3001B60->unk376 * gUnknown_3001B60->unk374) + gUnknown_3001B60->unk370]]; - - sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); - sprintfStatic(buffer, sUnknown_80DC9A4, nameBuffer); - return pokeStruct; -} diff --git a/src/code_8072F3C.c b/src/code_8072F3C.c index d3745ce03..253af4a9c 100644 --- a/src/code_8072F3C.c +++ b/src/code_8072F3C.c @@ -75,19 +75,19 @@ u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3) gUnknown_203B314 = MemoryAlloc(sizeof(struct unkStruct_203B314), 8); gUnknown_203B314->unkB8 = r3; - gUnknown_203B314->sBC.s0.unk34 = r0; - gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34]; + gUnknown_203B314->sBC.s0.winId = r0; + gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId]; RestoreSavedWindows(&gUnknown_203B314->sBC.s0.windows); if (r3 != 0) - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E072C; + gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E072C; else - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E0714; + gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E0714; - gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.unk9C; + gUnknown_203B314->sBC.s0.unk38->header = &gUnknown_203B314->sBC.header; if (r1 != 0) - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34].pos = *r1; + gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId].pos = *r1; sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2); ResetUnusedInputStruct(); @@ -169,7 +169,7 @@ void sub_802F974(void) { if(gUnknown_203B314 != NULL) { - gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E06FC; + gUnknown_203B314->sBC.s0.windows.id[gUnknown_203B314->sBC.s0.winId] = gUnknown_80E06FC; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B314->sBC.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B314); @@ -179,10 +179,10 @@ void sub_802F974(void) void sub_802F9C0(void) { - gUnknown_203B314->sBC.unk9C.count = 1; - gUnknown_203B314->sBC.unk9C.currId = 0; - gUnknown_203B314->sBC.unk9C.width = 8; - gUnknown_203B314->sBC.unk9C.f3 = 0; + gUnknown_203B314->sBC.header.count = 1; + gUnknown_203B314->sBC.header.currId = 0; + gUnknown_203B314->sBC.header.width = 8; + gUnknown_203B314->sBC.header.f3 = 0; SUB_80095E4_CALL(gUnknown_203B314->sBC.s0); } @@ -196,10 +196,10 @@ void sub_802FA50(void) int index; int counter; - CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.unk34); - sub_80073B8(gUnknown_203B314->sBC.s0.unk34); - PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.unk34,0); - sub_8012BC4(gUnknown_203B314->sBC.unk9C.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.unk1E + 1,2,7,gUnknown_203B314->sBC.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B314->sBC.s0.winId); + sub_80073B8(gUnknown_203B314->sBC.s0.winId); + PrintStringOnWindow(10,0,gUnknown_80E0744,gUnknown_203B314->sBC.s0.winId,0); + sub_8012BC4(gUnknown_203B314->sBC.header.width * 8 + 4,0,gUnknown_203B314->sBC.s0.input.unk1E + 1,2,7,gUnknown_203B314->sBC.s0.winId); if (gUnknown_203B314->unkB8 != 0) { for(counter = 0; counter < gUnknown_203B314->sBC.s0.input.unk1A; counter++) { @@ -207,12 +207,12 @@ void sub_802FA50(void) index = gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter; sVar1 = gUnknown_203B314->unk0[index]; if (gUnknown_203B314->unk5C[index] != 0) { - PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.unk34,0); + PrintStringOnWindow(10,y,gUnknown_80E0750,gUnknown_203B314->sBC.s0.winId,0); } else if (gUnknown_203B314->unk8A[index] != 0) { - PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.unk34,0); + PrintStringOnWindow(10,y,gUnknown_80E0754,gUnknown_203B314->sBC.s0.winId,0); } - PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.unk34,0); + PrintStringOnWindow(0x18,y,sub_80974A0(sVar1),gUnknown_203B314->sBC.s0.winId,0); } } else { @@ -220,10 +220,10 @@ void sub_802FA50(void) { y2 = GetMenuEntryYCoord(&gUnknown_203B314->sBC.s0.input,counter); text = sub_80974A0(gUnknown_203B314->unk0[gUnknown_203B314->sBC.s0.input.unk1E * gUnknown_203B314->sBC.s0.input.unk1C + counter]); - PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.unk34,0); + PrintStringOnWindow(8,y2,text,gUnknown_203B314->sBC.s0.winId,0); } } - sub_80073E0(gUnknown_203B314->sBC.s0.unk34); + sub_80073E0(gUnknown_203B314->sBC.s0.winId); } static inline void sub_802FBF4_sub(u8 *test, s32 counter) diff --git a/src/data/code_8023868.h b/src/data/code_8023868.h deleted file mode 100644 index 2222d6cb9..000000000 --- a/src/data/code_8023868.h +++ /dev/null @@ -1,27 +0,0 @@ -//static // MAKE STATIC WHEN code_8023868.s IS DONE -const WindowTemplate sUnknown_80DC950 = { - 0, - 3, - 0, 0, - 0, 0, - 0, 0, - NULL -}; -//static // MAKE STATIC WHEN code_8023868.s IS DONE -const WindowTemplate sUnknown_80DC968 = { - 0, - 6, - 2, 2, - 15, 14, - 14, 0, - NULL -}; - -ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE -const u8 sUnknown_80DC980[] = _("Friends"); -ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE -const u8 sUnknown_80DC988[] = _("Pokémon Friends"); -ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE -const u8 sUnknown_80DC998[] = _("{color}%c%s{reset}"); -ALIGNED(4) //static // MAKE STATIC WHEN code_8023868.s IS DONE -const u8 sUnknown_80DC9A4[] = _("%s"); diff --git a/src/debug_menu4.c b/src/debug_menu4.c index ec236869f..a9ed900d2 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -1,7 +1,7 @@ #include "global.h" #include "globaldata.h" #include "code_801602C.h" -#include "code_8023868.h" +#include "friend_list.h" #include "debug_menu4.h" #include "input.h" #include "memory.h" @@ -109,13 +109,13 @@ static void sub_803AD88(void) { switch (sUnknown_203B3F8->state) { case 1: - sub_8023868(1, 0, 0, 10); + FriendList_Init(1, 0, 0, 10); break; case 2: sub_8023B7C(1); break; case 3: - sub_8023DA4(); + FriendList_ShowWindow(); sub_8012D60(&sUnknown_203B3F8->unk10, sUnknown_203B3F8->unk90, 0, sUnknown_203B3F8->unkD0, sUnknown_203B3F8->menuAction, 2); break; case 5: @@ -148,7 +148,7 @@ static void sub_803AE58(void) PrintStringOnWindow(4, 0, sNumberPrompt, sUnknown_203B3F8->unk60.unk14, 0); sub_8013C68(&sUnknown_203B3F8->unk60); sub_80073E0(sUnknown_203B3F8->unk60.unk14); - sub_8023DA4(); + FriendList_ShowWindow(); sub_8012EA4(&sUnknown_203B3F8->unk10, 0); } @@ -181,14 +181,14 @@ static void sub_803AEB0(void) static void sub_803AF38(void) { - switch (sub_8023A94(TRUE)) { + switch (FriendList_HandleInput(TRUE)) { case 3: - sUnknown_203B3F8->unk4 = sub_8023B44(); + sUnknown_203B3F8->unk4 = FriendList_GetCurrId(); sUnknown_203B3F8->pokemon = &gRecruitedPokemonRef->pokemon[sUnknown_203B3F8->unk4]; sub_803ACD0(3); break; case 2: - sub_8023C60(); + FriendList_Free(); sub_803ACD0(7); break; case 1: @@ -203,7 +203,7 @@ static void sub_803AF88(void) menuAction = 0; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if (sub_8012FD8(&sUnknown_203B3F8->unk10) == 0) sub_8013114(&sUnknown_203B3F8->unk10, &menuAction); @@ -225,7 +225,7 @@ static void sub_803AF88(void) static void sub_803AFE8(void) { - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); sub_8012FD8(&sUnknown_203B3F8->unk10); switch (sub_8013BBC(&sUnknown_203B3F8->unk60)) { diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 996ff97f8..06dff887b 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -4,7 +4,7 @@ #include "code_801B3C0.h" #include "code_801EE10.h" #include "code_801EE10_mid.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "code_8098BDC.h" #include "code_8099360.h" @@ -175,14 +175,14 @@ void sub_8027274(void) case FRIEND_AREA_ACTION_MENU_EXIT: break; case FRIEND_AREA_ACTION_MENU_MAIN: - sub_8023868(1,0,0,7); + FriendList_Init(1,0,0,7); break; case FRIEND_AREA_ACTION_MENU_MAIN_2: sub_8023B7C(1); break; case 3: sub_8027D40(3, &sUnknown_203B2BC->item2); - sub_8023DA4(); + FriendList_ShowWindow(); sub_8012D60(&sUnknown_203B2BC->unk7C, sUnknown_203B2BC->menuItems, 0, sUnknown_203B2BC->unk16C, sUnknown_203B2BC->menuAction1, 2); break; case FRIEND_AREA_ACTION_MENU_SUMMARY: @@ -383,12 +383,12 @@ void sub_80277FC(void) { PokemonStruct1 *pokeStruct; - switch(sub_8023A94(TRUE)) { + switch(FriendList_HandleInput(TRUE)) { case 0: case 1: break; case 3: - sUnknown_203B2BC->targetPoke = sub_8023B44(); + sUnknown_203B2BC->targetPoke = FriendList_GetCurrId(); pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; sUnknown_203B2BC->pokeStruct = pokeStruct; sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; @@ -396,7 +396,7 @@ void sub_80277FC(void) SetFriendAreaActionMenuState(3); break; case 4: - sUnknown_203B2BC->targetPoke = sub_8023B44(); + sUnknown_203B2BC->targetPoke = FriendList_GetCurrId(); pokeStruct = &gRecruitedPokemonRef->pokemon[sUnknown_203B2BC->targetPoke]; sUnknown_203B2BC->pokeStruct = pokeStruct; sUnknown_203B2BC->isTeamLeader = pokeStruct->isTeamLeader; @@ -404,7 +404,7 @@ void sub_80277FC(void) SetFriendAreaActionMenuState(4); break; case 2: - sub_8023C60(); + FriendList_Free(); SetFriendAreaActionMenuState(FRIEND_AREA_ACTION_MENU_EXIT); break; } @@ -417,7 +417,7 @@ void sub_80278B4(void) u32 menuAction; menuAction = 0; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if ((sub_8012FD8(&sUnknown_203B2BC->unk7C) == 0) && (sub_8013114(&sUnknown_203B2BC->unk7C,&menuAction), menuAction != FRIEND_AREA_ACTION_MENU_ACTION_NONE)) { sUnknown_203B2BC->menuAction1 = menuAction; } diff --git a/src/friend_list.c b/src/friend_list.c new file mode 100644 index 000000000..3c43f103d --- /dev/null +++ b/src/friend_list.c @@ -0,0 +1,476 @@ +#include "global.h" +#include "globaldata.h" +#include "friend_list.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "pokemon.h" +#include "structs/str_text.h" +#include "text_util.h" +#include "text_1.h" +#include "text_2.h" +#include "text_3.h" +#include "event_flag.h" +#include "menu_input.h" +#include "rescue_team_info.h" +#include "input.h" +#include "memory.h" +#include "ground_map_1.h" +#include "constants/input.h" + +extern bool8 sub_808D750(s32 index_); + +static IWRAM_INIT struct unkStruct_3001B60 *sFriendList = {NULL}; + +static void SortbyAlphabetNo(s32, s32); +static void SortbyInternalNo(s32, s32); +static void SortbyName(s32, s32); +static bool8 MonHasFriendArea(PokemonStruct1 *pokemon, u8 area); +static void SortNames(void); +static void SetUpWindowHeader(void); +static s32 sub_8023BD8(void); +static s32 sub_8023F8C(void); + +extern s32 gUnknown_203B2A0; +extern s32 gUnknown_203B2A4; +extern u16 gUnknown_203B2A8; +extern u16 gUnknown_203B2AA; + +static const WindowTemplate sDummyWinTemplate = WIN_TEMPLATE_DUMMY; + +static const WindowTemplate sUnknown_80DC968 = { + .unk0 = 0, + .type = WINDOW_TYPE_WITH_HEADER, + .pos = {2, 2}, + .width = 15, + .height = 14, + .unk10 = 14, + .unk12 = 0, + .header = NULL +}; + +bool8 FriendList_Init(u32 r5, u32 windowId, DungeonPos *pos, u32 r10) +{ + if (sub_8024108(r5)) { + return FALSE; + } + + if (sFriendList == NULL) { + sFriendList = MemoryAlloc(sizeof(*sFriendList), 8); + } + + sFriendList->unk0 = r5; + if (gUnknown_203B2A0 != r5) { + sFriendList->sortMethod = 1; + } + else { + sFriendList->sortMethod = gUnknown_203B2A4; + } + + sFriendList->unk14 = 0; + sFriendList->unk15 = 0; + sFriendList->unk16 = 0; + sFriendList->unk17 = 0; + sFriendList->unk18 = 0; + switch (sFriendList->unk0) { + case 0: + break; + case 1: + sFriendList->unk18 = 1; + break; + case 2: + sFriendList->unk14 = 1; + break; + case 3: + sFriendList->unk17 = 1; + sFriendList->unk15 = 1; + sFriendList->unk16 = 1; + break; + case 4: + sFriendList->unk18 = 1; + sFriendList->unk15 = 1; + if (!sub_80023E4(9)) { + sFriendList->unk16 = 1; + } + break; + } + + if (sFriendList->unk0 == 4) { + sFriendList->unk354 = sub_8002658(sub_80A5728()); + } + else { + sFriendList->unk354 = 0; + } + + sFriendList->unk358.s0.winId = windowId; + sFriendList->unk358.s0.unk38 = &sFriendList->unk358.s0.windows.id[windowId]; + RestoreSavedWindows(&sFriendList->unk358.s0.windows); + sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sUnknown_80DC968; + sFriendList->unk358.s0.unk38->header = &sFriendList->unk358.header; + if (pos != NULL) { + sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId].pos = *pos; + } + sub_8012D08(sFriendList->unk358.s0.unk38, r10); + ResetUnusedInputStruct(); + ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE); + sub_8013818(&sFriendList->unk358.s0.input, sub_8023F8C(), r10, windowId); + if (gUnknown_203B2A0 == sFriendList->unk0) { + sFriendList->unk358.s0.input.menuIndex = gUnknown_203B2A8; + sFriendList->unk358.s0.input.unk1E = gUnknown_203B2AA; + sub_8013984(&sFriendList->unk358.s0.input); + } + SetUpWindowHeader(); + FriendList_ShowWindow(); + return TRUE; +} + +u32 FriendList_HandleInput(bool8 a0) +{ + if (!a0) { + sub_8013660(&sFriendList->unk358.s0.input); + return 0; + } + + switch (GetKeyPress(&sFriendList->unk358.s0.input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_SELECT_BUTTON: + PlayMenuSoundEffect(5); + sFriendList->sortMethod = (sFriendList->sortMethod < 3) ? sFriendList->sortMethod + 1 : 1; + sub_8023F8C(); + SetUpWindowHeader(); + FriendList_ShowWindow(); + return 1; + default: + if (sub_80138B8(&sFriendList->unk358.s0.input, TRUE)) { + SetUpWindowHeader(); + FriendList_ShowWindow(); + return 1; + } + return 0; + } +} + +s32 FriendList_GetCurrId(void) +{ + return sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex]; +} + +void sub_8023B7C(bool8 addCursor) +{ + ResetUnusedInputStruct(); + ShowWindows(&sFriendList->unk358.s0.windows, FALSE, FALSE); + sFriendList->unk358.s0.input.unk22 = sub_8023BD8(); + sub_8013984(&sFriendList->unk358.s0.input); + SetUpWindowHeader(); + FriendList_ShowWindow(); + if (addCursor) { + AddMenuCursorSprite(&sFriendList->unk358.s0.input); + } +} + +static s32 sub_8023BD8(void) +{ + s32 i, j; + + for (i = 0; i < sFriendList->unk8; i++) { + s32 id = sFriendList->unk1A[i]; + if (!PokemonFlag1(&gRecruitedPokemonRef->pokemon[id])) { + sFriendList->unk8--; + for (j = i; j < sFriendList->unk8; j++) { + sFriendList->unk1A[j] = sFriendList->unk1A[j + 1]; + } + } + } + + return sFriendList->unk8; +} + +void FriendList_Free(void) +{ + if (sFriendList != NULL) { + gUnknown_203B2A0 = sFriendList->unk0; + gUnknown_203B2A4 = sFriendList->sortMethod; + gUnknown_203B2A8 = sFriendList->unk358.s0.input.menuIndex; + gUnknown_203B2AA = sFriendList->unk358.s0.input.unk1E; + sFriendList->unk358.s0.windows.id[sFriendList->unk358.s0.winId] = sDummyWinTemplate; + ResetUnusedInputStruct(); + ShowWindows(&sFriendList->unk358.s0.windows, TRUE, TRUE); + MemoryFree(sFriendList); + sFriendList = NULL; + } +} + +struct unkStruct_3001B60 *FriendList_GetPtr(void) +{ + return sFriendList; +} + +static void SetUpWindowHeader(void) +{ + sFriendList->unk358.header.count = 1; + sFriendList->unk358.header.currId = 0; + sFriendList->unk358.header.f3 = 0; + switch (sFriendList->unk0) { + case 2: + sFriendList->unk358.header.width = 12; + break; + case 4: + sFriendList->unk358.header.width = 12; + break; + default: + sFriendList->unk358.header.width = 12; + break; + } + + SUB_80095E4_CALL_2(sFriendList->unk358.s0); +} + +void FriendList_ShowWindow(void) +{ + s32 i, x; + u8 winTxtBuff[40]; + u8 nameTxtBuff[POKEMON_NAME_LENGTH * 2]; + u8 txtBuff3[20]; + + CallPrepareTextbox_8008C54(sFriendList->unk358.s0.winId); + sub_80073B8(sFriendList->unk358.s0.winId); + switch (sFriendList->unk0) { + case 2: + sub_80920D8(winTxtBuff); + PrintStringOnWindow(10, 0, winTxtBuff, sFriendList->unk358.s0.winId, '\0'); + break; + case 4: + PrintStringOnWindow(10, 0, "Friends", sFriendList->unk358.s0.winId, '\0'); + x = (sFriendList->unk358.header.width * 8) + 4; + sub_8012BC4(x, 0, sFriendList->unk358.s0.input.unk1E + 1, 2, 7, sFriendList->unk358.s0.winId); + break; + default: + PrintStringOnWindow(10, 0, _("Pokémon Friends"), sFriendList->unk358.s0.winId, '\0'); + x = (sFriendList->unk358.header.width * 8) + 4; + sub_8012BC4(x, 0, sFriendList->unk358.s0.input.unk1E + 1, 2, 7, sFriendList->unk358.s0.winId); + break; + } + + for (i = 0; i < sFriendList->unk358.s0.input.unk1A; i++) { + s32 id = sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + i]; + PokemonStruct1 *pokePtr = &gRecruitedPokemonRef->pokemon[id]; + u8 color = 7; + + if (PokemonFlag2(pokePtr)) { + if (IsMonPartner(pokePtr)) { + color = 6; + } + if (IsMonLeader(pokePtr)) { + color = 6; + } + if (pokePtr->isTeamLeader) { + color = 5; + } + } + else if (sFriendList->unk18) { + if (sub_808D750(id)) { + color = 4; + } + else { + color = 2; + } + } + + // This code doesn't do anything, but it's needed to match. + if (sFriendList->unk0 == 4 && MonHasFriendArea(pokePtr, sFriendList->unk354)) { + ; + } + else if (sFriendList->unk0 == 2) { + ; + } + + sub_80922B4(nameTxtBuff, pokePtr->name, POKEMON_NAME_LENGTH); + sub_808D930(txtBuff3, pokePtr->speciesNum); + sprintfStatic(winTxtBuff, _("{color}%c%s{reset}"), color, nameTxtBuff); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sFriendList->unk358.s0.input, i), winTxtBuff, sFriendList->unk358.s0.winId, '\0'); + } + sub_80073E0(sFriendList->unk358.s0.winId); +} + +static s32 sub_8023F8C(void) +{ + s32 i; + PokemonStruct1 *pokeStruct; + + sFriendList->unk8 = 0; + if (!sFriendList->unk15) { + for (i = 0; i < NUM_MONSTERS; i++) { + pokeStruct = &gRecruitedPokemonRef->pokemon[i]; + if (pokeStruct->isTeamLeader && PokemonFlag1(pokeStruct)) { + sFriendList->unk1A[sFriendList->unk8++] = i; + break; + } + } + } + + if (!sFriendList->unk16) { + for (i = 0; i < NUM_MONSTERS; i++) { + pokeStruct = &gRecruitedPokemonRef->pokemon[i]; + if (IsMonPartner(pokeStruct) && !pokeStruct->isTeamLeader && PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct)) { + sFriendList->unk1A[sFriendList->unk8++] = i; + break; + } + } + } + sFriendList->unkC = sFriendList->unk8; + + if (!sFriendList->unk17) { + for (i = 0; i < NUM_MONSTERS; i++) { + pokeStruct = &gRecruitedPokemonRef->pokemon[i]; + if (PokemonFlag2(pokeStruct) && PokemonFlag1(pokeStruct) && !pokeStruct->isTeamLeader && !IsMonPartner(pokeStruct)) { + sFriendList->unk1A[sFriendList->unk8++] = i; + if (sFriendList->unk8 >= 4) { + break; + } + } + } + } + sFriendList->unk10 = sFriendList->unk8; + + if (!sFriendList->unk14) { + for (i = 0; i < NUM_MONSTERS; i++) { + pokeStruct = &gRecruitedPokemonRef->pokemon[i]; + if (PokemonFlag1(pokeStruct) && !PokemonFlag2(&gRecruitedPokemonRef->pokemon[i])) { + sFriendList->unk1A[sFriendList->unk8++] = i; + } + } + } + + SortNames(); + return sFriendList->unk8; +} + +bool8 sub_8024108(s32 param_1) +{ + s32 i; + + for (i = 0; i < NUM_MONSTERS; i++) { + PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[i]; + if (PokemonFlag1(pokeStruct)) { + if (param_1 == 2) { + if (!PokemonFlag2(pokeStruct)) continue; + } + else if (param_1 == 3) { + if (PokemonFlag2(pokeStruct)) continue; + } + else if (param_1 == 4) { + if (pokeStruct->isTeamLeader) continue; + if (!sub_80023E4(9)) { + if (!IsMonPartner(pokeStruct)) return FALSE; + if (PokemonFlag2(pokeStruct)) continue; + } + } + return FALSE; + } + } + return TRUE; +} + +static bool8 MonHasFriendArea(PokemonStruct1 *pokemon, u8 area) +{ + if (area == GetFriendArea(pokemon->speciesNum)) + return TRUE; + return FALSE; +} + +static void SortNames(void) +{ + switch (sFriendList->sortMethod) { + case 2: + if (sFriendList->unkC != sFriendList->unk10) + SortbyAlphabetNo(sFriendList->unkC, sFriendList->unk10); + + if (sFriendList->unk10 != sFriendList->unk8) + SortbyAlphabetNo(sFriendList->unk10, sFriendList->unk8); + break; + case 3: + if (sFriendList->unkC != sFriendList->unk10) + SortbyName(sFriendList->unkC, sFriendList->unk10); + + if (sFriendList->unk10 != sFriendList->unk8) + SortbyName(sFriendList->unk10, sFriendList->unk8); + break; + case 1: + if (sFriendList->unkC != sFriendList->unk10) + SortbyInternalNo(sFriendList->unkC, sFriendList->unk10); + + if (sFriendList->unk10 != sFriendList->unk8) + SortbyInternalNo(sFriendList->unk10, sFriendList->unk8); + break; + } +} + +static void SortbyInternalNo(s32 startId, s32 arrId) +{ + s32 temp; + s32 i, j; + s16 *arrPtr = &sFriendList->unk1A[arrId - 1]; + + for (i = startId; i < arrId - 1; i++) { + s16 *curr = arrPtr; + for (j = arrId - 1; j > i; j--) { + if (GetInternalNo(gRecruitedPokemonRef->pokemon[curr[-1]].speciesNum) > GetInternalNo(gRecruitedPokemonRef->pokemon[curr[0]].speciesNum)) { + SWAP(curr[0], curr[-1], temp); + } + curr--; + } + } +} + +static void SortbyAlphabetNo(s32 startId, s32 arrId) +{ + s32 temp; + s32 i, j; + s16 *arrPtr = &sFriendList->unk1A[arrId - 1]; + + for (i = startId; i < arrId - 1; i++) { + s16 *curr = arrPtr; + for (j = arrId - 1; j > i; j--) { + if (GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[curr[-1]].speciesNum, 0) > GetAlphabetParentNo(gRecruitedPokemonRef->pokemon[curr[0]].speciesNum, 0)) { + SWAP(curr[0], curr[-1], temp); + } + curr--; + } + } +} + +static void SortbyName(s32 startId, s32 arrId) +{ + s32 temp; + s32 i, j; + s16 *arrPtr = &sFriendList->unk1A[arrId - 1]; + + for (i = startId; i < arrId - 1; i++) { + s16 * currPtr = arrPtr; + for (j = arrId - 1; j > i; j--) { + s16 *belowPtr = currPtr - 1; + if (ComparePokemonNames(*belowPtr, *currPtr)) { + SWAP(*currPtr, *belowPtr, temp); + } + currPtr--; + } + } +} + +UNUSED static PokemonStruct1 *sub_80243E8(void) +{ + u8 buffer[40]; + u8 nameBuffer[20]; + PokemonStruct1 *pokeStruct = &gRecruitedPokemonRef->pokemon[sFriendList->unk1A[(sFriendList->unk358.s0.input.unk1E * sFriendList->unk358.s0.input.unk1C) + sFriendList->unk358.s0.input.menuIndex]]; + + sub_80922B4(nameBuffer, pokeStruct->name, POKEMON_NAME_LENGTH); + sprintfStatic(buffer, "%s", nameBuffer); + return pokeStruct; +} diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 9afb0977e..7c8a78298 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -6,7 +6,7 @@ #include "code_801B3C0.h" #include "code_801EE10.h" #include "code_801EE10_mid.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "code_8098BDC.h" #include "code_8099360.h" @@ -188,7 +188,7 @@ void sub_8025518(void) if (gUnknown_203B2B4->unk0 == 0) { uVar3 = 2; } - sub_8023868(uVar3,0,0,10); + FriendList_Init(uVar3,0,0,10); break; case 2: sub_8023B7C(1); @@ -197,7 +197,7 @@ void sub_8025518(void) if (gUnknown_203B2B4->unk0 == 0) { sub_8025E68(3,&gUnknown_203B2B4->item2); } - sub_8023DA4(); + FriendList_ShowWindow(); PrintColoredPokeNameToBuffer(gFormatBuffer_Monsters[0],gUnknown_203B2B4->pokeStruct,7); PrintColoredPokeNameToBuffer(gFormatBuffer_Monsters[1],gUnknown_203B2B4->pokeStruct,6); sub_8012D60(&gUnknown_203B2B4->unk78,gUnknown_203B2B4->unkC8,0,gUnknown_203B2B4->unk108,gUnknown_203B2B4->menuAction1,2); @@ -371,22 +371,22 @@ void sub_802591C(void) void sub_80259F0(void) { - switch(sub_8023A94(TRUE)) + switch(FriendList_HandleInput(TRUE)) { case 3: - gUnknown_203B2B4->species = sub_8023B44(); + gUnknown_203B2B4->species = FriendList_GetCurrId(); gUnknown_203B2B4->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B4->species]; PeekPokemonItem(gUnknown_203B2B4->species, &gUnknown_203B2B4->item2); SetFriendListMenuState(3); break; case 4: - gUnknown_203B2B4->species = sub_8023B44(); + gUnknown_203B2B4->species = FriendList_GetCurrId(); gUnknown_203B2B4->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B2B4->species]; PeekPokemonItem(gUnknown_203B2B4->species, &gUnknown_203B2B4->item2); SetFriendListMenuState(FRIEND_LIST_MENU_STATE_SUMMARY); break; case 2: - sub_8023C60(); + FriendList_Free(); SetFriendListMenuState(FRIEND_LIST_MENU_STATE_EXIT); break; } @@ -396,7 +396,7 @@ void sub_8025A84(void) { s32 menuAction = 0; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if(!sub_8012FD8(&gUnknown_203B2B4->unk78)) { sub_8013114(&gUnknown_203B2B4->unk78, &menuAction); @@ -406,7 +406,7 @@ void sub_8025A84(void) { case FRIEND_LIST_MENU_VISIT: gUnknown_203B2B4->unkD = GetFriendArea(gUnknown_203B2B4->pokeStruct->speciesNum); - sub_8023C60(); + FriendList_Free(); SetFriendListMenuState(FRIEND_LIST_MENU_STATE_EXIT); break; case FRIEND_LIST_MENU_GIVE: @@ -429,7 +429,7 @@ void sub_8025A84(void) gUnknown_203B2B4->pokeStruct->unk0 &= ~(FLAG_ON_TEAM); nullsub_104(); sub_808ED00(); - sub_8023C60(); + FriendList_Free(); SetFriendListMenuState(FRIEND_LIST_MENU_STATE_STANDBY); break; case FRIEND_LIST_MENU_MOVES: diff --git a/src/friend_rescue.c b/src/friend_rescue.c index 8ec5e3ba1..27cb19f60 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -7,7 +7,7 @@ #include "code_80118A4.h" #include "code_801B3C0.h" #include "code_801C8C4.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "code_802F204.h" #include "code_8094F88.h" @@ -304,7 +304,7 @@ extern u32 sub_8039068(u32, u8 *passwordBuffer, unkStruct_203B480 *r0); extern void sub_8031E10(void); extern u8 sub_800D588(void); -extern u32 sub_8023CE8(void); +extern u32 FriendList_GetPtr(void); extern bool8 sub_8031D70(u32 mailIndex, s32); extern u32 GetDungeonTeamRankPts(DungeonLocation *, u32); @@ -687,7 +687,7 @@ void CleanFriendRescueMenu(void) gUnknown_203B33C = NULL; sub_803084C(); sub_8031E10(); - sub_8023C60(); + FriendList_Free(); sub_80155F0(); sub_801CBB8(); sub_802F2C0(); @@ -894,16 +894,16 @@ void sub_8032828(void) CreateDialogueBoxAndPortrait(&gUnknown_80E2C48[0], 0, 0, 0x101); break; case 0x26: - if (sub_8023CE8() != 0) - sub_8023C60(); + if (FriendList_GetPtr() != 0) + FriendList_Free(); ResetUnusedInputStruct(); ShowWindows(NULL, TRUE, TRUE); - sub_8023868(3, 0, 0, 9); + FriendList_Init(3, 0, 0, 9); break; case 0x27: RestoreSavedWindows(&gUnknown_203B33C->unk35C); SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, gUnknown_80E234C, TRUE, 0, FALSE); - sub_8023DA4(); + FriendList_ShowWindow(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; case 0x24: @@ -1857,16 +1857,16 @@ void sub_8034130(void) void sub_803418C(void) { - switch(sub_8023A94(TRUE)) + switch(FriendList_HandleInput(TRUE)) { case 2: - sub_8023C60(); + FriendList_Free(); SetFriendRescueMenuState(FRIEND_RESCUE_MENU_MAIN); sub_8035D1C(); gUnknown_203B33C->speciesNum = -1; break; case 3: - gUnknown_203B33C->speciesNum = sub_8023B44(); + gUnknown_203B33C->speciesNum = FriendList_GetCurrId(); if(gUnknown_203B33C->unk524 == 0xE) SetFriendRescueMenuState(9); else @@ -1874,7 +1874,7 @@ void sub_803418C(void) break; case 4: gUnknown_203B33C->fallbackState = 0x26; - gUnknown_203B33C->speciesNum = sub_8023B44(); + gUnknown_203B33C->speciesNum = FriendList_GetCurrId(); RestoreSavedWindows(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); ShowWindows(NULL, TRUE, TRUE); @@ -1889,13 +1889,13 @@ void sub_8034254(void) s32 menuAction; menuAction = -1; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if(!sub_8012FD8(&gUnknown_203B33C->unk21C[3])) sub_8013114(&gUnknown_203B33C->unk21C[3], &menuAction); switch(menuAction) { case 9: - sub_8023C60(); + FriendList_Free(); SetFriendRescueMenuState(0x29); break; case 10: @@ -1909,7 +1909,7 @@ void sub_8034254(void) case 5: case 8: sub_8035CC0(&gUnknown_203B33C->unk35C, 3); - sub_8023DA4(); + FriendList_ShowWindow(); SetFriendRescueMenuState(0x26); break; } diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 3a049c240..3f4f11a1b 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -3,7 +3,7 @@ #include "code_80118A4.h" #include "code_801EE10.h" #include "code_801EE10_mid.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "common_strings.h" #include "felicity_bank.h" @@ -306,13 +306,13 @@ static void sub_801FF28(void) CreateDialogueBoxAndPortrait(gCommonGulpin[gUnknown_203B27C->mode][GULPIN_DLG_08],0,gUnknown_203B27C->monPortraitPtr,0x10d); break; case 0xf: - sub_8023868(2,0,0,10); + FriendList_Init(2,0,0,10); break; case 0x10: sub_8023B7C(1); break; case 0x11: - sub_8023DA4(); + FriendList_ShowWindow(); sub_8012D60(&gUnknown_203B27C->unkCC,gUnknown_203B27C->unk7C,0,gUnknown_203B27C->unkBC,gUnknown_203B27C->menuAction2,2); break; case 0x12: @@ -682,17 +682,17 @@ static void sub_8020A34(void) static void sub_8020A80(void) { - switch(sub_8023A94(TRUE)) + switch(FriendList_HandleInput(TRUE)) { case 3: - gUnknown_203B27C->speciesNum = sub_8023B44(); + gUnknown_203B27C->speciesNum = FriendList_GetCurrId(); gUnknown_203B27C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B27C->speciesNum]; gUnknown_203B27C->isTeamLeader = gUnknown_203B27C->pokeStruct->isTeamLeader; PrintPokeNameToBuffer(gFormatBuffer_Monsters[5], gUnknown_203B27C->pokeStruct); sub_801FDA8(0x11); break; case 4: - gUnknown_203B27C->speciesNum = sub_8023B44(); + gUnknown_203B27C->speciesNum = FriendList_GetCurrId(); gUnknown_203B27C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B27C->speciesNum]; gUnknown_203B27C->isTeamLeader = gUnknown_203B27C->pokeStruct->isTeamLeader; PrintPokeNameToBuffer(gFormatBuffer_Monsters[5], gUnknown_203B27C->pokeStruct); @@ -702,7 +702,7 @@ static void sub_8020A80(void) case 1: break; case 2: - sub_8023C60(); + FriendList_Free(); sub_801FDA8(7); break; } @@ -713,7 +713,7 @@ static void sub_8020B38(void) s32 menuAction; menuAction = 0; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if (!sub_8012FD8(&gUnknown_203B27C->unkCC)) { sub_8013114(&gUnknown_203B27C->unkCC,&menuAction); if (menuAction != CANCEL_ACTION) { diff --git a/src/hints_menu1.c b/src/hints_menu1.c index fde57b5ed..5f6df9848 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -23,10 +23,10 @@ bool8 sub_801E3F0(u32 a0) if (sUnknown_203B264 == NULL) sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8); - sUnknown_203B264->unk34 = a0; + sUnknown_203B264->winId = a0; sUnknown_203B264->unk38 = &sUnknown_203B264->windows.id[a0]; RestoreSavedWindows(&sUnknown_203B264->windows); - sUnknown_203B264->windows.id[sUnknown_203B264->unk34] = sUnknown_80DC0BC; + sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0BC; sub_8012D08(sUnknown_203B264->unk38, 10); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE); @@ -86,7 +86,7 @@ void CreateHintSelectionScreen(bool8 cursorSprite) void sub_801E54C(void) { if (sUnknown_203B264 != NULL) { - sUnknown_203B264->windows.id[sUnknown_203B264->unk34] = sUnknown_80DC0A0; + sUnknown_203B264->windows.id[sUnknown_203B264->winId] = sUnknown_80DC0A0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B264->windows, TRUE, TRUE); MemoryFree(sUnknown_203B264); @@ -104,14 +104,14 @@ static void DrawHintSelectionMenu(void) s32 hintIndex; s32 y; - CallPrepareTextbox_8008C54(sUnknown_203B264->unk34); - sub_80073B8(sUnknown_203B264->unk34); - PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->unk34, 0); + CallPrepareTextbox_8008C54(sUnknown_203B264->winId); + sub_80073B8(sUnknown_203B264->winId); + PrintStringOnWindow(16, 0, sHints, sUnknown_203B264->winId, 0); for (hintIndex = 0; hintIndex < HINT_MAX; hintIndex++) { y = GetMenuEntryYCoord(&sUnknown_203B264->input, hintIndex); - PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->unk34, 0); + PrintStringOnWindow(10, y, gCommonHints[hintIndex].heading, sUnknown_203B264->winId, 0); } - sub_80073E0(sUnknown_203B264->unk34); + sub_80073E0(sUnknown_203B264->winId); } diff --git a/src/hints_menu2.c b/src/hints_menu2.c index a52d7a6b2..b571abf92 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -21,14 +21,14 @@ static void sub_801E76C(void); bool8 CreateHintDisplayScreen(u32 index) { sUnknown_203B268 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); - sUnknown_203B268->s0.unk34 = 0; + sUnknown_203B268->s0.winId = 0; sUnknown_203B268->s0.unk38 = &sUnknown_203B268->s0.windows.id[0]; RestoreSavedWindows(&sUnknown_203B268->s0.windows); - sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.unk34] = sUnknown_80DC0FC; - sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->unk9C; + sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0FC; + sUnknown_203B268->s0.unk38->header = &sUnknown_203B268->header; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); - sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.unk34); + sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.winId); sUnknown_203B268->s0.input.unk1E = index; sub_801E714(); @@ -62,7 +62,7 @@ static void sub_801E714(void) void DestroyHintDisplayScreen(void) { if (sUnknown_203B268 != NULL) { - sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.unk34] = sUnknown_80DC0E4; + sUnknown_203B268->s0.windows.id[sUnknown_203B268->s0.winId] = sUnknown_80DC0E4; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); MemoryFree(sUnknown_203B268); @@ -72,18 +72,18 @@ void DestroyHintDisplayScreen(void) static void sub_801E76C(void) { - sUnknown_203B268->unk9C.count = sUnknown_203B268->s0.input.unk20; - sUnknown_203B268->unk9C.currId = sUnknown_203B268->s0.input.unk1E; - sUnknown_203B268->unk9C.width = 15; - sUnknown_203B268->unk9C.f3 = 0; + sUnknown_203B268->header.count = sUnknown_203B268->s0.input.unk20; + sUnknown_203B268->header.currId = sUnknown_203B268->s0.input.unk1E; + sUnknown_203B268->header.width = 15; + sUnknown_203B268->header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B268->s0.windows, TRUE, TRUE); } static void DisplayChosenHint(void) { - sub_80073B8(sUnknown_203B268->s0.unk34); - PrintStringOnWindow((sUnknown_203B268->s0.input.unk1E * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.unk1E].heading, sUnknown_203B268->s0.unk34, 0); - PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.unk1E].body, sUnknown_203B268->s0.unk34, 0); - sub_80073E0(sUnknown_203B268->s0.unk34); + sub_80073B8(sUnknown_203B268->s0.winId); + PrintStringOnWindow((sUnknown_203B268->s0.input.unk1E * 8) + 16, 0, gCommonHints[sUnknown_203B268->s0.input.unk1E].heading, sUnknown_203B268->s0.winId, 0); + PrintStringOnWindow(10, 20, gCommonHints[sUnknown_203B268->s0.input.unk1E].body, sUnknown_203B268->s0.winId, 0); + sub_80073E0(sUnknown_203B268->s0.winId); } diff --git a/src/iq_skill_list_menu.c b/src/iq_skill_list_menu.c index 30ee64976..bd33d3b23 100644 --- a/src/iq_skill_list_menu.c +++ b/src/iq_skill_list_menu.c @@ -30,11 +30,11 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2) sIQSkillListMenu->species = species_s32; sIQSkillListMenu->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; sIQSkillListMenu->numIQSkills = GetNumAvailableIQSkills(sIQSkillListMenu->iqSkills, sIQSkillListMenu->pokeStruct->IQ); - sIQSkillListMenu->s24.s0.unk34 = index; + sIQSkillListMenu->s24.s0.winId = index; sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.windows.id[index]; RestoreSavedWindows(&sIQSkillListMenu->s24.s0.windows); - sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDF0; - sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.unk9C; + sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDF0; + sIQSkillListMenu->s24.s0.unk38->header = &sIQSkillListMenu->s24.header; sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2); ResetUnusedInputStruct(); ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); @@ -92,7 +92,7 @@ void RedrawIQSkillListMenu(bool8 addCursor) void CleanIQSkillListMenu(void) { if (sIQSkillListMenu != NULL) { - sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDD8; + sIQSkillListMenu->s24.s0.windows.id[sIQSkillListMenu->s24.s0.winId] = sUnknown_80DBDD8; ResetUnusedInputStruct(); ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); MemoryFree(sIQSkillListMenu); @@ -102,10 +102,10 @@ void CleanIQSkillListMenu(void) static void sub_801C440(void) { - sIQSkillListMenu->s24.unk9C.count = sIQSkillListMenu->s24.s0.input.unk20; - sIQSkillListMenu->s24.unk9C.currId = sIQSkillListMenu->s24.s0.input.unk1E; - sIQSkillListMenu->s24.unk9C.width = 10; - sIQSkillListMenu->s24.unk9C.f3 = 0; + sIQSkillListMenu->s24.header.count = sIQSkillListMenu->s24.s0.input.unk20; + sIQSkillListMenu->s24.header.currId = sIQSkillListMenu->s24.s0.input.unk1E; + sIQSkillListMenu->s24.header.width = 10; + sIQSkillListMenu->s24.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&sIQSkillListMenu->s24.s0.windows, TRUE, TRUE); SUB_80095E4_CALL_2(sIQSkillListMenu->s24.s0); @@ -119,16 +119,16 @@ void BuildIQSkillList(void) u32 skillIndex; s32 counter; - CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.unk34); - sub_80073B8(sIQSkillListMenu->s24.s0.unk34); + CallPrepareTextbox_8008C54(sIQSkillListMenu->s24.s0.winId); + sub_80073B8(sIQSkillListMenu->s24.s0.winId); x = sIQSkillListMenu->s24.s0.input.unk1E * 8; x2 = x; x2 += 10; - PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.unk34, 0); + PrintStringOnWindow(x2, 0, sIQSkills, sIQSkillListMenu->s24.s0.winId, 0); x += 4; - x2 = x + sIQSkillListMenu->s24.unk9C.width * 8; - sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.unk1E + 1, 1, 7, sIQSkillListMenu->s24.s0.unk34); + x2 = x + sIQSkillListMenu->s24.header.width * 8; + sub_8012BC4(x2, 0, sIQSkillListMenu->s24.s0.input.unk1E + 1, 1, 7, sIQSkillListMenu->s24.s0.winId); for (counter = 0; counter < sIQSkillListMenu->s24.s0.input.unk1A; counter++) { skillIndex = sIQSkillListMenu->iqSkills[(sIQSkillListMenu->s24.s0.input.unk1E * sIQSkillListMenu->s24.s0.input.unk1C) + counter]; @@ -141,10 +141,10 @@ void BuildIQSkillList(void) else strcpy(gFormatBuffer_Items[1] - 80, sUnknown_80DBE18); - PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.unk34, 0); + PrintFormattedStringOnWindow(12, y, sFmt01, sIQSkillListMenu->s24.s0.winId, 0); } - sub_80073E0(sIQSkillListMenu->s24.s0.unk34); + sub_80073E0(sIQSkillListMenu->s24.s0.winId); } bool8 HasNoAvailIQSkills(s16 species) diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index 3f592ba4b..447706e57 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -26,11 +26,11 @@ bool8 sub_8019E40(u32 r0) return FALSE; gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8); - gUnknown_203B214->s0.unk34 = r0; - gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34]; + gUnknown_203B214->s0.winId = r0; + gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId]; RestoreSavedWindows(&gUnknown_203B214->s0.windows); - gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34] = sUnknown_80DB8CC; - gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->unk9C; + gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8CC; + gUnknown_203B214->s0.unk38->header = &gUnknown_203B214->header; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE); sub_8013818(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0); @@ -103,7 +103,7 @@ void sub_801A010(void) { if (gUnknown_203B214 != NULL) { gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex; - gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.unk34] = sUnknown_80DB8B4; + gUnknown_203B214->s0.windows.id[gUnknown_203B214->s0.winId] = sUnknown_80DB8B4; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B214->s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B214); @@ -113,10 +113,10 @@ void sub_801A010(void) static void sub_801A064(void) { - gUnknown_203B214->unk9C.count = gUnknown_203B214->s0.input.unk20; - gUnknown_203B214->unk9C.currId = gUnknown_203B214->s0.input.unk1E; - gUnknown_203B214->unk9C.width = 10; - gUnknown_203B214->unk9C.f3 = 0; + gUnknown_203B214->header.count = gUnknown_203B214->s0.input.unk20; + gUnknown_203B214->header.currId = gUnknown_203B214->s0.input.unk1E; + gUnknown_203B214->header.width = 10; + gUnknown_203B214->header.f3 = 0; SUB_80095E4_CALL(gUnknown_203B214->s0); } @@ -134,9 +134,9 @@ void sub_801A0D8(void) Item item; u8 temp_calc; - CallPrepareTextbox_8008C54(gUnknown_203B214->s0.unk34); - sub_80073B8(gUnknown_203B214->s0.unk34); - PrintStringOnWindow((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.unk34, 0); + CallPrepareTextbox_8008C54(gUnknown_203B214->s0.winId); + sub_80073B8(gUnknown_203B214->s0.winId); + PrintStringOnWindow((gUnknown_203B214->s0.input.unk1E * 8) + 10, 0, sGoods, gUnknown_203B214->s0.winId, 0); for (index = 0; index < gUnknown_203B214->s0.input.unk1A; index++) { temp_calc = (gUnknown_203B214->s0.input.unk1E * gUnknown_203B214->s0.input.unk1C) + index; @@ -153,14 +153,14 @@ void sub_801A0D8(void) if (buyPrice <= gTeamInventoryRef->teamMoney) { y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index); - PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.unk34, 0); + PrintStringOnWindow(8, y, auStack204, gUnknown_203B214->s0.winId, 0); } else { sprintfStatic(auStack112, sFmtRed, auStack204); y = GetMenuEntryYCoord(&gUnknown_203B214->s0.input, index); - PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.unk34, 0); + PrintStringOnWindow(8, y, auStack112, gUnknown_203B214->s0.winId, 0); } } - sub_80073E0(gUnknown_203B214->s0.unk34); + sub_80073E0(gUnknown_203B214->s0.winId); } diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index 0fc0ff788..0eed202ea 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -26,11 +26,11 @@ bool8 sub_801A20C(u32 r0) return FALSE; gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8); - gUnknown_203B21C->s0.unk34 = r0; - gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34]; + gUnknown_203B21C->s0.winId = r0; + gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId]; RestoreSavedWindows(&gUnknown_203B21C->s0.windows); - gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34] = sUnknown_80DB914; - gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->unk9C; + gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB914; + gUnknown_203B21C->s0.unk38->header = &gUnknown_203B21C->header; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE); sub_8013818(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0); @@ -103,7 +103,7 @@ void sub_801A3DC(void) { if (gUnknown_203B21C != NULL) { gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex; - gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.unk34] = sUnknown_80DB8FC; + gUnknown_203B21C->s0.windows.id[gUnknown_203B21C->s0.winId] = sUnknown_80DB8FC; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B21C->s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B21C); @@ -113,10 +113,10 @@ void sub_801A3DC(void) static void sub_801A430(void) { - gUnknown_203B21C->unk9C.count = gUnknown_203B21C->s0.input.unk20; - gUnknown_203B21C->unk9C.currId = gUnknown_203B21C->s0.input.unk1E; - gUnknown_203B21C->unk9C.width = 10; - gUnknown_203B21C->unk9C.f3 = 0; + gUnknown_203B21C->header.count = gUnknown_203B21C->s0.input.unk20; + gUnknown_203B21C->header.currId = gUnknown_203B21C->s0.input.unk1E; + gUnknown_203B21C->header.width = 10; + gUnknown_203B21C->header.f3 = 0; SUB_80095E4_CALL(gUnknown_203B21C->s0); } @@ -134,9 +134,9 @@ void sub_801A4A4(void) Item item; u8 temp_calc; - CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.unk34); - sub_80073B8(gUnknown_203B21C->s0.unk34); - PrintStringOnWindow(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.unk34, 0); + CallPrepareTextbox_8008C54(gUnknown_203B21C->s0.winId); + sub_80073B8(gUnknown_203B21C->s0.winId); + PrintStringOnWindow(gUnknown_203B21C->s0.input.unk1E * 8 + 10, 0, sGoods, gUnknown_203B21C->s0.winId, 0); for (index = 0; index < gUnknown_203B21C->s0.input.unk1A; index++) { temp_calc = (gUnknown_203B21C->s0.input.unk1E * gUnknown_203B21C->s0.input.unk1C) + index; @@ -153,14 +153,14 @@ void sub_801A4A4(void) if (buyPrice <= gTeamInventoryRef->teamMoney) { y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index); - PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.unk34, 0); + PrintStringOnWindow(8, y, buffer1, gUnknown_203B21C->s0.winId, 0); } else { sprintfStatic(buffer2, sFmtRed, buffer1); y = GetMenuEntryYCoord(&gUnknown_203B21C->s0.input, index); - PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.unk34, 0); + PrintStringOnWindow(8, y, buffer2, gUnknown_203B21C->s0.winId, 0); } } - sub_80073E0(gUnknown_203B21C->s0.unk34); + sub_80073E0(gUnknown_203B21C->s0.winId); } diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index 4206997dd..3b3d42a22 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -47,14 +47,14 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4) gUnknown_203B224->unk0 = param_1; FillInventoryGaps(); sub_801AE84(); - gUnknown_203B224->unk54.s0.unk34 = param_2; + gUnknown_203B224->unk54.s0.winId = param_2; gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.windows.id[param_2]; RestoreSavedWindows(&gUnknown_203B224->unk54.s0.windows); - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB95C; - gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.unk9C; + gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB95C; + gUnknown_203B224->unk54.s0.unk38->header = &gUnknown_203B224->unk54.header; if (param_3 != NULL) - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34].pos = *param_3; + gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId].pos = *param_3; sub_8012D08(gUnknown_203B224->unk54.s0.unk38, param_4); sub_8099690(1); @@ -179,7 +179,7 @@ void sub_801A928(void) if (gUnknown_203B224 != NULL) { gUnknown_203B228 = gUnknown_203B224->unk54.s0.input.menuIndex; gUnknown_203B22A = gUnknown_203B224->unk54.s0.input.unk1E; - gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB944; + gUnknown_203B224->unk54.s0.windows.id[gUnknown_203B224->unk54.s0.winId] = sUnknown_80DB944; sub_8099690(0); ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); @@ -190,10 +190,10 @@ void sub_801A928(void) static void sub_801A998(void) { - gUnknown_203B224->unk54.unk9C.count = gUnknown_203B224->unk54.s0.input.unk20; - gUnknown_203B224->unk54.unk9C.currId = gUnknown_203B224->unk54.s0.input.unk1E; - gUnknown_203B224->unk54.unk9C.width = 11; - gUnknown_203B224->unk54.unk9C.f3 = 0; + gUnknown_203B224->unk54.header.count = gUnknown_203B224->unk54.s0.input.unk20; + gUnknown_203B224->unk54.header.currId = gUnknown_203B224->unk54.s0.input.unk1E; + gUnknown_203B224->unk54.header.width = 11; + gUnknown_203B224->unk54.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B224->unk54.s0.windows, TRUE, TRUE); } @@ -207,14 +207,14 @@ void sub_801A9E0(void) u8 buf1[80]; // sp4 Item item; // spC8 - CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.unk34); - sub_80073B8(gUnknown_203B224->unk54.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B224->unk54.s0.winId); + sub_80073B8(gUnknown_203B224->unk54.s0.winId); x = gUnknown_203B224->unk54.s0.input.unk1E * 8 + 10; if (gUnknown_203B224->unk54.s0.input.unk1E == 0) - PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(x, 0, sTeamToolboxA, gUnknown_203B224->unk54.s0.winId, 0); else - PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(x, 0, sTeamToolboxB, gUnknown_203B224->unk54.s0.winId, 0); for (r7 = 0; r7 < gUnknown_203B224->unk54.s0.input.unk1A; r7++) { teamItemIndex = (gUnknown_203B224->unk54.s0.input.unk1E * gUnknown_203B224->unk54.s0.input.unk1C) + r7; @@ -223,7 +223,7 @@ void sub_801A9E0(void) switch (gUnknown_203B224->unk0) { case 0: { sub_8090E14(buf1, &item, 0); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); break; } case 1: @@ -236,7 +236,7 @@ void sub_801A9E0(void) item.flags = 1; sub_8090E14(buf1, &item, &thing); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); break; } case 3: { @@ -249,10 +249,10 @@ void sub_801A9E0(void) sub_8090E14(buf1, &item, &thing); if (gUnknown_203B224->unk4[teamItemIndex] != 0 || sub_801ADA0(teamItemIndex)) - PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8,GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input,r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); else { strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); } break; } @@ -270,15 +270,15 @@ void sub_801A9E0(void) if (GetStackSellPrice(&item) + gTeamInventoryRef->teamMoney > MAX_TEAM_MONEY) { sprintfStatic(buf2, sFmtRed, buf1); - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf2, gUnknown_203B224->unk54.s0.winId, 0); } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); } else { sub_8090E14(buf1, &item, 0); strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); } break; } @@ -293,20 +293,20 @@ void sub_801A9E0(void) sub_8090E14(buf1, &item, &thing); if (IsGummiItem(item.id)) - PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), buf1, gUnknown_203B224->unk54.s0.winId, 0); else { strncpy(gFormatBuffer_Items[0], buf1, 80); - PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.unk34, 0); + PrintFormattedStringOnWindow(8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), sFmtMoveItem0, gUnknown_203B224->unk54.s0.winId, 0); } break; } } if (sub_801AED0(teamItemIndex) & 1) - sub_8007B7C(gUnknown_203B224->unk54.s0.unk34, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10); + sub_8007B7C(gUnknown_203B224->unk54.s0.winId, 8, GetMenuEntryYCoord(&gUnknown_203B224->unk54.s0.input, r7), (gUnknown_203B224->unk54.s0.unk38->width - 2) * 8, 10); } - sub_80073E0(gUnknown_203B224->unk54.s0.unk34); + sub_80073E0(gUnknown_203B224->unk54.s0.winId); } // arm9.bin::02026234 diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index e5e2d545c..6a03a8863 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -31,14 +31,14 @@ bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3) if (sMakuhitaDojoWork2 == NULL) sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8); - sMakuhitaDojoWork2->s30.s0.unk34 = param_1; + sMakuhitaDojoWork2->s30.s0.winId = param_1; sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.windows.id[param_1]; RestoreSavedWindows(&sMakuhitaDojoWork2->s30.s0.windows); - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E0804; - sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.unk9C; + sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E0804; + sMakuhitaDojoWork2->s30.s0.unk38->header = &sMakuhitaDojoWork2->s30.header; if (param_2 != NULL) - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34].pos = *param_2; + sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId].pos = *param_2; sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3); ResetUnusedInputStruct(); @@ -92,7 +92,7 @@ UNUSED static void sub_8030444(bool8 a0) void sub_8030480(void) { if (sMakuhitaDojoWork2 != NULL) { - sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E07EC; + sMakuhitaDojoWork2->s30.s0.windows.id[sMakuhitaDojoWork2->s30.s0.winId] = sUnknown_80E07EC; ResetUnusedInputStruct(); ShowWindows(&sMakuhitaDojoWork2->s30.s0.windows, TRUE, TRUE); MemoryFree(sMakuhitaDojoWork2); @@ -102,10 +102,10 @@ void sub_8030480(void) static void sub_80304C8(void) { - sMakuhitaDojoWork2->s30.unk9C.count = 1; - sMakuhitaDojoWork2->s30.unk9C.currId = 0; - sMakuhitaDojoWork2->s30.unk9C.width = 8; - sMakuhitaDojoWork2->s30.unk9C.f3 = 0; + sMakuhitaDojoWork2->s30.header.count = 1; + sMakuhitaDojoWork2->s30.header.currId = 0; + sMakuhitaDojoWork2->s30.header.width = 8; + sMakuhitaDojoWork2->s30.header.f3 = 0; SUB_80095E4_CALL(sMakuhitaDojoWork2->s30.s0); } @@ -120,10 +120,10 @@ static void MakuhitaDojo_DrawCourseList(void) s32 i; u8 buffer[256]; - CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.unk34); - sub_80073B8(sMakuhitaDojoWork2->s30.s0.unk34); - PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.unk34, 0); - sub_8012BC4((sMakuhitaDojoWork2->s30.unk9C.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.unk34); + CallPrepareTextbox_8008C54(sMakuhitaDojoWork2->s30.s0.winId); + sub_80073B8(sMakuhitaDojoWork2->s30.s0.winId); + PrintStringOnWindow(10, 0, sCourses, sMakuhitaDojoWork2->s30.s0.winId, 0); + sub_8012BC4((sMakuhitaDojoWork2->s30.header.width * 8) + 4, 0, sMakuhitaDojoWork2->s30.s0.input.unk1E + 1, 2, 7, sMakuhitaDojoWork2->s30.s0.winId); for (i = 0; i < sMakuhitaDojoWork2->s30.s0.input.unk1A; i++) { iVar6 = sMakuhitaDojoWork2->unk0[sMakuhitaDojoWork2->s30.s0.input.unk1E * sMakuhitaDojoWork2->s30.s0.input.unk1C + i]; @@ -134,13 +134,13 @@ static void MakuhitaDojo_DrawCourseList(void) y = GetMenuEntryYCoord(&sMakuhitaDojoWork2->s30.s0.input, i); color = COLOR_WHITE_2; // COLOR_WHITE again? if ((bool8)IsMazeCompleted(mazeIndex)) { - PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.unk34, 0); + PrintStringOnWindow(8, y, sStarBullet, sMakuhitaDojoWork2->s30.s0.winId, 0); color = COLOR_GREEN; } sprintfStatic(buffer, sFmtColor, color, GetDungeonName1(dungeonIndex)); - PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.unk34, 0); + PrintStringOnWindow(16, y, buffer, sMakuhitaDojoWork2->s30.s0.winId, 0); } - sub_80073E0(sMakuhitaDojoWork2->s30.s0.unk34); + sub_80073E0(sMakuhitaDojoWork2->s30.s0.winId); } static s32 sub_8030668(void) diff --git a/src/personality_test2.c b/src/personality_test2.c index eaac3c4a3..6a097fcc4 100644 --- a/src/personality_test2.c +++ b/src/personality_test2.c @@ -33,7 +33,7 @@ void CreatePartnerSelectionMenu(s16 starterID) sub_803CEAC(); gUnknown_203B404->StarterID = starterID_s32; - gUnknown_203B404->s18.s0.unk34 = 0; + gUnknown_203B404->s18.s0.winId = 0; gUnknown_203B404->s18.s0.unk38 = &gUnknown_203B404->s18.s0.windows.id[0]; gUnknown_203B404->s18.s0.windows.id[0] = gUnknown_80F4290; @@ -41,15 +41,15 @@ void CreatePartnerSelectionMenu(s16 starterID) gUnknown_203B404->s18.s0.windows.id[2] = gUnknown_80F4278; gUnknown_203B404->s18.s0.windows.id[3] = gUnknown_80F4278; - gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.unk9C; + gUnknown_203B404->s18.s0.unk38->header = &gUnknown_203B404->s18.header; - gUnknown_203B404->s18.unk9C.count = 1; - gUnknown_203B404->s18.unk9C.currId = 0; - gUnknown_203B404->s18.unk9C.width = 6; - gUnknown_203B404->s18.unk9C.f3 = 0; + gUnknown_203B404->s18.header.count = 1; + gUnknown_203B404->s18.header.currId = 0; + gUnknown_203B404->s18.header.width = 6; + gUnknown_203B404->s18.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE); - sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.unk34); + sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.winId); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); } @@ -91,7 +91,7 @@ UNUSED static void sub_803CE34(bool8 cursorSprite) void sub_803CE6C(void) { - gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.unk34] = gUnknown_80F4278; + gUnknown_203B404->s18.s0.windows.id[gUnknown_203B404->s18.s0.winId] = gUnknown_80F4278; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B404->s18.s0.windows, TRUE, TRUE); sub_803CECC(); @@ -124,18 +124,18 @@ static void RedrawPartnerSelectionMenu(void) SUB_80095E4_CALL(gUnknown_203B404->s18.s0); - CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.unk34); - sub_80073B8(gUnknown_203B404->s18.s0.unk34); - PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.unk34, 0); + CallPrepareTextbox_8008C54(gUnknown_203B404->s18.s0.winId); + sub_80073B8(gUnknown_203B404->s18.s0.winId); + PrintStringOnWindow(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->s18.s0.winId, 0); monCounter = 0; while (monCounter < gUnknown_203B404->s18.s0.input.unk1A) { yCoord = GetMenuEntryYCoord(&gUnknown_203B404->s18.s0.input, monCounter); monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]); - PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.unk34, 0); + PrintStringOnWindow(8, yCoord, monName, gUnknown_203B404->s18.s0.winId, 0); monCounter++; } - sub_80073E0(gUnknown_203B404->s18.s0.unk34); + sub_80073E0(gUnknown_203B404->s18.s0.winId); gUnknown_203B404->unk16 = 1; } diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index 3d738cf8f..c95c43d8d 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -32,15 +32,15 @@ bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2) if (sUnknown_203B2CC == NULL) sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8); - sUnknown_203B2CC->s38.unk34 = a0; + sUnknown_203B2CC->s38.winId = a0; sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.windows.id[a0]; RestoreSavedWindows(&sUnknown_203B2CC->s38.windows); - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBEC; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBEC; if (a1 != NULL) - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34].pos = *a1; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId].pos = *a1; sub_8012D08(sUnknown_203B2CC->s38.unk38, a2); ResetUnusedInputStruct(); @@ -111,7 +111,7 @@ void sub_802B81C(void) sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.unk1E; - sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBD0; + sUnknown_203B2CC->s38.windows.id[sUnknown_203B2CC->s38.winId] = sUnknown_80DFBD0; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2CC->s38.windows, TRUE, TRUE); @@ -133,22 +133,22 @@ static void CreatePKMNNewsMenu(void) s32 new_index; u8 mailIndex; - CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.unk34); - sub_80073B8(sUnknown_203B2CC->s38.unk34); - PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.unk34, 0); + CallPrepareTextbox_8008C54(sUnknown_203B2CC->s38.winId); + sub_80073B8(sUnknown_203B2CC->s38.winId); + PrintStringOnWindow(10, 0, sNewsList, sUnknown_203B2CC->s38.winId, 0); - sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.unk34); + sub_8012BC4((sUnknown_80DFBE8.width * 8) + 4, 0, sUnknown_203B2CC->s38.input.unk1E + 1, 2, 7, sUnknown_203B2CC->s38.winId); for (index = 0; index < sUnknown_203B2CC->s38.input.unk1A; index++) { y = GetMenuEntryYCoord(&sUnknown_203B2CC->s38.input, index); new_index = (sUnknown_203B2CC->s38.input.unk1E * sUnknown_203B2CC->s38.input.unk1C) + index; mailIndex = sUnknown_203B2CC->receivedNewsletters[new_index]; - sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.unk34); + sub_803B6B0(10, y, 6, sUnknown_203B2CC->s38.winId); sub_802BC7C(); - PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.unk34, 0); + PrintFormattedStringOnWindow(21, y, GetPokemonMailHeadline(mailIndex), sUnknown_203B2CC->s38.winId, 0); } - sub_80073E0(sUnknown_203B2CC->s38.unk34); + sub_80073E0(sUnknown_203B2CC->s38.winId); } static s32 GetNumPKMNNews(void) diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index 70d5d28ba..c9188af71 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -34,14 +34,14 @@ bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2) if (sUnknown_203B2D8 == NULL) sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8); - sUnknown_203B2D8->unk4.s0.unk34 = a0; + sUnknown_203B2D8->unk4.s0.winId = a0; sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.windows.id[a0]; RestoreSavedWindows(&sUnknown_203B2D8->unk4.s0.windows); - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC74; - sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.unk9C; + sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC74; + sUnknown_203B2D8->unk4.s0.unk38->header = &sUnknown_203B2D8->unk4.header; if (a1 != NULL) - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34].pos = *a1; + sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId].pos = *a1; sub_8012D34(sUnknown_203B2D8->unk4.s0.unk38, a2); ResetUnusedInputStruct(); @@ -104,7 +104,7 @@ void sub_802BEDC(void) { if (sUnknown_203B2D8 != NULL) { sUnknown_203B2DC = sUnknown_203B2D8->unk4.s0.input.menuIndex; - sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC5C; + sUnknown_203B2D8->unk4.s0.windows.id[sUnknown_203B2D8->unk4.s0.winId] = sUnknown_80DFC5C; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2D8->unk4.s0.windows, TRUE, TRUE); MemoryFree(sUnknown_203B2D8); @@ -114,10 +114,10 @@ void sub_802BEDC(void) static void sub_802BF30(void) { - sUnknown_203B2D8->unk4.unk9C.count = 1; - sUnknown_203B2D8->unk4.unk9C.currId = 0; - sUnknown_203B2D8->unk4.unk9C.width = 12; - sUnknown_203B2D8->unk4.unk9C.f3 = 0; + sUnknown_203B2D8->unk4.header.count = 1; + sUnknown_203B2D8->unk4.header.currId = 0; + sUnknown_203B2D8->unk4.header.width = 12; + sUnknown_203B2D8->unk4.header.f3 = 0; SUB_8009614_CALL(sUnknown_203B2D8->unk4.s0); } @@ -129,21 +129,21 @@ void CreateMailMenu(void) unkStruct_802C39C local; u8 buffer[128]; - CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.unk34); - sub_80073B8(sUnknown_203B2D8->unk4.s0.unk34); - PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.unk34, 0); + CallPrepareTextbox_8008C54(sUnknown_203B2D8->unk4.s0.winId); + sub_80073B8(sUnknown_203B2D8->unk4.s0.winId); + PrintStringOnWindow((sUnknown_203B2D8->unk4.s0.input.unk1E * 8) + 10, 0, sMailbox, sUnknown_203B2D8->unk4.s0.winId, 0); for (i = 0; i < sUnknown_203B2D8->unk4.s0.input.unk1A; i++) { mail = GetMailboxSlotInfo(sUnknown_203B2D8->unk0[(sUnknown_203B2D8->unk4.s0.input.unk1E * sUnknown_203B2D8->unk4.s0.input.unk1C) + i]); - local.unk0[0] = sUnknown_203B2D8->unk4.s0.unk34; + local.unk0[0] = sUnknown_203B2D8->unk4.s0.winId; local.y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i); if (mail->mailType == MAIL_TYPE_UNK1) { y = GetMenuEntryYCoord(&sUnknown_203B2D8->unk4.s0.input, i); - sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.unk34); + sub_803B6B0(10, y, 6, sUnknown_203B2D8->unk4.s0.winId); PrintPokeNameToBuffer(gFormatBuffer_Monsters[0], GetPlayerPokemonStruct()); sprintfStatic(buffer, GetPokemonMailHeadline(mail->unk4.dungeon.floor), gFormatBuffer_Monsters[0]); - PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.unk34, 0); + PrintStringOnWindow(21, y, buffer, sUnknown_203B2D8->unk4.s0.winId, 0); } else { sub_803B35C(mail, &local); @@ -154,7 +154,7 @@ void CreateMailMenu(void) } } - sub_80073E0(sUnknown_203B2D8->unk4.s0.unk34); + sub_80073E0(sUnknown_203B2D8->unk4.s0.winId); } static s32 CountEmptyMailSlots(void) diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index 6b76f5d25..755f9575d 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -30,11 +30,11 @@ bool8 sub_80211AC(u32 mode, u32 a1) sWigglytuffShop1Work = MemoryAlloc(sizeof(WigglytuffShop1Work), 8); sWigglytuffShop1Work->mode = mode; - sWigglytuffShop1Work->s40.s0.unk34 = a1; - sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34]; + sWigglytuffShop1Work->s40.s0.winId = a1; + sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId]; RestoreSavedWindows(&sWigglytuffShop1Work->s40.s0.windows); - sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC47C; - sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.unk9C; + sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC47C; + sWigglytuffShop1Work->s40.s0.unk38->header = &sWigglytuffShop1Work->s40.header; ResetUnusedInputStruct(); ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); sub_8013818(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1); @@ -104,7 +104,7 @@ void sub_80213A0(void) sUnknown_203B284 = sWigglytuffShop1Work->mode; sUnknown_203B288 = sWigglytuffShop1Work->s40.s0.input.menuIndex; sUnknown_203B28A = sWigglytuffShop1Work->s40.s0.input.unk1E; - sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC464; + sWigglytuffShop1Work->s40.s0.windows.id[sWigglytuffShop1Work->s40.s0.winId] = sUnknown_80DC464; ResetUnusedInputStruct(); ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); MemoryFree(sWigglytuffShop1Work); @@ -114,10 +114,10 @@ void sub_80213A0(void) static void sub_8021410(void) { - sWigglytuffShop1Work->s40.unk9C.count = 1; - sWigglytuffShop1Work->s40.unk9C.currId = 0; - sWigglytuffShop1Work->s40.unk9C.width = 12; - sWigglytuffShop1Work->s40.unk9C.f3 = 0; + sWigglytuffShop1Work->s40.header.count = 1; + sWigglytuffShop1Work->s40.header.currId = 0; + sWigglytuffShop1Work->s40.header.width = 12; + sWigglytuffShop1Work->s40.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&sWigglytuffShop1Work->s40.s0.windows, TRUE, TRUE); @@ -131,11 +131,11 @@ void sub_8021494(void) u8 buffer1[80]; u8 buffer2[80]; - CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.unk34); - sub_80073B8(sWigglytuffShop1Work->s40.s0.unk34); - PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.unk34, 0); + CallPrepareTextbox_8008C54(sWigglytuffShop1Work->s40.s0.winId); + sub_80073B8(sWigglytuffShop1Work->s40.s0.winId); + PrintStringOnWindow(10, 0, sFriendAreas, sWigglytuffShop1Work->s40.s0.winId, 0); - sub_8012BC4((sWigglytuffShop1Work->s40.unk9C.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.unk34); + sub_8012BC4((sWigglytuffShop1Work->s40.header.width * 8) + 4, 0, sWigglytuffShop1Work->s40.s0.input.unk1E + 1, 1, 7, sWigglytuffShop1Work->s40.s0.winId); for (i = 0; i < sWigglytuffShop1Work->s40.s0.input.unk1A; i++) { friendAreaIndex = sWigglytuffShop1Work->friendAreas[(sWigglytuffShop1Work->s40.s0.input.unk1E * sWigglytuffShop1Work->s40.s0.input.unk1C) + i]; @@ -144,25 +144,25 @@ void sub_8021494(void) WriteFriendAreaName(buffer1, friendAreaIndex, TRUE); if (GetFriendAreaPrice(friendAreaIndex) <= gTeamInventoryRef->teamMoney) - PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.unk34, 0); + PrintStringOnWindow(8,GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer1, sWigglytuffShop1Work->s40.s0.winId, 0); else { sprintfStatic(buffer2, sFmtRedString, buffer1); - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0); } } else if (sWigglytuffShop1Work->mode == 0) { if (gFriendAreas[friendAreaIndex] == TRUE) - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0); else { sprintfStatic(buffer2, sFmtGreenString, GetFriendAreaName(friendAreaIndex)); - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), buffer2, sWigglytuffShop1Work->s40.s0.winId, 0); } } else - PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.unk34, 0); + PrintStringOnWindow(8, GetMenuEntryYCoord(&sWigglytuffShop1Work->s40.s0.input, i), GetFriendAreaName(friendAreaIndex), sWigglytuffShop1Work->s40.s0.winId, 0); } - sub_80073E0(sWigglytuffShop1Work->s40.s0.unk34); + sub_80073E0(sWigglytuffShop1Work->s40.s0.winId); } static s32 sub_8021664(void) diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 8528a1391..c2a4207b4 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -2,7 +2,7 @@ #include "globaldata.h" #include "constants/communication_error_codes.h" #include "code_80118A4.h" -#include "code_8023868.h" +#include "friend_list.h" #include "code_8024458.h" #include "code_8094F88.h" #include "code_80A26CC.h" @@ -39,7 +39,7 @@ extern void sub_8031E10(); extern void sub_8031E00(); extern void sub_8031E10(void); extern void sub_8031D70(u8, u32); -extern u32 sub_8023CE8(void); +extern u32 FriendList_GetPtr(void); extern void sub_8030F58(u32); extern void sub_8029B34(void); extern void sub_8029AD8(void); @@ -401,7 +401,7 @@ void sub_80282FC(void) MemoryFree(sUnknown_203B2C0); sUnknown_203B2C0 = NULL; sub_8031E10(); - sub_8023C60(); + FriendList_Free(); sub_803084C(); sub_80155F0(); sub_80310B4(); @@ -454,17 +454,17 @@ void sub_8028348(void) CreateDialogueBoxAndPortrait(gUnknown_80DDCBC, 0, 0,0x101); break; case SELECT_HELPER_POKEMON: - if(sub_8023CE8() == 0) + if(FriendList_GetPtr() == 0) { ResetUnusedInputStruct(); ShowWindows(NULL, TRUE, TRUE); - sub_8023868(3, 0, 0, 9); + FriendList_Init(3, 0, 0, 9); } break; case 0x34: RestoreSavedWindows(&sUnknown_203B2C0->unk35C); SetMenuItems(sUnknown_203B2C0->unk21C, &sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); - sub_8023DA4(); + FriendList_ShowWindow(); sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; case NO_POKEMON_IN_FRIEND_AREA: @@ -1559,20 +1559,20 @@ void sub_80297B8(void) void sub_80297D4(void) { - switch(sub_8023A94(TRUE)) + switch(FriendList_HandleInput(TRUE)) { case 2: - sub_8023C60(); + FriendList_Free(); SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); sUnknown_203B2C0->speciesNum = -1; break; case 3: - sUnknown_203B2C0->speciesNum = sub_8023B44(); + sUnknown_203B2C0->speciesNum = FriendList_GetCurrId(); SetFriendRescueCounterState(0x34); break; case 4: sUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON; - sUnknown_203B2C0->speciesNum = sub_8023B44(); + sUnknown_203B2C0->speciesNum = FriendList_GetCurrId(); RestoreSavedWindows(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); ShowWindows(NULL, TRUE, TRUE); @@ -1586,7 +1586,7 @@ void sub_8029884(void) { s32 menuAction; menuAction = -1; - sub_8023A94(FALSE); + FriendList_HandleInput(FALSE); if(sub_8012FD8(&(sUnknown_203B2C0->unk21C[3])) == 0) { sub_8013114(&(sUnknown_203B2C0->unk21C[3]), &menuAction); @@ -1594,7 +1594,7 @@ void sub_8029884(void) switch(menuAction) { case CONFIRM_ACTION: - sub_8023C60(); + FriendList_Free(); SetFriendRescueCounterState(4); break; case INFO_ACTION: diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 7e2677f1e..bc266f372 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -85,16 +85,16 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3) gUnknown_203B320 = MemoryAlloc(sizeof(struct unkStruct_203B320), 8); gUnknown_203B320->wonderMailType = wonderMailType; - gUnknown_203B320->s28.s0.unk34 = r1; + gUnknown_203B320->s28.s0.winId = r1; - gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34]; + gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId]; RestoreSavedWindows(&gUnknown_203B320->s28.s0.windows); - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E0854; - gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.unk9C; + gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E0854; + gUnknown_203B320->s28.s0.unk38->header = &gUnknown_203B320->s28.header; if (r2 != 0) - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34].pos = *r2; + gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId].pos = *r2; sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3); ResetUnusedInputStruct(); @@ -155,7 +155,7 @@ void sub_803084C(void) { if(gUnknown_203B320 != NULL) { - gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E083C; + gUnknown_203B320->s28.s0.windows.id[gUnknown_203B320->s28.s0.winId] = gUnknown_80E083C; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B320); @@ -170,10 +170,10 @@ u8 *sub_8030894(void) void sub_80308A0(void) { - gUnknown_203B320->s28.unk9C.count = gUnknown_203B320->s28.s0.input.unk20; - gUnknown_203B320->s28.unk9C.currId = gUnknown_203B320->s28.s0.input.unk1E; - gUnknown_203B320->s28.unk9C.width = 12; - gUnknown_203B320->s28.unk9C.f3 = 0; + gUnknown_203B320->s28.header.count = gUnknown_203B320->s28.s0.input.unk20; + gUnknown_203B320->s28.header.currId = gUnknown_203B320->s28.s0.input.unk1E; + gUnknown_203B320->s28.header.width = 12; + gUnknown_203B320->s28.header.f3 = 0; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B320->s28.s0.windows, TRUE, TRUE); @@ -188,19 +188,19 @@ void sub_803092C(void) s32 index; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.unk34); - sub_80073B8(gUnknown_203B320->s28.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B320->s28.s0.winId); + sub_80073B8(gUnknown_203B320->s28.s0.winId); r4 = gUnknown_203B320->s28.s0.input.unk1E * 8; r5 = r4; r5 += 10; - PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.unk34,0); + PrintStringOnWindow(r5,0,gUnknown_80E086C[gUnknown_203B320->wonderMailType],gUnknown_203B320->s28.s0.winId,0); r4 += 4; - r5 = r4 + gUnknown_203B320->s28.unk9C.width * 8; - sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.unk1E + 1,1,7,gUnknown_203B320->s28.s0.unk34); + r5 = r4 + gUnknown_203B320->s28.header.width * 8; + sub_8012BC4(r5,0,gUnknown_203B320->s28.s0.input.unk1E + 1,1,7,gUnknown_203B320->s28.s0.winId); for (index = 0; index < gUnknown_203B320->s28.s0.input.unk1A; index++) { mail = GetMailatIndex(gUnknown_203B320->unk0[(gUnknown_203B320->s28.s0.input.unk1E * gUnknown_203B320->s28.s0.input.unk1C) + index]); - local.unk0[0] = gUnknown_203B320->s28.s0.unk34; + local.unk0[0] = gUnknown_203B320->s28.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B320->s28.s0.input,index); local.mailTitleType = 7; local.mailMissionType = MISSION_TYPE_FRIEND_RESCUE; @@ -232,7 +232,7 @@ void sub_803092C(void) } CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B320->s28.s0.unk34); + sub_80073E0(gUnknown_203B320->s28.s0.winId); } s32 sub_8030A74(void) diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 45e42f616..3ab84a377 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -28,15 +28,15 @@ bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2) if (gUnknown_203B2E0 == NULL) gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); - gUnknown_203B2E0->unk8.s0.unk34 = a0; + gUnknown_203B2E0->unk8.s0.winId = a0; gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.windows.id[a0]; RestoreSavedWindows(&gUnknown_203B2E0->unk8.s0.windows); - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFCB4; - gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.unk9C; + gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFCB4; + gUnknown_203B2E0->unk8.s0.unk38->header = &gUnknown_203B2E0->unk8.header; if (a1 != NULL) - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34].pos = *a1; + gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId].pos = *a1; sub_8012D34(gUnknown_203B2E0->unk8.s0.unk38, a2); ResetUnusedInputStruct(); @@ -98,7 +98,7 @@ void sub_802C2D4(void) { if (gUnknown_203B2E0 != NULL) { gUnknown_203B2E4 = gUnknown_203B2E0->unk8.s0.input.menuIndex; - gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFC9C; + gUnknown_203B2E0->unk8.s0.windows.id[gUnknown_203B2E0->unk8.s0.winId] = sUnknown_80DFC9C; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B2E0->unk8.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B2E0); @@ -108,10 +108,10 @@ void sub_802C2D4(void) static void sub_802C328(void) { - gUnknown_203B2E0->unk8.unk9C.count = gUnknown_203B2E0->unk8.s0.input.unk20; - gUnknown_203B2E0->unk8.unk9C.currId = gUnknown_203B2E0->unk8.s0.input.unk1E; - gUnknown_203B2E0->unk8.unk9C.width = 12; - gUnknown_203B2E0->unk8.unk9C.f3 = 0; + gUnknown_203B2E0->unk8.header.count = gUnknown_203B2E0->unk8.s0.input.unk20; + gUnknown_203B2E0->unk8.header.currId = gUnknown_203B2E0->unk8.s0.input.unk1E; + gUnknown_203B2E0->unk8.header.width = 12; + gUnknown_203B2E0->unk8.header.f3 = 0; SUB_8009614_CALL(gUnknown_203B2E0->unk8.s0); } @@ -125,21 +125,21 @@ void DrawPelipperBoardJobMenu(void) s32 i; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.unk34); - sub_80073B8(gUnknown_203B2E0->unk8.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B2E0->unk8.s0.winId); + sub_80073B8(gUnknown_203B2E0->unk8.s0.winId); iVar4 = gUnknown_203B2E0->unk8.s0.input.unk1E * 8; x = iVar4; x += 10; - PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.unk34, 0); + PrintStringOnWindow(x, 0, sBulletinBoard, gUnknown_203B2E0->unk8.s0.winId, 0); iVar4 += 4; - x = iVar4 + (gUnknown_203B2E0->unk8.unk9C.width * 8); - sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk8.s0.unk34); + x = iVar4 + (gUnknown_203B2E0->unk8.header.width * 8); + sub_8012BC4(x, 0, gUnknown_203B2E0->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E0->unk8.s0.winId); for (i = 0; i < gUnknown_203B2E0->unk8.s0.input.unk1A; i++) { slotIndex = (gUnknown_203B2E0->pelipperBoardSlots[(gUnknown_203B2E0->unk8.s0.input.unk1E * gUnknown_203B2E0->unk8.s0.input.unk1C) + i]); mail = GetPelipperBoardSlotInfo(slotIndex); - local.unk0[0] = gUnknown_203B2E0->unk8.s0.unk34; + local.unk0[0] = gUnknown_203B2E0->unk8.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B2E0->unk8.s0.input, i); sub_803B35C(mail, &local); @@ -149,7 +149,7 @@ void DrawPelipperBoardJobMenu(void) CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B2E0->unk8.s0.unk34); + sub_80073E0(gUnknown_203B2E0->unk8.s0.winId); } static s32 CountPelipperBoardSlots(void) diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index 46bf65841..cfa857a7e 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -30,15 +30,15 @@ bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2) return FALSE; gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); - gUnknown_203B2E8->unk8.s0.unk34 = a0; + gUnknown_203B2E8->unk8.s0.winId = a0; gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.windows.id[a0]; RestoreSavedWindows(&gUnknown_203B2E8->unk8.s0.windows); - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCFC; - gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.unk9C; + gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCFC; + gUnknown_203B2E8->unk8.s0.unk38->header = &gUnknown_203B2E8->unk8.header; if (a1 != NULL) - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34].pos = *a1; + gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId].pos = *a1; sub_8012D34(gUnknown_203B2E8->unk8.s0.unk38, a2); ResetUnusedInputStruct(); @@ -100,7 +100,7 @@ void sub_802C688(void) { if (gUnknown_203B2E8 != NULL) { gUnknown_203B2EC = gUnknown_203B2E8->unk8.s0.input.menuIndex; - gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCE4; + gUnknown_203B2E8->unk8.s0.windows.id[gUnknown_203B2E8->unk8.s0.winId] = sUnknown_80DFCE4; ResetUnusedInputStruct(); ShowWindows(&gUnknown_203B2E8->unk8.s0.windows, TRUE, TRUE); MemoryFree(gUnknown_203B2E8); @@ -110,10 +110,10 @@ void sub_802C688(void) static void sub_802C6DC(void) { - gUnknown_203B2E8->unk8.unk9C.count = gUnknown_203B2E8->unk8.s0.input.unk20; - gUnknown_203B2E8->unk8.unk9C.currId = gUnknown_203B2E8->unk8.s0.input.unk1E; - gUnknown_203B2E8->unk8.unk9C.width = 12; - gUnknown_203B2E8->unk8.unk9C.f3 = 0; + gUnknown_203B2E8->unk8.header.count = gUnknown_203B2E8->unk8.s0.input.unk20; + gUnknown_203B2E8->unk8.header.currId = gUnknown_203B2E8->unk8.s0.input.unk1E; + gUnknown_203B2E8->unk8.header.width = 12; + gUnknown_203B2E8->unk8.header.f3 = 0; SUB_8009614_CALL(gUnknown_203B2E8->unk8.s0); } @@ -126,26 +126,26 @@ void DrawJobListMenu(void) s32 x; unkStruct_802C39C local; - CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.unk34); - sub_80073B8(gUnknown_203B2E8->unk8.s0.unk34); + CallPrepareTextbox_8008C54(gUnknown_203B2E8->unk8.s0.winId); + sub_80073B8(gUnknown_203B2E8->unk8.s0.winId); r4 = gUnknown_203B2E8->unk8.s0.input.unk1E * 8; x = r4; x += 10; - PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.unk34, 0); + PrintStringOnWindow(x, 0, sJobList, gUnknown_203B2E8->unk8.s0.winId, 0); r4 += 4; - x = r4 + (gUnknown_203B2E8->unk8.unk9C.width * 8); - sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk8.s0.unk34); + x = r4 + (gUnknown_203B2E8->unk8.header.width * 8); + sub_8012BC4(x, 0, gUnknown_203B2E8->unk8.s0.input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk8.s0.winId); for (i = 0; i < gUnknown_203B2E8->unk8.s0.input.unk1A; i++) { mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->unk8.s0.input.unk1E * gUnknown_203B2E8->unk8.s0.input.unk1C) + i]); - local.unk0[0] = gUnknown_203B2E8->unk8.s0.unk34; + local.unk0[0] = gUnknown_203B2E8->unk8.s0.winId; local.y = GetMenuEntryYCoord(&gUnknown_203B2E8->unk8.s0.input, i); sub_803B35C(mail, &local); CreateRescueTitle(&local); } - sub_80073E0(gUnknown_203B2E8->unk8.s0.unk34); + sub_80073E0(gUnknown_203B2E8->unk8.s0.winId); } static s32 CountAcceptedJobs(void) diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index 157e3ca06..d55e2b5c6 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -25,11 +25,11 @@ bool8 sub_802CDD4(u32 a0) if (sUnknown_203B2F4 == NULL) sUnknown_203B2F4 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); - sUnknown_203B2F4->s0.unk34 = a0; - sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34]; + sUnknown_203B2F4->s0.winId = a0; + sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId]; RestoreSavedWindows(&sUnknown_203B2F4->s0.windows); - sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFDA4; - sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->unk9C; + sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFDA4; + sUnknown_203B2F4->s0.unk38->header = &sUnknown_203B2F4->header; sub_8012D34(sUnknown_203B2F4->s0.unk38, 4); ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE); @@ -82,7 +82,7 @@ void sub_802CED8(bool8 cursorSprite) void sub_802CF14(void) { if (sUnknown_203B2F4 != NULL) { - sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFD8C; + sUnknown_203B2F4->s0.windows.id[sUnknown_203B2F4->s0.winId] = sUnknown_80DFD8C; ResetUnusedInputStruct(); ShowWindows(&sUnknown_203B2F4->s0.windows, TRUE, TRUE); MemoryFree(sUnknown_203B2F4); @@ -92,10 +92,10 @@ void sub_802CF14(void) static void sub_802CF5C(void) { - sUnknown_203B2F4->unk9C.count = sUnknown_203B2F4->s0.input.unk20; - sUnknown_203B2F4->unk9C.currId = sUnknown_203B2F4->s0.input.unk1E; - sUnknown_203B2F4->unk9C.width = 12; - sUnknown_203B2F4->unk9C.f3 = 0; + sUnknown_203B2F4->header.count = sUnknown_203B2F4->s0.input.unk20; + sUnknown_203B2F4->header.currId = sUnknown_203B2F4->s0.input.unk1E; + sUnknown_203B2F4->header.width = 12; + sUnknown_203B2F4->header.f3 = 0; SUB_8009614_CALL(sUnknown_203B2F4->s0); } @@ -107,20 +107,20 @@ void sub_802CFD0(void) s32 r5; s32 r4; - CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.unk34); - sub_80073B8(sUnknown_203B2F4->s0.unk34); + CallPrepareTextbox_8008C54(sUnknown_203B2F4->s0.winId); + sub_80073B8(sUnknown_203B2F4->s0.winId); r5 = r4 = (sUnknown_203B2F4->s0.input.unk1E * 8) + 10; - PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.unk34, 0); + PrintStringOnWindow(r5, 0, sRescueEvent, sUnknown_203B2F4->s0.winId, 0); r4 -= 6; - r5 = r4 + (sUnknown_203B2F4->unk9C.width * 8); - sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.unk1E + 1, 2, 7, sUnknown_203B2F4->s0.unk34); + r5 = r4 + (sUnknown_203B2F4->header.width * 8); + sub_8012BC4(r5, 0, sUnknown_203B2F4->s0.input.unk1E + 1, 2, 7, sUnknown_203B2F4->s0.winId); for (r5 = 0; r5 < sUnknown_203B2F4->s0.input.unk1A; r5++) { iVar1 = sub_803B344((sUnknown_203B2F4->s0.input.unk1E * sUnknown_203B2F4->s0.input.unk1C) + r5); - local.unk0[0] = sUnknown_203B2F4->s0.unk34; + local.unk0[0] = sUnknown_203B2F4->s0.winId; local.y = GetMenuEntryYCoord(&sUnknown_203B2F4->s0.input, r5); sub_803B35C(&iVar1->mail, &local); @@ -129,5 +129,5 @@ void sub_802CFD0(void) CreateRescueTitle(&local); } - sub_80073E0(sUnknown_203B2F4->s0.unk34); + sub_80073E0(sUnknown_203B2F4->s0.winId); } diff --git a/sym_iwram_init.txt b/sym_iwram_init.txt index 08fa71ef3..1af424969 100644 --- a/sym_iwram_init.txt +++ b/sym_iwram_init.txt @@ -2,7 +2,7 @@ .include "src/code_80035F0.o" .include "src/code_8023144.o" -.include "src/code_8023868.o" +.include "src/friend_list.o" .include "src/code_809A560.o" .include "src/code_809C5C4.o" .include "src/ground_map.o"