pokefirered/asm/item_menu_icons.s
2017-12-20 01:04:58 -08:00

681 lines
12 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_80984D8
sub_80984D8: @ 80984D8
push {r4,lr}
movs r2, 0
ldr r4, _080984F8 @ =gUnknown_2039878
movs r3, 0xFF
_080984E0:
adds r0, r2, r4
ldrb r1, [r0]
orrs r1, r3
strb r1, [r0]
adds r0, r2, 0x1
lsls r0, 16
lsrs r2, r0, 16
cmp r2, 0xB
bls _080984E0
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080984F8: .4byte gUnknown_2039878
thumb_func_end sub_80984D8
thumb_func_start sub_80984FC
sub_80984FC: @ 80984FC
push {r4,lr}
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r0, _08098520 @ =gUnknown_83D41FC
movs r1, 0x28
movs r2, 0x44
movs r3, 0
bl CreateSprite
ldr r1, _08098524 @ =gUnknown_2039878
strb r0, [r1]
adds r0, r4, 0
bl sub_8098528
pop {r4}
pop {r0}
bx r0
.align 2, 0
_08098520: .4byte gUnknown_83D41FC
_08098524: .4byte gUnknown_2039878
thumb_func_end sub_80984FC
thumb_func_start sub_8098528
sub_8098528: @ 8098528
push {lr}
adds r1, r0, 0
lsls r1, 24
lsrs r1, 24
ldr r0, _08098550 @ =gUnknown_2039878
ldrb r2, [r0]
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
ldr r2, _08098554 @ =gSprites
adds r0, r2
ldr r2, _08098558 @ =0x0000fffb
strh r2, [r0, 0x26]
ldr r2, _0809855C @ =sub_8098560
str r2, [r0, 0x1C]
bl StartSpriteAnim
pop {r0}
bx r0
.align 2, 0
_08098550: .4byte gUnknown_2039878
_08098554: .4byte gSprites
_08098558: .4byte 0x0000fffb
_0809855C: .4byte sub_8098560
thumb_func_end sub_8098528
thumb_func_start sub_8098560
sub_8098560: @ 8098560
push {lr}
adds r1, r0, 0
ldrh r2, [r1, 0x26]
movs r3, 0x26
ldrsh r0, [r1, r3]
cmp r0, 0
beq _08098574
adds r0, r2, 0x1
strh r0, [r1, 0x26]
b _08098578
_08098574:
ldr r0, _0809857C @ =SpriteCallbackDummy
str r0, [r1, 0x1C]
_08098578:
pop {r0}
bx r0
.align 2, 0
_0809857C: .4byte SpriteCallbackDummy
thumb_func_end sub_8098560
thumb_func_start sub_8098580
sub_8098580: @ 8098580
push {r4,lr}
ldr r0, _080985B0 @ =gUnknown_2039878
ldrb r1, [r0]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _080985B4 @ =gSprites
adds r4, r0, r1
adds r0, r4, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080985AA
adds r0, r4, 0
movs r1, 0x1
bl StartSpriteAffineAnim
ldr r0, _080985B8 @ =sub_80985BC
str r0, [r4, 0x1C]
_080985AA:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080985B0: .4byte gUnknown_2039878
_080985B4: .4byte gSprites
_080985B8: .4byte sub_80985BC
thumb_func_end sub_8098580
thumb_func_start sub_80985BC
sub_80985BC: @ 80985BC
push {r4,lr}
adds r4, r0, 0
adds r0, 0x3F
ldrb r1, [r0]
movs r0, 0x20
ands r0, r1
cmp r0, 0
beq _080985D8
adds r0, r4, 0
movs r1, 0
bl StartSpriteAffineAnim
ldr r0, _080985E0 @ =SpriteCallbackDummy
str r0, [r4, 0x1C]
_080985D8:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_080985E0: .4byte SpriteCallbackDummy
thumb_func_end sub_80985BC
thumb_func_start sub_80985E4
sub_80985E4: @ 80985E4
push {r4-r7,lr}
ldr r7, _08098620 @ =gUnknown_2039879
movs r5, 0
ldr r6, _08098624 @ =gSprites
_080985EC:
lsls r1, r5, 20
movs r0, 0xC0
lsls r0, 15
adds r1, r0
asrs r1, 16
ldr r0, _08098628 @ =gUnknown_83D4250
movs r2, 0x7
movs r3, 0
bl CreateSprite
adds r1, r7, r5
strb r0, [r1]
adds r4, r1, 0
cmp r5, 0
beq _0809863C
cmp r5, 0x8
bne _0809862C
ldrb r1, [r7, 0x8]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x2
bl StartSpriteAnim
b _0809863C
.align 2, 0
_08098620: .4byte gUnknown_2039879
_08098624: .4byte gSprites
_08098628: .4byte gUnknown_83D4250
_0809862C:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
movs r1, 0x1
bl StartSpriteAnim
_0809863C:
ldrb r1, [r4]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r6
adds r0, 0x3E
ldrb r1, [r0]
movs r2, 0x4
orrs r1, r2
strb r1, [r0]
adds r0, r5, 0x1
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0x8
bls _080985EC
pop {r4-r7}
pop {r0}
bx r0
thumb_func_end sub_80985E4
thumb_func_start sub_8098660
sub_8098660: @ 8098660
push {r4-r7,lr}
lsls r0, 24
lsrs r0, 24
ldr r7, _080986A0 @ =gUnknown_2039879
movs r3, 0
ldr r6, _080986A4 @ =gSprites
movs r1, 0x1
ands r0, r1
lsls r4, r0, 2
movs r5, 0x5
negs r5, r5
_08098676:
adds r0, r7, r3
ldrb r0, [r0]
lsls r1, r0, 4
adds r1, r0
lsls r1, 2
adds r1, r6
adds r1, 0x3E
ldrb r2, [r1]
adds r0, r5, 0
ands r0, r2
orrs r0, r4
strb r0, [r1]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x8
bls _08098676
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080986A0: .4byte gUnknown_2039879
_080986A4: .4byte gSprites
thumb_func_end sub_8098660
thumb_func_start sub_80986A8
sub_80986A8: @ 80986A8
push {r4-r7,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r1, 16
ldr r7, _080986E4 @ =gUnknown_2039879
movs r3, 0
ldr r4, _080986E8 @ =gSprites
adds r5, r1, 0x7
_080986BA:
adds r2, r7, r3
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r6, [r0, 0x24]
ldrb r1, [r2]
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
adds r0, r4
strh r5, [r0, 0x22]
adds r0, r3, 0x1
lsls r0, 24
lsrs r3, r0, 24
cmp r3, 0x8
bls _080986BA
pop {r4-r7}
pop {r0}
bx r0
.align 2, 0
_080986E4: .4byte gUnknown_2039879
_080986E8: .4byte gSprites
thumb_func_end sub_80986A8
thumb_func_start sub_80986EC
sub_80986EC: @ 80986EC
push {r4,r5,lr}
ldr r5, _08098714 @ =gUnknown_2039884
movs r0, 0x90
lsls r0, 1
bl Alloc
str r0, [r5]
cmp r0, 0
beq _08098722
ldr r4, _08098718 @ =gUnknown_2039888
movs r0, 0x80
lsls r0, 2
bl AllocZeroed
str r0, [r4]
cmp r0, 0
beq _0809871C
movs r0, 0x1
b _08098724
.align 2, 0
_08098714: .4byte gUnknown_2039884
_08098718: .4byte gUnknown_2039888
_0809871C:
ldr r0, [r5]
bl Free
_08098722:
movs r0, 0
_08098724:
pop {r4,r5}
pop {r1}
bx r1
thumb_func_end sub_80986EC
thumb_func_start CopyItemIconPicTo4x4Buffer
CopyItemIconPicTo4x4Buffer: @ 809872C
push {r4-r6,lr}
adds r6, r0, 0
adds r5, r1, 0
movs r4, 0
_08098734:
lsls r0, r4, 1
adds r0, r4
lsls r0, 5
adds r0, r6, r0
lsls r1, r4, 7
adds r1, r5, r1
movs r2, 0x30
bl CpuSet
adds r0, r4, 0x1
lsls r0, 24
lsrs r4, r0, 24
cmp r4, 0x2
bls _08098734
pop {r4-r6}
pop {r0}
bx r0
thumb_func_end CopyItemIconPicTo4x4Buffer
thumb_func_start AddItemIconObject
AddItemIconObject: @ 8098758
push {r4-r7,lr}
sub sp, 0x28
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 16
lsrs r5, r1, 16
lsls r2, 16
lsrs r7, r2, 16
bl sub_80986EC
lsls r0, 24
cmp r0, 0
beq _08098810
adds r0, r7, 0
movs r1, 0
bl sub_8098974
ldr r2, _080987FC @ =gUnknown_2039884
ldr r1, [r2]
bl LZDecompressWram
ldr r1, _080987FC @ =gUnknown_2039884
ldr r0, [r1]
ldr r2, _08098800 @ =gUnknown_2039888
ldr r1, [r2]
bl CopyItemIconPicTo4x4Buffer
ldr r1, _08098800 @ =gUnknown_2039888
ldr r0, [r1]
str r0, [sp, 0x18]
ldr r4, _08098804 @ =0xffff0000
add r0, sp, 0x18
ldr r1, [r0, 0x4]
ands r1, r4
movs r2, 0x80
lsls r2, 2
orrs r1, r2
lsls r3, r6, 16
ldr r2, _08098808 @ =0x0000ffff
ands r1, r2
orrs r1, r3
str r1, [r0, 0x4]
bl LoadSpriteSheet
adds r0, r7, 0
movs r1, 0x1
bl sub_8098974
str r0, [sp, 0x20]
add r0, sp, 0x20
ldr r1, [r0, 0x4]
ands r1, r4
orrs r1, r5
str r1, [r0, 0x4]
bl LoadCompressedObjectPalette
ldr r0, _0809880C @ =gUnknown_83D427C
mov r1, sp
movs r2, 0xC
bl CpuSet
mov r0, sp
strh r6, [r0]
strh r5, [r0, 0x2]
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r2, _080987FC @ =gUnknown_2039884
ldr r0, [r2]
bl Free
ldr r1, _08098800 @ =gUnknown_2039888
ldr r0, [r1]
bl Free
adds r0, r4, 0
b _08098812
.align 2, 0
_080987FC: .4byte gUnknown_2039884
_08098800: .4byte gUnknown_2039888
_08098804: .4byte 0xffff0000
_08098808: .4byte 0x0000ffff
_0809880C: .4byte gUnknown_83D427C
_08098810:
movs r0, 0x40
_08098812:
add sp, 0x28
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end AddItemIconObject
thumb_func_start AddItemIconObjectWithCustomObjectTemplate
AddItemIconObjectWithCustomObjectTemplate: @ 809881C
push {r4-r7,lr}
mov r7, r8
push {r7}
sub sp, 0x28
mov r8, r0
lsls r1, 16
lsrs r6, r1, 16
lsls r2, 16
lsrs r5, r2, 16
lsls r3, 16
lsrs r7, r3, 16
bl sub_80986EC
lsls r0, 24
cmp r0, 0
beq _080988D8
adds r0, r7, 0
movs r1, 0
bl sub_8098974
ldr r2, _080988C8 @ =gUnknown_2039884
ldr r1, [r2]
bl LZDecompressWram
ldr r1, _080988C8 @ =gUnknown_2039884
ldr r0, [r1]
ldr r2, _080988CC @ =gUnknown_2039888
ldr r1, [r2]
bl CopyItemIconPicTo4x4Buffer
ldr r1, _080988CC @ =gUnknown_2039888
ldr r0, [r1]
str r0, [sp, 0x18]
ldr r4, _080988D0 @ =0xffff0000
add r0, sp, 0x18
ldr r1, [r0, 0x4]
ands r1, r4
movs r2, 0x80
lsls r2, 2
orrs r1, r2
lsls r3, r6, 16
ldr r2, _080988D4 @ =0x0000ffff
ands r1, r2
orrs r1, r3
str r1, [r0, 0x4]
bl LoadSpriteSheet
adds r0, r7, 0
movs r1, 0x1
bl sub_8098974
str r0, [sp, 0x20]
add r0, sp, 0x20
ldr r1, [r0, 0x4]
ands r1, r4
orrs r1, r5
str r1, [r0, 0x4]
bl LoadCompressedObjectPalette
mov r0, r8
mov r1, sp
movs r2, 0xC
bl CpuSet
mov r0, sp
strh r6, [r0]
strh r5, [r0, 0x2]
movs r1, 0
movs r2, 0
movs r3, 0
bl CreateSprite
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
ldr r2, _080988C8 @ =gUnknown_2039884
ldr r0, [r2]
bl Free
ldr r1, _080988CC @ =gUnknown_2039888
ldr r0, [r1]
bl Free
adds r0, r4, 0
b _080988DA
.align 2, 0
_080988C8: .4byte gUnknown_2039884
_080988CC: .4byte gUnknown_2039888
_080988D0: .4byte 0xffff0000
_080988D4: .4byte 0x0000ffff
_080988D8:
movs r0, 0x40
_080988DA:
add sp, 0x28
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
thumb_func_end AddItemIconObjectWithCustomObjectTemplate
thumb_func_start sub_80988E8
sub_80988E8: @ 80988E8
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
ldr r0, _08098938 @ =gUnknown_2039882
adds r5, r1, r0
ldrb r0, [r5]
cmp r0, 0xFF
bne _08098932
adds r4, r1, 0
adds r4, 0x66
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
bl AddItemIconObject
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _08098932
strb r2, [r5]
ldr r1, _0809893C @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x18
strh r1, [r0, 0x24]
movs r1, 0x8C
strh r1, [r0, 0x26]
_08098932:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_08098938: .4byte gUnknown_2039882
_0809893C: .4byte gSprites
thumb_func_end sub_80988E8
thumb_func_start sub_8098940
sub_8098940: @ 8098940
push {r4,lr}
lsls r0, 24
lsrs r0, 24
ldr r1, _0809896C @ =gUnknown_2039882
adds r4, r0, r1
ldrb r0, [r4]
cmp r0, 0xFF
beq _08098964
adds r1, r0, 0
lsls r0, r1, 4
adds r0, r1
lsls r0, 2
ldr r1, _08098970 @ =gSprites
adds r0, r1
bl DestroySpriteAndFreeResources
movs r0, 0xFF
strb r0, [r4]
_08098964:
pop {r4}
pop {r0}
bx r0
.align 2, 0
_0809896C: .4byte gUnknown_2039882
_08098970: .4byte gSprites
thumb_func_end sub_8098940
thumb_func_start sub_8098974
sub_8098974: @ 8098974
push {lr}
lsls r0, 16
lsrs r3, r0, 16
lsls r1, 24
lsrs r1, 24
ldr r0, _08098998 @ =0x00000177
cmp r3, r0
bls _08098986
movs r3, 0
_08098986:
ldr r2, _0809899C @ =gUnknown_83D4294
lsls r0, r1, 2
lsls r1, r3, 3
adds r0, r1
adds r0, r2
ldr r0, [r0]
pop {r1}
bx r1
.align 2, 0
_08098998: .4byte 0x00000177
_0809899C: .4byte gUnknown_83D4294
thumb_func_end sub_8098974
thumb_func_start sub_80989A0
sub_80989A0: @ 80989A0
push {r4-r6,lr}
lsls r0, 16
lsrs r6, r0, 16
lsls r1, 24
lsrs r1, 24
ldr r0, _080989F0 @ =gUnknown_2039882
adds r5, r1, r0
ldrb r0, [r5]
cmp r0, 0xFF
bne _080989EA
adds r4, r1, 0
adds r4, 0x66
adds r0, r4, 0
bl FreeSpriteTilesByTag
adds r0, r4, 0
bl FreeSpritePaletteByTag
adds r0, r4, 0
adds r1, r4, 0
adds r2, r6, 0
bl AddItemIconObject
lsls r0, 24
lsrs r2, r0, 24
cmp r2, 0x40
beq _080989EA
strb r2, [r5]
ldr r1, _080989F4 @ =gSprites
lsls r0, r2, 4
adds r0, r2
lsls r0, 2
adds r0, r1
movs r1, 0x18
strh r1, [r0, 0x24]
movs r1, 0x93
strh r1, [r0, 0x26]
_080989EA:
pop {r4-r6}
pop {r0}
bx r0
.align 2, 0
_080989F0: .4byte gUnknown_2039882
_080989F4: .4byte gSprites
thumb_func_end sub_80989A0
.align 2, 0 @ Don't pad with nop.