.thumb
.global AlreadyOwnTM
.equ rom, 0x8000000
.equ offset, 0x893960 @CHANGE THIS LINE
.org 0x9BC3C, 0xFF
ldr r1, .Pointer1
bx r1
.Pointer1: .word Main + rom + 1
.org 0x9BC7C, 0xFF
ldr r0, .Pointer2
bx r0
.Pointer2: .word OnlyBuyOne + rom + 1
.org 0x9BEBC, 0xFF
ldr r1, .Pointer3
bx r1
.Pointer3: .word AddItem + rom + 1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
.org offset, 0xFF
Main:
lsr r4, r0, #0x10
mov r0, r4
ldr r2, .GetItemPocket
bl Jump
cmp r0, #0x4
bne Return
mov r0, r4
mov r1, #0x1
ldr r2, .CheckItem
bl Jump
cmp r0, #0x0
bne AlreadyOwn
Return:
mov r0, r4
ldr r1, =0x809BC45
bx r1
AlreadyOwn:
ldr r1, .AlreadyHaveTMString
ldr r2, =0x809BC67
bx r2
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
OnlyBuyOne:
ldr r1, .FCodeBuffer2
mov r0, r4
ldr r2, .ItemID_Copy_Name
bl Jump
mov r0, r4
ldr r2, .GetItemPocket
bl Jump
cmp r0, #0x4
bne Return2
GetPrice:
mov r0, r4
ldr r2, .GetMarketPrice
bl Jump
mov r1, r0
ldr r0, .FCodeBuffer2
add r0, #0x20
mov r2, #0x3
mov r3, #0x8
bl Hex2Dec
ldr r1, .NewYouWantString
ldr r2, =0x809BE91
ldr r3, =0x809BC89
bx r3
Return2:
ldr r1, =0x809BC85
bx r1
Hex2Dec:
ldr r4, =0x8008E79
bx r4
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
AddItem:
ldr r2, .GetItemPocket
bl Jump
cmp r0, #0x4
bne Return3
mov r0, #0x1
strh r1, [r4, #0x2]
Return3:
ldrh r0, [r4, #0xA]
ldrh r1, [r4, #0x2]
ldr r2, .Bag_Add_Item
bl Jump
lsl r0, #0x18
ldr r2, =0x809BEC5
Jump:
bx r2
.align 2
.FCodeBuffer2: .word 0x2021CD0
.GetItemPocket: .word 0x809A9D9
.CheckItem: .word 0x8099F41
.ItemID_Copy_Name: .word 0x8099E91
.GetMarketPrice: .word 0x809A901
.Bag_Add_Item: .word 0x809A085
.AlreadyHaveTMString: .word STRING1 + rom
.NewYouWantString: .word STRING2 + rom
STRING1: .byte 0xD3, 0xE3, 0xE9, 0x00, 0xD5, 0xE0, 0xE6, 0xD9, 0xD5, 0xD8, 0xED, 0x00, 0xE3, 0xEB, 0xE2, 0x00, 0xE8, 0xDC, 0xD5, 0xE8, 0x00, 0xCE, 0xC7, 0xAD, 0xFC, 0x09, 0xFF
STRING2: .byte 0xFD, 0x02, 0xB8, 0xFE, 0xCE, 0xDC, 0xD5, 0xE8, 0x00, 0xEB, 0xDD, 0xE0, 0xE0, 0x00, 0xD6, 0xD9, 0x00, 0xB7, 0xFD, 0x03, 0xAD, 0x00, 0xC9, 0xDF, 0xD5, 0xED, 0xAC, 0xFF