Decomp battle print message functions

This commit is contained in:
Adrienn Tindall 2023-12-17 17:37:11 -05:00
parent 3a696b77fb
commit c2d87dcde8
19 changed files with 179 additions and 305 deletions

View File

@ -240,4 +240,4 @@
.public ov12_0223BB88
.public ov12_0223C1C4
.public ov12_0223C1F4
.public ov12_0223C340
.public BattleSystem_SetDefaultBlend

View File

@ -54,7 +54,7 @@
.public ov12_0223A8EC
.public BattleSystem_GetHpFont
.public BattleSystem_GetLevelFont
.public ov12_0223A930
.public BattleSystem_GetMessageData
.public BattleSystem_GetPaletteData
.public ov12_0223A9A4
.public ov12_0226498C

View File

@ -135,7 +135,7 @@
.public BattleSystem_GetPartyMon
.public ov12_0223A8E4
.public ov12_0223A8EC
.public ov12_0223A930
.public BattleSystem_GetMessageData
.public BattleSystem_GetPaletteData
.public ov12_0223A9A4
.public ov12_0223AAD8

View File

@ -28,7 +28,7 @@
.public GF_AssertFail
.public G2x_SetBlendAlpha_
.public MI_CpuFill8
.public ov12_0223C340
.public BattleSystem_SetDefaultBlend
.public ov12_0226ADE0
.public ov12_0226AE78
.public ov12_0226AEE0

View File

@ -126,7 +126,7 @@
.public ov12_0223A8E4
.public ov12_0223A8EC
.public ov12_0223A8F4
.public ov12_0223A930
.public BattleSystem_GetMessageData
.public BattleSystem_GetPaletteData
.public BattleSystem_GetPokedex
.public ov12_0223A9A4
@ -154,7 +154,7 @@
.public ov12_0223C224
.public BattleSystem_SetPokedexCaught
.public BattleSystem_CheckMonCaught
.public ov12_0223C494
.public BattleSystem_PrintBattleMessage
.public ov12_0223C4E8
.public BtlCmd_PlayEncounterAnimation
.public BtlCmd_PokemonEncounter

View File

@ -163,7 +163,7 @@
.public ov12_0223A900
.public ov12_0223A908
.public ov12_0223A914
.public ov12_0223A930
.public BattleSystem_GetMessageData
.public ov12_0223A934
.public BattleSystem_GetPaletteData
.public ov12_0223A99C
@ -222,8 +222,8 @@
.public ov12_0223C1A0
.public ov12_0223C1C4
.public ov12_0223C1F4
.public ov12_0223C34C
.public ov12_0223C494
.public BattleSystem_PrintTrainerMessage
.public BattleSystem_PrintBattleMessage
.public GetBattlerVar
.public ov12_022506D4
.public ov12_02251D28

View File

@ -84,7 +84,7 @@
.public ov12_0223A914
.public BattleSystem_GetHpFont
.public BattleSystem_GetLevelFont
.public ov12_0223A930
.public BattleSystem_GetMessageData
.public ov12_0223A934
.public BattleSystem_GetPaletteData
.public BattleSystem_GetPokedex
@ -200,9 +200,9 @@
.public BattleSystem_SetPokedexSeen
.public BattleSystem_SetPokedexCaught
.public BattleSystem_CheckMonCaught
.public ov12_0223C340
.public ov12_0223C34C
.public ov12_0223C494
.public BattleSystem_SetDefaultBlend
.public BattleSystem_PrintTrainerMessage
.public BattleSystem_PrintBattleMessage
.public ov12_0223C4E8
.public GetBattlerVar
.public SetBattlerVar

View File

