diff options
Diffstat (limited to 'asm/kecleon_items_1.s')
-rw-r--r-- | asm/kecleon_items_1.s | 730 |
1 files changed, 730 insertions, 0 deletions
diff --git a/asm/kecleon_items_1.s b/asm/kecleon_items_1.s new file mode 100644 index 0000000..1b20264 --- /dev/null +++ b/asm/kecleon_items_1.s @@ -0,0 +1,730 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_801A9E0 +sub_801A9E0: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0xCC + ldr r4, _0801AA2C + ldr r0, [r4] + adds r0, 0x88 + ldr r0, [r0] + bl sub_8008C54 + ldr r0, [r4] + adds r0, 0x88 + ldr r0, [r0] + bl sub_80073B8 + ldr r4, [r4] + adds r1, r4, 0 + adds r1, 0x72 + movs r2, 0 + ldrsh r0, [r1, r2] + lsls r0, 3 + adds r5, r0, 0 + adds r5, 0xA + movs r3, 0 + ldrsh r1, [r1, r3] + cmp r1, 0 + bne _0801AA34 + ldr r2, _0801AA30 + adds r0, r4, 0 + adds r0, 0x88 + ldr r3, [r0] + str r1, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string + b _0801AA48 + .align 2, 0 +_0801AA2C: .4byte gUnknown_203B224 +_0801AA30: .4byte gTeamToolboxA +_0801AA34: + ldr r2, _0801AA58 + adds r0, r4, 0 + adds r0, 0x88 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + adds r0, r5, 0 + movs r1, 0 + bl xxx_call_draw_string +_0801AA48: + movs r7, 0 + ldr r1, _0801AA5C + ldr r0, [r1] + adds r0, 0x6E + movs r4, 0 + ldrsh r0, [r0, r4] + b _0801AD0A + .align 2, 0 +_0801AA58: .4byte gTeamToolboxB +_0801AA5C: .4byte gUnknown_203B224 +_0801AA60: + ldr r2, [r1] + adds r0, r2, 0 + adds r0, 0x72 + movs r3, 0 + ldrsh r1, [r0, r3] + subs r0, 0x2 + movs r4, 0 + ldrsh r0, [r0, r4] + muls r0, r1 + adds r0, r7 + mov r8, r0 + ldr r0, _0801AA9C + ldr r0, [r0] + mov r3, r8 + lsls r1, r3, 2 + adds r0, r1 + ldr r0, [r0] + add r1, sp, 0xC8 + str r0, [r1] + ldr r0, [r2] + adds r4, r1, 0 + cmp r0, 0x5 + bls _0801AA90 + b _0801ACC4 +_0801AA90: + lsls r0, 2 + ldr r1, _0801AAA0 + adds r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0801AA9C: .4byte gTeamInventory_203B460 +_0801AAA0: .4byte _0801AAA4 + .align 2, 0 +_0801AAA4: + .4byte _0801AABC + .4byte _0801AAE4 + .4byte _0801AAE4 + .4byte _0801AB18 + .4byte _0801AB90 + .4byte _0801AC50 +_0801AABC: + add r0, sp, 0x4 + adds r1, r4, 0 + movs r2, 0 + bl sub_8090E14 + ldr r4, _0801AAE0 + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r0, [r4] + adds r0, 0x88 + ldr r3, [r0] + movs r0, 0 + str r0, [sp] + b _0801AC8C + .align 2, 0 +_0801AAE0: .4byte gUnknown_203B224 +_0801AAE4: + add r2, sp, 0x54 + movs r5, 0 + str r5, [sp, 0x54] + strb r5, [r2, 0x4] + movs r0, 0x1 + strb r0, [r2, 0x8] + strb r0, [r4] + add r1, sp, 0xC8 + add r0, sp, 0x4 + bl sub_8090E14 + ldr r4, _0801AB14 + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r0, [r4] + adds r0, 0x88 + ldr r3, [r0] + str r5, [sp] + b _0801AC8C + .align 2, 0 +_0801AB14: .4byte gUnknown_203B224 +_0801AB18: + add r2, sp, 0x60 + movs r6, 0 + str r6, [sp, 0x60] + strb r6, [r2, 0x4] + movs r0, 0x1 + strb r0, [r2, 0x8] + strb r0, [r4] + add r1, sp, 0xC8 + add r0, sp, 0x4 + bl sub_8090E14 + ldr r5, _0801AB60 + ldr r0, [r5] + mov r4, r8 + lsls r1, r4, 2 + adds r0, 0x4 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + bne _0801AB4E + mov r0, r8 + bl sub_801ADA0 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0801AB64 +_0801AB4E: + ldr r0, [r5] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r0, [r5] + b _0801AC86 + .align 2, 0 +_0801AB60: .4byte gUnknown_203B224 +_0801AB64: + ldr r0, _0801AB88 + add r1, sp, 0x4 + movs r2, 0x50 + bl strncpy + ldr r0, [r5] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r2, _0801AB8C + ldr r0, [r5] + adds r0, 0x88 + ldr r3, [r0] + str r4, [sp] + b _0801AC3C + .align 2, 0 +_0801AB88: .4byte gUnknown_202DE58 +_0801AB8C: .4byte gUnknown_80DB994 +_0801AB90: + ldrb r0, [r4, 0x2] + bl CanSellItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _0801AC10 + add r2, sp, 0x6C + movs r1, 0x3 + str r1, [sp, 0x6C] + movs r6, 0 + strb r6, [r2, 0x4] + movs r0, 0x58 + strh r0, [r2, 0x6] + movs r0, 0x1 + strb r0, [r2, 0x8] + strb r1, [r4] + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_8090E14 + adds r0, r4, 0 + bl GetStackSellPrice + ldr r1, _0801AC00 + ldr r1, [r1] + movs r2, 0x98 + lsls r2, 2 + adds r1, r2 + ldr r1, [r1] + adds r0, r1 + ldr r1, _0801AC04 + cmp r0, r1 + ble _0801AC76 + add r5, sp, 0x78 + ldr r1, _0801AC08 + adds r0, r5, 0 + add r2, sp, 0x4 + bl ExpandPlaceholdersBuffer + ldr r4, _0801AC0C + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r0, [r4] + adds r0, 0x88 + ldr r3, [r0] + str r6, [sp] + movs r0, 0x8 + adds r2, r5, 0 + bl xxx_call_draw_string + b _0801ACC4 + .align 2, 0 +_0801AC00: .4byte gTeamInventory_203B460 +_0801AC04: .4byte 0x0001869f +_0801AC08: .4byte gUnknown_80DB9A0 +_0801AC0C: .4byte gUnknown_203B224 +_0801AC10: + add r0, sp, 0x4 + adds r1, r4, 0 + movs r2, 0 + bl sub_8090E14 + ldr r0, _0801AC44 + add r1, sp, 0x4 + movs r2, 0x50 + bl strncpy + ldr r4, _0801AC48 + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r2, _0801AC4C + ldr r0, [r4] + adds r0, 0x88 + ldr r3, [r0] + str r5, [sp] +_0801AC3C: + movs r0, 0x8 + bl xxx_format_and_draw + b _0801ACC4 + .align 2, 0 +_0801AC44: .4byte gUnknown_202DE58 +_0801AC48: .4byte gUnknown_203B224 +_0801AC4C: .4byte gUnknown_80DB994 +_0801AC50: + add r2, sp, 0x78 + movs r6, 0 + str r6, [sp, 0x78] + strb r6, [r2, 0x4] + movs r0, 0x1 + strb r0, [r2, 0x8] + strb r0, [r4] + add r4, sp, 0xC8 + add r0, sp, 0x4 + adds r1, r4, 0 + bl sub_8090E14 + ldrb r0, [r4, 0x2] + bl IsGummiItem + lsls r0, 24 + lsrs r5, r0, 24 + cmp r5, 0 + beq _0801AC9C +_0801AC76: + ldr r4, _0801AC98 + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r0, [r4] +_0801AC86: + adds r0, 0x88 + ldr r3, [r0] + str r6, [sp] +_0801AC8C: + movs r0, 0x8 + add r2, sp, 0x4 + bl xxx_call_draw_string + b _0801ACC4 + .align 2, 0 +_0801AC98: .4byte gUnknown_203B224 +_0801AC9C: + ldr r0, _0801AD28 + add r1, sp, 0x4 + movs r2, 0x50 + bl strncpy + ldr r4, _0801AD2C + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r1, r0, 0 + ldr r2, _0801AD30 + ldr r0, [r4] + adds r0, 0x88 + ldr r3, [r0] + str r5, [sp] + movs r0, 0x8 + bl xxx_format_and_draw +_0801ACC4: + mov r0, r8 + bl sub_801AED0 + movs r1, 0x1 + ands r1, r0 + cmp r1, 0 + beq _0801ACFE + ldr r4, _0801AD2C + ldr r0, [r4] + adds r0, 0x54 + adds r1, r7, 0 + bl sub_8013800 + adds r2, r0, 0 + ldr r1, [r4] + adds r0, r1, 0 + adds r0, 0x88 + ldr r0, [r0] + adds r1, 0x8C + ldr r1, [r1] + movs r4, 0xC + ldrsh r3, [r1, r4] + subs r3, 0x2 + lsls r3, 3 + movs r1, 0xA + str r1, [sp] + movs r1, 0x8 + bl sub_8007B7C +_0801ACFE: + adds r7, 0x1 + ldr r1, _0801AD2C + ldr r0, [r1] + adds r0, 0x6E + movs r2, 0 + ldrsh r0, [r0, r2] +_0801AD0A: + adds r2, r1, 0 + cmp r7, r0 + bge _0801AD12 + b _0801AA60 +_0801AD12: + ldr r0, [r2] + adds r0, 0x88 + ldr r0, [r0] + bl sub_80073E0 + add sp, 0xCC + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801AD28: .4byte gUnknown_202DE58 +_0801AD2C: .4byte gUnknown_203B224 +_0801AD30: .4byte gUnknown_80DB994 + thumb_func_end sub_801A9E0 + + thumb_func_start sub_801AD34 +sub_801AD34: + push {r4-r6,lr} + sub sp, 0x8 + adds r4, r0, 0 + bl sub_8008C54 + adds r0, r4, 0 + bl sub_80073B8 + ldr r2, _0801AD98 + movs r6, 0 + str r6, [sp] + movs r0, 0x6 + movs r1, 0 + adds r3, r4, 0 + bl xxx_call_draw_string + bl GetNumberOfFilledInventorySlots + adds r2, r0, 0 + movs r5, 0x7 + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x12 + movs r1, 0xD + movs r3, 0x2 + bl sub_8012BC4 + ldr r2, _0801AD9C + str r6, [sp] + movs r0, 0x16 + movs r1, 0xD + adds r3, r4, 0 + bl xxx_call_draw_string + str r5, [sp] + str r4, [sp, 0x4] + movs r0, 0x2B + movs r1, 0xD + movs r2, 0x14 + movs r3, 0x2 + bl sub_8012BC4 + adds r0, r4, 0 + bl sub_80073E0 + add sp, 0x8 + pop {r4-r6} + pop {r0} + bx r0 + .align 2, 0 +_0801AD98: .4byte gUnknown_80DB9A8 +_0801AD9C: .4byte gUnknown_80DB9B0 + thumb_func_end sub_801AD34 + + thumb_func_start sub_801ADA0 +sub_801ADA0: + push {r4-r6,lr} + ldr r5, _0801ADEC + ldr r1, [r5] + lsls r0, 2 + adds r1, r0 + ldr r6, [r1] + lsls r4, r6, 8 + lsrs r0, r4, 24 + bl IsNotMoneyOrUsedTMItem + lsls r0, 24 + cmp r0, 0 + beq _0801AE12 + lsrs r0, r4, 24 + bl IsThrowableItem + lsls r0, 24 + cmp r0, 0 + beq _0801ADF4 + lsrs r0, r4, 24 + bl sub_801AE24 + ldr r2, [r5] + lsrs r1, r4, 24 + lsls r1, 1 + adds r2, 0x50 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + ldrh r2, [r2] + adds r0, r2 + lsrs r1, r6, 8 + lsls r1, 24 + lsrs r1, 24 + adds r0, r1 + ldr r1, _0801ADF0 + b _0801AE0E + .align 2, 0 +_0801ADEC: .4byte gTeamInventory_203B460 +_0801ADF0: .4byte 0x000003e7 +_0801ADF4: + lsrs r0, r4, 24 + bl sub_801AE24 + ldr r2, [r5] + lsrs r1, r4, 24 + lsls r1, 1 + adds r2, 0x50 + adds r2, r1 + lsls r0, 16 + lsrs r0, 16 + ldrh r2, [r2] + adds r0, r2 + ldr r1, _0801AE18 +_0801AE0E: + cmp r0, r1 + ble _0801AE1C +_0801AE12: + movs r0, 0 + b _0801AE1E + .align 2, 0 +_0801AE18: .4byte 0x000003e6 +_0801AE1C: + movs r0, 0x1 +_0801AE1E: + pop {r4-r6} + pop {r1} + bx r1 + thumb_func_end sub_801ADA0 + + thumb_func_start sub_801AE24 +sub_801AE24: + push {r4-r7,lr} + adds r7, r0, 0 + movs r5, 0 + movs r6, 0 + b _0801AE74 +_0801AE2E: + ldr r0, _0801AE64 + ldr r0, [r0] + lsls r1, r6, 2 + adds r0, 0x4 + adds r0, r1 + ldr r0, [r0] + cmp r0, 0 + beq _0801AE72 + ldr r0, _0801AE68 + ldr r0, [r0] + adds r0, r1 + ldr r4, [r0] + lsls r1, r4, 8 + lsrs r0, r1, 24 + cmp r0, r7 + bne _0801AE72 + bl IsThrowableItem + lsls r0, 24 + cmp r0, 0 + beq _0801AE6C + lsrs r0, r4, 8 + lsls r0, 24 + lsrs r0, 24 + adds r0, r5, r0 + b _0801AE6E + .align 2, 0 +_0801AE64: .4byte gUnknown_203B224 +_0801AE68: .4byte gTeamInventory_203B460 +_0801AE6C: + adds r0, r5, 0x1 +_0801AE6E: + lsls r0, 16 + lsrs r5, r0, 16 +_0801AE72: + adds r6, 0x1 +_0801AE74: + bl GetNumberOfFilledInventorySlots + cmp r6, r0 + blt _0801AE2E + adds r0, r5, 0 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_801AE24 + + thumb_func_start sub_801AE84 +sub_801AE84: + push {r4,lr} + movs r2, 0 + ldr r4, _0801AEA4 + movs r3, 0 +_0801AE8C: + ldr r0, [r4] + lsls r1, r2, 2 + adds r0, 0x4 + adds r0, r1 + str r3, [r0] + adds r2, 0x1 + cmp r2, 0x13 + ble _0801AE8C + pop {r4} + pop {r0} + bx r0 + .align 2, 0 +_0801AEA4: .4byte gUnknown_203B224 + thumb_func_end sub_801AE84 + + thumb_func_start sub_801AEA8 +sub_801AEA8: + push {lr} + movs r3, 0 + ldr r0, _0801AECC + ldr r0, [r0] + adds r1, r0, 0x4 + movs r2, 0x13 +_0801AEB4: + ldr r0, [r1] + cmp r0, 0 + beq _0801AEBC + adds r3, 0x1 +_0801AEBC: + adds r1, 0x4 + subs r2, 0x1 + cmp r2, 0 + bge _0801AEB4 + adds r0, r3, 0 + pop {r1} + bx r1 + .align 2, 0 +_0801AECC: .4byte gUnknown_203B224 + thumb_func_end sub_801AEA8 + + thumb_func_start sub_801AED0 +sub_801AED0: + ldr r1, _0801AEE0 + ldr r1, [r1] + lsls r0, 2 + adds r1, 0x4 + adds r1, r0 + ldr r0, [r1] + bx lr + .align 2, 0 +_0801AEE0: .4byte gUnknown_203B224 + thumb_func_end sub_801AED0 + + thumb_func_start sub_801AEE4 +sub_801AEE4: + ldr r2, _0801AEF4 + ldr r2, [r2] + lsls r0, 2 + adds r2, 0x4 + adds r2, r0 + str r1, [r2] + bx lr + .align 2, 0 +_0801AEF4: .4byte gUnknown_203B224 + thumb_func_end sub_801AEE4 + + thumb_func_start sub_801AEF8 +sub_801AEF8: + push {r4-r7,lr} + mov r7, r9 + mov r6, r8 + push {r6,r7} + sub sp, 0x4 + movs r0, 0 + mov r9, r0 + b _0801AF78 +_0801AF08: + movs r1, 0x1 + add r1, r9 + mov r8, r1 + mov r7, r8 + b _0801AF6E +_0801AF12: + ldr r2, _0801AF90 + ldr r0, [r2] + mov r1, r9 + lsls r6, r1, 2 + adds r0, r6 + ldrb r0, [r0, 0x2] + str r2, [sp] + bl GetItemOrder + adds r4, r0, 0 + ldr r2, [sp] + ldr r0, [r2] + lsls r5, r7, 2 + adds r0, r5 + ldrb r0, [r0, 0x2] + bl GetItemOrder + ldr r2, [sp] + cmp r4, r0 + bgt _0801AF4C + cmp r4, r0 + bne _0801AF6C + ldr r0, [r2] + adds r1, r0, r6 + adds r0, r5 + ldrb r1, [r1, 0x1] + ldrb r0, [r0, 0x1] + cmp r1, r0 + bcs _0801AF6C +_0801AF4C: + ldr r0, [r2] + adds r2, r0, r6 + ldr r3, [r2] + adds r0, r5 + ldr r1, [r0] + str r1, [r2] + str r3, [r0] + ldr r0, _0801AF94 + ldr r0, [r0] + adds r0, 0x4 + adds r2, r0, r6 + ldr r3, [r2] + adds r0, r5 + ldr r1, [r0] + str r1, [r2] + str r3, [r0] +_0801AF6C: + adds r7, 0x1 +_0801AF6E: + bl GetNumberOfFilledInventorySlots + cmp r7, r0 + blt _0801AF12 + mov r9, r8 +_0801AF78: + bl GetNumberOfFilledInventorySlots + subs r0, 0x1 + cmp r9, r0 + blt _0801AF08 + add sp, 0x4 + pop {r3,r4} + mov r8, r3 + mov r9, r4 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0801AF90: .4byte gTeamInventory_203B460 +_0801AF94: .4byte gUnknown_203B224 + thumb_func_end sub_801AEF8 + + .align 2,0 |