through PrintSafariMonInfo
This commit is contained in:
@@ -5,750 +5,6 @@
|
||||
|
||||
.text
|
||||
|
||||
thumb_func_start UpdateHpTextInHealthbox
|
||||
UpdateHpTextInHealthbox: @ 8048440
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x30
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
lsls r1, 16
|
||||
lsrs r1, 16
|
||||
mov r10, r1
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r8, r2
|
||||
ldr r1, _080484B4 @ =gSprites
|
||||
lsls r0, 4
|
||||
add r0, r9
|
||||
lsls r0, 2
|
||||
adds r4, r0, r1
|
||||
ldrh r0, [r4, 0x3A]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetBattlerSide
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08048514
|
||||
bl IsDoubleBattle
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08048514
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
beq _080484BC
|
||||
mov r2, r10
|
||||
lsls r1, r2, 16
|
||||
asrs r1, 16
|
||||
add r0, sp, 0x10
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
add r3, sp, 0x2C
|
||||
add r0, sp, 0x10
|
||||
movs r1, 0
|
||||
movs r2, 0x5
|
||||
bl AddTextPrinterAndCreateWindowOnHealthbox
|
||||
adds r5, r0, 0
|
||||
ldrh r0, [r4, 0x4]
|
||||
lsls r0, 22
|
||||
lsrs r0, 17
|
||||
ldr r1, _080484B8 @ =0x06010a40
|
||||
adds r0, r1
|
||||
adds r1, r5, 0
|
||||
b _080484FE
|
||||
.align 2, 0
|
||||
_080484B4: .4byte gSprites
|
||||
_080484B8: .4byte 0x06010a40
|
||||
_080484BC:
|
||||
mov r2, r10
|
||||
lsls r1, r2, 16
|
||||
asrs r1, 16
|
||||
add r0, sp, 0x10
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
movs r1, 0xBA
|
||||
strb r1, [r0]
|
||||
movs r1, 0xFF
|
||||
strb r1, [r0, 0x1]
|
||||
add r3, sp, 0x2C
|
||||
add r0, sp, 0x10
|
||||
movs r1, 0x4
|
||||
movs r2, 0x5
|
||||
bl AddTextPrinterAndCreateWindowOnHealthbox
|
||||
adds r5, r0, 0
|
||||
ldrh r4, [r4, 0x4]
|
||||
lsls r4, 22
|
||||
lsrs r4, 17
|
||||
ldr r1, _0804850C @ =0x060102e0
|
||||
adds r0, r4, r1
|
||||
adds r1, r5, 0
|
||||
movs r2, 0x1
|
||||
bl TextIntoHealthboxObject
|
||||
ldr r2, _08048510 @ =0x06010a00
|
||||
adds r4, r2
|
||||
adds r1, r5, 0
|
||||
adds r1, 0x20
|
||||
adds r0, r4, 0
|
||||
_080484FE:
|
||||
movs r2, 0x2
|
||||
bl TextIntoHealthboxObject
|
||||
ldr r0, [sp, 0x2C]
|
||||
bl RemoveWindowOnHealthbox
|
||||
b _080485F8
|
||||
.align 2, 0
|
||||
_0804850C: .4byte 0x060102e0
|
||||
_08048510: .4byte 0x06010a00
|
||||
_08048514:
|
||||
add r5, sp, 0x18
|
||||
ldr r1, _0804855C @ =gUnknown_826052C
|
||||
adds r0, r5, 0
|
||||
movs r2, 0x14
|
||||
bl memcpy
|
||||
ldr r1, _08048560 @ =gSprites
|
||||
mov r0, r9
|
||||
lsls r4, r0, 4
|
||||
adds r0, r4, r0
|
||||
lsls r0, 2
|
||||
adds r7, r0, r1
|
||||
ldrh r0, [r7, 0x3A]
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
bl IsDoubleBattle
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
beq _0804854C
|
||||
adds r0, r6, 0
|
||||
bl GetBattlerSide
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x1
|
||||
bne _08048564
|
||||
_0804854C:
|
||||
mov r2, r10
|
||||
lsls r1, r2, 16
|
||||
asrs r1, 16
|
||||
mov r0, r9
|
||||
mov r2, r8
|
||||
bl UpdateHpTextInHealthboxInDoubles
|
||||
b _080485F8
|
||||
.align 2, 0
|
||||
_0804855C: .4byte gUnknown_826052C
|
||||
_08048560: .4byte gSprites
|
||||
_08048564:
|
||||
ldrh r0, [r7, 0x3A]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetBattlerSide
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _08048580
|
||||
movs r6, 0x59
|
||||
mov r0, r8
|
||||
cmp r0, 0
|
||||
bne _0804858A
|
||||
movs r6, 0x1D
|
||||
b _0804858A
|
||||
_08048580:
|
||||
movs r6, 0x30
|
||||
mov r1, r8
|
||||
cmp r1, 0
|
||||
bne _0804858A
|
||||
movs r6, 0x14
|
||||
_0804858A:
|
||||
mov r0, sp
|
||||
adds r0, 0x1E
|
||||
mov r2, r10
|
||||
lsls r1, r2, 16
|
||||
asrs r1, 16
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
ldr r0, _08048608 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
str r1, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
adds r2, r5, 0
|
||||
movs r3, 0
|
||||
bl RenderTextFont9
|
||||
movs r5, 0
|
||||
ldr r1, _0804860C @ =gSprites
|
||||
mov r2, r9
|
||||
adds r0, r4, r2
|
||||
lsls r0, 2
|
||||
adds r4, r0, r1
|
||||
_080485C6:
|
||||
ldr r0, _08048608 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
lsls r1, r5, 6
|
||||
adds r1, 0x20
|
||||
ldr r0, [r0]
|
||||
adds r0, r1
|
||||
ldrh r1, [r4, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 22
|
||||
adds r1, r6
|
||||
adds r1, r5
|
||||
lsls r1, 5
|
||||
ldr r2, _08048610 @ =0x06010000
|
||||
adds r1, r2
|
||||
ldr r2, _08048614 @ =0x04000008
|
||||
bl CpuSet
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
cmp r5, 0x2
|
||||
bls _080485C6
|
||||
_080485F8:
|
||||
add sp, 0x30
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08048608: .4byte gMonSpritesGfxPtr
|
||||
_0804860C: .4byte gSprites
|
||||
_08048610: .4byte 0x06010000
|
||||
_08048614: .4byte 0x04000008
|
||||
thumb_func_end UpdateHpTextInHealthbox
|
||||
|
||||
thumb_func_start UpdateHpTextInHealthboxInDoubles
|
||||
UpdateHpTextInHealthboxInDoubles: @ 8048618
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x28
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r9, r0
|
||||
lsls r1, 16
|
||||
lsrs r4, r1, 16
|
||||
lsls r2, 24
|
||||
lsrs r2, 24
|
||||
mov r8, r2
|
||||
ldr r1, _080486F8 @ =gUnknown_8260542
|
||||
add r0, sp, 0x10
|
||||
movs r2, 0x14
|
||||
bl memcpy
|
||||
ldr r5, _080486FC @ =gSprites
|
||||
mov r1, r9
|
||||
lsls r0, r1, 4
|
||||
add r0, r9
|
||||
lsls r0, 2
|
||||
adds r2, r0, r5
|
||||
ldrh r0, [r2, 0x3A]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
mov r10, r0
|
||||
ldr r0, _08048700 @ =gBattleSpritesDataPtr
|
||||
ldr r0, [r0]
|
||||
ldr r1, [r0]
|
||||
mov r3, r10
|
||||
lsls r0, r3, 2
|
||||
adds r0, r1
|
||||
ldrb r1, [r0]
|
||||
movs r0, 0x10
|
||||
ands r0, r1
|
||||
cmp r0, 0
|
||||
bne _0804866A
|
||||
b _080487DC
|
||||
_0804866A:
|
||||
movs r6, 0x4
|
||||
mov r1, r8
|
||||
negs r0, r1
|
||||
orrs r0, r1
|
||||
asrs r0, 31
|
||||
ands r6, r0
|
||||
ldrh r0, [r2, 0x38]
|
||||
lsls r0, 24
|
||||
lsrs r7, r0, 24
|
||||
mov r0, sp
|
||||
adds r0, 0x16
|
||||
lsls r1, r4, 16
|
||||
asrs r1, 16
|
||||
movs r2, 0x1
|
||||
movs r3, 0x3
|
||||
bl ConvertIntToDecimalStringN
|
||||
mov r2, r8
|
||||
cmp r2, 0
|
||||
bne _08048698
|
||||
ldr r1, _08048704 @ =gUnknown_8260540
|
||||
bl StringCopy
|
||||
_08048698:
|
||||
ldr r0, _08048708 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r3, 0xBA
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
movs r1, 0
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
str r1, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
add r2, sp, 0x10
|
||||
movs r3, 0
|
||||
bl RenderTextFont9
|
||||
adds r4, r6, 0
|
||||
adds r0, r4, 0x3
|
||||
cmp r4, r0
|
||||
bge _08048748
|
||||
lsls r0, r7, 4
|
||||
adds r0, r7
|
||||
lsls r0, 2
|
||||
adds r5, r0, r5
|
||||
_080486C6:
|
||||
cmp r4, 0x2
|
||||
bhi _08048714
|
||||
ldr r0, _08048708 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
subs r1, r4, r6
|
||||
lsls r1, 6
|
||||
adds r1, 0x20
|
||||
ldr r0, [r0]
|
||||
adds r0, r1
|
||||
ldrh r1, [r5, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 22
|
||||
adds r4, 0x1
|
||||
adds r1, r4
|
||||
lsls r1, 5
|
||||
ldr r2, _0804870C @ =0x06010000
|
||||
adds r1, r2
|
||||
ldr r2, _08048710 @ =0x04000008
|
||||
bl CpuSet
|
||||
b _0804873E
|
||||
.align 2, 0
|
||||
_080486F8: .4byte gUnknown_8260542
|
||||
_080486FC: .4byte gSprites
|
||||
_08048700: .4byte gBattleSpritesDataPtr
|
||||
_08048704: .4byte gUnknown_8260540
|
||||
_08048708: .4byte gMonSpritesGfxPtr
|
||||
_0804870C: .4byte 0x06010000
|
||||
_08048710: .4byte 0x04000008
|
||||
_08048714:
|
||||
ldr r0, _08048790 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r3, 0xBA
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
subs r1, r4, r6
|
||||
lsls r1, 6
|
||||
adds r1, 0x20
|
||||
ldr r0, [r0]
|
||||
adds r0, r1
|
||||
ldrh r1, [r5, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 22
|
||||
adds r1, r4, r1
|
||||
lsls r1, 5
|
||||
ldr r2, _08048794 @ =0x06010020
|
||||
adds r1, r2
|
||||
ldr r2, _08048798 @ =0x04000008
|
||||
bl CpuSet
|
||||
adds r4, 0x1
|
||||
_0804873E:
|
||||
lsls r0, r4, 24
|
||||
lsrs r4, r0, 24
|
||||
adds r0, r6, 0x3
|
||||
cmp r4, r0
|
||||
blt _080486C6
|
||||
_08048748:
|
||||
mov r3, r8
|
||||
cmp r3, 0
|
||||
bne _080487A8
|
||||
ldr r0, _08048790 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r0]
|
||||
movs r1, 0xBA
|
||||
lsls r1, 1
|
||||
adds r0, r1
|
||||
ldr r0, [r0]
|
||||
adds r0, 0xE0
|
||||
ldr r1, _0804879C @ =gSprites
|
||||
lsls r4, r7, 4
|
||||
adds r4, r7
|
||||
lsls r4, 2
|
||||
adds r4, r1
|
||||
ldrh r1, [r4, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 17
|
||||
adds r1, 0x80
|
||||
ldr r5, _080487A0 @ =0x06010000
|
||||
adds r1, r5
|
||||
ldr r2, _08048798 @ =0x04000008
|
||||
bl CpuSet
|
||||
mov r2, r8
|
||||
str r2, [sp, 0x24]
|
||||
add r0, sp, 0x24
|
||||
ldrh r1, [r4, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 17
|
||||
adds r1, r5
|
||||
ldr r2, _080487A4 @ =0x05000008
|
||||
bl CpuSet
|
||||
b _080487DC
|
||||
.align 2, 0
|
||||
_08048790: .4byte gMonSpritesGfxPtr
|
||||
_08048794: .4byte 0x06010020
|
||||
_08048798: .4byte 0x04000008
|
||||
_0804879C: .4byte gSprites
|
||||
_080487A0: .4byte 0x06010000
|
||||
_080487A4: .4byte 0x05000008
|
||||
_080487A8:
|
||||
mov r0, r10
|
||||
bl GetBattlerSide
|
||||
lsls r0, 24
|
||||
cmp r0, 0
|
||||
bne _080487DC
|
||||
movs r0, 0x74
|
||||
bl GetHealthboxElementGfxPtr
|
||||
ldr r2, _080487EC @ =gSprites
|
||||
mov r3, r9
|
||||
lsls r1, r3, 4
|
||||
add r1, r9
|
||||
lsls r1, 2
|
||||
adds r1, r2
|
||||
ldrh r1, [r1, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 17
|
||||
movs r2, 0xD0
|
||||
lsls r2, 3
|
||||
adds r1, r2
|
||||
ldr r2, _080487F0 @ =0x06010000
|
||||
adds r1, r2
|
||||
ldr r2, _080487F4 @ =0x04000008
|
||||
bl CpuSet
|
||||
_080487DC:
|
||||
add sp, 0x28
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_080487EC: .4byte gSprites
|
||||
_080487F0: .4byte 0x06010000
|
||||
_080487F4: .4byte 0x04000008
|
||||
thumb_func_end UpdateHpTextInHealthboxInDoubles
|
||||
|
||||
thumb_func_start PrintSafariMonInfo
|
||||
PrintSafariMonInfo: @ 80487F8
|
||||
push {r4-r7,lr}
|
||||
mov r7, r10
|
||||
mov r6, r9
|
||||
mov r5, r8
|
||||
push {r5-r7}
|
||||
sub sp, 0x30
|
||||
adds r4, r1, 0
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
str r0, [sp, 0x24]
|
||||
ldr r1, _080488AC @ =gUnknown_826052C
|
||||
add r0, sp, 0x10
|
||||
movs r2, 0x14
|
||||
bl memcpy
|
||||
ldr r1, _080488B0 @ =gSprites
|
||||
ldr r2, [sp, 0x24]
|
||||
lsls r0, r2, 4
|
||||
adds r0, r2
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
ldrh r0, [r0, 0x3A]
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
bl GetBattlerPosition
|
||||
ldr r1, _080488B4 @ =gMonSpritesGfxPtr
|
||||
ldr r2, [r1]
|
||||
movs r3, 0xBA
|
||||
lsls r3, 1
|
||||
adds r2, r3
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
lsls r1, r0, 1
|
||||
adds r1, r0
|
||||
lsls r1, 7
|
||||
movs r0, 0xA4
|
||||
lsls r0, 3
|
||||
adds r1, r0
|
||||
ldr r0, [r2]
|
||||
adds r6, r0, r1
|
||||
movs r1, 0x5
|
||||
mov r8, r1
|
||||
adds r0, r4, 0
|
||||
bl GetNature
|
||||
lsls r0, 24
|
||||
mov r4, sp
|
||||
adds r4, 0x16
|
||||
ldr r1, _080488B8 @ =gNatureNames
|
||||
lsrs r0, 22
|
||||
adds r0, r1
|
||||
ldr r1, [r0]
|
||||
adds r0, r4, 0
|
||||
bl StringCopy
|
||||
movs r0, 0
|
||||
str r0, [sp]
|
||||
str r0, [sp, 0x4]
|
||||
str r0, [sp, 0x8]
|
||||
str r0, [sp, 0xC]
|
||||
adds r0, r6, 0
|
||||
movs r1, 0
|
||||
add r2, sp, 0x10
|
||||
movs r3, 0
|
||||
bl RenderTextFont9
|
||||
movs r7, 0x6
|
||||
movs r5, 0
|
||||
mov r2, sp
|
||||
adds r2, 0x19
|
||||
str r2, [sp, 0x28]
|
||||
_08048888:
|
||||
mov r0, sp
|
||||
adds r0, r7
|
||||
adds r0, 0x10
|
||||
ldrb r1, [r0]
|
||||
adds r0, r1, 0
|
||||
subs r0, 0x37
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x13
|
||||
bls _080488A8
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x79
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x13
|
||||
bhi _080488BC
|
||||
_080488A8:
|
||||
movs r0, 0x2C
|
||||
b _080488DA
|
||||
.align 2, 0
|
||||
_080488AC: .4byte gUnknown_826052C
|
||||
_080488B0: .4byte gSprites
|
||||
_080488B4: .4byte gMonSpritesGfxPtr
|
||||
_080488B8: .4byte gNatureNames
|
||||
_080488BC:
|
||||
adds r0, r1, 0
|
||||
subs r0, 0x4B
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x4
|
||||
bls _080488D4
|
||||
adds r0, r1, 0
|
||||
adds r0, 0x65
|
||||
lsls r0, 24
|
||||
lsrs r0, 24
|
||||
cmp r0, 0x4
|
||||
bhi _080488D8
|
||||
_080488D4:
|
||||
movs r0, 0x2D
|
||||
b _080488DA
|
||||
_080488D8:
|
||||
movs r0, 0x2B
|
||||
_080488DA:
|
||||
bl GetHealthboxElementGfxPtr
|
||||
lsls r1, r5, 6
|
||||
adds r1, r6, r1
|
||||
ldr r2, _080489F8 @ =0x04000008
|
||||
bl CpuSet
|
||||
adds r0, r5, 0x1
|
||||
lsls r0, 24
|
||||
lsrs r5, r0, 24
|
||||
adds r7, 0x1
|
||||
cmp r5, r8
|
||||
bcc _08048888
|
||||
movs r7, 0x1
|
||||
ldr r3, [sp, 0x24]
|
||||
lsls r3, 4
|
||||
str r3, [sp, 0x2C]
|
||||
movs r0, 0x1
|
||||
add r0, r8
|
||||
mov r9, r0
|
||||
cmp r7, r9
|
||||
bge _08048966
|
||||
ldr r1, _080489FC @ =gSprites
|
||||
ldr r2, _080489F8 @ =0x04000008
|
||||
mov r10, r2
|
||||
ldr r2, [sp, 0x24]
|
||||
adds r0, r3, r2
|
||||
lsls r0, 2
|
||||
adds r0, r1
|
||||
mov r8, r0
|
||||
_08048916:
|
||||
mov r3, r8
|
||||
ldrh r0, [r3, 0x4]
|
||||
lsls r0, 22
|
||||
lsrs r0, 22
|
||||
adds r5, r7, 0
|
||||
cmp r7, 0
|
||||
bge _08048926
|
||||
adds r5, r7, 0x7
|
||||
_08048926:
|
||||
asrs r5, 3
|
||||
lsls r4, r5, 3
|
||||
subs r4, r7, r4
|
||||
adds r0, r4
|
||||
lsls r5, 6
|
||||
adds r0, r5
|
||||
lsls r0, 5
|
||||
ldr r2, _08048A00 @ =0x06010000
|
||||
adds r1, r0, r2
|
||||
adds r0, r6, 0
|
||||
mov r2, r10
|
||||
bl CpuSet
|
||||
adds r6, 0x20
|
||||
mov r3, r8
|
||||
ldrh r0, [r3, 0x4]
|
||||
lsls r0, 22
|
||||
lsrs r0, 22
|
||||
adds r4, 0x8
|
||||
adds r0, r4
|
||||
adds r0, r5
|
||||
lsls r0, 5
|
||||
ldr r2, _08048A00 @ =0x06010000
|
||||
adds r1, r0, r2
|
||||
adds r0, r6, 0
|
||||
mov r2, r10
|
||||
bl CpuSet
|
||||
adds r6, 0x20
|
||||
adds r7, 0x1
|
||||
cmp r7, r9
|
||||
blt _08048916
|
||||
_08048966:
|
||||
ldr r6, _080489FC @ =gSprites
|
||||
ldr r3, [sp, 0x2C]
|
||||
ldr r1, [sp, 0x24]
|
||||
adds r0, r3, r1
|
||||
lsls r0, 2
|
||||
adds r0, r6
|
||||
ldrh r4, [r0, 0x38]
|
||||
lsls r4, 24
|
||||
lsrs r4, 24
|
||||
ldr r5, _08048A04 @ =gBattleStruct
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x7C
|
||||
ldrb r1, [r0]
|
||||
mov r0, sp
|
||||
adds r0, 0x16
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl ConvertIntToDecimalStringN
|
||||
ldr r0, [r5]
|
||||
adds r0, 0x7B
|
||||
ldrb r1, [r0]
|
||||
ldr r0, [sp, 0x28]
|
||||
movs r2, 0x1
|
||||
movs r3, 0x2
|
||||
bl ConvertIntToDecimalStringN
|
||||
add r0, sp, 0x10
|
||||
movs r1, 0
|
||||
strb r1, [r0, 0x5]
|
||||
adds r2, r0, 0
|
||||
movs r0, 0xBA
|
||||
strb r0, [r2, 0x8]
|
||||
ldr r5, _08048A08 @ =gMonSpritesGfxPtr
|
||||
ldr r0, [r5]
|
||||
movs r2, 0xBA
|
||||
lsls r2, 1
|
||||
adds r0, r2
|
||||
ldr r0, [r0]
|
||||
str r1, [sp]
|
||||
str r1, [sp, 0x4]
|
||||
str r1, [sp, 0x8]
|
||||
str r1, [sp, 0xC]
|
||||
add r2, sp, 0x10
|
||||
movs r3, 0
|
||||
bl RenderTextFont9
|
||||
movs r7, 0
|
||||
lsls r0, r4, 4
|
||||
adds r0, r4
|
||||
lsls r0, 2
|
||||
adds r6, r0, r6
|
||||
movs r4, 0x20
|
||||
_080489D0:
|
||||
cmp r7, 0x1
|
||||
bgt _08048A0C
|
||||
ldr r0, [r5]
|
||||
movs r3, 0xBA
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
adds r0, r4
|
||||
ldrh r1, [r6, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 22
|
||||
adds r2, r7, 0x2
|
||||
adds r1, r2
|
||||
lsls r1, 5
|
||||
ldr r2, _08048A00 @ =0x06010000
|
||||
adds r1, r2
|
||||
ldr r2, _080489F8 @ =0x04000008
|
||||
bl CpuSet
|
||||
b _08048A2C
|
||||
.align 2, 0
|
||||
_080489F8: .4byte 0x04000008
|
||||
_080489FC: .4byte gSprites
|
||||
_08048A00: .4byte 0x06010000
|
||||
_08048A04: .4byte gBattleStruct
|
||||
_08048A08: .4byte gMonSpritesGfxPtr
|
||||
_08048A0C:
|
||||
ldr r0, [r5]
|
||||
movs r3, 0xBA
|
||||
lsls r3, 1
|
||||
adds r0, r3
|
||||
ldr r0, [r0]
|
||||
adds r0, r4
|
||||
ldrh r1, [r6, 0x4]
|
||||
lsls r1, 22
|
||||
lsrs r1, 22
|
||||
adds r1, r7, r1
|
||||
lsls r1, 5
|
||||
ldr r2, _08048A44 @ =0x060100c0
|
||||
adds r1, r2
|
||||
ldr r2, _08048A48 @ =0x04000008
|
||||
bl CpuSet
|
||||
_08048A2C:
|
||||
adds r4, 0x40
|
||||
adds r7, 0x1
|
||||
cmp r7, 0x4
|
||||
ble _080489D0
|
||||
add sp, 0x30
|
||||
pop {r3-r5}
|
||||
mov r8, r3
|
||||
mov r9, r4
|
||||
mov r10, r5
|
||||
pop {r4-r7}
|
||||
pop {r0}
|
||||
bx r0
|
||||
.align 2, 0
|
||||
_08048A44: .4byte 0x060100c0
|
||||
_08048A48: .4byte 0x04000008
|
||||
thumb_func_end PrintSafariMonInfo
|
||||
|
||||
thumb_func_start SwapHpBarsWithHpText
|
||||
SwapHpBarsWithHpText: @ 8048A4C
|
||||
push {r4-r7,lr}
|
||||
|
||||
@@ -5755,7 +5755,7 @@ sub_8137578: @ 8137578
|
||||
bl GetNature
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r1, _081375F0 @ =gNatureNames
|
||||
ldr r1, _081375F0 @ =gNatureNamePointers
|
||||
lsls r0, r6, 2
|
||||
adds r0, r1
|
||||
ldr r1, [r0]
|
||||
@@ -5796,7 +5796,7 @@ _081375B2:
|
||||
.align 2, 0
|
||||
_081375E8: .4byte gUnknown_203B140
|
||||
_081375EC: .4byte 0x00003290
|
||||
_081375F0: .4byte gNatureNames
|
||||
_081375F0: .4byte gNatureNamePointers
|
||||
_081375F4:
|
||||
ldr r0, [r7]
|
||||
ldr r1, _08137614 @ =0x00003024
|
||||
@@ -5952,7 +5952,7 @@ sub_8137724: @ 8137724
|
||||
bl GetNature
|
||||
lsls r0, 24
|
||||
lsrs r6, r0, 24
|
||||
ldr r1, _081377A8 @ =gNatureNames
|
||||
ldr r1, _081377A8 @ =gNatureNamePointers
|
||||
lsls r0, r6, 2
|
||||
adds r0, r1
|
||||
ldr r1, [r0]
|
||||
@@ -5997,7 +5997,7 @@ _08137790:
|
||||
.align 2, 0
|
||||
_081377A0: .4byte gUnknown_203B140
|
||||
_081377A4: .4byte 0x00003290
|
||||
_081377A8: .4byte gNatureNames
|
||||
_081377A8: .4byte gNatureNamePointers
|
||||
_081377AC:
|
||||
cmp r5, 0xFF
|
||||
bne _081377D0
|
||||
|
||||
@@ -1,44 +0,0 @@
|
||||
#include "constants/region_map.h"
|
||||
#include "constants/trainer_classes.h"
|
||||
#include "constants/songs.h"
|
||||
#include "constants/flags.h"
|
||||
#include "constants/region_map.h"
|
||||
#include "constants/maps.h"
|
||||
#define RGB(r, g, b) ((r) | ((g) << 5) | ((b) << 10))
|
||||
.include "asm/macros.inc"
|
||||
.include "constants/constants.inc"
|
||||
|
||||
.section .rodata
|
||||
.align 2, 0
|
||||
|
||||
gUnknown_826052C:: @ 826052C
|
||||
.string "{COLOR 01}{HIGHLIGHT 02}", 20
|
||||
|
||||
gUnknown_8260540:: @ 8260540
|
||||
.string "/$"
|
||||
|
||||
gUnknown_8260542:: @ 8260542
|
||||
.string "{COLOR 01}{HIGHLIGHT 00}", 20
|
||||
|
||||
gUnknown_8260556:: @ 8260556
|
||||
.string "{HIGHLIGHT 02}$"
|
||||
|
||||
gUnknown_826055A:: @ 826055A
|
||||
.2byte RGB(24, 12, 24)
|
||||
.2byte RGB(23, 23, 3)
|
||||
.2byte RGB(20, 20, 17)
|
||||
.2byte RGB(17, 22, 28)
|
||||
.2byte RGB(28, 14, 10)
|
||||
|
||||
gUnknown_8260564:: @ 8260564
|
||||
.byte 0, 0, 0, 8, 2, 0
|
||||
.2byte 0x0000
|
||||
@ {
|
||||
@ .bg = 0,
|
||||
@ .tilemapLeft = 0,
|
||||
@ .tilemapTop = 0,
|
||||
@ .width = 8,
|
||||
@ .height = 2,
|
||||
@ .paletteNum = 0,
|
||||
@ .baseBlock = 0x0000
|
||||
@ }
|
||||
@@ -266,7 +266,7 @@ gUnknown_8463E57:: @ 8463E57
|
||||
.string "QUIRKY$"
|
||||
|
||||
.align 2
|
||||
gNatureNames:: @ 8463E60 dataptr
|
||||
gNatureNamePointers:: @ 8463E60 dataptr
|
||||
.4byte gUnknown_8463DBC
|
||||
.4byte gUnknown_8463DC2
|
||||
.4byte gUnknown_8463DC9
|
||||
|
||||
@@ -34,6 +34,5 @@ enum PokemonSummaryScreenPage
|
||||
|
||||
s32 GetLastViewedMonIndex(void);
|
||||
void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4);
|
||||
extern const u8 *gNatureNames[];
|
||||
|
||||
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H
|
||||
|
||||
+1
-1
@@ -250,7 +250,7 @@ u16 RenderText(struct TextPrinter *textPrinter);
|
||||
s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
|
||||
s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
|
||||
s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing);
|
||||
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str);
|
||||
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str, int a3, int a4, int a5, int a6, int a7);
|
||||
u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
|
||||
u8 GetKeypadIconTileOffset(u8 keypadIconId);
|
||||
u8 GetKeypadIconWidth(u8 keypadIconId);
|
||||
|
||||
@@ -407,7 +407,6 @@ SECTIONS {
|
||||
src/daycare.o(.rodata);
|
||||
src/battle_gfx_sfx_util.o(.rodata);
|
||||
src/battle_interface.o(.rodata);
|
||||
data/battle_interface.o(.rodata);
|
||||
src/pokeball.o(.rodata);
|
||||
src/trade.o(.rodata);
|
||||
src/trade_scene.o(.rodata);
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
#include "string_util.h"
|
||||
#include "strings.h"
|
||||
#include "text.h"
|
||||
#include "window.h"
|
||||
|
||||
void SpriteCB_HealthBoxOther(struct Sprite * sprite);
|
||||
void SpriteCB_HealthBar(struct Sprite * sprite);
|
||||
@@ -603,3 +604,227 @@ void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
|
||||
TextIntoHealthboxObject(objVram, windowTileData, 3);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
|
||||
const u8 gUnknown_826052C[20] = __("{COLOR 01}{HIGHLIGHT 02}");
|
||||
|
||||
void UpdateHpTextInHealthbox(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
{
|
||||
u32 windowId, spriteTileNum;
|
||||
u8 *windowTileData;
|
||||
u8 *strptr;
|
||||
register void *objVram;
|
||||
|
||||
if (GetBattlerSide(gSprites[healthboxSpriteId].hMain_Battler) == B_SIDE_PLAYER && !IsDoubleBattle())
|
||||
{
|
||||
u8 text[8];
|
||||
if (maxOrCurrent != HP_CURRENT) // singles, max
|
||||
{
|
||||
ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 0, 5, &windowId);
|
||||
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum;
|
||||
TextIntoHealthboxObject( (void*)(OBJ_VRAM0) + spriteTileNum * TILE_SIZE_4BPP + 0xA40, windowTileData, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
else // singles, current
|
||||
{
|
||||
strptr = ConvertIntToDecimalStringN(text, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
*strptr++ = CHAR_SLASH;
|
||||
*strptr++ = EOS;
|
||||
windowTileData = AddTextPrinterAndCreateWindowOnHealthbox(text, 4, 5, &windowId);
|
||||
spriteTileNum = gSprites[healthboxSpriteId].oam.tileNum;
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0) + spriteTileNum * TILE_SIZE_4BPP + 0x2E0, windowTileData, 1);
|
||||
TextIntoHealthboxObject((void *)(OBJ_VRAM0) + spriteTileNum * TILE_SIZE_4BPP + 0xA00, windowTileData + 0x20, 2);
|
||||
RemoveWindowOnHealthbox(windowId);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
u8 battler;
|
||||
|
||||
u8 text[20]; memcpy(text, gUnknown_826052C, sizeof(gUnknown_826052C));
|
||||
battler = gSprites[healthboxSpriteId].hMain_Battler;
|
||||
if (IsDoubleBattle() == TRUE || GetBattlerSide(battler) == B_SIDE_OPPONENT)
|
||||
{
|
||||
UpdateHpTextInHealthboxInDoubles(healthboxSpriteId, value, maxOrCurrent);
|
||||
}
|
||||
else
|
||||
{
|
||||
u32 var;
|
||||
u8 i;
|
||||
|
||||
if (GetBattlerSide(gSprites[healthboxSpriteId].data[6]) == B_SIDE_PLAYER)
|
||||
{
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
var = 29;
|
||||
else
|
||||
var = 89;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
var = 20;
|
||||
else
|
||||
var = 48;
|
||||
}
|
||||
|
||||
ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 0, text, 0, 0, 0, 0, 0);
|
||||
|
||||
for (i = 0; i < 3; i++)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[i * 64 + 32],
|
||||
(void*)((OBJ_VRAM0) + TILE_SIZE_4BPP * (gSprites[healthboxSpriteId].oam.tileNum + var + i)),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const u8 gUnknown_8260540[] = _("/");
|
||||
|
||||
void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 maxOrCurrent)
|
||||
{
|
||||
u32 windowId, spriteTileNum;
|
||||
u8 *windowTileData;
|
||||
void *objVram;
|
||||
|
||||
u8 battlerId;
|
||||
|
||||
u8 text[20] = __("{COLOR 01}{HIGHLIGHT 00}");
|
||||
battlerId = gSprites[healthboxSpriteId].hMain_Battler;
|
||||
|
||||
if (gBattleSpritesDataPtr->battlerData[battlerId].hpNumbersNoBars) // don't print text if only bars are visible
|
||||
{
|
||||
u8 var = 4;
|
||||
u8 r7;
|
||||
u8 *txtPtr;
|
||||
u8 i;
|
||||
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
var = 0;
|
||||
|
||||
r7 = gSprites[healthboxSpriteId].data[5];
|
||||
txtPtr = ConvertIntToDecimalStringN(text + 6, value, STR_CONV_MODE_RIGHT_ALIGN, 3);
|
||||
if (!maxOrCurrent)
|
||||
StringCopy(txtPtr, gUnknown_8260540);
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 0, text, 0, 0, 0, 0, 0);
|
||||
|
||||
for (i = var; i < var + 3; i++)
|
||||
{
|
||||
if (i < 3)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0) + 32 * (1 + gSprites[r7].oam.tileNum + i)),
|
||||
0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[((i - var) * 64) + 32],
|
||||
(void*)((OBJ_VRAM0 + 0x20) + 32 * (i + gSprites[r7].oam.tileNum)),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
|
||||
if (maxOrCurrent == HP_CURRENT)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[224],
|
||||
(void*)((OBJ_VRAM0) + ((gSprites[r7].oam.tileNum + 4) * TILE_SIZE_4BPP)),
|
||||
0x20);
|
||||
CpuFill32(0, (void*)((OBJ_VRAM0) + (gSprites[r7].oam.tileNum * TILE_SIZE_4BPP)), 0x20);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) // Impossible to reach part, because the battlerId is from the opponent's side.
|
||||
{
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(116),
|
||||
(void*)(OBJ_VRAM0) + ((gSprites[healthboxSpriteId].oam.tileNum + 52) * TILE_SIZE_4BPP),
|
||||
0x20);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Prints mon's nature, catch and flee rate. Probably used to test pokeblock-related features.
|
||||
void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon)
|
||||
{
|
||||
u8 text[20];
|
||||
s32 j, spriteTileNum;
|
||||
u8 *barFontGfx;
|
||||
u8 i, var, nature, healthBarSpriteId;
|
||||
|
||||
memcpy(text, gUnknown_826052C, sizeof(gUnknown_826052C));
|
||||
barFontGfx = &gMonSpritesGfxPtr->barFontGfx[0x520 + (GetBattlerPosition(gSprites[healthboxSpriteId].hMain_Battler) * 384)];
|
||||
var = 5;
|
||||
nature = GetNature(mon);
|
||||
StringCopy(text + 6, gNatureNamePointers[nature]);
|
||||
RenderTextFont9(barFontGfx, 0, text, 0, 0, 0, 0, 0);
|
||||
|
||||
for (j = 6, i = 0; i < var; i++, j++)
|
||||
{
|
||||
u8 elementId;
|
||||
|
||||
if ((text[j] >= 55 && text[j] <= 74) || (text[j] >= 135 && text[j] <= 154))
|
||||
elementId = 44;
|
||||
else if ((text[j] >= 75 && text[j] <= 79) || (text[j] >= 155 && text[j] <= 159))
|
||||
elementId = 45;
|
||||
else
|
||||
elementId = 43;
|
||||
|
||||
CpuCopy32(GetHealthboxElementGfxPtr(elementId), barFontGfx + (i * 64), 0x20);
|
||||
}
|
||||
|
||||
for (j = 1; j < var + 1; j++)
|
||||
{
|
||||
spriteTileNum = (gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
|
||||
spriteTileNum = (8 + gSprites[healthboxSpriteId].oam.tileNum + (j - (j / 8 * 8)) + (j / 8 * 64)) * TILE_SIZE_4BPP;
|
||||
CpuCopy32(barFontGfx, (void*)(OBJ_VRAM0) + (spriteTileNum), 0x20);
|
||||
barFontGfx += 0x20;
|
||||
}
|
||||
|
||||
healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId;
|
||||
ConvertIntToDecimalStringN(text + 6, gBattleStruct->safariCatchFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
ConvertIntToDecimalStringN(text + 9, gBattleStruct->safariEscapeFactor, STR_CONV_MODE_RIGHT_ALIGN, 2);
|
||||
text[5] = CHAR_SPACE;
|
||||
text[8] = CHAR_SLASH;
|
||||
RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 0, text, 0, 0, 0, 0, 0);
|
||||
|
||||
j = healthBarSpriteId; // Needed to match for some reason.
|
||||
for (j = 0; j < 5; j++)
|
||||
{
|
||||
if (j <= 1)
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0) + (gSprites[healthBarSpriteId].oam.tileNum + 2 + j) * TILE_SIZE_4BPP,
|
||||
32);
|
||||
}
|
||||
else
|
||||
{
|
||||
CpuCopy32(&gMonSpritesGfxPtr->barFontGfx[0x40 * j + 0x20],
|
||||
(void*)(OBJ_VRAM0 + 0xC0) + (j + gSprites[healthBarSpriteId].oam.tileNum) * TILE_SIZE_4BPP,
|
||||
32);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const u8 gUnknown_8260556[] = _("{HIGHLIGHT 02}");
|
||||
|
||||
const u16 gUnknown_826055A[] = {
|
||||
RGB(24, 12, 24),
|
||||
RGB(23, 23, 3),
|
||||
RGB(20, 20, 17),
|
||||
RGB(17, 22, 28),
|
||||
RGB(28, 14, 10)
|
||||
};
|
||||
|
||||
const struct WindowTemplate gUnknown_8260564 = {
|
||||
.bg = 0,
|
||||
.tilemapLeft = 0,
|
||||
.tilemapTop = 0,
|
||||
.width = 8,
|
||||
.height = 2,
|
||||
.paletteNum = 0,
|
||||
.baseBlock = 0x000
|
||||
};
|
||||
|
||||
+1
-1
@@ -1180,7 +1180,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
|
||||
return width;
|
||||
}
|
||||
|
||||
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str)
|
||||
u8 RenderTextFont9(u8 *pixels, u8 fontId, u8 *str, int a3, int a4, int a5, int a6, int a7)
|
||||
{
|
||||
u8 shadowColor;
|
||||
u8 *strLocal;
|
||||
|
||||
Reference in New Issue
Block a user