@ -1872,7 +1872,7 @@ _0221CADE:
add r0, r5, r0
mov r1, #5
bl ov07_0221DD14
bl ov12_0223C340
bl BattleSystem_SetDefaultBlend
add r0, r5, #0
mov r1, #1
bl ov07_0221FAEC
@ -5004,7 +5004,7 @@ _0221E224:
strb r0, [r4, #5]
b _0221E272
_0221E250:
bl ov12_0223C340
bl BattleSystem_SetDefaultBlend
mov r0, #2
mov r1, #0
bl ToggleBgLayer

View File

@ -1842,7 +1842,7 @@ ov12_02266F84: ; 0x02266F84
ldr r0, _022672F0 ; =0x000006E1
strb r1, [r5, r0]
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r4, r0, #0
ldr r0, _022672F4 ; =0x0000068A
strb r7, [r5, r0]
@ -2420,7 +2420,7 @@ _0226749C:
ldr r0, _02267720 ; =0x0000068A
strb r1, [r5, r0]
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp, #0x1c]
ldrb r1, [r6, #0x10]
add r0, r5, #0
@ -2744,7 +2744,7 @@ ov12_02267760: ; 0x02267760
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
mov r1, #0xeb
lsl r1, r1, #2
add r6, r0, #0
@ -2815,7 +2815,7 @@ ov12_022677FC: ; 0x022677FC
sub sp, #0x1c
add r5, r0, #0
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
ldr r1, _02267884 ; =0x0000049D
add r6, r0, #0
bl NewString_ReadMsgData
@ -2886,7 +2886,7 @@ ov12_0226789C: ; 0x0226789C
sub sp, #0x24
add r5, r0, #0
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r6, r0, #0
ldr r0, [r5]
bl ov12_0223A9A4
@ -2992,7 +2992,7 @@ ov12_02267984: ; 0x02267984
mov r3, #0x1f
bl G2x_SetBlendAlpha_
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
ldr r1, _02267A4C ; =0x000004EC
bl NewString_ReadMsgData
add r4, r0, #0
@ -3077,7 +3077,7 @@ ov12_02267A58: ; 0x02267A58
sub sp, #0x24
add r5, r0, #0
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r6, r0, #0
ldr r0, [r5]
bl ov12_0223A9A4
@ -3176,7 +3176,7 @@ ov12_02267B40: ; 0x02267B40
sub sp, #0x24
add r5, r0, #0
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r6, r0, #0
ldr r0, [r5]
bl ov12_0223A9A4
@ -3287,7 +3287,7 @@ ov12_02267C24: ; 0x02267C24
sub r0, r0, #2
strb r1, [r5, r0]
ldr r0, [r5]
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp, #0x2c]
ldr r0, [r5]
bl ov12_0223A9A4
@ -4851,7 +4851,7 @@ ov12_0226885C: ; 0x0226885C
ldr r0, [r7]
add r5, r1, #0
str r2, [sp, #8]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r4, r0, #0
add r0, r7, #0
add r1, r5, #0
@ -9505,7 +9505,7 @@ _0226AAB4:
bl ScheduleBgTilemapBufferTransfer
ldr r0, [sp, #0x1c]
ldr r0, [r0]
bl ov12_0223A930
bl BattleSystem_GetMessageData
ldr r2, _0226AC54 ; =ov12_0226E23C
str r0, [sp, #0x20]
ldrh r3, [r2, #0x2c]

View File

@ -612,7 +612,7 @@ _0226B264:
strh r1, [r0]
pop {r3, r4, r5, pc}
_0226B27A:
bl ov12_0223C340
bl BattleSystem_SetDefaultBlend
add r0, r5, #0
bl DestroySysTask
mov r0, #0

View File

@ -245,7 +245,7 @@ Task_GetPokemon: ; 0x022465A8
add r4, r1, #0
str r0, [sp, #0x10]
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp, #0x20]
ldr r0, [r4]
bl BattleSystem_GetPaletteData
@ -568,7 +568,7 @@ _02246826:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0x10c
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -755,7 +755,7 @@ _022469E6:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0xe8
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -1445,7 +1445,7 @@ _02247006:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0x9c
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -1520,7 +1520,7 @@ _02247094:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0x78
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -1555,7 +1555,7 @@ _022470E8:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0x54
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -1626,7 +1626,7 @@ _02247174:
ldr r0, [r4]
ldr r1, [sp, #0x20]
add r2, sp, #0x30
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
str r0, [r4, #0x30]
mov r0, #0x1e
str r0, [r4, #0x34]
@ -3787,7 +3787,7 @@ ov12_02248228: ; 0x02248228
add r7, r0, #0
add r5, r1, #0
str r2, [sp, #0x18]
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp, #0x28]
add r0, r7, #0
bl BattleSystem_GetMessageBuffer

View File

@ -4255,7 +4255,7 @@ ov12_0225A85C: ; 0x0225A85C
ldr r1, [sp]
add r0, r6, #0
add r2, sp, #4
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225A8C0 ; =ov12_022605D0
add r1, r4, #0
@ -4273,7 +4273,7 @@ ov12_0225A8C4: ; 0x0225A8C4
add r5, r0, #0
add r6, r1, #0
add r7, r2, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp]
mov r0, #5
mov r1, #8
@ -4294,7 +4294,7 @@ ov12_0225A8C4: ; 0x0225A8C4
ldr r1, [sp]
add r0, r5, #0
add r2, r7, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225A910 ; =ov12_022605D0
add r1, r4, #0
@ -4845,7 +4845,7 @@ ov12_0225ACE8: ; 0x0225ACE8
ldrb r3, [r7, #1]
ldr r1, [sp, #4]
add r0, r6, #0
bl ov12_0223C34C
bl BattleSystem_PrintTrainerMessage
strb r0, [r4, #6]
ldr r0, _0225AD40 ; =ov12_022605D0
add r1, r4, #0
@ -4867,7 +4867,7 @@ ov12_0225AD44: ; 0x0225AD44
add r7, r2, #0
bl ov12_02261390
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp]
mov r0, #5
mov r1, #8
@ -4886,7 +4886,7 @@ ov12_0225AD44: ; 0x0225AD44
ldr r1, [sp]
add r0, r5, #0
add r2, sp, #4
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225AD98 ; =ov12_022605D0
add r1, r4, #0
@ -4908,7 +4908,7 @@ ov12_0225AD9C: ; 0x0225AD9C
add r7, r2, #0
bl ov12_02261464
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp]
mov r0, #5
mov r1, #8
@ -4927,7 +4927,7 @@ ov12_0225AD9C: ; 0x0225AD9C
ldr r1, [sp]
add r0, r5, #0
add r2, sp, #4
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225ADF0 ; =ov12_022605D0
add r1, r4, #0
@ -4948,7 +4948,7 @@ ov12_0225ADF4: ; 0x0225ADF4
add r6, r1, #0
bl ov12_02261544
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r7, r0, #0
mov r0, #5
mov r1, #8
@ -4967,7 +4967,7 @@ ov12_0225ADF4: ; 0x0225ADF4
add r0, r5, #0
add r1, r7, #0
add r2, sp, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225AE44 ; =ov12_022605D0
add r1, r4, #0
@ -4989,7 +4989,7 @@ ov12_0225AE48: ; 0x0225AE48
add r7, r2, #0
bl ov12_022615F0
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp]
mov r0, #5
mov r1, #8
@ -5008,7 +5008,7 @@ ov12_0225AE48: ; 0x0225AE48
ldr r1, [sp]
add r0, r5, #0
add r2, sp, #4
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225AE9C ; =ov12_022605D0
add r1, r4, #0
@ -5059,7 +5059,7 @@ ov12_0225AED8: ; 0x0225AED8
add r6, r0, #0
cmp r2, #0
bne _0225AF2A
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp]
mov r0, #5
mov r1, #0xc
@ -5080,7 +5080,7 @@ ov12_0225AED8: ; 0x0225AED8
ldr r1, [sp]
add r0, r6, #0
add r2, r4, #4
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r7, #6]
ldr r0, _0225AF70 ; =ov12_02260614
add r1, r7, #0
@ -5425,7 +5425,7 @@ ov12_0225B1A8: ; 0x0225B1A8
ldrb r1, [r4, r1]
cmp r1, #0
bne _0225B1E6
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r1, r0, #0
ldr r2, _0225B1FC ; =0x0000039B
add r0, sp, #0
@ -5434,7 +5434,7 @@ ov12_0225B1A8: ; 0x0225B1A8
strb r3, [r0, #1]
add r0, r5, #0
add r2, sp, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
add r0, r5, #0
mov r1, #0
bl BattleSystem_GetWindow
@ -5553,7 +5553,7 @@ ov12_0225B2A4: ; 0x0225B2A4
add r6, r1, #0
bl ov12_02261928
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r7, r0, #0
mov r0, #5
mov r1, #8
@ -5572,7 +5572,7 @@ ov12_0225B2A4: ; 0x0225B2A4
add r0, r5, #0
add r1, r7, #0
add r2, sp, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225B2F4 ; =ov12_022605D0
add r1, r4, #0
@ -5593,7 +5593,7 @@ ov12_0225B2F8: ; 0x0225B2F8
add r6, r1, #0
bl ov12_022619E4
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r7, r0, #0
mov r0, #5
mov r1, #8
@ -5612,7 +5612,7 @@ ov12_0225B2F8: ; 0x0225B2F8
add r0, r5, #0
add r1, r7, #0
add r2, sp, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225B348 ; =ov12_022605D0
add r1, r4, #0
@ -5633,7 +5633,7 @@ ov12_0225B34C: ; 0x0225B34C
add r6, r1, #0
bl ov12_02261AD4
add r0, r5, #0
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r7, r0, #0
mov r0, #5
mov r1, #8
@ -5652,7 +5652,7 @@ ov12_0225B34C: ; 0x0225B34C
add r0, r5, #0
add r1, r7, #0
add r2, sp, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #6]
ldr r0, _0225B39C ; =ov12_022605D0
add r1, r4, #0
@ -10588,7 +10588,7 @@ _0225DB46:
strb r0, [r4, #0xa]
_0225DB7C:
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r6, r0, #0
mov r0, #1
lsl r0, r0, #0xa
@ -10620,7 +10620,7 @@ _0225DBA0:
strh r0, [r1, #0xe]
ldr r0, [r4]
add r1, r6, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
mov r0, #3
add sp, #0x58
strb r0, [r4, #0xa]
@ -10641,7 +10641,7 @@ _0225DBCC:
ldr r0, [r4]
add r1, r6, #0
add r2, sp, #0x1c
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
add r1, r4, #0
add r1, #0x35
strb r0, [r1]
@ -10698,7 +10698,7 @@ _0225DC56:
add r1, r6, #0
add r2, sp, #0x1c
mov r3, #0
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
mov r0, #3
add sp, #0x58
strb r0, [r4, #0xa]
@ -11455,7 +11455,7 @@ _0225E2AC:
b _0225E3F8
_0225E2B8:
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r1, r0, #0
mov r2, #2
add r0, sp, #0x14
@ -11470,7 +11470,7 @@ _0225E2B8:
strh r2, [r0, #0x16]
ldr r0, [r4]
add r2, sp, #0x28
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
add r0, r7, #0
bl ov12_02266AC0
mov r0, #7
@ -12862,7 +12862,7 @@ _0225EDE0:
ldrh r0, [r0, #0x1c]
str r0, [sp, #0x90]
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r5, r0, #0
ldr r0, [r4]
bl BattleSystem_GetTextFrameDelay
@ -12870,7 +12870,7 @@ _0225EDE0:
ldr r0, [r4]
add r1, r5, #0
add r2, sp, #0x8c
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #0x11]
mov r0, #0x1e
strb r0, [r4, #0x17]
@ -13119,7 +13119,7 @@ _0225EFF6:
strb r1, [r0, #1]
_0225EFFE:
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r5, r0, #0
ldr r0, [r4]
bl BattleSystem_GetTextFrameDelay
@ -13127,7 +13127,7 @@ _0225EFFE:
ldr r0, [r4]
add r1, r5, #0
add r2, sp, #0x68
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #0x11]
mov r0, #0x1e
strb r0, [r4, #0x17]
@ -13266,7 +13266,7 @@ _0225F128:
pop {r3, r4, r5, r6, r7, pc}
_0225F140:
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r5, r0, #0
ldr r0, [r4, #8]
ldr r1, [r0, #4]
@ -13311,7 +13311,7 @@ _0225F18E:
ldr r0, [r4]
add r1, r5, #0
add r2, sp, #0x44
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #0x11]
mov r0, #0x1e
strb r0, [r4, #0x17]
@ -13494,7 +13494,7 @@ _0225F2F4:
strh r1, [r0, #6]
_0225F2FA:
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r5, r0, #0
ldr r0, [r4]
bl BattleSystem_GetTextFrameDelay
@ -13502,7 +13502,7 @@ _0225F2FA:
ldr r0, [r4]
add r1, r5, #0
add r2, sp, #0x20
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strb r0, [r4, #0x11]
mov r0, #0x1e
strb r0, [r4, #0x17]
@ -14418,7 +14418,7 @@ _0225FA9C:
cmp r0, #0
beq _0225FAE4
ldr r0, [r4]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r5, r0, #0
ldrb r0, [r4, #0xf]
cmp r0, #5
@ -14442,7 +14442,7 @@ _0225FACA:
ldr r0, [r4]
add r1, r5, #0
add r2, sp, #0x14
bl ov12_0223C494
bl BattleSystem_PrintBattleMessage
strh r0, [r4, #0x1a]
_0225FAE4:
mov r0, #1

View File

@ -6,215 +6,6 @@
.text
thumb_func_start ov12_0223C340
ov12_0223C340: ; 0x0223C340
ldr r0, _0223C348 ; =0x04000050
mov r1, #0
strh r1, [r0]
bx lr
.balign 4, 0
_0223C348: .word 0x04000050
thumb_func_end ov12_0223C340
thumb_func_start ov12_0223C34C
ov12_0223C34C: ; 0x0223C34C
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x18
add r4, r1, #0
add r6, r0, #0
mov r1, #0
str r2, [sp, #0xc]
add r5, r3, #0
bl BattleSystem_GetWindow
add r7, r0, #0
ldr r0, [r6, #0x2c]
mov r2, #0x80
add r1, r0, #0
tst r1, r2
beq _0223C454
ldr r1, _0223C488 ; =0x00002710
cmp r4, r1
beq _0223C376
lsl r1, r2, #6
tst r0, r1
beq _0223C3D2
_0223C376:
cmp r5, #0x64
bne _0223C38E
ldr r0, [sp, #0xc]
add r2, r6, #0
mov r1, #0x34
add r2, #0xd0
mul r1, r0
add r0, r2, r1
mov r1, #5
bl MailMsg_GetExpandedString
b _0223C3A0
_0223C38E:
ldr r0, [sp, #0xc]
add r2, r6, #0
mov r1, #0x34
add r2, #0xd8
mul r1, r0
add r0, r2, r1
mov r1, #5
bl MailMsg_GetExpandedString
_0223C3A0:
add r4, r0, #0
add r0, r7, #0
mov r1, #0xff
bl FillWindowPixelBuffer
ldr r0, [r6, #0x18]
add r1, r4, #0
bl String_Copy
mov r3, #0
ldr r0, [sp, #0x30]
str r3, [sp]
str r0, [sp, #4]
ldr r0, _0223C48C ; =ov12_0223CF14
mov r1, #1
str r0, [sp, #8]
ldr r2, [r6, #0x18]
add r0, r7, #0
bl AddTextPrinterParameterized
add r5, r0, #0
add r0, r4, #0
bl String_Delete
b _0223C480
_0223C3D2:
cmp r5, #0x64
bne _0223C3E0
lsl r0, r4, #1
add r0, r4, r0
add r0, r0, #1
str r0, [sp, #0x10]
b _0223C3E8
_0223C3E0:
lsl r0, r4, #1
add r0, r4, r0
add r0, r0, #2
str r0, [sp, #0x10]
_0223C3E8:
mov r4, #0
add r5, r6, #0
_0223C3EC:
ldr r0, [r5, #0x48]
bl PlayerProfile_GetVersion
cmp r0, #0
beq _0223C3FE
add r4, r4, #1
add r5, r5, #4
cmp r4, #4
blt _0223C3EC
_0223C3FE:
cmp r4, #4
bne _0223C408
mov r2, #0xb5
lsl r2, r2, #2
b _0223C40A
_0223C408:
ldr r2, _0223C490 ; =0x000002D3
_0223C40A:
mov r0, #0
mov r1, #0x1b
mov r3, #5
bl NewMsgDataFromNarc
ldr r1, [sp, #0x10]
str r0, [sp, #0x14]
bl NewString_ReadMsgData
add r4, r0, #0
add r0, r7, #0
mov r1, #0xff
bl FillWindowPixelBuffer
ldr r0, [r6, #0x18]
add r1, r4, #0
bl String_Copy
mov r3, #0
ldr r0, [sp, #0x30]
str r3, [sp]
str r0, [sp, #4]
ldr r0, _0223C48C ; =ov12_0223CF14
mov r1, #1
str r0, [sp, #8]
ldr r2, [r6, #0x18]
add r0, r7, #0
bl AddTextPrinterParameterized
add r5, r0, #0
add r0, r4, #0
bl String_Delete
ldr r0, [sp, #0x14]
bl DestroyMsgData
b _0223C480
_0223C454:
ldr r2, [r6, #0x18]
add r0, r4, #0
add r1, r5, #0
mov r3, #5
bl GetTrainerMessageByIdPair
add r0, r7, #0
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0
ldr r0, [sp, #0x30]
str r3, [sp]
str r0, [sp, #4]
ldr r0, _0223C48C ; =ov12_0223CF14
mov r1, #1
str r0, [sp, #8]
ldr r2, [r6, #0x18]
add r0, r7, #0
bl AddTextPrinterParameterized
add r5, r0, #0
_0223C480:
lsl r0, r5, #0x18
lsr r0, r0, #0x18
add sp, #0x18
pop {r3, r4, r5, r6, r7, pc}
.balign 4, 0
_0223C488: .word 0x00002710
_0223C48C: .word ov12_0223CF14
_0223C490: .word 0x000002D3
thumb_func_end ov12_0223C34C
thumb_func_start ov12_0223C494
ov12_0223C494: ; 0x0223C494
push {r3, r4, r5, r6, r7, lr}
sub sp, #0x10
str r1, [sp, #0xc]
add r5, r0, #0
add r4, r2, #0
mov r1, #0
add r6, r3, #0
bl BattleSystem_GetWindow
add r7, r0, #0
add r0, r5, #0
add r1, r4, #0
bl ov12_0223C558
add r0, r5, #0
add r1, r4, #0
bl ov12_0223C754
ldr r1, [sp, #0xc]
add r0, r5, #0
add r2, r4, #0
bl ov12_0223CEF4
add r0, r7, #0
mov r1, #0xff
bl FillWindowPixelBuffer
mov r3, #0
str r3, [sp]
ldr r0, _0223C4E4 ; =ov12_0223CF14
str r6, [sp, #4]
str r0, [sp, #8]
ldr r2, [r5, #0x18]
add r0, r7, #0
mov r1, #1
bl AddTextPrinterParameterized
add sp, #0x10
pop {r3, r4, r5, r6, r7, pc}
nop
_0223C4E4: .word ov12_0223CF14
thumb_func_end ov12_0223C494
thumb_func_start ov12_0223C4E8
ov12_0223C4E8: ; 0x0223C4E8
push {r4, r5, r6, r7, lr}

View File

@ -1241,7 +1241,7 @@ ov12_0226516C: ; 0x0226516C
bl BattleSystem_GetBgConfig
add r6, r0, #0
ldr r0, [r5, #0xc]
bl ov12_0223A930
bl BattleSystem_GetMessageData
add r7, r0, #0
ldr r0, [r5, #0xc]
bl ov12_0223A9A4
@ -1773,7 +1773,7 @@ ov12_022655F0: ; 0x022655F0
bl BattleSystem_GetBgConfig
add r6, r0, #0
ldr r0, [r4, #0xc]
bl ov12_0223A930
bl BattleSystem_GetMessageData
mov r1, #1
lsl r1, r1, #0xa
add r2, r5, #0
@ -1875,7 +1875,7 @@ ov12_022656CC: ; 0x022656CC
bl BattleSystem_GetBgConfig
str r0, [sp, #0x1c]
ldr r0, [r4, #0xc]
bl ov12_0223A930
bl BattleSystem_GetMessageData
str r0, [sp, #0x20]
ldr r0, [r4, #0xc]
bl ov12_0223A9A4

View File

@ -7,6 +7,7 @@
#include "item.h"
#include "font.h"
#include "game_stats.h"
#include "msgdata.h"
#include "move.h"
#include "options.h"
#include "palette.h"
@ -520,7 +521,7 @@ struct BattleSystem {
u32 *unk0;
BgConfig *bgConfig;
Window *window;
u32 *unkC;
MsgData *msgData;
u32 *unk10;
u32 *unk14;
String *msgBuffer;

View File

@ -76,7 +76,7 @@ void ov12_0224E414(BattleSystem *bsys, BattleContext *ctx);
void ov12_02263564(BattleSystem *bsys, BattleContext *ctx, int battlerId, u32 a3);
void ov12_0226399C(BattleSystem *bsys, int battlerId);
void ov12_02263A1C(BattleSystem *bsys, BattleContext *ctx, int battlerId);
void ov12_0223C4E8(BattleSystem *bsys, Window *window, u32 *msgLoader, BattleMessage *msg, int a4, int a5, int a6, int a7, int a8);
void ov12_0223C4E8(BattleSystem *bsys, Window *window, MsgData *msgLoader, BattleMessage *msg, int a4, int a5, int a6, int a7, int a8);
void ov12_02263D14(BattleSystem *bsys, int battlerId, u32 a2, int slot);
#endif

View File

@ -5,6 +5,7 @@
#include "battle/battle.h"
#include "battle/battle_setup.h"
#include "pokemon.h"
#include "text.h"
BgConfig *BattleSystem_GetBgConfig(BattleSystem *bsys);
Window *BattleSystem_GetWindow(BattleSystem *bsys, int index);
@ -25,7 +26,7 @@ u32 *ov12_0223A908(BattleSystem *bsys, int index);
void ov12_0223A914(BattleSystem *bsys, int index, u32 *a2);
FontID *BattleSystem_GetHpFont(BattleSystem *bsys);
FontID *BattleSystem_GetLevelFont(BattleSystem *bsys);
u32 *ov12_0223A930(BattleSystem *bsys);
MsgData *BattleSystem_GetMessageData(BattleSystem *bsys);
u32 *ov12_0223A934(BattleSystem *bsys);
PaletteData *BattleSystem_GetPaletteData(BattleSystem *bsys);
Pokedex *BattleSystem_GetPokedex(BattleSystem *bsys);
@ -141,6 +142,9 @@ u32 CalcMoneyLoss(Party *party, PlayerProfile *profile);
void BattleSystem_SetPokedexSeen(BattleSystem *bsys, int battlerId);
void BattleSystem_SetPokedexCaught(BattleSystem *bsys, int battlerId);
BOOL BattleSystem_CheckMonCaught(BattleSystem *bsys, int battlerId);
void BattleSystem_SetDefaultBlend(void);
u8 BattleSystem_PrintTrainerMessage(BattleSystem *bsys, int trainerId, int battlerId, int a2, int delay);
u32 BattleSystem_PrintBattleMessage(BattleSystem *bsys, MsgData *data, BattleMessage *msg, u8 delay);
//These functions haven't been decompiled
BOOL Link_QueueNotEmpty(BattleContext *ctx);
@ -151,6 +155,11 @@ void ov12_02263A1C(BattleSystem *bsys, BattleContext *ctx, int battlerId);
void ov12_02266008(UnkBattleSystemSub17C *a0);
BattleHpBar *OpponentData_GetHpBar(OpponentData *opponentData);
void ov12_0226AA8C(u32 *a1, u32 flag);
u32 ov12_0223C494(BattleSystem *bsys, void *msgLoader, BattleMessage *msg, u8 textFrameDelay);
BOOL ov12_0223CF14(struct TextPrinterTemplate *template, u16 glyphId);
//These functions haven't been decompiled AND are confirmed to be static
void ov12_0223C558(BattleSystem *bsys, BattleMessage *msg);
void ov12_0223C754(BattleSystem *bsys, BattleMessage *msg);
void ov12_0223CEF4(BattleSystem *bsys, MsgData *data, BattleMessage *msg);
#endif

View File

@ -5980,12 +5980,12 @@ static void Task_GetExp(SysTask *task, void *inData)
BattleMessage msg;
int side;
int expBattler;
u32 *msgLoader;
MsgData *msgLoader;
u32 battleType;
u16 item;
int itemEffect;
msgLoader = ov12_0223A930(data->bsys);
msgLoader = BattleSystem_GetMessageData(data->bsys);
battleType = BattleSystem_GetBattleType(data->bsys);
side = (data->ctx->battlerIdFainted >> 1) & 1; //Get side of fainted mon (left or right)
expBattler = 0;
@ -6074,7 +6074,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 17;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = totalExp;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[1] = 7;
data->state++;
} else {
@ -6152,7 +6152,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 17;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = level;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state = STATE_GET_EXP_WAIT_LEVEL_UP_MESSAGE_PRINT;
}
break;
@ -6287,7 +6287,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 10;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = move;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state = STATE_GET_EXP_LEARNED_MOVE_WAIT;
break;
}
@ -6299,7 +6299,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 10;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = data->unk30[4];
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
@ -6307,7 +6307,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.id = msg_0197_01179; // "But {0} can't learn more than four moves."
msg.tag = 2;
msg.param[0] = expBattler | (slot << 8);
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
@ -6335,7 +6335,7 @@ static void Task_GetExp(SysTask *task, void *inData)
} else {
msg.id = msg_0197_01183; // "Which move should be forgotten?"
msg.tag = 0;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state = STATE_GET_EXP_MAKE_IT_FORGET_WAIT;
}
}
@ -6360,7 +6360,7 @@ static void Task_GetExp(SysTask *task, void *inData)
case STATE_GET_EXP_MAKE_IT_FORGET_CANCELLED:
msg.id = msg_0197_01184; // "Well, then..."
msg.tag = 0;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
@ -6379,7 +6379,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 10;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = data->unk30[4];
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state = 35;
}
}
@ -6395,7 +6395,7 @@ static void Task_GetExp(SysTask *task, void *inData)
case STATE_GET_EXP_ONE_TWO_POOF:
msg.id = msg_0197_01189; // "1, 2, and... ... Poof!"
msg.tag = 0;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
@ -6404,14 +6404,14 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 10;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = GetMonData(mon, MON_DATA_MOVE1 + data->unk30[5], NULL);
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
case STATE_GET_EXP_AND_DOTDOTDOT:
msg.id = msg_0197_01191; // "And..."
msg.tag = 0;
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->state++;
break;
@ -6420,7 +6420,7 @@ static void Task_GetExp(SysTask *task, void *inData)
msg.tag = 10;
msg.param[0] = expBattler | (slot << 8);
msg.param[1] = data->unk30[4];
data->unk30[0] = ov12_0223C494(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
data->unk30[0] = BattleSystem_PrintBattleMessage(data->bsys, msgLoader, &msg, BattleSystem_GetTextFrameDelay(data->bsys));
i = 0;
SetMonData(mon, MON_DATA_MOVE1PPUP + data->unk30[5], &i);

View File

@ -2,8 +2,10 @@
#include "battle/battle_hp_bar.h"
#include "battle/battle_controller_opponent.h"
#include "battle/battle_system.h"
#include "msgdata.h"
#include "party.h"
#include "pokemon_mood.h"
#include "text.h"
#include "battle/overlay_12_0224E4FC.h"
#include "battle/overlay_12_0226BEC4.h"
#include "constants/game_stats.h"
@ -107,8 +109,8 @@ FontID *BattleSystem_GetLevelFont(BattleSystem *bsys) {
return bsys->levelFont;
}
u32 *ov12_0223A930(BattleSystem *bsys) {
return bsys->unkC;
MsgData *BattleSystem_GetMessageData(BattleSystem *bsys) {
return bsys->msgData;
}
u32 *ov12_0223A934(BattleSystem *bsys) {
@ -1331,3 +1333,74 @@ void BattleSystem_SetPokedexCaught(BattleSystem *bsys, int battlerId) {
BOOL BattleSystem_CheckMonCaught(BattleSystem *bsys, int battlerId) {
return Pokedex_CheckMonCaughtFlag(bsys->pokedex, battlerId);
}
void BattleSystem_SetDefaultBlend() {
G2_BlendNone();
}
u8 BattleSystem_PrintTrainerMessage(BattleSystem *bsys, int trainerId, int battlerId, int a2, int delay) {
Window *window = BattleSystem_GetWindow(bsys, 0);
int index;
if (bsys->battleType & BATTLE_TYPE_TOWER) {
if (trainerId == 0x2710 || bsys->battleType & BATTLE_TYPE_13) {
String *msg;
if (a2 == 0x64) {
msg = MailMsg_GetExpandedString(&bsys->trainers[battlerId].winMessage, HEAP_ID_BATTLE);
} else {
msg = MailMsg_GetExpandedString(&bsys->trainers[battlerId].loseMessage, HEAP_ID_BATTLE);
}
FillWindowPixelBuffer(window, 0xFF);
String_Copy(bsys->msgBuffer, msg);
index = AddTextPrinterParameterized(window, 1, bsys->msgBuffer, 0, 0, delay, ov12_0223CF14);
String_Delete(msg);
} else {
MsgData *data;
String *msg;
int stringId;
u32 msgId;
int i;
if (a2 == 0x64) {
stringId = trainerId*3 + 1;
} else {
stringId = trainerId*3 + 2;
}
for (i = 0; i < 4; i++) {
if (PlayerProfile_GetVersion(bsys->playerProfile[i]) == 0) {
break;
}
}
if (i == 4) {
msgId = 724;
} else {
msgId = 723;
}
data = NewMsgDataFromNarc(MSGDATA_LOAD_DIRECT, NARC_msgdata_msg, msgId, HEAP_ID_BATTLE);
msg = NewString_ReadMsgData(data, stringId);
FillWindowPixelBuffer(window, 0xFF);
String_Copy(bsys->msgBuffer, msg);
index = AddTextPrinterParameterized(window, 1, bsys->msgBuffer, 0, 0, delay, ov12_0223CF14);
String_Delete(msg);
DestroyMsgData(data);
}
} else {
GetTrainerMessageByIdPair(trainerId, a2, bsys->msgBuffer, HEAP_ID_BATTLE);
FillWindowPixelBuffer(window, 0xFF);
index = AddTextPrinterParameterized(window, 1, bsys->msgBuffer, 0, 0, delay, ov12_0223CF14);
}
return index;
}
u32 BattleSystem_PrintBattleMessage(BattleSystem *bsys, MsgData *data, BattleMessage *msg, u8 delay) {
Window *window = BattleSystem_GetWindow(bsys, 0);
ov12_0223C558(bsys, msg);
ov12_0223C754(bsys, msg);
ov12_0223CEF4(bsys, data, msg);
FillWindowPixelBuffer(window, 0xFF);
return AddTextPrinterParameterized(window, 1, bsys->msgBuffer, 0, 0, delay, ov12_0223CF14);
}