through PrintSafariMonInfo

This commit is contained in:
PikalaxALT
2020-01-11 10:58:30 -05:00
parent 3310aadb54
commit 9d2f1af103
9 changed files with 232 additions and 797 deletions
-744
View File
@@ -5,750 +5,6 @@
.text .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 thumb_func_start SwapHpBarsWithHpText
SwapHpBarsWithHpText: @ 8048A4C SwapHpBarsWithHpText: @ 8048A4C
push {r4-r7,lr} push {r4-r7,lr}
+4 -4
View File
@@ -5755,7 +5755,7 @@ sub_8137578: @ 8137578
bl GetNature bl GetNature
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
ldr r1, _081375F0 @ =gNatureNames ldr r1, _081375F0 @ =gNatureNamePointers
lsls r0, r6, 2 lsls r0, r6, 2
adds r0, r1 adds r0, r1
ldr r1, [r0] ldr r1, [r0]
@@ -5796,7 +5796,7 @@ _081375B2:
.align 2, 0 .align 2, 0
_081375E8: .4byte gUnknown_203B140 _081375E8: .4byte gUnknown_203B140
_081375EC: .4byte 0x00003290 _081375EC: .4byte 0x00003290
_081375F0: .4byte gNatureNames _081375F0: .4byte gNatureNamePointers
_081375F4: _081375F4:
ldr r0, [r7] ldr r0, [r7]
ldr r1, _08137614 @ =0x00003024 ldr r1, _08137614 @ =0x00003024
@@ -5952,7 +5952,7 @@ sub_8137724: @ 8137724
bl GetNature bl GetNature
lsls r0, 24 lsls r0, 24
lsrs r6, r0, 24 lsrs r6, r0, 24
ldr r1, _081377A8 @ =gNatureNames ldr r1, _081377A8 @ =gNatureNamePointers
lsls r0, r6, 2 lsls r0, r6, 2
adds r0, r1 adds r0, r1
ldr r1, [r0] ldr r1, [r0]
@@ -5997,7 +5997,7 @@ _08137790:
.align 2, 0 .align 2, 0
_081377A0: .4byte gUnknown_203B140 _081377A0: .4byte gUnknown_203B140
_081377A4: .4byte 0x00003290 _081377A4: .4byte 0x00003290
_081377A8: .4byte gNatureNames _081377A8: .4byte gNatureNamePointers
_081377AC: _081377AC:
cmp r5, 0xFF cmp r5, 0xFF
bne _081377D0 bne _081377D0
-44
View File
@@ -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
@ }
+1 -1
View File
@@ -266,7 +266,7 @@ gUnknown_8463E57:: @ 8463E57
.string "QUIRKY$" .string "QUIRKY$"
.align 2 .align 2
gNatureNames:: @ 8463E60 dataptr gNatureNamePointers:: @ 8463E60 dataptr
.4byte gUnknown_8463DBC .4byte gUnknown_8463DBC
.4byte gUnknown_8463DC2 .4byte gUnknown_8463DC2
.4byte gUnknown_8463DC9 .4byte gUnknown_8463DC9
-1
View File
@@ -34,6 +34,5 @@ enum PokemonSummaryScreenPage
s32 GetLastViewedMonIndex(void); s32 GetLastViewedMonIndex(void);
void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4); void ShowPokemonSummaryScreen(struct Pokemon * party, u8 cursorPos, u8 lastIdx, void (*callback)(void), u8 a4);
extern const u8 *gNatureNames[];
#endif // GUARD_POKEMON_SUMMARY_SCREEN_H #endif // GUARD_POKEMON_SUMMARY_SCREEN_H
+1 -1
View File
@@ -250,7 +250,7 @@ u16 RenderText(struct TextPrinter *textPrinter);
s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing); s32 GetStringWidthFixedWidthFont(const u8 *str, u8 fontId, u8 letterSpacing);
s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32); s32 (*GetFontWidthFunc(u8 glyphId))(u16, bool32);
s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); 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 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y);
u8 GetKeypadIconTileOffset(u8 keypadIconId); u8 GetKeypadIconTileOffset(u8 keypadIconId);
u8 GetKeypadIconWidth(u8 keypadIconId); u8 GetKeypadIconWidth(u8 keypadIconId);
-1
View File
@@ -407,7 +407,6 @@ SECTIONS {
src/daycare.o(.rodata); src/daycare.o(.rodata);
src/battle_gfx_sfx_util.o(.rodata); src/battle_gfx_sfx_util.o(.rodata);
src/battle_interface.o(.rodata); src/battle_interface.o(.rodata);
data/battle_interface.o(.rodata);
src/pokeball.o(.rodata); src/pokeball.o(.rodata);
src/trade.o(.rodata); src/trade.o(.rodata);
src/trade_scene.o(.rodata); src/trade_scene.o(.rodata);
+225
View File
@@ -6,6 +6,7 @@
#include "string_util.h" #include "string_util.h"
#include "strings.h" #include "strings.h"
#include "text.h" #include "text.h"
#include "window.h"
void SpriteCB_HealthBoxOther(struct Sprite * sprite); void SpriteCB_HealthBoxOther(struct Sprite * sprite);
void SpriteCB_HealthBar(struct Sprite * sprite); void SpriteCB_HealthBar(struct Sprite * sprite);
@@ -603,3 +604,227 @@ void UpdateLvlInHealthbox(u8 healthboxSpriteId, u8 lvl)
TextIntoHealthboxObject(objVram, windowTileData, 3); TextIntoHealthboxObject(objVram, windowTileData, 3);
RemoveWindowOnHealthbox(windowId); 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
View File
@@ -1180,7 +1180,7 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing)
return width; 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 shadowColor;
u8 *strLocal; u8 *strLocal;