mirror of https://github.com/zeldaret/tmc.git
315 lines
5.1 KiB
PHP
315 lines
5.1 KiB
PHP
.syntax unified
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, #0
|
|
adds r7, r1, #0
|
|
bl GetInventoryValue
|
|
adds r5, r0, #0
|
|
lsls r1, r6, #3
|
|
ldr r0, _08054010 @ =gItemMetaData
|
|
adds r4, r1, r0
|
|
cmp r5, #0
|
|
bne _08054014
|
|
ldrh r0, [r4, #4]
|
|
mov r8, r0
|
|
b _08054018
|
|
.align 2, 0
|
|
_08054010: .4byte gItemMetaData
|
|
_08054014:
|
|
ldrh r2, [r4, #6]
|
|
mov r8, r2
|
|
_08054018:
|
|
adds r0, r6, #0
|
|
bl ItemIsBottle
|
|
cmp r0, #0
|
|
bne _08054034
|
|
adds r0, r6, #0
|
|
bl PutItemOnSlot
|
|
cmp r5, #0
|
|
bne _08054034
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
_08054034:
|
|
ldrb r0, [r4, #1]
|
|
cmp r0, #0x12
|
|
bls _0805403C
|
|
b _0805427C
|
|
_0805403C:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08054048 @ =_0805404C
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08054048: .4byte _0805404C
|
|
_0805404C: @ jump table
|
|
.4byte _0805427C @ case 0
|
|
.4byte _08054098 @ case 1
|
|
.4byte _080540A6 @ case 2
|
|
.4byte _080540C0 @ case 3
|
|
.4byte _08054104 @ case 4
|
|
.4byte _0805414C @ case 5
|
|
.4byte _08054154 @ case 6
|
|
.4byte _08054194 @ case 7
|
|
.4byte _080541B6 @ case 8
|
|
.4byte _080541F0 @ case 9
|
|
.4byte _08054212 @ case 10
|
|
.4byte _080541F8 @ case 11
|
|
.4byte _08054238 @ case 12
|
|
.4byte _08054174 @ case 13
|
|
.4byte _08054240 @ case 14
|
|
.4byte _0805425C @ case 15
|
|
.4byte _08054264 @ case 16
|
|
.4byte _080541B0 @ case 17
|
|
.4byte _0805417C @ case 18
|
|
_08054098:
|
|
ldrb r0, [r4, #2]
|
|
bl ModHealth
|
|
movs r0, #0x71
|
|
bl SoundReq
|
|
b _0805427C
|
|
_080540A6:
|
|
ldr r0, _080540BC @ =gUnk_080FD5A8
|
|
ldrb r1, [r4, #2]
|
|
lsls r1, r1, #1
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
bl ModRupees
|
|
movs r0, #0x6f
|
|
bl SoundReq
|
|
b _0805427C
|
|
.align 2, 0
|
|
_080540BC: .4byte gUnk_080FD5A8
|
|
_080540C0:
|
|
movs r5, #0
|
|
movs r4, #0x1c
|
|
b _080540CA
|
|
_080540C6:
|
|
adds r4, r1, #1
|
|
adds r5, #1
|
|
_080540CA:
|
|
cmp r5, #3
|
|
bls _080540D0
|
|
b _0805427C
|
|
_080540D0:
|
|
adds r0, r4, #0
|
|
bl GetInventoryValue
|
|
adds r1, r4, #0
|
|
cmp r0, #0
|
|
bne _080540C6
|
|
adds r6, r4, #0
|
|
ldr r0, _08054100 @ =gSave
|
|
adds r0, #0xb6
|
|
adds r1, r5, r0
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _080540EE
|
|
movs r0, #0x20
|
|
strb r0, [r1]
|
|
_080540EE:
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
adds r0, r6, #0
|
|
bl PutItemOnSlot
|
|
b _0805427C
|
|
.align 2, 0
|
|
_08054100: .4byte gSave
|
|
_08054104:
|
|
movs r5, #0
|
|
ldr r0, _08054144 @ =gSave
|
|
adds r2, r0, #0
|
|
adds r2, #0xb6
|
|
ldrb r1, [r2]
|
|
adds r3, r0, #0
|
|
cmp r1, #0x20
|
|
beq _08054126
|
|
adds r1, r2, #0
|
|
_08054116:
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
bls _0805411E
|
|
b _0805427C
|
|
_0805411E:
|
|
adds r0, r5, r1
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x20
|
|
bne _08054116
|
|
_08054126:
|
|
cmp r5, #3
|
|
bls _0805412C
|
|
b _0805427C
|
|
_0805412C:
|
|
adds r0, r3, #0
|
|
adds r0, #0xb6
|
|
adds r0, r5, r0
|
|
strb r6, [r0]
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
ldr r0, _08054148 @ =0x00000109
|
|
bl SoundReq
|
|
b _0805427C
|
|
.align 2, 0
|
|
_08054144: .4byte gSave
|
|
_08054148: .4byte 0x00000109
|
|
_0805414C:
|
|
movs r0, #1
|
|
bl sub_080526F8
|
|
b _0805424E
|
|
_08054154:
|
|
ldr r1, _08054168 @ =gSave
|
|
ldr r0, _0805416C @ =gArea
|
|
ldr r2, _08054170 @ =0x0000046C
|
|
adds r1, r1, r2
|
|
ldrb r0, [r0, #3]
|
|
adds r1, r1, r0
|
|
ldrb r0, [r1]
|
|
ldrb r2, [r4, #2]
|
|
orrs r0, r2
|
|
b _0805427A
|
|
.align 2, 0
|
|
_08054168: .4byte gSave
|
|
_0805416C: .4byte gArea
|
|
_08054170: .4byte 0x0000046C
|
|
_08054174:
|
|
movs r0, #0x72
|
|
bl sub_0801E738
|
|
b _0805427C
|
|
_0805417C:
|
|
cmp r6, #0xb
|
|
bne _0805418A
|
|
movs r0, #0xc
|
|
movs r1, #0
|
|
bl SetInventoryValue
|
|
b _080541B0
|
|
_0805418A:
|
|
movs r0, #0xb
|
|
movs r1, #0
|
|
bl SetInventoryValue
|
|
b _080541B0
|
|
_08054194:
|
|
cmp r6, #7
|
|
bne _080541A2
|
|
movs r0, #8
|
|
movs r1, #0
|
|
bl SetInventoryValue
|
|
b _080541AA
|
|
_080541A2:
|
|
movs r0, #7
|
|
movs r1, #0
|
|
bl SetInventoryValue
|
|
_080541AA:
|
|
movs r0, #0x63
|
|
bl ModBombs
|
|
_080541B0:
|
|
bl LoadItemGfx
|
|
b _0805427C
|
|
_080541B6:
|
|
cmp r5, #0
|
|
bne _080541CA
|
|
movs r0, #7
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
movs r0, #7
|
|
bl PutItemOnSlot
|
|
b _080541E2
|
|
_080541CA:
|
|
ldr r0, _080541EC @ =gSave
|
|
adds r1, r0, #0
|
|
adds r1, #0xae
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _080541E2
|
|
movs r0, #3
|
|
strb r0, [r1]
|
|
_080541E2:
|
|
movs r0, #0x63
|
|
bl ModBombs
|
|
b _0805427C
|
|
.align 2, 0
|
|
_080541EC: .4byte gSave
|
|
_080541F0:
|
|
ldrb r0, [r4, #2]
|
|
bl ModBombs
|
|
b _0805424E
|
|
_080541F8:
|
|
movs r0, #0x66
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _0805420A
|
|
movs r0, #0x66
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
_0805420A:
|
|
movs r0, #0x63
|
|
bl ModArrows
|
|
b _080541B0
|
|
_08054212:
|
|
ldr r0, _08054234 @ =gSave
|
|
adds r1, r0, #0
|
|
adds r1, #0xaf
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _0805422A
|
|
movs r0, #3
|
|
strb r0, [r1]
|
|
_0805422A:
|
|
movs r0, #0x63
|
|
bl ModArrows
|
|
b _0805427C
|
|
.align 2, 0
|
|
_08054234: .4byte gSave
|
|
_08054238:
|
|
ldrb r0, [r4, #2]
|
|
bl ModArrows
|
|
b _0805424E
|
|
_08054240:
|
|
movs r0, #0x3f
|
|
movs r1, #1
|
|
bl SetInventoryValue
|
|
adds r0, r7, #0
|
|
bl ModShells
|
|
_0805424E:
|
|
ldr r0, _08054258 @ =0x00000103
|
|
bl SoundReq
|
|
b _0805427C
|
|
.align 2, 0
|
|
_08054258: .4byte 0x00000103
|
|
_0805425C:
|
|
adds r0, r7, #0
|
|
bl sub_0801E738
|
|
b _0805427C
|
|
_08054264:
|
|
ldr r0, _08054284 @ =gSave
|
|
adds r1, r0, #0
|
|
adds r1, #0xa8
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _0805427C
|
|
movs r0, #3
|
|
_0805427A:
|
|
strb r0, [r1]
|
|
_0805427C:
|
|
mov r0, r8
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08054284: .4byte gSave
|
|
.syntax divided
|