pokeruby/asm/item.s
2016-10-28 15:41:15 -07:00

1309 lines
20 KiB
ArmAsm

.include "constants/gba_constants.inc"
.include "constants/species_constants.inc"
.include "asm/macros.inc"
.syntax unified
.text
thumb_func_start CopyItemName
CopyItemName: @ 80A9224
push {r4,lr}
adds r4, r1, 0
lsls r0, 16
lsrs r0, 16
cmp r0, 0xAF
bne _080A924C
movs r0, 0x2B
bl GetBerryInfo
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
ldr r1, _080A9248 @ =gOtherText_Berry2
adds r0, r4, 0
bl StringAppend
b _080A9258
.align 2, 0
_080A9248: .4byte gOtherText_Berry2
_080A924C:
bl ItemId_GetItem
adds r1, r0, 0
adds r0, r4, 0
bl StringCopy
_080A9258:
pop {r4}
pop {r0}
bx r0
thumb_func_end CopyItemName
thumb_func_start CountUsedBagPocketSlots
CountUsedBagPocketSlots: @ 80A9260
push {lr}
lsls r0, 24
movs r2, 0
ldr r1, _080A9284 @ =gBagPockets
lsrs r0, 21
adds r0, r1
ldrb r1, [r0, 0x4]
cmp r2, r1
bcs _080A9292
ldr r3, [r0]
_080A9274:
lsls r0, r2, 2
adds r0, r3
ldrh r0, [r0]
cmp r0, 0
bne _080A9288
lsls r0, r2, 24
asrs r0, 24
b _080A9296
.align 2, 0
_080A9284: .4byte gBagPockets
_080A9288:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r1
bcc _080A9274
_080A9292:
movs r0, 0x1
negs r0, r0
_080A9296:
pop {r1}
bx r1
thumb_func_end CountUsedBagPocketSlots
thumb_func_start IsBagPocketNonEmpty
IsBagPocketNonEmpty: @ 80A929C
push {lr}
lsls r0, 24
movs r2, 0
ldr r1, _080A92C0 @ =gBagPockets
lsrs r0, 21
subs r0, 0x8
adds r0, r1
ldrb r1, [r0, 0x4]
cmp r2, r1
bcs _080A92CE
ldr r3, [r0]
_080A92B2:
lsls r0, r2, 2
adds r0, r3
ldrh r0, [r0]
cmp r0, 0
beq _080A92C4
movs r0, 0x1
b _080A92D0
.align 2, 0
_080A92C0: .4byte gBagPockets
_080A92C4:
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
cmp r2, r1
bcc _080A92B2
_080A92CE:
movs r0, 0
_080A92D0:
pop {r1}
bx r1
thumb_func_end IsBagPocketNonEmpty
thumb_func_start CheckBagHasItem
CheckBagHasItem: @ 80A92D4
push {r4-r7,lr}
lsls r0, 16
lsrs r5, r0, 16
lsls r1, 16
lsrs r4, r1, 16
adds r0, r5, 0
bl ItemId_GetPocket
lsls r0, 24
cmp r0, 0
bne _080A92F0
b _080A9336
_080A92EC:
movs r0, 0x1
b _080A9338
_080A92F0:
adds r0, r5, 0
bl ItemId_GetPocket
subs r0, 0x1
lsls r0, 24
movs r3, 0
ldr r6, _080A9340 @ =gBagPockets
lsrs r2, r0, 21
adds r0, r2, r6
ldrb r0, [r0, 0x4]
cmp r3, r0
bcs _080A9336
adds r7, r6, 0
_080A930A:
adds r0, r2, r7
ldr r1, [r0]
lsls r0, r3, 2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, r5
bne _080A9328
ldrh r0, [r1, 0x2]
cmp r0, r4
bcs _080A92EC
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _080A92EC
_080A9328:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
adds r0, r2, r6
ldrb r0, [r0, 0x4]
cmp r3, r0
bcc _080A930A
_080A9336:
movs r0, 0
_080A9338:
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A9340: .4byte gBagPockets
thumb_func_end CheckBagHasItem
thumb_func_start CheckBagHasSpace
CheckBagHasSpace: @ 80A9344
push {r4-r7,lr}
mov r7, r10
mov r6, r9
mov r5, r8
push {r5-r7}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r4, r1, 16
adds r0, r6, 0
bl ItemId_GetPocket
lsls r0, 24
cmp r0, 0
beq _080A9408
adds r0, r6, 0
bl ItemId_GetPocket
subs r0, 0x1
lsls r0, 24
lsrs r1, r0, 24
ldr r5, _080A940C @ =0x000003e7
cmp r1, 0x3
beq _080A9376
movs r5, 0x63
_080A9376:
movs r3, 0
ldr r0, _080A9410 @ =gBagPockets
mov r8, r0
lsls r2, r1, 3
adds r0, r2, r0
mov r12, r8
mov r9, r2
ldrb r0, [r0, 0x4]
cmp r3, r0
bcs _080A93CA
mov r10, r12
subs r0, r1, 0x2
lsls r0, 24
lsrs r7, r0, 24
_080A9392:
mov r1, r10
adds r0, r2, r1
ldr r1, [r0]
lsls r0, r3, 2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, r6
bne _080A93BA
ldrh r1, [r1, 0x2]
adds r0, r1, r4
cmp r0, r5
ble _080A9414
cmp r7, 0x1
bls _080A9408
subs r0, r5, r1
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
cmp r4, 0
beq _080A9414
_080A93BA:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
mov r1, r8
adds r0, r2, r1
ldrb r0, [r0, 0x4]
cmp r3, r0
bcc _080A9392
_080A93CA:
cmp r4, 0
beq _080A9414
movs r3, 0
mov r6, r12
mov r2, r9
adds r0, r2, r6
ldrb r0, [r0, 0x4]
cmp r3, r0
bcs _080A9404
adds r7, r6, 0
_080A93DE:
adds r0, r2, r7
ldr r1, [r0]
lsls r0, r3, 2
adds r0, r1
ldrh r0, [r0]
cmp r0, 0
bne _080A93F6
cmp r4, r5
bls _080A9414
subs r0, r4, r5
lsls r0, 16
lsrs r4, r0, 16
_080A93F6:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
adds r0, r2, r6
ldrb r0, [r0, 0x4]
cmp r3, r0
bcc _080A93DE
_080A9404:
cmp r4, 0
beq _080A9414
_080A9408:
movs r0, 0
b _080A9416
.align 2, 0
_080A940C: .4byte 0x000003e7
_080A9410: .4byte gBagPockets
_080A9414:
movs r0, 0x1
_080A9416:
pop {r3-r5}
mov r8, r3
mov r9, r4
mov r10, r5
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CheckBagHasSpace
thumb_func_start AddBagItem
AddBagItem: @ 80A9424
push {r4-r7,lr}
mov r7, r9
mov r6, r8
push {r6,r7}
sub sp, 0x100
lsls r0, 16
lsrs r0, 16
mov r8, r0
lsls r1, 16
lsrs r4, r1, 16
bl ItemId_GetPocket
lsls r0, 24
cmp r0, 0
beq _080A9510
mov r0, r8
bl ItemId_GetPocket
subs r0, 0x1
lsls r0, 24
lsrs r6, r0, 24
ldr r1, _080A94F8 @ =gBagPockets
lsls r0, r6, 3
adds r5, r0, r1
ldr r1, [r5]
ldrb r2, [r5, 0x4]
lsls r2, 2
mov r0, sp
bl memcpy
ldr r7, _080A94FC @ =0x000003e7
cmp r6, 0x3
beq _080A9468
movs r7, 0x63
_080A9468:
movs r1, 0
ldrb r0, [r5, 0x4]
cmp r1, r0
bcs _080A94B2
subs r0, r6, 0x2
lsls r0, 24
lsrs r0, 24
mov r12, r0
_080A9478:
lsls r0, r1, 2
mov r2, sp
adds r3, r2, r0
ldrh r0, [r3]
cmp r0, r8
bne _080A94A6
ldrh r2, [r3, 0x2]
adds r0, r2, r4
cmp r0, r7
ble _080A9500
mov r0, r12
cmp r0, 0x1
bls _080A9510
subs r0, r7, r2
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
strh r7, [r3, 0x2]
ldr r2, _080A94F8 @ =gBagPockets
mov r9, r2
lsls r3, r6, 3
cmp r4, 0
beq _080A9516
_080A94A6:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
ldrb r0, [r5, 0x4]
cmp r1, r0
bcc _080A9478
_080A94B2:
ldr r2, _080A94F8 @ =gBagPockets
mov r9, r2
lsls r3, r6, 3
cmp r4, 0
beq _080A9516
movs r1, 0
adds r0, r3, r2
ldrb r0, [r0, 0x4]
cmp r1, r0
bcs _080A94F2
mov r6, r9
adds r5, r3, r6
_080A94CA:
lsls r0, r1, 2
mov r6, sp
adds r2, r6, r0
ldrh r0, [r2]
cmp r0, 0
bne _080A94E6
mov r0, r8
strh r0, [r2]
cmp r4, r7
bls _080A9514
subs r0, r4, r7
lsls r0, 16
lsrs r4, r0, 16
strh r7, [r2, 0x2]
_080A94E6:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
ldrb r2, [r5, 0x4]
cmp r1, r2
bcc _080A94CA
_080A94F2:
cmp r4, 0
beq _080A9516
b _080A9510
.align 2, 0
_080A94F8: .4byte gBagPockets
_080A94FC: .4byte 0x000003e7
_080A9500:
strh r0, [r3, 0x2]
ldr r0, _080A950C @ =gBagPockets
lsls r1, r6, 3
adds r1, r0
b _080A951A
.align 2, 0
_080A950C: .4byte gBagPockets
_080A9510:
movs r0, 0
b _080A9528
_080A9514:
strh r4, [r2, 0x2]
_080A9516:
mov r6, r9
adds r1, r3, r6
_080A951A:
ldr r0, [r1]
ldrb r2, [r1, 0x4]
lsls r2, 2
mov r1, sp
bl memcpy
movs r0, 0x1
_080A9528:
add sp, 0x100
pop {r3,r4}
mov r8, r3
mov r9, r4
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end AddBagItem
thumb_func_start RemoveBagItem
RemoveBagItem: @ 80A9538
push {r4-r7,lr}
mov r7, r8
push {r7}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r4, r1, 16
movs r7, 0
adds r0, r6, 0
bl ItemId_GetPocket
lsls r0, 24
cmp r0, 0
beq _080A959E
cmp r6, 0
beq _080A959E
adds r0, r6, 0
bl ItemId_GetPocket
subs r0, 0x1
lsls r0, 24
lsrs r0, 24
mov r12, r0
movs r5, 0
ldr r1, _080A95A4 @ =gBagPockets
lsls r2, r0, 3
adds r0, r2, r1
ldrb r0, [r0, 0x4]
cmp r5, r0
bcs _080A959A
mov r8, r1
_080A9576:
mov r0, r8
adds r3, r2, r0
ldr r0, [r3]
lsls r1, r5, 2
adds r1, r0
ldrh r0, [r1]
cmp r0, r6
bne _080A958E
ldrh r0, [r1, 0x2]
adds r0, r7, r0
lsls r0, 16
lsrs r7, r0, 16
_080A958E:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
ldrb r3, [r3, 0x4]
cmp r5, r3
bcc _080A9576
_080A959A:
cmp r7, r4
bcs _080A95A8
_080A959E:
movs r0, 0
b _080A9664
.align 2, 0
_080A95A4: .4byte gBagPockets
_080A95A8:
ldr r0, _080A95DC @ =gBagPockets
mov r2, r12
lsls r1, r2, 3
adds r5, r1, r0
ldr r2, _080A95E0 @ =gUnknown_02038560
ldrb r3, [r5, 0x4]
mov r8, r0
adds r7, r1, 0
ldrb r0, [r2]
cmp r3, r0
bls _080A9606
ldrb r0, [r2]
ldr r1, [r5]
lsls r0, 2
adds r1, r0, r1
ldrh r0, [r1]
cmp r0, r6
bne _080A9606
ldrh r0, [r1, 0x2]
cmp r0, r4
bcc _080A95E4
subs r0, r4
strh r0, [r1, 0x2]
movs r4, 0
b _080A95EE
.align 2, 0
_080A95DC: .4byte gBagPockets
_080A95E0: .4byte gUnknown_02038560
_080A95E4:
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0
strh r0, [r1, 0x2]
_080A95EE:
mov r1, r8
adds r0, r7, r1
ldrb r1, [r2]
ldr r0, [r0]
lsls r1, 2
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A9602
strh r0, [r1]
_080A9602:
cmp r4, 0
beq _080A9662
_080A9606:
movs r5, 0
adds r1, r7, 0
mov r2, r8
adds r0, r1, r2
ldrb r2, [r0, 0x4]
cmp r5, r2
bcs _080A9662
mov r12, r8
adds r3, r0, 0
_080A9618:
mov r2, r12
adds r0, r1, r2
ldr r0, [r0]
lsls r1, r5, 2
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, r6
bne _080A9650
ldrh r0, [r2, 0x2]
cmp r0, r4
bcc _080A9636
subs r0, r4
strh r0, [r2, 0x2]
movs r4, 0
b _080A9640
_080A9636:
subs r0, r4, r0
lsls r0, 16
lsrs r4, r0, 16
movs r0, 0
strh r0, [r2, 0x2]
_080A9640:
ldr r0, [r3]
adds r1, r0
ldrh r0, [r1, 0x2]
cmp r0, 0
bne _080A964C
strh r0, [r1]
_080A964C:
cmp r4, 0
beq _080A9662
_080A9650:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
adds r1, r7, 0
mov r2, r8
adds r0, r1, r2
ldrb r0, [r0, 0x4]
cmp r5, r0
bcc _080A9618
_080A9662:
movs r0, 0x1
_080A9664:
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end RemoveBagItem
thumb_func_start GetPocketByItemId
GetPocketByItemId: @ 80A9670
push {lr}
lsls r0, 16
lsrs r0, 16
bl ItemId_GetPocket
lsls r0, 24
lsrs r0, 24
pop {r1}
bx r1
thumb_func_end GetPocketByItemId
thumb_func_start ClearItemSlots
ClearItemSlots: @ 80A9684
push {r4,lr}
adds r4, r0, 0
lsls r1, 24
movs r2, 0
lsrs r1, 24
cmp r2, r1
bcs _080A96A6
movs r3, 0
_080A9694:
lsls r0, r2, 2
adds r0, r4
strh r3, [r0]
strh r3, [r0, 0x2]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, r1
bcc _080A9694
_080A96A6:
pop {r4}
pop {r0}
bx r0
thumb_func_end ClearItemSlots
thumb_func_start FindFreePCItemSlot
FindFreePCItemSlot: @ 80A96AC
push {lr}
movs r1, 0
ldr r3, _080A96CC @ =gSaveBlock1
movs r2, 0x93
lsls r2, 3
_080A96B6:
lsls r0, r1, 24
asrs r1, r0, 24
lsls r0, r1, 2
adds r0, r3
adds r0, r2
ldrh r0, [r0]
cmp r0, 0
bne _080A96D0
adds r0, r1, 0
b _080A96E0
.align 2, 0
_080A96CC: .4byte gSaveBlock1
_080A96D0:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
asrs r0, 24
cmp r0, 0x31
ble _080A96B6
movs r0, 0x1
negs r0, r0
_080A96E0:
pop {r1}
bx r1
thumb_func_end FindFreePCItemSlot
thumb_func_start CountUsedPCItemSlots
CountUsedPCItemSlots: @ 80A96E4
push {r4,lr}
movs r2, 0
movs r1, 0
ldr r4, _080A9714 @ =gSaveBlock1
movs r3, 0x93
lsls r3, 3
_080A96F0:
lsls r0, r1, 2
adds r0, r4
adds r0, r3
ldrh r0, [r0]
cmp r0, 0
beq _080A9702
adds r0, r2, 0x1
lsls r0, 24
lsrs r2, r0, 24
_080A9702:
adds r0, r1, 0x1
lsls r0, 24
lsrs r1, r0, 24
cmp r1, 0x31
bls _080A96F0
adds r0, r2, 0
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9714: .4byte gSaveBlock1
thumb_func_end CountUsedPCItemSlots
thumb_func_start CheckPCHasItem
CheckPCHasItem: @ 80A9718
push {r4-r7,lr}
lsls r0, 16
lsrs r4, r0, 16
lsls r1, 16
lsrs r1, 16
movs r3, 0
ldr r7, _080A9744 @ =gSaveBlock1
movs r6, 0x93
lsls r6, 3
ldr r5, _080A9748 @ =0x0000049a
_080A972C:
lsls r0, r3, 2
adds r2, r0, r7
adds r0, r2, r6
ldrh r0, [r0]
cmp r0, r4
bne _080A974C
adds r0, r2, r5
ldrh r0, [r0]
cmp r0, r1
bcc _080A974C
movs r0, 0x1
b _080A9758
.align 2, 0
_080A9744: .4byte gSaveBlock1
_080A9748: .4byte 0x0000049a
_080A974C:
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x31
bls _080A972C
movs r0, 0
_080A9758:
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end CheckPCHasItem
thumb_func_start AddPCItem
AddPCItem: @ 80A9760
push {r4-r7,lr}
sub sp, 0xC8
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r4, r1, 16
ldr r1, _080A97C4 @ =gSaveBlock1 + 0x498
mov r0, sp
movs r2, 0xC8
bl memcpy
movs r5, 0
ldr r0, _080A97C8 @ =0x0000fc19
adds r7, r0, 0
_080A977C:
lsls r0, r5, 2
mov r1, sp
adds r2, r1, r0
ldrh r0, [r2]
cmp r0, r6
bne _080A97A0
ldrh r1, [r2, 0x2]
adds r0, r1, r4
ldr r3, _080A97CC @ =0x000003e7
cmp r0, r3
ble _080A97D0
adds r0, r4, r7
adds r0, r1, r0
lsls r0, 16
lsrs r4, r0, 16
strh r3, [r2, 0x2]
cmp r4, 0
beq _080A97DC
_080A97A0:
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x31
bls _080A977C
cmp r4, 0
beq _080A97DC
bl FindFreePCItemSlot
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x1
negs r0, r0
cmp r1, r0
bne _080A97D4
movs r0, 0
b _080A97E8
.align 2, 0
_080A97C4: .4byte gSaveBlock1 + 0x498
_080A97C8: .4byte 0x0000fc19
_080A97CC: .4byte 0x000003e7
_080A97D0:
strh r0, [r2, 0x2]
b _080A97DC
_080A97D4:
lsls r0, r1, 2
add r0, sp
strh r6, [r0]
strh r4, [r0, 0x2]
_080A97DC:
ldr r0, _080A97F0 @ =gSaveBlock1 + 0x498
mov r1, sp
movs r2, 0xC8
bl memcpy
movs r0, 0x1
_080A97E8:
add sp, 0xC8
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_080A97F0: .4byte gSaveBlock1 + 0x498
thumb_func_end AddPCItem
thumb_func_start RemovePCItem
RemovePCItem: @ 80A97F4
push {lr}
lsls r0, 24
lsls r1, 16
lsrs r1, 16
ldr r2, _080A9824 @ =gSaveBlock1
lsrs r0, 22
adds r3, r0, r2
ldr r0, _080A9828 @ =0x0000049a
adds r2, r3, r0
ldrh r0, [r2]
subs r0, r1
strh r0, [r2]
lsls r0, 16
lsrs r1, r0, 16
cmp r1, 0
bne _080A9820
movs r2, 0x93
lsls r2, 3
adds r0, r3, r2
strh r1, [r0]
bl CompactPCItems
_080A9820:
pop {r0}
bx r0
.align 2, 0
_080A9824: .4byte gSaveBlock1
_080A9828: .4byte 0x0000049a
thumb_func_end RemovePCItem
thumb_func_start CompactPCItems
CompactPCItems: @ 80A982C
push {r4-r7,lr}
movs r2, 0
ldr r0, _080A987C @ =gSaveBlock1
mov r12, r0
_080A9834:
adds r1, r2, 0x1
lsls r0, r1, 16
lsrs r3, r0, 16
adds r7, r1, 0
cmp r3, 0x31
bhi _080A986C
lsls r1, r2, 2
mov r2, r12
adds r0, r1, r2
movs r2, 0x93
lsls r2, 3
adds r5, r0, r2
ldr r6, _080A9880 @ =gSaveBlock1 + 0x498
adds r4, r1, r6
_080A9850:
ldrh r0, [r5]
cmp r0, 0
bne _080A9862
ldr r2, [r4]
lsls r1, r3, 2
adds r1, r6
ldr r0, [r1]
str r0, [r4]
str r2, [r1]
_080A9862:
adds r0, r3, 0x1
lsls r0, 16
lsrs r3, r0, 16
cmp r3, 0x31
bls _080A9850
_080A986C:
lsls r0, r7, 16
lsrs r2, r0, 16
cmp r2, 0x30
bls _080A9834
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080A987C: .4byte gSaveBlock1
_080A9880: .4byte gSaveBlock1 + 0x498
thumb_func_end CompactPCItems
thumb_func_start SwapRegisteredBike
SwapRegisteredBike: @ 80A9884
push {lr}
ldr r0, _080A98A0 @ =gSaveBlock1
ldr r1, _080A98A4 @ =0x00000496
adds r2, r0, r1
ldrh r1, [r2]
ldr r3, _080A98A8 @ =0x00000103
cmp r1, r3
beq _080A98AC
movs r0, 0x88
lsls r0, 1
cmp r1, r0
beq _080A98B4
b _080A98B6
.align 2, 0
_080A98A0: .4byte gSaveBlock1
_080A98A4: .4byte 0x00000496
_080A98A8: .4byte 0x00000103
_080A98AC:
movs r0, 0x88
lsls r0, 1
strh r0, [r2]
b _080A98B6
_080A98B4:
strh r3, [r2]
_080A98B6:
pop {r0}
bx r0
thumb_func_end SwapRegisteredBike
thumb_func_start SanitizeItemId
SanitizeItemId: @ 80A98BC
push {lr}
lsls r0, 16
lsrs r1, r0, 16
movs r0, 0xAE
lsls r0, 1
cmp r1, r0
bhi _080A98CE
adds r0, r1, 0
b _080A98D0
_080A98CE:
movs r0, 0
_080A98D0:
pop {r1}
bx r1
thumb_func_end SanitizeItemId
thumb_func_start ItemId_GetItem
ItemId_GetItem: @ 80A98D4
push {lr}
lsls r0, 16
lsrs r0, 16
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
ldr r1, _080A98F0 @ =gItems
adds r0, r1
pop {r1}
bx r1
.align 2, 0
_080A98F0: .4byte gItems
thumb_func_end ItemId_GetItem
thumb_func_start ItemId_GetId
ItemId_GetId: @ 80A98F4
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9914 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrh r0, [r0, 0xE]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9914: .4byte gItems
thumb_func_end ItemId_GetId
thumb_func_start ItemId_GetPrice
ItemId_GetPrice: @ 80A9918
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9938 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrh r0, [r0, 0x10]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9938: .4byte gItems
thumb_func_end ItemId_GetPrice
thumb_func_start ItemId_GetHoldEffect
ItemId_GetHoldEffect: @ 80A993C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A995C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x12]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A995C: .4byte gItems
thumb_func_end ItemId_GetHoldEffect
thumb_func_start ItemId_GetHoldEffectParam
ItemId_GetHoldEffectParam: @ 80A9960
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9980 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x13]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9980: .4byte gItems
thumb_func_end ItemId_GetHoldEffectParam
thumb_func_start ItemId_GetDescription
ItemId_GetDescription: @ 80A9984
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A99A4 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r4, 0x14
adds r0, r4
ldr r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A99A4: .4byte gItems
thumb_func_end ItemId_GetDescription
thumb_func_start ItemId_CopyDescription
ItemId_CopyDescription: @ 80A99A8
push {r4-r6,lr}
adds r6, r0, 0
adds r0, r1, 0
adds r5, r2, 0x1
ldr r4, _080A99E4 @ =gItems
lsls r0, 16
lsrs r0, 16
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r4, 0x14
adds r0, r4
ldr r3, [r0]
adds r2, r6, 0
_080A99CA:
ldrb r1, [r3]
adds r0, r1, 0x2
lsls r0, 24
lsrs r0, 24
cmp r0, 0x1
bhi _080A99FA
subs r5, 0x1
cmp r5, 0
bne _080A99E8
movs r0, 0xFF
strb r0, [r2]
movs r0, 0x1
b _080A9A02
.align 2, 0
_080A99E4: .4byte gItems
_080A99E8:
lsls r0, r1, 24
lsrs r0, 24
cmp r0, 0xFF
bne _080A99F4
movs r0, 0
b _080A9A02
_080A99F4:
adds r2, r6, 0
adds r3, 0x1
b _080A99CA
_080A99FA:
strb r1, [r2]
adds r3, 0x1
adds r2, 0x1
b _080A99CA
_080A9A02:
pop {r4-r6}
pop {r1}
bx r1
thumb_func_end ItemId_CopyDescription
thumb_func_start ItemId_GetImportance
ItemId_GetImportance: @ 80A9A08
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9A28 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x18]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9A28: .4byte gItems
thumb_func_end ItemId_GetImportance
thumb_func_start ItemId_GetUnknownValue
ItemId_GetUnknownValue: @ 80A9A2C
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9A4C @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x19]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9A4C: .4byte gItems
thumb_func_end ItemId_GetUnknownValue
thumb_func_start ItemId_GetPocket
ItemId_GetPocket: @ 80A9A50
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9A70 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x1A]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9A70: .4byte gItems
thumb_func_end ItemId_GetPocket
thumb_func_start ItemId_GetType
ItemId_GetType: @ 80A9A74
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9A94 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
ldrb r0, [r0, 0x1B]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9A94: .4byte gItems
thumb_func_end ItemId_GetType
thumb_func_start ItemId_GetFieldFunc
ItemId_GetFieldFunc: @ 80A9A98
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9AB8 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r4, 0x1C
adds r0, r4
ldr r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9AB8: .4byte gItems
thumb_func_end ItemId_GetFieldFunc
thumb_func_start ItemId_GetBattleUsage
ItemId_GetBattleUsage: @ 80A9ABC
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9ADC @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
adds r0, 0x20
ldrb r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9ADC: .4byte gItems
thumb_func_end ItemId_GetBattleUsage
thumb_func_start ItemId_GetBattleFunc
ItemId_GetBattleFunc: @ 80A9AE0
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9B00 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r4, 0x24
adds r0, r4
ldr r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9B00: .4byte gItems
thumb_func_end ItemId_GetBattleFunc
thumb_func_start ItemId_GetSecondaryId
ItemId_GetSecondaryId: @ 80A9B04
push {r4,lr}
lsls r0, 16
lsrs r0, 16
ldr r4, _080A9B24 @ =gItems
bl SanitizeItemId
lsls r0, 16
lsrs r0, 16
movs r1, 0x2C
muls r0, r1
adds r0, r4
adds r0, 0x28
ldrb r0, [r0]
pop {r4}
pop {r1}
bx r1
.align 2, 0
_080A9B24: .4byte gItems
thumb_func_end ItemId_GetSecondaryId
.align 2, 0 @ Don't pad with nop.