pmd-red/asm/kecleon_items_1.s
mid-kid 99a038284b Translate all .include to #include
This decision was made to reduce the complexity of using .include whilst
juggling with tools/scaninc and tools/preproc:
- tools/scaninc doesn't apply the proper search rules for .include (it
  assumes #include behavior). In particular, it doesn't consider paths
  starting from $PWD, and doesn't scan the included files as a result.
- .include had to be processed before #include by preproc in many cases,
  as code was being included that had to be preprocessed by CPP (think
  of #define). This contradicts standard GCC behavior.

To make include paths consistent across the asm/ data/ and src/
directories, the following files were moved:
- constants/ → include/asm/constants/
- asm/macros/ → include/asm/macros/
- asm/macros.inc → include/asm/macros.inc
- include/macros/m4a.inc → include/asm/macros/m4a.inc

As part of the necessary changes for this to work, the scaninc method in
the makefile was improved to generate .d files that don't choke when
files are missing.
2021-12-20 16:29:12 +01:00

731 lines
11 KiB
ArmAsm

#include "asm/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