diff --git a/asm/include/overlay_12_02264824.inc b/asm/include/overlay_12_02264824.inc index 9b22bf74c..8ed7d680d 100644 --- a/asm/include/overlay_12_02264824.inc +++ b/asm/include/overlay_12_02264824.inc @@ -56,7 +56,7 @@ .public BattleSystem_GetLevelFont .public BattleSystem_GetMessageData .public BattleSystem_GetPaletteData -.public ov12_0223A9A4 +.public BattleSystem_GetMessageFormat .public ov12_0226498C .public BattleHpBar_LoadResources .public BattleHpBar_FreeResources diff --git a/asm/include/overlay_12_02266024.inc b/asm/include/overlay_12_02266024.inc index e3df8f98a..30f024aee 100644 --- a/asm/include/overlay_12_02266024.inc +++ b/asm/include/overlay_12_02266024.inc @@ -137,7 +137,7 @@ .public ov12_0223A8EC .public BattleSystem_GetMessageData .public BattleSystem_GetPaletteData -.public ov12_0223A9A4 +.public BattleSystem_GetMessageFormat .public ov12_0223AAD8 .public ov12_0223AB54 .public BattleSystem_GetSafariBallCount diff --git a/asm/include/overlay_12_battle_command.inc b/asm/include/overlay_12_battle_command.inc index b817697c8..c11482f16 100644 --- a/asm/include/overlay_12_battle_command.inc +++ b/asm/include/overlay_12_battle_command.inc @@ -129,7 +129,7 @@ .public BattleSystem_GetMessageData .public BattleSystem_GetPaletteData .public BattleSystem_GetPokedex -.public ov12_0223A9A4 +.public BattleSystem_GetMessageFormat .public BattleSystem_GetMessageBuffer .public ov12_0223AAB8 .public ov12_0223AAD8 diff --git a/asm/include/overlay_12_battle_system.inc b/asm/include/overlay_12_battle_system.inc index a028e6176..9bc5714c5 100644 --- a/asm/include/overlay_12_battle_system.inc +++ b/asm/include/overlay_12_battle_system.inc @@ -97,7 +97,7 @@ .public ov12_0223A984 .public ov12_0223A990 .public ov12_0223A99C -.public ov12_0223A9A4 +.public BattleSystem_GetMessageFormat .public BattleSystem_GetMessageBuffer .public BattleSystem_GetTrainerIndex .public BattleSystem_GetTrainer diff --git a/asm/overlay_12_02266024.s b/asm/overlay_12_02266024.s index a730f6da1..9e1e067e3 100644 --- a/asm/overlay_12_02266024.s +++ b/asm/overlay_12_02266024.s @@ -2099,7 +2099,7 @@ _022671C2: _022671C4: ldr r0, [r5] mov r6, #0 - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat str r0, [sp, #0x1c] mov r0, #0x20 mov r1, #5 @@ -2889,7 +2889,7 @@ ov12_0226789C: ; 0x0226789C bl BattleSystem_GetMessageData add r6, r0, #0 ldr r0, [r5] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat add r4, r0, #0 ldr r1, _0226796C ; =0x000004A2 add r0, r6, #0 @@ -3080,7 +3080,7 @@ ov12_02267A58: ; 0x02267A58 bl BattleSystem_GetMessageData add r6, r0, #0 ldr r0, [r5] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat add r4, r0, #0 ldr r1, _02267B28 ; =0x000004C1 add r0, r6, #0 @@ -3179,7 +3179,7 @@ ov12_02267B40: ; 0x02267B40 bl BattleSystem_GetMessageData add r6, r0, #0 ldr r0, [r5] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat add r4, r0, #0 ldr r1, _02267C10 ; =0x000004BF add r0, r6, #0 @@ -3290,7 +3290,7 @@ ov12_02267C24: ; 0x02267C24 bl BattleSystem_GetMessageData str r0, [sp, #0x2c] ldr r0, [r5] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat str r0, [sp, #0x1c] add r0, r5, #0 add r1, sp, #0x40 @@ -4865,7 +4865,7 @@ ov12_0226885C: ; 0x0226885C bl NewString_ReadMsgData str r0, [sp, #0x28] ldr r0, [r7] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat str r0, [sp, #0x24] mov r0, #0x10 mov r1, #5 diff --git a/asm/overlay_12_battle_command.s b/asm/overlay_12_battle_command.s index 5be808593..9c678544a 100644 --- a/asm/overlay_12_battle_command.s +++ b/asm/overlay_12_battle_command.s @@ -3793,7 +3793,7 @@ ov12_02248228: ; 0x02248228 bl BattleSystem_GetMessageBuffer str r0, [sp, #0x20] add r0, r7, #0 - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat str r0, [sp, #0x24] add r0, r7, #0 bl BattleSystem_GetBgConfig diff --git a/asm/overlay_12_battle_system.s b/asm/overlay_12_battle_system.s index 23201048b..af117d27a 100644 --- a/asm/overlay_12_battle_system.s +++ b/asm/overlay_12_battle_system.s @@ -6,789 +6,6 @@ .text - thumb_func_start ov12_0223C754 -ov12_0223C754: ; 0x0223C754 - push {r3, r4, r5, lr} - add r4, r1, #0 - ldrb r2, [r4, #1] - mov r1, #0x3f - add r5, r0, #0 - and r1, r2 - cmp r1, #0x3c - bls _0223C766 - b _0223CDCA -_0223C766: - add r1, r1, r1 - add r1, pc - ldrh r1, [r1, #6] - lsl r1, r1, #0x10 - asr r1, r1, #0x10 - add pc, r1 -_0223C772: ; jump table - .short _0223CDCE - _0223C772 - 2 ; case 0 - .short _0223CDCE - _0223C772 - 2 ; case 1 - .short _0223C7EC - _0223C772 - 2 ; case 2 - .short _0223C7F6 - _0223C772 - 2 ; case 3 - .short _0223C800 - _0223C772 - 2 ; case 4 - .short _0223C80A - _0223C772 - 2 ; case 5 - .short _0223C814 - _0223C772 - 2 ; case 6 - .short _0223C81E - _0223C772 - 2 ; case 7 - .short _0223C82A - _0223C772 - 2 ; case 8 - .short _0223C834 - _0223C772 - 2 ; case 9 - .short _0223C848 - _0223C772 - 2 ; case 10 - .short _0223C85C - _0223C772 - 2 ; case 11 - .short _0223C870 - _0223C772 - 2 ; case 12 - .short _0223C884 - _0223C772 - 2 ; case 13 - .short _0223C898 - _0223C772 - 2 ; case 14 - .short _0223C8AC - _0223C772 - 2 ; case 15 - .short _0223C8C0 - _0223C772 - 2 ; case 16 - .short _0223C8D4 - _0223C772 - 2 ; case 17 - .short _0223C8E8 - _0223C772 - 2 ; case 18 - .short _0223C8FC - _0223C772 - 2 ; case 19 - .short _0223C7F6 - _0223C772 - 2 ; case 20 - .short _0223C910 - _0223C772 - 2 ; case 21 - .short _0223C924 - _0223C772 - 2 ; case 22 - .short _0223C938 - _0223C772 - 2 ; case 23 - .short _0223C94C - _0223C772 - 2 ; case 24 - .short _0223C960 - _0223C772 - 2 ; case 25 - .short _0223C974 - _0223C772 - 2 ; case 26 - .short _0223C988 - _0223C772 - 2 ; case 27 - .short _0223C99C - _0223C772 - 2 ; case 28 - .short _0223C9B0 - _0223C772 - 2 ; case 29 - .short _0223C9C4 - _0223C772 - 2 ; case 30 - .short _0223C9D8 - _0223C772 - 2 ; case 31 - .short _0223C9F6 - _0223C772 - 2 ; case 32 - .short _0223CA14 - _0223C772 - 2 ; case 33 - .short _0223CA32 - _0223C772 - 2 ; case 34 - .short _0223CA50 - _0223C772 - 2 ; case 35 - .short _0223CA6E - _0223C772 - 2 ; case 36 - .short _0223CA8C - _0223C772 - 2 ; case 37 - .short _0223CAAA - _0223C772 - 2 ; case 38 - .short _0223CAC8 - _0223C772 - 2 ; case 39 - .short _0223CAE6 - _0223C772 - 2 ; case 40 - .short _0223CB04 - _0223C772 - 2 ; case 41 - .short _0223CB22 - _0223C772 - 2 ; case 42 - .short _0223CB40 - _0223C772 - 2 ; case 43 - .short _0223CB5E - _0223C772 - 2 ; case 44 - .short _0223CB7C - _0223C772 - 2 ; case 45 - .short _0223CB9A - _0223C772 - 2 ; case 46 - .short _0223CBB8 - _0223C772 - 2 ; case 47 - .short _0223CBD6 - _0223C772 - 2 ; case 48 - .short _0223CBF4 - _0223C772 - 2 ; case 49 - .short _0223CC12 - _0223C772 - 2 ; case 50 - .short _0223CC30 - _0223C772 - 2 ; case 51 - .short _0223CC4E - _0223C772 - 2 ; case 52 - .short _0223CC76 - _0223C772 - 2 ; case 53 - .short _0223CC9E - _0223C772 - 2 ; case 54 - .short _0223CCC6 - _0223C772 - 2 ; case 55 - .short _0223CCEE - _0223C772 - 2 ; case 56 - .short _0223CD16 - _0223C772 - 2 ; case 57 - .short _0223CD3E - _0223C772 - 2 ; case 58 - .short _0223CD66 - _0223C772 - 2 ; case 59 - .short _0223CD8E - _0223C772 - 2 ; case 60 -_0223C7EC: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223C7F6: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223C800: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferStat - pop {r3, r4, r5, pc} -_0223C80A: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223C814: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223C81E: - ldr r2, [r4, #4] - ldr r3, [r4, #0x1c] - mov r1, #0 - bl BattleMessage_BufferNumbers - pop {r3, r4, r5, pc} -_0223C82A: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223C834: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223C848: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223C85C: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - pop {r3, r4, r5, pc} -_0223C870: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferStat - pop {r3, r4, r5, pc} -_0223C884: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferType - pop {r3, r4, r5, pc} -_0223C898: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferPokemon - pop {r3, r4, r5, pc} -_0223C8AC: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223C8C0: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferPoffin - pop {r3, r4, r5, pc} -_0223C8D4: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223C8E8: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223C8FC: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferBoxName - pop {r3, r4, r5, pc} -_0223C910: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferMove - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223C924: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferMove - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223C938: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferAbility - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223C94C: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferItem - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223C960: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNumber - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223C974: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223C988: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223C99C: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223C9B0: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223C9C4: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223C9D8: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223C9F6: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferAbility - pop {r3, r4, r5, pc} -_0223CA14: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223CA32: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferMove - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223CA50: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferMove - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223CA6E: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CA8C: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223CAAA: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223CAC8: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferStat - pop {r3, r4, r5, pc} -_0223CAE6: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferType - pop {r3, r4, r5, pc} -_0223CB04: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferStatus - pop {r3, r4, r5, pc} -_0223CB22: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNumber - pop {r3, r4, r5, pc} -_0223CB40: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CB5E: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223CB7C: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferStat - pop {r3, r4, r5, pc} -_0223CB9A: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferStatus - pop {r3, r4, r5, pc} -_0223CBB8: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferBoxName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferBoxName - pop {r3, r4, r5, pc} -_0223CBD6: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferItem - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferFlavorPreference - pop {r3, r4, r5, pc} -_0223CBF4: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CC12: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CC30: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223CC4E: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferMove - pop {r3, r4, r5, pc} -_0223CC76: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferAbility - pop {r3, r4, r5, pc} -_0223CC9E: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferAbility - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferStat - pop {r3, r4, r5, pc} -_0223CCC6: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferNickname - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferItem - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferItem - pop {r3, r4, r5, pc} -_0223CCEE: - ldr r2, [r4, #4] - mov r1, #0 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CD16: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CD3E: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223CD66: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl ov12_0223CEB4 - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl BattleMessage_BufferTrainerName - pop {r3, r4, r5, pc} -_0223CD8E: - ldr r2, [r4, #4] - mov r1, #0 - bl ov12_0223CEB4 - ldr r2, [r4, #8] - add r0, r5, #0 - mov r1, #1 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0xc] - add r0, r5, #0 - mov r1, #2 - bl BattleMessage_BufferNickname - ldr r2, [r4, #0x10] - add r0, r5, #0 - mov r1, #3 - bl ov12_0223CEB4 - ldr r2, [r4, #0x14] - add r0, r5, #0 - mov r1, #4 - bl BattleMessage_BufferTrainerName - ldr r2, [r4, #0x18] - add r0, r5, #0 - mov r1, #5 - bl BattleMessage_BufferNickname - pop {r3, r4, r5, pc} -_0223CDCA: - bl GF_AssertFail -_0223CDCE: - pop {r3, r4, r5, pc} - thumb_func_end ov12_0223C754 - - thumb_func_start BattleMessage_BufferNickname -BattleMessage_BufferNickname: ; 0x0223CDD0 - push {r3, r4, r5, lr} - mov r3, #0xff - lsl r3, r3, #8 - add r4, r1, #0 - lsl r1, r2, #0x18 - and r2, r3 - add r5, r0, #0 - lsr r1, r1, #0x18 - asr r2, r2, #8 - bl BattleSystem_GetPartyMon - add r2, r0, #0 - ldr r0, [r5, #0x14] - add r1, r4, #0 - bl BufferBoxMonNickname - pop {r3, r4, r5, pc} - .balign 4, 0 - thumb_func_end BattleMessage_BufferNickname - - thumb_func_start BattleMessage_BufferMove -BattleMessage_BufferMove: ; 0x0223CDF4 - ldr r3, _0223CDFC ; =BufferMoveName - ldr r0, [r0, #0x14] - bx r3 - nop -_0223CDFC: .word BufferMoveName - thumb_func_end BattleMessage_BufferMove - - thumb_func_start BattleMessage_BufferItem -BattleMessage_BufferItem: ; 0x0223CE00 - ldr r3, _0223CE08 ; =BufferItemName - ldr r0, [r0, #0x14] - bx r3 - nop -_0223CE08: .word BufferItemName - thumb_func_end BattleMessage_BufferItem - thumb_func_start BattleMessage_BufferNumber BattleMessage_BufferNumber: ; 0x0223CE0C push {r3, lr} @@ -900,8 +117,8 @@ BattleMessage_BufferFlavorPreference: ; 0x0223CEA8 _0223CEB0: .word BufferFlavorDislikeText thumb_func_end BattleMessage_BufferFlavorPreference - thumb_func_start ov12_0223CEB4 -ov12_0223CEB4: ; 0x0223CEB4 + thumb_func_start BattleMessage_BufferTrainerClass +BattleMessage_BufferTrainerClass: ; 0x0223CEB4 push {r3, r4, r5, lr} add r4, r1, #0 add r5, r0, #0 @@ -912,7 +129,7 @@ ov12_0223CEB4: ; 0x0223CEB4 add r1, r4, #0 bl BufferTrainerClassNameFromDataStruct pop {r3, r4, r5, pc} - thumb_func_end ov12_0223CEB4 + thumb_func_end BattleMessage_BufferTrainerClass thumb_func_start BattleMessage_BufferTrainerName BattleMessage_BufferTrainerName: ; 0x0223CECC diff --git a/asm/overlay_12_hp_bar.s b/asm/overlay_12_hp_bar.s index 3c97ef72a..8e45e93f1 100644 --- a/asm/overlay_12_hp_bar.s +++ b/asm/overlay_12_hp_bar.s @@ -1244,7 +1244,7 @@ ov12_0226516C: ; 0x0226516C bl BattleSystem_GetMessageData add r7, r0, #0 ldr r0, [r5, #0xc] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat add r4, r0, #0 mov r0, #0x16 mov r1, #5 @@ -1878,7 +1878,7 @@ ov12_022656CC: ; 0x022656CC bl BattleSystem_GetMessageData str r0, [sp, #0x20] ldr r0, [r4, #0xc] - bl ov12_0223A9A4 + bl BattleSystem_GetMessageFormat add r7, r0, #0 mov r0, #0x1e mov r1, #5 diff --git a/include/battle/battle.h b/include/battle/battle.h index 963f41e58..9eb27e975 100644 --- a/include/battle/battle.h +++ b/include/battle/battle.h @@ -523,7 +523,7 @@ struct BattleSystem { Window *window; MsgData *msgData; u32 *unk10; - u32 *unk14; + MessageFormat *msgFormat; String *msgBuffer; u32 unk1C; u32 unk20; diff --git a/include/battle/battle_system.h b/include/battle/battle_system.h index d2ad6ad4a..02c9c2c8b 100644 --- a/include/battle/battle_system.h +++ b/include/battle/battle_system.h @@ -39,7 +39,7 @@ u16 *ov12_0223A978(BattleSystem *bsys); u16 *ov12_0223A984(BattleSystem *bsys); u16 *ov12_0223A990(BattleSystem *bsys); UnkBattleSystemSub1D0 *ov12_0223A99C(BattleSystem *bsys); -u32 *ov12_0223A9A4(BattleSystem *bsys); +MessageFormat *BattleSystem_GetMessageFormat(BattleSystem *bsys); String *BattleSystem_GetMessageBuffer(BattleSystem *bsys); u16 BattleSystem_GetTrainerIndex(BattleSystem *bsys, int battlerId); Trainer *BattleSystem_GetTrainer(BattleSystem *bsys, int battlerId); @@ -159,8 +159,18 @@ void ov12_0226AA8C(u32 *a1, u32 flag); 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); +void BattleMessage_BufferStat(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferNumber(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferNumbers(BattleSystem *bsys, int a1, int param, int a3); +void BattleMessage_BufferTrainerName(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferAbility(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferType(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferPokemon(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferPoffin(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferTrainerClass(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferBoxName(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferStatus(BattleSystem *bsys, int a1, int param); +void BattleMessage_BufferFlavorPreference(BattleSystem *bsys, int a1, int param); #endif diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index 3769f89a0..189b57b8c 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -15,6 +15,11 @@ #include "unk_02005D10.h" static u8 ov12_0223BFB0(u8 *buffer, u8 *index, u16 *size); +static void BattleSystem_AdjustMessageForSide(BattleSystem *bsys, BattleMessage *msg); +static void BattleSystem_BufferMessage(BattleSystem *bsys, BattleMessage *msg); +static void BattleMessage_BufferNickname(BattleSystem *bsys, int bufferIndex, int param); +static void BattleMessage_BufferMove(BattleSystem *bsys, int bufferIndex, int param); +static void BattleMessage_BufferItem(BattleSystem *bsys, int bufferIndex, int param); BgConfig *BattleSystem_GetBgConfig(BattleSystem *bsys) { return bsys->bgConfig; @@ -162,8 +167,8 @@ UnkBattleSystemSub1D0 *ov12_0223A99C(BattleSystem *bsys) { return &bsys->unk1D0[0]; } -u32 *ov12_0223A9A4(BattleSystem *bsys) { - return bsys->unk14; +MessageFormat *BattleSystem_GetMessageFormat(BattleSystem *bsys) { + return bsys->msgFormat; } String *BattleSystem_GetMessageBuffer(BattleSystem *bsys) { @@ -1399,8 +1404,8 @@ u8 BattleSystem_PrintTrainerMessage(BattleSystem *bsys, int trainerId, int battl 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); + BattleSystem_AdjustMessageForSide(bsys, msg); + BattleSystem_BufferMessage(bsys, msg); ov12_0223CEF4(bsys, data, msg); FillWindowPixelBuffer(window, 0xFF); return AddTextPrinterParameterized(window, 1, bsys->msgBuffer, 0, 0, delay, ov12_0223CF14); @@ -1409,8 +1414,8 @@ u32 BattleSystem_PrintBattleMessage(BattleSystem *bsys, MsgData *data, BattleMes u32 ov12_0223C4E8(BattleSystem *bsys, Window *window, MsgData *data, BattleMessage *msg, int x, int y, int flag, int width, int delay) { int dx; - ov12_0223C558(bsys, msg); - ov12_0223C754(bsys, msg); + BattleSystem_AdjustMessageForSide(bsys, msg); + BattleSystem_BufferMessage(bsys, msg); ov12_0223CEF4(bsys, data, msg); if (flag & 1) { @@ -1426,7 +1431,7 @@ u32 ov12_0223C4E8(BattleSystem *bsys, Window *window, MsgData *data, BattleMessa return AddTextPrinterParameterized(window, 0, bsys->msgBuffer, x + dx, y, delay, ov12_0223CF14); } -static void ov12_0223C558(BattleSystem *bsys, BattleMessage *msg) { +static void BattleSystem_AdjustMessageForSide(BattleSystem *bsys, BattleMessage *msg) { u32 battleType = BattleSystem_GetBattleType(bsys); if (msg->tag & 0x80) { @@ -1559,3 +1564,293 @@ static void ov12_0223C558(BattleSystem *bsys, BattleMessage *msg) { GF_ASSERT(0); } } + +static void BattleSystem_BufferMessage(BattleSystem *bsys, BattleMessage *msg) { + switch (msg->tag & 0x3F) { + case TAG_NONE: + case TAG_NONE_SIDE: + break; + case TAG_NICKNAME: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + break; + case TAG_MOVE: + case TAG_MOVE_SIDE: + BattleMessage_BufferMove(bsys, 0, msg->param[0]); + break; + case TAG_STAT: + BattleMessage_BufferStat(bsys, 0, msg->param[0]); + break; + case TAG_ITEM: + BattleMessage_BufferItem(bsys, 0, msg->param[0]); + break; + case TAG_NUMBER: + BattleMessage_BufferNumber(bsys, 0, msg->param[0]); + break; + case TAG_NUMBERS: + BattleMessage_BufferNumbers(bsys, 0, msg->param[0], msg->unk1C); + break; + case TAG_TRNAME: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + break; + case TAG_NICKNAME_NICKNAME: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferMove(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_ABILITY: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_STAT: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferStat(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_TYPE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferType(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_POKE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferPokemon(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_ITEM: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_POFFIN: //unused + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferPoffin(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_NUM: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferNumber(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_TRNAME: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_BOX: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferBoxName(bsys, 1, msg->param[1]); + break; + case TAG_MOVE_NICKNAME: + BattleMessage_BufferMove(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + break; + case TAG_MOVE_MOVE: + BattleMessage_BufferMove(bsys, 0, msg->param[0]); + BattleMessage_BufferMove(bsys, 1, msg->param[1]); + break; + case TAG_ABILITY_NICKNAME: + BattleMessage_BufferAbility(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + break; + case TAG_ITEM_MOVE: + BattleMessage_BufferItem(bsys, 0, msg->param[0]); + BattleMessage_BufferMove(bsys, 1, msg->param[1]); + break; + case TAG_NUMBER_NUMBER: + BattleMessage_BufferNumber(bsys, 0, msg->param[0]); + BattleMessage_BufferNumber(bsys, 1, msg->param[1]); + break; + case TAG_TRNAME_TRNAME: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + break; + case TAG_TRNAME_NICKNAME: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + break; + case TAG_TRNAME_ITEM: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + break; + case TAG_TRNAME_NUM: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferNumber(bsys, 1, msg->param[1]); + break; + case TAG_TRCLASS_TRNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + break; + case TAG_NICKNAME_NICKNAME_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferMove(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_NICKNAME_ABILITY: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferAbility(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_NICKNAME_ITEM: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferItem(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_MOVE_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferMove(bsys, 1, msg->param[1]); + BattleMessage_BufferMove(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_MOVE_NUMBER: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferMove(bsys, 1, msg->param[1]); + BattleMessage_BufferNumber(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_NICKNAME: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferMove(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_ITEM: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferItem(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_STAT: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferStat(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_TYPE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferType(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_STATUS: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferStatus(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_NUMBER: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferNumber(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ITEM_NICKNAME: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ITEM_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + BattleMessage_BufferMove(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ITEM_STAT: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + BattleMessage_BufferStat(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ITEM_STATUS: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + BattleMessage_BufferStatus(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_BOX_BOX: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferBoxName(bsys, 1, msg->param[1]); + BattleMessage_BufferBoxName(bsys, 2, msg->param[2]); + break; + case TAG_ITEM_NICKNAME_FLAVOR: + BattleMessage_BufferItem(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferFlavorPreference(bsys, 2, msg->param[2]); + break; + case TAG_TRNAME_NICKNAME_NICKNAME: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + break; + case TAG_TRCLASS_TRNAME_NICKNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + break; + case TAG_TRCLASS_TRNAME_ITEM: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferItem(bsys, 2, msg->param[2]); + break; + case TAG_NICKNAME_ABILITY_NICKNAME_MOVE: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferMove(bsys, 3, msg->param[3]); + break; + case TAG_NICKNAME_ABILITY_NICKNAME_ABILITY: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferAbility(bsys, 3, msg->param[3]); + break; + case TAG_NICKNAME_ABILITY_NICKNAME_STAT: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferAbility(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferStat(bsys, 3, msg->param[3]); + break; + case TAG_NICKNAME_ITEM_NICKNAME_ITEM: + BattleMessage_BufferNickname(bsys, 0, msg->param[0]); + BattleMessage_BufferItem(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferItem(bsys, 3, msg->param[3]); + break; + case TAG_TRNAME_NICKNAME_TRNAME_NICKNAME: + BattleMessage_BufferTrainerName(bsys, 0, msg->param[0]); + BattleMessage_BufferNickname(bsys, 1, msg->param[1]); + BattleMessage_BufferTrainerName(bsys, 2, msg->param[2]); + BattleMessage_BufferNickname(bsys, 3, msg->param[3]); + break; + case TAG_TRCLASS_TRNAME_NICKNAME_NICKNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferNickname(bsys, 3, msg->param[3]); + break; + case TAG_TRCLASS_TRNAME_NICKNAME_TRNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferTrainerName(bsys, 3, msg->param[3]); + break; + case TAG_TRCLASS_TRNAME_TRCLASS_TRNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferTrainerClass(bsys, 2, msg->param[2]); + BattleMessage_BufferTrainerName(bsys, 3, msg->param[3]); + break; + case TAG_TRCLASS_TRNAME_NICKNAME_TRCLASS_TRNAME_NICKNAME: + BattleMessage_BufferTrainerClass(bsys, 0, msg->param[0]); + BattleMessage_BufferTrainerName(bsys, 1, msg->param[1]); + BattleMessage_BufferNickname(bsys, 2, msg->param[2]); + BattleMessage_BufferTrainerClass(bsys, 3, msg->param[3]); + BattleMessage_BufferTrainerName(bsys, 4, msg->param[4]); + BattleMessage_BufferNickname(bsys, 5, msg->param[5]); + break; + default: + GF_ASSERT(0); + } +} + +static void BattleMessage_BufferNickname(BattleSystem *bsys, int bufferIndex, int param) { + Pokemon *mon = BattleSystem_GetPartyMon(bsys, param & 0xFF, (param & 0xFF00) >> 8); + BufferBoxMonNickname(bsys->msgFormat, bufferIndex, &mon->box); +} + +static void BattleMessage_BufferMove(BattleSystem *bsys, int bufferIndex, int param) { + BufferMoveName(bsys->msgFormat, bufferIndex, param); +} + +static void BattleMessage_BufferItem(BattleSystem *bsys, int bufferIndex, int param) { + BufferItemName(bsys->msgFormat, bufferIndex, param); +}