mirror of
https://github.com/pret/pmd-red.git
synced 2026-04-24 23:17:03 -05:00
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.
731 lines
11 KiB
ArmAsm
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
|