diff --git a/asm/code_8066D04.s b/asm/code_8066D04.s deleted file mode 100644 index aab7b47d5..000000000 --- a/asm/code_8066D04.s +++ /dev/null @@ -1,2596 +0,0 @@ - #include "asm/constants/gba_constants.inc" - #include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start sub_8066E14 -sub_8066E14: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - mov r9, r0 - ldr r0, [r0, 0x70] - mov r10, r0 - mov r0, r9 - movs r1, 0 - movs r2, 0x5 - bl sub_8044D90 - adds r6, r0, 0 - mov r0, r9 - movs r1, 0x1 - movs r2, 0x6 - bl sub_8044D90 - adds r2, r0, 0 - adds r7, r2, 0 - mov r0, r10 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0x80 - beq _08066E54 - ldr r0, _08066E50 - b _08066F1E - .align 2, 0 -_08066E50: .4byte gUnknown_80F8E2C -_08066E54: - mov r0, r10 - adds r0, 0x50 - ldrb r1, [r0] - str r0, [sp, 0x8] - cmp r1, 0x14 - bhi _08066E80 - ldrb r1, [r2] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0x18 - bne _08066E80 - ldr r0, _08066E78 - adds r1, r2, 0 - bl sub_8045BF8 - ldr r0, _08066E7C - b _08066F1E - .align 2, 0 -_08066E78: .4byte gFormatBuffer_Items -_08066E7C: .4byte gUnknown_80F8BE0 -_08066E80: - ldr r1, [sp, 0x8] - ldrb r0, [r1] - cmp r0, 0x81 - bne _08066EA8 - adds r2, r7, 0 - ldrb r1, [r2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08066EA8 - ldr r0, _08066EA0 - adds r1, r2, 0 - bl sub_8045BF8 - ldr r0, _08066EA4 - b _08066F1E - .align 2, 0 -_08066EA0: .4byte gFormatBuffer_Items + 0x50 -_08066EA4: .4byte gItemStickyCannotMove3 -_08066EA8: - mov r2, r9 - movs r3, 0x4 - ldrsh r0, [r2, r3] - movs r3, 0x6 - ldrsh r1, [r2, r3] - bl GetTile - ldr r0, [r0, 0x14] - cmp r0, 0 - beq _08066ECC - bl GetEntityType - cmp r0, 0x3 - beq _08066ECC - ldr r0, _08066EC8 - b _08066F1E - .align 2, 0 -_08066EC8: .4byte gNoExchangesHere -_08066ECC: - adds r0, r6, 0 - ldr r5, [r0] - str r5, [sp] - adds r4, r7, 0 - ldr r6, [r4] - mov r8, sp - str r6, [sp, 0x4] - movs r3, 0xEF - mov r0, sp - ldrb r2, [r0] - ands r2, r3 - ldr r1, _08066F28 - adds r0, r1, 0 - ands r0, r5 - orrs r0, r2 - str r0, [sp] - mov r2, r8 - ldrb r0, [r2, 0x4] - ands r0, r3 - ands r1, r6 - orrs r1, r0 - str r1, [sp, 0x4] - mov r5, r10 - adds r5, 0x4C - adds r0, r5, 0 - movs r1, 0x1 - bl sub_80461C8 - movs r0, 0 - strb r0, [r4, 0x2] - strb r0, [r4, 0x1] - strb r0, [r4] - add r1, sp, 0x4 - adds r0, r5, 0 - movs r2, 0x1 - bl sub_80460F8 - lsls r0, 24 - cmp r0, 0 - bne _08066F30 - ldr r0, _08066F2C -_08066F1E: - ldr r1, [r0] - mov r0, r9 - bl LogMessageByIdWithPopupCheckUser - b _08066F7E - .align 2, 0 -_08066F28: .4byte 0xffffff00 -_08066F2C: .4byte gNothingCanBePutDownHere -_08066F30: - ldr r3, [sp, 0x8] - ldrb r0, [r3] - cmp r0, 0x81 - bne _08066F40 - ldr r0, [sp] - mov r1, r10 - str r0, [r1, 0x60] - b _08066F46 -_08066F40: - mov r0, sp - bl AddItemToInventory -_08066F46: - bl FillInventoryGaps - ldr r4, _08066F90 - add r1, sp, 0x4 - adds r0, r4, 0 - bl sub_8045BF8 - adds r4, 0x50 - adds r0, r4, 0 - mov r1, sp - bl sub_8045BF8 - ldr r0, _08066F94 - bl PlaySoundEffect - ldr r0, _08066F98 - ldr r1, [r0] - mov r0, r9 - bl LogMessageByIdWithPopupCheckUser - ldr r0, _08066F9C - ldr r0, [r0] - ldr r2, _08066FA0 - adds r0, r2 - ldrb r1, [r0] - mov r0, r9 - bl sub_807AB38 -_08066F7E: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08066F90: .4byte gFormatBuffer_Items -_08066F94: .4byte 0x0000014d -_08066F98: .4byte gSwappedGroundItem -_08066F9C: .4byte gDungeon -_08066FA0: .4byte 0x00003a08 - thumb_func_end sub_8066E14 - - thumb_func_start sub_8066FA4 -sub_8066FA4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r7, r0, 0 - ldr r0, [r7, 0x70] - mov r9, r0 - movs r1, 0x4 - ldrsh r0, [r7, r1] - movs r2, 0x6 - ldrsh r1, [r7, r2] - bl GetTile - mov r10, r0 - adds r0, r7, 0 - movs r1, 0 - movs r2, 0x7 - bl sub_8044D90 - adds r4, r0, 0 - adds r5, r4, 0 - ldr r0, _08067000 - mov r8, r0 - adds r1, r4, 0 - bl sub_8045BF8 - mov r0, r9 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0x14 - bhi _08067008 - ldrb r1, [r4] - movs r0, 0x18 - ands r0, r1 - cmp r0, 0x18 - bne _08067008 - mov r0, r8 - adds r0, 0x50 - adds r1, r4, 0 - bl sub_8045BF8 - ldr r0, _08067004 - b _0806709E - .align 2, 0 -_08067000: .4byte gFormatBuffer_Items -_08067004: .4byte gItemStickyCannotMove3 -_08067008: - mov r0, r9 - adds r0, 0x48 - ldrb r1, [r0] - str r0, [sp, 0x8] - cmp r1, 0x81 - bne _08067028 - adds r0, r5, 0 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08067028 - ldr r0, _08067024 - b _0806709E - .align 2, 0 -_08067024: .4byte gItemStickyCannotMove2 -_08067028: - mov r1, r10 - ldr r0, [r1, 0x14] - cmp r0, 0 - beq _08067040 - bl GetEntityType - cmp r0, 0x3 - beq _08067040 - ldr r0, _0806703C - b _0806709E - .align 2, 0 -_0806703C: .4byte gNoExchangesHere -_08067040: - mov r2, r10 - ldr r0, [r2, 0x14] - bl GetItemData - adds r4, r0, 0 - ldr r0, _080670A8 - adds r1, r4, 0 - bl sub_8045BF8 - ldr r6, [r5] - str r6, [sp] - ldr r4, [r4] - mov r8, sp - str r4, [sp, 0x4] - movs r3, 0xEF - mov r0, sp - ldrb r2, [r0] - ands r2, r3 - ldr r1, _080670AC - adds r0, r1, 0 - ands r0, r6 - orrs r0, r2 - str r0, [sp] - mov r2, r8 - ldrb r0, [r2, 0x4] - ands r0, r3 - ands r1, r4 - orrs r1, r0 - str r1, [sp, 0x4] - adds r4, r7, 0x4 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80461C8 - movs r0, 0 - strb r0, [r5, 0x2] - strb r0, [r5, 0x1] - strb r0, [r5] - adds r0, r4, 0 - mov r1, sp - movs r2, 0x1 - bl sub_80460F8 - lsls r0, 24 - cmp r0, 0 - bne _080670B4 - ldr r0, _080670B0 -_0806709E: - ldr r1, [r0] - adds r0, r7, 0 - bl LogMessageByIdWithPopupCheckUser - b _080670EE - .align 2, 0 -_080670A8: .4byte gFormatBuffer_Items + 0x50 -_080670AC: .4byte 0xffffff00 -_080670B0: .4byte gNothingCanBePutDownHere -_080670B4: - ldr r1, [sp, 0x8] - ldrb r0, [r1] - cmp r0, 0x81 - bne _080670C4 - ldr r0, [sp, 0x4] - mov r2, r9 - str r0, [r2, 0x60] - b _080670CA -_080670C4: - add r0, sp, 0x4 - bl AddItemToInventory -_080670CA: - bl FillInventoryGaps - ldr r0, _08067100 - bl PlaySoundEffect - ldr r0, _08067104 - ldr r1, [r0] - adds r0, r7, 0 - bl LogMessageByIdWithPopupCheckUser - ldr r0, _08067108 - ldr r0, [r0] - ldr r1, _0806710C - adds r0, r1 - ldrb r1, [r0] - adds r0, r7, 0 - bl sub_807AB38 -_080670EE: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067100: .4byte 0x0000014d -_08067104: .4byte gSwappedGroundItem -_08067108: .4byte gDungeon -_0806710C: .4byte 0x00003a08 - thumb_func_end sub_8066FA4 - - thumb_func_start sub_8067110 -sub_8067110: - push {r4-r6,lr} - sub sp, 0xC - adds r5, r0, 0 - ldr r4, [r5, 0x70] - movs r1, 0 - movs r2, 0x8 - bl sub_8044D90 - adds r6, r0, 0 - ldr r0, _08067190 - adds r1, r6, 0 - bl sub_8045BF8 - ldr r0, _08067194 - adds r1, r4, 0 - movs r2, 0 - bl SetMessageArgument_2 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8048D50 - lsls r0, 24 - cmp r0, 0 - beq _08067188 - adds r0, r6, 0 - bl sub_80464AC - adds r1, r0, 0 - adds r0, r5, 0 - bl LogMessageByIdWithPopupCheckUser - ldr r0, [r6] - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x66 - bl sub_8044DF0 - movs r0, 0x1E - movs r1, 0x11 - bl sub_803E708 - str r5, [sp] - add r0, sp, 0x8 - str r0, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - adds r3, r5, 0 - bl sub_80479B8 - ldr r0, _08067198 - ldr r0, [r0] - ldr r1, _0806719C - adds r0, r1 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_807AB38 -_08067188: - add sp, 0xC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08067190: .4byte gFormatBuffer_Items -_08067194: .4byte gFormatBuffer_Monsters -_08067198: .4byte gDungeon -_0806719C: .4byte 0x00003a08 - thumb_func_end sub_8067110 - - thumb_func_start sub_80671A0 -sub_80671A0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r6, r0, 0 - ldr r0, [r6, 0x70] - mov r8, r0 - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x9 - bl sub_8044D90 - adds r4, r0, 0 - mov r0, r8 - adds r0, 0x48 - ldrb r0, [r0] - cmp r0, 0x81 - bne _080671E8 - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080671E8 - ldr r0, _080671E0 - adds r1, r4, 0 - bl sub_8045BF8 - ldr r0, _080671E4 - b _08067230 - .align 2, 0 -_080671E0: .4byte gFormatBuffer_Items -_080671E4: .4byte gUnknown_80F8BE0 -_080671E8: - ldrb r0, [r4, 0x2] - bl GetItemCategory - lsls r0, 24 - cmp r0, 0 - beq _08067202 - ldrb r0, [r4, 0x2] - bl GetItemCategory - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08067220 -_08067202: - ldrb r1, [r4] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08067220 - ldr r0, _08067218 - adds r1, r4, 0 - bl sub_8045BF8 - ldr r0, _0806721C - b _08067230 - .align 2, 0 -_08067218: .4byte gFormatBuffer_Items -_0806721C: .4byte gUnknown_80F8BE0 -_08067220: - adds r0, r6, 0 - movs r1, 0x1 - bl ShouldMonsterRunAwayAndShowEffect - lsls r0, 24 - cmp r0, 0 - beq _08067248 - ldr r0, _08067244 -_08067230: - ldr r1, [r0] - adds r0, r6, 0 - bl LogMessageByIdWithPopupCheckUser - movs r0, 0x14 - movs r1, 0x4C - bl sub_803E708 - b _080674F8 - .align 2, 0 -_08067244: .4byte gUnknown_80FF76C -_08067248: - ldr r2, [r4] - str r2, [sp, 0x4] - movs r1, 0xEF - add r0, sp, 0x4 - ldrb r0, [r0] - ands r0, r1 - ldr r1, _080672C0 - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x4] - mov r0, r8 - adds r0, 0x48 - ldrb r1, [r0] - adds r5, r0, 0 - cmp r1, 0x80 - bne _08067272 - movs r4, 0 - adds r0, 0x4 - movs r1, 0x1 - bl sub_80461C8 -_08067272: - movs r7, 0x1 - ldr r0, [sp, 0x4] - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - bl GetItemCategory - lsls r0, 24 - cmp r0, 0 - beq _0806729A - ldr r0, [sp, 0x4] - lsrs r0, 16 - lsls r0, 24 - lsrs r0, 24 - bl GetItemCategory - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080672A8 -_0806729A: - ldr r0, [sp, 0x4] - lsrs r0, 8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080672A8 - movs r7, 0 -_080672A8: - cmp r7, 0 - beq _080672C4 - ldrb r0, [r5] - cmp r0, 0x80 - beq _080672F6 - movs r0, 0 - strb r0, [r4, 0x2] - strb r0, [r4, 0x1] - strb r0, [r4] - bl FillInventoryGaps - b _080672F6 - .align 2, 0 -_080672C0: .4byte 0xffffff00 -_080672C4: - ldrb r0, [r5] - cmp r0, 0x80 - bne _080672F0 - ldr r2, [sp, 0x4] - lsrs r0, r2, 8 - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 16 - ldr r1, _080672EC - ands r2, r1 - orrs r2, r0 - str r2, [sp, 0x4] - mov r0, r8 - adds r0, 0x4C - add r1, sp, 0x4 - movs r2, 0x1 - bl sub_80460F8 - b _080672F6 - .align 2, 0 -_080672EC: .4byte 0xffff00ff -_080672F0: - ldrb r0, [r4, 0x1] - subs r0, 0x1 - strb r0, [r4, 0x1] -_080672F6: - adds r0, r6, 0 - movs r1, 0x29 - bl HasHeldItem - lsls r0, 24 - cmp r0, 0 - beq _08067310 - movs r0, 0x8 - bl DungeonRandInt - mov r1, r8 - adds r1, 0x46 - strb r0, [r1] -_08067310: - adds r0, r6, 0 - bl sub_8045888 - lsls r0, 24 - movs r1, 0xE0 - add r1, r8 - mov r10, r1 - adds r1, r6, 0x4 - str r1, [sp, 0x10] - add r1, sp, 0xC - mov r9, r1 - cmp r0, 0 - beq _08067364 - mov r0, r8 - adds r0, 0x46 - ldrb r4, [r0] - movs r1, 0xB2 - lsls r1, 1 - adds r0, r6, 0 - bl sub_80421C0 - movs r7, 0x7 - movs r5, 0x7 -_0806733E: - subs r4, 0x1 - ands r4, r7 - adds r0, r6, 0 - movs r1, 0 - adds r2, r4, 0 - bl sub_806CDD4 - movs r0, 0x2 - movs r1, 0x15 - bl sub_803E708 - subs r5, 0x1 - cmp r5, 0 - bge _0806733E - movs r1, 0xB3 - lsls r1, 1 - add r1, r8 - movs r0, 0x4 - strb r0, [r1] -_08067364: - add r4, sp, 0x4 - ldrb r0, [r4, 0x2] - bl GetItemCategory - lsls r0, 24 - cmp r0, 0 - beq _08067380 - ldrb r0, [r4, 0x2] - bl GetItemCategory - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08067384 -_08067380: - movs r0, 0x1 - strb r0, [r4, 0x1] -_08067384: - ldr r0, _080673B0 - add r4, sp, 0x4 - adds r1, r4, 0 - bl sub_8045C08 - ldr r0, _080673B4 - mov r1, r8 - movs r2, 0 - bl SetMessageArgument_2 - ldrb r0, [r4, 0x2] - bl GetItemCategory - lsls r0, 24 - cmp r0, 0 - bne _080673BC - ldr r0, _080673B8 - ldr r1, [r0] - adds r0, r6, 0 - bl LogMessageByIdWithPopupCheckUser - b _080673C6 - .align 2, 0 -_080673B0: .4byte gFormatBuffer_Items -_080673B4: .4byte gFormatBuffer_Monsters -_080673B8: .4byte gMonThrewItem2 -_080673BC: - ldr r0, _080673F8 - ldr r1, [r0] - adds r0, r6, 0 - bl LogMessageByIdWithPopupCheckUser -_080673C6: - add r0, sp, 0x4 - ldrb r0, [r0, 0x2] - bl GetItemCategory - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl sub_8042208 - adds r0, r6, 0 - movs r1, 0x27 - bl HasHeldItem - lsls r0, 24 - cmp r0, 0 - beq _08067400 - ldr r0, _080673FC - ldr r1, [sp, 0xC] - ands r1, r0 - movs r0, 0x80 - lsls r0, 1 - orrs r1, r0 - str r1, [sp, 0xC] - b _08067408 - .align 2, 0 -_080673F8: .4byte gMonThrewItem1 -_080673FC: .4byte 0xffff00ff -_08067400: - ldr r1, _0806741C - ldr r0, [sp, 0xC] - ands r0, r1 - str r0, [sp, 0xC] -_08067408: - mov r1, r10 - ldrb r0, [r1] - cmp r0, 0x1 - beq _08067440 - cmp r0, 0x1 - bgt _08067420 - cmp r0, 0 - beq _08067426 - b _08067462 - .align 2, 0 -_0806741C: .4byte 0xffff00ff -_08067420: - cmp r0, 0x2 - beq _0806744C - b _08067462 -_08067426: - ldr r1, _08067438 - ldr r0, [sp, 0xC] - ands r0, r1 - ldr r1, _0806743C - ands r0, r1 - movs r1, 0xA0 - lsls r1, 12 - b _0806745E - .align 2, 0 -_08067438: .4byte 0xffffff00 -_0806743C: .4byte 0x0000ffff -_08067440: - ldr r1, _08067448 - ldr r0, [sp, 0xC] - ands r0, r1 - b _08067456 - .align 2, 0 -_08067448: .4byte 0xffffff00 -_0806744C: - ldr r1, _080674B4 - ldr r0, [sp, 0xC] - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 -_08067456: - ldr r1, _080674B8 - ands r0, r1 - movs r1, 0xC6 - lsls r1, 15 -_0806745E: - orrs r0, r1 - str r0, [sp, 0xC] -_08067462: - adds r0, r6, 0 - movs r1, 0xF - bl HasHeldItem - lsls r0, 24 - cmp r0, 0 - beq _08067486 - ldr r1, _080674B4 - ldr r0, [sp, 0xC] - ands r0, r1 - movs r1, 0x1 - orrs r0, r1 - ldr r1, _080674B8 - ands r0, r1 - movs r1, 0xC6 - lsls r1, 15 - orrs r0, r1 - str r0, [sp, 0xC] -_08067486: - add r0, sp, 0x4 - ldrb r0, [r0, 0x2] - bl GetItemCategory - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080674BC - add r4, sp, 0x8 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_8083904 - mov r0, r9 - str r0, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - ldr r2, [sp, 0x10] - adds r3, r4, 0 - bl sub_80475C4 - b _080674D0 - .align 2, 0 -_080674B4: .4byte 0xffffff00 -_080674B8: .4byte 0x0000ffff -_080674BC: - mov r0, r8 - adds r0, 0x46 - ldrb r3, [r0] - mov r1, r9 - str r1, [sp] - adds r0, r6, 0 - add r1, sp, 0x4 - ldr r2, [sp, 0x10] - bl sub_8047190 -_080674D0: - adds r0, r6, 0 - bl EntityIsValid - lsls r0, 24 - cmp r0, 0 - beq _080674F8 - mov r0, r8 - adds r0, 0x46 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_806CE68 - ldr r0, _08067508 - ldr r0, [r0] - ldr r1, _0806750C - adds r0, r1 - ldrb r1, [r0] - adds r0, r6, 0 - bl sub_807AB38 -_080674F8: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067508: .4byte gDungeon -_0806750C: .4byte 0x00003a08 - thumb_func_end sub_80671A0 - - thumb_func_start HandleTalkFieldAction -HandleTalkFieldAction: - push {r4,lr} - adds r4, r0, 0 - bl sub_806773C - adds r1, r0, 0 - movs r2, 0x1 - negs r2, r2 - adds r0, r4, 0 - bl sub_8067558 - pop {r4} - pop {r0} - bx r0 - thumb_func_end HandleTalkFieldAction - - thumb_func_start sub_806752C -sub_806752C: - push {r4,lr} - ldr r1, _08067550 - ldr r1, [r1] - ldrb r0, [r0, 0x4] - lsls r0, 2 - ldr r2, _08067554 - adds r1, r2 - adds r1, r0 - ldr r4, [r1] - bl GetLeader - adds r1, r4, 0 - movs r2, 0 - bl sub_8067558 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08067550: .4byte gDungeon -_08067554: .4byte 0x0001357c - thumb_func_end sub_806752C - - thumb_func_start sub_8067558 -sub_8067558: - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x12C - adds r6, r0, 0 - adds r5, r1, 0 - mov r9, r2 - ldr r0, [r6, 0x70] - mov r8, r0 - cmp r5, 0 - bne _0806757C - ldr r0, _08067578 - ldr r1, [r0] - movs r0, 0 - b _08067716 - .align 2, 0 -_08067578: .4byte gCannotTalk -_0806757C: - adds r0, r6, 0 - bl sub_8070BC0 - lsls r0, 24 - cmp r0, 0 - bne _08067594 - ldr r0, _08067590 - ldr r1, [r0] - movs r0, 0 - b _08067716 - .align 2, 0 -_08067590: .4byte gCannotTalk -_08067594: - adds r0, r6, 0 - adds r1, r5, 0 - movs r2, 0x1 - movs r3, 0 - bl GetTreatmentBetweenMonsters - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080675AA - b _0806771E -_080675AA: - adds r0, r5, 0 - adds r1, r6, 0 - movs r2, 0x1 - movs r3, 0 - bl GetTreatmentBetweenMonsters - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080675C0 - b _0806771E -_080675C0: - ldr r7, [r5, 0x70] - ldr r4, _08067608 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument_2 - adds r4, 0x50 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0x7 - bl SetMessageArgument_2 - bl sub_8084778 - adds r0, r6, 0 - adds r1, r5, 0 - bl TrySendImmobilizeSleepEndMsg - adds r0, r5, 0 - bl sub_8070BC0 - lsls r0, 24 - cmp r0, 0 - beq _08067600 - adds r0, r5, 0 - movs r1, 0x1 - bl CheckVariousStatuses2 - lsls r0, 24 - cmp r0, 0 - beq _08067610 -_08067600: - ldr r0, _0806760C - ldr r1, [r0] - movs r0, 0 - b _08067716 - .align 2, 0 -_08067608: .4byte gFormatBuffer_Monsters -_0806760C: .4byte gUnknown_80FE008 -_08067610: - adds r0, r6, 0x4 - adds r1, r5, 0x4 - bl GetDirectionTowardsPosition - adds r1, r0, 0 - adds r0, r6, 0 - bl sub_806CEFC - mov r1, r9 - cmp r1, 0 - blt _0806762E - adds r0, r5, 0 - bl sub_806CEFC - b _0806763C -_0806762E: - mov r0, r8 - adds r0, 0x46 - ldrb r1, [r0] - adds r1, 0x4 - adds r0, r5, 0 - bl sub_806CEFC -_0806763C: - ldrb r0, [r7, 0x8] - cmp r0, 0x1 - bne _08067648 - bl sub_807EF84 - b _0806772A -_08067648: - adds r0, r7, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08067694 - ldr r0, _08067668 - ldr r1, [r0] - ldr r2, _0806766C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08067674 - ldr r0, _08067670 - ldr r1, [r0] - movs r0, 0 - b _08067716 - .align 2, 0 -_08067668: .4byte gDungeon -_0806766C: .4byte 0x0000066e -_08067670: .4byte gUnknown_80FF674 -_08067674: - ldr r3, _08067688 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0806768C - adds r0, r5, 0 - bl sub_80845E0 - b _0806772A - .align 2, 0 -_08067688: .4byte 0x00000677 -_0806768C: - adds r0, r5, 0 - bl sub_8084448 - b _0806772A -_08067694: - movs r0, 0x4 - ldrsh r5, [r7, r0] - movs r6, 0 - adds r0, r7, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - bne _080676AA - movs r5, 0xD2 - lsls r5, 1 - b _080676CC -_080676AA: - cmp r0, 0x47 - bne _080676B8 - ldr r5, _080676B4 - b _080676CC - .align 2, 0 -_080676B4: .4byte 0x000001a5 -_080676B8: - cmp r0, 0x41 - bne _080676CC - ldr r0, _080676E8 - ldr r0, [r0] - ldr r1, _080676EC - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080676CC - movs r6, 0x1 -_080676CC: - movs r3, 0x10 - ldrsh r2, [r7, r3] - adds r0, r2, 0 - cmp r2, 0 - bge _080676D8 - adds r0, r2, 0x3 -_080676D8: - movs r3, 0xE - ldrsh r1, [r7, r3] - asrs r0, 2 - cmp r1, r0 - bgt _080676F0 - movs r2, 0x2 - b _08067708 - .align 2, 0 -_080676E8: .4byte gDungeon -_080676EC: .4byte 0x0000065c -_080676F0: - movs r0, 0xE - ldrsh r4, [r7, r0] - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 1 - movs r1, 0xA - bl __divsi3 - movs r2, 0 - cmp r4, r0 - bgt _08067708 - movs r2, 0x1 -_08067708: - mov r0, sp - adds r1, r5, 0 - adds r3, r6, 0 - bl sub_806A3D4 - movs r0, 0 - mov r1, sp -_08067716: - movs r2, 0x1 - bl DisplayDungeonMessage - b _0806772A -_0806771E: - ldr r0, _08067738 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl DisplayDungeonMessage -_0806772A: - add sp, 0x12C - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067738: .4byte gCannotTalk - thumb_func_end sub_8067558 - - thumb_func_start sub_806773C -sub_806773C: - push {r4,r5,lr} - adds r5, r0, 0 - bl sub_80696A8 - adds r4, r0, 0 - cmp r4, 0 - beq _08067760 - adds r0, r4, 0 - bl GetEntityType - cmp r0, 0x1 - bne _08067760 - ldr r0, [r5, 0x70] - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08067760 - adds r0, r4, 0 - b _08067762 -_08067760: - movs r0, 0 -_08067762: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806773C - - thumb_func_start sub_8067768 -sub_8067768: - push {r4,lr} - ldr r1, _0806778C - ldr r1, [r1] - ldrb r0, [r0, 0x4] - lsls r0, 2 - ldr r2, _08067790 - adds r1, r2 - adds r1, r0 - ldr r4, [r1] - bl GetLeader - adds r1, r4, 0 - movs r2, 0 - bl sub_8067794 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0806778C: .4byte gDungeon -_08067790: .4byte 0x0001357c - thumb_func_end sub_8067768 - - thumb_func_start sub_8067794 -sub_8067794: - push {r4-r7,lr} - sub sp, 0x40 - adds r7, r1, 0 - ldr r4, [r7, 0x70] - cmp r7, 0 - bne _080677B4 - ldr r0, _080677B0 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl DisplayDungeonMessage - b _0806786C - .align 2, 0 -_080677B0: .4byte gCannotFarewell -_080677B4: - ldr r0, _080677F0 - adds r1, r7, 0 - movs r2, 0 - bl SubstitutePlaceholderStringTags - ldr r0, _080677F4 - ldr r5, [r0] - ldr r0, _080677F8 - ldr r6, [r0] - ldrb r2, [r4, 0xA] - cmp r2, 0 - blt _08067834 - ldr r1, _080677FC - movs r0, 0x64 - muls r0, r2 - ldr r2, _08067800 - adds r0, r2 - ldr r1, [r1] - adds r4, r1, r0 - movs r1, 0xA - ldrsh r0, [r4, r1] - bl sub_806A564 - lsls r0, 24 - cmp r0, 0 - beq _0806780C - ldr r0, _08067804 - ldr r5, [r0] - ldr r0, _08067808 - b _08067832 - .align 2, 0 -_080677F0: .4byte gFormatBuffer_Monsters -_080677F4: .4byte gSayFarewellQ -_080677F8: .4byte gUnknown_80F913C -_080677FC: .4byte gRecruitedPokemonRef -_08067800: .4byte 0x00008df8 -_08067804: .4byte gUnknown_80F9114 -_08067808: .4byte gMonDisappointedAndLeft -_0806780C: - movs r2, 0xA - ldrsh r0, [r4, r2] - bl sub_806A58C - lsls r0, 24 - cmp r0, 0 - beq _08067834 - bl IsMakuhitaTrainingMaze - lsls r0, 24 - cmp r0, 0 - beq _0806782C - ldr r0, _08067828 - b _0806782E - .align 2, 0 -_08067828: .4byte gSendMonBackQ -_0806782C: - ldr r0, _08067874 -_0806782E: - ldr r5, [r0] - ldr r0, _08067878 -_08067832: - ldr r6, [r0] -_08067834: - movs r0, 0 - adds r1, r5, 0 - movs r2, 0 - bl DisplayDungeonYesNoMessage - cmp r0, 0x1 - bne _0806786C - ldr r4, _0806787C - mov r0, sp - adds r1, r4, 0 - movs r2, 0x40 - bl strncpy - ldr r1, _08067880 - adds r0, r7, 0 - movs r2, 0 - bl sub_8068FE0 - adds r0, r4, 0 - mov r1, sp - movs r2, 0x40 - bl strncpy - movs r0, 0 - adds r1, r6, 0 - movs r2, 0x1 - bl DisplayDungeonMessage -_0806786C: - add sp, 0x40 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067874: .4byte gSendMonBackWithItemQ -_08067878: .4byte gMonWentBack -_0806787C: .4byte gFormatBuffer_Monsters -_08067880: .4byte 0x0000021d - thumb_func_end sub_8067794 - - thumb_func_start HandleUseMovePlayerAction -HandleUseMovePlayerAction: - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - movs r6, 0 - b _0806789A -_0806788E: - ldr r1, _08067900 - adds r0, r4, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _080678C6 - adds r6, 0x1 -_0806789A: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8070828 - cmp r6, r0 - bge _080678C6 - ldr r4, [r5, 0x70] - adds r0, r4, 0 - adds r0, 0x50 - ldrb r1, [r0] - movs r0, 0 - str r0, [sp] - adds r0, r5, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_8055A00 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - beq _0806788E -_080678C6: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8057588 - bl sub_8044B28 - lsls r0, 24 - cmp r0, 0 - bne _080678F6 - adds r0, r5, 0 - bl EntityIsValid - lsls r0, 24 - cmp r0, 0 - beq _080678F0 - ldr r0, [r5, 0x70] - adds r0, 0x50 - ldrb r1, [r0] - adds r0, r5, 0 - bl sub_806A9B4 -_080678F0: - adds r0, r5, 0 - bl sub_806A1B0 -_080678F6: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08067900: .4byte 0x00000159 - thumb_func_end HandleUseMovePlayerAction - - thumb_func_start sub_8067904 -sub_8067904: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - adds r5, r0, 0 - lsls r1, 16 - lsrs r1, 16 - mov r9, r1 - ldr r6, [r5, 0x70] - ldr r1, _08067940 - movs r0, 0 - str r0, [r1] - add r0, sp, 0x8 - mov r1, r9 - bl InitPokemonMove - adds r0, r6, 0 - adds r0, 0xBC - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806794C - ldr r0, _08067944 - adds r1, r5, 0 - movs r2, 0 - bl SubstitutePlaceholderStringTags - ldr r0, _08067948 - b _08067962 - .align 2, 0 -_08067940: .4byte gUnknown_202F208 -_08067944: .4byte gFormatBuffer_Monsters -_08067948: .4byte gMonCringing -_0806794C: - adds r0, r6, 0 - adds r0, 0xAC - ldrb r0, [r0] - cmp r0, 0x4 - bne _08067974 - ldr r0, _0806796C - adds r1, r5, 0 - movs r2, 0 - bl SubstitutePlaceholderStringTags - ldr r0, _08067970 -_08067962: - ldr r1, [r0] - adds r0, r5, 0 - bl LogMessageByIdWithPopupCheckUser - b _08067A56 - .align 2, 0 -_0806796C: .4byte gFormatBuffer_Monsters -_08067970: .4byte gMonParalyzed -_08067974: - movs r0, 0xB0 - lsls r0, 1 - movs r1, 0 - mov r10, r1 - cmp r9, r0 - bne _08067984 - movs r2, 0x1 - mov r10, r2 -_08067984: - movs r0, 0 - mov r8, r0 - movs r7, 0 - add r4, sp, 0x8 - b _080679D2 -_0806798E: - movs r1, 0xBC - lsls r1, 1 - adds r0, r6, r1 - strh r7, [r0] - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - orrs r0, r7 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] - movs r0, 0xA - strb r0, [r4, 0x4] - str r7, [sp] - str r4, [sp, 0x4] - adds r0, r5, 0 - mov r1, r10 - movs r2, 0 - movs r3, 0 - bl TryUseChosenMove - adds r0, r5, 0 - bl EntityIsValid - lsls r0, 24 - cmp r0, 0 - beq _080679DE - ldr r2, _08067A68 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _080679DE - movs r0, 0x1 - add r8, r0 -_080679D2: - adds r0, r5, 0 - movs r1, 0x1 - bl sub_8070828 - cmp r8, r0 - blt _0806798E -_080679DE: - adds r0, r5, 0 - bl EntityIsValid - lsls r0, 24 - cmp r0, 0 - beq _08067A56 - movs r0, 0xB0 - lsls r0, 1 - cmp r9, r0 - bne _08067A04 - ldr r0, _08067A6C - ldr r0, [r0] - cmp r0, 0 - bne _08067A04 - ldr r0, _08067A70 - ldr r1, [r0] - adds r0, r5, 0 - bl LogMessageByIdWithPopupCheckUser -_08067A04: - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _08067A50 - movs r0, 0xB0 - lsls r0, 1 - cmp r9, r0 - beq _08067A50 - ldr r4, _08067A74 - adds r3, r6, 0 - adds r3, 0x46 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0] - ldrh r1, [r5, 0x4] - adds r0, r1 - lsls r0, 16 - lsrs r0, 16 - ldr r2, _08067A78 - ldr r1, [sp, 0x10] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x10] - ldrb r0, [r3] - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x2] - ldrh r2, [r5, 0x6] - adds r0, r2 - lsls r0, 16 - ldr r2, _08067A7C - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x10] - add r0, sp, 0x10 - movs r1, 0x1 - bl sub_807FE44 -_08067A50: - adds r0, r5, 0 - bl sub_8071DA4 -_08067A56: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067A68: .4byte 0x00000159 -_08067A6C: .4byte gUnknown_202F208 -_08067A70: .4byte gUnknown_80FC690 -_08067A74: .4byte gAdjacentTileOffsets -_08067A78: .4byte 0xffff0000 -_08067A7C: .4byte 0x0000ffff - thumb_func_end sub_8067904 - - thumb_func_start sub_8067A80 -sub_8067A80: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x6C - str r1, [sp, 0x68] - mov r8, r2 - mov r9, r3 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x64] - ldr r1, _08067AC8 - add r0, sp, 0x4 - movs r2, 0x60 - bl memcpy - ldr r1, _08067ACC - movs r0, 0 - str r0, [r1] - mov r10, r0 - cmp r10, r8 - blt _08067AB0 - b _08067ED8 -_08067AB0: - ldr r5, _08067AD0 - mov r4, r9 - mov r3, r8 -_08067AB6: - ldm r4!, {r2} - ldrh r1, [r2] - adds r0, r5, 0 - ands r0, r1 - strh r0, [r2] - subs r3, 0x1 - cmp r3, 0 - bne _08067AB6 - b _08067ED8 - .align 2, 0 -_08067AC8: .4byte gUnknown_8106DC8 -_08067ACC: .4byte gUnknown_202F30C -_08067AD0: .4byte 0x00007fff -_08067AD4: - movs r7, 0 - ldr r1, _08067B98 - movs r0, 0x1 - strb r0, [r1] - strb r7, [r1, 0x1] - movs r0, 0xE - strb r0, [r1, 0x2] - strb r7, [r1, 0x3] - add r0, sp, 0x4 - movs r1, 0x1 - bl sub_803ECB4 - ldr r5, _08067B9C - ldr r2, [r5] - ldr r0, [sp, 0x68] - str r0, [sp] - ldr r0, [sp, 0x64] - mov r1, r9 - mov r3, r8 - bl sub_8067F00 - ldr r4, _08067BA0 - mov r0, r8 - cmp r0, 0x8 - ble _08067B08 - movs r0, 0x8 -_08067B08: - strh r0, [r4, 0x1A] - mov r1, r10 - strh r1, [r4, 0x18] - movs r0, 0x8 - strh r0, [r4, 0x1C] - strh r7, [r4, 0x1E] - strh r7, [r4, 0x20] - strh r7, [r4, 0x4] - movs r0, 0x12 - strh r0, [r4, 0x6] - strh r7, [r4, 0xC] - strh r7, [r4, 0xE] - strh r7, [r4, 0x14] - str r7, [r4] - adds r0, r4, 0 - adds r0, 0x28 - bl sub_801317C - adds r0, r4, 0 - movs r1, 0 - bl sub_80137B0 - adds r6, r5, 0 -_08067B36: - ldr r0, _08067BA0 - bl AddMenuCursorSprite - movs r5, 0 - movs r7, 0 - ldr r0, [r6] - mov r2, r8 - subs r0, r2, r0 - cmp r0, 0x8 - ble _08067B50 - movs r5, 0x1 - bl sub_80684C4 -_08067B50: - ldr r0, [r6] - cmp r0, 0 - beq _08067B5C - movs r7, 0x1 - bl sub_8068344 -_08067B5C: - movs r0, 0 - ldr r1, _08067BA4 - bl sub_8014140 - adds r4, r0, 0 - movs r0, 0x37 - bl sub_803E46C - cmp r4, 0x2 - bne _08067BAC - cmp r5, 0 - beq _08067BAC - ldr r0, [r6] - mov r3, r8 - subs r0, r3, r0 - cmp r0, 0x8 - ble _08067BF0 - ldr r5, _08067BA8 - movs r4, 0x5 -_08067B82: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x37 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08067B82 - b _08067BEA - .align 2, 0 -_08067B98: .4byte gUnknown_202F308 -_08067B9C: .4byte gUnknown_202F30C -_08067BA0: .4byte gUnknown_202EE10 -_08067BA4: .4byte gUnknown_8106DA4 -_08067BA8: .4byte gIwramTextFunc1 -_08067BAC: - ldr r0, _08067BF8 - ldrh r1, [r0, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08067C0C - movs r0, 0x1 - bl sub_8083CE0 - ldr r1, _08067BFC - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0x7 - bne _08067C04 - ldr r0, [r6] - mov r3, r8 - subs r0, r3, r0 - cmp r0, 0x8 - ble _08067BF0 - ldr r5, _08067C00 - movs r4, 0x5 -_08067BD6: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x37 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08067BD6 -_08067BEA: - ldr r0, [r6] - adds r0, 0x1 - str r0, [r6] -_08067BF0: - movs r7, 0 - movs r0, 0x7 - mov r10, r0 - b _08067CF6 - .align 2, 0 -_08067BF8: .4byte gRealInputs -_08067BFC: .4byte gUnknown_202EE10 -_08067C00: .4byte gIwramTextFunc1 -_08067C04: - adds r0, r1, 0 - movs r1, 0 - bl sub_80136E0 -_08067C0C: - cmp r4, 0x1 - bne _08067C44 - cmp r7, 0 - beq _08067C44 - ldr r0, [r6] - cmp r0, 0 - beq _08067C38 - ldr r5, _08067C40 - movs r4, 0x5 -_08067C1E: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x37 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08067C1E - ldr r0, [r6] - subs r0, 0x1 - str r0, [r6] -_08067C38: - movs r7, 0 - movs r1, 0 - mov r10, r1 - b _08067CF6 - .align 2, 0 -_08067C40: .4byte gIwramTextFunc2 -_08067C44: - ldr r0, _08067C8C - ldrh r1, [r0, 0x4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08067CA0 - movs r0, 0x1 - bl sub_8083CE0 - ldr r1, _08067C90 - movs r2, 0x18 - ldrsh r0, [r1, r2] - cmp r0, 0 - bne _08067C98 - ldr r0, [r6] - cmp r0, 0 - beq _08067C84 - ldr r5, _08067C94 - movs r4, 0x5 -_08067C6A: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x37 - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08067C6A - ldr r0, [r6] - subs r0, 0x1 - str r0, [r6] -_08067C84: - movs r7, 0 - movs r3, 0 - mov r10, r3 - b _08067CF6 - .align 2, 0 -_08067C8C: .4byte gRealInputs -_08067C90: .4byte gUnknown_202EE10 -_08067C94: .4byte gIwramTextFunc2 -_08067C98: - adds r0, r1, 0 - movs r1, 0 - bl sub_8013744 -_08067CA0: - bl sub_80048C8 - lsls r0, 24 - cmp r0, 0 - beq _08067CAC - b _08067B36 -_08067CAC: - ldr r0, _08067CD4 - ldrh r1, [r0, 0x2] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _08067D40 - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08067CCC - ldr r2, _08067CD8 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - cmp r0, 0 - beq _08067CDC -_08067CCC: - bl sub_8083D08 - movs r7, 0x1 - b _08067CF6 - .align 2, 0 -_08067CD4: .4byte gRealInputs -_08067CD8: .4byte gUnknown_202EE10 -_08067CDC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08067CF0 - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - bne _08067CF0 - b _08067B36 -_08067CF0: - bl sub_8083D30 - movs r7, 0x2 -_08067CF6: - ldr r4, _08067D34 - adds r0, r4, 0 - bl AddMenuCursorSprite - movs r0, 0x37 - bl sub_803E46C - cmp r7, 0 - bne _08067D0A - b _08067AD4 -_08067D0A: - cmp r7, 0x2 - bne _08067D48 - movs r1, 0x18 - ldrsh r0, [r4, r1] - mov r10, r0 - ldr r0, _08067D38 - ldr r0, [r0] - ldr r2, [sp, 0x68] - cmp r0, r2 - bge _08067D20 - b _08067AD4 -_08067D20: - ldr r0, _08067D3C - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl DisplayDungeonYesNoMessage - cmp r0, 0x1 - bne _08067D32 - b _08067ED8 -_08067D32: - b _08067AD4 - .align 2, 0 -_08067D34: .4byte gUnknown_202EE10 -_08067D38: .4byte gUnknown_202F310 -_08067D3C: .4byte gUnknown_80FDFB8 -_08067D40: - bl sub_8083D1C - movs r7, 0x3 - b _08067CF6 -_08067D48: - cmp r7, 0x3 - bne _08067D64 - movs r0, 0x18 - ldrsh r3, [r4, r0] - mov r10, r3 - ldr r0, _08067D60 - ldr r0, [r0] - add r0, r10 - lsls r0, 2 - add r0, r9 - b _08067ED0 - .align 2, 0 -_08067D60: .4byte gUnknown_202F30C -_08067D64: - movs r2, 0x18 - ldrsh r1, [r4, r2] - mov r10, r1 - ldr r0, _08067DAC - ldr r0, [r0] - adds r4, r0, r1 - ldr r1, _08067DB0 - movs r0, 0 - str r0, [r1] - movs r0, 0x29 - movs r1, 0 - bl sub_8044F5C - movs r0, 0x2A - movs r1, 0 - bl sub_8044F5C - movs r0, 0x40 - movs r1, 0 - bl sub_8044F5C - lsls r0, r4, 2 - add r0, r9 - ldr r0, [r0] - ldrh r0, [r0] - movs r3, 0x80 - lsls r3, 8 - adds r1, r3, 0 - ands r0, r1 - cmp r0, 0 - beq _08067DBC - movs r0, 0x29 - bl sub_8044FF0 - b _08067DC2 - .align 2, 0 -_08067DAC: .4byte gUnknown_202F30C -_08067DB0: .4byte gUnknown_202EE6C -_08067DB4: - bl sub_8083D08 - movs r7, 0x1 - b _08067E6E -_08067DBC: - movs r0, 0x2A - bl sub_8044FF0 -_08067DC2: - lsls r0, r4, 2 - mov r2, r9 - adds r1, r0, r2 - ldr r2, [r1] - ldrb r1, [r2, 0x2] - adds r6, r0, 0 - cmp r1, 0 - bne _08067DDC - ldrb r1, [r2, 0x4] - cmp r1, 0x40 - beq _08067DDC - cmp r1, 0x41 - bne _08067DE2 -_08067DDC: - movs r0, 0x29 - bl sub_8044FF0 -_08067DE2: - bl sub_8045064 - add r0, sp, 0x4 - movs r1, 0x15 - bl sub_805FC30 - ldr r4, _08067EA0 - ldr r5, _08067EA4 - adds r7, r4, 0 - adds r7, 0x2A -_08067DF6: - adds r0, r4, 0 - bl AddMenuCursorSprite - movs r0, 0x37 - bl sub_803E46C - ldrh r1, [r5, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08067E1A - movs r0, 0x1 - bl sub_8083CE0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_80136E0 -_08067E1A: - ldrh r1, [r5, 0x4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08067E32 - movs r0, 0x1 - bl sub_8083CE0 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8013744 -_08067E32: - ldrh r1, [r5, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08067E46 - adds r0, r4, 0 - adds r0, 0x29 - ldrb r0, [r0] - cmp r0, 0 - beq _08067E58 -_08067E46: - movs r3, 0x18 - ldrsh r0, [r4, r3] - bl sub_8044F3C - lsls r0, 24 - cmp r0, 0 - bne _08067DB4 - bl sub_8083D30 -_08067E58: - ldrh r1, [r5, 0x2] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08067E68 - ldrb r0, [r7] - cmp r0, 0 - beq _08067DF6 -_08067E68: - bl sub_8083D30 - movs r7, 0 -_08067E6E: - ldr r4, _08067EA0 - adds r0, r4, 0 - bl AddMenuCursorSprite - movs r0, 0x37 - bl sub_803E46C - cmp r7, 0 - bne _08067E82 - b _08067AD4 -_08067E82: - movs r1, 0x18 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08067EA8 - mov r2, r9 - adds r0, r6, r2 - ldr r1, [r0] - ldrh r2, [r1] - movs r3, 0x80 - lsls r3, 8 - adds r0, r3, 0 - orrs r0, r2 - strh r0, [r1] - b _08067EBC - .align 2, 0 -_08067EA0: .4byte gUnknown_202EE10 -_08067EA4: .4byte gRealInputs -_08067EA8: - cmp r0, 0x1 - bne _08067ECC - mov r1, r9 - adds r0, r6, r1 - ldr r2, [r0] - ldrh r0, [r2] - ldr r3, _08067EC8 - adds r1, r3, 0 - ands r0, r1 - strh r0, [r2] -_08067EBC: - mov r0, r8 - mov r1, r9 - bl sub_8068310 - b _08067AD4 - .align 2, 0 -_08067EC8: .4byte 0x00007fff -_08067ECC: - mov r1, r9 - adds r0, r6, r1 -_08067ED0: - ldr r0, [r0] - bl sub_806806C - b _08067AD4 -_08067ED8: - mov r0, r8 - mov r1, r9 - bl sub_8068310 - ldr r0, _08067EFC - ldr r0, [r0] - ldr r2, [sp, 0x68] - cmp r0, r2 - bge _08067EEC - b _08067AD4 -_08067EEC: - add sp, 0x6C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08067EFC: .4byte gUnknown_202F310 - thumb_func_end sub_8067A80 - - thumb_func_start sub_8067F00 -sub_8067F00: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - adds r4, r0, 0 - mov r9, r1 - str r3, [sp, 0x4] - lsls r4, 24 - lsrs r4, 24 - subs r7, r2, 0x1 - movs r0, 0x16 - mov r8, r0 - movs r0, 0 - bl sub_80073B8 - ldr r0, _08067F44 - adds r1, r4, 0 - movs r2, 0 - bl WriteFriendAreaName - ldr r2, _08067F48 - movs r0, 0 - str r0, [sp] - movs r0, 0xC - movs r1, 0 - movs r3, 0 - bl PrintFormattedStringOnWindow - movs r1, 0 - mov r10, r1 - b _08067FF6 - .align 2, 0 -_08067F44: .4byte gFormatBuffer_Monsters -_08067F48: .4byte gUnknown_8106E28 -_08067F4C: - ldr r4, _08067F8C - lsls r6, r7, 2 - mov r0, r9 - adds r5, r6, r0 - ldr r1, [r5] - adds r0, r4, 0 - movs r2, 0 - bl PrintColoredPokeNameToBuffer - adds r4, 0x50 - ldr r0, [r5] - movs r2, 0x8 - ldrsh r1, [r0, r2] - adds r0, r4, 0 - bl sub_808D930 - ldr r1, _08067F90 - adds r0, r7, 0x1 - str r0, [r1] - ldr r0, [r5] - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _08067F9C - ldr r0, _08067F94 - ldr r1, _08067F98 - bl strcpy - b _08067FA4 - .align 2, 0 -_08067F8C: .4byte gFormatBuffer_Monsters -_08067F90: .4byte gFormatArgs -_08067F94: .4byte gFormatBuffer_Items -_08067F98: .4byte gUnknown_8106E2C -_08067F9C: - ldr r0, _08067FCC - ldr r1, _08067FD0 - bl strcpy -_08067FA4: - mov r1, r9 - adds r0, r6, r1 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 7 - ands r0, r1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0 - beq _08067FD8 - ldr r2, _08067FD4 - movs r0, 0 - str r0, [sp] - movs r0, 0x7 - mov r1, r8 - movs r3, 0 - bl PrintFormattedStringOnWindow - b _08067FE6 - .align 2, 0 -_08067FCC: .4byte gFormatBuffer_Items -_08067FD0: .4byte gUnknown_8106E30 -_08067FD4: .4byte gUnknown_8106E34 -_08067FD8: - ldr r2, _08068028 - str r0, [sp] - movs r0, 0x7 - mov r1, r8 - movs r3, 0 - bl PrintFormattedStringOnWindow -_08067FE6: - movs r2, 0x1 - add r10, r2 - movs r0, 0xC - add r8, r0 - adds r7, 0x1 - mov r1, r10 - cmp r1, 0x9 - bgt _08068000 -_08067FF6: - cmp r7, 0 - blt _08067FE6 - ldr r2, [sp, 0x4] - cmp r7, r2 - blt _08067F4C -_08068000: - movs r0, 0 - bl sub_80073E0 - movs r0, 0x1 - bl sub_80073B8 - ldr r0, _0806802C - ldr r0, [r0] - ldr r1, [sp, 0x28] - cmp r0, r1 - blt _08068034 - ldr r2, _08068030 - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r1, 0x2 - movs r3, 0x1 - bl PrintFormattedStringOnWindow - b _0806804C - .align 2, 0 -_08068028: .4byte gUnknown_8106E48 -_0806802C: .4byte gUnknown_202F310 -_08068030: .4byte gUnknown_8106E5C -_08068034: - ldr r1, _08068064 - ldr r2, [sp, 0x28] - subs r0, r2, r0 - str r0, [r1] - ldr r2, _08068068 - movs r0, 0 - str r0, [sp] - movs r0, 0x8 - movs r1, 0x2 - movs r3, 0x1 - bl PrintFormattedStringOnWindow -_0806804C: - movs r0, 0x1 - bl sub_80073E0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08068064: .4byte gFormatArgs -_08068068: .4byte gUnknown_8106E6C - thumb_func_end sub_8067F00 - - thumb_func_start sub_806806C -sub_806806C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x110 - str r0, [sp, 0x108] - add r4, sp, 0x98 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x60 - bl memset - movs r0, 0x6 - str r0, [r4, 0x4] - movs r1, 0x2 - strh r1, [r4, 0x8] - strh r1, [r4, 0xA] - movs r2, 0x12 - strh r2, [r4, 0xC] - movs r0, 0xE - strh r0, [r4, 0xE] - strh r2, [r4, 0x10] - strh r1, [r4, 0x12] - ldr r0, _080681B4 - str r0, [r4, 0x14] - movs r0, 0x3 - str r0, [r4, 0x1C] - str r0, [r4, 0x34] - str r0, [r4, 0x4C] - movs r7, 0 - add r1, sp, 0x44 - strh r7, [r1] - mov r0, sp - adds r0, 0x5A - strh r7, [r0] - ldr r0, _080681B8 - strh r7, [r0, 0x18] - mov r9, r1 - adds r1, 0xB4 - str r1, [sp, 0x10C] - add r2, sp, 0x68 - mov r10, r2 - adds r6, r0, 0 -_080680C4: - movs r3, 0 - mov r8, r3 - add r1, sp, 0xF8 - ldr r0, _080681BC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - ldr r1, _080681B4 - movs r2, 0x4 - strb r2, [r1] - strb r7, [r1, 0x1] - movs r0, 0xA - strb r0, [r1, 0x2] - mov r4, r8 - strb r4, [r1, 0x3] - strh r7, [r6, 0x1E] - strh r2, [r6, 0x20] - mov r0, r8 - strh r0, [r6, 0x1A] - strh r0, [r6, 0x18] - strh r0, [r6, 0x1C] - strh r0, [r6, 0x4] - movs r0, 0x10 - strh r0, [r6, 0x6] - mov r1, r8 - strh r1, [r6, 0x14] - mov r2, r8 - str r2, [r6] - adds r0, r6, 0 - adds r0, 0x28 - bl sub_801317C - add r0, sp, 0x98 - movs r1, 0x1 - bl sub_803ECB4 - ldr r0, _080681C0 - ldr r0, [r0] - ldr r3, _080681C4 - adds r0, r3 - ldrb r2, [r0] - add r0, sp, 0x4 - ldr r1, [sp, 0x108] - bl sub_808FF20 - lsls r4, r7, 2 - mov r0, sp - adds r0, r4 - adds r0, 0xF8 - ldr r0, [r0] - mov r1, r8 - str r1, [sp] - adds r1, r7, 0 - add r2, sp, 0x4 - mov r3, r10 - bl CreatePokemonInfoTabScreen - ldr r1, _080681C8 - movs r2, 0 - ldrsh r0, [r1, r2] - adds r0, 0xF - lsls r0, 3 - strh r0, [r6, 0xC] - movs r3, 0x2 - ldrsh r0, [r1, r3] - adds r0, 0x1 - lsls r0, 3 - subs r0, 0x2 - strh r0, [r6, 0xE] -_08068150: - ldr r0, _080681B8 - bl AddMenuCursorSprite - ldr r1, [sp, 0x10C] - adds r0, r1, r4 - ldr r0, [r0] - cmp r0, 0x4 - bne _0806817A - mov r2, r10 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0806816C - bl sub_80684C4 -_0806816C: - mov r3, r9 - movs r1, 0 - ldrsh r0, [r3, r1] - cmp r0, 0 - beq _0806817A - bl sub_8068344 -_0806817A: - movs r0, 0 - ldr r1, _080681CC - bl sub_8014140 - adds r5, r0, 0 - movs r0, 0x1C - bl sub_803E46C - ldr r3, _080681D0 - ldrh r1, [r3, 0x2] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080681A2 - ldr r2, _080681B8 - adds r0, r2, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _080681D4 -_080681A2: - movs r0, 0 - bl sub_8083CE0 - adds r7, 0x1 - cmp r7, 0x4 - beq _080681B0 - b _080682E8 -_080681B0: - movs r7, 0 - b _080682E8 - .align 2, 0 -_080681B4: .4byte gUnknown_202F308 -_080681B8: .4byte gUnknown_202EE10 -_080681BC: .4byte gUnknown_8106E80 -_080681C0: .4byte gDungeon -_080681C4: .4byte 0x0000065a -_080681C8: .4byte gUnknown_2027370 -_080681CC: .4byte gUnknown_8106DA4 -_080681D0: .4byte gRealInputs -_080681D4: - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - bne _080681E6 - adds r0, r2, 0 - adds r0, 0x2C - ldrb r0, [r0] - cmp r0, 0 - beq _080681FA -_080681E6: - movs r0, 0 - bl sub_8083CE0 - subs r7, 0x1 - movs r0, 0x1 - negs r0, r0 - cmp r7, r0 - bne _080682E8 - movs r7, 0x3 - b _080682E8 -_080681FA: - ldr r2, [sp, 0x10C] - adds r0, r2, r4 - ldr r0, [r0] - cmp r0, 0x4 - bne _08068294 - ldrh r1, [r3, 0x4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08068212 - cmp r5, 0x2 - bne _08068248 -_08068212: - mov r3, r10 - ldrb r0, [r3, 0x8] - cmp r0, 0 - beq _08068248 - movs r0, 0 - bl sub_8083CE0 - ldr r5, _08068244 - movs r4, 0x5 -_08068224: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x1C - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _08068224 - mov r4, r9 - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080682E8 - .align 2, 0 -_08068244: .4byte gIwramTextFunc1 -_08068248: - ldr r0, _0806828C - ldrh r1, [r0, 0x4] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08068258 - cmp r5, 0x1 - bne _08068294 -_08068258: - mov r1, r9 - movs r2, 0 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08068294 - movs r0, 0 - bl sub_8083CE0 - ldr r5, _08068290 - movs r4, 0x5 -_0806826C: - ldr r1, [r5] - movs r0, 0 - bl _call_via_r1 - movs r0, 0x1C - bl sub_803E46C - subs r4, 0x1 - cmp r4, 0 - bge _0806826C - mov r3, r9 - ldrh r0, [r3] - subs r0, 0x1 - strh r0, [r3] - b _080682E8 - .align 2, 0 -_0806828C: .4byte gRealInputs -_08068290: .4byte gIwramTextFunc2 -_08068294: - bl sub_80048C8 - lsls r0, 24 - cmp r0, 0 - beq _080682A0 - b _08068150 -_080682A0: - ldr r0, _080682C4 - ldrh r1, [r0, 0x2] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _080682B8 - ldr r2, _080682C8 - adds r0, r2, 0 - adds r0, 0x29 - ldrb r0, [r0] - cmp r0, 0 - beq _080682CC -_080682B8: - bl sub_8083D08 - movs r4, 0x1 - mov r8, r4 - b _080682E8 - .align 2, 0 -_080682C4: .4byte gRealInputs -_080682C8: .4byte gUnknown_202EE10 -_080682CC: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080682E0 - adds r0, r2, 0 - adds r0, 0x2A - ldrb r0, [r0] - cmp r0, 0 - bne _080682E0 - b _08068150 -_080682E0: - bl sub_8083D30 - movs r0, 0x1 - mov r8, r0 -_080682E8: - movs r0, 0x37 - bl sub_803E46C - mov r1, r8 - cmp r1, 0 - bne _080682F6 - b _080680C4 -_080682F6: - movs r0, 0 - movs r1, 0 - bl sub_803EAF0 - add sp, 0x110 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806806C - - .align 2,0 diff --git a/data/data_8106A4C.s b/data/data_8106A4C.s index ea2317b5d..002a4b90d 100644 --- a/data/data_8106A4C.s +++ b/data/data_8106A4C.s @@ -257,101 +257,3 @@ gUnknown_8106D8C: @ 8106D8C @ ??? .align 2,0 .string "pksdir0\0" - -@ sub_8067A80 - sub_806806C - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_8106DA4 -gUnknown_8106DA4: @ 8106DA4 - .byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00, 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_8106DC8 -gUnknown_8106DC8: @ 8106DC8 - .byte 0x00, 0x00, 0x00, 0x00, 0x06, 0x00, 0x00, 0x00, 0x02, 0x00, 0x02, 0x00, 0x11, 0x00, 0x0e, 0x00, 0x12, 0x00, 0x02, 0x00, 0x08, 0xf3, 0x02, 0x02, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00 - .byte 0x15, 0x00, 0x04, 0x00, 0x07, 0x00, 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global gUnknown_8106E28 -gUnknown_8106E28: @ 8106E28 - .string "{POKEMON_0}\0" - .align 2,0 - - .global gUnknown_8106E2C -gUnknown_8106E2C: @ 8106E2C - .byte 0x87, 0x42, 0x00, 0x00 - - .global gUnknown_8106E30 -gUnknown_8106E30: @ 8106E30 - .byte 0x87, 0x40, 0x00, 0x00 - - .global gUnknown_8106E34 -gUnknown_8106E34: @ 8106E34 - .string "{MOVE_ITEM_0}{color CYAN}$v02:{POKEMON_0}{reset}\0" - .align 2,0 - - .global gUnknown_8106E48 -gUnknown_8106E48: @ 8106E48 - .string "{MOVE_ITEM_0}{color YELLOW}$v02:{POKEMON_0}{reset}\0" - .align 2,0 - - .global gUnknown_8106E5C -gUnknown_8106E5C: @ 8106E5C - .string "Press {B_BUTTON}\n" - .string "if OK.\0" - .align 2,0 - - .global gUnknown_8106E6C -gUnknown_8106E6C: @ 8106E6C - .string "Say bye to\n" - .string "{VALUE_0} more\0" - .align 2,0 - - .global gUnknown_8106E80 -gUnknown_8106E80: @ 8106E80 - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x05, 0x00, 0x00, 0x00 - -@ sub_8068614 - sub_806A3D4 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_8106E98 -gUnknown_8106E98: @ 8106E98 - .string "palet\0" - .align 2,0 - - .global gUnknown_8106EA0 -gUnknown_8106EA0: @ 8106EA0 - .string "ax%03d\0" - .align 2,0 - - .global gUnknown_8106EA8 -gUnknown_8106EA8: @ 8106EA8 - .string "talkp%d\0" - .align 2,0 - - .global gUnknown_8106EB0 -gUnknown_8106EB0: @ 8106EB0 - .string "talk%d\0" - -@ ??? - .align 2,0 - .string "pksdir0\0" - -@ sub_806C51C - sub_806E100 - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_8106EC8 -gUnknown_8106EC8: @ 8106EC8 -.byte 0x00, 0x01, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 -.byte 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05 -.byte 0x06, 0x07, 0x07, 0x07, 0x07, 0x0b, 0x07 - - diff --git a/data/data_8106A4C_2.s b/data/data_8106A4C_2.s new file mode 100644 index 000000000..c7152ee35 --- /dev/null +++ b/data/data_8106A4C_2.s @@ -0,0 +1,40 @@ + .section .rodata + +.align 2,0 +@ sub_8068614 - sub_806A3D4 + .string "pksdir0\0" + .align 2,0 + + .global gUnknown_8106E98 +gUnknown_8106E98: @ 8106E98 + .string "palet\0" + .align 2,0 + + .global gUnknown_8106EA0 +gUnknown_8106EA0: @ 8106EA0 + .string "ax%03d\0" + .align 2,0 + + .global gUnknown_8106EA8 +gUnknown_8106EA8: @ 8106EA8 + .string "talkp%d\0" + .align 2,0 + + .global gUnknown_8106EB0 +gUnknown_8106EB0: @ 8106EB0 + .string "talk%d\0" + +@ ??? + .align 2,0 + .string "pksdir0\0" + +@ sub_806C51C - sub_806E100 + .align 2,0 + .string "pksdir0\0" + .align 2,0 + + .global gUnknown_8106EC8 +gUnknown_8106EC8: @ 8106EC8 +.byte 0x00, 0x01, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 +.byte 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05 +.byte 0x06, 0x07, 0x07, 0x07, 0x07, 0x0b, 0x07 diff --git a/include/code_801B3C0.h b/include/code_801B3C0.h index 33db72e14..43612b262 100644 --- a/include/code_801B3C0.h +++ b/include/code_801B3C0.h @@ -17,7 +17,7 @@ typedef struct unkStruct_203B230 u8 fill18[0x20 - 0x18]; u32 unk20; u32 unk24; - UnkTextStruct2 unk28[4]; + UnkTextStruct3 unk28; MenuInputStructSub unk88; } unkStruct_203B230; @@ -25,4 +25,4 @@ bool8 sub_801B3C0(Item *item); u32 sub_801B410(void); void sub_801B450(void); -#endif // GUARD_CODE_801B3C0_H \ No newline at end of file +#endif // GUARD_CODE_801B3C0_H diff --git a/include/code_801B60C.h b/include/code_801B60C.h index 7b7073892..1a1b52bc7 100644 --- a/include/code_801B60C.h +++ b/include/code_801B60C.h @@ -20,11 +20,11 @@ typedef struct unkStruct_203B234 MenuStruct unk78; /* 0xC8 */ u32 menuAction; MenuItem unkCC[5]; - UnkTextStruct2 unkF4[4]; + UnkTextStruct3 unkF4; } unkStruct_203B234; bool8 sub_801B60C(u32, u8 id, u8 quantity); u32 sub_801B6AC(void); void sub_801B72C(void); -#endif // GUARD_CODE_801B60C_H \ No newline at end of file +#endif // GUARD_CODE_801B60C_H diff --git a/include/code_801C8C4.h b/include/code_801C8C4.h index d9dabca81..94500c8be 100644 --- a/include/code_801C8C4.h +++ b/include/code_801C8C4.h @@ -15,7 +15,7 @@ struct unkStruct_203B244 /* 0x4B4 */ struct_Sub80095E4_2 unk4B4; }; -bool8 sub_801C8C4(s32, s32, UnkTextStruct2_sub *, u32); +bool8 sub_801C8C4(s32, s32, DungeonPos *, u32); u32 sub_801CA08(bool8); u8 sub_801CB24(void); void sub_801CB5C(bool8); diff --git a/include/code_801D014.h b/include/code_801D014.h index 63168f5b7..878fde93a 100644 --- a/include/code_801D014.h +++ b/include/code_801D014.h @@ -21,7 +21,7 @@ struct unk_203B250 MenuStruct unk18; MenuItem unk68[8]; u16 unkA8[8]; - UnkTextStruct2 unkB8[4]; + UnkTextStruct3 unkB8; }; // size: 0x8 diff --git a/include/code_801EE10.h b/include/code_801EE10.h index 71c95f515..2c5bd155b 100644 --- a/include/code_801EE10.h +++ b/include/code_801EE10.h @@ -21,7 +21,7 @@ typedef struct unkStruct_203B270 /* 0x1C */ MenuInputStruct input; u32 unk50; u32 unk54; - UnkTextStruct2 unk58[4]; + UnkTextStruct3 unk58; const u8 *text; } unkStruct_203B270; diff --git a/include/code_80227B8.h b/include/code_80227B8.h index a7bcadfff..8cba3a418 100644 --- a/include/code_80227B8.h +++ b/include/code_80227B8.h @@ -26,11 +26,11 @@ typedef struct unkStruct_203B294 /* 0xF4 */ u32 menuAction; MenuItem unkF8[8]; u16 unk138[8]; - UnkTextStruct2 unk148[4]; + UnkTextStruct3 unk148; } unkStruct_203B294; bool8 sub_80227B8(PokemonStruct1 *pkmn); u32 sub_8022860(void); void sub_8022908(void); -#endif // GUARD_CODE_80227B8_H \ No newline at end of file +#endif // GUARD_CODE_80227B8_H diff --git a/include/code_8023144.h b/include/code_8023144.h index 6ede851d4..62b93bb71 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -19,7 +19,7 @@ typedef struct unkStruct_3001B5C /* 0x35C */ struct_Sub80095E4_2 s35C; } unkStruct_3001B5C; -bool8 sub_8023144(s32, s32 index, UnkTextStruct2_sub *sub, u32); +bool8 sub_8023144(s32, s32 index, DungeonPos *sub, u32); u32 sub_8023278(bool8); s16 sub_802331C(void); void sub_8023354(bool8 cursorSprite); diff --git a/include/code_8024458.h b/include/code_8024458.h index f9f50961d..8d69e6492 100644 --- a/include/code_8024458.h +++ b/include/code_8024458.h @@ -17,7 +17,7 @@ struct unkStruct_203B2AC u8 fillB4[0xE0 - 0xB4]; u32 unkE0; UnkTextStruct2 *unkE4; - UnkTextStruct2 unkE8[4]; + UnkTextStruct3 unkE8; UnkTextStruct2_sub2 unk148; }; diff --git a/include/code_802DB28.h b/include/code_802DB28.h index 572a54287..07cc7283b 100644 --- a/include/code_802DB28.h +++ b/include/code_802DB28.h @@ -15,7 +15,7 @@ struct unkStruct_203B2FC /* 0x30 */ u8 jobSlotIndex; /* 0x34 */ WonderMail *jobInfo; /* 0x38 */ struct MonPortraitMsg monPortrait; - UnkTextStruct2 unk48[4]; + UnkTextStruct3 unk48; }; bool8 sub_802DB28(u8 jobSlotIndex, u8 dungeon); diff --git a/include/code_802DE84.h b/include/code_802DE84.h index cd553c082..a16d463f9 100644 --- a/include/code_802DE84.h +++ b/include/code_802DE84.h @@ -12,7 +12,7 @@ struct unkStruct_203B300 /* 0xC */ unkStruct_802C39C *mail; u32 unk10; UnkTextStruct2 *unk14; - UnkTextStruct2 unk18[4]; + UnkTextStruct3 unk18; u8 unk78[4]; }; @@ -20,4 +20,4 @@ bool8 sub_802DE84(unkStruct_802C39C *mail); u32 sub_802DEE0(void); void sub_802DF24(void); -#endif // GUARD_CODE_802DE84_H \ No newline at end of file +#endif // GUARD_CODE_802DE84_H diff --git a/include/credits1.h b/include/credits1.h index 83217ad18..14c91fa68 100644 --- a/include/credits1.h +++ b/include/credits1.h @@ -6,7 +6,7 @@ // size: 0x6C typedef struct Credits1Work { - UnkTextStruct2 unk0[4]; + UnkTextStruct3 unk0; s32 unk60; s32 unk64; /* 0x68 */ s32 creditsCategoryIndex; @@ -26,4 +26,4 @@ bool8 DrawCredits(s32 creditsCategoryIndex, s32); s32 sub_8035574(void); void sub_803565C(void); -#endif // GUARD_CREDITS1_H \ No newline at end of file +#endif // GUARD_CREDITS1_H diff --git a/include/debug_menu1.h b/include/debug_menu1.h index 708296549..7417ac18b 100644 --- a/include/debug_menu1.h +++ b/include/debug_menu1.h @@ -8,7 +8,7 @@ struct DebugMenu { MenuStruct unk0[4]; - UnkTextStruct2 unk140[4]; + UnkTextStruct3 unk140; u32 fill1A0; }; @@ -16,4 +16,4 @@ void CreateDebugMenu(void); void DeleteDebugMenu(void); u32 UpdateDebugMenu(void); -#endif // GUARD_DEBUG_MENU1_H \ No newline at end of file +#endif // GUARD_DEBUG_MENU1_H diff --git a/include/debug_menu2.h b/include/debug_menu2.h index 40a0baa3f..b56610cbe 100644 --- a/include/debug_menu2.h +++ b/include/debug_menu2.h @@ -14,7 +14,7 @@ typedef struct unkStruct_203B3F0 MenuStruct unk4C; unkStructFor8013AA0 unk9C; u8 fillCC[0xD8 - 0xCC]; - UnkTextStruct2 unkD8[4]; + UnkTextStruct3 unkD8; } unkStruct_203B3F0; -#endif // GUARD_DEBUG_MENU2_H \ No newline at end of file +#endif // GUARD_DEBUG_MENU2_H diff --git a/include/debug_menu3.h b/include/debug_menu3.h index cf61cfdd8..3c64aec0e 100644 --- a/include/debug_menu3.h +++ b/include/debug_menu3.h @@ -12,7 +12,7 @@ typedef struct unkStruct_203B3F4 /* 0x8 */ u32 menuAction; /* 0xC */ MenuItem menuItems[8]; MenuStruct unk4C; - UnkTextStruct2 unk9C[4]; + UnkTextStruct3 unk9C; } unkStruct_203B3F4; -#endif // GUARD_DEBUG_MENU3_H \ No newline at end of file +#endif // GUARD_DEBUG_MENU3_H diff --git a/include/debug_menu4.h b/include/debug_menu4.h index c7925fc54..25b605659 100644 --- a/include/debug_menu4.h +++ b/include/debug_menu4.h @@ -17,7 +17,7 @@ typedef struct unkStruct_203B3F8 unkStructFor8013AA0 unk60; MenuItem unk90[8]; u16 unkD0[8]; - UnkTextStruct2 unkE0[4]; + UnkTextStruct3 unkE0; } unkStruct_203B3F8; -#endif // GUARD_DEBUG_MENU4_H \ No newline at end of file +#endif // GUARD_DEBUG_MENU4_H diff --git a/include/dungeon_move.h b/include/dungeon_move.h new file mode 100644 index 000000000..ccb15e650 --- /dev/null +++ b/include/dungeon_move.h @@ -0,0 +1,9 @@ +#ifndef GUARD_DUNGEON_MOVE_H +#define GUARD_DUNGEON_MOVE_H + +#include "structs/str_pokemon.h" +#include "structs/str_moves.h" + +bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, bool32 isLinkedMove, struct Move *move); + +#endif diff --git a/include/felicity_bank.h b/include/felicity_bank.h index 42c65e138..a2ad63ba1 100644 --- a/include/felicity_bank.h +++ b/include/felicity_bank.h @@ -22,7 +22,7 @@ typedef struct FelicityBankWork unkStructFor8013AA0 unk64; /* 0x94 */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unkA8[4]; + UnkTextStruct3 unkA8; } FelicityBankWork; bool8 CreateFelicityBank(s32 mode); diff --git a/include/friend_area_action_menu.h b/include/friend_area_action_menu.h index 911f8e25e..7cdf7c193 100644 --- a/include/friend_area_action_menu.h +++ b/include/friend_area_action_menu.h @@ -65,11 +65,11 @@ struct unkStruct_203B2BC MenuItem menuItems[4]; u8 fill120[0x16C - 0x13C]; u16 unk16C[10]; - UnkTextStruct2 unk180[4]; + UnkTextStruct3 unk180; }; u32 sub_8027074(void); u32 sub_80270A4(void); void sub_8027168(void); -#endif // GUARD_FRIEND_AREA_ACTION_MENU_H \ No newline at end of file +#endif // GUARD_FRIEND_AREA_ACTION_MENU_H diff --git a/include/friend_list_menu.h b/include/friend_list_menu.h index eaf2858fb..eb5485477 100644 --- a/include/friend_list_menu.h +++ b/include/friend_list_menu.h @@ -31,7 +31,7 @@ typedef struct unkStruct_203B2B4 MenuStruct unk78; MenuItem unkC8[8]; u16 unk108[8]; - UnkTextStruct2 unk118[4]; + UnkTextStruct3 unk118; } unkStruct_203B2B4; bool8 CreateFriendListMenu(s32 param_1); diff --git a/include/friend_rescue.h b/include/friend_rescue.h index 2db0ba41f..78f4f4c65 100644 --- a/include/friend_rescue.h +++ b/include/friend_rescue.h @@ -23,8 +23,8 @@ typedef struct WonderMailStruct_203B33C unkStruct_203B480 unk1E8; u8 unk218; MenuStruct unk21C[4]; - UnkTextStruct2 unk35C[4]; - UnkTextStruct2 unk3BC[4]; + UnkTextStruct3 unk35C; + UnkTextStruct3 unk3BC; /* 0x41C */ Item item; u32 unk420; // Is this supposed to be a File like 203B2C4? u8 unk424[0x100]; diff --git a/include/global.h b/include/global.h index 6674e8d79..f6fb1b249 100644 --- a/include/global.h +++ b/include/global.h @@ -31,6 +31,17 @@ static inline s16 Self_s16(s16 a) return a; } +// Needed to match a couple of functions. +static inline void InlineStrcpy(u8 *dst, const u8 *src) +{ + strcpy(dst, src); +} + +static inline void InlineStrncpy(u8 *dst, const u8 *src, s32 n) +{ + strncpy(dst, src, n); +} + // Sometimes incrementing and decrementing a variable changes how registers are allocated, which helps with matching functions. Functionality-wise this doesn't do anything. #ifdef NONMATCHING #define ASM_MATCH_TRICK(a) {;} diff --git a/include/gulpin_shop.h b/include/gulpin_shop.h index 60284eca3..e18eba9fd 100644 --- a/include/gulpin_shop.h +++ b/include/gulpin_shop.h @@ -27,7 +27,7 @@ typedef struct GulpinShopWork u8 fillC8[0x118 - 0xC8]; /* 0x118 */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unk12C[4]; + UnkTextStruct3 unk12C; } GulpinShopWork; bool8 CreateGulpinShop(u32 mode, s16 pokeSpecies, Move *moves); diff --git a/include/gulpin_shop_801FB50.h b/include/gulpin_shop_801FB50.h index a3bc8f0f8..179573e6b 100644 --- a/include/gulpin_shop_801FB50.h +++ b/include/gulpin_shop_801FB50.h @@ -35,7 +35,7 @@ typedef struct unkStruct_203B27C u8 fill11C[0x16C - 0x11C]; /* 0x16C */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unk180[4]; + UnkTextStruct3 unk180; } unkStruct_203B27C; bool8 sub_801FB50(u32 mode); diff --git a/include/iq_skill_info_menu.h b/include/iq_skill_info_menu.h index bf8cc6294..8a09588df 100644 --- a/include/iq_skill_info_menu.h +++ b/include/iq_skill_info_menu.h @@ -16,7 +16,7 @@ struct IQSkillInfoMenu u8 fill14[0x20 - 0x18]; u32 unk20; u32 unk24; - UnkTextStruct2 unk28[4]; + UnkTextStruct3 unk28; MenuInputStructSub unk88; }; diff --git a/include/iq_skill_menu.h b/include/iq_skill_menu.h index 4d814e443..ab3102f5e 100644 --- a/include/iq_skill_menu.h +++ b/include/iq_skill_menu.h @@ -19,7 +19,7 @@ struct IQSkillMenu /* 0x30 */ s32 menuAction; MenuItem unk34[8]; MenuStruct unk74; - UnkTextStruct2 unkC4[4]; + UnkTextStruct3 unkC4; }; bool8 CreateIQSkillMenu(s16 species); diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 08f4edffe..d9fd833d7 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -47,7 +47,7 @@ struct KangaskhanStorageWork unkStructFor8013AA0 unkA8; /* 0xD8 */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unkEC[4]; + UnkTextStruct3 unkEC; }; bool8 CreateKangaskhanStorage(u32 mode); diff --git a/include/kangaskhan_storage2.h b/include/kangaskhan_storage2.h index 24238ba41..97b8e82e0 100644 --- a/include/kangaskhan_storage2.h +++ b/include/kangaskhan_storage2.h @@ -27,7 +27,7 @@ typedef struct unkStruct_203B20C u16 unk60[8]; MenuStruct unk70; unkStructFor8013AA0 unkC0; - UnkTextStruct2 unkF0[4]; + UnkTextStruct3 unkF0; } unkStruct_203B20C; bool8 sub_8017E1C(void); diff --git a/include/kecleon_bros1.h b/include/kecleon_bros1.h index 43427d2db..eb05faa75 100644 --- a/include/kecleon_bros1.h +++ b/include/kecleon_bros1.h @@ -65,7 +65,7 @@ typedef struct KecleonBrosWork1 /* 0x84 */ MenuStruct menu; /* 0xD4 */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unkE8[4]; + UnkTextStruct3 unkE8; } KecleonBrosWork1; // mode corresponds to the enum: KecleonBrosMode diff --git a/include/kecleon_bros4.h b/include/kecleon_bros4.h index 3d0169f25..500cd3c03 100644 --- a/include/kecleon_bros4.h +++ b/include/kecleon_bros4.h @@ -13,7 +13,7 @@ typedef struct unkStruct_203B224 /* 0x54 */ struct_Sub80095E4_2 unk54; } unkStruct_203B224; -bool8 sub_801A5D8(u32, s32, UnkTextStruct2_sub *, u32); +bool8 sub_801A5D8(u32, s32, DungeonPos *, u32); u32 sub_801A6E8(bool8); s32 sub_801A8AC(void); void sub_801A8D0(bool8); diff --git a/include/luminous_cave.h b/include/luminous_cave.h index acf0a7bd6..683421305 100644 --- a/include/luminous_cave.h +++ b/include/luminous_cave.h @@ -33,7 +33,7 @@ typedef struct LuminousCaveWork u8 unk110; u8 unk111; u8 unk112; - UnkTextStruct2 unk114[4]; + UnkTextStruct3 unk114; } LuminousCaveWork; void CleanLuminousCave(void); diff --git a/include/mailbox.h b/include/mailbox.h index ea8ec6557..22f97b44d 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -19,7 +19,7 @@ struct unkStruct_203B304 MenuStruct unk6C; MenuItem menuItems[8]; u16 unkFC[8]; - UnkTextStruct2 unk10C[4]; + UnkTextStruct3 unk10C; }; extern void SetMailboxState(u32); diff --git a/include/main_menu1.h b/include/main_menu1.h index 0c183a4cd..1b419b438 100644 --- a/include/main_menu1.h +++ b/include/main_menu1.h @@ -38,12 +38,12 @@ void CleanUpMenu(void); void DeleteMainMenu(void); MainMenu1Work *GetMainMenu(void); void InitMainMenu(void); -void SetMenuItems(MenuStruct *, UnkTextStruct2 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, bool8 unused); +void SetMenuItems(MenuStruct *, UnkTextStruct3 *, s32 index, const UnkTextStruct2 *, const MenuItem *menuItems, bool8, u32 menuAction, bool8 unused); void SetUpMenu(void); s32 UpdateMenu(void); void sub_8035C1C(void); -void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index); +void sub_8035CC0(UnkTextStruct3 *dataArray, u32 index); void sub_8035CF4(MenuStruct *menu, u32 index, bool8); void sub_8035D1C(void); s16 sub_8035D3C(void); @@ -51,4 +51,4 @@ s32 sub_8035D74(void); unkStruct_8035D94 *sub_8035D94(void); void sub_8035DA0(void); -#endif // GUARD_MAIN_MENU1_H \ No newline at end of file +#endif // GUARD_MAIN_MENU1_H diff --git a/include/main_menu2.h b/include/main_menu2.h index 9f4c53808..9267e578c 100644 --- a/include/main_menu2.h +++ b/include/main_menu2.h @@ -9,7 +9,7 @@ typedef struct MainMenu2Work { u32 unk0; MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; + UnkTextStruct3 unk144; /* 0x1A4 */ u32 currMenuChoice; } MainMenu2Work; diff --git a/include/makuhita_dojo1.h b/include/makuhita_dojo1.h index 6b5615300..088ccb009 100644 --- a/include/makuhita_dojo1.h +++ b/include/makuhita_dojo1.h @@ -30,7 +30,7 @@ typedef struct MakuhitaDojoWork1 u8 fill38[0x58 - 0x38]; /* 0x58 */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unk6C[4]; + UnkTextStruct3 unk6C; } MakuhitaDojoWork1; void MakuhitaDojo_Delete(void); diff --git a/include/makuhita_dojo2.h b/include/makuhita_dojo2.h index a7c1d32bb..12bef4ce5 100644 --- a/include/makuhita_dojo2.h +++ b/include/makuhita_dojo2.h @@ -15,7 +15,7 @@ typedef struct MakuhitaDojoWork2 bool8 MakuhitaDojo_ReturnFalse(void); -bool8 sub_80302E8(s32, UnkTextStruct2_sub *, u32); +bool8 sub_80302E8(s32, DungeonPos *, u32); u32 sub_80303AC(bool8); s16 sub_8030418(void); void sub_8030480(void); diff --git a/include/menu_input.h b/include/menu_input.h index 0d897b526..9eee9ac5f 100644 --- a/include/menu_input.h +++ b/include/menu_input.h @@ -49,7 +49,7 @@ void sub_8013C68(unkStructFor8013AA0 *); void sub_8013D10(unkStructFor8013AA0 *); void sub_8013E54(void); void sub_8013F84(void); -void sub_80140B4(UnkTextStruct2 *); +void sub_80140B4(UnkTextStruct3 *); #endif // GUARD_MENU_INPUT_H diff --git a/include/options_menu1.h b/include/options_menu1.h index 24baa5ba9..46f64b54c 100644 --- a/include/options_menu1.h +++ b/include/options_menu1.h @@ -14,7 +14,7 @@ struct unkStruct_203B25C /* 0x1C */ MenuStruct menu; /* 0x6C */ MenuItem menuItems[8]; u16 unkAC[8]; - UnkTextStruct2 unkBC[4]; + UnkTextStruct3 unkBC; }; bool8 sub_801DCC4(void); diff --git a/include/options_menu2.h b/include/options_menu2.h index 2d7bdeadd..f0ddf18cb 100644 --- a/include/options_menu2.h +++ b/include/options_menu2.h @@ -12,7 +12,7 @@ struct unkStruct_203B260 /* 0x10 */ MenuInputStruct input; u32 unk44; UnkTextStruct2 *unk48; - UnkTextStruct2 unk4C[4]; + UnkTextStruct3 unk4C; }; bool8 sub_801E198(GameOptions *optionsMenu); diff --git a/include/other_menus1.h b/include/other_menus1.h index 9155b4c1e..0c35d485e 100644 --- a/include/other_menus1.h +++ b/include/other_menus1.h @@ -18,7 +18,7 @@ typedef struct unkStruct_203B35C u32 unk14; u8 fill18[0x1C - 0x18]; MenuStruct unk1C[4]; - UnkTextStruct2 unk15C[4]; + UnkTextStruct3 unk15C; unkStruct_8035D94 unk1BC[2]; unkStruct_203B480 unk1CC; unkStruct_203B480 unk1FC; diff --git a/include/party_list_menu.h b/include/party_list_menu.h index 3db582c1b..0ed0d2c83 100644 --- a/include/party_list_menu.h +++ b/include/party_list_menu.h @@ -32,7 +32,7 @@ typedef struct unkStruct_203B2B8 MenuItem unk16C[10]; MenuItem unk1BC[10]; u16 unk20C[10]; - UnkTextStruct2 unk220[4]; + UnkTextStruct3 unk220; } unkStruct_203B2B8; bool8 CreatePartyListMenu(PokemonStruct1 *pokeStruct); diff --git a/include/pelipper_board.h b/include/pelipper_board.h index 1495d4b77..f29272503 100644 --- a/include/pelipper_board.h +++ b/include/pelipper_board.h @@ -17,7 +17,7 @@ struct unkStruct_203B308 MenuStruct unk6C; MenuItem menuItems[8]; u16 unkFC[8]; - UnkTextStruct2 unk10C[4]; + UnkTextStruct3 unk10C; }; extern struct unkStruct_203B308 *gPelipperBoard; diff --git a/include/pokemon_news1.h b/include/pokemon_news1.h index 68458586b..893698879 100644 --- a/include/pokemon_news1.h +++ b/include/pokemon_news1.h @@ -16,7 +16,7 @@ struct unkStruct_203B2CC u8 GetPokemonNewsIndex(void); bool8 HasNoPKMNNews(void); -bool8 sub_802B640(u32, UnkTextStruct2_sub *, u32); +bool8 sub_802B640(u32, DungeonPos *, u32); u32 sub_802B720(bool8); void sub_802B7D0(bool8 cursorSprite); void sub_802B81C(void); diff --git a/include/pokemon_news2.h b/include/pokemon_news2.h index 03da4a4d0..5d72cd208 100644 --- a/include/pokemon_news2.h +++ b/include/pokemon_news2.h @@ -14,7 +14,7 @@ struct unkStruct_203B2D4 const u8 *unk10[4]; u32 unk20; u32 unk24; - UnkTextStruct2 unk28[4]; + UnkTextStruct3 unk28; MenuInputStructSub unk88; }; diff --git a/include/pokemon_news3.h b/include/pokemon_news3.h index c808ff113..d14e07f10 100644 --- a/include/pokemon_news3.h +++ b/include/pokemon_news3.h @@ -14,7 +14,7 @@ struct unkStruct_203B2D8 void CreateMailMenu(void); bool8 HasNoMailinMailbox(void); -bool8 sub_802BD14(s32, UnkTextStruct2_sub *, u32); +bool8 sub_802BD14(s32, DungeonPos *, u32); u32 sub_802BDEC(bool8); u8 sub_802BE74(void); void sub_802BE94(bool8 cursorSprite); diff --git a/include/post_office_guide2.h b/include/post_office_guide2.h index 1f8a1b67c..82159926c 100644 --- a/include/post_office_guide2.h +++ b/include/post_office_guide2.h @@ -12,7 +12,7 @@ typedef struct unkStruct_203B330 /* 0xD */ u8 dungeonIndex; u32 unk10; UnkTextStruct2 *unk14; - UnkTextStruct2 unk18[4]; + UnkTextStruct3 unk18; } unkStruct_203B330; bool8 sub_80319A4(u8, u8 dungeon, s32); diff --git a/include/rescue_password_menu.h b/include/rescue_password_menu.h index c2382da0c..0a2520827 100644 --- a/include/rescue_password_menu.h +++ b/include/rescue_password_menu.h @@ -12,8 +12,8 @@ struct RescuePasswordMenu u32 currMenu; u32 state; MenuStruct unk8[4]; - UnkTextStruct2 unk148[4]; - UnkTextStruct2 unk1A8[4]; + UnkTextStruct3 unk148; + UnkTextStruct3 unk1A8; SpriteOAM unk208; u32 unk210; }; diff --git a/include/save_menu.h b/include/save_menu.h index 56612edb2..427e5c584 100644 --- a/include/save_menu.h +++ b/include/save_menu.h @@ -9,7 +9,7 @@ typedef struct SaveMenuWork /* 0x0 */ u32 currMenu; u32 unk4; MenuStruct unk8[4]; - UnkTextStruct2 unk148[4]; + UnkTextStruct3 unk148; SpriteOAM unk1A8; u32 unk1B0; // Sprite count? } SaveMenuWork; diff --git a/include/structs/str_dungeon.h b/include/structs/str_dungeon.h index 1fa914b7c..ab1811197 100644 --- a/include/structs/str_dungeon.h +++ b/include/structs/str_dungeon.h @@ -273,7 +273,7 @@ typedef struct unkDungeon644 /* 0x30 */ u8 unk30; /* 0x31 */ u8 unk31; /* 0x32 */ bool8 itemHoldersIdentified; - /* 0x33 */ u8 fill33; + /* 0x33 */ u8 unk33; /* 0x34 */ u8 unk34; /* 0x35 */ u8 unk35; /* 0x36 */ u8 unk36; diff --git a/include/structs/str_text.h b/include/structs/str_text.h index 32a4d2d2a..61c0cd30f 100644 --- a/include/structs/str_text.h +++ b/include/structs/str_text.h @@ -28,22 +28,6 @@ typedef struct UnkTextStruct1 u8 unk46; } UnkTextStruct1; -// size: 0x4 -typedef struct UnkTextStruct2_sub -{ - // I haven't found a func that reads these separately yet, but simply making an arr[2] will cause assignments to break. - // Some funcs only match with this union for some reason even though they don't access the variables separately... - // The first func to break is currently sub_801A5D8 in kecleon_bros4.c - // The first func I matched that uses the array is sub_8006554 in text2.c (using the separated fields doesn't match or get even close) - union { - struct { - s16 unk0; - s16 unk2; - } separate; - s16 arr[2]; - } unk0; -} UnkTextStruct2_sub; - typedef struct UnkTextStruct2_sub2 { u8 f0; @@ -52,13 +36,15 @@ typedef struct UnkTextStruct2_sub2 u8 f3; } UnkTextStruct2_sub2; +#include "structs/str_position.h" + // size: 0x18 typedef struct UnkTextStruct2 { u8 unk0; u8 fill1[0x4 - 0x1]; s32 unk4; - UnkTextStruct2_sub unk8; + DungeonPos pos; s16 unkC; s16 unkE; s16 unk10; @@ -66,4 +52,12 @@ typedef struct UnkTextStruct2 const UnkTextStruct2_sub2 *unk14; // Pointer to 4 bytes which may be x-coord related. Could be window's header? } UnkTextStruct2; +typedef struct UnkTextStruct3 { + UnkTextStruct2 a0[4]; + // Something ugly, so that sub_805FD74 could match weird compiler memcpy/stack initialization + #ifndef NONMATCHING + u8 fakeMatch[0]; + #endif // NONMATCHING +} UnkTextStruct3; + #endif // GUARD_STR_TEXT_H diff --git a/include/structs/struct_sub80095e4.h b/include/structs/struct_sub80095e4.h index 16b4757a6..a38dfac93 100644 --- a/include/structs/struct_sub80095e4.h +++ b/include/structs/struct_sub80095e4.h @@ -13,7 +13,7 @@ typedef struct struct_Sub80095E4 /* 0x0 */ MenuInputStruct input; u32 unk34; UnkTextStruct2 *unk38; - UnkTextStruct2 unk3C[4]; + UnkTextStruct3 unk3C; // size: 0x9C } struct_Sub80095E4; @@ -33,16 +33,16 @@ typedef struct struct_Sub80095E4_2 s16 newE; \ s16 a0 = (_a0); \ UNUSED s32 a0_ = a0; \ - UNUSED s16 oldE = (ptr).unk3C[(ptr).unk34].unkE; \ + UNUSED s16 oldE = (ptr).unk3C.a0[(ptr).unk34].unkE; \ a0_ = 0; \ new10 = a0 + 2; \ newE = a0; \ \ - (ptr).unk3C[(ptr).unk34].unkE = newE; \ - (ptr).unk3C[(ptr).unk34].unk10 = a0 + 2; \ + (ptr).unk3C.a0[(ptr).unk34].unkE = newE; \ + (ptr).unk3C.a0[(ptr).unk34].unk10 = a0 + 2; \ \ ResetUnusedInputStruct(); \ - xxx_call_save_unk_text_struct_800641C((ptr).unk3C, TRUE, TRUE); \ + xxx_call_save_unk_text_struct_800641C(&(ptr).unk3C, TRUE, TRUE); \ } #define SUB_80095E4_CALL(ptr) \ @@ -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).unk3C[(ptr).unk34].unkE; \ + UNUSED s16 oldE = (ptr).unk3C.a0[(ptr).unk34].unkE; \ s16 newE = a0; \ \ - (ptr).unk3C[(ptr).unk34].unkE = newE; \ - (ptr).unk3C[(ptr).unk34].unk10 = newE; \ + (ptr).unk3C.a0[(ptr).unk34].unkE = newE; \ + (ptr).unk3C.a0[(ptr).unk34].unk10 = newE; \ \ ResetUnusedInputStruct(); \ - xxx_call_save_unk_text_struct_800641C((ptr).unk3C, TRUE, TRUE); \ + xxx_call_save_unk_text_struct_800641C(&(ptr).unk3C, TRUE, TRUE); \ } // sub_802BF30 and sub_802C328 use a different function call, and 24 instead of 12 diff --git a/include/text.h b/include/text.h index 4bb2e17a0..02059816a 100644 --- a/include/text.h +++ b/include/text.h @@ -63,8 +63,8 @@ u32 UpdateFadeInTile(u32 a0); u32 sub_80063B0(void); void SelectCharmap(u32 a0); void SetCharacterMask(int a0); -void xxx_call_save_unk_text_struct_800641C(const UnkTextStruct2 *a0, bool8 a1, bool8 a2); -void RestoreUnkTextStruct_8006518(UnkTextStruct2 *unkData); +void xxx_call_save_unk_text_struct_800641C(const UnkTextStruct3 *a0, bool8 a1, bool8 a2); +void RestoreUnkTextStruct_8006518(UnkTextStruct3 *unkData); u32 sub_8006544(u32 index); void sub_8007334(s32 a0); void sub_80073B8(s32 a0); diff --git a/include/thank_you_wonder_mail.h b/include/thank_you_wonder_mail.h index 4ed0248ab..7c683e2c7 100644 --- a/include/thank_you_wonder_mail.h +++ b/include/thank_you_wonder_mail.h @@ -22,8 +22,8 @@ typedef struct WonderMailStruct_203B2C4 unkStruct_203B480 unk1E8; /* 0x218 */ s8 mailIndex; MenuStruct unk21C[4]; - UnkTextStruct2 unk35C[4]; - UnkTextStruct2 unk3BC[4]; + UnkTextStruct3 unk35C; + UnkTextStruct3 unk3BC; Item unk41C; /* 0x420 */ struct MonPortraitMsg monPortrait; u32 unk430; diff --git a/include/trade_items_menu.h b/include/trade_items_menu.h index 31c1fae05..912979441 100644 --- a/include/trade_items_menu.h +++ b/include/trade_items_menu.h @@ -47,8 +47,8 @@ struct TradeItemsMenu u32 unk10; unkStructFor8013AA0 unk14; MenuStruct unk44[4]; - UnkTextStruct2 unk184[4]; - UnkTextStruct2 unk1E4[4]; + UnkTextStruct3 unk184; + UnkTextStruct3 unk1E4; // TODO These might be structs... struct TradeItem unk244; diff --git a/include/wigglytuff_shop2.h b/include/wigglytuff_shop2.h index 0053dc6db..1eac49f85 100644 --- a/include/wigglytuff_shop2.h +++ b/include/wigglytuff_shop2.h @@ -14,7 +14,7 @@ typedef struct WigglytuffShop2Work /* 0x70 */ s32 numPokemoninFriendArea; s32 unk74; UnkTextStruct2 *unk78; - UnkTextStruct2 unk7C[4]; + UnkTextStruct3 unk7C; u8 unkDC[4]; } WigglytuffShop2Work; diff --git a/include/wigglytuff_shop3.h b/include/wigglytuff_shop3.h index 48a12c019..866591260 100644 --- a/include/wigglytuff_shop3.h +++ b/include/wigglytuff_shop3.h @@ -54,7 +54,7 @@ typedef struct WigglytuffShop3Work MenuStruct unk6C; /* 0xBC */ struct MonPortraitMsg monPortrait; struct MonPortraitMsg *monPortraitPtr; - UnkTextStruct2 unkD0[4]; + UnkTextStruct3 unkD0; u32 unk130; u32 unk134; } WigglytuffShop3Work; diff --git a/include/wonder_mail.h b/include/wonder_mail.h index 1cf88327f..944f2b769 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -22,8 +22,8 @@ typedef struct WonderMailStruct_203B2C0 u8 fill16A[0x218 - 0x1B8]; /* 0x218 */ u8 mailIndex; MenuStruct unk21C[4]; - UnkTextStruct2 unk35C[4]; - UnkTextStruct2 unk3BC[4]; + UnkTextStruct3 unk35C; + UnkTextStruct3 unk3BC; /* 0x41C */ u32 unkfill; // ItemSlot? /* 0x420 */ struct MonPortraitMsg monPortrait; /* 0x430 */ u8 padding3[0x534 - 0x430]; diff --git a/include/wonder_mail_4.h b/include/wonder_mail_4.h index e24e7f4b5..b04e337f6 100644 --- a/include/wonder_mail_4.h +++ b/include/wonder_mail_4.h @@ -3,7 +3,7 @@ #include "structs/str_text.h" -u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3); +u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3); u32 sub_8030768(u8 r0); u8 sub_80307EC(void); void sub_8030810(u8 r0); diff --git a/include/wonder_mail_802C10C.h b/include/wonder_mail_802C10C.h index fa6811345..f5fc66b23 100644 --- a/include/wonder_mail_802C10C.h +++ b/include/wonder_mail_802C10C.h @@ -15,7 +15,7 @@ struct unkStruct_203B2E0 void DrawPelipperBoardJobMenu(void); bool8 HasNoPelipperBoardJobs(void); -bool8 sub_802C10C(s32, UnkTextStruct2_sub *, s32); +bool8 sub_802C10C(s32, DungeonPos *, s32); u32 sub_802C1E4(bool8); u8 sub_802C26C(void); void sub_802C28C(bool8 cursorSprite); diff --git a/include/wonder_mail_802C4C8.h b/include/wonder_mail_802C4C8.h index 1fef8af13..2f313f2ca 100644 --- a/include/wonder_mail_802C4C8.h +++ b/include/wonder_mail_802C4C8.h @@ -7,7 +7,7 @@ void DrawJobListMenu(void); bool8 HasNoAcceptedJobs(void); u8 GetPelipperBoardSlotIndex(void); -bool8 sub_802C4C8(s32, UnkTextStruct2_sub *, u32); +bool8 sub_802C4C8(s32, DungeonPos *, u32); u32 sub_802C598(bool8); void sub_802C640(bool8 cursorSprite); void sub_802C688(void); diff --git a/include/wonder_mail_802C860.h b/include/wonder_mail_802C860.h index 572ad8420..387a4594a 100644 --- a/include/wonder_mail_802C860.h +++ b/include/wonder_mail_802C860.h @@ -19,7 +19,7 @@ struct unkStruct_203B2F0 MenuItem unk10C[8]; MenuItem unk14C[8]; u8 fill18C[0x19C - 0x18C]; - UnkTextStruct2 unk19C[4]; + UnkTextStruct3 unk19C; }; bool8 InitializeJobListMenu(u32); diff --git a/include/wonder_mail_802D098.h b/include/wonder_mail_802D098.h index 182128537..892320027 100644 --- a/include/wonder_mail_802D098.h +++ b/include/wonder_mail_802D098.h @@ -34,7 +34,7 @@ typedef struct unkStruct_203B2F8 MenuItem unk118[8]; MenuItem unk158[8]; u16 unk198[8]; - UnkTextStruct2 unk1A8[4]; + UnkTextStruct3 unk1A8; } unkStruct_203B2F8; bool8 GetWonderMailAccepted(void); diff --git a/ld_script.txt b/ld_script.txt index 0f655209b..a5b09e9c8 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -229,7 +229,6 @@ SECTIONS { src/code_805D8C8_1.o(.text); asm/code_805D8C8.o(.text); src/code_8066D04.o(.text); - asm/code_8066D04.o(.text); src/code_805D8C8.o(.text); asm/code_805D8C8_1.o(.text); src/code_8069D4C.o(.text); @@ -534,6 +533,8 @@ SECTIONS { src/dungeon_message.o(.rodata); src/dungeon_move.o(.rodata); data/data_8106A4C.o(.rodata); + src/code_8066D04.o(.rodata); + data/data_8106A4C_2.o(.rodata); src/code_806CD90.o(.rodata); src/type_effectiveness.o(.data); data/data_8106F7C.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index 32846c6b2..f236825d0 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -23,13 +23,13 @@ bool8 CreateAdventureLogScreen(u32 kind) { sAdventureLog = MemoryAlloc(sizeof(*sAdventureLog), 8); sAdventureLog->s0.unk34 = kind; - sAdventureLog->s0.unk38 = &sAdventureLog->s0.unk3C[kind]; - RestoreUnkTextStruct_8006518(sAdventureLog->s0.unk3C); - sAdventureLog->s0.unk3C[sAdventureLog->s0.unk34] = sUnknown_80E2008; + sAdventureLog->s0.unk38 = &sAdventureLog->s0.unk3C.a0[kind]; + RestoreUnkTextStruct_8006518(&sAdventureLog->s0.unk3C); + sAdventureLog->s0.unk3C.a0[sAdventureLog->s0.unk34] = sUnknown_80E2008; sAdventureLog->s0.unk38->unk14 = &sAdventureLog->unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sAdventureLog->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sAdventureLog->s0.unk3C, TRUE, TRUE); sub_8013818(&sAdventureLog->s0.input, 0x20, 8, kind); sub_8032084(); DisplayAdventureLog(); @@ -63,9 +63,9 @@ u32 HandleAdventureLogInput(bool8 a0) void CleanAdventureLogScreen(void) { if (sAdventureLog != NULL) { - sAdventureLog->s0.unk3C[sAdventureLog->s0.unk34] = sUnknown_80E1FF0; + sAdventureLog->s0.unk3C.a0[sAdventureLog->s0.unk34] = sUnknown_80E1FF0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sAdventureLog->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sAdventureLog->s0.unk3C, TRUE, TRUE); MemoryFree(sAdventureLog); sAdventureLog = NULL; } diff --git a/src/code_8010EF0.c b/src/code_8010EF0.c index 0317597d8..92afa997e 100644 --- a/src/code_8010EF0.c +++ b/src/code_8010EF0.c @@ -7,14 +7,14 @@ EWRAM_INIT void *gUnknown_203B0E8 = NULL; // Pointer to some unknown struct EWRAM_INIT UnkTextStruct2 gUnknown_203B0EC[4] = { // Exact location of this variable is unknown. Find a better place for it once more code is decompiled. [0] = { .unk4 = 3, - .unk8 = {2, 10}, + .pos = {2, 10}, .unkC = 26, .unkE = 9, .unk10 = 9, }, [1] = { .unk4 = 3, - .unk8 = {23, 6}, + .pos = {23, 6}, .unkC = 5, .unkE = 3, .unk10 = 3, diff --git a/src/code_8015080.c b/src/code_8015080.c index 8aa56f2a7..7138cc5ce 100644 --- a/src/code_8015080.c +++ b/src/code_8015080.c @@ -16,7 +16,7 @@ struct unkStruct_203B1F8 // size: 0x4B4 u32 menuAction; MenuStruct unk4; - UnkTextStruct2 unk54[4]; + UnkTextStruct3 unk54; u8 buffer[0x400]; }; @@ -296,14 +296,14 @@ bool8 sub_8015080(u8 *buffer, const MenuItem *menuItems) for(index = 0; index < 4; index++) { - gUnknown_203B1F8->unk54[index] = gUnknown_80DAF70; + gUnknown_203B1F8->unk54.a0[index] = gUnknown_80DAF70; } - gUnknown_203B1F8->unk54[0] = gUnknown_80DAF88; - gUnknown_203B1F8->unk54[2] = gUnknown_80DAFA0; - sub_8012CAC(&gUnknown_203B1F8->unk54[2], menuItems); + gUnknown_203B1F8->unk54.a0[0] = gUnknown_80DAF88; + gUnknown_203B1F8->unk54.a0[2] = gUnknown_80DAFA0; + sub_8012CAC(&gUnknown_203B1F8->unk54.a0[2], menuItems); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B1F8->unk54, 1, 1); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B1F8->unk54, 1, 1); sub_80073B8(0); FormatString(buffer, gUnknown_203B1F8->buffer, gUnknown_203B1F8->buffer + 0x400, 0); PrintStringOnWindow(4, 4, gUnknown_203B1F8->buffer, 0, 0); @@ -356,7 +356,7 @@ struct unkStruct_203B1FC u8 *unkF8; u8 unkFC[56]; u8 *unk134; - UnkTextStruct2 unk138[4]; + UnkTextStruct3 unk138; }; extern struct unkStruct_203B1FC *gUnknown_203B1FC; @@ -471,19 +471,19 @@ u32 sub_80151C0(u32 r0, u8 *buffer) gUnknown_203B1FC->unk17 = 0; for (index = 0; index < 4; index++) { - gUnknown_203B1FC->unk138[index] = gUnknown_80DB538; + gUnknown_203B1FC->unk138.a0[index] = gUnknown_80DB538; } if(gUnknown_203B1FC->unk4 != 0) { - gUnknown_203B1FC->unk138[1] = gUnknown_80DB580; + gUnknown_203B1FC->unk138.a0[1] = gUnknown_80DB580; } else { - gUnknown_203B1FC->unk138[1] = gUnknown_80DB568; + gUnknown_203B1FC->unk138.a0[1] = gUnknown_80DB568; } - gUnknown_203B1FC->unk138[0] = gUnknown_80DB550; + gUnknown_203B1FC->unk138.a0[0] = gUnknown_80DB550; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B1FC->unk138, 1, 1); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B1FC->unk138, 1, 1); sub_8015A08(1); sub_8015C1C(); diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 0da13b7cb..000ada2ed 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -26,9 +26,9 @@ bool8 sub_801B3C0(Item *item) sUnknown_203B230->item = *item; sub_801317C(&sUnknown_203B230->unk88); sUnknown_203B230->unk24 = 0; - sub_80140B4(sUnknown_203B230->unk28); + sub_80140B4(&sUnknown_203B230->unk28); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B230->unk28, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B230->unk28, TRUE, TRUE); sub_801B46C(0); return TRUE; } diff --git a/src/code_801B60C.c b/src/code_801B60C.c index 3873b1a66..2fa46c6d8 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -124,26 +124,26 @@ static void sub_801B760(void) case 13: case 14: case 15: - RestoreUnkTextStruct_8006518(sUnknown_203B234->unkF4); + RestoreUnkTextStruct_8006518(&sUnknown_203B234->unkF4); for (i = 0; i < 4; i++) - sUnknown_203B234->unkF4[i] = sUnknown_80DBA58; + sUnknown_203B234->unkF4.a0[i] = sUnknown_80DBA58; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B234->unkF4, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B234->unkF4, TRUE, TRUE); break; case 10: - RestoreUnkTextStruct_8006518(sUnknown_203B234->unkF4); + RestoreUnkTextStruct_8006518(&sUnknown_203B234->unkF4); sub_801BB5C(); - sUnknown_203B234->unkF4[2] = sUnknown_80DBA70; - sub_8012CAC(&sUnknown_203B234->unkF4[2], sUnknown_203B234->unkCC); + sUnknown_203B234->unkF4.a0[2] = sUnknown_80DBA70; + sub_8012CAC(&sUnknown_203B234->unkF4.a0[2], sUnknown_203B234->unkCC); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B234->unkF4, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B234->unkF4, TRUE, TRUE); break; case 12: - RestoreUnkTextStruct_8006518(sUnknown_203B234->unkF4); - sUnknown_203B234->unkF4[1] = sUnknown_80DBA88; + RestoreUnkTextStruct_8006518(&sUnknown_203B234->unkF4); + sUnknown_203B234->unkF4.a0[1] = sUnknown_80DBA88; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B234->unkF4, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B234->unkF4, TRUE, TRUE); break; } } diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index c8ade824b..833f7546b 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -18,7 +18,7 @@ static EWRAM_INIT u16 sUnknown_203B24E = {0}; static void sub_801CC38(void); static u32 sub_801CE58(void); -bool8 sub_801C8C4(s32 a0, s32 a1, UnkTextStruct2_sub *a2, u32 a3) +bool8 sub_801C8C4(s32 a0, s32 a1, DungeonPos *a2, u32 a3) { if (sub_801CF14(a0)) return FALSE; @@ -29,17 +29,17 @@ bool8 sub_801C8C4(s32 a0, s32 a1, UnkTextStruct2_sub *a2, u32 a3) sUnknown_203B244->unk0 = a0; sub_801CF94(); sUnknown_203B244->unk4B4.s0.unk34 = a1; - sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.unk3C[a1]; - RestoreUnkTextStruct_8006518(sUnknown_203B244->unk4B4.s0.unk3C); - sUnknown_203B244->unk4B4.s0.unk3C[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE54; + sUnknown_203B244->unk4B4.s0.unk38 = &sUnknown_203B244->unk4B4.s0.unk3C.a0[a1]; + RestoreUnkTextStruct_8006518(&sUnknown_203B244->unk4B4.s0.unk3C); + sUnknown_203B244->unk4B4.s0.unk3C.a0[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE54; sUnknown_203B244->unk4B4.s0.unk38->unk14 = &sUnknown_203B244->unk4B4.unk9C; if (a2 != NULL) - sUnknown_203B244->unk4B4.s0.unk3C[sUnknown_203B244->unk4B4.s0.unk34].unk8 = *a2; + sUnknown_203B244->unk4B4.s0.unk3C.a0[sUnknown_203B244->unk4B4.s0.unk34].pos = *a2; sub_8012D08(sUnknown_203B244->unk4B4.s0.unk38, a3); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B244->unk4B4.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B244->unk4B4.s0.unk3C, TRUE, TRUE); sub_8013818(&sUnknown_203B244->unk4B4.s0.input, sub_801CE58(), a3, a1); if (sUnknown_203B248 == sUnknown_203B244->unk0) { @@ -111,7 +111,7 @@ u8 sub_801CB24(void) void sub_801CB5C(bool8 a0) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B244->unk4B4.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B244->unk4B4.s0.unk3C, FALSE, FALSE); sUnknown_203B244->unk4B4.s0.input.unk22 = sub_801CE58(); sub_8013984(&sUnknown_203B244->unk4B4.s0.input); sub_801CC38(); @@ -127,9 +127,9 @@ 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.unk3C[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE3C; + sUnknown_203B244->unk4B4.s0.unk3C.a0[sUnknown_203B244->unk4B4.s0.unk34] = sUnknown_80DBE3C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B244->unk4B4.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B244->unk4B4.s0.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B244); sUnknown_203B244 = NULL; } diff --git a/src/code_801D014.c b/src/code_801D014.c index 0769db871..472ebd8ec 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -188,7 +188,7 @@ static void sub_801D220(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B250->unkB8); + RestoreUnkTextStruct_8006518(&sUnknown_203B250->unkB8); switch (sUnknown_203B250->state) { case 0: @@ -196,18 +196,18 @@ static void sub_801D220(void) if (sUnknown_203B250->pokeStruct != NULL) { for (i = 0; i < 4; i++) - sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + sUnknown_203B250->unkB8.a0[i] = sUnknown_80DBE7C; - sUnknown_203B250->unkB8[0] = sUnknown_80DBE98; - sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); - sUnknown_203B250->unkB8[0].unkC = 9; + sUnknown_203B250->unkB8.a0[0] = sUnknown_80DBE98; + sub_8012CAC(&sUnknown_203B250->unkB8.a0[0], sUnknown_203B250->unk68); + sUnknown_203B250->unkB8.a0[0].unkC = 9; } else { for (i = 0; i < 4; i++) - sUnknown_203B250->unkB8[i] = sUnknown_80DBEB0[i]; + sUnknown_203B250->unkB8.a0[i] = sUnknown_80DBEB0[i]; - sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); - sUnknown_203B250->unkB8[0].unkC = 8; + sub_8012CAC(&sUnknown_203B250->unkB8.a0[0], sUnknown_203B250->unk68); + sUnknown_203B250->unkB8.a0[0].unkC = 8; } break; case 1: @@ -215,28 +215,28 @@ static void sub_801D220(void) if (sUnknown_203B250->pokeStruct != NULL) { for (i = 0; i < 4; i++) - sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + sUnknown_203B250->unkB8.a0[i] = sUnknown_80DBE7C; - sUnknown_203B250->unkB8[0] = sUnknown_80DBE98; - sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); - sUnknown_203B250->unkB8[0].unkC = 9; + sUnknown_203B250->unkB8.a0[0] = sUnknown_80DBE98; + sub_8012CAC(&sUnknown_203B250->unkB8.a0[0], sUnknown_203B250->unk68); + sUnknown_203B250->unkB8.a0[0].unkC = 9; } else { for (i = 0; i < 4; i++) - sUnknown_203B250->unkB8[i] = sUnknown_80DBEB0[i]; + sUnknown_203B250->unkB8.a0[i] = sUnknown_80DBEB0[i]; - sub_8012CAC(sUnknown_203B250->unkB8, sUnknown_203B250->unk68); - sUnknown_203B250->unkB8[0].unkC = 8; + sub_8012CAC(&sUnknown_203B250->unkB8.a0[0], sUnknown_203B250->unk68); + sUnknown_203B250->unkB8.a0[0].unkC = 8; } break; default: for (i = 0; i < 4; i++) - sUnknown_203B250->unkB8[i] = sUnknown_80DBE7C; + sUnknown_203B250->unkB8.a0[i] = sUnknown_80DBE7C; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B250->unkB8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B250->unkB8, TRUE, TRUE); } static void sub_801D3A8(void) diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c index bb9c1acf6..1b52285dd 100644 --- a/src/code_801D9E4.c +++ b/src/code_801D9E4.c @@ -23,12 +23,12 @@ bool8 sub_801D9E4(void) { sUnknown_203B258 = MemoryAlloc(sizeof(*sUnknown_203B258), 8); sUnknown_203B258->s0.unk34 = 3; - sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.unk3C[3]; - RestoreUnkTextStruct_8006518(sUnknown_203B258->s0.unk3C); - sUnknown_203B258->s0.unk3C[sUnknown_203B258->s0.unk34] = sUnknown_80DBF88; + sUnknown_203B258->s0.unk38 = &sUnknown_203B258->s0.unk3C.a0[3]; + RestoreUnkTextStruct_8006518(&sUnknown_203B258->s0.unk3C); + sUnknown_203B258->s0.unk3C.a0[sUnknown_203B258->s0.unk34] = sUnknown_80DBF88; sUnknown_203B258->s0.unk38->unk14 = &sUnknown_203B258->unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B258->s0.unk3C, TRUE, TRUE); sub_8013818(&sUnknown_203B258->s0.input, 229, 10, sUnknown_203B258->s0.unk34); sub_801DB54(); sub_801DBD4(); @@ -80,9 +80,9 @@ UNUSED static void sub_801DADC(bool8 a0) void sub_801DB0C(void) { if (sUnknown_203B258 != NULL) { - sUnknown_203B258->s0.unk3C[sUnknown_203B258->s0.unk34] = sUnknown_80DBF70; + sUnknown_203B258->s0.unk3C.a0[sUnknown_203B258->s0.unk34] = sUnknown_80DBF70; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B258->s0.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B258); sUnknown_203B258 = NULL; } @@ -96,7 +96,7 @@ static void sub_801DB54(void) sUnknown_203B258->unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B258->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B258->s0.unk3C, TRUE, TRUE); SUB_80095E4_CALL(sUnknown_203B258->s0); } diff --git a/src/code_801EE10.c b/src/code_801EE10.c index 3c0b70c68..0ce383ec7 100644 --- a/src/code_801EE10.c +++ b/src/code_801EE10.c @@ -84,16 +84,16 @@ u8 sub_801EE10(u32 param_1, s16 species, Move *moves, u32 param_4, const u8 *tex if (iVar8 < four) { iVar8 = 4; } - RestoreUnkTextStruct_8006518(gUnknown_203B270->unk58); + RestoreUnkTextStruct_8006518(&gUnknown_203B270->unk58); gUnknown_203B270->unk50 = param_6; - gUnknown_203B270->unk58[param_6] = gUnknown_80DC25C; + gUnknown_203B270->unk58.a0[param_6] = gUnknown_80DC25C; if (gUnknown_203B270->text != NULL) { gUnknown_203B270->unk54 = sub_8006544(param_6); - gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC274; + gUnknown_203B270->unk58.a0[gUnknown_203B270->unk54] = gUnknown_80DC274; } - sub_8012D08(&gUnknown_203B270->unk58[gUnknown_203B270->unk50],iVar8); + sub_8012D08(&gUnknown_203B270->unk58.a0[gUnknown_203B270->unk50],iVar8); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B270->unk58, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B270->unk58, TRUE, TRUE); sub_8013818(&gUnknown_203B270->input,iVar5,iVar5,param_6); sub_8013780(&gUnknown_203B270->input,0); sub_801F280(TRUE); @@ -250,7 +250,7 @@ void sub_801F1B0(bool8 param_1, bool8 param_2) if(!gUnknown_203B270->unk4) gUnknown_203B270->unk4 = param_2; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B270->unk58, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B270->unk58, TRUE, TRUE); gUnknown_203B270->input.unk22 = sub_801F3F8(); sub_8013984(&gUnknown_203B270->input); gUnknown_203B270->input.menuIndex = sub_8092F4C(gUnknown_203B270->moves, gUnknown_203B270->input.menuIndex); @@ -263,13 +263,13 @@ void sub_801F214(void) { if(gUnknown_203B270) { - gUnknown_203B270->unk58[gUnknown_203B270->unk50] = gUnknown_80DC240; + gUnknown_203B270->unk58.a0[gUnknown_203B270->unk50] = gUnknown_80DC240; if(gUnknown_203B270->text) { - gUnknown_203B270->unk58[gUnknown_203B270->unk54] = gUnknown_80DC240; + gUnknown_203B270->unk58.a0[gUnknown_203B270->unk54] = gUnknown_80DC240; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B270->unk58, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B270->unk58, TRUE, TRUE); MemoryFree(gUnknown_203B270); gUnknown_203B270 = NULL; } diff --git a/src/code_801F428.c b/src/code_801F428.c index f6a3dc033..82a225896 100644 --- a/src/code_801F428.c +++ b/src/code_801F428.c @@ -52,16 +52,16 @@ bool8 sub_801F428(s16 index, s32 param_2) 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.unk3C[gUnknown_203B274->s348.s0.unk34]; - RestoreUnkTextStruct_8006518(gUnknown_203B274->s348.s0.unk3C); - gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4; + gUnknown_203B274->s348.s0.unk38 = &gUnknown_203B274->s348.s0.unk3C.a0[gUnknown_203B274->s348.s0.unk34]; + RestoreUnkTextStruct_8006518(&gUnknown_203B274->s348.s0.unk3C); + gUnknown_203B274->s348.s0.unk3C.a0[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2C4; gUnknown_203B274->s348.s0.unk38->unk14 = &gUnknown_203B274->s348.unk9C; gUnknown_203B274->s348.unk9C.f0 = 1; gUnknown_203B274->s348.unk9C.f1 = 0; gUnknown_203B274->s348.unk9C.f2 = 0xC; gUnknown_203B274->s348.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B274->s348.s0.input, sub_801F7E4(), 4, param_2); sub_801F690(); sub_801F700(); @@ -108,7 +108,7 @@ u16 sub_801F5B4(void) void sub_801F5F0(bool8 r0) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B274->s348.s0.unk3C, FALSE, FALSE); sub_8013984(&gUnknown_203B274->s348.s0.input); sub_801F690(); sub_801F700(); @@ -120,9 +120,9 @@ void sub_801F63C(void) { if(gUnknown_203B274 != NULL) { - gUnknown_203B274->s348.s0.unk3C[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC; + gUnknown_203B274->s348.s0.unk3C.a0[gUnknown_203B274->s348.s0.unk34] = sUnknown_80DC2AC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B274->s348.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B274); gUnknown_203B274 = NULL; } diff --git a/src/code_801F808.c b/src/code_801F808.c index 7e42bc5a9..9fd0847bc 100644 --- a/src/code_801F808.c +++ b/src/code_801F808.c @@ -24,7 +24,7 @@ struct unkStruct_203B278 MenuInputStruct unk28; u32 unk5C; UnkTextStruct2 *unk60; - UnkTextStruct2 unk64[4]; + UnkTextStruct3 unk64; UnkTextStruct2_sub2 unkC4; MenuInputStructSub unkC8; }; @@ -55,10 +55,10 @@ bool8 sub_801F808(u16 *moveIDs) ResetSprites(TRUE); gUnknown_203B278 = MemoryAlloc(sizeof(struct unkStruct_203B278), 8); gUnknown_203B278->unk5C = 0; - gUnknown_203B278->unk60 = gUnknown_203B278->unk64; - sub_80140B4(gUnknown_203B278->unk64); + gUnknown_203B278->unk60 = &gUnknown_203B278->unk64.a0[0]; + sub_80140B4(&gUnknown_203B278->unk64); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B278->unk64, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B278->unk64, TRUE, TRUE); gUnknown_203B278->moveIDs = moveIDs; for(index = 4; index > 1; index--) @@ -93,9 +93,9 @@ void sub_801F8D0(void) { if(gUnknown_203B278) { - gUnknown_203B278->unk64[gUnknown_203B278->unk5C] = sUnknown_80DC2F8; + gUnknown_203B278->unk64.a0[gUnknown_203B278->unk5C] = sUnknown_80DC2F8; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B278->unk64, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B278->unk64, TRUE, TRUE); MemoryFree(gUnknown_203B278); gUnknown_203B278 = NULL; } @@ -110,7 +110,7 @@ void sub_801F918(s32 newState) void sub_801F930(void) { - sub_80140B4(gUnknown_203B278->unk64); + sub_80140B4(&gUnknown_203B278->unk64); switch(gUnknown_203B278->state) { case 0: @@ -120,11 +120,11 @@ void sub_801F930(void) gUnknown_203B278->unkC4.f2 = 0x10; gUnknown_203B278->unkC4.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B278->unk64, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B278->unk64, TRUE, TRUE); break; case 1: ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B278->unk64, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B278->unk64, TRUE, TRUE); break; default: break; diff --git a/src/code_80227B8.c b/src/code_80227B8.c index 1558bce6d..80eb414c2 100644 --- a/src/code_80227B8.c +++ b/src/code_80227B8.c @@ -109,28 +109,28 @@ static void sub_802293C(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B294->unk148); + RestoreUnkTextStruct_8006518(&sUnknown_203B294->unk148); switch (sUnknown_203B294->state) { case 2: sub_8022D2C(); - sUnknown_203B294->unk148[2] = sUnknown_80DC5BC; - sub_8012CAC(&sUnknown_203B294->unk148[2], sUnknown_203B294->unkF8); - sUnknown_203B294->unk148[2].unkC = 6; + sUnknown_203B294->unk148.a0[2] = sUnknown_80DC5BC; + sub_8012CAC(&sUnknown_203B294->unk148.a0[2], sUnknown_203B294->unkF8); + sUnknown_203B294->unk148.a0[2].unkC = 6; break; case 3: - sUnknown_203B294->unk148[1] = sUnknown_80DC5D4; + sUnknown_203B294->unk148.a0[1] = sUnknown_80DC5D4; break; default: for (i = 0; i < 4; i++) - sUnknown_203B294->unk148[i] = sUnknown_80DC5A4; + sUnknown_203B294->unk148.a0[i] = sUnknown_80DC5A4; break; case 10 ... 16: break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B294->unk148, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B294->unk148, TRUE, TRUE); } static void sub_8022A10(void) diff --git a/src/code_8023144.c b/src/code_8023144.c index 81dfb5e1c..6be4b4f7d 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -33,7 +33,7 @@ static void sub_8023730(void); static void sub_8023758(void); static void sub_80237E0(void); -bool8 sub_8023144(s32 a0, s32 index, UnkTextStruct2_sub *sub, u32 a3) +bool8 sub_8023144(s32 a0, s32 index, DungeonPos *sub, u32 a3) { u8 param_1_u8 = a0; @@ -47,18 +47,18 @@ bool8 sub_8023144(s32 a0, s32 index, UnkTextStruct2_sub *sub, u32 a3) gUnknown_3001B5C->unk4 = gUnknown_203B298; gUnknown_3001B5C->s35C.s0.unk34 = index; - gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.unk3C[index]; - RestoreUnkTextStruct_8006518(gUnknown_3001B5C->s35C.s0.unk3C); - gUnknown_3001B5C->s35C.s0.unk3C[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC91C; + gUnknown_3001B5C->s35C.s0.unk38 = &gUnknown_3001B5C->s35C.s0.unk3C.a0[index]; + RestoreUnkTextStruct_8006518(&gUnknown_3001B5C->s35C.s0.unk3C); + gUnknown_3001B5C->s35C.s0.unk3C.a0[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC91C; gUnknown_3001B5C->s35C.s0.unk38->unk14 = &gUnknown_3001B5C->s35C.unk9C; if (sub != NULL) - gUnknown_3001B5C->s35C.s0.unk3C[gUnknown_3001B5C->s35C.s0.unk34].unk8 = *sub; + gUnknown_3001B5C->s35C.s0.unk3C.a0[gUnknown_3001B5C->s35C.s0.unk34].pos = *sub; sub_8012D08(gUnknown_3001B5C->s35C.s0.unk38, a3); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_3001B5C->s35C.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_3001B5C->s35C.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_3001B5C->s35C.s0.input, sub_80236A4(), a3, index); gUnknown_3001B5C->s35C.s0.input.menuIndex = gUnknown_203B29C; gUnknown_3001B5C->s35C.s0.input.unk1E = gUnknown_203B29E; @@ -112,7 +112,7 @@ s16 sub_802331C(void) void sub_8023354(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_3001B5C->s35C.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_3001B5C->s35C.s0.unk3C, FALSE, FALSE); sub_8013984(&gUnknown_3001B5C->s35C.s0.input); sub_8023420(); sub_80234BC(); @@ -127,9 +127,9 @@ 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.unk3C[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC904; + gUnknown_3001B5C->s35C.s0.unk3C.a0[gUnknown_3001B5C->s35C.s0.unk34] = sUnknown_80DC904; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_3001B5C->s35C.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_3001B5C->s35C.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_3001B5C); gUnknown_3001B5C = NULL; } diff --git a/src/code_8024458.c b/src/code_8024458.c index 5547d28d8..e8e3cb418 100644 --- a/src/code_8024458.c +++ b/src/code_8024458.c @@ -26,9 +26,9 @@ bool8 sub_8024458(s16 speciesNum, s32 a1) sUnknown_203B2AC = MemoryAlloc(sizeof(struct unkStruct_203B2AC), 8); sUnknown_203B2AC->speciesNum = speciesNum_s32; sUnknown_203B2AC->unkE0 = a1; - sUnknown_203B2AC->unkE4 = &sUnknown_203B2AC->unkE8[a1]; - RestoreUnkTextStruct_8006518(sUnknown_203B2AC->unkE8); - sUnknown_203B2AC->unkE8[sUnknown_203B2AC->unkE0] = sUnknown_80DC9C8; + sUnknown_203B2AC->unkE4 = &sUnknown_203B2AC->unkE8.a0[a1]; + RestoreUnkTextStruct_8006518(&sUnknown_203B2AC->unkE8); + sUnknown_203B2AC->unkE8.a0[sUnknown_203B2AC->unkE0] = sUnknown_80DC9C8; sUnknown_203B2AC->unkE4->unk14 = &sUnknown_203B2AC->unk148; sUnknown_203B2AC->unk148.f2 = 10; sub_8024604(); @@ -64,9 +64,9 @@ void sub_802452C(void) void sub_802453C(void) { if (sUnknown_203B2AC != NULL) { - sUnknown_203B2AC->unkE8[sUnknown_203B2AC->unkE0] = sUnknown_80DC9B0; + sUnknown_203B2AC->unkE8.a0[sUnknown_203B2AC->unkE0] = sUnknown_80DC9B0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2AC->unkE8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2AC->unkE8, TRUE, TRUE); MemoryFree(sUnknown_203B2AC); sUnknown_203B2AC = NULL; } @@ -78,7 +78,7 @@ static void sub_8024588(void) sUnknown_203B2AC->unk148.f1 = sUnknown_203B2AC->input.unk1E; sUnknown_203B2AC->unk148.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2AC->unkE8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2AC->unkE8, TRUE, TRUE); } static void sub_80245D0(void) diff --git a/src/code_802DB28.c b/src/code_802DB28.c index 8205833b3..b540962e7 100644 --- a/src/code_802DB28.c +++ b/src/code_802DB28.c @@ -92,18 +92,18 @@ static void sub_802DC40(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B2FC->unk48); + RestoreUnkTextStruct_8006518(&sUnknown_203B2FC->unk48); switch (sUnknown_203B2FC->state) { case 0: case 7: for (i = 0; i < 4; i++) - sUnknown_203B2FC->unk48[i] = sUnknown_80E016C; + sUnknown_203B2FC->unk48.a0[i] = sUnknown_80E016C; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2FC->unk48, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2FC->unk48, TRUE, TRUE); } static void sub_802DC9C(void) diff --git a/src/code_802DE84.c b/src/code_802DE84.c index 943d909a1..42806cfb7 100644 --- a/src/code_802DE84.c +++ b/src/code_802DE84.c @@ -22,9 +22,9 @@ bool8 sub_802DE84(unkStruct_802C39C *mail) sUnknown_203B300->mail = mail; sub_801317C(&sUnknown_203B300->unk0); sUnknown_203B300->unk10 = sUnknown_203B300->mail->unk0[0]; - sUnknown_203B300->unk14 = &sUnknown_203B300->unk18[sUnknown_203B300->unk10]; - RestoreUnkTextStruct_8006518(sUnknown_203B300->unk18); - sUnknown_203B300->unk18[sUnknown_203B300->unk10] = sUnknown_80E0264; + sUnknown_203B300->unk14 = &sUnknown_203B300->unk18.a0[sUnknown_203B300->unk10]; + RestoreUnkTextStruct_8006518(&sUnknown_203B300->unk18); + sUnknown_203B300->unk18.a0[sUnknown_203B300->unk10] = sUnknown_80E0264; sub_802DF14(); return TRUE; } @@ -52,9 +52,9 @@ static void sub_802DF14(void) void sub_802DF24(void) { if (sUnknown_203B300 != NULL) { - sUnknown_203B300->unk18[sUnknown_203B300->unk10] = sUnknown_80E0248; + sUnknown_203B300->unk18.a0[sUnknown_203B300->unk10] = sUnknown_80E0248; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B300->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B300->unk18, TRUE, TRUE); MemoryFree(sUnknown_203B300); sUnknown_203B300 = NULL; } @@ -63,7 +63,7 @@ void sub_802DF24(void) static void sub_802DF6C(void) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B300->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B300->unk18, TRUE, TRUE); } static void sub_802DF88(void) diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 50fd743b0..438aa1e81 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -19,7 +19,7 @@ struct unkStruct_203B334 MenuInputStructSub unk4; u32 unk10; UnkTextStruct2 *unk14; - UnkTextStruct2 unk18[4]; + UnkTextStruct3 unk18; u8 unk78[4]; }; @@ -58,9 +58,9 @@ bool8 sub_8031D70(u32 mailIndex, s32 param_2) gUnknown_203B334->mailIndex = mailIndex; sub_801317C(&gUnknown_203B334->unk4); gUnknown_203B334->unk10 = param_2; - gUnknown_203B334->unk14 = &gUnknown_203B334->unk18[param_2]; - RestoreUnkTextStruct_8006518(gUnknown_203B334->unk18); - gUnknown_203B334->unk18[gUnknown_203B334->unk10] = gUnknown_80E1FC4; + gUnknown_203B334->unk14 = &gUnknown_203B334->unk18.a0[param_2]; + RestoreUnkTextStruct_8006518(&gUnknown_203B334->unk18); + gUnknown_203B334->unk18.a0[gUnknown_203B334->unk10] = gUnknown_80E1FC4; sub_8031E00(); return TRUE; } @@ -90,9 +90,9 @@ void sub_8031E10(void) { if(gUnknown_203B334) { - gUnknown_203B334->unk18[gUnknown_203B334->unk10] = gUnknown_80E1FA8; + gUnknown_203B334->unk18.a0[gUnknown_203B334->unk10] = gUnknown_80E1FA8; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B334->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B334->unk18, TRUE, TRUE); MemoryFree(gUnknown_203B334); gUnknown_203B334 = NULL; } @@ -101,7 +101,7 @@ void sub_8031E10(void) void sub_8031E58(void) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B334->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B334->unk18, TRUE, TRUE); } void DrawSOSPasswordScreen(void) diff --git a/src/code_803E724.c b/src/code_803E724.c index 847abf862..c640b874d 100644 --- a/src/code_803E724.c +++ b/src/code_803E724.c @@ -45,10 +45,10 @@ extern MenuInputStruct gUnknown_202EE10; extern SpriteOAM gUnknown_202EDDC; extern const RGB gUnknown_80F62AC; -extern const struct UnkTextStruct2 gUnknown_80F62B0[]; -extern const struct UnkTextStruct2 gUnknown_80F6310[]; -extern const struct UnkTextStruct2 gUnknown_80F6370[]; -extern const struct UnkTextStruct2 gUnknown_80F63D0[]; +extern const struct UnkTextStruct3 gUnknown_80F62B0; +extern const struct UnkTextStruct3 gUnknown_80F6310; +extern const struct UnkTextStruct3 gUnknown_80F6370; +extern const struct UnkTextStruct3 gUnknown_80F63D0; extern const u32 gUnknown_80F6490[]; extern const s32 gUnknown_80F64B4[]; extern const s32 gUnknown_80F64FC[]; @@ -203,7 +203,7 @@ void sub_803EAF0(u32 a0, u8 *a1) } break; case 3: - xxx_call_save_unk_text_struct_800641C(gUnknown_80F62B0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_80F62B0, TRUE, TRUE); if (gUnknown_203B40C != 0) { sub_8040ABC(1); } @@ -213,14 +213,14 @@ void sub_803EAF0(u32 a0, u8 *a1) sub_8052210(0); } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_80F6310, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_80F6310, TRUE, TRUE); break; case 7: if (gUnknown_203B40C != 0) { sub_8052210(0); } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_80F6370, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_80F6370, TRUE, TRUE); break; case 2: case 4: @@ -250,7 +250,7 @@ void sub_803EAF0(u32 a0, u8 *a1) sub_8083D44(); } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_80F63D0, FALSE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_80F63D0, FALSE, TRUE); break; case 10: sub_8083D44(); @@ -272,7 +272,7 @@ void sub_803EC94(void) sub_801317C(&gUnknown_202EE10.unk28); } -void sub_803ECB4(UnkTextStruct2 *a0, bool8 a1) +void sub_803ECB4(UnkTextStruct3 *a0, bool8 a1) { gUnknown_202EDD0 = 10; sub_8052210(0); diff --git a/src/code_805D8C8_1.c b/src/code_805D8C8_1.c index e81651380..1572cae31 100644 --- a/src/code_805D8C8_1.c +++ b/src/code_805D8C8_1.c @@ -111,7 +111,7 @@ void sub_806752C(ActionContainer *a0); bool8 sub_8061A38(ActionContainer *a0, bool8 a1); void sub_8063A70(ActionContainer *a0, bool8 a1); void sub_8063CF0(ActionContainer *a0, bool8 a1); -void sub_8067768(UNUSED ActionContainer *a0); +void sub_8067768(ActionContainer *a0); void ShowTacticsMenu(ActionContainer *a0); void sub_804A728(DungeonPos *pos, s32 a1, u8 a2, u8 a3); extern bool8 sub_8071A8C(Entity *pokemon); @@ -1675,14 +1675,6 @@ extern bool8 sub_8044F3C(s32 param_1); extern s32 gUnknown_202EE6C; extern const u8 gUnknown_8106B50[]; -typedef struct UnkTextStruct3 { - UnkTextStruct2 a0[4]; - // Something ugly, so that sub_805FD74 could match weird compiler memcpy/stack initialization - #ifndef NONMATCHING - u8 fakeMatch[0]; - #endif // NONMATCHING -} UnkTextStruct3; - extern void sub_803ECB4(UnkTextStruct3 *a0, u8 a1); static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextStruct3 *a4, UnkTextStruct2_sub2 *a5); @@ -1692,8 +1684,8 @@ static inline void sub_805FC30_SetUpTxtStruct(UnkTextStruct3 *src) memset(src, 0, sizeof(*src)); src->a0[0].unk4 = 3; src->a0[1].unk4 = 3; - src->a0[1].unk8.unk0.separate.unk0 = 0x16; - src->a0[1].unk8.unk0.separate.unk2 = 4; + src->a0[1].pos.x = 0x16; + src->a0[1].pos.y = 4; src->a0[1].unkC = 6; src->a0[1].unkE = 4; src->a0[1].unk10 = 4; @@ -1724,7 +1716,7 @@ void sub_805FC30(UnkTextStruct3 *a0, s32 a1) sub_801317C(&gUnknown_202EE10.unk28); - sp.a0[1].unk8.unk0.separate.unk0 = a1; + sp.a0[1].pos.x = a1; sp.a0[1].unkC = 28 - a1; sp.a0[1].unkE = sp.a0[1].unk10 = sub_80095E4(gUnknown_202EE10.unk1C, 0); sub_803ECB4(&sp, 0); @@ -1792,7 +1784,7 @@ bool8 sub_805FD74(Entity * a0, struct UnkMenuBitsStruct *a1) [0] = { .unk4 = 6, - .unk8 = {2, 2}, + .pos = {2, 2}, .unkC = 0x12, .unkE = 0x10, .unk10 = 0x10, @@ -2097,11 +2089,11 @@ static void CreateFieldItemMenu(s32 a0, Entity *a1, bool8 a2, bool8 a3, UnkTextS if (a2) { gUnknown_202EE10.unkC += 0x40; - a4->a0[0].unk8.unk0.separate.unk0 = 0xA; + a4->a0[0].pos.x = 0xA; a4->a0[1] = var_94; } else { - a4->a0[0].unk8.unk0.separate.unk0 = 2; + a4->a0[0].pos.x = 2; a4->a0[1] = a4->a0[3]; } @@ -2531,8 +2523,8 @@ bool8 sub_8060E38(Entity *a0) UnkTextStruct3 var_84 = {0}; var_84.a0[0].unk4 = 6; - var_84.a0[0].unk8.unk0.separate.unk0 = 2; - var_84.a0[0].unk8.unk0.separate.unk2 = 2; + var_84.a0[0].pos.x = 2; + var_84.a0[0].pos.y = 2; var_84.a0[0].unkC = 0xE; var_84.a0[0].unkE = 0x10; var_84.a0[0].unk10 = 0x10; @@ -2550,7 +2542,7 @@ bool8 sub_8060E38(Entity *a0) if (!gDungeon->unk644.unk17) { var_84.a0[0].unk4 = 3; - var_84.a0[0].unk8.unk0.arr[1]++; + var_84.a0[0].pos.y++; } while (1) { @@ -2884,8 +2876,8 @@ static inline void SetTxtStruct(UnkTextStruct3 *sp) { memset(sp, 0, sizeof(*sp)); sp->a0[0].unk4 = 6; - sp->a0[0].unk8.unk0.separate.unk0 = 2; - sp->a0[0].unk8.unk0.separate.unk2 = 2; + sp->a0[0].pos.x = 2; + sp->a0[0].pos.y = 2; sp->a0[0].unkC = 0x12; sp->a0[0].unkE = 0xE; sp->a0[0].unk10 = 0x12; diff --git a/src/code_8066D04.c b/src/code_8066D04.c index 9462a3811..5a6c20b04 100644 --- a/src/code_8066D04.c +++ b/src/code_8066D04.c @@ -1,15 +1,42 @@ #include "global.h" +#include "globaldata.h" #include "code_8045A00.h" #include "dungeon_message.h" #include "code_807CD9C.h" +#include "code_8041AD0.h" +#include "code_806CD90.h" #include "dungeon_map_access.h" #include "dungeon_movement.h" #include "dungeon_music.h" +#include "position_util.h" #include "dungeon_util.h" #include "items.h" +#include "input.h" +#include "text.h" +#include "code_803E46C.h" #include "string_format.h" +#include "friend_area.h" +#include "dungeon_leader.h" +#include "status_checks_1.h" +#include "dungeon_ai_targeting.h" +#include "dungeon_engine.h" +#include "dungeon_move.h" +#include "dungeon_items.h" +#include "dungeon_random.h" +#include "code_8077274_1.h" +#include "code_8084778.h" +#include "pokemon.h" +#include "trap.h" +#include "moves.h" +#include "pokemon_3.h" +#include "menu_input.h" +#include "dungeon_capabilities.h" +#include "constants/item.h" +#include "constants/dungeon.h" +#include "constants/move_id.h" extern u8 *gUnknown_80F8BE0[]; +extern u8 *gUnknown_80FF76C[]; extern u8 *gItemStickyCannotMove1[]; extern u8 *gItemStickyCannotMove2[]; extern u8 *gItemStickyCannotEquip[]; @@ -25,15 +52,69 @@ extern u8 *gUnknown_80F8DB4[]; extern u8 *gUnknown_80F8DE0[]; extern u8 *gUnknown_80F8E04[]; extern u8 *gUnknown_80F8E28[]; +extern u8 *gItemStickyCannotMove3[]; +extern u8 *gNothingCanBePutDownHere[]; +extern u8 *gUnknown_80F8E2C[]; +extern u8 *gNoExchangesHere[]; +extern u8 *gSwappedGroundItem[]; +extern const u8 *const gMonThrewItem2; +extern const u8 *const gMonThrewItem1; +extern const u8 *const gCannotFarewell; +extern const u8 *const gSayFarewellQ; +extern const u8 *const gUnknown_80FDFB8; +extern const u8 *const gUnknown_80F913C; +extern const u8 *const gCannotTalk; +extern const u8 *const gUnknown_80FE008; +extern const u8 *const gUnknown_80FDF74; +extern const u8 *const gUnknown_80FF674; +extern const u8 *const gUnknown_80F9114; +extern const u8 *const gMonDisappointedAndLeft; +extern const u8 *const gSendMonBackQ; +extern const u8 *const gSendMonBackWithItemQ; +extern const u8 *const gMonWentBack; +extern const u8 *const gMonCringing; +extern const u8 *const gMonParalyzed; +extern const u8 *const gUnknown_80FC690; +extern s32 gUnknown_202EE6C; +extern u32 gUnknown_202F208; + +extern void sub_8071DA4(Entity *); +extern void sub_806A1B0(Entity *); +extern void sub_806A9B4(Entity *, u32); +extern void sub_8057588(Entity * pokemon, u8 param_2); +extern void sub_8068FE0(Entity *, u32, Entity *r2); +extern bool8 sub_806A58C(s16 a0); +extern bool8 sub_806A564(s16 r0); +extern void sub_8045C08(u8 *buffer, Item *item); +extern bool8 sub_8045888(Entity *); extern Item *sub_8044D90(Entity *, s32, u32); void sub_8045BF8(u8 *, Item *); +u8 sub_8048D50(); +void sub_8044FF0(u16 param_1); +u8 * sub_80464AC(); +void sub_8044F5C(u16 param_1, u8 param_2); +void sub_8044DF0(); +void sub_8042208(Entity *pokemon, u8 r1); +void sub_803E708(); +void sub_80479B8(); u8 sub_80460F8(DungeonPos *, Item *, u32); extern void sub_807AB38(Entity *, u32); extern Entity * sub_8044DA4(Entity *param_1,int param_2); extern void sub_806A6E8(Entity *); extern void sub_8044DF0(Entity *, u32, u32); extern void sub_8045DB4(DungeonPos *, u32); +extern bool8 sub_80461C8(DungeonPos *, u32); +extern bool32 sub_8055A00(Entity *attacker, s32 firstMoveId, s32 var_34, s32 itemId, s32 arg_0); +extern bool8 sub_8044B28(void); +Entity *sub_806773C(Entity *entity); +void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2); +void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2); +extern void sub_807EF84(void); +extern void sub_80845E0(Entity *entity); +extern void sub_8084448(Entity *entity); +extern void sub_806A3D4(u8 *dst, s32 _a1, s32 id, bool32 _a3); +extern Entity * sub_80696A8(Entity *target); void HandlePickUpPlayerAction(Entity *entity) { @@ -83,7 +164,6 @@ void HandleSetItemAction(Entity *param_1, bool8 param_2) } } - void HandleUnsetItemAction(Entity *entity,bool8 enableMessage) { Item *item; @@ -108,7 +188,6 @@ void HandleUnsetItemAction(Entity *entity,bool8 enableMessage) } } - void HandleGiveItemAction(Entity *param_1) { Entity *entity; @@ -186,7 +265,6 @@ void HandleGiveItemAction(Entity *param_1) } } - void HandleTakeItemAction(Entity *param_1) { Entity *entity; @@ -322,3 +400,987 @@ void HandlePlaceItemAction(Entity *entity) } } } + +void sub_8066E14(Entity *entity) +{ + Item *item[2]; + EntityInfo *info = GetEntInfo(entity); + item[0] = sub_8044D90(entity,0,5); + item[1] = sub_8044D90(entity,1,6); + + if (info->action.actionParameters[0].actionUseIndex != 0x80) { + LogMessageByIdWithPopupCheckUser(entity,*gUnknown_80F8E2C); + } + else if (info->action.actionParameters[1].actionUseIndex < 0x15 && (item[1]->flags & ITEM_FLAG_SET) && (item[1]->flags & ITEM_FLAG_STICKY)) { + sub_8045BF8(gFormatBuffer_Items[0],item[1]); + LogMessageByIdWithPopupCheckUser(entity,*gUnknown_80F8BE0); + } + else if (info->action.actionParameters[1].actionUseIndex == 0x81 && ItemSticky(item[1])) { + sub_8045BF8(gFormatBuffer_Items[1],item[1]); + LogMessageByIdWithPopupCheckUser(entity,*gItemStickyCannotMove3); + } + else { + const Tile *tile = GetTile((entity->pos).x,(entity->pos).y); + if (tile->object != NULL && GetEntityType(tile->object) != ENTITY_ITEM) { + LogMessageByIdWithPopupCheckUser(entity,*gNoExchangesHere); + } + else { + Item newItems[2]; + + newItems[0] = *item[0]; + newItems[1] = *item[1]; + newItems[0].flags &= ~(ITEM_FLAG_SET); + newItems[1].flags &= ~(ITEM_FLAG_SET); + + sub_80461C8(&info->action.actionParameters[0].itemPos,1); + ZeroOutItem(item[1]); + if (!sub_80460F8(&info->action.actionParameters[0].itemPos,&newItems[1],1)) { + LogMessageByIdWithPopupCheckUser(entity,*gNothingCanBePutDownHere); + } + else { + if (info->action.actionParameters[1].actionUseIndex == 0x81) { + info->heldItem = newItems[0]; + } + else { + AddItemToInventory(&newItems[0]); + } + + FillInventoryGaps(); + sub_8045BF8(gFormatBuffer_Items[0],&newItems[1]); + sub_8045BF8(gFormatBuffer_Items[1],&newItems[0]); + PlaySoundEffect(0x14d); + LogMessageByIdWithPopupCheckUser(entity,*gSwappedGroundItem); + sub_807AB38(entity,gDungeon->forceMonsterHouse); + } + } + } +} + +void sub_8066FA4(Entity *entity) +{ + Item *item[2]; + EntityInfo *info = GetEntInfo(entity); + const Tile *tile = GetTile((entity->pos).x,(entity->pos).y); + + item[0] = sub_8044D90(entity,0,7); + sub_8045BF8(gFormatBuffer_Items[0],item[0]); + if (info->action.actionParameters[0].actionUseIndex < 0x15 && (item[0]->flags & ITEM_FLAG_SET) && (item[0]->flags & ITEM_FLAG_STICKY)) { + sub_8045BF8(gFormatBuffer_Items[1],item[0]); + LogMessageByIdWithPopupCheckUser(entity,*gItemStickyCannotMove3); + } + else if (info->action.actionParameters[0].actionUseIndex == 0x81 && ItemSticky(item[0])) { + LogMessageByIdWithPopupCheckUser(entity,*gItemStickyCannotMove2); + } + else if (tile->object != NULL && GetEntityType(tile->object) != ENTITY_ITEM) { + LogMessageByIdWithPopupCheckUser(entity,*gNoExchangesHere); + } + else { + Item newItems[2]; + + item[1] = GetItemData(tile->object); + sub_8045BF8(gFormatBuffer_Items[1],item[1]); + newItems[0] = *item[0]; + newItems[1] = *item[1]; + newItems[0].flags &= ~(ITEM_FLAG_SET); + newItems[1].flags &= ~(ITEM_FLAG_SET); + + sub_80461C8(&entity->pos,1); + ZeroOutItem(item[0]); + if (!sub_80460F8(&entity->pos, &newItems[0],1)) { + LogMessageByIdWithPopupCheckUser(entity,*gNothingCanBePutDownHere); + } + else { + if (info->action.actionParameters[0].actionUseIndex == 0x81) { + info->heldItem = newItems[1]; + } + else { + AddItemToInventory(&newItems[1]); + } + FillInventoryGaps(); + PlaySoundEffect(0x14d); + LogMessageByIdWithPopupCheckUser(entity,*gSwappedGroundItem); + sub_807AB38(entity,gDungeon->forceMonsterHouse); + } + } +} + +void sub_8067110(Entity *entity) +{ + EntityInfo *info = GetEntInfo(entity); + Item *item = sub_8044D90(entity,0,8); + + sub_8045BF8(gFormatBuffer_Items[0],item); + SetMessageArgument_2(gFormatBuffer_Monsters[0],info,0); + if (sub_8048D50(entity,item)) { + Item item2; + + LogMessageByIdWithPopupCheckUser(entity,sub_80464AC(item)); + item2 = *item; + sub_8044DF0(entity,0,0x66); + sub_803E708(0x1e,0x11); + sub_80479B8(0,0,0,entity,entity,&item2); + sub_807AB38(entity,gDungeon->forceMonsterHouse); + } +} + +struct UnkStruct_8067110 +{ + u8 unk0; + u8 unk1; + s16 unk2; +}; + +extern void sub_8083904(DungeonPos *pos, Entity *entity); +extern void sub_80475C4(Entity *entity, Item *item, DungeonPos *pos1, DungeonPos *pos2, struct UnkStruct_8067110 *); +extern void sub_8047190(Entity *entity, Item *item, DungeonPos *pos1, s32 dir, struct UnkStruct_8067110 *); + +void sub_80671A0(Entity *entity) +{ + EntityInfo *info = GetEntInfo(entity); + Item *item = sub_8044D90(entity, 0, 9); + + if (info->action.actionParameters[0].actionUseIndex == 0x81 && ItemSticky(item)) { + sub_8045BF8(gFormatBuffer_Items[0], item); + LogMessageByIdWithPopupCheckUser(entity, *gUnknown_80F8BE0); + sub_803E708(0x14, 0x4C); + } + else if ((GetItemCategory(item->id) == CATEGORY_THROWN_LINE || GetItemCategory(item->id) == CATEGORY_THROWN_ARC) && ItemSticky(item)) { + sub_8045BF8(gFormatBuffer_Items[0], item); + LogMessageByIdWithPopupCheckUser(entity, *gUnknown_80F8BE0); + sub_803E708(0x14, 0x4C); + } + else if (ShouldMonsterRunAwayAndShowEffect(entity, TRUE)) { + LogMessageByIdWithPopupCheckUser(entity, *gUnknown_80FF76C); + sub_803E708(0x14, 0x4C); + } + else { + bool8 r7; + Item newItem; + DungeonPos pos; + struct UnkStruct_8067110 unkStruct; + + newItem = *item; + newItem.flags &= ~(ITEM_FLAG_SET); + + if (info->action.actionParameters[0].actionUseIndex == 0x80) { + item = NULL; + sub_80461C8(&info->action.actionParameters[0].itemPos, 1); + } + + r7 = TRUE; + if ((GetItemCategory(newItem.id) == CATEGORY_THROWN_LINE || GetItemCategory(newItem.id) == CATEGORY_THROWN_ARC) && (newItem.quantity > 1)) { + r7 = FALSE; + } + + if (r7) { + if (info->action.actionParameters[0].actionUseIndex != 0x80) { + ZeroOutItem(item); + FillInventoryGaps(); + } + } + else { + if (info->action.actionParameters[0].actionUseIndex == 0x80) { + newItem.quantity--; + sub_80460F8(&info->action.actionParameters[0].itemPos, &newItem, 1); + } + else { + item->quantity--; + } + } + + if (HasHeldItem(entity, ITEM_NO_AIM_SCOPE)) { + info->action.direction = DungeonRandInt(NUM_DIRECTIONS); + } + + if (sub_8045888(entity)) { + s32 i; + s32 dir = info->action.direction; + sub_80421C0(entity, 0x164); + + for (i = 0; i < NUM_DIRECTIONS; i++) { + dir--; + dir &= DIRECTION_MASK; + sub_806CDD4(entity, 0, dir); + sub_803E708(2, 21); + } + info->unk166 = 4; + } + + if ((GetItemCategory(newItem.id) == CATEGORY_THROWN_LINE || GetItemCategory(newItem.id) == CATEGORY_THROWN_ARC)) { + newItem.quantity = 1; + } + + sub_8045C08(gFormatBuffer_Items[0], &newItem); + SetMessageArgument_2(gFormatBuffer_Monsters[0], info, 0); + if (GetItemCategory(newItem.id) == CATEGORY_THROWN_LINE) { + LogMessageByIdWithPopupCheckUser(entity, gMonThrewItem2); + } + else { + LogMessageByIdWithPopupCheckUser(entity, gMonThrewItem1); + } + + sub_8042208(entity, GetItemCategory(newItem.id)); + if (HasHeldItem(entity, ITEM_CURVE_BAND)) { + unkStruct.unk1 = 1; + } + else { + unkStruct.unk1 = 0; + } + + switch (info->longTossClassStatus.status) { + case 0: + unkStruct.unk0 = 0; + unkStruct.unk2 = 10; + break; + case STATUS_LONG_TOSS: + unkStruct.unk0 = 0; + unkStruct.unk2 = 99; + break; + case STATUS_PIERCE: + unkStruct.unk0 = 1; + unkStruct.unk2 = 99; + break; + } + + if (HasHeldItem(entity, ITEM_PIERCE_BAND)) { + unkStruct.unk0 = 1; + unkStruct.unk2 = 99; + } + + if (GetItemCategory(newItem.id) == CATEGORY_THROWN_ARC) { + sub_8083904(&pos, entity); + sub_80475C4(entity, &newItem, &entity->pos, &pos, &unkStruct); + } + else { + sub_8047190(entity, &newItem, &entity->pos, info->action.direction, &unkStruct); + } + + if (EntityIsValid(entity)) { + sub_806CE68(entity, info->action.direction); + sub_807AB38(entity,gDungeon->forceMonsterHouse); + } + } +} + +void HandleTalkFieldAction(Entity *entity) +{ + sub_8067558(entity, sub_806773C(entity), -1); +} + +void sub_806752C(ActionContainer *a0) +{ + Entity *targetEntity = gDungeon->teamPokemon[a0->actionParameters[0].actionUseIndex]; + sub_8067558(GetLeader(), targetEntity, 0); +} + +void sub_8067558(Entity *entity, Entity *targetEntity, s32 a2) +{ + EntityInfo *info1 = GetEntInfo(entity); + + if (targetEntity == NULL) { + DisplayDungeonMessage(NULL, gCannotTalk, TRUE); + } + else if (!sub_8070BC0(entity)) { + DisplayDungeonMessage(NULL, gCannotTalk, TRUE); + } + else if (GetTreatmentBetweenMonsters(entity, targetEntity, TRUE, FALSE) != 1 + && GetTreatmentBetweenMonsters(targetEntity, entity, TRUE, FALSE) != 1) + { + EntityInfo *info2 = GetEntInfo(targetEntity); + + SetMessageArgument_2(gFormatBuffer_Monsters[0], info2, 0); + SetMessageArgument_2(gFormatBuffer_Monsters[1], info1, 7); + sub_8084778(); + TrySendImmobilizeSleepEndMsg(entity, targetEntity); + if (!sub_8070BC0(targetEntity) || CheckVariousStatuses2(targetEntity, TRUE)) { + DisplayDungeonMessage(NULL, gUnknown_80FE008, TRUE); + return; + } + + sub_806CEFC(entity, GetDirectionTowardsPosition(&entity->pos, &targetEntity->pos)); + if (a2 >= 0) { + sub_806CEFC(targetEntity, a2); + } + else { + sub_806CEFC(targetEntity, info1->action.direction + 4); + } + + if (info2->shopkeeper == SHOPKEEPER_MODE_SHOPKEEPER) { + sub_807EF84(); + return; + } + + if (info2->monsterBehavior == 1) { + if (gDungeon->unk644.unk2A != 0) { + DisplayDungeonMessage(NULL, gUnknown_80FF674, TRUE); + } + else if (gDungeon->unk644.unk33) { + sub_80845E0(targetEntity); + } + else { + sub_8084448(targetEntity); + } + } + else { + u8 txt[300]; + s32 r2; + s32 speciesId = info2->apparentID; + bool8 r6 = FALSE; + + if (info2->joinedAt.id == DUNGEON_JOIN_LOCATION_CLIENT_POKEMON) { + speciesId = MONSTER_MUNCHLAX; + } + else if (info2->joinedAt.id == DUNGEON_RESCUE_TEAM_BASE) { + speciesId = MONSTER_DECOY; + } + else if (info2->joinedAt.id == DUNGEON_JOIN_LOCATION_PARTNER && !gDungeon->unk644.unk18) { + r6 = TRUE; + } + + if (info2->HP <= info2->maxHPStat / 4) { + r2 = 2; + } + else if (info2->HP <= (info2->maxHPStat * 6) / 10) { + r2 = 1; + } + else { + r2 = 0; + } + + sub_806A3D4(txt, speciesId, r2, r6); + DisplayDungeonMessage(NULL, txt, TRUE); + } + } + else { + DisplayDungeonMessage(NULL, gCannotTalk, TRUE); + } +} + +Entity *sub_806773C(Entity *entity) +{ + Entity *ret = sub_80696A8(entity); + if (ret == NULL) return NULL; + if (GetEntityType(ret) != ENTITY_MONSTER) return NULL; + if (GetEntInfo(entity)->isNotTeamMember) return NULL; + + return ret; +} + +void sub_8067768(ActionContainer *a0) +{ + Entity *targetEntity = gDungeon->teamPokemon[a0->actionParameters[0].actionUseIndex]; + sub_8067794(GetLeader(), targetEntity, 0); +} + +void sub_8067794(Entity *entity, Entity *targetEntity, s32 a2) +{ + const u8 *stringPtr1; + const u8 *stringPtr2; + s32 teamIndex; + EntityInfo *info2 = GetEntInfo(targetEntity); + + if (targetEntity == NULL) { + DisplayDungeonMessage(NULL, gCannotFarewell, TRUE); + return; + } + + SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], targetEntity, 0); + stringPtr1 = gSayFarewellQ; + stringPtr2 = gUnknown_80F913C; + teamIndex = info2->teamIndex; + if (teamIndex >= 0) { + PokemonStruct2 *pokeStruct = &gRecruitedPokemonRef->pokemon2[teamIndex]; + if (sub_806A564(pokeStruct->unkA)) { + stringPtr1 = gUnknown_80F9114; + stringPtr2 = gMonDisappointedAndLeft; + } + else if (sub_806A58C(pokeStruct->unkA)) { + if (IsMakuhitaTrainingMaze()) { + stringPtr1 = gSendMonBackQ; + } + else { + stringPtr1 = gSendMonBackWithItemQ; + } + stringPtr2 = gMonWentBack; + } + } + + if (DisplayDungeonYesNoMessage(NULL, stringPtr1, FALSE) == 1) { + u8 tempText[64]; + + strncpy(tempText, gFormatBuffer_Monsters[0], sizeof(tempText)); + sub_8068FE0(targetEntity, 0x21D, 0); + strncpy(gFormatBuffer_Monsters[0], tempText, sizeof(tempText)); + DisplayDungeonMessage(NULL, stringPtr2, TRUE); + } +} + +void HandleUseMovePlayerAction(Entity *entity) +{ + s32 i = 0; + + while (i < sub_8070828(entity, TRUE)) { + EntityInfo *info = GetEntInfo(entity); + + sub_8055A00(entity, info->action.actionParameters[1].actionUseIndex, 1, 0, 0); + if (sub_8044B28()) { + break; + } + if (info->unk159 != 0) { + break; + } + i++; + } + + sub_8057588(entity, 1); + if (!sub_8044B28()) { + if (EntityIsValid(entity)) { + sub_806A9B4(entity, GetEntInfo(entity)->action.actionParameters[1].actionUseIndex); + } + sub_806A1B0(entity); + } +} + +void sub_8067904(Entity *entity, u16 moveId) +{ + Move move; + EntityInfo *info = GetEntInfo(entity); + + gUnknown_202F208 = 0; + InitPokemonMove(&move, moveId); + if (info->cringeClassStatus.status == STATUS_CRINGE) { + SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], entity, 0); + LogMessageByIdWithPopupCheckUser(entity, gMonCringing); + } + else if (info->burnClassStatus.status == STATUS_PARALYSIS) { + SubstitutePlaceholderStringTags(gFormatBuffer_Monsters[0], entity, 0); + LogMessageByIdWithPopupCheckUser(entity, gMonParalyzed); + } + else { + s32 i; + bool32 isStruggle; + + if (moveId == MOVE_STRUGGLE) { + isStruggle = TRUE; + } + else { + isStruggle = FALSE; + } + + i = 0; + while (i < sub_8070828(entity, TRUE)) { + info->abilityEffectFlags = 0; + move.moveFlags |= 8; + move.moveFlags |= 4; + move.PP = 10; + TryUseChosenMove(entity, isStruggle, 0, 0, FALSE, &move); + + if (!EntityIsValid(entity) || info->unk159 != 0) { + break; + } + i++; + } + + if (EntityIsValid(entity)) { + if (moveId == MOVE_STRUGGLE && gUnknown_202F208 == 0) { + LogMessageByIdWithPopupCheckUser(entity, gUnknown_80FC690); + } + if (info->isTeamLeader && moveId != MOVE_STRUGGLE) { + DungeonPos pos; + + pos.x = entity->pos.x + gAdjacentTileOffsets[info->action.direction].x; + pos.y = entity->pos.y + gAdjacentTileOffsets[info->action.direction].y; + sub_807FE44(&pos, 1); + } + sub_8071DA4(entity); + } + } +} + +extern void sub_80684C4(void); +void sub_8045064(void); +extern void sub_8083CE0(u8 param_1); +extern void sub_8068344(void); +bool8 sub_8044F3C(s32 param_1); +void sub_8068310(s32 a0, PokemonStruct1 **a1); +void sub_8067F00(u8 a0, PokemonStruct1 **a1, s32 a2, s32 a3, s32 a4); +extern void sub_803ECB4(UnkTextStruct3 *a0, u8 a1); +u32 sub_8014140(s32 a0, const void *a1); +void sub_8083D1C(void); +void sub_8083D08(void); +void sub_8083D30(void); +void sub_806806C(PokemonStruct1 *a0); +void sub_805FC30(UnkTextStruct3 *a0, s32 a1); +extern void sub_803EAF0(u32, u8 *); + +extern const s32 gUnknown_8106E80[]; +extern MenuInputStruct gUnknown_202EE10; + +static EWRAM_DATA UnkTextStruct2_sub2 gUnknown_202F308 = {0}; +static EWRAM_DATA s32 gUnknown_202F30C = 0; +EWRAM_DATA s32 gUnknown_202F310 = 0; + +// It's likely a struct only used in Blue version. Touchpad maybe? +static const u8 gUnknown_8106DA4[] = { + 0x01, 0, 0x38, 0, 0, 0, 0x18, 0, 0x18, 0, 0, 0, 0x02, 0, 0x38, 0, 0x68, 0, 0x18, 0, 0x18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 +}; + +static const UnkTextStruct3 gUnknown_8106DC8 = { + .a0 = { + [0] = + { + .unk0 = 0, + .unk4 = 0x06, + .pos = {0x02, 0x02}, + .unkC = 0x11, + .unkE = 0x0E, + .unk10 = 0x12, + .unk12 = 0x02, + .unk14 = &gUnknown_202F308 + }, + [1] = + { + .unk0 = 0, + .unk4 = 0x03, + .pos = {0x15, 0x04}, + .unkC = 0x07, + .unkE = 0x04, + .unk10 = 0x04, + .unk12 = 0, + .unk14 = NULL + }, + [2] = + { + .unk4 = 0x03, + }, + [3] = + { + .unk4 = 0x03, + } + } +}; + +void sub_8067A80(u8 a0, s32 a1, s32 a2, PokemonStruct1 **a3) +{ + s32 i; + s32 r10; + UnkTextStruct3 spTxtStruct = gUnknown_8106DC8; + + gUnknown_202F30C = 0; + r10 = 0; + for (i = 0; i < a2; i++) { + a3[i]->unk0 &= ~(0x8000); + } + + while (1) { + sub_8068310(a2, a3); + if (gUnknown_202F310 >= a1) + break; + while (1) { + s32 r7 = 0, r5 = 0; + + gUnknown_202F308.f0 = 1; + gUnknown_202F308.f1 = 0; + gUnknown_202F308.f2 = 0xE; + gUnknown_202F308.f3 = 0; + + ASM_MATCH_TRICK(r7); + + sub_803ECB4(&spTxtStruct, 1); + sub_8067F00(a0, a3, gUnknown_202F30C, a2, a1); + gUnknown_202EE10.unk1A = min(a2, 8); + gUnknown_202EE10.menuIndex = r10; + gUnknown_202EE10.unk1C = 8; + gUnknown_202EE10.unk1E = 0; + gUnknown_202EE10.unk20 = 0; + gUnknown_202EE10.unk4 = 0; + gUnknown_202EE10.unk6 = 18; + gUnknown_202EE10.unkC = 0; + gUnknown_202EE10.unkE = 0; + gUnknown_202EE10.unk14.x = 0; + gUnknown_202EE10.unk0 = 0; + sub_801317C(&gUnknown_202EE10.unk28); + sub_80137B0(&gUnknown_202EE10, 0); + while (1) { + s32 r4; + + AddMenuCursorSprite(&gUnknown_202EE10); + r5 = 0; + r7 = 0; + if (a2 - gUnknown_202F30C > 8) { + r5 = 1; + sub_80684C4(); + } + if (gUnknown_202F30C != 0) { + r7 = 1; + sub_8068344(); + } + + r4 = sub_8014140(0, gUnknown_8106DA4); + sub_803E46C(0x37); + if (r4 == 2 && r5) { + if (a2 - gUnknown_202F30C > 8) { + s32 i; + for (i = 0; i < 6; i++) { + gIwramTextFunc1(0); + sub_803E46C(0x37); + } + gUnknown_202F30C++; + } + r7 = 0; + r10 = 7; + break; + } + if (gRealInputs.repeated & DPAD_DOWN) { + sub_8083CE0(1); + if (gUnknown_202EE10.menuIndex == 7) { + if (a2 - gUnknown_202F30C > 8) { + s32 i; + for (i = 0; i < 6; i++) { + gIwramTextFunc1(0); + sub_803E46C(0x37); + } + gUnknown_202F30C++; + } + r7 = 0; + r10 = 7; + break; + } + sub_80136E0(&gUnknown_202EE10, 0); + } + + if (r4 == 1 && r7 != 0) { + if (gUnknown_202F30C != 0) { + s32 i; + for (i = 0; i < 6; i++) { + gIwramTextFunc2(0); + sub_803E46C(0x37); + } + gUnknown_202F30C--; + } + r7 = 0; + r10 = 0; + break; + } + if (gRealInputs.repeated & DPAD_UP) { + sub_8083CE0(1); + if (gUnknown_202EE10.menuIndex == 0) { + if (gUnknown_202F30C != 0) { + s32 i; + for (i = 0; i < 6; i++) { + gIwramTextFunc2(0); + sub_803E46C(0x37); + } + gUnknown_202F30C--; + } + r7 = 0; + r10 = 0; + break; + } + sub_8013744(&gUnknown_202EE10, 0); + } + + if (sub_80048C8()) { + continue; + } + + if (gRealInputs.pressed & START_BUTTON) { + sub_8083D1C(); + r7 = 3; + break; + } + if ((gRealInputs.pressed & A_BUTTON) || gUnknown_202EE10.unk28.a_button) { + sub_8083D08(); + r7 = 1; + break; + } + if ((gRealInputs.pressed & B_BUTTON) || gUnknown_202EE10.unk28.b_button) { + sub_8083D30(); + r7 = 2; + break; + } + } + + AddMenuCursorSprite(&gUnknown_202EE10); + sub_803E46C(0x37); + if (r7 == 0) { + continue; + } + else if (r7 == 2) { + r10 = gUnknown_202EE10.menuIndex; + if (gUnknown_202F310 < a1) { + continue; + } + + if (DisplayDungeonYesNoMessage(NULL, gUnknown_80FDFB8, TRUE) == 1) { + break; + } + else { + continue; + } + } + else if (r7 == 3) { + r10 = gUnknown_202EE10.menuIndex; + sub_806806C(a3[gUnknown_202F30C + r10]); + continue; + } + else { + s32 arrId; + u8 locIdIsPartner; + + r10 = gUnknown_202EE10.menuIndex; + arrId = gUnknown_202F30C + r10; + gUnknown_202EE6C = 0; + sub_8044F5C(0x29, 0); + sub_8044F5C(0x2A, 0); + sub_8044F5C(0x40, 0); + if (a3[arrId]->unk0 & 0x8000) { + sub_8044FF0(0x29); + } + else { + sub_8044FF0(0x2A); + } + + // This unnecessary variable is required to match. + locIdIsPartner = DUNGEON_JOIN_LOCATION_PARTNER; + if (a3[arrId]->isTeamLeader || (a3[arrId]->dungeonLocation.id == DUNGEON_JOIN_LOCATION_LEADER || a3[arrId]->dungeonLocation.id == locIdIsPartner)) { + sub_8044FF0(0x29); + } + + sub_8045064(); + sub_805FC30(&spTxtStruct, 0x15); + + while (1) { + AddMenuCursorSprite(&gUnknown_202EE10); + sub_803E46C(0x37); + + if (gRealInputs.repeated & DPAD_DOWN) { + sub_8083CE0(1); + sub_80136E0(&gUnknown_202EE10, 1); + } + if (gRealInputs.repeated & DPAD_UP) { + sub_8083CE0(1); + sub_8013744(&gUnknown_202EE10, 1); + } + + if ((gRealInputs.pressed & A_BUTTON) || gUnknown_202EE10.unk28.a_button) { + if (sub_8044F3C(gUnknown_202EE10.menuIndex)) { + sub_8083D08(); + r7 = 1; + break; + } + sub_8083D30(); + } + if ((gRealInputs.pressed & B_BUTTON) || gUnknown_202EE10.unk28.b_button) { + sub_8083D30(); + r7 = 0; + break; + } + } + + AddMenuCursorSprite(&gUnknown_202EE10); + sub_803E46C(0x37); + if (r7 != 0) { + if (gUnknown_202EE10.menuIndex == 0) { + a3[arrId]->unk0 |= 0x8000; + sub_8068310(a2, a3); + } + else if (gUnknown_202EE10.menuIndex == 1) { + a3[arrId]->unk0 &= ~(0x8000); + sub_8068310(a2, a3); + } + else { + sub_806806C(a3[arrId]); + } + } + continue; + } + } + } +} + +void sub_8067F00(u8 a0, PokemonStruct1 **a1, s32 a2_, s32 a3, s32 a4) +{ + s32 i, y; + s32 a2; + + a2 = a2_ - 1; + y = 0x16; + + sub_80073B8(0); + WriteFriendAreaName(gFormatBuffer_Monsters[0], a0, FALSE); + PrintFormattedStringOnWindow(12, 0, _("{POKEMON_0}"), 0, '\0'); + i = 0; + while (i < 10) { + if (a2 >= 0) { + if (a2 >= a3) { + break; + } + + PrintColoredPokeNameToBuffer(gFormatBuffer_Monsters[0], a1[a2], 0); + sub_808D930(gFormatBuffer_Monsters[1], a1[a2]->speciesNum); + gFormatArgs[0] = a2 + 1; + if (a1[a2]->unk0 & 0x8000) { + InlineStrcpy(gFormatBuffer_Items[0], _("{STAR_BULLET}")); + } + else { + InlineStrcpy(gFormatBuffer_Items[0], _("{ICON_BLANK}")); + } + + if (a1[a2]->unk0 & 0x4000) { + PrintFormattedStringOnWindow(7, y, _("{MOVE_ITEM_0}{color CYAN}$v02:{POKEMON_0}{reset}"), 0, '\0'); + } + else { + PrintFormattedStringOnWindow(7, y, _("{MOVE_ITEM_0}{color YELLOW}$v02:{POKEMON_0}{reset}"), 0, '\0'); + } + } + + i++; + y += 12; + a2++; + } + + sub_80073E0(0); + sub_80073B8(1); + if (gUnknown_202F310 >= a4) { + PrintFormattedStringOnWindow(8, 2, _("Press {B_BUTTON}\nif OK."), 1, '\0'); + } + else { + gFormatArgs[0] = a4 - gUnknown_202F310; + PrintFormattedStringOnWindow(8, 2, _("Say bye to\n{VALUE_0} more"), 1, '\0'); + } + + sub_80073E0(1); +} + +void sub_806806C(PokemonStruct1 *a0) +{ + struct unkStruct_808FF20 unkStruct; + u8 var_C8[48]; + UnkTextStruct3 spTxtStruct = {0}; + s32 r7; + + spTxtStruct.a0[0].unk4 = 6; + spTxtStruct.a0[0].pos.x = 2; + spTxtStruct.a0[0].pos.y = 2; + spTxtStruct.a0[0].unkC = 0x12; + spTxtStruct.a0[0].unkE = 0xE; + spTxtStruct.a0[0].unk10 = 0x12; + spTxtStruct.a0[0].unk12 = 2; + spTxtStruct.a0[0].unk14 = &gUnknown_202F308; + spTxtStruct.a0[1].unk4 = 3; + spTxtStruct.a0[2].unk4 = 3; + spTxtStruct.a0[3].unk4 = 3; + + r7 = 0; + unkStruct.unk40 = 0; + unkStruct.unk56 = 0; + gUnknown_202EE10.menuIndex = 0; + + while (1) { + bool32 loopBreak = FALSE; + s32 spF8[4] = {2, 3, 4, 5}; + + gUnknown_202F308.f0 = 4; + gUnknown_202F308.f1 = r7; + gUnknown_202F308.f2 = 10; + gUnknown_202F308.f3 = 0; + + gUnknown_202EE10.unk1E = r7; + gUnknown_202EE10.unk20 = 4; + gUnknown_202EE10.unk1A = 0; + gUnknown_202EE10.menuIndex = 0; + gUnknown_202EE10.unk1C = 0; + gUnknown_202EE10.unk4 = 0; + gUnknown_202EE10.unk6 = 16; + gUnknown_202EE10.unk14.x = 0; + gUnknown_202EE10.unk0 = 0; + + sub_801317C(&gUnknown_202EE10.unk28); + sub_803ECB4(&spTxtStruct, 1); + sub_808FF20(&unkStruct, a0, gDungeon->unk644.unk16); + CreatePokemonInfoTabScreen(spF8[r7], r7, &unkStruct, var_C8, 0); + + gUnknown_202EE10.unkC = (gUnknown_2027370[0].unk0 + 15) * 8; + gUnknown_202EE10.unkE = ((gUnknown_2027370[0].unk2 + 1) * 8) - 2; + + while (1) { + s32 r5; + + AddMenuCursorSprite(&gUnknown_202EE10); + if (spF8[r7] == 4) { + if (var_C8[8] != 0) { + sub_80684C4(); + } + if (unkStruct.unk40 != 0) { + sub_8068344(); + } + } + + r5 = sub_8014140(0, gUnknown_8106DA4); + sub_803E46C(0x1C); + if ((gRealInputs.pressed & DPAD_RIGHT) || gUnknown_202EE10.unk28.dpad_right) { + sub_8083CE0(0); + if (++r7 == 4) { + r7 = 0; + } + break; + } + if ((gRealInputs.pressed & DPAD_LEFT) || gUnknown_202EE10.unk28.dpad_left) { + sub_8083CE0(0); + if (--r7 == -1) { + r7 = 3; + } + break; + } + + if (spF8[r7] == 4) { + if (((gRealInputs.repeated & DPAD_DOWN) || r5 == 2) && var_C8[8] != 0) { + s32 i; + + sub_8083CE0(0); + for (i = 0; i < 6; i++) { + gIwramTextFunc1(0); + sub_803E46C(0x1C); + } + unkStruct.unk40++; + break; + } + if (((gRealInputs.repeated & DPAD_UP) || r5 == 1) && unkStruct.unk40 != 0) { + s32 i; + + sub_8083CE0(0); + for (i = 0; i < 6; i++) { + gIwramTextFunc2(0); + sub_803E46C(0x1C); + } + unkStruct.unk40--; + break; + } + } + + if (sub_80048C8()) { + continue; + } + + if ((gRealInputs.pressed & A_BUTTON) || gUnknown_202EE10.unk28.a_button) { + sub_8083D08(); + loopBreak = TRUE; + break; + } + if ((gRealInputs.pressed & B_BUTTON) || gUnknown_202EE10.unk28.b_button) { + sub_8083D30(); + loopBreak = TRUE; + break; + } + } + + sub_803E46C(0x37); + if (loopBreak) { + break; + } + } + + sub_803EAF0(0, NULL); +} + diff --git a/src/code_8072F3C.c b/src/code_8072F3C.c index 29c6f7496..2ba1a4abe 100644 --- a/src/code_8072F3C.c +++ b/src/code_8072F3C.c @@ -66,7 +66,7 @@ extern bool8 sub_802FCF0(void); s32 sub_802FBF4(void); extern u8 sub_8097384(s16); -u32 sub_802F73C(u32 r0, UnkTextStruct2_sub *r1, u32 r2, u8 r3) +u32 sub_802F73C(u32 r0, DungeonPos *r1, u32 r2, u8 r3) { if (sub_802FCF0()) return 0; @@ -76,22 +76,22 @@ u32 sub_802F73C(u32 r0, UnkTextStruct2_sub *r1, u32 r2, u8 r3) gUnknown_203B314->unkB8 = r3; gUnknown_203B314->sBC.s0.unk34 = r0; - gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34]; - RestoreUnkTextStruct_8006518(gUnknown_203B314->sBC.s0.unk3C); + gUnknown_203B314->sBC.s0.unk38 = &gUnknown_203B314->sBC.s0.unk3C.a0[gUnknown_203B314->sBC.s0.unk34]; + RestoreUnkTextStruct_8006518(&gUnknown_203B314->sBC.s0.unk3C); if (r3 != 0) - gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E072C; + gUnknown_203B314->sBC.s0.unk3C.a0[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E072C; else - gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E0714; + gUnknown_203B314->sBC.s0.unk3C.a0[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E0714; gUnknown_203B314->sBC.s0.unk38->unk14 = &gUnknown_203B314->sBC.unk9C; if (r1 != 0) - gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34].unk8 = *r1; + gUnknown_203B314->sBC.s0.unk3C.a0[gUnknown_203B314->sBC.s0.unk34].pos = *r1; sub_8012D08(gUnknown_203B314->sBC.s0.unk38, r2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B314->sBC.s0.input, sub_802FBF4(), r2, r0); sub_802F9C0(); sub_802FA50(); @@ -169,9 +169,9 @@ void sub_802F974(void) { if(gUnknown_203B314 != NULL) { - gUnknown_203B314->sBC.s0.unk3C[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E06FC; + gUnknown_203B314->sBC.s0.unk3C.a0[gUnknown_203B314->sBC.s0.unk34] = gUnknown_80E06FC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B314->sBC.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B314); gUnknown_203B314 = NULL; } diff --git a/src/credits1.c b/src/credits1.c index 0008e6101..6fe585879 100644 --- a/src/credits1.c +++ b/src/credits1.c @@ -31,11 +31,11 @@ bool8 DrawCredits(s32 creditsCategoryIndex, s32 param_2) sCredits1Work->creditsCategoryIndex = creditsCategoryIndex; for (i = 0; i < 4; i++) - sCredits1Work->unk0[i] = gUnknown_80E4A10; - sCredits1Work->unk0[0] = gUnknown_80E4A28; + sCredits1Work->unk0.a0[i] = gUnknown_80E4A10; + sCredits1Work->unk0.a0[0] = gUnknown_80E4A28; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(&sCredits1Work->unk0[0], TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sCredits1Work->unk0, TRUE, TRUE); sub_8099690(2); sub_80073B8(0); diff --git a/src/debug_menu1.c b/src/debug_menu1.c index 3b34de591..f0dfbb1a6 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -47,10 +47,10 @@ void CreateDebugMenu(void) } for (i = 0; i < 4; i++) - sDebugMenu->unk140[i] = sUnknown_80E7D40; + sDebugMenu->unk140.a0[i] = sUnknown_80E7D40; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sDebugMenu->unk140, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sDebugMenu->unk140, TRUE, TRUE); SetDebugMenuItems(); } @@ -118,13 +118,13 @@ u32 UpdateDebugMenu(void) static void SetDebugMenuItems(void) { - SetMenuItems(sDebugMenu->unk0, sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, FALSE); + SetMenuItems(sDebugMenu->unk0, &sDebugMenu->unk140, 0, &sUnknown_80E7D58, sDebugMenuItems, TRUE, 13, FALSE); sub_8035CF4(sDebugMenu->unk0, 0, 1); } static void sub_803A3A0(void) { - sub_8035CC0(sDebugMenu->unk140, 0); + sub_8035CC0(&sDebugMenu->unk140, 0); } static void sub_803A3BC(void) diff --git a/src/debug_menu2.c b/src/debug_menu2.c index 39a8c6d67..08a771c3a 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -80,23 +80,23 @@ static void sub_803A51C(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B3F0->unkD8); + RestoreUnkTextStruct_8006518(&sUnknown_203B3F0->unkD8); switch (sUnknown_203B3F0->state) { case 3: - sUnknown_203B3F0->unkD8[1] = sUnknown_80E7E64; + sUnknown_203B3F0->unkD8.a0[1] = sUnknown_80E7E64; break; case 2: - sUnknown_203B3F0->unkD8[2] = sUnknown_80E7E4C; + sUnknown_203B3F0->unkD8.a0[2] = sUnknown_80E7E4C; break; default: for (i = 0; i < 4; i++) - sUnknown_203B3F0->unkD8[i] = sUnknown_80E7E34; + sUnknown_203B3F0->unkD8.a0[i] = sUnknown_80E7E34; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B3F0->unkD8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B3F0->unkD8, TRUE, TRUE); } static void sub_803A5A0(void) @@ -121,7 +121,7 @@ static void sub_803A5A0(void) sUnknown_203B3F0->unk9C.unkC = 999; sUnknown_203B3F0->unk9C.unk4 = gTeamInventoryRef->teamStorage[sUnknown_203B3F0->id]; sUnknown_203B3F0->unk9C.unk14 = 1; - sUnknown_203B3F0->unk9C.unk18 = &sUnknown_203B3F0->unkD8[1]; + sUnknown_203B3F0->unk9C.unk18 = &sUnknown_203B3F0->unkD8.a0[1]; sUnknown_203B3F0->unk9C.unk1C = 44; sUnknown_203B3F0->unk9C.unk20 = 18; sub_8013AA0(&sUnknown_203B3F0->unk9C); diff --git a/src/debug_menu3.c b/src/debug_menu3.c index dffb89dab..970a5348f 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -79,17 +79,17 @@ static void sub_803A93C(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B3F4->unk9C); + RestoreUnkTextStruct_8006518(&sUnknown_203B3F4->unk9C); if (sUnknown_203B3F4->state == 2) - sUnknown_203B3F4->unk9C[2] = sUnknown_80E7EA4; + sUnknown_203B3F4->unk9C.a0[2] = sUnknown_80E7EA4; else { for(i = 0; i < 4; i++) - sUnknown_203B3F4->unk9C[i] = sUnknown_80E7E8C; + sUnknown_203B3F4->unk9C.a0[i] = sUnknown_80E7E8C; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B3F4->unk9C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B3F4->unk9C, TRUE, TRUE); } static void sub_803A9AC(void) diff --git a/src/debug_menu4.c b/src/debug_menu4.c index a808ecef5..c420c9e5d 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -82,25 +82,25 @@ static void sub_803ACE8(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B3F8->unkE0); + RestoreUnkTextStruct_8006518(&sUnknown_203B3F8->unkE0); switch (sUnknown_203B3F8->state) { case 3: sub_803AEB0(); - sUnknown_203B3F8->unkE0[2] = sUnknown_80E7EEC; - sub_8012CAC(&sUnknown_203B3F8->unkE0[2], sUnknown_203B3F8->unk90); + sUnknown_203B3F8->unkE0.a0[2] = sUnknown_80E7EEC; + sub_8012CAC(&sUnknown_203B3F8->unkE0.a0[2], sUnknown_203B3F8->unk90); break; case 5: - sUnknown_203B3F8->unkE0[3] = sUnknown_80E7F04; + sUnknown_203B3F8->unkE0.a0[3] = sUnknown_80E7F04; break; default: for (i = 0; i < 4; i++) - sUnknown_203B3F8->unkE0[i] = sUnknown_80E7ED4; + sUnknown_203B3F8->unkE0.a0[i] = sUnknown_80E7ED4; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B3F8->unkE0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B3F8->unkE0, TRUE, TRUE); } static void sub_803AD88(void) @@ -122,7 +122,7 @@ static void sub_803AD88(void) sUnknown_203B3F8->unk60.unkC = 100; sUnknown_203B3F8->unk60.unk4 = sUnknown_203B3F8->pokemon->level; sUnknown_203B3F8->unk60.unk14 = 3; - sUnknown_203B3F8->unk60.unk18 = &sUnknown_203B3F8->unkE0[3]; + sUnknown_203B3F8->unk60.unk18 = &sUnknown_203B3F8->unkE0.a0[3]; sUnknown_203B3F8->unk60.unk1C = 44; sUnknown_203B3F8->unk60.unk20 = 18; sub_8013AA0(&sUnknown_203B3F8->unk60); diff --git a/src/dungeon_message.c b/src/dungeon_message.c index dab15b7da..a6e0362ff 100644 --- a/src/dungeon_message.c +++ b/src/dungeon_message.c @@ -65,17 +65,6 @@ EWRAM_INIT u8 gUnknown_203B434 = 1; #define FLAG_CAN_SCROLL_UP 0x1 #define FLAG_CAN_SCROLL_DOWN 0x2 -// Needed to match :shrug: -static inline void InlineStrcpy(u8 *dst, const u8 *src) -{ - strcpy(dst, src); -} - -static inline void InlineStrncpy(u8 *dst, const u8 *src, s32 n) -{ - strncpy(dst, src, n); -} - void sub_80521D0(void) { s32 i; diff --git a/src/dungeon_move.c b/src/dungeon_move.c index e732854a5..b87d60d73 100644 --- a/src/dungeon_move.c +++ b/src/dungeon_move.c @@ -1,4 +1,5 @@ #include "global.h" +#include "dungeon_move.h" #include "dungeon_pokemon_attributes.h" #include "dungeon_util.h" #include "dungeon_message.h" @@ -304,7 +305,6 @@ s32 HandleDamagingMove(Entity *, Entity *, Move *, s24_8, s32); static s32 TryHitTarget(Entity *attacker, Entity *target, Move *move, struct DamageStruct *dmgStruct, s16 unk); static void TriggerTargetAbilityEffect(Entity *attacker); static bool8 AccuracyCalc(Entity *attacker, Entity *target, Move *move, s32 accuracyType, bool8 selfAlwaysHits); -bool8 TryUseChosenMove(struct Entity *attacker, u32 r6, s32 itemId, u32 var_30, bool32 isLinkedMove, struct Move *move); bool8 sub_8056468(Entity *entity, Move *move, const u8 *str, Entity **unkArray, bool32 itemId, bool8 arg_4, bool32 unused); bool8 sub_805744C(Entity * pokemon, Move *move, bool8 param_3); static void SetTargetsForMove(Entity **targetsArray, Entity *attacker, Move *move); diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 1280b9034..a4c107bca 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -130,32 +130,32 @@ static void sub_801645C(void) { s32 i; - RestoreUnkTextStruct_8006518(sFelicityBankWork->unkA8); + RestoreUnkTextStruct_8006518(&sFelicityBankWork->unkA8); switch (sFelicityBankWork->currState) { case 2: - sFelicityBankWork->unkA8[0].unk0 = 0x80; - sFelicityBankWork->unkA8[1].unk0 = 0x80; - sFelicityBankWork->unkA8[2].unk0 = 0x80; - sFelicityBankWork->unkA8[3] = sUnknown_80DB6F4; + sFelicityBankWork->unkA8.a0[0].unk0 = 0x80; + sFelicityBankWork->unkA8.a0[1].unk0 = 0x80; + sFelicityBankWork->unkA8.a0[2].unk0 = 0x80; + sFelicityBankWork->unkA8.a0[3] = sUnknown_80DB6F4; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sFelicityBankWork->unkA8, TRUE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sFelicityBankWork->unkA8, TRUE, FALSE); break; case FELICITY_BANK_STORE_HOW_MUCH: case FELICITY_BANK_TAKE_HOW_MUCH: - sFelicityBankWork->unkA8[0].unk0 = 0x80; - sFelicityBankWork->unkA8[1].unk0 = 0x80; - sFelicityBankWork->unkA8[3] = sUnknown_80DB6F4; - sFelicityBankWork->unkA8[2] = sUnknown_80DB70C; + sFelicityBankWork->unkA8.a0[0].unk0 = 0x80; + sFelicityBankWork->unkA8.a0[1].unk0 = 0x80; + sFelicityBankWork->unkA8.a0[3] = sUnknown_80DB6F4; + sFelicityBankWork->unkA8.a0[2] = sUnknown_80DB70C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sFelicityBankWork->unkA8, TRUE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sFelicityBankWork->unkA8, TRUE, FALSE); break; default: for (i = 0; i < 4; i++) - sFelicityBankWork->unkA8[i] = sUnknown_80DB6DC; + sFelicityBankWork->unkA8.a0[i] = sUnknown_80DB6DC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sFelicityBankWork->unkA8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sFelicityBankWork->unkA8, TRUE, TRUE); break; } } @@ -218,7 +218,7 @@ static void UpdateFelicityBankDialogue(void) sFelicityBankWork->unk64.unk8 = 1; sFelicityBankWork->unk64.unk10 = 5; sFelicityBankWork->unk64.unk14 = 2; - sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8[2]; + sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8.a0[2]; sFelicityBankWork->unk64.unk1C = 0x50; sFelicityBankWork->unk64.unk20 = 0x12; sub_8013AA0(&sFelicityBankWork->unk64); @@ -253,7 +253,7 @@ static void UpdateFelicityBankDialogue(void) sFelicityBankWork->unk64.unk8 = 1; sFelicityBankWork->unk64.unk10 = 5; sFelicityBankWork->unk64.unk14 = 2; - sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8[2]; + sFelicityBankWork->unk64.unk18 = &sFelicityBankWork->unkA8.a0[2]; sFelicityBankWork->unk64.unk1C = 0x50; sFelicityBankWork->unk64.unk20 = 0x12; sub_8013AA0(&sFelicityBankWork->unk64); diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index bad311ce8..4adf5fb09 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -142,29 +142,29 @@ void sub_802719C(void) { s32 index; - RestoreUnkTextStruct_8006518(sUnknown_203B2BC->unk180); + RestoreUnkTextStruct_8006518(&sUnknown_203B2BC->unk180); switch(sUnknown_203B2BC->state) { case 3: - sUnknown_203B2BC->unk180[3] = sUnknown_80DD74C; + sUnknown_203B2BC->unk180.a0[3] = sUnknown_80DD74C; CreateFriendActionMenu(); - sUnknown_203B2BC->unk180[2] = sUnknown_80DD704; - sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems); + sUnknown_203B2BC->unk180.a0[2] = sUnknown_80DD704; + sub_8012CAC(&sUnknown_203B2BC->unk180.a0[2], sUnknown_203B2BC->menuItems); break; case 0xC: sub_80276A8(); - sUnknown_203B2BC->unk180[2] = sUnknown_80DD71C; - sub_8012CAC(&sUnknown_203B2BC->unk180[2], sUnknown_203B2BC->menuItems); + sUnknown_203B2BC->unk180.a0[2] = sUnknown_80DD71C; + sub_8012CAC(&sUnknown_203B2BC->unk180.a0[2], sUnknown_203B2BC->menuItems); break; default: for(index = 0; index < 4; index++) { - sUnknown_203B2BC->unk180[index] = sUnknown_80DD6EC; + sUnknown_203B2BC->unk180.a0[index] = sUnknown_80DD6EC; } break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2BC->unk180, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2BC->unk180, TRUE, TRUE); } void sub_8027274(void) diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 4f391f3c9..2d7b31eff 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -145,31 +145,31 @@ void sub_802544C(void) { s32 i; - RestoreUnkTextStruct_8006518(gUnknown_203B2B4->unk118); + RestoreUnkTextStruct_8006518(&gUnknown_203B2B4->unk118); switch (gUnknown_203B2B4->state) { case 3: if (gUnknown_203B2B4->unk0 == 0) - gUnknown_203B2B4->unk118[3] = sUnknown_80DD190; + gUnknown_203B2B4->unk118.a0[3] = sUnknown_80DD190; sub_8025728(); - gUnknown_203B2B4->unk118[2] = sUnknown_80DD160; - sub_8012CAC(&gUnknown_203B2B4->unk118[2], gUnknown_203B2B4->unkC8); + gUnknown_203B2B4->unk118.a0[2] = sUnknown_80DD160; + sub_8012CAC(&gUnknown_203B2B4->unk118.a0[2], gUnknown_203B2B4->unkC8); break; case 13: sub_802591C(); - gUnknown_203B2B4->unk118[2] = sUnknown_80DD178; - sub_8012CAC(&gUnknown_203B2B4->unk118[2], gUnknown_203B2B4->unkC8); + gUnknown_203B2B4->unk118.a0[2] = sUnknown_80DD178; + sub_8012CAC(&gUnknown_203B2B4->unk118.a0[2], gUnknown_203B2B4->unkC8); break; default: for (i = 0; i < 4; i++) - gUnknown_203B2B4->unk118[i] = sUnknown_80DD148; + gUnknown_203B2B4->unk118.a0[i] = sUnknown_80DD148; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2B4->unk118, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2B4->unk118, TRUE, TRUE); } void sub_8025518(void) diff --git a/src/friend_rescue.c b/src/friend_rescue.c index c5926d6f1..6144736d8 100644 --- a/src/friend_rescue.c +++ b/src/friend_rescue.c @@ -842,7 +842,7 @@ void sub_8032828(void) CreateDialogueBoxAndPortrait(&gUnknown_80E2A0C[0], 0, 0, 0x101); break; case 0x3A: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8031D70(gUnknown_203B33C->unk218, 0); @@ -900,8 +900,8 @@ void sub_8032828(void) sub_8023868(3, 0, 0, 9); break; case 0x27: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, gUnknown_80E234C, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C); + SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E2334, gUnknown_80E234C, TRUE, 0, FALSE); sub_8023DA4(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1051,7 +1051,7 @@ void sub_8032828(void) CreateDialogueBoxAndPortrait(&gUnknown_80E3078[0], 0, 0, 0x101); break; case 0x1A: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80151C0(4, gUnknown_203B33C->passwordBuffer); @@ -1063,8 +1063,8 @@ void sub_8032828(void) CreateDialogueBoxAndPortrait(gUnknown_80E30D0, 0, 0, 0x101); break; case 0x5D: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E2408, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C); + SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E2408, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1073,14 +1073,14 @@ void sub_8032828(void) ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); { - UnkTextStruct2_sub local_x = {3, 2}; + DungeonPos local_x = {3, 2}; sub_801C8C4(0, 1, &local_x, 9); } } break; case 0x60: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, gUnknown_80E2408, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C); + SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E23F0, gUnknown_80E2408, TRUE, 0, FALSE); sub_801CCD8(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1116,7 +1116,7 @@ void sub_8032828(void) CreateDialogueBoxAndPortrait(gUnknown_80E311C, 0, 0, 0x101); break; case 0x73: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80151C0(4, gUnknown_203B33C->passwordBuffer); @@ -1126,7 +1126,7 @@ void sub_8032828(void) break; case 0x67: case 0x2E: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8031D70(gUnknown_203B33C->unk218, 0); @@ -1242,8 +1242,8 @@ void sub_8032828(void) case 0x13: case 0x1E: case 0x33: - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk35C); - SetMenuItems(gUnknown_203B33C->unk21C, gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk35C); + SetMenuItems(gUnknown_203B33C->unk21C, &gUnknown_203B33C->unk35C, 3, &gUnknown_80E231C, gUnknown_80E234C, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(gUnknown_203B33C->unk21C, 3, 1); break; @@ -1714,7 +1714,7 @@ void sub_8033DBC(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); SetFriendRescueMenuState(FRIEND_RESCUE_MENU_MAIN); break; default: @@ -1784,7 +1784,7 @@ void sub_8033FE4(void) case 4: gUnknown_203B33C->fallbackState = 0x1D; gUnknown_203B33C->unk218 = sub_80307EC(); - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -1809,7 +1809,7 @@ void sub_8034074(void) break; case 10: gUnknown_203B33C->fallbackState = FRIEND_RESCUE_MENU_DEFAULT_FALLBACK; - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -1817,7 +1817,7 @@ void sub_8034074(void) break; case 5: case 8: - sub_8035CC0(gUnknown_203B33C->unk35C, 2); + sub_8035CC0(&gUnknown_203B33C->unk35C, 2); sub_8030810(0x1); SetFriendRescueMenuState(0x1D); break; @@ -1832,7 +1832,7 @@ void sub_8034130(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); sub_803092C(); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { @@ -1867,7 +1867,7 @@ void sub_803418C(void) case 4: gUnknown_203B33C->fallbackState = 0x26; gUnknown_203B33C->speciesNum = sub_8023B44(); - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8024458(gUnknown_203B33C->speciesNum, 0); @@ -1892,7 +1892,7 @@ void sub_8034254(void) break; case 10: gUnknown_203B33C->fallbackState = FRIEND_RESCUE_MENU_DEFAULT_FALLBACK; - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8024458(gUnknown_203B33C->speciesNum, 0); @@ -1900,7 +1900,7 @@ void sub_8034254(void) break; case 5: case 8: - sub_8035CC0(gUnknown_203B33C->unk35C, 3); + sub_8035CC0(&gUnknown_203B33C->unk35C, 3); sub_8023DA4(); SetFriendRescueMenuState(0x26); break; @@ -1918,7 +1918,7 @@ void sub_8034310(void) case 3: sub_802453C(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); sub_8023B7C(1); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { @@ -2036,7 +2036,7 @@ void sub_80344C0(void) case 3: sub_8031E10(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); SetFriendRescueMenuState(0x2F); break; case 1: @@ -2062,7 +2062,7 @@ void sub_8034500(void) case 4: gUnknown_203B33C->fallbackState = 0x32; gUnknown_203B33C->unk218 = sub_80307EC(); - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -2087,7 +2087,7 @@ void sub_8034590(void) break; case 10: gUnknown_203B33C->fallbackState = FRIEND_RESCUE_MENU_DEFAULT_FALLBACK; - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -2095,7 +2095,7 @@ void sub_8034590(void) break; case 5: case 8: - sub_8035CC0(gUnknown_203B33C->unk35C, 2); + sub_8035CC0(&gUnknown_203B33C->unk35C, 2); sub_8030810(0x1); SetFriendRescueMenuState(0x32); break; @@ -2110,7 +2110,7 @@ void sub_803464C(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); sub_803092C(); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { @@ -2183,7 +2183,7 @@ void sub_803473C(void) case 3: sub_8031E10(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); SetFriendRescueMenuState(0x3B); break; case 1: @@ -2342,7 +2342,7 @@ void sub_8034970(void) case 3: sub_8031E10(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); SetFriendRescueMenuState(0x68); break; case 1: @@ -2386,7 +2386,7 @@ void sub_80349E0(void) case 4: gUnknown_203B33C->fallbackState = 0x5C; gUnknown_203B33C->unk218 = sub_80307EC(); - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -2411,7 +2411,7 @@ void sub_8034A70(void) break; case 10: gUnknown_203B33C->fallbackState = FRIEND_RESCUE_MENU_DEFAULT_FALLBACK; - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(gUnknown_203B33C->unk218, 0); @@ -2419,7 +2419,7 @@ void sub_8034A70(void) break; case 5: case 8: - sub_8035CC0(gUnknown_203B33C->unk35C, 2); + sub_8035CC0(&gUnknown_203B33C->unk35C, 2); sub_8030810(0x1); SetFriendRescueMenuState(0x5C); break; @@ -2434,7 +2434,7 @@ void sub_8034B2C(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); sub_803092C(); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { @@ -2467,7 +2467,7 @@ void sub_8034B88(void) case 4: gUnknown_203B33C->fallbackState = 0x5F; gUnknown_203B33C->item.id = sub_801CB24(); - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&gUnknown_203B33C->item); @@ -2484,7 +2484,7 @@ void sub_8034C38(void) case 3: sub_801B450(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); sub_801CB5C(TRUE); if(gUnknown_203B33C->fallbackState == FRIEND_RESCUE_MENU_DEFAULT_FALLBACK) { @@ -2516,7 +2516,7 @@ void sub_8034C98(void) break; case 10: gUnknown_203B33C->fallbackState = FRIEND_RESCUE_MENU_DEFAULT_FALLBACK; - RestoreUnkTextStruct_8006518(gUnknown_203B33C->unk3BC); + RestoreUnkTextStruct_8006518(&gUnknown_203B33C->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&gUnknown_203B33C->item); @@ -2524,7 +2524,7 @@ void sub_8034C98(void) break; case 5: case 8: - sub_8035CC0(gUnknown_203B33C->unk35C, 3); + sub_8035CC0(&gUnknown_203B33C->unk35C, 3); sub_801CB5C(TRUE); SetFriendRescueMenuState(0x5F); break; @@ -2582,7 +2582,7 @@ void sub_8034D74(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B33C->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B33C->unk3BC, TRUE, TRUE); SetFriendRescueMenuState(FRIEND_RESCUE_MENU_MAIN); break; default: diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 4db64dde4..311112a10 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -111,24 +111,24 @@ static void sub_801E980(void) { s32 index; - RestoreUnkTextStruct_8006518(sGulpinShopWork->unk12C); + RestoreUnkTextStruct_8006518(&sGulpinShopWork->unk12C); switch (sGulpinShopWork->state) { case 2: sub_801EBC4(); - sGulpinShopWork->unk12C[1] = gUnknown_80DC11C; - sGulpinShopWork->unk12C[2] = gUnknown_80DC134; - sub_8012CAC(&sGulpinShopWork->unk12C[2], sGulpinShopWork->unk28); + sGulpinShopWork->unk12C.a0[1] = gUnknown_80DC11C; + sGulpinShopWork->unk12C.a0[2] = gUnknown_80DC134; + sub_8012CAC(&sGulpinShopWork->unk12C.a0[2], sGulpinShopWork->unk28); break; default: for(index = 0; index < 4; index++) { - sGulpinShopWork->unk12C[index] = gUnknown_80DC11C; + sGulpinShopWork->unk12C.a0[index] = gUnknown_80DC11C; } break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sGulpinShopWork->unk12C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sGulpinShopWork->unk12C, TRUE, TRUE); } static void sub_801EA28(void) diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index 5909e414b..8a3ddf623 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -194,45 +194,45 @@ static void sub_801FDC0(void) { s32 index; - RestoreUnkTextStruct_8006518(gUnknown_203B27C->unk180); + RestoreUnkTextStruct_8006518(&gUnknown_203B27C->unk180); switch (gUnknown_203B27C->state) { case 0x2: - gUnknown_203B27C->unk180[0].unk0 = 0x80; - gUnknown_203B27C->unk180[1].unk0 = 0x80; - gUnknown_203B27C->unk180[2].unk0 = 0x80; - gUnknown_203B27C->unk180[3] = gUnknown_80DC37C; + gUnknown_203B27C->unk180.a0[0].unk0 = 0x80; + gUnknown_203B27C->unk180.a0[1].unk0 = 0x80; + gUnknown_203B27C->unk180.a0[2].unk0 = 0x80; + gUnknown_203B27C->unk180.a0[3] = gUnknown_80DC37C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B27C->unk180, TRUE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B27C->unk180, TRUE, FALSE); break; case 0x11: sub_80205D0(); - gUnknown_203B27C->unk180[2] = gUnknown_80DC334; - sub_8012CAC(&gUnknown_203B27C->unk180[2], gUnknown_203B27C->unk7C); + gUnknown_203B27C->unk180.a0[2] = gUnknown_80DC334; + sub_8012CAC(&gUnknown_203B27C->unk180.a0[2], gUnknown_203B27C->unk7C); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B27C->unk180, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B27C->unk180, TRUE, TRUE); break; case 0x17: sub_802069C(); - gUnknown_203B27C->unk180[2] = gUnknown_80DC334; - sub_8012CAC(&gUnknown_203B27C->unk180[2], gUnknown_203B27C->unk7C); + gUnknown_203B27C->unk180.a0[2] = gUnknown_80DC334; + sub_8012CAC(&gUnknown_203B27C->unk180.a0[2], gUnknown_203B27C->unk7C); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B27C->unk180, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B27C->unk180, TRUE, TRUE); break; case 0x20: CreateGulpinLinkMenu(); - gUnknown_203B27C->unk180[1] = gUnknown_80DC31C; - gUnknown_203B27C->unk180[2] = gUnknown_80DC34C; - sub_8012CAC(&gUnknown_203B27C->unk180[2], gUnknown_203B27C->unk7C); + gUnknown_203B27C->unk180.a0[1] = gUnknown_80DC31C; + gUnknown_203B27C->unk180.a0[2] = gUnknown_80DC34C; + sub_8012CAC(&gUnknown_203B27C->unk180.a0[2], gUnknown_203B27C->unk7C); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B27C->unk180, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B27C->unk180, TRUE, TRUE); break; default: for (index = 0; index < 4; index++) - gUnknown_203B27C->unk180[index] = gUnknown_80DC31C; + gUnknown_203B27C->unk180.a0[index] = gUnknown_80DC31C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B27C->unk180, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B27C->unk180, TRUE, TRUE); break; } } diff --git a/src/hints_menu1.c b/src/hints_menu1.c index fc94254bb..816a735a1 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -23,12 +23,12 @@ bool8 sub_801E3F0(u32 a0) sUnknown_203B264 = MemoryAlloc(sizeof(*sUnknown_203B264), 8); sUnknown_203B264->unk34 = a0; - sUnknown_203B264->unk38 = &sUnknown_203B264->unk3C[a0]; - RestoreUnkTextStruct_8006518(sUnknown_203B264->unk3C); - sUnknown_203B264->unk3C[sUnknown_203B264->unk34] = sUnknown_80DC0BC; + sUnknown_203B264->unk38 = &sUnknown_203B264->unk3C.a0[a0]; + RestoreUnkTextStruct_8006518(&sUnknown_203B264->unk3C); + sUnknown_203B264->unk3C.a0[sUnknown_203B264->unk34] = sUnknown_80DC0BC; sub_8012D08(sUnknown_203B264->unk38, 10); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B264->unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B264->unk3C, TRUE, TRUE); sub_8013818(&sUnknown_203B264->input, 5, 10, a0); sub_801E594(); DrawHintSelectionMenu(); @@ -73,7 +73,7 @@ s32 GetChosenHintIndex(void) void CreateHintSelectionScreen(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B264->unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B264->unk3C, FALSE, FALSE); sub_8013984(&sUnknown_203B264->input); sub_801E594(); DrawHintSelectionMenu(); @@ -85,9 +85,9 @@ void CreateHintSelectionScreen(bool8 cursorSprite) void sub_801E54C(void) { if (sUnknown_203B264 != NULL) { - sUnknown_203B264->unk3C[sUnknown_203B264->unk34] = sUnknown_80DC0A0; + sUnknown_203B264->unk3C.a0[sUnknown_203B264->unk34] = sUnknown_80DC0A0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B264->unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B264->unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B264); sUnknown_203B264 = NULL; } diff --git a/src/hints_menu2.c b/src/hints_menu2.c index f37017e67..d09443479 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -22,12 +22,12 @@ bool8 CreateHintDisplayScreen(u32 index) { sUnknown_203B268 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); sUnknown_203B268->s0.unk34 = 0; - sUnknown_203B268->s0.unk38 = sUnknown_203B268->s0.unk3C; - RestoreUnkTextStruct_8006518(sUnknown_203B268->s0.unk3C); - sUnknown_203B268->s0.unk3C[sUnknown_203B268->s0.unk34] = sUnknown_80DC0FC; + sUnknown_203B268->s0.unk38 = &sUnknown_203B268->s0.unk3C.a0[0]; + RestoreUnkTextStruct_8006518(&sUnknown_203B268->s0.unk3C); + sUnknown_203B268->s0.unk3C.a0[sUnknown_203B268->s0.unk34] = sUnknown_80DC0FC; sUnknown_203B268->s0.unk38->unk14 = &sUnknown_203B268->unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B268->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B268->s0.unk3C, TRUE, TRUE); sub_8013818(&sUnknown_203B268->s0.input, 5, 1, sUnknown_203B268->s0.unk34); sUnknown_203B268->s0.input.unk1E = index; sub_801E714(); @@ -62,9 +62,9 @@ static void sub_801E714(void) void DestroyHintDisplayScreen(void) { if (sUnknown_203B268 != NULL) { - sUnknown_203B268->s0.unk3C[sUnknown_203B268->s0.unk34] = sUnknown_80DC0E4; + sUnknown_203B268->s0.unk3C.a0[sUnknown_203B268->s0.unk34] = sUnknown_80DC0E4; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B268->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B268->s0.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B268); sUnknown_203B268 = NULL; } @@ -77,7 +77,7 @@ static void sub_801E76C(void) sUnknown_203B268->unk9C.f2 = 15; sUnknown_203B268->unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B268->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B268->s0.unk3C, TRUE, TRUE); } static void DisplayChosenHint(void) diff --git a/src/iq_skill_info_menu.c b/src/iq_skill_info_menu.c index 1a9091f84..2ff5296b2 100644 --- a/src/iq_skill_info_menu.c +++ b/src/iq_skill_info_menu.c @@ -34,9 +34,9 @@ bool8 CreateIQSkillInfoMenu(u8 iqSkill) sIQSkillInfoMenu->chosenIQSkill = iqSkill; sub_801317C(&sIQSkillInfoMenu->unk88); sIQSkillInfoMenu->unk24 = 0; - sub_80140B4(sIQSkillInfoMenu->unk28); + sub_80140B4(&sIQSkillInfoMenu->unk28); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillInfoMenu->unk28, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillInfoMenu->unk28, TRUE, TRUE); SetIQSkillInfoMenuState(IQ_SKILL_INFO_MENU_INIT); return TRUE; } diff --git a/src/iq_skill_list_menu.c b/src/iq_skill_list_menu.c index 8ae25c0a7..37bb95807 100644 --- a/src/iq_skill_list_menu.c +++ b/src/iq_skill_list_menu.c @@ -30,13 +30,13 @@ bool8 CreateIQSkillListMenu(s16 species, u32 index, u32 a2) sIQSkillListMenu->pokeStruct = &gRecruitedPokemonRef->pokemon[species_s32]; sIQSkillListMenu->numIQSkills = GetNumAvailableIQSkills(sIQSkillListMenu->iqSkills, sIQSkillListMenu->pokeStruct->IQ); sIQSkillListMenu->s24.s0.unk34 = index; - sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.unk3C[index]; - RestoreUnkTextStruct_8006518(sIQSkillListMenu->s24.s0.unk3C); - sIQSkillListMenu->s24.s0.unk3C[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDF0; + sIQSkillListMenu->s24.s0.unk38 = &sIQSkillListMenu->s24.s0.unk3C.a0[index]; + RestoreUnkTextStruct_8006518(&sIQSkillListMenu->s24.s0.unk3C); + sIQSkillListMenu->s24.s0.unk3C.a0[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDF0; sIQSkillListMenu->s24.s0.unk38->unk14 = &sIQSkillListMenu->s24.unk9C; sub_8012D08(sIQSkillListMenu->s24.s0.unk38, a2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); sub_8013818(&sIQSkillListMenu->s24.s0.input, sIQSkillListMenu->numIQSkills, a2, index); sub_801C440(); BuildIQSkillList(); @@ -78,7 +78,7 @@ s32 GetIQSkillSelection(void) void RedrawIQSkillListMenu(bool8 addCursor) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillListMenu->s24.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillListMenu->s24.s0.unk3C, FALSE, FALSE); sIQSkillListMenu->s24.s0.input.unk22 = sIQSkillListMenu->numIQSkills; sub_8013984(&sIQSkillListMenu->s24.s0.input); sub_801C440(); @@ -91,9 +91,9 @@ void RedrawIQSkillListMenu(bool8 addCursor) void CleanIQSkillListMenu(void) { if (sIQSkillListMenu != NULL) { - sIQSkillListMenu->s24.s0.unk3C[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDD8; + sIQSkillListMenu->s24.s0.unk3C.a0[sIQSkillListMenu->s24.s0.unk34] = sUnknown_80DBDD8; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); MemoryFree(sIQSkillListMenu); sIQSkillListMenu = NULL; } @@ -106,7 +106,7 @@ static void sub_801C440(void) sIQSkillListMenu->s24.unk9C.f2 = 10; sIQSkillListMenu->s24.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillListMenu->s24.s0.unk3C, TRUE, TRUE); SUB_80095E4_CALL_2(sIQSkillListMenu->s24.s0); } diff --git a/src/iq_skill_menu.c b/src/iq_skill_menu.c index b06603f73..c453d6fbf 100644 --- a/src/iq_skill_menu.c +++ b/src/iq_skill_menu.c @@ -77,17 +77,17 @@ static void sub_801BFCC(void) { s32 i; - RestoreUnkTextStruct_8006518(sIQSkillMenu->unkC4); + RestoreUnkTextStruct_8006518(&sIQSkillMenu->unkC4); if (sIQSkillMenu->state == 2) - sIQSkillMenu->unkC4[2] = sUnknown_80DBDB0; + sIQSkillMenu->unkC4.a0[2] = sUnknown_80DBDB0; else { for (i = 0; i < 4; i++) - sIQSkillMenu->unkC4[i] = sUnknown_80DBD98; + sIQSkillMenu->unkC4.a0[i] = sUnknown_80DBD98; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sIQSkillMenu->unkC4, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sIQSkillMenu->unkC4, TRUE, TRUE); } static void HandleIQSkillMenuState(void) diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index 410fbd3c3..966ff2727 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -145,38 +145,38 @@ static void sub_8016E80(void) { s32 index; - RestoreUnkTextStruct_8006518(gKangaskhanStorageWork->unkEC); + RestoreUnkTextStruct_8006518(&gKangaskhanStorageWork->unkEC); switch (gKangaskhanStorageWork->currState) { case 13: case 14: - gKangaskhanStorageWork->unkEC[0] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[1] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[2] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[0] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[0] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[1] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[2] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[0] = sUnknown_80DB748; break; case 22: case 23: - gKangaskhanStorageWork->unkEC[0] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[1] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[2] = sUnknown_80DB748; - gKangaskhanStorageWork->unkEC[0] = sUnknown_80DB778; + gKangaskhanStorageWork->unkEC.a0[0] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[1] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[2] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[0] = sUnknown_80DB778; break; case 24: - gKangaskhanStorageWork->unkEC[1] = sUnknown_80DB790; + gKangaskhanStorageWork->unkEC.a0[1] = sUnknown_80DB790; break; case 15: case 25: - gKangaskhanStorageWork->unkEC[2] = sUnknown_80DB760; + gKangaskhanStorageWork->unkEC.a0[2] = sUnknown_80DB760; break; default: for (index = 0; index < 4; index++) - gKangaskhanStorageWork->unkEC[index] = sUnknown_80DB748; + gKangaskhanStorageWork->unkEC.a0[index] = sUnknown_80DB748; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gKangaskhanStorageWork->unkEC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gKangaskhanStorageWork->unkEC, TRUE, TRUE); } static void sub_8016FF8(void) @@ -309,7 +309,7 @@ static void sub_8016FF8(void) gKangaskhanStorageWork->unkA8.unk4 = gKangaskhanStorageWork->unkA8.unkC; gKangaskhanStorageWork->unkA8.unk14 = 1; - gKangaskhanStorageWork->unkA8.unk18 = &gKangaskhanStorageWork->unkEC[1]; + gKangaskhanStorageWork->unkA8.unk18 = &gKangaskhanStorageWork->unkEC.a0[1]; gKangaskhanStorageWork->unkA8.unk1C = 40; gKangaskhanStorageWork->unkA8.unk20 = 18; sub_8013AA0(&gKangaskhanStorageWork->unkA8); diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index 830d2490c..4a3081d13 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -108,46 +108,46 @@ static void sub_8017F28(void) { s32 index; - RestoreUnkTextStruct_8006518(sUnknown_203B20C->unkF0); + RestoreUnkTextStruct_8006518(&sUnknown_203B20C->unkF0); switch (sUnknown_203B20C->state) { case KANGASKHAN_STORAGE_2_MAIN: - sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB7B8; BuildKangaskhanStorage2MainMenu(); - sUnknown_203B20C->unkF0[2] = sUnknown_80DB7D0; - sub_8012CAC(&sUnknown_203B20C->unkF0[2], sUnknown_203B20C->unk20); + sUnknown_203B20C->unkF0.a0[2] = sUnknown_80DB7D0; + sub_8012CAC(&sUnknown_203B20C->unkF0.a0[2], sUnknown_203B20C->unk20); break; case 4: case 5: - sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[2] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB7B8; break; case 10: case 11: - sUnknown_203B20C->unkF0[0] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[1] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[2] = sUnknown_80DB7B8; - sUnknown_203B20C->unkF0[0] = sUnknown_80DB800; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[1] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[2] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[0] = sUnknown_80DB800; break; case 12: - sUnknown_203B20C->unkF0[1] = sUnknown_80DB818; + sUnknown_203B20C->unkF0.a0[1] = sUnknown_80DB818; break; case 6: case 13: - sUnknown_203B20C->unkF0[2] = sUnknown_80DB7E8; + sUnknown_203B20C->unkF0.a0[2] = sUnknown_80DB7E8; break; default: case KANGASKHAN_STORAGE_2_INIT: for (index = 0; index < 4; index++) - sUnknown_203B20C->unkF0[index] = sUnknown_80DB7B8; + sUnknown_203B20C->unkF0.a0[index] = sUnknown_80DB7B8; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B20C->unkF0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B20C->unkF0, TRUE, TRUE); } static void sub_8018100(void) @@ -189,7 +189,7 @@ static void sub_8018100(void) sUnknown_203B20C->unkC0.unk4 = sUnknown_203B20C->unkC0.unkC; sUnknown_203B20C->unkC0.unk14 = 1; - sUnknown_203B20C->unkC0.unk18 = &sUnknown_203B20C->unkF0[1]; + sUnknown_203B20C->unkC0.unk18 = &sUnknown_203B20C->unkF0.a0[1]; sUnknown_203B20C->unkC0.unk1C = 40; sUnknown_203B20C->unkC0.unk20 = 18; sub_8013AA0(&sUnknown_203B20C->unkC0); diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index f42766aca..375c82925 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -179,26 +179,26 @@ static void sub_8018D30(void) { s32 i; - RestoreUnkTextStruct_8006518(sKecleonBrosWork1->unkE8); + RestoreUnkTextStruct_8006518(&sKecleonBrosWork1->unkE8); switch (sKecleonBrosWork1->currState) { case 18: case 19: - sKecleonBrosWork1->unkE8[0] = sUnknown_80DB840; - sKecleonBrosWork1->unkE8[2] = sUnknown_80DB840; - sKecleonBrosWork1->unkE8[0] = sUnknown_80DB870; - sKecleonBrosWork1->unkE8[1] = sUnknown_80DB888; + sKecleonBrosWork1->unkE8.a0[0] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[2] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[0] = sUnknown_80DB870; + sKecleonBrosWork1->unkE8.a0[1] = sUnknown_80DB888; break; case 26: case 27: - sKecleonBrosWork1->unkE8[0] = sUnknown_80DB840; - sKecleonBrosWork1->unkE8[1] = sUnknown_80DB840; - sKecleonBrosWork1->unkE8[2] = sUnknown_80DB840; - sKecleonBrosWork1->unkE8[1] = sUnknown_80DB888; + sKecleonBrosWork1->unkE8.a0[0] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[1] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[2] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[1] = sUnknown_80DB888; break; case 20: case 28: - sKecleonBrosWork1->unkE8[2] = sUnknown_80DB858; + sKecleonBrosWork1->unkE8.a0[2] = sUnknown_80DB858; break; default: case KECLEON_STORE_BUY_ITEM_INFO: @@ -207,12 +207,12 @@ static void sub_8018D30(void) case KECLEON_STORE_SELL_ITEM_MENU: case KECLEON_STORE_SELL_ITEM_RECEIPT: for (i = 0; i < 4; i++) - sKecleonBrosWork1->unkE8[i] = sUnknown_80DB840; + sKecleonBrosWork1->unkE8.a0[i] = sUnknown_80DB840; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sKecleonBrosWork1->unkE8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sKecleonBrosWork1->unkE8, TRUE, TRUE); } static void UpdateKecleonStoreDialogue(void) diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index e071f6169..f05684cb8 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -25,12 +25,12 @@ bool8 sub_8019E40(u32 r0) gUnknown_203B214 = MemoryAlloc(sizeof(*gUnknown_203B214), 8); gUnknown_203B214->s0.unk34 = r0; - gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34]; - RestoreUnkTextStruct_8006518(gUnknown_203B214->s0.unk3C); - gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34] = sUnknown_80DB8CC; + gUnknown_203B214->s0.unk38 = &gUnknown_203B214->s0.unk3C.a0[gUnknown_203B214->s0.unk34]; + RestoreUnkTextStruct_8006518(&gUnknown_203B214->s0.unk3C); + gUnknown_203B214->s0.unk3C.a0[gUnknown_203B214->s0.unk34] = sUnknown_80DB8CC; gUnknown_203B214->s0.unk38->unk14 = &gUnknown_203B214->unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B214->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B214->s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B214->s0.input, CountKecleonShopItems(), 10, r0); gUnknown_203B214->s0.input.menuIndex = gUnknown_203B218; sub_8013984(&gUnknown_203B214->s0.input); @@ -84,7 +84,7 @@ u8 sub_8019FB0(void) void sub_8019FCC(bool8 r0) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B214->s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B214->s0.unk3C, FALSE, FALSE); gUnknown_203B214->s0.input.unk22 = CountKecleonShopItems(); sub_8013984(&gUnknown_203B214->s0.input); sub_801A064(); @@ -97,9 +97,9 @@ void sub_801A010(void) { if (gUnknown_203B214 != NULL) { gUnknown_203B218 = gUnknown_203B214->s0.input.menuIndex; - gUnknown_203B214->s0.unk3C[gUnknown_203B214->s0.unk34] = sUnknown_80DB8B4; + gUnknown_203B214->s0.unk3C.a0[gUnknown_203B214->s0.unk34] = sUnknown_80DB8B4; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B214->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B214->s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B214); gUnknown_203B214 = NULL; } diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index 795957ecd..23fe1676b 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -25,12 +25,12 @@ u8 sub_801A20C(u32 r0) gUnknown_203B21C = MemoryAlloc(sizeof(*gUnknown_203B21C), 8); gUnknown_203B21C->s0.unk34 = r0; - gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34]; - RestoreUnkTextStruct_8006518(gUnknown_203B21C->s0.unk3C); - gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34] = sUnknown_80DB914; + gUnknown_203B21C->s0.unk38 = &gUnknown_203B21C->s0.unk3C.a0[gUnknown_203B21C->s0.unk34]; + RestoreUnkTextStruct_8006518(&gUnknown_203B21C->s0.unk3C); + gUnknown_203B21C->s0.unk3C.a0[gUnknown_203B21C->s0.unk34] = sUnknown_80DB914; gUnknown_203B21C->s0.unk38->unk14 = &gUnknown_203B21C->unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B21C->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B21C->s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B21C->s0.input, CountKecleonWareItems(), 10, r0); gUnknown_203B21C->s0.input.menuIndex = gUnknown_203B220; sub_8013984(&gUnknown_203B21C->s0.input); @@ -85,7 +85,7 @@ u8 sub_801A37C(void) void sub_801A398(bool8 r0) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B21C->s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B21C->s0.unk3C, FALSE, FALSE); gUnknown_203B21C->s0.input.unk22 = CountKecleonWareItems(); sub_8013984(&gUnknown_203B21C->s0.input); sub_801A430(); @@ -98,9 +98,9 @@ void sub_801A3DC(void) { if (gUnknown_203B21C != NULL) { gUnknown_203B220 = gUnknown_203B21C->s0.input.menuIndex; - gUnknown_203B21C->s0.unk3C[gUnknown_203B21C->s0.unk34] = sUnknown_80DB8FC; + gUnknown_203B21C->s0.unk3C.a0[gUnknown_203B21C->s0.unk34] = sUnknown_80DB8FC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B21C->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B21C->s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B21C); gUnknown_203B21C = NULL; } diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index cb75b5065..8e6487969 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -23,7 +23,7 @@ static void SortInventoryItems(void); static void sub_801A998(void); static s32 sub_801AE24(u32); -bool8 sub_801A5D8(u32 param_1, s32 param_2, UnkTextStruct2_sub *param_3, u32 param_4) +bool8 sub_801A5D8(u32 param_1, s32 param_2, DungeonPos *param_3, u32 param_4) { if (GetNumberOfFilledInventorySlots() == 0) return FALSE; @@ -35,18 +35,18 @@ bool8 sub_801A5D8(u32 param_1, s32 param_2, UnkTextStruct2_sub *param_3, u32 par FillInventoryGaps(); sub_801AE84(); gUnknown_203B224->unk54.s0.unk34 = param_2; - gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.unk3C[param_2]; - RestoreUnkTextStruct_8006518(gUnknown_203B224->unk54.s0.unk3C); - gUnknown_203B224->unk54.s0.unk3C[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB95C; + gUnknown_203B224->unk54.s0.unk38 = &gUnknown_203B224->unk54.s0.unk3C.a0[param_2]; + RestoreUnkTextStruct_8006518(&gUnknown_203B224->unk54.s0.unk3C); + gUnknown_203B224->unk54.s0.unk3C.a0[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB95C; gUnknown_203B224->unk54.s0.unk38->unk14 = &gUnknown_203B224->unk54.unk9C; if (param_3 != NULL) - gUnknown_203B224->unk54.s0.unk3C[gUnknown_203B224->unk54.s0.unk34].unk8 = *param_3; + gUnknown_203B224->unk54.s0.unk3C.a0[gUnknown_203B224->unk54.s0.unk34].pos = *param_3; sub_8012D08(gUnknown_203B224->unk54.s0.unk38, param_4); sub_8099690(1); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B224->unk54.s0.input, GetNumberOfFilledInventorySlots(), param_4, param_2); gUnknown_203B224->unk54.s0.input.menuIndex = gUnknown_203B228; gUnknown_203B224->unk54.s0.input.unk1E = gUnknown_203B22A; @@ -147,7 +147,7 @@ void sub_801A8D0(bool8 r0) { sub_8099690(1); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B224->unk54.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B224->unk54.s0.unk3C, FALSE, FALSE); FillInventoryGaps(); gUnknown_203B224->unk54.s0.input.unk22 = GetNumberOfFilledInventorySlots(); sub_8013984(&gUnknown_203B224->unk54.s0.input); @@ -162,10 +162,10 @@ 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.unk3C[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB944; + gUnknown_203B224->unk54.s0.unk3C.a0[gUnknown_203B224->unk54.s0.unk34] = sUnknown_80DB944; sub_8099690(0); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B224); gUnknown_203B224 = NULL; } @@ -178,7 +178,7 @@ static void sub_801A998(void) gUnknown_203B224->unk54.unk9C.f2 = 11; gUnknown_203B224->unk54.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B224->unk54.s0.unk3C, TRUE, TRUE); } void sub_801A9E0(void) diff --git a/src/load_screen.c b/src/load_screen.c index f816767a4..506b7af4b 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -29,7 +29,7 @@ struct LoadScreen // size: 0x27c u32 currMenu; MenuStruct unk4[4]; - UnkTextStruct2 unk144[4]; + UnkTextStruct3 unk144; /* 0x1A4 */ u8 formattedTeamName[0x24]; /* 0x1C8 */ u8 formattedPlayerName[0x24]; /* 0x1EC */ u8 formattedLocation[0x24]; @@ -168,29 +168,29 @@ void CreateLoadScreen(u32 currMenu) } gLoadScreen->currMenu = currMenu; for(index = 0; index < 4; index++){ - gLoadScreen->unk144[index] = gUnknown_80E75F8; + gLoadScreen->unk144.a0[index] = gUnknown_80E75F8; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gLoadScreen->unk144, TRUE, TRUE); - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,FALSE); + xxx_call_save_unk_text_struct_800641C(&gLoadScreen->unk144, TRUE, TRUE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,0,&gUnknown_80E7610,gUnknown_203B378,FALSE,6,FALSE); switch(gLoadScreen->currMenu){ case MENU_CONTINUE: if (IsQuickSave()) - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeQuicksaveMenuItems,FALSE,6,FALSE); else - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,1,&gUnknown_80E762C,gResumeAdventureMenuItems,FALSE,6,FALSE); break; case MENU_AWAITING_RESCUE: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,1,&gUnknown_80E762C,gQuitWaitingRescueMenuItems,FALSE,6,FALSE); break; case MENU_DELETE_SAVE_PROMPT: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,1,&gUnknown_80E762C,gDeleteSavePromptMenuItems,FALSE,6,FALSE); break; case MENU_DELETE_SAVE_CONFIRM: - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,1,&gUnknown_80E762C, gDeleteSaveConfirmMenuItems,FALSE,6,FALSE); break; } - SetMenuItems(gLoadScreen->unk4,gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,FALSE); + SetMenuItems(gLoadScreen->unk4,&gLoadScreen->unk144,2,&gUnknown_80E7784,gLoadScreenYesNoMenu,TRUE,2,FALSE); sub_8035CF4(gLoadScreen->unk4,0,0); sub_8035CF4(gLoadScreen->unk4,1,0); sub_8035CF4(gLoadScreen->unk4,2,1); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index edbb0cf20..2c4fe069b 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -180,12 +180,12 @@ static void sub_8024804(void) { s32 i; - RestoreUnkTextStruct_8006518(sLuminousCaveWork->unk114); + RestoreUnkTextStruct_8006518(&sLuminousCaveWork->unk114); switch (sLuminousCaveWork->state) { case 8: case 13: - sLuminousCaveWork->unk114[2] = sUnknown_80DCA00; + sLuminousCaveWork->unk114.a0[2] = sUnknown_80DCA00; break; case LUMINOUS_CAVE_LET_US_BEGIN: case LUMINOUS_CAVE_CHANGED_APPEARANCE: @@ -200,12 +200,12 @@ static void sub_8024804(void) break; default: for (i = 0; i < 4; i++) - sLuminousCaveWork->unk114[i] = sUnknown_80DC9E8; + sLuminousCaveWork->unk114.a0[i] = sUnknown_80DC9E8; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sLuminousCaveWork->unk114, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sLuminousCaveWork->unk114, TRUE, TRUE); } static void UpdateLuminousCaveDialogue(void) diff --git a/src/mailbox.c b/src/mailbox.c index 2e3a5a1f1..83ea8e5f7 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -150,34 +150,34 @@ void SetMailboxState(u32 newState) void sub_802E0A0(void) { s32 index; - RestoreUnkTextStruct_8006518(gUnknown_203B304->unk10C); + RestoreUnkTextStruct_8006518(&gUnknown_203B304->unk10C); switch(gUnknown_203B304->state) { case MAIN_MAILBOX_MENU: for(index = 0; index < 4; index++) { - gUnknown_203B304->unk10C[index] = gUnknown_80E0284; + gUnknown_203B304->unk10C.a0[index] = gUnknown_80E0284; } CreateMailboxMenu(); - gUnknown_203B304->unk10C[2] = gUnknown_80E029C; - sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->menuItems); + gUnknown_203B304->unk10C.a0[2] = gUnknown_80E029C; + sub_8012CAC(&gUnknown_203B304->unk10C.a0[2], gUnknown_203B304->menuItems); break; case MAIL_ACTION_MENU: CreateMailActionMenu(); - gUnknown_203B304->unk10C[2] = gUnknown_80E02B4; - sub_8012CAC(&gUnknown_203B304->unk10C[2], gUnknown_203B304->menuItems); - gUnknown_203B304->unk10C[2].unkC = 6; - gUnknown_203B304->unk10C[3] = gUnknown_80E02CC; + gUnknown_203B304->unk10C.a0[2] = gUnknown_80E02B4; + sub_8012CAC(&gUnknown_203B304->unk10C.a0[2], gUnknown_203B304->menuItems); + gUnknown_203B304->unk10C.a0[2].unkC = 6; + gUnknown_203B304->unk10C.a0[3] = gUnknown_80E02CC; break; default: for(index = 0; index < 4; index++) { - gUnknown_203B304->unk10C[index] = gUnknown_80E0284; + gUnknown_203B304->unk10C.a0[index] = gUnknown_80E0284; } break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B304->unk10C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B304->unk10C, TRUE, TRUE); } void sub_802E1AC(void) diff --git a/src/main_menu1.c b/src/main_menu1.c index 8a79f8eb2..5db81b46d 100644 --- a/src/main_menu1.c +++ b/src/main_menu1.c @@ -291,9 +291,10 @@ void sub_8035C1C(void) sMainMenu->sub.unk2D = 0; } -void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, bool8 unused) +void SetMenuItems(MenuStruct *a0, UnkTextStruct3 *a1, s32 index, const UnkTextStruct2 *a3, const MenuItem *menuItems, bool8 a5, u32 menuAction, bool8 unused) { - a1[index] = *a3; + UnkTextStruct2 *txtPtrs = a1->a0; + txtPtrs[index] = *a3; ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(a1, TRUE, TRUE); @@ -305,10 +306,13 @@ void SetMenuItems(MenuStruct *a0, UnkTextStruct2 *a1, s32 index, const UnkTextSt a0[index].unk4C = TRUE; } -void sub_8035CC0(UnkTextStruct2 *dataArray, u32 index) +void sub_8035CC0(UnkTextStruct3 *dataArray, u32 index) { + UnkTextStruct2 *txtPtrs; + RestoreUnkTextStruct_8006518(dataArray); - dataArray[index] = sUnknown_80E59A8; + txtPtrs = dataArray->a0; + txtPtrs[index] = sUnknown_80E59A8; ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(dataArray, TRUE, TRUE); } diff --git a/src/main_menu2.c b/src/main_menu2.c index 220930b9d..f6d5d8a4d 100644 --- a/src/main_menu2.c +++ b/src/main_menu2.c @@ -32,10 +32,10 @@ void DrawMainMenu(void) } for (i = 0; i < 4; i++) - sUnknown_203B34C->unk144[i] = sUnknown_80E59C8; + sUnknown_203B34C->unk144.a0[i] = sUnknown_80E59C8; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B34C->unk144, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B34C->unk144, TRUE, TRUE); SetMainMenuItems(); sUnknown_203B34C->currMenuChoice = -1; @@ -148,56 +148,56 @@ static bool8 SetMainMenuText(void) return FALSE; sUnknown_203B34C->currMenuChoice = menuChoice; - sub_8035CC0(sUnknown_203B34C->unk144, 2); - sub_8035CC0(sUnknown_203B34C->unk144, 3); + sub_8035CC0(&sUnknown_203B34C->unk144, 2); + sub_8035CC0(&sUnknown_203B34C->unk144, 3); switch (menuChoice) { case MENU_WIRELESS_COMMS: // Using wireless communications, you can go on an adventure to unknown worlds. - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E6030, FALSE, 0, FALSE); break; case MENU_WONDER_MAIL: // Using passwords, you can receive Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F80, FALSE, 0, FALSE); break; case MENU_AWAITING_RESCUE: // You are awaiting resuce by a friend // You can give up waiting for rescue - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5F1C, FALSE, 0, FALSE); break; case MENU_NEW_GAME: // Start an entirely new adventure - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5CCC, FALSE, 0, FALSE); break; case MENU_CONTINUE: // Resume your adventure from where you last saved - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DA0, FALSE, 0, FALSE); break; case MENU_DELETE_SAVE_PROMPT: // This will delete your saved game data. // Beware! This will delete it forever - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5DF0, FALSE, 0, FALSE); break; case MENU_ADVENTURE_LOG: // Check your career as an adventurer - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D0C, FALSE, 0, FALSE); break; case MENU_FRIEND_RESCUE: // Using a Game Link cable or passwords, friends may rescue each other - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5E5C, FALSE, 0, FALSE); break; case MENU_TRADE_ITEMS: // Using a Game Link cable you can trade stored items with a friend - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5EBC, FALSE, 0, FALSE); break; case MENU_DUAL_SLOT: // Using Dual Slot function, you can receive teams from your friends - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5FCC, FALSE, 0, FALSE); break; case MENU_DEBUG: // This is the Debug Mode. // It won't be in the release version - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, FALSE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 2, &sUnknown_80E5CB4, sUnknown_80E5D48, FALSE, 0, FALSE); break; default: break; @@ -208,7 +208,7 @@ static bool8 SetMainMenuText(void) static void sub_803623C(void) { - sub_8035CC0(sUnknown_203B34C->unk144, 1); + sub_8035CC0(&sUnknown_203B34C->unk144, 1); SetMainMenuItems(); sUnknown_203B34C->currMenuChoice = -1; @@ -230,7 +230,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5C18, TRUE, sUnknown_203B350, TRUE); } else { // Revive Team @@ -238,7 +238,7 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5BC4, sUnknown_80E5BDC, TRUE, sUnknown_203B350, TRUE); } } else { @@ -249,7 +249,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5AFC, TRUE, sUnknown_203B350, TRUE); } else { // Continue @@ -257,7 +257,7 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5A60, sUnknown_80E5A90, TRUE, sUnknown_203B350, TRUE); } } } @@ -269,7 +269,7 @@ static void SetMainMenuItems(void) // Friend Rescue // Trade Items // Wonder Mail - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5A78, sUnknown_80E5B8C, TRUE, sUnknown_203B350, TRUE); } else { // Awaiting Rescue @@ -277,14 +277,14 @@ static void SetMainMenuItems(void) // Adventure Log // Friend Rescue // Trade Items - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E5B34, sUnknown_80E5B4C, TRUE, sUnknown_203B350, TRUE); } } } else { // New Game // Adventure Log - SetMenuItems(sUnknown_203B34C->unk4, sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, TRUE); + SetMenuItems(sUnknown_203B34C->unk4, &sUnknown_203B34C->unk144, 0, &sUnknown_80E59E0, sUnknown_80E59F8, TRUE, sUnknown_203B350, TRUE); } } diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index bfcf7f211..e2357fb9a 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -152,21 +152,21 @@ static void sub_802FF1C(void) { s32 index; - RestoreUnkTextStruct_8006518(sMakuhitaDojoWork1->unk6C); + RestoreUnkTextStruct_8006518(&sMakuhitaDojoWork1->unk6C); switch (sMakuhitaDojoWork1->state) { case 0: case 4: case 13: for(index = 0; index < 4; index++) - sMakuhitaDojoWork1->unk6C[index] = sUnknown_80E0760; + sMakuhitaDojoWork1->unk6C.a0[index] = sUnknown_80E0760; break; default: break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sMakuhitaDojoWork1->unk6C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sMakuhitaDojoWork1->unk6C, TRUE, TRUE); } static void MakuhitaDojo_UpdateDialogue(void) diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index 0555b3045..3aed6c381 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -22,7 +22,7 @@ static void MakuhitaDojo_DrawCourseList(void); static void sub_80304C8(void); static s32 sub_8030668(void); -bool8 sub_80302E8(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3) +bool8 sub_80302E8(s32 param_1, DungeonPos *param_2, u32 param_3) { if (MakuhitaDojo_ReturnFalse()) return FALSE; @@ -31,17 +31,17 @@ bool8 sub_80302E8(s32 param_1, UnkTextStruct2_sub *param_2, u32 param_3) sMakuhitaDojoWork2 = MemoryAlloc(sizeof(MakuhitaDojoWork2), 8); sMakuhitaDojoWork2->s30.s0.unk34 = param_1; - sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.unk3C[param_1]; - RestoreUnkTextStruct_8006518(sMakuhitaDojoWork2->s30.s0.unk3C); - sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E0804; + sMakuhitaDojoWork2->s30.s0.unk38 = &sMakuhitaDojoWork2->s30.s0.unk3C.a0[param_1]; + RestoreUnkTextStruct_8006518(&sMakuhitaDojoWork2->s30.s0.unk3C); + sMakuhitaDojoWork2->s30.s0.unk3C.a0[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E0804; sMakuhitaDojoWork2->s30.s0.unk38->unk14 = &sMakuhitaDojoWork2->s30.unk9C; if (param_2 != NULL) - sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34].unk8 = *param_2; + sMakuhitaDojoWork2->s30.s0.unk3C.a0[sMakuhitaDojoWork2->s30.s0.unk34].pos = *param_2; sub_8012D08(sMakuhitaDojoWork2->s30.s0.unk38, param_3); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE); sub_8013818(&sMakuhitaDojoWork2->s30.s0.input, sub_8030668(), param_3, param_1); sub_80304C8(); MakuhitaDojo_DrawCourseList(); @@ -91,9 +91,9 @@ UNUSED static void sub_8030444(bool8 a0) void sub_8030480(void) { if (sMakuhitaDojoWork2 != NULL) { - sMakuhitaDojoWork2->s30.s0.unk3C[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E07EC; + sMakuhitaDojoWork2->s30.s0.unk3C.a0[sMakuhitaDojoWork2->s30.s0.unk34] = sUnknown_80E07EC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sMakuhitaDojoWork2->s30.s0.unk3C, TRUE, TRUE); MemoryFree(sMakuhitaDojoWork2); sMakuhitaDojoWork2 = NULL; } diff --git a/src/menu_input.c b/src/menu_input.c index 3a19b7e9e..8b2f39d7c 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -386,7 +386,7 @@ void sub_8012EBC(MenuStruct *param_1) const u32 *colorArray; s32 counter; s32 index; - UnkTextStruct2 textStack[4]; + UnkTextStruct3 textStack; u8 buffer[256]; UnkTextStruct1 *ptr_text; UnkTextStruct2 *ptr_text2; @@ -397,8 +397,8 @@ void sub_8012EBC(MenuStruct *param_1) ptr_text = &gUnknown_2027370[index]; if (ptr_text->unkC == 6) { - ptr_text2 = &textStack[index]; - RestoreUnkTextStruct_8006518(textStack); + ptr_text2 = &textStack.a0[index]; + RestoreUnkTextStruct_8006518(&textStack); x = sub_8008ED0(param_1->unk0); PrintFormattedStringOnWindow(((ptr_text2->unk14->f2 * 8 - x) / 2) + 8, 0, param_1->unk0, param_1->index, 0); } @@ -1152,7 +1152,7 @@ static bool8 sub_8013DD0(unkStructFor8013AA0 *a0) void sub_8013E54(void) { UnkTextStruct1 *ptr = &gUnknown_2027370[0]; - SpriteOAM SStack_18 = {0}; + SpriteOAM SStack_18 = {0}; SpriteSetAffine1(&SStack_18, 0); SpriteSetAffine2(&SStack_18, 0); @@ -1174,7 +1174,7 @@ void sub_8013E54(void) void sub_8013F84(void) { UnkTextStruct1 *ptr = &gUnknown_2027370[0]; - SpriteOAM SStack_18 = {0}; + SpriteOAM SStack_18 = {0}; SpriteSetAffine1(&SStack_18, 0); SpriteSetAffine2(&SStack_18, 0); @@ -1193,13 +1193,13 @@ void sub_8013F84(void) AddSprite(&SStack_18,0x100,0,0x0); } -void sub_80140B4(UnkTextStruct2 *a0) +void sub_80140B4(UnkTextStruct3 *a0) { s32 i; for(i = 0; i < 4; i++) { - a0[i] = gUnknown_80D47C8[i]; + a0->a0[i] = gUnknown_80D47C8[i]; } } diff --git a/src/mission_reward.c b/src/mission_reward.c index 12d1ed130..4a970e60c 100644 --- a/src/mission_reward.c +++ b/src/mission_reward.c @@ -22,7 +22,7 @@ struct unkStruct_203B310 /* 0xC */ s32 itemRewardIndex; unkStruct_802F204 *unk10; /* 0x14 */ struct MonPortraitMsg monPortrait; - UnkTextStruct2 unk24[4]; + UnkTextStruct3 unk24; }; EWRAM_INIT struct unkStruct_203B310 *gUnknown_203B310 = {NULL}; @@ -180,13 +180,13 @@ void sub_802F300(void) switch(gUnknown_203B310->state) { case PREP_MONEY_REWARD: - RestoreUnkTextStruct_8006518(gUnknown_203B310->unk24); + RestoreUnkTextStruct_8006518(&gUnknown_203B310->unk24); for(index = 0; index < 4; index++) { - gUnknown_203B310->unk24[index] = gUnknown_80E041C; + gUnknown_203B310->unk24.a0[index] = gUnknown_80E041C; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B310->unk24, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B310->unk24, TRUE, TRUE); default: break; } diff --git a/src/options_menu1.c b/src/options_menu1.c index 4e0222a96..69dd2ef66 100644 --- a/src/options_menu1.c +++ b/src/options_menu1.c @@ -104,7 +104,7 @@ static void sub_801DD84(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B25C->unkBC); + RestoreUnkTextStruct_8006518(&sUnknown_203B25C->unkBC); switch (sUnknown_203B25C->state) { case OPTIONS_MENU_INIT: @@ -118,30 +118,30 @@ static void sub_801DD84(void) } for(i = 0; i < 4; i++) - sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + sUnknown_203B25C->unkBC.a0[i] = sUnknown_80DBFB0; - sUnknown_203B25C->unkBC[0] = sUnknown_80DBFCC; - sub_8012CAC(&sUnknown_203B25C->unkBC[0], sUnknown_203B25C->menuItems); - sUnknown_203B25C->unkBC[0].unkC = 10; + sUnknown_203B25C->unkBC.a0[0] = sUnknown_80DBFCC; + sub_8012CAC(&sUnknown_203B25C->unkBC.a0[0], sUnknown_203B25C->menuItems); + sUnknown_203B25C->unkBC.a0[0].unkC = 10; break; case OPTIONS_MENU_MAIN: CreateOthersMenu(); for (i = 0; i < 4; i++) - sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + sUnknown_203B25C->unkBC.a0[i] = sUnknown_80DBFB0; - sUnknown_203B25C->unkBC[0] = sUnknown_80DBFCC; - sub_8012CAC(&sUnknown_203B25C->unkBC[0], sUnknown_203B25C->menuItems); - sUnknown_203B25C->unkBC[0].unkC = 10; + sUnknown_203B25C->unkBC.a0[0] = sUnknown_80DBFCC; + sub_8012CAC(&sUnknown_203B25C->unkBC.a0[0], sUnknown_203B25C->menuItems); + sUnknown_203B25C->unkBC.a0[0].unkC = 10; break; default: for (i = 0; i < 4; i++) - sUnknown_203B25C->unkBC[i] = sUnknown_80DBFB0; + sUnknown_203B25C->unkBC.a0[i] = sUnknown_80DBFB0; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B25C->unkBC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B25C->unkBC, TRUE, TRUE); } static void sub_801DED0(void) diff --git a/src/options_menu2.c b/src/options_menu2.c index 80fe8e084..d0a8d0211 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -22,12 +22,12 @@ bool8 sub_801E198(GameOptions *optionsMenu) sUnknown_203B260->optionsMenu = optionsMenu; sub_801317C(&sUnknown_203B260->unk4); sUnknown_203B260->unk44 = 0; - sUnknown_203B260->unk48 = &sUnknown_203B260->unk4C[0]; - RestoreUnkTextStruct_8006518(sUnknown_203B260->unk4C); - sUnknown_203B260->unk4C[sUnknown_203B260->unk44] = sUnknown_80DC03C; + sUnknown_203B260->unk48 = &sUnknown_203B260->unk4C.a0[0]; + RestoreUnkTextStruct_8006518(&sUnknown_203B260->unk4C); + sUnknown_203B260->unk4C.a0[sUnknown_203B260->unk44] = sUnknown_80DC03C; sub_8012D08(sUnknown_203B260->unk48, 1); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B260->unk4C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B260->unk4C, TRUE, TRUE); sub_8013818(&sUnknown_203B260->input, 1, 1, sUnknown_203B260->unk44); nullsub_38(); CreateOptionsMenu(); @@ -83,9 +83,9 @@ u32 sub_801E218(void) void sub_801E2C4(void) { if (sUnknown_203B260 != NULL) { - sUnknown_203B260->unk4C[sUnknown_203B260->unk44] = sUnknown_80DC020; + sUnknown_203B260->unk4C.a0[sUnknown_203B260->unk44] = sUnknown_80DC020; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B260->unk4C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B260->unk4C, TRUE, TRUE); MemoryFree(sUnknown_203B260); sUnknown_203B260 = NULL; } diff --git a/src/other_menus1.c b/src/other_menus1.c index 3cc5485d3..63f1f1153 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -54,11 +54,11 @@ void sub_8036FDC(s32 param_1) } for (index2 = 0; index2 < 4; index2++) - sUnknown_203B35C->unk15C[index2] = sUnknown_80E653C; + sUnknown_203B35C->unk15C.a0[index2] = sUnknown_80E653C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B35C->unk15C, TRUE, TRUE); - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B35C->unk15C, TRUE, TRUE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6CD0, sUnknown_80E6CE8, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); sub_80376CC(); } @@ -128,17 +128,17 @@ static void sub_80371B8(void) if (sUnknown_203B35C->unk0 < 2 && sUnknown_203B35C->linkStatus == COMMS_GOOD) { if (sub_8037C10(FALSE) != 0) { sub_80376CC(); - sub_8035CC0(sUnknown_203B35C->unk15C, 0); + sub_8035CC0(&sUnknown_203B35C->unk15C, 0); // Success! // The item exchange with your friend // went through successfully - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6C50, sUnknown_80E6C68, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); } } else { sub_80376CC(); - sub_8035CC0(sUnknown_203B35C->unk15C, 0); + sub_8035CC0(&sUnknown_203B35C->unk15C, 0); switch (sUnknown_203B35C->linkStatus) { case 0: @@ -194,7 +194,7 @@ static void sub_80371B8(void) break; } - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, puVar5, MenuItems, FALSE, 6, FALSE); sub_8035CF4(sUnknown_203B35C->unk1C, 0, TRUE); if (sUnknown_203B35C->linkStatus != COMMS_GOOD && sUnknown_203B35C->unk0 == 0) { @@ -407,27 +407,27 @@ static void sub_8037810(void) void sub_8037900(void) { - sub_8035CC0(sUnknown_203B35C->unk15C, 0); + sub_8035CC0(&sUnknown_203B35C->unk15C, 0); switch (sUnknown_203B35C->unk0) { case 0: case 1: { - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E656C, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E656C, FALSE, 6, FALSE); break; } case 2: case 3: { - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E65D8, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E65D8, FALSE, 6, FALSE); break; } case 4: case 5: { - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E661C, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E661C, FALSE, 6, FALSE); break; } case 6: case 7: { - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E665C, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E665C, FALSE, 6, FALSE); break; } case 8: { @@ -435,7 +435,7 @@ void sub_8037900(void) } case 9: case 10: { - SetMenuItems(sUnknown_203B35C->unk1C, sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E667C, FALSE, 6, FALSE); + SetMenuItems(sUnknown_203B35C->unk1C, &sUnknown_203B35C->unk15C, 0, &sUnknown_80E6554, sUnknown_80E667C, FALSE, 6, FALSE); break; } } diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 420c611a8..bc0fb1e48 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -157,36 +157,36 @@ static void SetPartyListMenuState(s32 newState) static void sub_802608C(void) { s32 index; - RestoreUnkTextStruct_8006518(sUnknown_203B2B8->unk220); + RestoreUnkTextStruct_8006518(&sUnknown_203B2B8->unk220); switch(sUnknown_203B2B8->state) { case PARTY_LIST_STATE_MAIN_MENU: case PARTY_LIST_STATE_MAIN_MENU_1: for(index = 0; index < 4; index++) { - sUnknown_203B2B8->unk220[index] = sUnknown_80DD310; + sUnknown_203B2B8->unk220.a0[index] = sUnknown_80DD310; } - sUnknown_203B2B8->unk220[0] = sUnknown_80DD358; - sUnknown_203B2B8->unk220[3] = sUnknown_80DD370; + sUnknown_203B2B8->unk220.a0[0] = sUnknown_80DD358; + sUnknown_203B2B8->unk220.a0[3] = sUnknown_80DD370; PartyListMenu_CreateMenu1(); - sUnknown_203B2B8->unk220[2] = sUnknown_80DD328; - sub_8012CAC(&sUnknown_203B2B8->unk220[2], sUnknown_203B2B8->unk16C); - sUnknown_203B2B8->unk220[2].unkC = 9; + sUnknown_203B2B8->unk220.a0[2] = sUnknown_80DD328; + sub_8012CAC(&sUnknown_203B2B8->unk220.a0[2], sUnknown_203B2B8->unk16C); + sUnknown_203B2B8->unk220.a0[2].unkC = 9; break; case 0x14: PartyListMenu_CreateMenu2(); - sUnknown_203B2B8->unk220[2] = sUnknown_80DD340; - sub_8012CAC(&sUnknown_203B2B8->unk220[2], sUnknown_203B2B8->unk16C); + sUnknown_203B2B8->unk220.a0[2] = sUnknown_80DD340; + sub_8012CAC(&sUnknown_203B2B8->unk220.a0[2], sUnknown_203B2B8->unk16C); break; default: for(index = 0; index < 4; index++) { - sUnknown_203B2B8->unk220[index] = sUnknown_80DD310; + sUnknown_203B2B8->unk220.a0[index] = sUnknown_80DD310; } break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2B8->unk220, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2B8->unk220, TRUE, TRUE); } void HandlePartyListMenuCallback(void) diff --git a/src/pelipper_board.c b/src/pelipper_board.c index 43d2d0b16..521ecd5aa 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -145,34 +145,34 @@ void SetPelipperBoardState(u32 newState) void sub_802E94C(void) { s32 index; - RestoreUnkTextStruct_8006518(gPelipperBoard->unk10C); + RestoreUnkTextStruct_8006518(&gPelipperBoard->unk10C); switch(gPelipperBoard->state) { case MAIN_PELIPPER_BOARD_MENU: for(index = 0; index < 4; index++) { - gPelipperBoard->unk10C[index] = gUnknown_80E0330; + gPelipperBoard->unk10C.a0[index] = gUnknown_80E0330; } CreatePelipperBoardMenu(); - gPelipperBoard->unk10C[2] = gUnknown_80E0348; - sub_8012CAC(&gPelipperBoard->unk10C[2], gPelipperBoard->menuItems); + gPelipperBoard->unk10C.a0[2] = gUnknown_80E0348; + sub_8012CAC(&gPelipperBoard->unk10C.a0[2], gPelipperBoard->menuItems); break; case 6: sub_802EC10(); - gPelipperBoard->unk10C[2] = gUnknown_80E0360; - sub_8012CAC(&gPelipperBoard->unk10C[2], gPelipperBoard->menuItems); - gPelipperBoard->unk10C[2].unkC = 6; - gPelipperBoard->unk10C[3] = gUnknown_80E0378; + gPelipperBoard->unk10C.a0[2] = gUnknown_80E0360; + sub_8012CAC(&gPelipperBoard->unk10C.a0[2], gPelipperBoard->menuItems); + gPelipperBoard->unk10C.a0[2].unkC = 6; + gPelipperBoard->unk10C.a0[3] = gUnknown_80E0378; break; default: for(index = 0; index < 4; index++) { - gPelipperBoard->unk10C[index] = gUnknown_80E0330; + gPelipperBoard->unk10C.a0[index] = gUnknown_80E0330; } break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gPelipperBoard->unk10C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gPelipperBoard->unk10C, TRUE, TRUE); } void sub_802EA58(void) diff --git a/src/personality_test1.c b/src/personality_test1.c index 5518629e1..013b326e5 100644 --- a/src/personality_test1.c +++ b/src/personality_test1.c @@ -386,13 +386,13 @@ static void PersonalityTest_DisplayStarterSprite(void) s32 paletteIndex; s32 emotionId; const u8 *gfx; - UnkTextStruct2 stackArray[4]; + UnkTextStruct3 stackArray; starterID = sPersonalityTestTracker->unk4.StarterID; - RestoreUnkTextStruct_8006518(stackArray); - stackArray[1] = sUnknown_80F4244; + RestoreUnkTextStruct_8006518(&stackArray); + stackArray.a0[1] = sUnknown_80F4244; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(stackArray, TRUE, FALSE); + xxx_call_save_unk_text_struct_800641C(&stackArray, TRUE, FALSE); CallPrepareTextbox_8008C54(1); sub_80073B8(1); diff --git a/src/personality_test2.c b/src/personality_test2.c index 9abf56dcd..04118b551 100644 --- a/src/personality_test2.c +++ b/src/personality_test2.c @@ -33,12 +33,12 @@ void CreatePartnerSelectionMenu(s16 starterID) sub_803CEAC(); gUnknown_203B404->StarterID = starterID_s32; gUnknown_203B404->s18.s0.unk34 = 0; - gUnknown_203B404->s18.s0.unk38 = gUnknown_203B404->s18.s0.unk3C; + gUnknown_203B404->s18.s0.unk38 = &gUnknown_203B404->s18.s0.unk3C.a0[0]; - gUnknown_203B404->s18.s0.unk3C[0] = gUnknown_80F4290; - gUnknown_203B404->s18.s0.unk3C[1] = gUnknown_80F42A8; - gUnknown_203B404->s18.s0.unk3C[2] = gUnknown_80F4278; - gUnknown_203B404->s18.s0.unk3C[3] = gUnknown_80F4278; + gUnknown_203B404->s18.s0.unk3C.a0[0] = gUnknown_80F4290; + gUnknown_203B404->s18.s0.unk3C.a0[1] = gUnknown_80F42A8; + gUnknown_203B404->s18.s0.unk3C.a0[2] = gUnknown_80F4278; + gUnknown_203B404->s18.s0.unk3C.a0[3] = gUnknown_80F4278; gUnknown_203B404->s18.s0.unk38->unk14 = &gUnknown_203B404->s18.unk9C; @@ -47,7 +47,7 @@ void CreatePartnerSelectionMenu(s16 starterID) gUnknown_203B404->s18.unk9C.f2 = 6; gUnknown_203B404->s18.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B404->s18.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B404->s18.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B404->s18.s0.input, GetValidPartners(), 10, gUnknown_203B404->s18.s0.unk34); RedrawPartnerSelectionMenu(); PersonalityTest_DisplayPartnerSprite(); @@ -90,9 +90,9 @@ UNUSED static void sub_803CE34(bool8 cursorSprite) void sub_803CE6C(void) { - gUnknown_203B404->s18.s0.unk3C[gUnknown_203B404->s18.s0.unk34] = gUnknown_80F4278; + gUnknown_203B404->s18.s0.unk3C.a0[gUnknown_203B404->s18.s0.unk34] = gUnknown_80F4278; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B404->s18.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B404->s18.s0.unk3C, TRUE, TRUE); sub_803CECC(); } diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index b88b50255..d2bb8ef6d 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -23,7 +23,7 @@ static s32 GetNumPKMNNews(void); static void sub_802B880(void); -bool8 sub_802B640(u32 a0, UnkTextStruct2_sub *a1, u32 a2) +bool8 sub_802B640(u32 a0, DungeonPos *a1, u32 a2) { if (HasNoPKMNNews()) return FALSE; @@ -32,18 +32,18 @@ bool8 sub_802B640(u32 a0, UnkTextStruct2_sub *a1, u32 a2) sUnknown_203B2CC = MemoryAlloc(sizeof(struct unkStruct_203B2CC), 8); sUnknown_203B2CC->s38.unk34 = a0; - sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.unk3C[a0]; + sUnknown_203B2CC->s38.unk38 = &sUnknown_203B2CC->s38.unk3C.a0[a0]; - RestoreUnkTextStruct_8006518(sUnknown_203B2CC->s38.unk3C); + RestoreUnkTextStruct_8006518(&sUnknown_203B2CC->s38.unk3C); - sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBEC; + sUnknown_203B2CC->s38.unk3C.a0[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBEC; if (a1 != NULL) - sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34].unk8 = *a1; + sUnknown_203B2CC->s38.unk3C.a0[sUnknown_203B2CC->s38.unk34].pos = *a1; sub_8012D08(sUnknown_203B2CC->s38.unk38, a2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2CC->s38.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2CC->s38.unk3C, TRUE, TRUE); sub_8013818(&sUnknown_203B2CC->s38.input, GetNumPKMNNews(), a2, a0); @@ -92,7 +92,7 @@ u8 GetPokemonNewsIndex(void) void sub_802B7D0(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2CC->s38.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2CC->s38.unk3C, FALSE, FALSE); sUnknown_203B2CC->s38.input.unk22 = GetNumPKMNNews(); sub_8013984(&sUnknown_203B2CC->s38.input); @@ -110,10 +110,10 @@ void sub_802B81C(void) sUnknown_203B2D2 = sUnknown_203B2CC->s38.input.unk1E; - sUnknown_203B2CC->s38.unk3C[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBD0; + sUnknown_203B2CC->s38.unk3C.a0[sUnknown_203B2CC->s38.unk34] = sUnknown_80DFBD0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2CC->s38.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2CC->s38.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B2CC); sUnknown_203B2CC = NULL; diff --git a/src/pokemon_news2.c b/src/pokemon_news2.c index c76a77490..76058ec60 100644 --- a/src/pokemon_news2.c +++ b/src/pokemon_news2.c @@ -27,12 +27,12 @@ bool8 sub_802B9FC(u8 mailIndex) sUnknown_203B2D4->currMailIndex = mailIndex; sub_801317C(&sUnknown_203B2D4->unk88); sUnknown_203B2D4->unk24 = 0; - sUnknown_203B2D4->unk28[0] = sUnknown_80DFC34; - sUnknown_203B2D4->unk28[1] = sUnknown_80DFC18; - sUnknown_203B2D4->unk28[2] = sUnknown_80DFC18; - sUnknown_203B2D4->unk28[3] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28.a0[0] = sUnknown_80DFC34; + sUnknown_203B2D4->unk28.a0[1] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28.a0[2] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28.a0[3] = sUnknown_80DFC18; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2D4->unk28, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2D4->unk28, TRUE, TRUE); sUnknown_203B2D4->unk8 = 0; sub_802BCC4(); sub_802BC7C(); @@ -62,9 +62,9 @@ u32 sub_802BA8C(void) void sub_802BACC(void) { if (sUnknown_203B2D4 != NULL) { - sUnknown_203B2D4->unk28[sUnknown_203B2D4->unk24] = sUnknown_80DFC18; + sUnknown_203B2D4->unk28.a0[sUnknown_203B2D4->unk24] = sUnknown_80DFC18; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2D4->unk28, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2D4->unk28, TRUE, TRUE); MemoryFree(sUnknown_203B2D4); sUnknown_203B2D4 = NULL; } diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index c0b4820f5..a3cdc8148 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -26,7 +26,7 @@ static s32 CountEmptyMailSlots(void); static void sub_802BF30(void); -bool8 sub_802BD14(s32 a0, UnkTextStruct2_sub *a1, u32 a2) +bool8 sub_802BD14(s32 a0, DungeonPos *a1, u32 a2) { if (HasNoMailinMailbox()) return FALSE; @@ -35,17 +35,17 @@ bool8 sub_802BD14(s32 a0, UnkTextStruct2_sub *a1, u32 a2) sUnknown_203B2D8 = MemoryAlloc(sizeof(struct unkStruct_203B2D8), 8); sUnknown_203B2D8->unk4.s0.unk34 = a0; - sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.unk3C[a0]; - RestoreUnkTextStruct_8006518(sUnknown_203B2D8->unk4.s0.unk3C); - sUnknown_203B2D8->unk4.s0.unk3C[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC74; + sUnknown_203B2D8->unk4.s0.unk38 = &sUnknown_203B2D8->unk4.s0.unk3C.a0[a0]; + RestoreUnkTextStruct_8006518(&sUnknown_203B2D8->unk4.s0.unk3C); + sUnknown_203B2D8->unk4.s0.unk3C.a0[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC74; sUnknown_203B2D8->unk4.s0.unk38->unk14 = &sUnknown_203B2D8->unk4.unk9C; if (a1 != NULL) - sUnknown_203B2D8->unk4.s0.unk3C[sUnknown_203B2D8->unk4.s0.unk34].unk8 = *a1; + sUnknown_203B2D8->unk4.s0.unk3C.a0[sUnknown_203B2D8->unk4.s0.unk34].pos = *a1; sub_8012D34(sUnknown_203B2D8->unk4.s0.unk38, a2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2D8->unk4.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2D8->unk4.s0.unk3C, TRUE, TRUE); sub_8013848(&sUnknown_203B2D8->unk4.s0.input, CountEmptyMailSlots(), a2, a0); sUnknown_203B2D8->unk4.s0.input.menuIndex = sUnknown_203B2DC; sub_8013984(&sUnknown_203B2D8->unk4.s0.input); @@ -89,7 +89,7 @@ u8 sub_802BE74(void) void sub_802BE94(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2D8->unk4.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2D8->unk4.s0.unk3C, FALSE, FALSE); sUnknown_203B2D8->unk4.s0.input.unk22 = CountEmptyMailSlots(); sub_8013984(&sUnknown_203B2D8->unk4.s0.input); @@ -104,9 +104,9 @@ void sub_802BEDC(void) { if (sUnknown_203B2D8 != NULL) { sUnknown_203B2DC = sUnknown_203B2D8->unk4.s0.input.menuIndex; - sUnknown_203B2D8->unk4.s0.unk3C[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC5C; + sUnknown_203B2D8->unk4.s0.unk3C.a0[sUnknown_203B2D8->unk4.s0.unk34] = sUnknown_80DFC5C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2D8->unk4.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2D8->unk4.s0.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B2D8); sUnknown_203B2D8 = NULL; } diff --git a/src/post_office_guide2.c b/src/post_office_guide2.c index c5e99e742..e18bf5efa 100644 --- a/src/post_office_guide2.c +++ b/src/post_office_guide2.c @@ -37,7 +37,7 @@ bool8 sub_80319A4(u8 param_1, u8 dungeon, s32 param_3) sUnknown_203B330->dungeonIndex = dungeon; sub_801317C(&sUnknown_203B330->input); sUnknown_203B330->unk10 = param_3; - sUnknown_203B330->unk14 = &sUnknown_203B330->unk18[param_3]; + sUnknown_203B330->unk14 = &sUnknown_203B330->unk18.a0[param_3]; sub_8031A2C(); return TRUE; } @@ -65,9 +65,9 @@ static void sub_8031A2C(void) void sub_8031A3C(void) { if (sUnknown_203B330 != NULL) { - sUnknown_203B330->unk18[sUnknown_203B330->unk10] = sUnknown_80E1EFC; + sUnknown_203B330->unk18.a0[sUnknown_203B330->unk10] = sUnknown_80E1EFC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B330->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B330->unk18, TRUE, TRUE); MemoryFree(sUnknown_203B330); sUnknown_203B330 = NULL; } @@ -77,8 +77,8 @@ static void sub_8031A84(void) { s32 jobs; - RestoreUnkTextStruct_8006518(sUnknown_203B330->unk18); - sUnknown_203B330->unk18[sUnknown_203B330->unk10] = sUnknown_80E1F18; + RestoreUnkTextStruct_8006518(&sUnknown_203B330->unk18); + sUnknown_203B330->unk18.a0[sUnknown_203B330->unk10] = sUnknown_80E1F18; if (sUnknown_203B330->unkC == 2) { jobs = CountJobsinDungeon(sUnknown_203B330->dungeonIndex); @@ -89,7 +89,7 @@ static void sub_8031A84(void) } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B330->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B330->unk18, TRUE, TRUE); } static void DisplayMissionObjectives(void) diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index e574f1ca9..3d0251d64 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -265,10 +265,10 @@ void CreateRescuePasswordMenu(u32 currMenu) } for(counter = 0; counter < 4; counter++) - gRescuePasswordMenu->unk148[counter] = gUnknown_80E71E4; + gRescuePasswordMenu->unk148.a0[counter] = gUnknown_80E71E4; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gRescuePasswordMenu->unk148, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gRescuePasswordMenu->unk148, TRUE, TRUE); if ((gUnknown_203B368 != 0) || (gUnknown_203B36C != currMenu)) { for(counter = 0; counter < RESCUE_PASSWORD_SIZE; counter++) @@ -543,37 +543,37 @@ s32 UpdateRescuePasswordMenu(void) void DisplayRescuePasswordError(u32 passwordError) { - RestoreUnkTextStruct_8006518(gRescuePasswordMenu->unk1A8); + RestoreUnkTextStruct_8006518(&gRescuePasswordMenu->unk1A8); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80155F0(); switch(passwordError) { case PASSWORD_ENTRY_INCORRECT_PASSWORD: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E71FC,gUnknown_80E7214,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E72EC,gUnknown_80E7304,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_SOS_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E7344,gUnknown_80E735C,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NO_SPACE: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E7588,gUnknown_80E75A0,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E73AC,gUnknown_80E73C4,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_AOK_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E7408,gUnknown_80E7420,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E7468,gUnknown_80E7480,FALSE,13,FALSE); break; case PASSWORD_ENTRY_DUPLICATE_THANK_YOU_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E74C8,gUnknown_80E74E0,FALSE,13,FALSE); break; case PASSWORD_ENTRY_NOT_WONDER_MAIL: - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E752C,gUnknown_80E7544,FALSE,13,FALSE); break; default: break; @@ -583,11 +583,11 @@ void DisplayRescuePasswordError(u32 passwordError) void DisplayPasswordAcceptScreen(void) { - RestoreUnkTextStruct_8006518(gRescuePasswordMenu->unk1A8); + RestoreUnkTextStruct_8006518(&gRescuePasswordMenu->unk1A8); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80155F0(); - SetMenuItems(gRescuePasswordMenu->unk8,gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,13,FALSE); + SetMenuItems(gRescuePasswordMenu->unk8,&gRescuePasswordMenu->unk148,0,&gUnknown_80E7278,gUnknown_80E7290,FALSE,13,FALSE); sub_8035CF4(gRescuePasswordMenu->unk8,0,TRUE); } diff --git a/src/save_menu.c b/src/save_menu.c index 7933ea70b..47a4b51eb 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -130,19 +130,19 @@ void CreateSaveMenu(s32 currMenu) MemoryFill8(sUnknown_203B364,0,sizeof(SaveMenuWork)); } for(index = 0; index < 4; index++){ - sUnknown_203B364->unk148[index] = gUnknown_80E6F20; + sUnknown_203B364->unk148.a0[index] = gUnknown_80E6F20; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B364->unk148, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B364->unk148, TRUE, TRUE); if (currMenu == MENU_DELETE_SAVE) { // Beware, Deleting your Adventure - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gDeletingYourAdventureMenuItems, FALSE,6,FALSE); } else { // Saving your Adventure - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38,gSavingAdventureMenuItems, FALSE,6,FALSE); } sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); @@ -187,13 +187,13 @@ s32 UpdateSaveMenu(void) switch(saveStatus) { case SAVE_COMPLETED: - sub_8035CC0(sUnknown_203B364->unk148,0); + sub_8035CC0(&sUnknown_203B364->unk148,0); if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38, gDeletedSaveMenuItems,FALSE,6,FALSE); } else { - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38, gAdventureSavedMenuItems,FALSE,6,FALSE); } if (sUnknown_203B364->currMenu == 0x2d) { @@ -208,13 +208,13 @@ s32 UpdateSaveMenu(void) sUnknown_203B364->unk4 = 5; break; default: - sub_8035CC0(sUnknown_203B364->unk148,0); + sub_8035CC0(&sUnknown_203B364->unk148,0); if (sUnknown_203B364->currMenu == MENU_DELETE_SAVE) { - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38, gAdventureCouldNotBeDeletedMenuItems,FALSE,6,FALSE); } else { - SetMenuItems(sUnknown_203B364->unk8,sUnknown_203B364->unk148,0,&gUnknown_80E6F38, + SetMenuItems(sUnknown_203B364->unk8,&sUnknown_203B364->unk148,0,&gUnknown_80E6F38, gAdventureCouldNotBeSavedMenuItems,FALSE,6,FALSE); } sub_8035CF4(sUnknown_203B364->unk8,0,TRUE); diff --git a/src/string_format.c b/src/string_format.c index 66c7dde8d..c76c256ce 100644 --- a/src/string_format.c +++ b/src/string_format.c @@ -59,41 +59,14 @@ u32 sub_8014140(void) } // This kinda looks like the 'true' beginning of the file -struct SubStruct_203B198 -{ - u8 unk0; - u32 unk4; // x34 - u16 unk8; // x38 - u16 unkA; // x3A - u16 unkC; // x3C - u16 unkE; // x3E - u16 unk10; // x40 - u8 fill12[6]; // x42 -}; - -struct UnkStruct_203B198 -{ - UnkTextStruct2 unk0; - u8 unk18; - u32 unk1C; - DungeonPos unk20; - u16 unk24; - u16 unk26; - u16 unk28; - u8 fill2A[4]; - struct SubStruct_203B198 unk30; - struct SubStruct_203B198 unk48; -}; - static const u32 gUnknown_80D48A0[] = {0x7, 0x2, 0x2}; -static const struct SubStruct_203B198 gUnknown_80D48AC = { - 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00 - +static const struct UnkTextStruct2 gUnknown_80D48AC = { + 0x00, + 0x00, 0x00, + 0x00, 0x03, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, 0x00 }; static const UnkTextStruct2 gUnknown_80D48C4 = { @@ -176,7 +149,7 @@ static EWRAM_DATA s32 gUnknown_202EC1C = 0; // Only read, but never written to. Possibly used in Blue? struct NeverWrittenToStruct202EC20 { - struct SubStruct_203B198 unk0; + struct UnkTextStruct2 unk0; const u8 *unk18; }; static EWRAM_DATA struct NeverWrittenToStruct202EC20 *sNeverWrittenToUnknownStructPtr = NULL; @@ -184,20 +157,24 @@ static UNUSED EWRAM_DATA u8 sUnusedEwram1[4] = {0}; static EWRAM_DATA MenuInputStructSub gUnknown_202EC28 = {0}; -static EWRAM_INIT struct UnkStruct_203B198 sUnknown_203B198 = { - .unk0 = { - .unk8 = {2, 15}, - .unkC = 26, - .unkE = 5, - .unk10 = 7, - }, - .unk18 = 0x40, - .unk1C = 7, - .unk30 = { - .unk4 = 3, - }, - .unk48 = { - .unk4 = 3, +static EWRAM_INIT UnkTextStruct3 sUnknown_203B198 = { + .a0 = { + [0] = { + .pos = {2, 15}, + .unkC = 26, + .unkE = 5, + .unk10 = 7, + }, + [1] = { + .unk0 = 0x40, + .unk4 = 7 + }, + [2] = { + .unk4 = 3, + }, + [3] = { + .unk4 = 3, + } } }; @@ -250,41 +227,41 @@ void CreateMenuDialogueBoxAndPortrait(const u8 *text, void *a1, u32 r9, const Me gUnknown_202EC1C = r9; sub_801317C(&gUnknown_202EC28); if (flags & 0x10) { - sUnknown_203B198.unk0 = gUnknown_80D48DC; + sUnknown_203B198.a0[0] = gUnknown_80D48DC; } else { - sUnknown_203B198.unk0 = gUnknown_80D48C4; + sUnknown_203B198.a0[0] = gUnknown_80D48C4; } - sUnknown_203B198.unk24 = 0; - sUnknown_203B198.unk26 = 0; - sUnknown_203B198.unk28 = 0; - sUnknown_203B198.unk18 = 0x40; + sUnknown_203B198.a0[1].unkC = 0; + sUnknown_203B198.a0[1].unkE = 0; + sUnknown_203B198.a0[1].unk10 = 0; + sUnknown_203B198.a0[1].unk0 = 0x40; if (monPortraitPtr != NULL && monPortraitPtr->faceData != NULL && monPortraitPtr->faceData->sprites[monPortraitPtr->spriteId].gfx != 0) { s32 i; - sUnknown_203B198.unk20.x = monPortraitPtr->pos.x; - sUnknown_203B198.unk20.y = monPortraitPtr->pos.y; - sUnknown_203B198.unk24 = 5; - sUnknown_203B198.unk26 = 5; - sUnknown_203B198.unk28 = 5; + sUnknown_203B198.a0[1].pos.x = monPortraitPtr->pos.x; + sUnknown_203B198.a0[1].pos.y = monPortraitPtr->pos.y; + sUnknown_203B198.a0[1].unkC = 5; + sUnknown_203B198.a0[1].unkE = 5; + sUnknown_203B198.a0[1].unk10 = 5; for (i = 0; i < 16; i++) { SetBGPaletteBufferColorArray(224 + i, &monPortraitPtr->faceData->sprites[monPortraitPtr->spriteId].pal[i]); } portraitOn = TRUE; if (monPortraitPtr->unkE) { - sUnknown_203B198.unk1C = 7; + sUnknown_203B198.a0[1].unk4 = 7; } else { - sUnknown_203B198.unk1C = 5; + sUnknown_203B198.a0[1].unk4 = 5; } } - sUnknown_203B198.unk30 = gUnknown_80D48AC; - sUnknown_203B198.unk48 = gUnknown_80D48AC; + sUnknown_203B198.a0[2] = gUnknown_80D48AC; + sUnknown_203B198.a0[3] = gUnknown_80D48AC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(&sUnknown_203B198.unk0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B198, TRUE, TRUE); gUnknown_202E748.unk0 = 4; gUnknown_202E748.unk2 = 4; gUnknown_202E748.unk8 = 0x70; @@ -644,21 +621,21 @@ static void sub_8014A88(void) if (r5 % 8) r2++; - sUnknown_203B198.unk30.unk4 = gUnknown_202EC10; + sUnknown_203B198.a0[2].unk4 = gUnknown_202EC10; r1 = r7 / 8; r1 += 2; - sUnknown_203B198.unk30.unkC = r1; - sUnknown_203B198.unk30.unk10 = r2; - sUnknown_203B198.unk30.unkE = r2; - sUnknown_203B198.unk30.unk8 = 28 - r1; - sUnknown_203B198.unk30.unkA = 14 - r2; - sUnknown_203B198.unk0.unk0 = 0x80; - sUnknown_203B198.unk18 = 0xC0; + sUnknown_203B198.a0[2].unkC = r1; + sUnknown_203B198.a0[2].unk10 = r2; + sUnknown_203B198.a0[2].unkE = r2; + sUnknown_203B198.a0[2].pos.x = 28 - r1; + sUnknown_203B198.a0[2].pos.y = 14 - r2; + sUnknown_203B198.a0[0].unk0 = 0x80; + sUnknown_203B198.a0[1].unk0 = 0xC0; if (sNeverWrittenToUnknownStructPtr != NULL) { - sUnknown_203B198.unk48 = sNeverWrittenToUnknownStructPtr->unk0; + sUnknown_203B198.a0[3] = sNeverWrittenToUnknownStructPtr->unk0; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(&sUnknown_203B198.unk0, TRUE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B198, TRUE, FALSE); sub_8012D60(&gUnknown_202EBC0, sDialogueMenuItems, gUnknown_80D48A0, gUnknown_202EC18, gUnknown_202EC1C, 2); if (sNeverWrittenToUnknownStructPtr != NULL) { sub_80073B8(3); diff --git a/src/text.c b/src/text.c index e1eae1003..c5d72ce51 100644 --- a/src/text.c +++ b/src/text.c @@ -38,7 +38,7 @@ EWRAM_DATA static s32 sCurrentCharmap = 0; EWRAM_DATA static vu32 sUnknown_20274B0 = 0; EWRAM_DATA static u32 sUnknown_20274B4[0xEC0] = {0}; EWRAM_DATA static OpenedFile *sCharmapFiles[3] = {NULL}; -EWRAM_DATA static UnkTextStruct2 sUnknown_202AFC0[4] = {0}; +EWRAM_DATA static UnkTextStruct3 sUnknown_202AFC0 = {0}; EWRAM_DATA static s32 sUnknown_202B020 = 0; EWRAM_DATA static s32 sUnknown_202B024 = 0; EWRAM_DATA static s32 sCharHeight[2] = {0}; @@ -64,8 +64,8 @@ EWRAM_INIT void (*gIwramTextFunc4)(s32 a0) = sub_8272A78; // This variable is only used in InitGraphics function, which may or may not belong to text.c EWRAM_INIT u8 gUnknown_203B090 = 0; -static void SaveUnkTextStructAndXXX_8006438(const UnkTextStruct2 *a0, bool8 a1, bool8 a2, UnkTextStruct2_sub *a3); -static void sub_8006554(UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const UnkTextStruct2 *a5, bool8 a6, u32 a7, UnkTextStruct2_sub *a8, u8 a9); +static void SaveUnkTextStructAndXXX_8006438(const UnkTextStruct3 *a0, bool8 a1, bool8 a2, DungeonPos *a3); +static void sub_8006554(UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const UnkTextStruct2 *a5, bool8 a6, u32 a7, DungeonPos *a8, u8 a9); static void sub_800677C(UnkTextStruct1 *a0, s32 a1, u16 *a2, u8 a3); static void sub_80069CC(UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4); static void sub_8006AC4(UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, u16 *a4); @@ -86,7 +86,7 @@ static void sub_80084A4(UnkTextStruct1 *a0, u16 a1[32][32], u32 a2, s32 a3, s32 static void sub_8008818(UnkTextStruct1 *a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5); static bool8 xxx_update_bg_vram(UnkTextStruct1 *a0); static void sub_800898C(void); -static void sub_80089AC(const UnkTextStruct2 *r4, UnkTextStruct2_sub *r5_Str); +static void sub_80089AC(const UnkTextStruct2 *r4, DungeonPos *r5_Str); static void PrepareTextbox_8008C6C(UnkTextStruct1 *strArr, u32 strId); static void xxx_draw_string(UnkTextStruct1 *strArr, s32 x, s32 y, const u8 *str, u32 windowId, u32 terminatingChr, s32 characterSpacing, s32 lineSpacing); static const u8 *HandleTextFormat(UnkTextStruct1 *strArr, const u8 *str, struct UnkDrawStringStruct *sp); @@ -113,12 +113,14 @@ static const u32 gUnknown_80B853C[16] = 0xEEEEEEEE, }; -static const UnkTextStruct2 gUnknown_80B857C[4] = +static const UnkTextStruct3 gUnknown_80B857C = { - [0] = {.unk4 = 3}, - [1] = {.unk4 = 3}, - [2] = {.unk4 = 3}, - [3] = {.unk4 = 3}, + .a0 = { + [0] = {.unk4 = 3}, + [1] = {.unk4 = 3}, + [2] = {.unk4 = 3}, + [3] = {.unk4 = 3}, + } }; static const struct unkShiftData gCharMasksOffsets[8] = @@ -273,14 +275,14 @@ void SetCharacterMask(int a0) sTextShadowMask = retval; } -void xxx_call_save_unk_text_struct_800641C(const UnkTextStruct2 *a0, bool8 a1, bool8 a2) +void xxx_call_save_unk_text_struct_800641C(const UnkTextStruct3 *a0, bool8 a1, bool8 a2) { - UnkTextStruct2_sub r3 = {0, 0}; + DungeonPos r3 = {0, 0}; SaveUnkTextStructAndXXX_8006438(a0, a1, a2, &r3); } // https://decomp.me/scratch/xF5Y1 -static void SaveUnkTextStructAndXXX_8006438(const UnkTextStruct2 *a0, bool8 a1, bool8 a2, UnkTextStruct2_sub *a3) +static void SaveUnkTextStructAndXXX_8006438(const UnkTextStruct3 *a0, bool8 a1, bool8 a2, DungeonPos *a3) { s32 i; u32 r9; @@ -288,19 +290,19 @@ static void SaveUnkTextStructAndXXX_8006438(const UnkTextStruct2 *a0, bool8 a1, r9 = 2; if (a0 == NULL) - a0 = gUnknown_80B857C; + a0 = &gUnknown_80B857C; if (a2) sub_8009388(); sub_800898C(); for (i = 0; i < 4; i++) { - sUnknown_202AFC0[i] = a0[i]; + sUnknown_202AFC0.a0[i] = a0->a0[i]; - if (a0[i].unkC) { - sub_8006554(gUnknown_2027370, (u32 *)VRAM, sUnknown_20274B4, &gUnknown_202B038[0][0][0], gUnknown_80B8804[i], a0 + i, a1, r9, a3, 0); - sub_80089AC(a0 + i, a3); - r9 += a0[i].unkC * a0[i].unk10; + if (a0->a0[i].unkC) { + sub_8006554(gUnknown_2027370, (u32 *)VRAM, sUnknown_20274B4, &gUnknown_202B038[0][0][0], gUnknown_80B8804[i], &a0->a0[i], a1, r9, a3, 0); + sub_80089AC(&a0->a0[i], a3); + r9 += a0->a0[i].unkC * a0->a0[i].unk10; } } @@ -317,11 +319,11 @@ UNUSED static void nullsub_152(void) { } -void RestoreUnkTextStruct_8006518(UnkTextStruct2 *unkData) +void RestoreUnkTextStruct_8006518(UnkTextStruct3 *unkData) { - s32 iVar2; - for (iVar2 = 0; iVar2 < 4; iVar2++) - unkData[iVar2] = sUnknown_202AFC0[iVar2]; + s32 i; + for (i = 0; i < 4; i++) + unkData->a0[i] = sUnknown_202AFC0.a0[i]; } UNUSED static void nullsub_153(void) @@ -334,7 +336,7 @@ u32 sub_8006544(u32 index) } // a1 is a VRAM pointer -static void sub_8006554(UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const UnkTextStruct2 *a5, bool8 a6, u32 a7, UnkTextStruct2_sub *a8, u8 a9) +static void sub_8006554(UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, const UnkTextStruct2 *a5, bool8 a6, u32 a7, DungeonPos *a8, u8 a9) { UnkTextStruct1 *t1; s32 iVar3; @@ -348,8 +350,8 @@ static void sub_8006554(UnkTextStruct1 *a0, u32 *a1, u32 *a2, u16 *a3, u32 a4, c s32 j; t1 = &a0[a4]; - iVar3 = a5->unk8.unk0.arr[0] + a8->unk0.arr[0]; - iVar5 = a5->unk8.unk0.arr[1] + a8->unk0.arr[1]; + iVar3 = a5->pos.x + a8->x; + iVar5 = a5->pos.y + a8->y; t1->unk0 = iVar3; t1->unk2 = iVar5; t1->unk4 = a5->unkC; @@ -2864,7 +2866,7 @@ static void sub_800898C(void) } } -static void sub_80089AC(const UnkTextStruct2 *r4, UnkTextStruct2_sub *r5_Str) +static void sub_80089AC(const UnkTextStruct2 *r4, DungeonPos *r5_Str) { u8 *r6; @@ -2873,10 +2875,10 @@ static void sub_80089AC(const UnkTextStruct2 *r4, UnkTextStruct2_sub *r5_Str) r6 = (void*) &gUnknown_3000E94; if (r4->unk4 == 1) { - s32 r12 = (r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0) * 8; - s32 r5 = (r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2) * 8; - s32 r7 = (r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0 + r4->unkC) * 8; - s32 r2 = (r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2 + r4->unkE) * 8; + s32 r12 = (r4->pos.x + r5_Str->x) * 8; + s32 r5 = (r4->pos.y + r5_Str->y) * 8; + s32 r7 = (r4->pos.x + r5_Str->x + r4->unkC) * 8; + s32 r2 = (r4->pos.y + r5_Str->y + r4->unkE) * 8; if (r4->unkE != 0) { if (r5 < 0) r5 = 0; @@ -2907,11 +2909,11 @@ static void sub_80089AC(const UnkTextStruct2 *r4, UnkTextStruct2_sub *r5_Str) } else if (r4->unk4 == 6) { s32 i; - s32 r9 = ((r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0) * 8) - 5; - s32 r5 = ((r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2) * 8) - 4; - s32 var_24 = ((r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0 + r4->unkC) * 8) + 5; - s32 r8 = ((r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2 + r4->unkE) * 8) + 5; - s32 r12 = ((r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0) * 8) + 3; + s32 r9 = ((r4->pos.x + r5_Str->x) * 8) - 5; + s32 r5 = ((r4->pos.y + r5_Str->y) * 8) - 4; + s32 var_24 = ((r4->pos.x + r5_Str->x + r4->unkC) * 8) + 5; + s32 r8 = ((r4->pos.y + r5_Str->y + r4->unkE) * 8) + 5; + s32 r12 = ((r4->pos.x + r5_Str->x) * 8) + 3; const UnkTextStruct2_sub2 *r2 = r4->unk14; s32 tmp = r2->f2 - 1; s32 r10 = (((tmp + r2->f0 + 2) * 8) + r12) - 4; @@ -2981,14 +2983,14 @@ static void sub_80089AC(const UnkTextStruct2 *r4, UnkTextStruct2_sub *r5_Str) } } else { - s32 r8 = ((r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0) * 8) - 5; - s32 r3 = ((r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2) * 8) - 5; - s32 r12 = ((r4->unk8.unk0.separate.unk0 + r5_Str->unk0.separate.unk0 + r4->unkC) * 8) + 5; - s32 r5 = ((r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2 + r4->unkE) * 8) + 5; + s32 r8 = ((r4->pos.x + r5_Str->x) * 8) - 5; + s32 r3 = ((r4->pos.y + r5_Str->y) * 8) - 5; + s32 r12 = ((r4->pos.x + r5_Str->x + r4->unkC) * 8) + 5; + s32 r5 = ((r4->pos.y + r5_Str->y + r4->unkE) * 8) + 5; if (r4->unkE != 0) { if (r4->unk4 == 0) { r3 += 8; - r5 = ((r4->unk8.unk0.separate.unk2 + r5_Str->unk0.separate.unk2 + r4->unkE) * 8) - 3; + r5 = ((r4->pos.y + r5_Str->y + r4->unkE) * 8) - 3; } if (r3 < 0) r3 = 0; diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 7ee792b70..9870dc165 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -525,7 +525,7 @@ void sub_802A050(void) case 2: sub_8031E10(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C4->unk3BC, TRUE, TRUE); SetThankYouMailMenuState(0x1B); break; case 1: @@ -571,7 +571,7 @@ void sub_802A0C8(void) case 4: sUnknown_203B2C4->fallbackState = 0x10; sUnknown_203B2C4->mailIndex = sub_80307EC(); - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C4->mailIndex,0); @@ -607,7 +607,7 @@ void sub_802A174(void) break; case INFO_ACTION: sUnknown_203B2C4->fallbackState = 0x2b; - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C4->mailIndex,0); @@ -615,7 +615,7 @@ void sub_802A174(void) break; case CANCEL_ACTION: case 0xD: - sub_8035CC0(sUnknown_203B2C4->unk35C,2); + sub_8035CC0(&sUnknown_203B2C4->unk35C,2); sub_8030810(1); SetThankYouMailMenuState(0x10); default: @@ -631,7 +631,7 @@ void sub_802A230(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C4->unk3BC, TRUE, TRUE); sub_803092C(); if (sUnknown_203B2C4->fallbackState == 0x2b) { sub_8035CF4(sUnknown_203B2C4->unk21C, 3, TRUE); @@ -666,7 +666,7 @@ void sub_802A28C(void) case 4: sUnknown_203B2C4->fallbackState = 0x13; sUnknown_203B2C4->unk41C.id = sub_801CB24(); - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&sUnknown_203B2C4->unk41C); @@ -683,7 +683,7 @@ void sub_802A33C(void) case 3: sub_801B450(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C4->unk3BC, TRUE, TRUE); sub_801CB5C(TRUE); if (sUnknown_203B2C4->fallbackState == 0x2b) { sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); @@ -717,7 +717,7 @@ void sub_802A39C(void) break; case INFO_ACTION: sUnknown_203B2C4->fallbackState = 0x2b; - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&sUnknown_203B2C4->unk41C); @@ -725,7 +725,7 @@ void sub_802A39C(void) break; case CANCEL_ACTION: case 0xD: - sub_8035CC0(sUnknown_203B2C4->unk35C, 3); + sub_8035CC0(&sUnknown_203B2C4->unk35C, 3); sub_801CCD8(); SetThankYouMailMenuState(0x13); default: @@ -832,7 +832,7 @@ void HandleThankYouMailPasswordMenu(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C4->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C4->unk3BC, TRUE, TRUE); SetThankYouMailMenuState(ANYTHING_ELSE_THANK_YOU_MAIN_MENU); break; } @@ -1273,8 +1273,8 @@ void UpdateThankYouMailText(void) sub_80306A8(WONDER_MAIL_TYPE_THANK_YOU,0,0,6); break; case 0x11: - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk35C); - SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk35C); + SetMenuItems(sUnknown_203B2C4->unk21C,&sUnknown_203B2C4->unk35C,3,&gUnknown_80DED60,gUnknown_80DED78,TRUE,0,FALSE); sub_803092C(); sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); break; @@ -1284,13 +1284,13 @@ void UpdateThankYouMailText(void) ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); { - UnkTextStruct2_sub local_x = {3, 2}; + DungeonPos local_x = {3, 2}; sub_801C8C4(0, 1, &local_x, 9); } break; case 0x14: - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk35C); - SetMenuItems(sUnknown_203B2C4->unk21C,sUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk35C); + SetMenuItems(sUnknown_203B2C4->unk21C,&sUnknown_203B2C4->unk35C,3,&gUnknown_80DED48,gUnknown_80DED78,TRUE,0,FALSE); sub_801CCD8(); sub_8035CF4(sUnknown_203B2C4->unk21C,3,TRUE); break; @@ -1336,13 +1336,13 @@ void UpdateThankYouMailText(void) CreateDialogueBoxAndPortrait(gUnknown_80DF380,0,&sUnknown_203B2C4->monPortrait,0x10d); break; case PROCESS_THANK_YOU_PASSWORD: - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80151C0(4,sUnknown_203B2C4->passwordBuffer); break; case 0x1a: - RestoreUnkTextStruct_8006518(sUnknown_203B2C4->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C4->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8031D70(sUnknown_203B2C4->mailIndex,0); diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index fb0edf7d8..2026e640e 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -176,7 +176,7 @@ void sub_80365AC(void) sTradeItemsMenu->fallbackState = TRADE_ITEMS_SEND_ITEM_SELECTION; sTradeItemsMenu->itemToSend.id = sub_801CB24(); sTradeItemsMenu->itemToSend.quantity = 1; - RestoreUnkTextStruct_8006518(sTradeItemsMenu->unk1E4); + RestoreUnkTextStruct_8006518(&sTradeItemsMenu->unk1E4); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&sTradeItemsMenu->itemToSend); @@ -200,7 +200,7 @@ void sub_8036674(void) break; case 4: // Info sTradeItemsMenu->fallbackState = 0x13; - RestoreUnkTextStruct_8006518(sTradeItemsMenu->unk1E4); + RestoreUnkTextStruct_8006518(&sTradeItemsMenu->unk1E4); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_801B3C0(&sTradeItemsMenu->itemToSend); @@ -209,7 +209,7 @@ void sub_8036674(void) case 7: case 0: // Cancel - sub_8035CC0(sTradeItemsMenu->unk184, 3); + sub_8035CC0(&sTradeItemsMenu->unk184, 3); sub_801CCD8(); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_SELECTION); break; @@ -224,7 +224,7 @@ void sub_8036728(void) case 3: sub_801B450(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sTradeItemsMenu->unk1E4, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sTradeItemsMenu->unk1E4, TRUE, TRUE); sub_801CB5C(TRUE); if (sTradeItemsMenu->fallbackState == 0x13) { sub_8035CF4(sTradeItemsMenu->unk44, 3, TRUE); @@ -252,7 +252,7 @@ void sub_8036788(void) break; case 2: // If you back out of the # selection - sub_8035CC0(sTradeItemsMenu->unk184, 2); + sub_8035CC0(&sTradeItemsMenu->unk184, 2); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44, 3, TRUE); SetTradeItemMenu(TRADE_ITEMS_SEND_ITEM_POPUP_MENU); @@ -499,14 +499,14 @@ void sub_8036B28(void) ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); { - UnkTextStruct2_sub local_10 = {3, 2}; + DungeonPos local_10 = {3, 2}; sub_801C8C4(0,1,&local_10,9); } } break; case TRADE_ITEMS_SEND_ITEM_POPUP_MENU: - RestoreUnkTextStruct_8006518(sTradeItemsMenu->unk184); - SetMenuItems(sTradeItemsMenu->unk44,sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, + RestoreUnkTextStruct_8006518(&sTradeItemsMenu->unk184); + SetMenuItems(sTradeItemsMenu->unk44,&sTradeItemsMenu->unk184,3,&sUnknown_80E60EC, sUnknown_80E6104,TRUE,0,FALSE); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44,3,TRUE); @@ -626,11 +626,11 @@ void sub_8036ECC(u32 index, u32 r1) sTradeItemsMenu->unk14.unk1C = 0x2c; sTradeItemsMenu->unk14.unk20 = 0x12; sTradeItemsMenu->unk14.unk14 = index; - sTradeItemsMenu->unk14.unk18 = &sTradeItemsMenu->unk184[index]; + sTradeItemsMenu->unk14.unk18 = &sTradeItemsMenu->unk184.a0[index]; sub_8013AA0(&sTradeItemsMenu->unk14); - sTradeItemsMenu->unk184[index] = sUnknown_80E6174; + sTradeItemsMenu->unk184.a0[index] = sUnknown_80E6174; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sTradeItemsMenu->unk184, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sTradeItemsMenu->unk184, TRUE, TRUE); } void sub_8036F30(void) @@ -647,7 +647,7 @@ void sub_8036F30(void) void sub_8036F74(void) { - RestoreUnkTextStruct_8006518(sTradeItemsMenu->unk184); + RestoreUnkTextStruct_8006518(&sTradeItemsMenu->unk184); sub_8036ECC(2, gTeamInventoryRef->teamStorage[sTradeItemsMenu->itemToSend.id]); sub_801CCD8(); sub_8035CF4(sTradeItemsMenu->unk44, 3, FALSE); diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 7b2e37de1..5b9a49ffc 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -15,7 +15,7 @@ typedef struct unkStruct_203B360 /* 0x0 */ u32 currMenu; u32 unk4; // state MenuStruct unk8[4]; - UnkTextStruct2 unk148[4]; + UnkTextStruct3 unk148; SpriteOAM unk1A8; u32 unk1B0; // sprite count? } unkStruct_203B360; @@ -68,15 +68,15 @@ void sub_80382E4(s32 currMenu) MemoryFill8(sUnknown_203B360, 0, sizeof(unkStruct_203B360)); } for(index = 0; index < 4; index++){ - sUnknown_203B360->unk148[index] = gUnknown_80E6E7C; + sUnknown_203B360->unk148.a0[index] = gUnknown_80E6E7C; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B360->unk148, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B360->unk148, TRUE, TRUE); if (currMenu == 0x25) { // Caution! // The storage space is empty! // Please check again. - SetMenuItems(sUnknown_203B360->unk8,sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, + SetMenuItems(sUnknown_203B360->unk8,&sUnknown_203B360->unk148,0,&gUnknown_80E6E94,gUnknown_80E6EAC, FALSE,4,FALSE); } sub_8035CF4(sUnknown_203B360->unk8,0,TRUE); diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index 4a62baf7d..2b7eba6ec 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -30,12 +30,12 @@ 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.unk3C[sWigglytuffShop1Work->s40.s0.unk34]; - RestoreUnkTextStruct_8006518(sWigglytuffShop1Work->s40.s0.unk3C); - sWigglytuffShop1Work->s40.s0.unk3C[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC47C; + sWigglytuffShop1Work->s40.s0.unk38 = &sWigglytuffShop1Work->s40.s0.unk3C.a0[sWigglytuffShop1Work->s40.s0.unk34]; + RestoreUnkTextStruct_8006518(&sWigglytuffShop1Work->s40.s0.unk3C); + sWigglytuffShop1Work->s40.s0.unk3C.a0[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC47C; sWigglytuffShop1Work->s40.s0.unk38->unk14 = &sWigglytuffShop1Work->s40.unk9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); sub_8013818(&sWigglytuffShop1Work->s40.s0.input, sub_8021664(), 10, a1); if (sUnknown_203B284 == sWigglytuffShop1Work->mode) { @@ -87,7 +87,7 @@ u8 sub_802132C(void) void sub_8021354(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop1Work->s40.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop1Work->s40.s0.unk3C, FALSE, FALSE); sWigglytuffShop1Work->s40.s0.input.unk22 = sub_8021664(); sub_8013984(&sWigglytuffShop1Work->s40.s0.input); sub_8021410(); @@ -103,9 +103,9 @@ 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.unk3C[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC464; + sWigglytuffShop1Work->s40.s0.unk3C.a0[sWigglytuffShop1Work->s40.s0.unk34] = sUnknown_80DC464; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); MemoryFree(sWigglytuffShop1Work); sWigglytuffShop1Work = NULL; } @@ -118,7 +118,7 @@ static void sub_8021410(void) sWigglytuffShop1Work->s40.unk9C.f2 = 12; sWigglytuffShop1Work->s40.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop1Work->s40.s0.unk3C, TRUE, TRUE); SUB_80095E4_CALL(sWigglytuffShop1Work->s40.s0); } diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index da0764b3b..47131b4eb 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -31,9 +31,9 @@ bool8 CreateWigglytuffShopFriendAreaMenu(u8 friendArea, bool8 a1, s32 a2) sub_801317C(&sWigglytuffShop2Work->unk0); sub_8021A60(); sWigglytuffShop2Work->unk74 = a2; - sWigglytuffShop2Work->unk78 = &sWigglytuffShop2Work->unk7C[a2]; - RestoreUnkTextStruct_8006518(sWigglytuffShop2Work->unk7C); - sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = sUnknown_80DC4D8; + sWigglytuffShop2Work->unk78 = &sWigglytuffShop2Work->unk7C.a0[a2]; + RestoreUnkTextStruct_8006518(&sWigglytuffShop2Work->unk7C); + sWigglytuffShop2Work->unk7C.a0[sWigglytuffShop2Work->unk74] = sUnknown_80DC4D8; sub_8021820(); return TRUE; } @@ -61,9 +61,9 @@ static void sub_8021820(void) void CleanWigglytuffShopFriendAreaInfoMenu(void) { if (sWigglytuffShop2Work) { - sWigglytuffShop2Work->unk7C[sWigglytuffShop2Work->unk74] = sUnknown_80DC4BC; + sWigglytuffShop2Work->unk7C.a0[sWigglytuffShop2Work->unk74] = sUnknown_80DC4BC; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop2Work->unk7C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop2Work->unk7C, TRUE, TRUE); MemoryFree(sWigglytuffShop2Work); sWigglytuffShop2Work = NULL; } @@ -72,7 +72,7 @@ void CleanWigglytuffShopFriendAreaInfoMenu(void) static void sub_8021878(void) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop2Work->unk7C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop2Work->unk7C, TRUE, TRUE); } static void PopulateWigglytuffShopFriendAreaInfoScreen(void) diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index eabf966ef..00ebd2e15 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -140,26 +140,26 @@ static void sub_8021D5C(void) { s32 i; - RestoreUnkTextStruct_8006518(sWigglytuffShop3Work->unkD0); + RestoreUnkTextStruct_8006518(&sWigglytuffShop3Work->unkD0); switch (sWigglytuffShop3Work->state) { case WIGGLYTUFF_UNK9: case WIGGLYTUFF_UNKA: - sWigglytuffShop3Work->unkD0[0] = sUnknown_80DC534; - sWigglytuffShop3Work->unkD0[2] = sUnknown_80DC534; - sWigglytuffShop3Work->unkD0[1] = sUnknown_80DC564; + sWigglytuffShop3Work->unkD0.a0[0] = sUnknown_80DC534; + sWigglytuffShop3Work->unkD0.a0[2] = sUnknown_80DC534; + sWigglytuffShop3Work->unkD0.a0[1] = sUnknown_80DC564; break; case WIGGLYTUFF_UNKB: - sWigglytuffShop3Work->unkD0[2] = sUnknown_80DC54C; + sWigglytuffShop3Work->unkD0.a0[2] = sUnknown_80DC54C; break; default: for (i = 0; i < 4; i++) - sWigglytuffShop3Work->unkD0[i] = sUnknown_80DC534; + sWigglytuffShop3Work->unkD0.a0[i] = sUnknown_80DC534; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sWigglytuffShop3Work->unkD0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sWigglytuffShop3Work->unkD0, TRUE, TRUE); } static void UpdateWigglytuffDialogue(void) diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 87b2cf857..cba71c0df 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -420,7 +420,7 @@ void sub_8028348(void) switch(sUnknown_203B2C0->state) { case 0x3B: - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8031D70(sUnknown_203B2C0->mailIndex, 0); @@ -462,8 +462,8 @@ void sub_8028348(void) } break; case 0x34: - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk35C); - SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk35C); + SetMenuItems(sUnknown_203B2C0->unk21C, &sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDAE4, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_8023DA4(); sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; @@ -572,7 +572,7 @@ void sub_8028348(void) CreateDialogueBoxAndPortrait(gUnknown_80DE124, 0, &sUnknown_203B2C0->monPortrait,0x10d); break; case 0x27: - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80151C0(4, sUnknown_203B2C0->passwordBuffer); @@ -617,8 +617,8 @@ void sub_8028348(void) break; case 0x20: case 0x2B: - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk35C); - SetMenuItems(sUnknown_203B2C0->unk21C, sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk35C); + SetMenuItems(sUnknown_203B2C0->unk21C, &sUnknown_203B2C0->unk35C, 3, &gUnknown_80DDACC, gUnknown_80DDAFC, TRUE, 0, FALSE); sub_803092C(); sub_8035CF4(sUnknown_203B2C0->unk21C, 3, TRUE); break; @@ -1114,7 +1114,7 @@ void sub_8029044(void) case 4: sUnknown_203B2C0->fallbackState = 0x1F; sUnknown_203B2C0->mailIndex = sub_80307EC(); - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C0->mailIndex, 0); @@ -1150,7 +1150,7 @@ void sub_80290F0(void) break; case INFO_ACTION: sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C0->mailIndex, 0); @@ -1158,7 +1158,7 @@ void sub_80290F0(void) break; case 4: case CANCEL_ACTION: - sub_8035CC0(sUnknown_203B2C0->unk35C, 2); + sub_8035CC0(&sUnknown_203B2C0->unk35C, 2); sub_8030810(1); SetFriendRescueCounterState(0x1F); break; @@ -1175,7 +1175,7 @@ void sub_80291AC(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_803092C(); if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { @@ -1392,7 +1392,7 @@ void sub_80293F4(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C0->unk3BC, TRUE, TRUE); SetFriendRescueCounterState(FRIEND_RESCUE_MAIN); break; default: @@ -1463,7 +1463,7 @@ void sub_80295D8(void) case 4: sUnknown_203B2C0->fallbackState = 0x2A; sUnknown_203B2C0->mailIndex = sub_80307EC(); - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C0->mailIndex, 0); @@ -1499,7 +1499,7 @@ void sub_8029684(void) break; case INFO_ACTION: sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8030D40(sUnknown_203B2C0->mailIndex, 0); @@ -1507,7 +1507,7 @@ void sub_8029684(void) break; case 0x4: case CANCEL_ACTION: - sub_8035CC0(sUnknown_203B2C0->unk35C,2); + sub_8035CC0(&sUnknown_203B2C0->unk35C,2); sub_8030810(1); SetFriendRescueCounterState(0x2A); break; @@ -1522,7 +1522,7 @@ void sub_8029740(void) case 3: sub_8030DE4(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_803092C(); if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { @@ -1573,7 +1573,7 @@ void sub_80297D4(void) case 4: sUnknown_203B2C0->fallbackState = SELECT_HELPER_POKEMON; sUnknown_203B2C0->speciesNum = sub_8023B44(); - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8024458(sUnknown_203B2C0->speciesNum, 0); @@ -1599,7 +1599,7 @@ void sub_8029884(void) break; case INFO_ACTION: sUnknown_203B2C0->fallbackState = DEFAULT_FALLBACK_STATE; - RestoreUnkTextStruct_8006518(sUnknown_203B2C0->unk3BC); + RestoreUnkTextStruct_8006518(&sUnknown_203B2C0->unk3BC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_8024458(sUnknown_203B2C0->speciesNum, 0); @@ -1607,7 +1607,7 @@ void sub_8029884(void) break; case 0x4: case CANCEL_ACTION: - sub_8035CC0(sUnknown_203B2C0->unk35C, 3); + sub_8035CC0(&sUnknown_203B2C0->unk35C, 3); sub_8023B7C(1); SetFriendRescueCounterState(SELECT_HELPER_POKEMON); break; @@ -1631,7 +1631,7 @@ void sub_8029944(void) case 3: sub_802453C(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C0->unk3BC, TRUE, TRUE); sub_8023B7C(1); if(sUnknown_203B2C0->fallbackState == DEFAULT_FALLBACK_STATE) { @@ -1771,7 +1771,7 @@ void sub_8029AF4(void) case 3: sub_8031E10(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2C0->unk3BC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2C0->unk3BC, TRUE, TRUE); SetFriendRescueCounterState(0x3C); break; case 1: diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index e344f72a1..0aadefc63 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -19,7 +19,7 @@ struct unkStruct_203B30C unkStruct_802C39C unk8; MenuStruct unk60; MenuItem unkB0[8]; - UnkTextStruct2 unkF0[4]; + UnkTextStruct3 unkF0; }; static EWRAM_INIT struct unkStruct_203B30C *gUnknown_203B30C = {NULL}; @@ -119,22 +119,22 @@ void sub_802F004(void) { s32 index; - RestoreUnkTextStruct_8006518(gUnknown_203B30C->unkF0); + RestoreUnkTextStruct_8006518(&gUnknown_203B30C->unkF0); switch(gUnknown_203B30C->state) { case 2: sub_802F108(); - gUnknown_203B30C->unkF0[2] = gUnknown_80E03F4; - sub_8012CAC(&gUnknown_203B30C->unkF0[2], gUnknown_203B30C->unkB0); + gUnknown_203B30C->unkF0.a0[2] = gUnknown_80E03F4; + sub_8012CAC(&gUnknown_203B30C->unkF0.a0[2], gUnknown_203B30C->unkB0); break; default: for(index = 0; index < 4; index++) { - gUnknown_203B30C->unkF0[index] = gUnknown_80E03C4; + gUnknown_203B30C->unkF0.a0[index] = gUnknown_80E03C4; } } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B30C->unkF0, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B30C->unkF0, TRUE, TRUE); } void sub_802F088(void) diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index a7be19ec0..0a999c111 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -77,7 +77,7 @@ ALIGNED(4) const u8 SOSList[] = "SOS List"; s32 sub_8030A74(void); void sub_80308A0(void); -u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3) +u32 sub_80306A8(u32 wonderMailType, u32 r1, DungeonPos *r2, u32 r3) { if (HasNoWonderMailType(wonderMailType)) return 0; @@ -86,18 +86,18 @@ u32 sub_80306A8(u32 wonderMailType, u32 r1, UnkTextStruct2_sub *r2, u32 r3) gUnknown_203B320->wonderMailType = wonderMailType; gUnknown_203B320->s28.s0.unk34 = r1; - gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.unk3C[gUnknown_203B320->s28.s0.unk34]; - RestoreUnkTextStruct_8006518(gUnknown_203B320->s28.s0.unk3C); + gUnknown_203B320->s28.s0.unk38 = &gUnknown_203B320->s28.s0.unk3C.a0[gUnknown_203B320->s28.s0.unk34]; + RestoreUnkTextStruct_8006518(&gUnknown_203B320->s28.s0.unk3C); - gUnknown_203B320->s28.s0.unk3C[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E0854; + gUnknown_203B320->s28.s0.unk3C.a0[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E0854; gUnknown_203B320->s28.s0.unk38->unk14 = &gUnknown_203B320->s28.unk9C; if (r2 != 0) - gUnknown_203B320->s28.s0.unk3C[gUnknown_203B320->s28.s0.unk34].unk8 = *r2; + gUnknown_203B320->s28.s0.unk3C.a0[gUnknown_203B320->s28.s0.unk34].pos = *r2; sub_8012D08(gUnknown_203B320->s28.s0.unk38, r3); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); sub_8013818(&gUnknown_203B320->s28.s0.input, sub_8030A74(), r3, r1); sub_80308A0(); sub_803092C(); @@ -154,9 +154,9 @@ void sub_803084C(void) { if(gUnknown_203B320 != NULL) { - gUnknown_203B320->s28.s0.unk3C[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E083C; + gUnknown_203B320->s28.s0.unk3C.a0[gUnknown_203B320->s28.s0.unk34] = gUnknown_80E083C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B320); gUnknown_203B320 = NULL; } @@ -174,7 +174,7 @@ void sub_80308A0(void) gUnknown_203B320->s28.unk9C.f2 = 12; gUnknown_203B320->s28.unk9C.f3 = 0; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B320->s28.s0.unk3C, TRUE, TRUE); SUB_80095E4_CALL(gUnknown_203B320->s28.s0); } diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index 9486643b0..bae544939 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -21,7 +21,7 @@ struct unkStruct_203B324 u8 mailIndex; u32 windowID; UnkTextStruct2 *unk14; - UnkTextStruct2 unk18[4]; + UnkTextStruct3 unk18; }; static EWRAM_INIT struct unkStruct_203B324 *gUnknown_203B324 = {NULL}; @@ -63,9 +63,9 @@ bool8 sub_8030D40(u8 mailIndex, s32 windowID) gUnknown_203B324->mailIndex = mailIndex; sub_801317C(&gUnknown_203B324->unk0); gUnknown_203B324->windowID = windowID; - gUnknown_203B324->unk14 = &gUnknown_203B324->unk18[windowID]; - RestoreUnkTextStruct_8006518(gUnknown_203B324->unk18); - gUnknown_203B324->unk18[gUnknown_203B324->windowID] = gUnknown_80E091C; + gUnknown_203B324->unk14 = &gUnknown_203B324->unk18.a0[windowID]; + RestoreUnkTextStruct_8006518(&gUnknown_203B324->unk18); + gUnknown_203B324->unk18.a0[gUnknown_203B324->windowID] = gUnknown_80E091C; sub_8030DD4(); return TRUE; } @@ -95,9 +95,9 @@ void sub_8030DE4(void) { if(gUnknown_203B324 != NULL) { - gUnknown_203B324->unk18[gUnknown_203B324->windowID] = gUnknown_80E0900; + gUnknown_203B324->unk18.a0[gUnknown_203B324->windowID] = gUnknown_80E0900; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B324->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B324->unk18, TRUE, TRUE); MemoryFree(gUnknown_203B324); gUnknown_203B324 = NULL; } @@ -106,7 +106,7 @@ void sub_8030DE4(void) void sub_8030E2C(void) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B324->unk18, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B324->unk18, TRUE, TRUE); } void sub_8030E48(void) diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index 486d6316e..b85f3b88a 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -17,7 +17,7 @@ struct unkStruct_203B328 u8 mailIndex; MenuStruct unk8; MenuStruct unk58; - UnkTextStruct2 unkA8[4]; + UnkTextStruct3 unkA8; /* 0x108 */ struct MonPortraitMsg monPortrait; u32 wonderMailType; }; @@ -180,30 +180,30 @@ void sub_80310E4(u32 newState) static void sub_80310FC(void) { - RestoreUnkTextStruct_8006518(gUnknown_203B328->unkA8); + RestoreUnkTextStruct_8006518(&gUnknown_203B328->unkA8); switch(gUnknown_203B328->state) { case INIT_STATE: - gUnknown_203B328->unkA8[1] = gUnknown_80E0990; - gUnknown_203B328->unkA8[2] = gUnknown_80E0990; - gUnknown_203B328->unkA8[3] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[1] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[2] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[3] = gUnknown_80E0990; break; case MAIN_MENU: - gUnknown_203B328->unkA8[1] = gUnknown_80E09A8; - gUnknown_203B328->unkA8[2] = gUnknown_80E0990; - gUnknown_203B328->unkA8[3] = gUnknown_80E0990; - sub_8012CAC(&gUnknown_203B328->unkA8[1], gUnknown_80E0968); + gUnknown_203B328->unkA8.a0[1] = gUnknown_80E09A8; + gUnknown_203B328->unkA8.a0[2] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[3] = gUnknown_80E0990; + sub_8012CAC(&gUnknown_203B328->unkA8.a0[1], gUnknown_80E0968); break; case DELETE_SINGLE_MAIL_STATE: case DELETE_ALL_MAIL_STATE: - gUnknown_203B328->unkA8[2] = gUnknown_80E09C0; - sub_8012CAC(&gUnknown_203B328->unkA8[2], gUnknown_80E0948); + gUnknown_203B328->unkA8.a0[2] = gUnknown_80E09C0; + sub_8012CAC(&gUnknown_203B328->unkA8.a0[2], gUnknown_80E0948); break; case INFO_STATE: - gUnknown_203B328->unkA8[0] = gUnknown_80E0990; - gUnknown_203B328->unkA8[1] = gUnknown_80E0990; - gUnknown_203B328->unkA8[2] = gUnknown_80E0990; - gUnknown_203B328->unkA8[3] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[0] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[1] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[2] = gUnknown_80E0990; + gUnknown_203B328->unkA8.a0[3] = gUnknown_80E0990; break; case 5: case 6: @@ -213,7 +213,7 @@ static void sub_80310FC(void) break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B328->unkA8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B328->unkA8, TRUE, TRUE); } static void sub_8031258(void) diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 23f80463a..aea42f5c1 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -20,7 +20,7 @@ static s32 CountPelipperBoardSlots(void); static void sub_802C328(void); -bool8 sub_802C10C(s32 a0, UnkTextStruct2_sub *a1, s32 a2) +bool8 sub_802C10C(s32 a0, DungeonPos *a1, s32 a2) { if (HasNoPelipperBoardJobs()) return FALSE; @@ -29,18 +29,18 @@ bool8 sub_802C10C(s32 a0, UnkTextStruct2_sub *a1, s32 a2) gUnknown_203B2E0 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); gUnknown_203B2E0->unk8.s0.unk34 = a0; - gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.unk3C[a0]; - RestoreUnkTextStruct_8006518(gUnknown_203B2E0->unk8.s0.unk3C); + gUnknown_203B2E0->unk8.s0.unk38 = &gUnknown_203B2E0->unk8.s0.unk3C.a0[a0]; + RestoreUnkTextStruct_8006518(&gUnknown_203B2E0->unk8.s0.unk3C); - gUnknown_203B2E0->unk8.s0.unk3C[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFCB4; + gUnknown_203B2E0->unk8.s0.unk3C.a0[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFCB4; gUnknown_203B2E0->unk8.s0.unk38->unk14 = &gUnknown_203B2E0->unk8.unk9C; if (a1 != NULL) - gUnknown_203B2E0->unk8.s0.unk3C[gUnknown_203B2E0->unk8.s0.unk34].unk8 = *a1; + gUnknown_203B2E0->unk8.s0.unk3C.a0[gUnknown_203B2E0->unk8.s0.unk34].pos = *a1; sub_8012D34(gUnknown_203B2E0->unk8.s0.unk38, a2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E0->unk8.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E0->unk8.s0.unk3C, TRUE, TRUE); sub_8013848(&gUnknown_203B2E0->unk8.s0.input, CountPelipperBoardSlots(), a2, a0); gUnknown_203B2E0->unk8.s0.input.menuIndex = gUnknown_203B2E4; sub_8013984(&gUnknown_203B2E0->unk8.s0.input); @@ -84,7 +84,7 @@ u8 sub_802C26C(void) void sub_802C28C(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E0->unk8.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E0->unk8.s0.unk3C, FALSE, FALSE); gUnknown_203B2E0->unk8.s0.input.unk22 = CountPelipperBoardSlots(); sub_8013984(&gUnknown_203B2E0->unk8.s0.input); sub_802C328(); @@ -98,9 +98,9 @@ void sub_802C2D4(void) { if (gUnknown_203B2E0 != NULL) { gUnknown_203B2E4 = gUnknown_203B2E0->unk8.s0.input.menuIndex; - gUnknown_203B2E0->unk8.s0.unk3C[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFC9C; + gUnknown_203B2E0->unk8.s0.unk3C.a0[gUnknown_203B2E0->unk8.s0.unk34] = sUnknown_80DFC9C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E0->unk8.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E0->unk8.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B2E0); gUnknown_203B2E0 = NULL; } diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index 4ecafc075..ef9653e16 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -23,25 +23,25 @@ static s32 CountAcceptedJobs(void); static void sub_802C6DC(void); -bool8 sub_802C4C8(s32 a0, UnkTextStruct2_sub *a1, u32 a2) +bool8 sub_802C4C8(s32 a0, DungeonPos *a1, u32 a2) { if (HasNoAcceptedJobs()) return FALSE; gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E0), 8); gUnknown_203B2E8->unk8.s0.unk34 = a0; - gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.unk3C[a0]; - RestoreUnkTextStruct_8006518(gUnknown_203B2E8->unk8.s0.unk3C); + gUnknown_203B2E8->unk8.s0.unk38 = &gUnknown_203B2E8->unk8.s0.unk3C.a0[a0]; + RestoreUnkTextStruct_8006518(&gUnknown_203B2E8->unk8.s0.unk3C); - gUnknown_203B2E8->unk8.s0.unk3C[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCFC; + gUnknown_203B2E8->unk8.s0.unk3C.a0[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCFC; gUnknown_203B2E8->unk8.s0.unk38->unk14 = &gUnknown_203B2E8->unk8.unk9C; if (a1 != NULL) - gUnknown_203B2E8->unk8.s0.unk3C[gUnknown_203B2E8->unk8.s0.unk34].unk8 = *a1; + gUnknown_203B2E8->unk8.s0.unk3C.a0[gUnknown_203B2E8->unk8.s0.unk34].pos = *a1; sub_8012D34(gUnknown_203B2E8->unk8.s0.unk38, a2); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E8->unk8.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E8->unk8.s0.unk3C, TRUE, TRUE); sub_8013848(&gUnknown_203B2E8->unk8.s0.input, CountAcceptedJobs(), a2, a0); gUnknown_203B2E8->unk8.s0.input.menuIndex = gUnknown_203B2EC; sub_8013984(&gUnknown_203B2E8->unk8.s0.input); @@ -85,7 +85,7 @@ u8 GetPelipperBoardSlotIndex(void) void sub_802C640(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E8->unk8.s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E8->unk8.s0.unk3C, FALSE, FALSE); gUnknown_203B2E8->unk8.s0.input.unk22 = CountAcceptedJobs(); sub_8013984(&gUnknown_203B2E8->unk8.s0.input); sub_802C6DC(); @@ -99,9 +99,9 @@ void sub_802C688(void) { if (gUnknown_203B2E8 != NULL) { gUnknown_203B2EC = gUnknown_203B2E8->unk8.s0.input.menuIndex; - gUnknown_203B2E8->unk8.s0.unk3C[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCE4; + gUnknown_203B2E8->unk8.s0.unk3C.a0[gUnknown_203B2E8->unk8.s0.unk34] = sUnknown_80DFCE4; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B2E8->unk8.s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B2E8->unk8.s0.unk3C, TRUE, TRUE); MemoryFree(gUnknown_203B2E8); gUnknown_203B2E8 = NULL; } diff --git a/src/wonder_mail_802C860.c b/src/wonder_mail_802C860.c index a7c3beb22..b33c75dbc 100644 --- a/src/wonder_mail_802C860.c +++ b/src/wonder_mail_802C860.c @@ -82,25 +82,25 @@ static void sub_802C928(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B2F0->unk19C); + RestoreUnkTextStruct_8006518(&sUnknown_203B2F0->unk19C); switch (sUnknown_203B2F0->state) { case 2: sub_802CAA4(); - sUnknown_203B2F0->unk19C[2] = sUnknown_80DFD40; - sub_8012CAC(&sUnknown_203B2F0->unk19C[2], sUnknown_203B2F0->unk10C); + sUnknown_203B2F0->unk19C.a0[2] = sUnknown_80DFD40; + sub_8012CAC(&sUnknown_203B2F0->unk19C.a0[2], sUnknown_203B2F0->unk10C); break; case 3: - sUnknown_203B2F0->unk19C[3] = sUnknown_80DFD58; + sUnknown_203B2F0->unk19C.a0[3] = sUnknown_80DFD58; break; default: for (i = 0; i < 4; i++) - sUnknown_203B2F0->unk19C[i] = sUnknown_80DFD28; + sUnknown_203B2F0->unk19C.a0[i] = sUnknown_80DFD28; break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2F0->unk19C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2F0->unk19C, TRUE, TRUE); } static void sub_802C9D8(void) diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index 2cdb48b5b..ec85fe3f5 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -25,13 +25,13 @@ bool8 sub_802CDD4(u32 a0) sUnknown_203B2F4 = MemoryAlloc(sizeof(struct_Sub80095E4_2), 8); sUnknown_203B2F4->s0.unk34 = a0; - sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.unk3C[sUnknown_203B2F4->s0.unk34]; - RestoreUnkTextStruct_8006518(sUnknown_203B2F4->s0.unk3C); - sUnknown_203B2F4->s0.unk3C[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFDA4; + sUnknown_203B2F4->s0.unk38 = &sUnknown_203B2F4->s0.unk3C.a0[sUnknown_203B2F4->s0.unk34]; + RestoreUnkTextStruct_8006518(&sUnknown_203B2F4->s0.unk3C); + sUnknown_203B2F4->s0.unk3C.a0[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFDA4; sUnknown_203B2F4->s0.unk38->unk14 = &sUnknown_203B2F4->unk9C; sub_8012D34(sUnknown_203B2F4->s0.unk38, 4); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2F4->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2F4->s0.unk3C, TRUE, TRUE); sub_8013848(&sUnknown_203B2F4->s0.input, 5, 4, a0); sub_802CF5C(); sub_802CFD0(); @@ -69,7 +69,7 @@ u8 sub_802CEBC(void) void sub_802CED8(bool8 cursorSprite) { ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2F4->s0.unk3C, FALSE, FALSE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2F4->s0.unk3C, FALSE, FALSE); sub_8013984(&sUnknown_203B2F4->s0.input); sub_802CF5C(); sub_802CFD0(); @@ -81,9 +81,9 @@ void sub_802CED8(bool8 cursorSprite) void sub_802CF14(void) { if (sUnknown_203B2F4 != NULL) { - sUnknown_203B2F4->s0.unk3C[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFD8C; + sUnknown_203B2F4->s0.unk3C.a0[sUnknown_203B2F4->s0.unk34] = sUnknown_80DFD8C; ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2F4->s0.unk3C, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2F4->s0.unk3C, TRUE, TRUE); MemoryFree(sUnknown_203B2F4); sUnknown_203B2F4 = NULL; } diff --git a/src/wonder_mail_802D098.c b/src/wonder_mail_802D098.c index 4b6650dcc..5ed5a68fa 100644 --- a/src/wonder_mail_802D098.c +++ b/src/wonder_mail_802D098.c @@ -140,31 +140,31 @@ static void sub_802D1B8(void) { s32 i; - RestoreUnkTextStruct_8006518(sUnknown_203B2F8->unk1A8); + RestoreUnkTextStruct_8006518(&sUnknown_203B2F8->unk1A8); switch (sUnknown_203B2F8->state) { case 13: sub_802D5A4(); - sUnknown_203B2F8->unk1A8[2] = sUnknown_80DFE04; - sub_8012CAC(&sUnknown_203B2F8->unk1A8[2], sUnknown_203B2F8->unk118); - sUnknown_203B2F8->unk1A8[2].unkC = 6; + sUnknown_203B2F8->unk1A8.a0[2] = sUnknown_80DFE04; + sub_8012CAC(&sUnknown_203B2F8->unk1A8.a0[2], sUnknown_203B2F8->unk118); + sUnknown_203B2F8->unk1A8.a0[2].unkC = 6; break; case 14: sub_802D63C(); - sUnknown_203B2F8->unk1A8[3] = sUnknown_80DFE1C; - sub_8012CAC(&sUnknown_203B2F8->unk1A8[3], sUnknown_203B2F8->unk158); - sUnknown_203B2F8->unk1A8[3].unkC = 6; + sUnknown_203B2F8->unk1A8.a0[3] = sUnknown_80DFE1C; + sub_8012CAC(&sUnknown_203B2F8->unk1A8.a0[3], sUnknown_203B2F8->unk158); + sUnknown_203B2F8->unk1A8.a0[3].unkC = 6; break; default: for (i = 0; i < 4; i++) - sUnknown_203B2F8->unk1A8[i] = sUnknown_80DFDD4; + sUnknown_203B2F8->unk1A8.a0[i] = sUnknown_80DFDD4; break; case WONDER_MAIL_EXIT: break; } ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(sUnknown_203B2F8->unk1A8, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&sUnknown_203B2F8->unk1A8, TRUE, TRUE); } static void sub_802D2A8(void) diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index a1d2b2d1a..9ec2e5877 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -49,7 +49,7 @@ struct unkStruct_203B3E8 u8 unk38_u8[0x30]; // idk why it fills to 0x30 instead... } UNK38; u8 fill68[0x1EC - 0x68]; - UnkTextStruct2 unk1EC[4]; + UnkTextStruct3 unk1EC; u32 unk24C; /* 0x250 */ u32 wonderMailStatus; unkStruct_803B344 unk254; @@ -331,7 +331,7 @@ void HandlePasswordEntryScreen(void) case 3: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B3E8->unk1EC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B3E8->unk1EC, TRUE, TRUE); if ( !DecodeWonderMailPassword(gUnknown_203B3E8->PasswordEntryBuffer, &gUnknown_203B3E8->UNK38.decodedMail) || !IsValidWonderMail(&gUnknown_203B3E8->UNK38.decodedMail) ) { // Invalid password @@ -349,7 +349,7 @@ void HandlePasswordEntryScreen(void) case 2: sub_80155F0(); ResetUnusedInputStruct(); - xxx_call_save_unk_text_struct_800641C(gUnknown_203B3E8->unk1EC, TRUE, TRUE); + xxx_call_save_unk_text_struct_800641C(&gUnknown_203B3E8->unk1EC, TRUE, TRUE); SetWonderMailMainMenuState(EXIT_TO_MAIN_MENU); break; } @@ -558,7 +558,7 @@ void WonderMailMainMenuCallback(void) CreateDialogueBoxAndPortrait(gUnknown_80E7C98,0,0,0x101); break; case PASSWORD_ENTRY_SCREEN: - RestoreUnkTextStruct_8006518(gUnknown_203B3E8->unk1EC); + RestoreUnkTextStruct_8006518(&gUnknown_203B3E8->unk1EC); ResetUnusedInputStruct(); xxx_call_save_unk_text_struct_800641C(NULL, TRUE, TRUE); sub_80151C0(5,gUnknown_203B3E8->PasswordEntryBuffer); diff --git a/sym_ewram.txt b/sym_ewram.txt index 0069640b5..7e5738f9f 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -248,13 +248,7 @@ gUnknown_202F2FC: /* 202F2FC (sub_8065FB4 - sub_8066358) */ gUnknown_202F300: /* 202F300 (sub_8066434) */ .space 0x8 -gUnknown_202F308: /* 202F308 (sub_8067A80 - sub_806806C) */ - .space 0x4 -gUnknown_202F30C: /* 202F30C (sub_8067A80 - sub_8067A80) */ - .space 0x4 -gUnknown_202F310: /* 202F310 (sub_8067A80 - sub_8068310) */ - .space 0x4 - + .include "src/code_8066D04.o" .include "src/dungeon_movement.o" .include "src/code_80718D8.o"