From db63fc1a093472ebb5b7d5a75781037026bf2fe5 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sat, 7 Oct 2017 15:15:47 +0200 Subject: [PATCH] battle message huge take off --- asm/battle_frontier_2.s | 4 +- asm/battle_link_817C95C.s | 14 +- asm/battle_message.s | 694 ----------- data/battle_message.s | 2083 ---------------------------------- include/battle.h | 2 +- include/battle_message.h | 16 +- include/battle_string_ids.h | 385 +++++++ ld_script.txt | 3 +- src/battle_2.c | 9 +- src/battle_message.c | 1428 +++++++++++++++++++++++ src/battle_script_commands.c | 27 +- sym_ewram.txt | 21 +- 12 files changed, 1857 insertions(+), 2829 deletions(-) delete mode 100644 data/battle_message.s create mode 100644 include/battle_string_ids.h create mode 100644 src/battle_message.c diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index de56171670..9e01d22d1c 100755 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -20577,7 +20577,7 @@ _081A5328: movs r0, 0x1 negs r0, r0 strb r0, [r1, 0x1] - ldr r0, =gText_JapaneseHonorific + ldr r0, =gText_PlayerMon1Name bl BattleStringExpandPlaceholdersToDisplayedString ldr r4, =gDisplayedStringBattle adds r0, r4, 0 @@ -20586,7 +20586,7 @@ _081A5328: ldr r0, =gText_Vs movs r1, 0x10 bl sub_814F9EC - ldr r0, =gText_RivalBuffer + ldr r0, =gText_OpponentMon1Name bl BattleStringExpandPlaceholdersToDisplayedString adds r0, r4, 0 movs r1, 0x11 diff --git a/asm/battle_link_817C95C.s b/asm/battle_link_817C95C.s index 39ae59d8b4..ec5baadd97 100644 --- a/asm/battle_link_817C95C.s +++ b/asm/battle_link_817C95C.s @@ -665,7 +665,7 @@ _0817D16C: bl _0817DFAC .pool _0817D1B8: - ldr r1, =gUnknown_02022F5C + ldr r1, =gBattleTextBuff1 + 4 ldrb r0, [r1] cmp r0, 0 beq _0817D1C4 @@ -917,7 +917,7 @@ _0817D3C0: bne _0817D3CC bl _0817E0A6 _0817D3CC: - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD1 bne _0817D3E8 @@ -946,7 +946,7 @@ _0817D3FE: ldrb r1, [r1] cmp r0, r1 bne _0817D436 - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD1 bne _0817D42C @@ -988,7 +988,7 @@ _0817D45C: bne _0817D468 bl _0817E0A6 _0817D468: - ldr r1, =gUnknown_02022F6A + ldr r1, =gBattleTextBuff2 + 2 ldrh r0, [r1] cmp r0, 0xD3 bne _0817D484 @@ -2182,7 +2182,7 @@ _0817DE10: b _0817DFAA .pool _0817DE58: - ldr r1, =gUnknown_02022F5A + ldr r1, =gBattleTextBuff1 + 2 ldrh r0, [r1] cmp r0, 0x73 bne _0817DE82 @@ -2204,7 +2204,7 @@ _0817DE58: ands r0, r2 strb r0, [r1] _0817DE82: - ldr r2, =gUnknown_02022F5A + ldr r2, =gBattleTextBuff1 + 2 ldrh r0, [r2] cmp r0, 0x71 bne _0817DEAA @@ -2225,7 +2225,7 @@ _0817DE82: ands r0, r2 strb r0, [r1] _0817DEAA: - ldr r1, =gUnknown_02022F5A + ldr r1, =gBattleTextBuff1 + 2 ldrh r0, [r1] cmp r0, 0x36 beq _0817DEB4 diff --git a/asm/battle_message.s b/asm/battle_message.s index b114a36f8e..9afa6e3995 100644 --- a/asm/battle_message.s +++ b/asm/battle_message.s @@ -5,700 +5,6 @@ .text - thumb_func_start BufferStringBattle -BufferStringBattle: @ 814E0C4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 16 - lsrs r6, r0, 16 - movs r7, 0 - ldr r4, =gStringInfo - ldr r0, =gActiveBank - mov r8, r0 - ldrb r1, [r0] - lsls r1, 9 - ldr r0, =gBattleBufferA + 4 - adds r1, r0 - str r1, [r4] - ldr r2, =gLastUsedItem - ldrh r0, [r1, 0x4] - strh r0, [r2] - ldr r2, =gLastUsedAbility - ldrb r0, [r1, 0x6] - strb r0, [r2] - ldr r5, =gBattleScripting - ldrb r0, [r1, 0x7] - strb r0, [r5, 0x17] - ldr r3, =gBattleStruct - ldr r0, [r3] - adds r0, 0x52 - ldrb r1, [r1, 0x8] - strb r1, [r0] - ldr r0, [r3] - adds r0, 0xB1 - ldr r1, [r4] - ldrb r1, [r1, 0x9] - strb r1, [r0] - ldr r1, =gStringBank - ldr r2, [r4] - ldrb r0, [r2, 0xA] - strb r0, [r1] - ldr r0, [r3] - adds r0, 0x8E - ldrb r1, [r2, 0xB] - strb r1, [r0] - movs r2, 0 - mov r12, r8 - mov r9, r5 - ldr r1, =gBattleTextBuff1 - mov r10, r1 - ldr r3, =gAbilitiesPerBank -_0814E126: - adds r0, r2, r3 - ldr r1, [r4] - adds r1, 0xC - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - adds r2, 0x1 - cmp r2, 0x3 - ble _0814E126 - movs r2, 0 - ldr r0, =gBattleTextBuff1 - mov r8, r0 - ldr r3, =gStringInfo - ldr r5, =gBattleTextBuff2 - ldr r4, =gBattleTextBuff3 -_0814E144: - mov r0, r8 - adds r1, r2, r0 - ldr r0, [r3] - adds r0, 0x10 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r5 - ldr r0, [r3] - adds r0, 0x20 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r2, r4 - ldr r0, [r3] - adds r0, 0x30 - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r2, 0x1 - cmp r2, 0xF - ble _0814E144 - cmp r6, 0x5 - bls _0814E176 - b _0814E6B8 -_0814E176: - lsls r0, r6, 2 - ldr r1, =_0814E1B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0814E1B4: - .4byte _0814E1CC - .4byte _0814E2AC - .4byte _0814E394 - .4byte _0814E430 - .4byte _0814E4F8 - .4byte _0814E55C -_0814E1CC: - ldr r0, =gBattleTypeFlags - ldr r2, [r0] - movs r0, 0x8 - ands r0, r2 - cmp r0, 0 - beq _0814E26C - ldr r0, =0x02000002 - ands r0, r2 - cmp r0, 0 - beq _0814E248 - movs r0, 0x80 - lsls r0, 16 - ands r0, r2 - cmp r0, 0 - bne _0814E260 - movs r0, 0x40 - ands r0, r2 - cmp r0, 0 - beq _0814E214 - movs r0, 0x80 - lsls r0, 17 - ands r2, r0 - ldr r7, =gText_TwoTrainersWantToBattle - cmp r2, 0 - bne _0814E200 - b _0814E6D8 -_0814E200: - ldr r7, =gText_TwoTrainersWantToBattle3 - b _0814E6D8 - .pool -_0814E214: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _0814E22C - ldr r7, =gText_TrainerXYWantsToBattle - b _0814E6D8 - .pool -_0814E22C: - movs r0, 0x80 - lsls r0, 17 - ands r2, r0 - ldr r7, =gText_TrainerXWantsToBattle - cmp r2, 0 - bne _0814E23A - b _0814E6D8 -_0814E23A: - ldr r7, =gText_TrainerWantsToBattle - b _0814E6D8 - .pool -_0814E248: - movs r0, 0x80 - lsls r0, 15 - ands r0, r2 - cmp r0, 0 - bne _0814E260 - movs r0, 0x80 - lsls r0, 8 - ands r2, r0 - ldr r7, =gText_TrainerXYWantsToBattle - cmp r2, 0 - bne _0814E260 - b _0814E6D8 -_0814E260: - ldr r7, =gText_TwoTrainersWantToBattle2 - b _0814E6D8 - .pool -_0814E26C: - movs r0, 0x80 - lsls r0, 6 - ands r0, r2 - cmp r0, 0 - beq _0814E280 - ldr r7, =gText_WildPkmnAppeared2 - b _0814E6D8 - .pool -_0814E280: - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - beq _0814E290 - ldr r7, =gText_TwoWildPkmnAppeared - b _0814E6D8 - .pool -_0814E290: - movs r0, 0x80 - lsls r0, 2 - ands r2, r0 - ldr r7, =gText_WildPkmnAppeared - cmp r2, 0 - bne _0814E29E - b _0814E6D8 -_0814E29E: - ldr r7, =gText_WildPkmnAppearedPause - b _0814E6D8 - .pool -_0814E2AC: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E310 - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E308 - movs r0, 0x80 - lsls r0, 15 - ands r0, r1 - cmp r0, 0 - beq _0814E2DC - ldr r7, =gText_TrainerXYSentOutZGoN - b _0814E6D8 - .pool -_0814E2DC: - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - beq _0814E2F0 - ldr r7, =gText_GoTwoPkmn - b _0814E6D8 - .pool -_0814E2F0: - movs r0, 0x40 - ands r1, r0 - ldr r7, =gText_GoTwoPkmn - cmp r1, 0 - bne _0814E2FC - b _0814E6D8 -_0814E2FC: - ldr r7, =gText_EnemySentOutPkmnGoPkmn - b _0814E6D8 - .pool -_0814E308: - ldr r7, =gText_GoPkmn - b _0814E6D8 - .pool -_0814E310: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E368 - movs r0, 0x80 - lsls r0, 8 - ands r0, r1 - cmp r0, 0 - bne _0814E330 - movs r0, 0x80 - lsls r0, 16 - ands r0, r1 - cmp r0, 0 - beq _0814E33C -_0814E330: - ldr r7, =gText_TwoTrainersSentPkmn - b _0814E6D8 - .pool -_0814E33C: - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0814E34C - ldr r7, =gText_TwoTrainersSentOutPkmn - b _0814E6D8 - .pool -_0814E34C: - ldr r0, =0x02000002 - ands r1, r0 - ldr r7, =gText_TrainerXYSentOutTwoPkmn - cmp r1, 0 - bne _0814E358 - b _0814E6D8 -_0814E358: - ldr r7, =gText_TrainerXSentOutTwoPkmn - b _0814E6D8 - .pool -_0814E368: - ldr r0, =0x02000002 - ands r1, r0 - cmp r1, 0 - beq _0814E380 - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - ldr r7, =gText_TrainerXSentOutPkmn - cmp r1, r0 - beq _0814E380 - b _0814E6D8 -_0814E380: - ldr r7, =gText_TrainerXYSentOutPkmn - b _0814E6D8 - .pool -_0814E394: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E3EC - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - ldrb r2, [r0] - cmp r2, 0 - bne _0814E3BC - ldr r7, =gText_PkmnThatsEnough - b _0814E6D8 - .pool -_0814E3BC: - cmp r2, 0x1 - beq _0814E3CC - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E3D8 -_0814E3CC: - ldr r7, =gText_PkmnComeBack - b _0814E6D8 - .pool -_0814E3D8: - ldr r7, =gText_PkmnGoodComeBack - cmp r2, 0x2 - beq _0814E3E0 - b _0814E6D8 -_0814E3E0: - ldr r7, =gText_PkmnOkComeBack - b _0814E6D8 - .pool -_0814E3EC: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0x80 - lsls r0, 4 - ldr r2, =gBattleTypeFlags - cmp r1, r0 - beq _0814E406 - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 18 - ands r0, r1 - cmp r0, 0 - beq _0814E428 -_0814E406: - ldr r0, [r2] - movs r1, 0x40 - ands r0, r1 - ldr r7, =gText_TrainerXWithdrewPkmn - cmp r0, 0 - bne _0814E414 - b _0814E6D8 -_0814E414: - ldr r7, =gText_TrainerXWithdrewPkmn2 - b _0814E6D8 - .pool -_0814E428: - ldr r7, =gText_TrainerXYWithdrewPkmn - b _0814E6D8 - .pool -_0814E430: - mov r4, r9 - ldrb r0, [r4, 0x17] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0814E488 - ldr r0, =gBattleStruct - ldr r0, [r0] - adds r0, 0xB1 - ldrb r2, [r0] - cmp r2, 0 - beq _0814E456 - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814E468 -_0814E456: - ldr r7, =gText_GoPkmn2 - b _0814E6D8 - .pool -_0814E468: - cmp r2, 0x1 - bne _0814E474 - ldr r7, =gText_DoItPkmn - b _0814E6D8 - .pool -_0814E474: - ldr r7, =gText_YourFoesWeakGetEmPkmn - cmp r2, 0x2 - beq _0814E47C - b _0814E6D8 -_0814E47C: - ldr r7, =gText_GoForItPkmn - b _0814E6D8 - .pool -_0814E488: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - ldr r0, =0x02000002 - ands r0, r1 - cmp r0, 0 - beq _0814E4DC - movs r0, 0x80 - lsls r0, 16 - ands r0, r1 - cmp r0, 0 - beq _0814E4AC - ldrb r0, [r4, 0x17] - b _0814E4EA - .pool -_0814E4AC: - movs r0, 0x40 - ands r1, r0 - cmp r1, 0 - beq _0814E4BC - ldr r7, =gText_TrainerXSentOutPkmn3 - b _0814E6D8 - .pool -_0814E4BC: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - ldr r7, =gText_TrainerXSentOutPkmn2 - cmp r1, r0 - beq _0814E4CC - b _0814E6D8 -_0814E4CC: - ldr r7, =gText_TrainerXYSentOutPkmn2 - b _0814E6D8 - .pool -_0814E4DC: - movs r0, 0x80 - lsls r0, 8 - ands r1, r0 - cmp r1, 0 - beq _0814E4CC - mov r1, r9 - ldrb r0, [r1, 0x17] -_0814E4EA: - ldr r7, =gText_TrainerXYSentOutPkmn3 - cmp r0, 0x1 - beq _0814E4F2 - b _0814E6D8 -_0814E4F2: - b _0814E4CC - .pool -_0814E4F8: - mov r0, r10 - bl sub_814F8F8 - ldr r0, =gStringInfo - ldr r2, [r0] - ldrh r1, [r2] - movs r0, 0xB1 - lsls r0, 1 - cmp r1, r0 - bls _0814E534 - ldr r0, =gBattleTextBuff2 - ldr r1, =gBattleStruct - ldr r1, [r1] - adds r1, 0x8E - ldrb r2, [r1] - lsls r1, r2, 4 - adds r1, r2 - ldr r2, =gText_UnknownMoveTypes - adds r1, r2 - bl StringCopy - b _0814E544 - .pool -_0814E534: - ldr r0, =gBattleTextBuff2 - ldrh r2, [r2] - movs r1, 0xD - muls r1, r2 - ldr r2, =gMoveNames - adds r1, r2 - bl StringCopy -_0814E544: - ldr r0, =gBattleTextBuff2 - bl sub_814F950 - ldr r7, =gText_XUsedY2 - b _0814E6D8 - .pool -_0814E55C: - ldr r4, =gBattleTextBuff1 - ldrb r1, [r4] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0814E5C4 - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814E58A - ldrb r1, [r4] - cmp r1, 0x3 - beq _0814E58A - movs r0, 0x3 - eors r0, r1 - strb r0, [r4] -_0814E58A: - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - subs r0, 0x2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0814E5A4 - ldr r7, =gText_GotAwaySafely - b _0814E6D8 - .pool -_0814E5A4: - ldr r0, =gBattleTypeFlags - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - ldr r7, =gText_WildFled - cmp r0, 0 - bne _0814E5B4 - b _0814E6D8 -_0814E5B4: - ldr r7, =gText_TwoWildFled - b _0814E6D8 - .pool -_0814E5C4: - mov r1, r12 - ldrb r0, [r1] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814E5E0 - ldrb r1, [r4] - cmp r1, 0x3 - beq _0814E5E0 - movs r0, 0x3 - eors r0, r1 - strb r0, [r4] -_0814E5E0: - ldr r0, =gBattleTypeFlags - ldr r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0814E638 - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E628 - cmp r0, 0x2 - bgt _0814E608 - cmp r0, 0x1 - beq _0814E60E - b _0814E6D8 - .pool -_0814E608: - cmp r0, 0x3 - beq _0814E630 - b _0814E6D8 -_0814E60E: - movs r0, 0x80 - lsls r0, 16 - ands r1, r0 - ldr r7, =gText_PlayerBeatTwo - cmp r1, 0 - beq _0814E6D8 - ldr r7, =gText_TwoEnemiesDefeated - b _0814E6D8 - .pool -_0814E628: - ldr r7, =gText_PlayerLostToTwo - b _0814E6D8 - .pool -_0814E630: - ldr r7, =gText_PlayerBattledToDrawVsTwo - b _0814E6D8 - .pool -_0814E638: - ldr r0, =gTrainerBattleOpponent_A - ldrh r1, [r0] - movs r0, 0xC0 - lsls r0, 4 - cmp r1, r0 - bne _0814E680 - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E670 - cmp r0, 0x2 - bgt _0814E660 - cmp r0, 0x1 - beq _0814E666 - b _0814E6D8 - .pool -_0814E660: - cmp r0, 0x3 - beq _0814E678 - b _0814E6D8 -_0814E666: - ldr r7, =gText_PlayerDefeatedXY - b _0814E6D8 - .pool -_0814E670: - ldr r7, =gText_PlayerLostAgainst2 - b _0814E6D8 - .pool -_0814E678: - ldr r7, =gText_PlayerBattledToDraw2 - b _0814E6D8 - .pool -_0814E680: - ldr r0, =gBattleTextBuff1 - ldrb r0, [r0] - cmp r0, 0x2 - beq _0814E6A8 - cmp r0, 0x2 - bgt _0814E698 - cmp r0, 0x1 - beq _0814E69E - b _0814E6D8 - .pool -_0814E698: - cmp r0, 0x3 - beq _0814E6B0 - b _0814E6D8 -_0814E69E: - ldr r7, =gText_PlayerDefeated - b _0814E6D8 - .pool -_0814E6A8: - ldr r7, =gText_PlayerLostAgainst - b _0814E6D8 - .pool -_0814E6B0: - ldr r7, =gText_PlayerBattledToDraw - b _0814E6D8 - .pool -_0814E6B8: - movs r0, 0xBE - lsls r0, 1 - cmp r6, r0 - bls _0814E6CC - ldr r1, =gDisplayedStringBattle - movs r0, 0xFF - strb r0, [r1] - b _0814E6DE - .pool -_0814E6CC: - ldr r1, =gBattleStringsTable - adds r0, r6, 0 - subs r0, 0xC - lsls r0, 2 - adds r0, r1 - ldr r7, [r0] -_0814E6D8: - adds r0, r7, 0 - bl BattleStringExpandPlaceholdersToDisplayedString -_0814E6DE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BufferStringBattle - thumb_func_start BattleStringExpandPlaceholdersToDisplayedString BattleStringExpandPlaceholdersToDisplayedString: @ 814E6F0 push {lr} diff --git a/data/battle_message.s b/data/battle_message.s deleted file mode 100644 index 4c72557d80..0000000000 --- a/data/battle_message.s +++ /dev/null @@ -1,2083 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .section .rodata - -gText_Buffer36:: @ 85C9B78 - .string "{STRING 36}$" - -gText_PkmnGainedEXP:: @ 85C9B7B - .string "{STRING 0} gained{PLAYER}\n{STRING 52} EXP. Points!\p$" - -gText_EmptyString4:: @ 85C9B98 - .string "$" - -gText_ABoosted:: @ 85C9B99 - .string " a boosted$" - -gText_PkmnGrewToLv:: @ 85C9BA4 - .string "{STRING 0} grew to\nLV. {PLAYER}!{UNKNOWN_A}\p$" - -gText_PkmnLearnedMove:: @ 85C9BBA - .string "{STRING 0} learned\n{PLAYER}!{UNKNOWN_A}\p$" - -gText_TryToLearnMove1:: @ 85C9BCC - .string "{STRING 0} is trying to\nlearn {PLAYER}.\p$" - -gText_TryToLearnMove2:: @ 85C9BE7 - .string "But, {STRING 0} can’t learn\nmore than four moves.\p$" - -gText_TryToLearnMove3:: @ 85C9C12 - .string "Delete a move to make\nroom for {PLAYER}?$" - -gText_PkmnForgotMove:: @ 85C9C35 - .string "{STRING 0} forgot\n{PLAYER}.\p$" - -gText_StopLearningMove:: @ 85C9C44 - .string "{PAUSE 32}Stop learning\n{PLAYER}?$" - -gText_DidNotLearnMove:: @ 85C9C59 - .string "{STRING 0} did not learn\n{PLAYER}.\p$" - -gText_UseNextPkmn:: @ 85C9C6F - .string "Use next POKéMON?$" - -gText_AttackMissed:: @ 85C9C81 - .string "{STRING 15}’s\nattack missed!$" - -gText_PkmnProtectedItself:: @ 85C9C95 - .string "{STRING 16}\nprotected itself!$" - -gText_AvoidedDamage:: @ 85C9CAA - .string "{STRING 16} avoided\ndamage with {STRING 25}!$" - -gText_PkmnMakesGroundMiss:: @ 85C9CC5 - .string "{STRING 16} makes GROUND\nmoves miss with {STRING 25}!$" - -gText_PkmnAvoidedAttack:: @ 85C9CE9 - .string "{STRING 16} avoided\nthe attack!$" - -gText_ItDoesntAffect:: @ 85C9D00 - .string "It doesn’t affect\n{STRING 16}…$" - -gText_PkmnFainted:: @ 85C9D16 - .string "{STRING 15}\nfainted!\p$" - -gText_PkmnFainted2:: @ 85C9D23 - .string "{STRING 16}\nfainted!\p$" - -gText_PlayerGotMoney:: @ 85C9D30 - .string "{STRING 35} got ¥{STRING 0}\nfor winning!\p$" - -gText_PlayerWhiteout:: @ 85C9D49 - .string "{STRING 35} is out of\nusable POKéMON!\p$" - -gText_PlayerWhiteout2:: @ 85C9D67 - .string "{STRING 35} whited out!{PAUSE_UNTIL_PRESS}$" - -gText_PreventsEscape:: @ 85C9D78 - .string "{STRING 19} prevents\nescape with {STRING 26}!\p$" - -gText_CantEscape2:: @ 85C9D95 - .string "Can’t escape!\p$" - -gText_PkmnCantEscape2:: @ 85C9DA4 - .string "{STRING 15} can’t escape!$" - -gText_HitXTimes:: @ 85C9DB5 - .string "Hit {STRING 0} time(s)!$" - -gText_PkmnFellAsleep:: @ 85C9DC5 - .string "{STRING 17}\nfell asleep!$" - -gText_PkmnMadeSleep:: @ 85C9DD5 - .string "{STRING 19}’s {STRING 26}\nmade {STRING 17} sleep!$" - -gText_PkmnAlreadyAsleep:: @ 85C9DEC - .string "{STRING 16} is\nalready asleep!$" - -gText_PkmnAlreadyAsleep2:: @ 85C9E02 - .string "{STRING 15} is\nalready asleep!$" - -gText_PkmnWasntAffected:: @ 85C9E18 - .string "{STRING 16}\nwasn’t affected!$" - -gText_PkmnWasPoisoned:: @ 85C9E2C - .string "{STRING 17}\nwas poisoned!$" - -gText_PkmnPoisonedBy:: @ 85C9E3D - .string "{STRING 19}’s {STRING 26}\npoisoned {STRING 17}!$" - -gText_PkmnHurtByPoison:: @ 85C9E52 - .string "{STRING 15} is hurt\nby poison!$" - -gText_PkmnAlreadyPoisoned:: @ 85C9E68 - .string "{STRING 16} is already\npoisoned.$" - -gText_PkmnBadlyPoisoned:: @ 85C9E80 - .string "{STRING 17} is badly\npoisoned!$" - -gText_PkmnEnergyDrained:: @ 85C9E96 - .string "{STRING 16} had its\nenergy drained!$" - -gText_PkmnWasBurned:: @ 85C9EB1 - .string "{STRING 17} was burned!$" - -gText_PkmnBurnedBy:: @ 85C9EC0 - .string "{STRING 19}’s {STRING 26}\nburned {STRING 17}!$" - -gText_PkmnHurtByBurn:: @ 85C9ED3 - .string "{STRING 15} is hurt\nby its burn!$" - -gText_PkmnAlreadyHasBurn:: @ 85C9EEB - .string "{STRING 16} already\nhas a burn.$" - -gText_PkmnWasFrozen:: @ 85C9F02 - .string "{STRING 17} was\nfrozen solid!$" - -gText_PkmnFrozenBy:: @ 85C9F17 - .string "{STRING 19}’s {STRING 26}\nfroze {STRING 17} solid!$" - -gText_PkmnIsFrozen:: @ 85C9F2F - .string "{STRING 15} is\nfrozen solid!$" - -gText_PkmnWasDefrosted:: @ 85C9F43 - .string "{STRING 16} was\ndefrosted!$" - -gText_PkmnWasDefrosted2:: @ 85C9F55 - .string "{STRING 15} was\ndefrosted!$" - -gText_PkmnWasDefrostedBy:: @ 85C9F67 - .string "{STRING 15} was\ndefrosted by {STRING 20}!$" - -gText_PkmnWasParalyzed:: @ 85C9F7F - .string "{STRING 17} is paralyzed!\nIt may be unable to move!$" - -gText_PkmnWasParalyzedBy:: @ 85C9FAA - .string "{STRING 19}’s {STRING 26}\nparalyzed {STRING 17}!\lIt may be unable to move!$" - -gText_PkmnIsParalyzed:: @ 85C9FDA - .string "{STRING 15} is paralyzed!\nIt can’t move!$" - -gText_PkmnIsAlreadyParalyzed:: @ 85C9FFA - .string "{STRING 16} is\nalready paralyzed!$" - -gText_PkmnHealedParalysis:: @ 85CA013 - .string "{STRING 16} was\nhealed of paralysis!$" - -gText_PkmnDreamEaten:: @ 85CA02F - .string "{STRING 16}’s\ndream was eaten!$" - -gText_StatsWontIncrease:: @ 85CA045 - .string "{STRING 15}’s {STRING 0}\nwon’t go higher!$" - -gText_StatsWontDecrease:: @ 85CA05E - .string "{STRING 16}’s {STRING 0}\nwon’t go lower!$" - -gText_TeamStoppedWorking:: @ 85CA076 - .string "Your team’s {STRING 0}\nstopped working!$" - -gText_FoeStoppedWorking:: @ 85CA096 - .string "The foe’s {STRING 0}\nstopped working!$" - -gText_PkmnIsConfused:: @ 85CA0B4 - .string "{STRING 15} is\nconfused!$" - -gText_PkmnHealedConfusion:: @ 85CA0C4 - .string "{STRING 15} snapped\nout of confusion!$" - -gText_PkmnWasConfused:: @ 85CA0E1 - .string "{STRING 17} became\nconfused!$" - -gText_PkmnAlreadyConfused:: @ 85CA0F5 - .string "{STRING 16} is\nalready confused!$" - -gText_PkmnFellInLove:: @ 85CA10D - .string "{STRING 16}\nfell in love!$" - -gText_PkmnInLove:: @ 85CA11E - .string "{STRING 15} is in love\nwith {STRING 19}!$" - -gText_PkmnImmobilizedByLove:: @ 85CA135 - .string "{STRING 15} is\nimmobilized by love!$" - -gText_PkmnBlownAway:: @ 85CA150 - .string "{STRING 16} was\nblown away!$" - -gText_PkmnChangedType:: @ 85CA163 - .string "{STRING 15} transformed\ninto the {STRING 0} type!$" - -gText_PkmnFlinched:: @ 85CA184 - .string "{STRING 15} flinched!$" - -gText_PkmnRegainedHealth:: @ 85CA191 - .string "{STRING 16} regained\nhealth!$" - -gText_PkmnHPFull:: @ 85CA1A5 - .string "{STRING 16}’s\nHP is full!$" - -gText_PkmnRaisedSpDef:: @ 85CA1B6 - .string "{STRING 42}’s {STRING 20}\nraised SP. DEF!$" - -gText_PkmnRaisedSpDefALittle:: @ 85CA1CE - .string "{STRING 42}’s {STRING 20}\nraised SP. DEF a little!$" - -gText_PkmnRaisedDef:: @ 85CA1EF - .string "{STRING 42}’s {STRING 20}\nraised DEFENSE!$" - -gText_PkmnRaisedDefALittle:: @ 85CA207 - .string "{STRING 42}’s {STRING 20}\nraised DEFENSE a little!$" - -gText_PkmnCoveredByVeil:: @ 85CA228 - .string "{STRING 42}’s party is covered\nby a veil!$" - -gText_PkmnUsedSafeguard:: @ 85CA249 - .string "{STRING 16}’s party is protected\nby SAFEGUARD!$" - -gText_PkmnSafeguardExpired:: @ 85CA26F - .string "{STRING 44}’s party is no longer\nprotected by SAFEGUARD!$" - -gText_PkmnWentToSleep:: @ 85CA29F - .string "{STRING 15} went\nto sleep!$" - -gText_PkmnSleptHealthy:: @ 85CA2B1 - .string "{STRING 15} slept and\nbecame healthy!$" - -gText_PkmnWhippedWhirlwind:: @ 85CA2CE - .string "{STRING 15} whipped\nup a whirlwind!$" - -gText_PkmnTookSunlight:: @ 85CA2E9 - .string "{STRING 15} took\nin sunlight!$" - -gText_PkmnLoweredHead:: @ 85CA2FE - .string "{STRING 15} lowered\nits head!$" - -gText_PkmnIsGlowing:: @ 85CA313 - .string "{STRING 15} is glowing!$" - -gText_PkmnFlewHigh:: @ 85CA322 - .string "{STRING 15} flew\nup high!$" - -gText_PkmnDugHole:: @ 85CA333 - .string "{STRING 15} dug a hole!$" - -gText_PkmnHidUnderwater:: @ 85CA342 - .string "{STRING 15} hid\nunderwater!$" - -gText_PkmnSprangUp:: @ 85CA355 - .string "{STRING 15} sprang up!$" - -gText_PkmnSqueezedByBind:: @ 85CA363 - .string "{STRING 16} was squeezed by\n{STRING 15}’s BIND!$" - -gText_PkmnTrappedInVortex:: @ 85CA381 - .string "{STRING 16} was trapped\nin the vortex!$" - -gText_PkmnTrappedBySandTomb:: @ 85CA39F - .string "{STRING 16} was trapped\nby SAND TOMB!$" - -gText_PkmnWrappedBy:: @ 85CA3BC - .string "{STRING 16} was WRAPPED by\n{STRING 15}!$" - -gText_PkmnClamped:: @ 85CA3D2 - .string "{STRING 15} CLAMPED\n{STRING 16}!$" - -gText_PkmnHurtBy:: @ 85CA3E1 - .string "{STRING 15} is hurt\nby {STRING 0}!$" - -gText_PkmnFreedFrom:: @ 85CA3F3 - .string "{STRING 15} was freed\nfrom {STRING 0}!$" - -gText_PkmnCrashed:: @ 85CA409 - .string "{STRING 15} kept going\nand crashed!$" - -gText_PkmnShroudedInMist:: @ 85CA424 - .string "{STRING 42} became\nshrouded in MIST!$" - -gText_PkmnProtectedByMist:: @ 85CA440 - .string "{STRING 19} is protected\nby MIST!$" - -gText_PkmnGettingPumped:: @ 85CA459 - .string "{STRING 15} is getting\npumped!$" - -gText_PkmnHitWithRecoil:: @ 85CA46F - .string "{STRING 15} is hit\nwith recoil!$" - -gText_PkmnProtectedItself2:: @ 85CA486 - .string "{STRING 15} protected\nitself!$" - -gText_PkmnBuffetedBySandstorm:: @ 85CA49B - .string "{STRING 15} is buffeted\nby the sandstorm!$" - -gText_PkmnPeltedByHail:: @ 85CA4BC - .string "{STRING 15} is pelted\nby HAIL!$" - -gText_PkmnsXWoreOff:: @ 85CA4D2 - .string "{STRING 40}’s {STRING 0}\nwore off!$" - -gText_PkmnSeeded:: @ 85CA4E4 - .string "{STRING 16} was seeded!$" - -gText_PkmnEvadedAttack:: @ 85CA4F3 - .string "{STRING 16} evaded\nthe attack!$" - -gText_PkmnSappedByLeechSeed:: @ 85CA509 - .string "{STRING 15}’s health is\nsapped by LEECH SEED!$" - -gText_PkmnFastAsleep:: @ 85CA52E - .string "{STRING 15} is fast\nasleep.$" - -gText_PkmnWokeUp:: @ 85CA541 - .string "{STRING 15} woke up!$" - -gText_PkmnUproarKeptAwake:: @ 85CA54D - .string "But {STRING 19}’s UPROAR\nkept it awake!$" - -gText_PkmnWokeUpInUproar:: @ 85CA56C - .string "{STRING 15} woke up\nin the UPROAR!$" - -gText_PkmnCausedUproar:: @ 85CA586 - .string "{STRING 15} caused\nan UPROAR!$" - -gText_PkmnMakingUproar:: @ 85CA59B - .string "{STRING 15} is making\nan UPROAR!$" - -gText_PkmnCalmedDown:: @ 85CA5B3 - .string "{STRING 15} calmed down.$" - -gText_PkmnCantSleepInUproar:: @ 85CA5C3 - .string "But {STRING 16} can’t\nsleep in an UPROAR!$" - -gText_PkmnStockpiled:: @ 85CA5E4 - .string "{STRING 15} STOCKPILED\n{STRING 0}!$" - -gText_PkmnCantStockpile:: @ 85CA5F6 - .string "{STRING 15} can’t\nSTOCKPILE any more!$" - -gText_PkmnCantSleepInUproar2:: @ 85CA613 - .string "But {STRING 16} can’t\nsleep in an UPROAR!$" - -gText_UproarKeptPkmnAwake:: @ 85CA634 - .string "But the UPROAR kept\n{STRING 16} awake!$" - -gText_PkmnStayedAwakeUsing:: @ 85CA652 - .string "{STRING 16} stayed awake\nusing its {STRING 25}!$" - -gText_PkmnStoringEnergy:: @ 85CA670 - .string "{STRING 15} is storing\nenergy!$" - -gText_PkmnUnleashedEnergy:: @ 85CA686 - .string "{STRING 15} unleashed\nenergy!$" - -gText_PkmnFatigueConfusion:: @ 85CA69B - .string "{STRING 15} became\nconfused due to fatigue!$" - -gText_PkmnPickedUpItem:: @ 85CA6BE - .string "{STRING 35} picked up\n¥{STRING 0}!\p$" - -gText_PkmnUnaffected:: @ 85CA6D1 - .string "{STRING 16} is\nunaffected!$" - -gText_PkmnTransformedInto:: @ 85CA6E3 - .string "{STRING 15} transformed\ninto {STRING 0}!$" - -gText_PkmnMadeSubstitute:: @ 85CA6FB - .string "{STRING 15} made\na SUBSTITUTE!$" - -gText_PkmnHasSubstitute:: @ 85CA711 - .string "{STRING 15} already\nhas a SUBSTITUTE!$" - -gText_SubstituteDamaged:: @ 85CA72E - .string "The SUBSTITUTE took damage\nfor {STRING 16}!\p$" - -gText_PkmnSubstituteFaded:: @ 85CA752 - .string "{STRING 16}’s\nSUBSTITUTE faded!\p$" - -gText_PkmnMustRecharge:: @ 85CA76A - .string "{STRING 15} must\nrecharge!$" - -gText_PkmnRageBuilding:: @ 85CA76C - .string "{STRING 16}’s RAGE\nis building!$" - -gText_PkmnMoveWasDisabled:: @ 85CA793 - .string "{STRING 16}’s {STRING 0}\nwas disabled!$" - -gText_PkmnMoveDisabledNoMore:: @ 85CA7A9 - .string "{STRING 15} is disabled\nno more!$" - -gText_PkmnGotEncore:: @ 85CA7C1 - .string "{STRING 16} got\nan ENCORE!$" - -gText_PkmnEncoreEnded:: @ 85CA7D3 - .string "{STRING 15}’s ENCORE\nended!$" - -gText_PkmnTookAim:: @ 85CA7E6 - .string "{STRING 15} took aim\nat {STRING 16}!$" - -gText_PkmnSketchedMove:: @ 85CA7F9 - .string "{STRING 15} SKETCHED\n{STRING 0}!$" - -gText_PkmnTryingToTakeFoe:: @ 85CA809 - .string "{STRING 15} is trying\nto take its foe with it!$" - -gText_PkmnTookFoe:: @ 85CA82F - .string "{STRING 16} took\n{STRING 15} with it!$" - -gText_PkmnReducedPP:: @ 85CA843 - .string "Reduced {STRING 16}’s\n{STRING 0} by {PLAYER}!$" - -gText_PkmnStoleItem:: @ 85CA85A - .string "{STRING 15} stole\n{STRING 16}’s {STRING 22}!$" - -gText_PkmnCantEscape:: @ 85CA86C - .string "{STRING 16} can’t\nescape now!$" - -gText_PkmnFellIntoNightmare:: @ 85CA881 - .string "{STRING 16} fell into\na NIGHTMARE!$" - -gText_PkmnLockedInNightmare:: @ 85CA89B - .string "{STRING 15} is locked\nin a NIGHTMARE!$" - -gText_PkmnLaidCurse:: @ 85CA8B8 - .string "{STRING 15} cut its own HP and\nlaid a CURSE on {STRING 16}!$" - -gText_PkmnAfflictedByCurse:: @ 85CA8E2 - .string "{STRING 15} is afflicted\nby the CURSE!$" - -gText_SpikesScattered:: @ 85CA900 - .string "SPIKES were scattered all around\nthe opponent’s side!$" - -gText_PkmnHurtBySpikes:: @ 85CA936 - .string "{STRING 19} is hurt\nby SPIKES!$" - -gText_PkmnIdentified:: @ 85CA94C - .string "{STRING 15} identified\n{STRING 16}!$" - -gText_PkmnPerishCountFell:: @ 85CA95E - .string "{STRING 15}’s PERISH count\nfell to {STRING 0}!$" - -gText_PkmnBracedItself:: @ 85CA97C - .string "{STRING 15} braced\nitself!$" - -gText_PkmnEnduredHit:: @ 85CA98E - .string "{STRING 16} ENDURED\nthe hit!$" - -gText_MagnitudeStrength:: @ 85CA9A2 - .string "MAGNITUDE {STRING 0}!$" - -gText_PkmnCutHPMaxedAttack:: @ 85CA9B0 - .string "{STRING 15} cut its own HP\nand maximized ATTACK!$" - -gText_PkmnCopiedStatChanges:: @ 85CA9D8 - .string "{STRING 15} copied\n{STRING 16}’s stat changes!$" - -gText_PkmnGotFree:: @ 85CA9F5 - .string "{STRING 15} got free of\n{STRING 16}’s {STRING 0}!$" - -gText_PkmnShedLeechSeed:: @ 85CAA0D - .string "{STRING 15} shed\nLEECH SEED!$" - -gText_PkmnBlewAwaySpikes:: @ 85CAA21 - .string "{STRING 15} blew away\nSPIKES!$" - -gText_PkmnFledFromBattle:: @ 85CAA36 - .string "{STRING 15} fled from\nbattle!$" - -gText_PkmnForesawAttack:: @ 85CAA4B - .string "{STRING 15} foresaw\nan attack!$" - -gText_PkmnTookAttack:: @ 85CAA61 - .string "{STRING 16} took the\n{STRING 0} attack!$" - -gText_PkmnChoseXAsDestiny:: @ 85CAA78 - .string "{STRING 15} chose\n{STRING 20} as its destiny!$" - -gText_PkmnAttack:: @ 85CAA94 - .string "{STRING 0}’s attack!$" - -gText_PkmnCenterAttention:: @ 85CAAA1 - .string "{STRING 15} became the\ncenter of attention!$" - -gText_PkmnChargingPower:: @ 85CAAC4 - .string "{STRING 15} began\ncharging power!$" - -gText_NaturePowerTurnedInto:: @ 85CAADD - .string "NATURE POWER turned into\n{STRING 20}!$" - -gText_PkmnStatusNormal:: @ 85CAAFA - .string "{STRING 15}’s status\nreturned to normal!$" - -gText_PkmnSubjectedToTorment:: @ 85CAB1A - .string "{STRING 16} was subjected\nto TORMENT!$" - -gText_PkmnTighteningFocus:: @ 85CAB37 - .string "{STRING 15} is tightening\nits focus!$" - -gText_PkmnFellForTaunt:: @ 85CAB53 - .string "{STRING 16} fell for\nthe TAUNT!$" - -gText_PkmnReadyToHelp:: @ 85CAB6A - .string "{STRING 15} is ready to\nhelp {STRING 16}!$" - -gText_PkmnSwitchedItems:: @ 85CAB82 - .string "{STRING 15} switched\nitems with its opponent!$" - -gText_PkmnObtainedX:: @ 85CABA7 - .string "{STRING 15} obtained\n{STRING 0}.$" - -gText_PkmnObtainedX2:: @ 85CABB7 - .string "{STRING 16} obtained\n{PLAYER}.$" - -gText_PkmnObtainedXYObtainedZ:: @ 85CABC7 - .string "{STRING 15} obtained\n{STRING 0}.\p{STRING 16} obtained\n{PLAYER}.$" - -gText_PkmnCopiedFoe:: @ 85CAB82 - .string "{STRING 15} copied\n{STRING 16}’s {STRING 25}!$" - -gText_PkmnMadeWish:: @ 85CABFA - .string "{STRING 15} made a WISH!$" - -gText_PkmnWishCameTrue:: @ 85CAC0A - .string "{STRING 0}’s WISH\ncame true!$" - -gText_PkmnPlantedRoots:: @ 85CAC1F - .string "{STRING 15} planted its roots!$" - -gText_PkmnAbsorbedNutrients:: @ 85CAC35 - .string "{STRING 15} absorbed\nnutrients with its roots!$" - -gText_PkmnAnchoredItself:: @ 85CAC5B - .string "{STRING 16} anchored\nitself with its roots!$" - -gText_PkmnWasMadeDrowsy:: @ 85CAC7E - .string "{STRING 15} made\n{STRING 16} drowsy!$" - -gText_PkmnKnockedOff:: @ 85CAC91 - .string "{STRING 15} knocked off\n{STRING 16}’s {STRING 22}!$" - -gText_PkmnSwappedAbilities:: @ 85CACA9 - .string "{STRING 15} swapped abilities\nwith its opponent!$" - -gText_PkmnSealedOpponentMove:: @ 85CACD1 - .string "{STRING 15} sealed the\nopponent’s move(s)!$" - -gText_PkmnWantsGrudge:: @ 85CACF3 - .string "{STRING 15} wants the\nopponent to bear a GRUDGE!$" - -gText_PkmnLostPPGrudge:: @ 85CAD1B - .string "{STRING 15}’s {STRING 0} lost\nall its PP due to the GRUDGE!$" - -gText_PkmnShroudedItself:: @ 85CAD46 - .string "{STRING 15} shrouded\nitself in {STRING 20}!$" - -gText_PkmnMoveBounced:: @ 85CAD60 - .string "{STRING 15}’s {STRING 20}\nwas bounced back by MAGIC COAT!$" - -gText_PkmnWaitsForTarget:: @ 85CAD88 - .string "{STRING 15} waits for a target\nto make a move!$" - -gText_PkmnSnatchedMove:: @ 85CADAE - .string "{STRING 16} SNATCHED\n{STRING 19}’s move!$" - -gText_ElectricityWeakened:: @ 85CADC5 - .string "Electricity’s power was\nweakened!$" - -gText_FireWeakened:: @ 85CADE7 - .string "Fire’s power was\nweakened!$" - -gText_XFoundOneY:: @ 85CAE02 - .string "{STRING 15} found\none {STRING 22}!$" - -gText_SoothingAroma:: @ 85CAE13 - .string "A soothing aroma wafted\nthrough the area!$" - -gText_ItemsCantBeUsedNow:: @ 85CAE3D - .string "Items can’t be used now.{PAUSE 64}$" - -gText_ForXCommaYZ:: @ 85CAE59 - .string "For {STRING 19},\n{STRING 22} {STRING 0}$" - -gText_PkmnUsedXToGetPumped:: @ 85CAE67 - .string "{STRING 19} used\n{STRING 22} to get pumped!$" - -gText_PkmnLostFocus:: @ 85CAE81 - .string "{STRING 15} lost its\nfocus and couldn’t move!$" - -gText_PkmnWasDraggedOut:: @ 85CAEA6 - .string "{STRING 16} was\ndragged out!\p$" - -gText_TheWallShattered:: @ 85CAEBB - .string "The wall shattered!$" - -gText_ButNoEffect:: @ 85CAECF - .string "But it had no effect!$" - -gText_PkmnHasNoMovesLeft:: @ 85CAEE5 - .string "{STRING 18} has no\nmoves left!\p$" - -gText_PkmnMoveIsDisabled:: @ 85CAEFC - .string "{STRING 18}’s {STRING 20}\nis disabled!\p$" - -gText_PkmnCantUseMoveTorment:: @ 85CAF12 - .string "{STRING 18} can’t use the same\nmove in a row due to the TORMENT!\p$" - -gText_PkmnCantUseMoveTaunt:: @ 85CAF4B - .string "{STRING 18} can’t use\n{STRING 20} after the TAUNT!\p$" - -gText_PkmnCantUseMoveSealed:: @ 85CAF6D - .string "{STRING 18} can’t use the\nsealed {STRING 20}!\p$" - -gText_PkmnMadeItRain:: @ 85CAF8A - .string "{STRING 19}’s {STRING 26}\nmade it rain!$" - -gText_PkmnRaisedSpeed:: @ 85CAFA0 - .string "{STRING 19}’s {STRING 26}\nraised its SPEED!$" - -gText_PkmnProtectedBy:: @ 85CAFBA - .string "{STRING 16} was protected\nby {STRING 25}!$" - -gText_PkmnPreventsUsage:: @ 85CAFD2 - .string "{STRING 16}’s {STRING 25}\nprevents {STRING 15}\lfrom using {STRING 20}!$" - -gText_PkmnRestoredHPUsing:: @ 85CAFF5 - .string "{STRING 16} restored HP\nusing its {STRING 25}!$" - -gText_PkmnsXMadeYUseless:: @ 85CB012 - .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} useless!$" - -gText_PkmnChangedTypeWith:: @ 85CB02B - .string "{STRING 16}’s {STRING 25}\nmade it the {STRING 0} type!$" - -gText_PkmnPreventsParalysisWith:: @ 85CB048 - .string "{STRING 17}’s {STRING 25}\nprevents paralysis!$" - -gText_PkmnPreventsRomanceWith:: @ 85CB064 - .string "{STRING 16}’s {STRING 25}\nprevents romance!$" - -gText_PkmnPreventsPoisoningWith:: @ 85CB07E - .string "{STRING 17}’s {STRING 25}\nprevents poisoning!$" - -gText_PkmnPreventsConfusionWith:: @ 85CB09A - .string "{STRING 16}’s {STRING 25}\nprevents confusion!$" - -gText_PkmnRaisedFirePowerWith:: @ 85CB0B6 - .string "{STRING 16}’s {STRING 25}\nraised its FIRE power!$" - -gText_PkmnAnchorsItselfWith:: @ 85CB0D5 - .string "{STRING 16} anchors\nitself with {STRING 25}!$" - -gText_PkmnCutsAttackWith:: @ 85CB0F0 - .string "{STRING 19}’s {STRING 26}\ncuts {STRING 16}’s ATTACK!$" - -gText_PkmnPreventsStatLossWith:: @ 85CB10A - .string "{STRING 19}’s {STRING 26}\nprevents stat loss!$" - -gText_PkmnHurtsWith:: @ 85CB126 - .string "{STRING 16}’s {STRING 25}\nhurt {STRING 15}!$" - -gText_PkmnTraced:: @ 85CB137 - .string "{STRING 19} TRACED\n{STRING 0}’s {PLAYER}!$" - -gText_PkmnsXPreventsBurns:: @ 85CB14A - .string "{STRING 17}’s {STRING 27}\nprevents burns!$" - -gText_PkmnsXBlocksY:: @ 85CB162 - .string "{STRING 16}’s {STRING 25}\nblocks {STRING 20}!$" - -gText_PkmnsXBlocksY2:: @ 85CB175 - .string "{STRING 19}’s {STRING 26}\nblocks {STRING 20}!$" - -gText_PkmnsXRestoredHPALittle2:: @ 85CB188 - .string "{STRING 15}’s {STRING 24}\nrestored its HP a little!$" - -gText_PkmnsXWhippedUpSandstorm:: @ 85CB1AA - .string "{STRING 19}’s {STRING 26}\nwhipped up a sandstorm!$" - -gText_PkmnsXIntensifiedSun:: @ 85CB1CA - .string "{STRING 19}’s {STRING 26}\nintensified the sun’s rays!$" - -gText_PkmnsXPreventsYLoss:: @ 85CB1EE - .string "{STRING 19}’s {STRING 26}\nprevents {STRING 0} loss!$" - -gText_PkmnsXInfatuatedY:: @ 85CB208 - .string "{STRING 16}’s {STRING 25}\ninfatuated {STRING 15}!$" - -gText_PkmnsXMadeYIneffective:: @ 85CB21F - .string "{STRING 16}’s {STRING 25}\nmade {STRING 20} ineffective!$" - -gText_PkmnsXCuredYProblem:: @ 85CB23C - .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" - -gText_ItSuckedLiquidOoze:: @ 85CB25A - .string "It sucked up the\nLIQUID OOZE!$" - -gText_PkmnTransformed:: @ 85CB278 - .string "{STRING 19} transformed!$" - -gText_PkmnsXTookAttack:: @ 85CB288 - .string "{STRING 16}’s {STRING 25}\ntook the attack!$" - -gText_PkmnsXPreventsSwitching:: @ 85CB2A1 - .string "{STRING 0}’s {STRING 23}\nprevents switching!\p$" - -gText_PreventedFromWorking:: @ 85CB2BE - .string "{STRING 16}’s {STRING 25}\nprevented {STRING 19}’s\l{STRING 0} from working!$" - -gText_PkmnsXMadeItIneffective:: @ 85CB2E6 - .string "{STRING 19}’s {STRING 26}\nmade it ineffective!$" - -gText_PkmnsXPreventsFlinching:: @ 85CB303 - .string "{STRING 17}’s {STRING 27}\nprevents flinching!$" - -gText_PkmnsXPreventsYsZ:: @ 85CB31F - .string "{STRING 15}’s {STRING 24}\nprevents {STRING 16}’s\l{STRING 25} from working!$" - -gText_PkmnsXCuredItsYProblem:: @ 85CB346 - .string "{STRING 19}’s {STRING 26}\ncured its {STRING 0} problem!$" - -gText_PkmnsXHadNoEffectOnY:: @ 85CB364 - .string "{STRING 19}’s {STRING 26}\nhad no effect on {STRING 17}!$" - -gText_StatSharply:: @ 85CB381 - .string "sharply $" - -gText_StatRose:: @ 85CB38A - .string "rose!$" - -gText_StatHarshly:: @ 85CB390 - .string "harshly $" - -gText_StatFell:: @ 85CB399 - .string "fell!$" - -gText_PkmnsStatChanged:: @ 85CB39F - .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" - -gText_PkmnsStatChanged2:: @ 85CB3AA - .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" - -gText_UsingXTheYOfZN:: @ 85CB3B5 - .string "Using {STRING 22}, the {STRING 0}\nof {STRING 19} {PLAYER}$" - -gText_PkmnsStatChanged3:: @ 85CB3CF - .string "{STRING 15}’s {STRING 0}\n{PLAYER}$" - -gText_PkmnsStatChanged4:: @ 85CB3DA - .string "{STRING 16}’s {STRING 0}\n{PLAYER}$" - -gText_StatsWontIncrease2:: @ 85CB3E5 - .string "{STRING 15}’s stats won’t\ngo any higher!$" - -gText_StatsWontDecrease2:: @ 85CB405 - .string "{STRING 16}’s stats won’t\ngo any lower!$" - -gText_CriticalHit:: @ 85CB424 - .string "A critical hit!$" - -gText_OneHitKO:: @ 85CB434 - .string "It’s a one-hit KO!$" - -gText_123Poof:: @ 85CB447 - .string "{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p$" - -gText_AndEllipsis:: @ 85CB473 - .string "And…\p$" - -gText_HMMovesCantBeForgotten:: @ 85CB479 - .string "HM moves can’t be\nforgotten now.\p$" - -gText_NotVeryEffective:: @ 85CB49B - .string "It’s not very effective…$" - -gText_SuperEffective:: @ 85CB4B4 - .string "It’s super effective!$" - -gText_GotAwaySafely:: @ 85CB4CA - .string "{PLAY_SE 0x0011}Got away safely!\p$" - -gText_PkmnFledUsingIts:: @ 85CB4E0 - .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing its {STRING 22}!\p$" - -gText_PkmnFledUsing:: @ 85CB4FB - .string "{PLAY_SE 0x0011}{STRING 15} fled\nusing {STRING 24}!\p$" - -gText_WildPkmnFled:: @ 85CB512 - .string "{PLAY_SE 0x0011}Wild {STRING 0} fled!$" - -gText_PlayerDefeated:: @ 85CB524 - .string "Player defeated\n{STRING 32}!$" - -gText_PlayerBeatTwo:: @ 85CB538 - .string "Player beat {STRING 32}\nand {STRING 33}!$" - -gText_PlayerLostAgainst:: @ 85CB54F - .string "Player lost against\n{STRING 32}!$" - -gText_PlayerLostToTwo:: @ 85CB567 - .string "Player lost to {STRING 32}\nand {STRING 33}!$" - -gText_PlayerBattledToDraw:: @ 85CB581 - .string "Player battled to a draw against\n{STRING 32}!$" - -gText_PlayerBattledToDrawVsTwo:: @ 85CB5A6 - .string "Player battled to a draw against\n{STRING 32} and {STRING 33}!$" - -gText_WildFled:: @ 85CB5D2 - .string "{PLAY_SE 0x0011}{STRING 32} fled!$" - -gText_TwoWildFled:: @ 85CB5DF - .string "{PLAY_SE 0x0011}{STRING 32} and\n{STRING 33} fled!$" - -gText_NoRunningFromTrainers:: @ 85CB5F3 - .string "No! There’s no running\nfrom a TRAINER battle!\p$" - -gText_CantEscape:: @ 85CB622 - .string "Can’t escape!\p$" - -gText_DontLeaveBirch:: @ 85CB631 - .string "PROF. BIRCH: Don’t leave me like this!\p$" - -gText_ButNothingHappened:: @ 85CB659 - .string "But nothing happened!$" - -gText_ButItFailed:: @ 85CB66F - .string "But it failed!$" - -gText_ItHurtConfusion:: @ 85CB67E - .string "It hurt itself in its\nconfusion!$" - -gText_MirrorMoveFailed:: @ 85CB69F - .string "The MIRROR MOVE failed!$" - -gText_StartedToRain:: @ 85CB6B7 - .string "It started to rain!$" - -gText_DownpourStarted:: @ 85CB6CB - .string "A downpour started!$" - -gText_RainContinues:: @ 85CB6DF - .string "Rain continues to fall.$" - -gText_DownpourContinues:: @ 85CB6F7 - .string "The downpour continues.$" - -gText_RainStopped:: @ 85CB70F - .string "The rain stopped.$" - -gText_SandstormBrewed:: @ 85CB721 - .string "A sandstorm brewed!$" - -gText_SandstormRages:: @ 85CB735 - .string "The sandstorm rages.$" - -gText_SandstormSubsided:: @ 85CB74A - .string "The sandstorm subsided.$" - -gText_SunlightGotBright:: @ 85CB762 - .string "The sunlight got bright!$" - -gText_SunlightStrong:: @ 85CB77B - .string "The sunlight is strong.$" - -gText_SunlightFaded:: @ 85CB793 - .string "The sunlight faded.$" - -gText_StartedHail:: @ 85CB7A7 - .string "It started to hail!$" - -gText_HailContinues:: @ 85CB7BB - .string "Hail continues to fall.$" - -gText_HailStopped:: @ 85CB7D3 - .string "The hail stopped.$" - -gText_FailedToSpitUp:: @ 85CB7E5 - .string "But it failed to SPIT UP\na thing!$" - -gText_FailedToSwallow:: @ 85CB807 - .string "But it failed to SWALLOW\na thing!$" - -gText_WindBecameHeatWave:: @ 85CB829 - .string "The wind turned into a\nHEAT WAVE!$" - -gText_StatChangesGone:: @ 85CB84B - .string "All stat changes were\neliminated!$" - -gText_CoinsScattered:: @ 85CB86D - .string "Coins scattered everywhere!$" - -gText_TooWeakForSubstitute:: @ 85CB889 - .string "It was too weak to make\na SUBSTITUTE!$" - -gText_SharedPain:: @ 85CB8AF - .string "The battlers shared\ntheir pain!$" - -gText_BellChimed:: @ 85CB8CF - .string "A bell chimed!$" - -gText_FaintInThree:: @ 85CB8DE - .string "All affected POKéMON will\nfaint in three turns!$" - -gText_NoPPLeft:: @ 85CB90E - .string "There’s no PP left for\nthis move!\p$" - -gText_ButNoPPLeft:: @ 85CB931 - .string "But there was no PP left\nfor the move!$" - -gText_PkmnIgnoresAsleep:: @ 85CB958 - .string "{STRING 15} ignored\norders while asleep!$" - -gText_PkmnIgnoredOrders:: @ 85CB978 - .string "{STRING 15} ignored\norders!$" - -gText_PkmnBeganToNap:: @ 85CB98B - .string "{STRING 15} began to nap!$" - -gText_PkmnLoafing:: @ 85CB99C - .string "{STRING 15} is\nloafing around!$" - -gText_PkmnWontObey:: @ 85CB9B2 - .string "{STRING 15} won’t\nobey!$" - -gText_PkmnTurnedAway:: @ 85CB9C1 - .string "{STRING 15} turned away!$" - -gText_PkmnPretendNotNotice:: @ 85CB9D1 - .string "{STRING 15} pretended\nnot to notice!$" - -gText_EnemyAboutToSwitchPkmn:: @ 85CB9ED - .string "{STRING 28} {STRING 29} is\nabout to use {PLAYER}.\pWill {STRING 35} change\nPOKéMON?$" - -gText_PkmnLearnedMove2:: @ 85CBA1F - .string "{STRING 15} learned\n{STRING 0}!$" - -gText_PlayerDefeatedXY:: @ 85CBA2E - .string "Player defeated\n{STRING 28} {STRING 29}!\p$" - -gText_CreptCloser:: @ 85CBA46 - .string "{STRING 35} crept closer to\n{RIVAL}!$" - -gText_CantGetCloser:: @ 85CBA5D - .string "{STRING 35} can’t get any closer!$" - -gText_PkmnWatchingCarefully:: @ 85CBA76 - .string "{RIVAL} is watching\ncarefully!$" - -gText_PkmnCuriousAboutX:: @ 85CBA90 - .string "{RIVAL} is curious about\nthe {STRING 0}!$" - -gText_PkmnEnthralledByX:: @ 85CBAAC - .string "{RIVAL} is enthralled by\nthe {STRING 0}!$" - -gText_PkmnIgnoredX:: @ 85CBAC8 - .string "{RIVAL} completely ignored\nthe {STRING 0}!$" - -gText_ThrewPokeblockAtPkmn:: @ 85CBAE6 - .string "{STRING 35} threw a {POKEBLOCK}\nat the {RIVAL}!$" - -gText_OutOfSafariBalls:: @ 85CBB02 - .string "{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p$" - - .string "{RIVAL} appeared!\p$" - -gText_WildPkmnAppeared:: @ 85CBB47 - .string "Wild {RIVAL} appeared!\p$" - -gText_WildPkmnAppeared2:: @ 85CBB5A - .string "Wild {RIVAL} appeared!\p$" - -gText_WildPkmnAppearedPause:: @ 85CBB6D - .string "Wild {RIVAL} appeared!{PAUSE 127}$" - -gText_TwoWildPkmnAppeared:: @ 85CBB82 - .string "Wild {RIVAL} and\n{AQUA} appeared!\p$" - -gText_TrainerXYWantsToBattle:: @ 85CBB9C - .string "{STRING 28} {STRING 29}\nwould like to battle!\p$" - -gText_TrainerXWantsToBattle:: @ 85CBBB9 - .string "{STRING 32}\nwants to battle!$" - -gText_TwoTrainersWantToBattle:: @ 85CBBCD - .string "{STRING 32} and {STRING 33}\nwant to battle!$" - -gText_TrainerXYSentOutPkmn:: @ 85CBBE7 - .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!$" - -gText_TrainerXYSentOutTwoPkmn:: @ 85CBBFA - .string "{STRING 28} {STRING 29} sent\nout {RIVAL} and {AQUA}!$" - -gText_TrainerXYSentOutPkmn2:: @ 85CBC14 - .string "{STRING 28} {STRING 29} sent\nout {STRING 0}!$" - -gText_TrainerXSentOutPkmn:: @ 85CBC27 - .string "{STRING 32} sent out\n{RIVAL}!$" - -gText_TrainerXSentOutTwoPkmn:: @ 85CBC37 - .string "{STRING 32} sent out\n{RIVAL} and {AQUA}!$" - -gText_TwoTrainersSentOutPkmn:: @ 85CBC4E - .string "{STRING 32} sent out {STRING 10}!\n{STRING 33} sent out {STRING 12}!$" - -gText_TrainerXSentOutPkmn2:: @ 85CBC6E - .string "{STRING 32} sent out\n{STRING 0}!$" - -gText_TrainerXSentOutPkmn3:: @ 85CBC7E - .string "{STRING 34} sent out\n{STRING 0}!$" - -gText_GoPkmn:: @ 85CBC8E - .string "Go! {STRING 5}!$" - -gText_GoTwoPkmn:: @ 85CBC96 - .string "Go! {STRING 5} and\n{VERSION}!$" - -gText_GoPkmn2:: @ 85CBCA5 - .string "Go! {STRING 0}!$" - -gText_DoItPkmn:: @ 85CBCAD - .string "Do it! {STRING 0}!$" - -gText_GoForItPkmn:: @ 85CBCB8 - .string "Go for it, {STRING 0}!$" - -gText_YourFoesWeakGetEmPkmn:: @ 85CBCC7 - .string "Your foe’s weak!\nGet ’em, {STRING 0}!$" - -gText_EnemySentOutPkmnGoPkmn:: @ 85CBCE5 - .string "{STRING 31} sent out {STRING 11}!\nGo! {STRING 9}!$" - -gText_PkmnThatsEnough:: @ 85CBCFD - .string "{STRING 0}, that’s enough!\nCome back!$" - -gText_PkmnComeBack:: @ 85CBD1B - .string "{STRING 0}, come back!$" - -gText_PkmnOkComeBack:: @ 85CBD2A - .string "{STRING 0}, OK!\nCome back!$" - -gText_PkmnGoodComeBack:: @ 85CBD3D - .string "{STRING 0}, good!\nCome back!$" - -gText_TrainerXYWithdrewPkmn:: @ 85CBD52 - .string "{STRING 28} {STRING 29}\nwithdrew {STRING 0}!$" - -gText_TrainerXWithdrewPkmn:: @ 85CBD65 - .string "{STRING 32} withdrew\n{STRING 0}!$" - -gText_TrainerXWithdrewPkmn2:: @ 85CBD75 - .string "{STRING 34} withdrew\n{STRING 0}!$" - -gText_WildPkmnPrefix:: @ 85CBD85 - .string "Wild $" - -gText_FoePkmnPrefix:: @ 85CBD8B - .string "Foe $" - - .string "$" - -gText_FoePkmnPrefix2:: @ 85CBD91 - .string "Foe$" - -gText_AllyPkmnPrefix:: @ 85CBD95 - .string "Ally$" - -gText_FoePkmnPrefix3:: @ 85CBD9A - .string "Foe$" - -gText_AllyPkmnPrefix2:: @ 85CBD9E - .string "Ally$" - -gText_FoePkmnPrefix4:: @ 85CBDA3 - .string "Foe$" - -gText_AllyPkmnPrefix3:: @ 85CBDA7 - .string "Ally$" - -gText_XUsedY2:: @ 85CBDAC - .string "{STRING 15} used\n{PLAYER}$" - -gText_ExclamationMark:: @ 85CBDB7 - .string "!$" - -gText_ExclamationMark2:: @ 85CBDB9 - .string "!$" - -gText_ExclamationMark3:: @ 85CBDBB - .string "!$" - -gText_ExclamationMark4:: @ 85CBDBD - .string "!$" - -gText_ExclamationMark5:: @ 85CBDBF - .string "!$" - -gText_HP2:: @ 85CBDC1 - .string "HP$" - -gText_Attack2:: @ 85CBDC4 - .string "ATTACK$" - -gText_Defense2:: @ 85CBDCB - .string "DEFENSE$" - -gText_Speed:: @ 85CBDD3 - .string "SPEED$" - -gText_SpAtk2:: @ 85CBDD9 - .string "SP. ATK$" - -gText_SpDef2:: @ 85CBDE1 - .string "SP. DEF$" - -gText_Accuracy:: @ 85CBDE9 - .string "accuracy$" - -gText_Evasiveness:: @ 85CBDF2 - .string "evasiveness$" - - .align 2 -gStatNamesTable:: @ 85CBE00 - .4byte gText_HP2 - .4byte gText_Attack2 - .4byte gText_Defense2 - .4byte gText_Speed - .4byte gText_SpAtk2 - .4byte gText_SpDef2 - .4byte gText_Accuracy - .4byte gText_Evasiveness - -gText_PokeblockWasTooSpicy:: @ 85CBE20 - .string "was too spicy!$" - -gText_PokeblockWasTooDry:: @ 85CBE2F - .string "was too dry!$" - -gText_PokeblockWasTooSweet:: @ 85CBE3C - .string "was too sweet!$" - -gText_PokeblockWasTooBitter:: @ 85CBE4B - .string "was too bitter!$" - -gText_PokeblockWasTooSour:: @ 85CBE5B - .string "was too sour!$" - - .align 2 -gPokeblockWasTooXStringTable:: @ 85CBE6C - .4byte gText_PokeblockWasTooSpicy - .4byte gText_PokeblockWasTooDry - .4byte gText_PokeblockWasTooSweet - .4byte gText_PokeblockWasTooBitter - .4byte gText_PokeblockWasTooSour - -gText_XUsedY:: @ 85CBE80 - .string "{STRING 35} used\n{STRING 22}!$" - -gText_WallyUsedY:: @ 85CBE8C - .string "WALLY used\n{STRING 22}!$" - -gText_XYUsedZ:: @ 85CBE9B - .string "{STRING 28} {STRING 29}\nused {STRING 22}!$" - -gText_TrainerBlockedBall:: @ 85CBEAA - .string "The TRAINER blocked the BALL!$" - -gText_DontBeAThief:: @ 85CBEC8 - .string "Don’t be a thief!$" - -gText_ItDodgedBall:: @ 85CBEDA - .string "It dodged the thrown BALL!\nThis POKéMON can’t be caught!$" - -gText_YouMissedPkmn:: @ 85CBF13 - .string "You missed the POKéMON!$" - -gText_PkmnBrokeFree:: @ 85CBF2B - .string "Oh, no!\nThe POKéMON broke free!$" - -gText_ItAppearedCaught:: @ 85CBF4B - .string "Aww!\nIt appeared to be caught!$" - -gText_AarghAlmostHadIt:: @ 85CBF6A - .string "Aargh!\nAlmost had it!$" - -gText_ShootSoClose:: @ 85CBF80 - .string "Shoot!\nIt was so close, too!$" - -gText_GotchaPkmnCaught:: @ 85CBF9D - .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p$" - -gText_GotchaPkmnCaught2:: @ 85CBFBB - .string "Gotcha!\n{RIVAL} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}$" - -gText_GiveNicknameCaptured:: @ 85CBFDB - .string "Give a nickname to the\ncaptured {RIVAL}?$" - -gText_PkmnSentToPC:: @ 85CBFFF - .string "{RIVAL} was sent to\n{STRING 39} PC.$" - -gText_Someones:: @ 85CC015 - .string "someone’s$" - -gText_Lanettes:: @ 85CC01F - .string "LANETTE’s$" - -gText_PkmnDataAddedToDex:: @ 85CC029 - .string "{RIVAL}’s data was\nadded to the POKéDEX.\p$" - -gText_ItIsRaining:: @ 85CC04E - .string "It is raining.$" - -gText_SandstormIsRaging:: @ 85CC05D - .string "A sandstorm is raging.$" - -gText_BoxIsFull:: @ 85CC074 - .string "The BOX is full!\nYou can’t catch any more!\p$" - -gText_EnigmaBerry:: @ 85CC0A0 - .string "ENIGMA BERRY$" - -gText_BerrySuffix:: @ 85CC0AD - .string " BERRY$" - -gText_PkmnsXCuredParalysis:: @ 85CC0B4 - .string "{STRING 19}’s {STRING 22}\ncured paralysis!$" - -gText_PkmnsXCuredPoison:: @ 85CC0CD - .string "{STRING 19}’s {STRING 22}\ncured poison!$" - -gText_PkmnsXHealedBurn:: @ 85CC0E3 - .string "{STRING 19}’s {STRING 22}\nhealed its burn!$" - -gText_PkmnsXDefrostedIt:: @ 85CC0FC - .string "{STRING 19}’s {STRING 22}\ndefrosted it!$" - -gText_PkmnsXWokeIt:: @ 85CC112 - .string "{STRING 19}’s {STRING 22}\nwoke it from its sleep!$" - -gText_PkmnsXSnappedOut:: @ 85CC132 - .string "{STRING 19}’s {STRING 22}\nsnapped it out of confusion!$" - -gText_PkmnsXCuredProblem:: @ 85CC157 - .string "{STRING 19}’s {STRING 22}\ncured its {STRING 0} problem!$" - -gText_PkmnsXNormalizedStatus:: @ 85CC175 - .string "{STRING 19}’s {STRING 22}\nnormalized its status!$" - -gText_PkmnsXRestoredHealth:: @ 85CC194 - .string "{STRING 19}’s {STRING 22}\nrestored health!$" - -gText_PkmnsXRestoredPP:: @ 85CC1AD - .string "{STRING 19}’s {STRING 22}\nrestored {STRING 0}’s PP!$" - -gText_PkmnsXRestoredStatus:: @ 85CC1C7 - .string "{STRING 19}’s {STRING 22}\nrestored its status!$" - -gText_PkmnsXRestoredHPALittle:: @ 85CC1E4 - .string "{STRING 19}’s {STRING 22}\nrestored its HP a little!$" - -gText_XAllowsOnlyY:: @ 85CC206 - .string "{STRING 22} allows the\nuse of only {STRING 20}!\p$" - -gText_PkmnHungOnWithX:: @ 85CC225 - .string "{STRING 16} hung on\nusing its {STRING 22}!$" - -gText_EmptyString3:: @ 85CC23E - .string "$" - -gText_YouThrowABallNowRight:: @ 85CC23F - .string "You throw a BALL now, right?\nI… I’ll do my best!$" - - .align 2 -gBattleStringsTable:: @ 85CC270 - .4byte gText_Buffer36 - .4byte gText_PkmnGainedEXP - .4byte gText_PkmnGrewToLv - .4byte gText_PkmnLearnedMove - .4byte gText_TryToLearnMove1 - .4byte gText_TryToLearnMove2 - .4byte gText_TryToLearnMove3 - .4byte gText_PkmnForgotMove - .4byte gText_StopLearningMove - .4byte gText_DidNotLearnMove - .4byte gText_PkmnLearnedMove2 - .4byte gText_AttackMissed - .4byte gText_PkmnProtectedItself - .4byte gText_StatsWontIncrease2 - .4byte gText_AvoidedDamage - .4byte gText_ItDoesntAffect - .4byte gText_PkmnFainted - .4byte gText_PkmnFainted2 - .4byte gText_PlayerGotMoney - .4byte gText_PlayerWhiteout - .4byte gText_PlayerWhiteout2 - .4byte gText_PreventsEscape - .4byte gText_HitXTimes - .4byte gText_PkmnFellAsleep - .4byte gText_PkmnMadeSleep - .4byte gText_PkmnAlreadyAsleep - .4byte gText_PkmnAlreadyAsleep2 - .4byte gText_PkmnWasntAffected - .4byte gText_PkmnWasPoisoned - .4byte gText_PkmnPoisonedBy - .4byte gText_PkmnHurtByPoison - .4byte gText_PkmnAlreadyPoisoned - .4byte gText_PkmnBadlyPoisoned - .4byte gText_PkmnEnergyDrained - .4byte gText_PkmnWasBurned - .4byte gText_PkmnBurnedBy - .4byte gText_PkmnHurtByBurn - .4byte gText_PkmnWasFrozen - .4byte gText_PkmnFrozenBy - .4byte gText_PkmnIsFrozen - .4byte gText_PkmnWasDefrosted - .4byte gText_PkmnWasDefrosted2 - .4byte gText_PkmnWasDefrostedBy - .4byte gText_PkmnWasParalyzed - .4byte gText_PkmnWasParalyzedBy - .4byte gText_PkmnIsParalyzed - .4byte gText_PkmnIsAlreadyParalyzed - .4byte gText_PkmnHealedParalysis - .4byte gText_PkmnDreamEaten - .4byte gText_StatsWontIncrease - .4byte gText_StatsWontDecrease - .4byte gText_TeamStoppedWorking - .4byte gText_FoeStoppedWorking - .4byte gText_PkmnIsConfused - .4byte gText_PkmnHealedConfusion - .4byte gText_PkmnWasConfused - .4byte gText_PkmnAlreadyConfused - .4byte gText_PkmnFellInLove - .4byte gText_PkmnInLove - .4byte gText_PkmnImmobilizedByLove - .4byte gText_PkmnBlownAway - .4byte gText_PkmnChangedType - .4byte gText_PkmnFlinched - .4byte gText_PkmnRegainedHealth - .4byte gText_PkmnHPFull - .4byte gText_PkmnRaisedSpDef - .4byte gText_PkmnRaisedDef - .4byte gText_PkmnCoveredByVeil - .4byte gText_PkmnUsedSafeguard - .4byte gText_PkmnSafeguardExpired - .4byte gText_PkmnWentToSleep - .4byte gText_PkmnSleptHealthy - .4byte gText_PkmnWhippedWhirlwind - .4byte gText_PkmnTookSunlight - .4byte gText_PkmnLoweredHead - .4byte gText_PkmnIsGlowing - .4byte gText_PkmnFlewHigh - .4byte gText_PkmnDugHole - .4byte gText_PkmnSqueezedByBind - .4byte gText_PkmnTrappedInVortex - .4byte gText_PkmnWrappedBy - .4byte gText_PkmnClamped - .4byte gText_PkmnHurtBy - .4byte gText_PkmnFreedFrom - .4byte gText_PkmnCrashed - .4byte gText_PkmnShroudedInMist - .4byte gText_PkmnProtectedByMist - .4byte gText_PkmnGettingPumped - .4byte gText_PkmnHitWithRecoil - .4byte gText_PkmnProtectedItself2 - .4byte gText_PkmnBuffetedBySandstorm - .4byte gText_PkmnPeltedByHail - .4byte gText_PkmnSeeded - .4byte gText_PkmnEvadedAttack - .4byte gText_PkmnSappedByLeechSeed - .4byte gText_PkmnFastAsleep - .4byte gText_PkmnWokeUp - .4byte gText_PkmnUproarKeptAwake - .4byte gText_PkmnWokeUpInUproar - .4byte gText_PkmnCausedUproar - .4byte gText_PkmnMakingUproar - .4byte gText_PkmnCalmedDown - .4byte gText_PkmnCantSleepInUproar - .4byte gText_PkmnStockpiled - .4byte gText_PkmnCantStockpile - .4byte gText_PkmnCantSleepInUproar2 - .4byte gText_UproarKeptPkmnAwake - .4byte gText_PkmnStayedAwakeUsing - .4byte gText_PkmnStoringEnergy - .4byte gText_PkmnUnleashedEnergy - .4byte gText_PkmnFatigueConfusion - .4byte gText_PkmnPickedUpItem - .4byte gText_PkmnUnaffected - .4byte gText_PkmnTransformedInto - .4byte gText_PkmnMadeSubstitute - .4byte gText_PkmnHasSubstitute - .4byte gText_SubstituteDamaged - .4byte gText_PkmnSubstituteFaded - .4byte gText_PkmnMustRecharge - .4byte gText_PkmnRageBuilding - .4byte gText_PkmnMoveWasDisabled - .4byte gText_PkmnMoveIsDisabled - .4byte gText_PkmnMoveDisabledNoMore - .4byte gText_PkmnGotEncore - .4byte gText_PkmnEncoreEnded - .4byte gText_PkmnTookAim - .4byte gText_PkmnSketchedMove - .4byte gText_PkmnTryingToTakeFoe - .4byte gText_PkmnTookFoe - .4byte gText_PkmnReducedPP - .4byte gText_PkmnStoleItem - .4byte gText_PkmnCantEscape - .4byte gText_PkmnFellIntoNightmare - .4byte gText_PkmnLockedInNightmare - .4byte gText_PkmnLaidCurse - .4byte gText_PkmnAfflictedByCurse - .4byte gText_SpikesScattered - .4byte gText_PkmnHurtBySpikes - .4byte gText_PkmnIdentified - .4byte gText_PkmnPerishCountFell - .4byte gText_PkmnBracedItself - .4byte gText_PkmnEnduredHit - .4byte gText_MagnitudeStrength - .4byte gText_PkmnCutHPMaxedAttack - .4byte gText_PkmnCopiedStatChanges - .4byte gText_PkmnGotFree - .4byte gText_PkmnShedLeechSeed - .4byte gText_PkmnBlewAwaySpikes - .4byte gText_PkmnFledFromBattle - .4byte gText_PkmnForesawAttack - .4byte gText_PkmnTookAttack - .4byte gText_PkmnAttack - .4byte gText_PkmnCenterAttention - .4byte gText_PkmnChargingPower - .4byte gText_NaturePowerTurnedInto - .4byte gText_PkmnStatusNormal - .4byte gText_PkmnHasNoMovesLeft - .4byte gText_PkmnSubjectedToTorment - .4byte gText_PkmnCantUseMoveTorment - .4byte gText_PkmnTighteningFocus - .4byte gText_PkmnFellForTaunt - .4byte gText_PkmnCantUseMoveTaunt - .4byte gText_PkmnReadyToHelp - .4byte gText_PkmnSwitchedItems - .4byte gText_PkmnCopiedFoe - .4byte gText_PkmnMadeWish - .4byte gText_PkmnWishCameTrue - .4byte gText_PkmnPlantedRoots - .4byte gText_PkmnAbsorbedNutrients - .4byte gText_PkmnAnchoredItself - .4byte gText_PkmnWasMadeDrowsy - .4byte gText_PkmnKnockedOff - .4byte gText_PkmnSwappedAbilities - .4byte gText_PkmnSealedOpponentMove - .4byte gText_PkmnCantUseMoveSealed - .4byte gText_PkmnWantsGrudge - .4byte gText_PkmnLostPPGrudge - .4byte gText_PkmnShroudedItself - .4byte gText_PkmnMoveBounced - .4byte gText_PkmnWaitsForTarget - .4byte gText_PkmnSnatchedMove - .4byte gText_PkmnMadeItRain - .4byte gText_PkmnRaisedSpeed - .4byte gText_PkmnProtectedBy - .4byte gText_PkmnPreventsUsage - .4byte gText_PkmnRestoredHPUsing - .4byte gText_PkmnChangedTypeWith - .4byte gText_PkmnPreventsParalysisWith - .4byte gText_PkmnPreventsRomanceWith - .4byte gText_PkmnPreventsPoisoningWith - .4byte gText_PkmnPreventsConfusionWith - .4byte gText_PkmnRaisedFirePowerWith - .4byte gText_PkmnAnchorsItselfWith - .4byte gText_PkmnCutsAttackWith - .4byte gText_PkmnPreventsStatLossWith - .4byte gText_PkmnHurtsWith - .4byte gText_PkmnTraced - .4byte gText_StatSharply - .4byte gText_StatRose - .4byte gText_StatHarshly - .4byte gText_StatFell - .4byte gText_PkmnsStatChanged - .4byte gText_PkmnsStatChanged2 - .4byte gText_PkmnsStatChanged3 - .4byte gText_PkmnsStatChanged4 - .4byte gText_CriticalHit - .4byte gText_OneHitKO - .4byte gText_123Poof - .4byte gText_AndEllipsis - .4byte gText_NotVeryEffective - .4byte gText_SuperEffective - .4byte gText_GotAwaySafely - .4byte gText_WildPkmnFled - .4byte gText_NoRunningFromTrainers - .4byte gText_CantEscape - .4byte gText_DontLeaveBirch - .4byte gText_ButNothingHappened - .4byte gText_ButItFailed - .4byte gText_ItHurtConfusion - .4byte gText_MirrorMoveFailed - .4byte gText_StartedToRain - .4byte gText_DownpourStarted - .4byte gText_RainContinues - .4byte gText_DownpourContinues - .4byte gText_RainStopped - .4byte gText_SandstormBrewed - .4byte gText_SandstormRages - .4byte gText_SandstormSubsided - .4byte gText_SunlightGotBright - .4byte gText_SunlightStrong - .4byte gText_SunlightFaded - .4byte gText_StartedHail - .4byte gText_HailContinues - .4byte gText_HailStopped - .4byte gText_FailedToSpitUp - .4byte gText_FailedToSwallow - .4byte gText_WindBecameHeatWave - .4byte gText_StatChangesGone - .4byte gText_CoinsScattered - .4byte gText_TooWeakForSubstitute - .4byte gText_SharedPain - .4byte gText_BellChimed - .4byte gText_FaintInThree - .4byte gText_NoPPLeft - .4byte gText_ButNoPPLeft - .4byte gText_XUsedY - .4byte gText_WallyUsedY - .4byte gText_TrainerBlockedBall - .4byte gText_DontBeAThief - .4byte gText_ItDodgedBall - .4byte gText_YouMissedPkmn - .4byte gText_PkmnBrokeFree - .4byte gText_ItAppearedCaught - .4byte gText_AarghAlmostHadIt - .4byte gText_ShootSoClose - .4byte gText_GotchaPkmnCaught - .4byte gText_GotchaPkmnCaught2 - .4byte gText_GiveNicknameCaptured - .4byte gText_PkmnSentToPC - .4byte gText_PkmnDataAddedToDex - .4byte gText_ItIsRaining - .4byte gText_SandstormIsRaging - .4byte gText_CantEscape2 - .4byte gText_PkmnIgnoresAsleep - .4byte gText_PkmnIgnoredOrders - .4byte gText_PkmnBeganToNap - .4byte gText_PkmnLoafing - .4byte gText_PkmnWontObey - .4byte gText_PkmnTurnedAway - .4byte gText_PkmnPretendNotNotice - .4byte gText_EnemyAboutToSwitchPkmn - .4byte gText_CreptCloser - .4byte gText_CantGetCloser - .4byte gText_PkmnWatchingCarefully - .4byte gText_PkmnCuriousAboutX - .4byte gText_PkmnEnthralledByX - .4byte gText_PkmnIgnoredX - .4byte gText_ThrewPokeblockAtPkmn - .4byte gText_OutOfSafariBalls - .4byte gText_PkmnsXCuredParalysis - .4byte gText_PkmnsXCuredPoison - .4byte gText_PkmnsXHealedBurn - .4byte gText_PkmnsXDefrostedIt - .4byte gText_PkmnsXWokeIt - .4byte gText_PkmnsXSnappedOut - .4byte gText_PkmnsXCuredProblem - .4byte gText_PkmnsXRestoredHealth - .4byte gText_PkmnsXRestoredPP - .4byte gText_PkmnsXRestoredStatus - .4byte gText_PkmnsXRestoredHPALittle - .4byte gText_XAllowsOnlyY - .4byte gText_PkmnHungOnWithX - .4byte gText_EmptyString3 - .4byte gText_PkmnsXPreventsBurns - .4byte gText_PkmnsXBlocksY - .4byte gText_PkmnsXRestoredHPALittle2 - .4byte gText_PkmnsXWhippedUpSandstorm - .4byte gText_PkmnsXPreventsYLoss - .4byte gText_PkmnsXInfatuatedY - .4byte gText_PkmnsXMadeYIneffective - .4byte gText_PkmnsXCuredYProblem - .4byte gText_ItSuckedLiquidOoze - .4byte gText_PkmnTransformed - .4byte gText_ElectricityWeakened - .4byte gText_FireWeakened - .4byte gText_PkmnHidUnderwater - .4byte gText_PkmnSprangUp - .4byte gText_HMMovesCantBeForgotten - .4byte gText_XFoundOneY - .4byte gText_PlayerDefeatedXY - .4byte gText_SoothingAroma - .4byte gText_ItemsCantBeUsedNow - .4byte gText_ForXCommaYZ - .4byte gText_UsingXTheYOfZN - .4byte gText_PkmnUsedXToGetPumped - .4byte gText_PkmnsXMadeYUseless - .4byte gText_PkmnTrappedBySandTomb - .4byte gText_EmptyString4 - .4byte gText_ABoosted - .4byte gText_PkmnsXIntensifiedSun - .4byte gText_PkmnMakesGroundMiss - .4byte gText_YouThrowABallNowRight - .4byte gText_PkmnsXTookAttack - .4byte gText_PkmnChoseXAsDestiny - .4byte gText_PkmnLostFocus - .4byte gText_UseNextPkmn - .4byte gText_PkmnFledUsingIts - .4byte gText_PkmnFledUsing - .4byte gText_PkmnWasDraggedOut - .4byte gText_PreventedFromWorking - .4byte gText_PkmnsXNormalizedStatus - .4byte gText_XYUsedZ - .4byte gText_BoxIsFull - .4byte gText_PkmnAvoidedAttack - .4byte gText_PkmnsXMadeItIneffective - .4byte gText_PkmnsXPreventsFlinching - .4byte gText_PkmnAlreadyHasBurn - .4byte gText_StatsWontDecrease2 - .4byte gText_PkmnsXBlocksY2 - .4byte gText_PkmnsXWoreOff - .4byte gText_PkmnRaisedDefALittle - .4byte gText_PkmnRaisedSpDefALittle - .4byte gText_TheWallShattered - .4byte gText_PkmnsXPreventsYsZ - .4byte gText_PkmnsXCuredItsYProblem - .4byte gText_PkmnCantEscape2 - .4byte gText_PkmnObtainedX - .4byte gText_PkmnObtainedX2 - .4byte gText_PkmnObtainedXYObtainedZ - .4byte gText_ButNoEffect - .4byte gText_PkmnsXHadNoEffectOnY - .4byte gText_TwoEnemiesDefeated - .4byte gText_String48 - .4byte gText_PkmnIncapableOfPower - .4byte gText_GlintAppearsInEye - .4byte gText_PkmnGettingIntoPosition - .4byte gText_PkmnBeganGrowlingDeeply - .4byte gText_PkmnEagerForMore - .4byte gText_DefeatedOpponentByReferee - .4byte gText_LostToOpponentByReferee - .4byte gText_TiedOpponentByReferee - .4byte gText_QuestionForfeitMatch - .4byte gText_ForfeitedMatch - .4byte gText_PkmnTransferredSomeonesPC - .4byte gText_PkmnTransferredLanettesPC - .4byte gText_PkmnBoxSomeonesPCFull - .4byte gText_PkmnBoxLanettesPCFull - .4byte gText_String37 - .4byte gText_String49 - - .align 2 -gMissStringIds:: @ 85CC834 - .2byte 0x0017, 0x0018, 0x0159, 0x001a, 0x014c - -gUnknown_085CC83E:: @ 85CC83E - .2byte 0x00e2, 0x00e3, 0x0021 - .2byte 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3 - .2byte 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb - .2byte 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d - .2byte 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052 - .2byte 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7 - .2byte 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130 - .2byte 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055 - .2byte 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c - .2byte 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5 - .2byte 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038 - .2byte 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036 - .2byte 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c - .2byte 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107 - .2byte 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110 - .2byte 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1 - .2byte 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d - .2byte 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126 - .2byte 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a - .2byte 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167 - .2byte 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a - -gTrappingMoves:: @ 85CC982 - .2byte MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xffff - -gText_PkmnIsEvolving:: @ 85CC990 - .string "What?\n{STR_VAR_1} is evolving!$" - -gText_CongratsPkmnEvolved:: @ 85CC9A6 - .string "Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p$" - -gText_PkmnStoppedEvolving:: @ 85CC9D3 - .string "Huh? {STR_VAR_1}\nstopped evolving!\p$" - -gText_EllipsisQuestionMark:: @ 85CC9EE - .string "……?\p$" - -gText_WhatWillPkmnDo:: @ 85CC9F3 - .string "What will\n{STRING 18} do?$" - -gText_WhatWillPkmnDo2:: @ 85CCA04 - .string "What will\n{STRING 35} do?$" - -gText_WhatWillWallyDo:: @ 85CCA15 - .string "What will\nWALLY do?$" - -gText_LinkStandby:: @ 85CCA29 - .string "{PAUSE 16}Link standby…$" - -gText_BattleMenu:: @ 85CCA3A - .string "FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN$" - -gText_SafariZoneMenu:: @ 85CCA54 - .string "BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN$" - -gText_MoveInterfacePP:: @ 85CCA6F - .string "PP $" - -gText_MoveInterfaceType:: @ 85CCA73 - .string "TYPE/$" - - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/$" - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?$" - -gText_BattleYesNoChoice:: @ 85CCABB - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Yes\nNo$" - -gText_BattleSwitchWhich:: @ 85CCACA - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Switch\nwhich?$" - - .string "{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}$" - .string "{UP_ARROW}$" - .string "{ESCAPE 4}$" - .string "-$" - -gText_HP:: @ 85CCAF1 - .string "HP$" - -gText_Attack:: @ 85CCAF4 - .string "ATTACK$" - -gText_Defense:: @ 85CCAFB - .string "DEFENSE$" - -gText_SpAtk:: @ 85CCB03 - .string "SP. ATK$" - -gText_SpDef:: @ 85CCB0B - .string "SP. DEF$" - - .align 2 - .4byte gText_HP - .4byte gText_SpAtk - .4byte gText_Attack - .4byte gText_SpDef - .4byte gText_Defense - .4byte gText_Speed - -gText_SafariBalls:: @ 85CCB2C - .string "{HIGHLIGHT DARK_GREY}SAFARI BALLS$" - -gText_SafariBallLeft:: @ 85CCB3C - .string "{HIGHLIGHT DARK_GREY}Left: $" - .string "{HIGHLIGHT DARK_GREY}$" -gText_Sleep:: - .string "sleep$" -gText_Poison:: - .string "poison$" -gText_Burn:: - .string "burn$" -gText_Paralysis:: - .string "paralysis$" -gText_Ice:: - .string "ice$" -gText_Confusion:: - .string "confusion$" -gText_Love:: - .string "love$" - -gText_SpaceAndSpace:: @ 85CCB79 - .string " and $" - -gText_CommaSpace:: @ 85CCB7F - .string ", $" - -gText_Space2:: @ 85CCB82 - .string " $" - -gText_ScrollTextUp:: @ 85CCB84 - .string "\l$" - -gText_NewLine:: @ 85CCB86 - .string "\n$" - -gText_Are:: @ 85CCB88 - .string "are$" - -gText_Are2:: @ 85CCB8C - .string "are$" - -gText_BadEgg:: @ 85CCB90 - .string "Bad EGG$" - -gText_BattleWallyName:: @ 85CCB98 - .string "WALLY$" - -gText_Win:: @ 85CCB9E - .string "{HIGHLIGHT TRANSPARENT}Win$" - -gText_Loss:: @ 85CCBA5 - .string "{HIGHLIGHT TRANSPARENT}Loss$" - -gText_Draw:: @ 85CCBAD - .string "{HIGHLIGHT TRANSPARENT}Draw$" - -gText_SpaceIs:: @ 85CCBB5 - .string " is$" - -gText_ApostropheS:: @ 85CCBB9 - .string "’s$" - -gText_UnknownMoveTypes:: @ 85CCBBC - .string "a NORMAL move$ " - .string "a FIGHTING move$ " - .string "a FLYING move$ " - .string "a POISON move$ " - .string "a GROUND move$ " - .string "a ROCK move$ " - .string "a BUG move$ " - .string "a GHOST move$ " - .string "a STEEL move$ " - .string "a ??? move$ " - .string "a FIRE move$ " - .string "a WATER move$ " - .string "a GRASS move$ " - .string "an ELECTRIC move$" - .string "a PSYCHIC move$ " - .string "an ICE move$ " - .string "a DRAGON move$ " - .string "a DARK move$ " - -gText_BattleTourney:: @ 85CCCEE - .string "BATTLE TOURNEY$" - -gText_Round1:: @ 85CCCFD - .string "Round 1$" - -gText_Round2:: @ 85CCD05 - .string "Round 2$" - -gText_Semifinal:: @ 85CCC0D - .string "Semifinal$" - -gText_Final:: @ 85CCD17 - .string "Final$" - - .align 2 -gRoundsStringTable:: @ 85CCD20 - .4byte gText_Round1 - .4byte gText_Round2 - .4byte gText_Semifinal - .4byte gText_Final - - .string "The great new hope!\p$" - .string "Will the championship dream come true?!\p$" - .string "A former CHAMPION!\p$" - .string "The previous CHAMPION!\p$" - .string "The unbeaten CHAMPION!\p$" - -gText_JapaneseHonorific:: @ 85CCDB2 - .string "{KUN}$" - -gText_Vs:: @ 85CCDB5 - .string "VS$" - -gText_RivalBuffer:: @ 85CCDB8 - .string "{RIVAL}$" - -gText_Mind:: @ 85CCDBB - .string "Mind$" - -gText_Skill:: @ 85CCDC0 - .string "Skill$" - -gText_Body:: @ 85CCDC6 - .string "Body$" - -gText_Judgement:: @ 85CCDCB - .string "{STRING 0}{CLEAR 13}Judgment{CLEAR 13}{PLAYER}$" - -gText_TwoTrainersSentPkmn:: @ 85CCDDE - .string "{STRING 28} {STRING 29} sent\nout {RIVAL}!\p{STRING 46} {STRING 47} sent\nout {AQUA}!$" - -gText_TrainerXYSentOutPkmn3:: @ 85CCE04 - .string "{STRING 46} {STRING 47} sent\nout {STRING 0}!$" - -gText_TwoTrainersWantToBattle2:: @ 85CCE17 - .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwant to battle!\p$" - -gText_TrainerXYSentOutZGoN:: @ 85CCE38 - .string "{STRING 50} {STRING 51} sent\nout {VERSION}!\lGo, {STRING 5}!$" - -gText_TwoEnemiesDefeated:: @ 85CCE53 - .string "{STRING 28} {STRING 29} and\n{STRING 46} {STRING 47}\lwere defeated!\p$" - -gText_String48:: @ 85CCE73 - .string "{STRING 48}$" - -gText_PkmnIncapableOfPower:: @ 85CCE76 - .string "{STRING 15} appears incapable\nof using its power!$" - -gText_GlintAppearsInEye:: @ 85CCE9F - .string "A glint appears in\n{STRING 19}’s eyes!$" - -gText_PkmnGettingIntoPosition:: @ 85CCEBD - .string "{STRING 19} is getting into\nposition!$" - -gText_PkmnBeganGrowlingDeeply:: @ 85CCEDA - .string "{STRING 19} began growling deeply!$" - -gText_PkmnEagerForMore:: @ 85CCEF4 - .string "{STRING 19} is eager for more!$" - -gUnknown_085CCF0A:: @ 85CCF0A - .2byte 0x016E, 0x016F, 0x0170, 0x0171 - -gText_RefIfNothingIsDecided:: @ 85CCF12 - .string "REFEREE: If nothing is decided in\n3 turns, we will go to judging!$" - -gText_RefThatsIt:: @ 85CCF54 - .string "REFEREE: That’s it! We will now go to\njudging to determine the winner!$" - -gText_RefJudgeMind:: @ 85CCF9B - .string "REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p$" - -gText_RefJudgeSkill:: @ 85CCFE2 - .string "REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p$" - -gText_RefJudgeBody:: @ 85CD029 - .string "REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p$" - -gText_RefJudgement1:: @ 85CD071 - .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 35}’s {STRING 5}!\p$" - -gText_RefJudgement2:: @ 85CD0A6 - .string "REFEREE: Judgment: {STRING 0} to {PLAYER}!\nThe winner is {STRING 29}’s {RIVAL}!\p$" - -gText_RefJudgement3:: @ 85CD0DB - .string "REFEREE: Judgment: 3 to 3!\nWe have a draw!\p$" - -gText_DefeatedOpponentByReferee:: @ 85CD107 - .string "{STRING 5} defeated the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_LostToOpponentByReferee:: @ 85CD13C - .string "{STRING 5} lost to the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_TiedOpponentByReferee:: @ 85CD170 - .string "{STRING 5} tied the opponent\n{RIVAL} in a REFEREE’s decision!$" - -gText_RefCommenceBattle:: @ 85CD1A1 - .string "REFEREE: {STRING 5} VS {RIVAL}!\nCommence battling!$" - - .align 2 -gRefereeStringsTable:: @ 85CD1C8 - .4byte gText_RefIfNothingIsDecided - .4byte gText_RefThatsIt - .4byte gText_RefJudgeMind - .4byte gText_RefJudgeSkill - .4byte gText_RefJudgeBody - .4byte gText_RefJudgement1 - .4byte gText_RefJudgement2 - .4byte gText_RefJudgement3 - .4byte gText_RefCommenceBattle - -gText_QuestionForfeitMatch:: @ 85CD1EC - .string "Would you like to forfeit the match\nand quit now?$" - -gText_ForfeitedMatch:: @ 85CD21E - .string "{STRING 35} forfeited the match!$" - -gText_String37:: @ 85CD236 - .string "{STRING 37}$" - -gText_String49:: @ 85CD239 - .string "{STRING 49}$" - - .string "{PLAY_SE 0x0011}{STRING 28} {STRING 29} fled!$" - -gText_PlayerLostAgainst2:: @ 85CD24C - .string "Player lost against\n{STRING 28} {STRING 29}!$" - -gText_PlayerBattledToDraw2:: @ 85CD267 - .string "Player battled to a draw against\n{STRING 28} {STRING 29}!$" - -gText_RecordBattleToPass:: @ 85CD28F - .string "Would you like to record your battle\non your FRONTIER PASS?$" - -gText_BattleRecordedOnPass:: @ 85CD2CB - .string "{STRING 35}’s battle result was recorded\non the FRONTIER PASS.$" - -gText_TrainerWantsToBattle:: @ 85CD301 - .string "{STRING 32}\nwants to battle!{PAUSE 49}$" - -gText_TwoTrainersWantToBattle3:: @ 85CD318 - .string "{STRING 32} and {STRING 33}\nwant to battle!{PAUSE 49}$" - - .align 1 -gUnknown_085CD336:: @ 85CD336 - .2byte 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f - .2byte 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c - .2byte 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd - .2byte 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112 - .2byte 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a - .2byte 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af - .2byte 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c - .2byte 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129 - .2byte 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a - .2byte 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025 - .2byte 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047 - .2byte 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a - .2byte 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae - .2byte 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103 - .2byte 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000 - -gUnknown_085CD422:: @ 85CD422 - .byte 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff - - .align 2 -gUnknown_085CD42C:: @ 85CD42C - .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 - .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 - .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 - .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff - .2byte 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100 - .2byte 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000 - - .align 2 -gUnknown_085CD54C:: @ 85C54C - .2byte 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101 - .2byte 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102 - .2byte 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100 - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100 - .2byte 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00 - .2byte 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000 - .2byte 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff - .2byte 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201 - .2byte 0x0301, 0x0000 - - .align 2 -gUnknown_085CD660:: @ 85CD660 - .4byte gUnknown_085CD42C - .4byte gUnknown_085CD54C - - .align 2 -gUnknown_085CD668:: @ 85CD668 - .byte 0x08, 0x04, 0x01, 0x00 diff --git a/include/battle.h b/include/battle.h index d41702396a..bb61c70433 100644 --- a/include/battle.h +++ b/include/battle.h @@ -604,7 +604,7 @@ struct BattleStruct u8 field_8B; u8 field_8C; u8 field_8D; - u8 field_8E; + u8 stringMoveType; u8 expGetterBank; u8 field_90; u8 field_91; diff --git a/include/battle_message.h b/include/battle_message.h index 3bc7117bb4..1884c9e371 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -206,11 +206,19 @@ u32 BattleStringExpandPlaceholdersToDisplayedString(const u8* src); u32 BattleStringExpandPlaceholders(const u8* src, u8* dst); void sub_814F9EC(const u8* text, u8 arg1); -extern u8 gBattleTextBuff1[]; -extern u8 gBattleTextBuff2[]; -extern u8 gBattleTextBuff3[]; -extern u8 gDisplayedStringBattle[]; +#define TEXT_BUFF_ARRAY_COUNT 16 +extern u8 gDisplayedStringBattle[300]; +extern u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT]; +extern u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT]; +extern u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT]; + +extern const u8* const gStatNamesTable[]; +extern const u8* const gPokeblockWasTooXStringTable[]; extern const u8* const gRefereeStringsTable[]; +extern const u8* const gStatNamesTable2[]; + +extern const u16 gMissStringIds[]; +extern const u16 gTrappingMoves[]; #endif // GUARD_BATTLE_MESSAGE_H diff --git a/include/battle_string_ids.h b/include/battle_string_ids.h new file mode 100644 index 0000000000..546cb2e462 --- /dev/null +++ b/include/battle_string_ids.h @@ -0,0 +1,385 @@ +#ifndef GUARD_BATTLE_STRING_IDS_H +#define GUARD_BATTLE_STRING_IDS_H + +#define BATTLESTRINGS_COUNT 369 + +#define BATTLESTRINGS_ID_ADDER 12 // all battlestrings have its ID + 12, because first 5 are reserved + +#define STRINGID_INTROMSG 0 +#define STRINGID_INTROSENDOUT 1 +#define STRINGID_RETURNMON 2 +#define STRINGID_SWITCHINMON 3 +#define STRINGID_USEDMOVE 4 +#define STRINGID_BATTLEEND 5 + +#define STRINGID_TRAINER1LOSETEXT 12 +#define STRINGID_PKMNGAINEDEXP 13 +#define STRINGID_PKMNGREWTOLV 14 +#define STRINGID_PKMNLEARNEDMOVE 15 +#define STRINGID_TRYTOLEARNMOVE1 16 +#define STRINGID_TRYTOLEARNMOVE2 17 +#define STRINGID_TRYTOLEARNMOVE3 18 +#define STRINGID_PKMNFORGOTMOVE 19 +#define STRINGID_STOPLEARNINGMOVE 20 +#define STRINGID_DIDNOTLEARNMOVE 21 +#define STRINGID_PKMNLEARNEDMOVE2 22 +#define STRINGID_ATTACKMISSED 23 +#define STRINGID_PKMNPROTECTEDITSELF 24 +#define STRINGID_STATSWONTINCREASE2 25 +#define STRINGID_AVOIDEDDAMAGE 26 +#define STRINGID_ITDOESNTAFFECT 27 +#define STRINGID_PKMNFAINTED 28 +#define STRINGID_PKMNFAINTED2 29 +#define STRINGID_PLAYERGOTMONEY 30 +#define STRINGID_PLAYERWHITEOUT 31 +#define STRINGID_PLAYERWHITEOUT2 32 +#define STRINGID_PREVENTSESCAPE 33 +#define STRINGID_HITXTIMES 34 +#define STRINGID_PKMNFELLASLEEP 35 +#define STRINGID_PKMNMADESLEEP 36 +#define STRINGID_PKMNALREADYASLEEP 37 +#define STRINGID_PKMNALREADYASLEEP2 38 +#define STRINGID_PKMNWASNTAFFECTED 39 +#define STRINGID_PKMNWASPOISONED 40 +#define STRINGID_PKMNPOISONEDBY 41 +#define STRINGID_PKMNHURTBYPOISON 42 +#define STRINGID_PKMNALREADYPOISONED 43 +#define STRINGID_PKMNBADLYPOISONED 44 +#define STRINGID_PKMNENERGYDRAINED 45 +#define STRINGID_PKMNWASBURNED 46 +#define STRINGID_PKMNBURNEDBY 47 +#define STRINGID_PKMNHURTBYBURN 48 +#define STRINGID_PKMNWASFROZEN 49 +#define STRINGID_PKMNFROZENBY 50 +#define STRINGID_PKMNISFROZEN 51 +#define STRINGID_PKMNWASDEFROSTED 52 +#define STRINGID_PKMNWASDEFROSTED2 53 +#define STRINGID_PKMNWASDEFROSTEDBY 54 +#define STRINGID_PKMNWASPARALYZED 55 +#define STRINGID_PKMNWASPARALYZEDBY 56 +#define STRINGID_PKMNISPARALYZED 57 +#define STRINGID_PKMNISALREADYPARALYZED 58 +#define STRINGID_PKMNHEALEDPARALYSIS 59 +#define STRINGID_PKMNDREAMEATEN 60 +#define STRINGID_STATSWONTINCREASE 61 +#define STRINGID_STATSWONTDECREASE 62 +#define STRINGID_TEAMSTOPPEDWORKING 63 +#define STRINGID_FOESTOPPEDWORKING 64 +#define STRINGID_PKMNISCONFUSED 65 +#define STRINGID_PKMNHEALEDCONFUSION 66 +#define STRINGID_PKMNWASCONFUSED 67 +#define STRINGID_PKMNALREADYCONFUSED 68 +#define STRINGID_PKMNFELLINLOVE 69 +#define STRINGID_PKMNINLOVE 70 +#define STRINGID_PKMNIMMOBILIZEDBYLOVE 71 +#define STRINGID_PKMNBLOWNAWAY 72 +#define STRINGID_PKMNCHANGEDTYPE 73 +#define STRINGID_PKMNFLINCHED 74 +#define STRINGID_PKMNREGAINEDHEALTH 75 +#define STRINGID_PKMNHPFULL 76 +#define STRINGID_PKMNRAISEDSPDEF 77 +#define STRINGID_PKMNRAISEDDEF 78 +#define STRINGID_PKMNCOVEREDBYVEIL 79 +#define STRINGID_PKMNUSEDSAFEGUARD 80 +#define STRINGID_PKMNSAFEGUARDEXPIRED 81 +#define STRINGID_PKMNWENTTOSLEEP 82 +#define STRINGID_PKMNSLEPTHEALTHY 83 +#define STRINGID_PKMNWHIPPEDWHIRLWIND 84 +#define STRINGID_PKMNTOOKSUNLIGHT 85 +#define STRINGID_PKMNLOWEREDHEAD 86 +#define STRINGID_PKMNISGLOWING 87 +#define STRINGID_PKMNFLEWHIGH 88 +#define STRINGID_PKMNDUGHOLE 89 +#define STRINGID_PKMNSQUEEZEDBYBIND 90 +#define STRINGID_PKMNTRAPPEDINVORTEX 91 +#define STRINGID_PKMNWRAPPEDBY 92 +#define STRINGID_PKMNCLAMPED 93 +#define STRINGID_PKMNHURTBY 94 +#define STRINGID_PKMNFREEDFROM 95 +#define STRINGID_PKMNCRASHED 96 +#define STRINGID_PKMNSHROUDEDINMIST 97 +#define STRINGID_PKMNPROTECTEDBYMIST 98 +#define STRINGID_PKMNGETTINGPUMPED 99 +#define STRINGID_PKMNHITWITHRECOIL 100 +#define STRINGID_PKMNPROTECTEDITSELF2 101 +#define STRINGID_PKMNBUFFETEDBYSANDSTORM 102 +#define STRINGID_PKMNPELTEDBYHAIL 103 +#define STRINGID_PKMNSEEDED 104 +#define STRINGID_PKMNEVADEDATTACK 105 +#define STRINGID_PKMNSAPPEDBYLEECHSEED 106 +#define STRINGID_PKMNFASTASLEEP 107 +#define STRINGID_PKMNWOKEUP 108 +#define STRINGID_PKMNUPROARKEPTAWAKE 109 +#define STRINGID_PKMNWOKEUPINUPROAR 110 +#define STRINGID_PKMNCAUSEDUPROAR 111 +#define STRINGID_PKMNMAKINGUPROAR 112 +#define STRINGID_PKMNCALMEDDOWN 113 +#define STRINGID_PKMNCANTSLEEPINUPROAR 114 +#define STRINGID_PKMNSTOCKPILED 115 +#define STRINGID_PKMNCANTSTOCKPILE 116 +#define STRINGID_PKMNCANTSLEEPINUPROAR2 117 +#define STRINGID_UPROARKEPTPKMNAWAKE 118 +#define STRINGID_PKMNSTAYEDAWAKEUSING 119 +#define STRINGID_PKMNSTORINGENERGY 120 +#define STRINGID_PKMNUNLEASHEDENERGY 121 +#define STRINGID_PKMNFATIGUECONFUSION 122 +#define STRINGID_PKMNPICKEDUPITEM 123 +#define STRINGID_PKMNUNAFFECTED 124 +#define STRINGID_PKMNTRANSFORMEDINTO 125 +#define STRINGID_PKMNMADESUBSTITUTE 126 +#define STRINGID_PKMNHASSUBSTITUTE 127 +#define STRINGID_SUBSTITUTEDAMAGED 128 +#define STRINGID_PKMNSUBSTITUTEFADED 129 +#define STRINGID_PKMNMUSTRECHARGE 130 +#define STRINGID_PKMNRAGEBUILDING 131 +#define STRINGID_PKMNMOVEWASDISABLED 132 +#define STRINGID_PKMNMOVEISDISABLED 133 +#define STRINGID_PKMNMOVEDISABLEDNOMORE 134 +#define STRINGID_PKMNGOTENCORE 135 +#define STRINGID_PKMNENCOREENDED 136 +#define STRINGID_PKMNTOOKAIM 137 +#define STRINGID_PKMNSKETCHEDMOVE 138 +#define STRINGID_PKMNTRYINGTOTAKEFOE 139 +#define STRINGID_PKMNTOOKFOE 140 +#define STRINGID_PKMNREDUCEDPP 141 +#define STRINGID_PKMNSTOLEITEM 142 +#define STRINGID_PKMNCANTESCAPE 143 +#define STRINGID_PKMNFELLINTONIGHTMARE 144 +#define STRINGID_PKMNLOCKEDINNIGHTMARE 145 +#define STRINGID_PKMNLAIDCURSE 146 +#define STRINGID_PKMNAFFLICTEDBYCURSE 147 +#define STRINGID_SPIKESSCATTERED 148 +#define STRINGID_PKMNHURTBYSPIKES 149 +#define STRINGID_PKMNIDENTIFIED 150 +#define STRINGID_PKMNPERISHCOUNTFELL 151 +#define STRINGID_PKMNBRACEDITSELF 152 +#define STRINGID_PKMNENDUREDHIT 153 +#define STRINGID_MAGNITUDESTRENGTH 154 +#define STRINGID_PKMNCUTHPMAXEDATTACK 155 +#define STRINGID_PKMNCOPIEDSTATCHANGES 156 +#define STRINGID_PKMNGOTFREE 157 +#define STRINGID_PKMNSHEDLEECHSEED 158 +#define STRINGID_PKMNBLEWAWAYSPIKES 159 +#define STRINGID_PKMNFLEDFROMBATTLE 160 +#define STRINGID_PKMNFORESAWATTACK 161 +#define STRINGID_PKMNTOOKATTACK 162 +#define STRINGID_PKMNATTACK 163 +#define STRINGID_PKMNCENTERATTENTION 164 +#define STRINGID_PKMNCHARGINGPOWER 165 +#define STRINGID_NATUREPOWERTURNEDINTO 166 +#define STRINGID_PKMNSTATUSNORMAL 167 +#define STRINGID_PKMNHASNOMOVESLEFT 168 +#define STRINGID_PKMNSUBJECTEDTOTORMENT 169 +#define STRINGID_PKMNCANTUSEMOVETORMENT 170 +#define STRINGID_PKMNTIGHTENINGFOCUS 171 +#define STRINGID_PKMNFELLFORTAUNT 172 +#define STRINGID_PKMNCANTUSEMOVETAUNT 173 +#define STRINGID_PKMNREADYTOHELP 174 +#define STRINGID_PKMNSWITCHEDITEMS 175 +#define STRINGID_PKMNCOPIEDFOE 176 +#define STRINGID_PKMNMADEWISH 177 +#define STRINGID_PKMNWISHCAMETRUE 178 +#define STRINGID_PKMNPLANTEDROOTS 179 +#define STRINGID_PKMNABSORBEDNUTRIENTS 180 +#define STRINGID_PKMNANCHOREDITSELF 181 +#define STRINGID_PKMNWASMADEDROWSY 182 +#define STRINGID_PKMNKNOCKEDOFF 183 +#define STRINGID_PKMNSWAPPEDABILITIES 184 +#define STRINGID_PKMNSEALEDOPPONENTMOVE 185 +#define STRINGID_PKMNCANTUSEMOVESEALED 186 +#define STRINGID_PKMNWANTSGRUDGE 187 +#define STRINGID_PKMNLOSTPPGRUDGE 188 +#define STRINGID_PKMNSHROUDEDITSELF 189 +#define STRINGID_PKMNMOVEBOUNCED 190 +#define STRINGID_PKMNWAITSFORTARGET 191 +#define STRINGID_PKMNSNATCHEDMOVE 192 +#define STRINGID_PKMNMADEITRAIN 193 +#define STRINGID_PKMNRAISEDSPEED 194 +#define STRINGID_PKMNPROTECTEDBY 195 +#define STRINGID_PKMNPREVENTSUSAGE 196 +#define STRINGID_PKMNRESTOREDHPUSING 197 +#define STRINGID_PKMNCHANGEDTYPEWITH 198 +#define STRINGID_PKMNPREVENTSPARALYSISWITH 199 +#define STRINGID_PKMNPREVENTSROMANCEWITH 200 +#define STRINGID_PKMNPREVENTSPOISONINGWITH 201 +#define STRINGID_PKMNPREVENTSCONFUSIONWITH 202 +#define STRINGID_PKMNRAISEDFIREPOWERWITH 203 +#define STRINGID_PKMNANCHORSITSELFWITH 204 +#define STRINGID_PKMNCUTSATTACKWITH 205 +#define STRINGID_PKMNPREVENTSSTATLOSSWITH 206 +#define STRINGID_PKMNHURTSWITH 207 +#define STRINGID_PKMNTRACED 208 +#define STRINGID_STATSHARPLY 209 +#define STRINGID_STATROSE 210 +#define STRINGID_STATHARSHLY 211 +#define STRINGID_STATFELL 212 +#define STRINGID_PKMNSSTATCHANGED 213 +#define STRINGID_PKMNSSTATCHANGED2 214 +#define STRINGID_PKMNSSTATCHANGED3 215 +#define STRINGID_PKMNSSTATCHANGED4 216 +#define STRINGID_CRITICALHIT 217 +#define STRINGID_ONEHITKO 218 +#define STRINGID_123POOF 219 +#define STRINGID_ANDELLIPSIS 220 +#define STRINGID_NOTVERYEFFECTIVE 221 +#define STRINGID_SUPEREFFECTIVE 222 +#define STRINGID_GOTAWAYSAFELY 223 +#define STRINGID_WILDPKMNFLED 224 +#define STRINGID_NORUNNINGFROMTRAINERS 225 +#define STRINGID_CANTESCAPE 226 +#define STRINGID_DONTLEAVEBIRCH 227 +#define STRINGID_BUTNOTHINGHAPPENED 228 +#define STRINGID_BUTITFAILED 229 +#define STRINGID_ITHURTCONFUSION 230 +#define STRINGID_MIRRORMOVEFAILED 231 +#define STRINGID_STARTEDTORAIN 232 +#define STRINGID_DOWNPOURSTARTED 233 +#define STRINGID_RAINCONTINUES 234 +#define STRINGID_DOWNPOURCONTINUES 235 +#define STRINGID_RAINSTOPPED 236 +#define STRINGID_SANDSTORMBREWED 237 +#define STRINGID_SANDSTORMRAGES 238 +#define STRINGID_SANDSTORMSUBSIDED 239 +#define STRINGID_SUNLIGHTGOTBRIGHT 240 +#define STRINGID_SUNLIGHTSTRONG 241 +#define STRINGID_SUNLIGHTFADED 242 +#define STRINGID_STARTEDHAIL 243 +#define STRINGID_HAILCONTINUES 244 +#define STRINGID_HAILSTOPPED 245 +#define STRINGID_FAILEDTOSPITUP 246 +#define STRINGID_FAILEDTOSWALLOW 247 +#define STRINGID_WINDBECAMEHEATWAVE 248 +#define STRINGID_STATCHANGESGONE 249 +#define STRINGID_COINSSCATTERED 250 +#define STRINGID_TOOWEAKFORSUBSTITUTE 251 +#define STRINGID_SHAREDPAIN 252 +#define STRINGID_BELLCHIMED 253 +#define STRINGID_FAINTINTHREE 254 +#define STRINGID_NOPPLEFT 255 +#define STRINGID_BUTNOPPLEFT 256 +#define STRINGID_PLAYERUSEDITEM 257 +#define STRINGID_WALLYUSEDITEM 258 +#define STRINGID_TRAINERBLOCKEDBALL 259 +#define STRINGID_DONTBEATHIEF 260 +#define STRINGID_ITDODGEDBALL 261 +#define STRINGID_YOUMISSEDPKMN 262 +#define STRINGID_PKMNBROKEFREE 263 +#define STRINGID_ITAPPEAREDCAUGHT 264 +#define STRINGID_AARGHALMOSTHADIT 265 +#define STRINGID_SHOOTSOCLOSE 266 +#define STRINGID_GOTCHAPKMNCAUGHT 267 +#define STRINGID_GOTCHAPKMNCAUGHT2 268 +#define STRINGID_GIVENICKNAMECAPTURED 269 +#define STRINGID_PKMNSENTTOPC 270 +#define STRINGID_PKMNDATAADDEDTODEX 271 +#define STRINGID_ITISRAINING 272 +#define STRINGID_SANDSTORMISRAGING 273 +#define STRINGID_CANTESCAPE2 274 +#define STRINGID_PKMNIGNORESASLEEP 275 +#define STRINGID_PKMNIGNOREDORDERS 276 +#define STRINGID_PKMNBEGANTONAP 277 +#define STRINGID_PKMNLOAFING 278 +#define STRINGID_PKMNWONTOBEY 279 +#define STRINGID_PKMNTURNEDAWAY 280 +#define STRINGID_PKMNPRETENDNOTNOTICE 281 +#define STRINGID_ENEMYABOUTTOSWITCHPKMN 282 +#define STRINGID_CREPTCLOSER 283 +#define STRINGID_CANTGETCLOSER 284 +#define STRINGID_PKMNWATCHINGCAREFULLY 285 +#define STRINGID_PKMNCURIOUSABOUTX 286 +#define STRINGID_PKMNENTHRALLEDBYX 287 +#define STRINGID_PKMNIGNOREDX 288 +#define STRINGID_THREWPOKEBLOCKATPKMN 289 +#define STRINGID_OUTOFSAFARIBALLS 290 +#define STRINGID_PKMNSITEMCUREDPARALYSIS 291 +#define STRINGID_PKMNSITEMCUREDPOISON 292 +#define STRINGID_PKMNSITEMHEALEDBURN 293 +#define STRINGID_PKMNSITEMDEFROSTEDIT 294 +#define STRINGID_PKMNSITEMWOKEIT 295 +#define STRINGID_PKMNSITEMSNAPPEDOUT 296 +#define STRINGID_PKMNSITEMCUREDPROBLEM 297 +#define STRINGID_PKMNSITEMRESTOREDHEALTH 298 +#define STRINGID_PKMNSITEMRESTOREDPP 299 +#define STRINGID_PKMNSITEMRESTOREDSTATUS 300 +#define STRINGID_PKMNSITEMRESTOREDHPALITTLE 301 +#define STRINGID_ITEMALLOWSONLYYMOVE 302 +#define STRINGID_PKMNHUNGONWITHX 303 +#define STRINGID_EMPTYSTRING3 304 +#define STRINGID_PKMNSXPREVENTSBURNS 305 +#define STRINGID_PKMNSXBLOCKSY 306 +#define STRINGID_PKMNSXRESTOREDHPALITTLE2 307 +#define STRINGID_PKMNSXWHIPPEDUPSANDSTORM 308 +#define STRINGID_PKMNSXPREVENTSYLOSS 309 +#define STRINGID_PKMNSXINFATUATEDY 310 +#define STRINGID_PKMNSXMADEYINEFFECTIVE 311 +#define STRINGID_PKMNSXCUREDYPROBLEM 312 +#define STRINGID_ITSUCKEDLIQUIDOOZE 313 +#define STRINGID_PKMNTRANSFORMED 314 +#define STRINGID_ELECTRICITYWEAKENED 315 +#define STRINGID_FIREWEAKENED 316 +#define STRINGID_PKMNHIDUNDERWATER 317 +#define STRINGID_PKMNSPRANGUP 318 +#define STRINGID_HMMOVESCANTBEFORGOTTEN 319 +#define STRINGID_XFOUNDONEY 320 +#define STRINGID_PLAYERDEFEATEDTRAINER1 321 +#define STRINGID_SOOTHINGAROMA 322 +#define STRINGID_ITEMSCANTBEUSEDNOW 323 +#define STRINGID_FORXCOMMAYZ 324 +#define STRINGID_USINGXTHEYOFZN 325 +#define STRINGID_PKMNUSEDXTOGETPUMPED 326 +#define STRINGID_PKMNSXMADEYUSELESS 327 +#define STRINGID_PKMNTRAPPEDBYSANDTOMB 328 +#define STRINGID_EMPTYSTRING4 329 +#define STRINGID_ABOOSTED 330 +#define STRINGID_PKMNSXINTENSIFIEDSUN 331 +#define STRINGID_PKMNMAKESGROUNDMISS 332 +#define STRINGID_YOUTHROWABALLNOWRIGHT 333 +#define STRINGID_PKMNSXTOOKATTACK 334 +#define STRINGID_PKMNCHOSEXASDESTINY 335 +#define STRINGID_PKMNLOSTFOCUS 336 +#define STRINGID_USENEXTPKMN 337 +#define STRINGID_PKMNFLEDUSINGITS 338 +#define STRINGID_PKMNFLEDUSING 339 +#define STRINGID_PKMNWASDRAGGEDOUT 340 +#define STRINGID_PREVENTEDFROMWORKING 341 +#define STRINGID_PKMNSITEMNORMALIZEDSTATUS 342 +#define STRINGID_TRAINER1USEDITEM 343 +#define STRINGID_BOXISFULL 344 +#define STRINGID_PKMNAVOIDEDATTACK 345 +#define STRINGID_PKMNSXMADEITINEFFECTIVE 346 +#define STRINGID_PKMNSXPREVENTSFLINCHING 347 +#define STRINGID_PKMNALREADYHASBURN 348 +#define STRINGID_STATSWONTDECREASE2 349 +#define STRINGID_PKMNSXBLOCKSY2 350 +#define STRINGID_PKMNSXWOREOFF 351 +#define STRINGID_PKMNRAISEDDEFALITTLE 352 +#define STRINGID_PKMNRAISEDSPDEFALITTLE 353 +#define STRINGID_THEWALLSHATTERED 354 +#define STRINGID_PKMNSXPREVENTSYSZ 355 +#define STRINGID_PKMNSXCUREDITSYPROBLEM 356 +#define STRINGID_PKMNCANTESCAPE2 357 +#define STRINGID_PKMNOBTAINEDX 358 +#define STRINGID_PKMNOBTAINEDX2 359 +#define STRINGID_PKMNOBTAINEDXYOBTAINEDZ 360 +#define STRINGID_BUTNOEFFECT 361 +#define STRINGID_PKMNSXHADNOEFFECTONY 362 +#define STRINGID_TWOENEMIESDEFEATED 363 +#define STRINGID_TRAINER2LOSETEXT 364 +#define STRINGID_PKMNINCAPABLEOFPOWER 365 +#define STRINGID_GLINTAPPEARSINEYE 366 +#define STRINGID_PKMNGETTINGINTOPOSITION 367 +#define STRINGID_PKMNBEGANGROWLINGDEEPLY 368 +#define STRINGID_PKMNEAGERFORMORE 369 +#define STRINGID_DEFEATEDOPPONENTBYREFEREE 370 +#define STRINGID_LOSTTOOPPONENTBYREFEREE 371 +#define STRINGID_TIEDOPPONENTBYREFEREE 372 +#define STRINGID_QUESTIONFORFEITMATCH 373 +#define STRINGID_FORFEITEDMATCH 374 +#define STRINGID_PKMNTRANSFERREDSOMEONESPC 375 +#define STRINGID_PKMNTRANSFERREDLANETTESPC 376 +#define STRINGID_PKMNBOXSOMEONESPCFULL 377 +#define STRINGID_PKMNBOXLANETTESPCFULL 378 +#define STRINGID_TRAINER1WINTEXT 379 +#define STRINGID_TRAINER2WINTEXT 380 + +#endif // GUARD_BATTLE_STRING_IDS_H diff --git a/ld_script.txt b/ld_script.txt index de6ba62f15..20ec4d145f 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -190,6 +190,7 @@ SECTIONS { asm/fldeff_strength.o(.text); asm/battle_transition.o(.text); asm/battle_controller_linkpartner.o(.text); + src/battle_message.o(.text); asm/battle_message.o(.text); asm/cable_car.o(.text); asm/math_util.o(.text); @@ -411,7 +412,7 @@ SECTIONS { src/battle_ai_script_commands.o(.rodata); data/data4.o(.rodata); data/battle_controller_link_partner.o(.rodata); - data/battle_message.o(.rodata); + src/battle_message.o(.rodata); data/cable_car.o(.rodata); data/save.o(.rodata); data/field_effect_helpers.o(.rodata); diff --git a/src/battle_2.c b/src/battle_2.c index fd7cf68630..0fc7e8ffd8 100644 --- a/src/battle_2.c +++ b/src/battle_2.c @@ -41,6 +41,7 @@ #include "evolution_scene.h" #include "roamer.h" #include "safari_zone.h" +#include "battle_string_ids.h" struct UnknownStruct6 { @@ -3299,7 +3300,7 @@ static void BattleIntroPrintTrainerWantsToBattle(void) if (gBattleExecBuffer == 0) { gActiveBank = GetBankByIdentity(IDENTITY_OPPONENT_MON1); - PrepareStringBattle(0, gActiveBank); + PrepareStringBattle(STRINGID_INTROMSG, gActiveBank); gBattleMainFunc = BattleIntroPrintOpponentSendsOut; } } @@ -3309,7 +3310,7 @@ static void BattleIntroPrintWildMonAttacked(void) if (gBattleExecBuffer == 0) { gBattleMainFunc = BattleIntroPrintPlayerSendsOut; - PrepareStringBattle(0, 0); + PrepareStringBattle(STRINGID_INTROMSG, 0); } } @@ -3332,7 +3333,7 @@ static void BattleIntroPrintOpponentSendsOut(void) else identity = IDENTITY_OPPONENT_MON1; - PrepareStringBattle(1, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); gBattleMainFunc = BattleIntroOpponent1SendsOutMonAnimation; } @@ -3535,7 +3536,7 @@ static void BattleIntroPrintPlayerSendsOut(void) identity = IDENTITY_PLAYER_MON1; if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(1, GetBankByIdentity(identity)); + PrepareStringBattle(STRINGID_INTROSENDOUT, GetBankByIdentity(identity)); gBattleMainFunc = BattleIntroPlayer1SendsOutMonAnimation; } diff --git a/src/battle_message.c b/src/battle_message.c new file mode 100644 index 0000000000..aaaf23faed --- /dev/null +++ b/src/battle_message.c @@ -0,0 +1,1428 @@ +#include "global.h" +#include "battle.h" +#include "battle_message.h" +#include "battle_string_ids.h" +#include "moves.h" +#include "text.h" +#include "string_util.h" + +extern u16 gLastUsedItem; +extern u8 gLastUsedAbility; +extern u8 gActiveBank; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gStringBank; +extern u8 gEffectBank; +extern u8 gAbilitiesPerBank[BATTLE_BANKS_COUNT]; +extern u32 gBattleTypeFlags; +extern u16 gTrainerBattleOpponent_A; +extern u16 gBattlePartyID[BATTLE_BANKS_COUNT]; +extern struct BattleEnigmaBerry gEnigmaBerries[BATTLE_BANKS_COUNT]; +extern u8 gBattleBufferA[BATTLE_BANKS_COUNT][0x200]; + +extern const u8 gMoveNames[LAST_MOVE_INDEX + 1][13]; + +// strings +extern const u8 gText_PkmnBoxSomeonesPCFull[]; +extern const u8 gText_PkmnBoxLanettesPCFull[]; +extern const u8 gText_PkmnTransferredSomeonesPC[]; +extern const u8 gText_PkmnTransferredLanettesPC[]; + +// this file's functions +void sub_814F8F8(u8 *txtPtr); +void sub_814F950(u8 *txtPtr); + +// ewram variables +EWRAM_DATA u8 gDisplayedStringBattle[300] = {0}; +EWRAM_DATA u8 gBattleTextBuff1[TEXT_BUFF_ARRAY_COUNT] = {0}; +EWRAM_DATA u8 gBattleTextBuff2[TEXT_BUFF_ARRAY_COUNT] = {0}; +EWRAM_DATA u8 gBattleTextBuff3[TEXT_BUFF_ARRAY_COUNT] = {0}; + +// const rom data + +const u8 gText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); +const u8 gText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); +const u8 gText_EmptyString4[] = _(""); +const u8 gText_ABoosted[] = _(" a boosted"); +const u8 gText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{UNKNOWN_A}\p"); +const u8 gText_PkmnLearnedMove[] = _("{B_BUFF1} learned\n{B_BUFF2}!{UNKNOWN_A}\p"); +const u8 gText_TryToLearnMove1[] = _("{B_BUFF1} is trying to\nlearn {B_BUFF2}.\p"); +const u8 gText_TryToLearnMove2[] = _("But, {B_BUFF1} can’t learn\nmore than four moves.\p"); +const u8 gText_TryToLearnMove3[] = _("Delete a move to make\nroom for {B_BUFF2}?"); +const u8 gText_PkmnForgotMove[] = _("{B_BUFF1} forgot\n{B_BUFF2}.\p"); +const u8 gText_StopLearningMove[] = _("{PAUSE 32}Stop learning\n{B_BUFF2}?"); +const u8 gText_DidNotLearnMove[] = _("{B_BUFF1} did not learn\n{B_BUFF2}.\p"); +const u8 gText_UseNextPkmn[] = _("Use next POKéMON?"); +const u8 gText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX}’s\nattack missed!"); +const u8 gText_PkmnProtectedItself[] = _("{B_DEF_NAME_WITH_PREFIX}\nprotected itself!"); +const u8 gText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\ndamage with {B_DEF_ABILITY}!"); +const u8 gText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} makes GROUND\nmoves miss with {B_DEF_ABILITY}!"); +const u8 gText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\nthe attack!"); +const u8 gText_ItDoesntAffect[] = _("It doesn’t affect\n{B_DEF_NAME_WITH_PREFIX}…"); +const u8 gText_PkmnFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_PkmnFainted2[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); +const u8 gText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); +const u8 gText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); +const u8 gText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); +const u8 gText_PreventsEscape[] = _("{B_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); +const u8 gText_CantEscape2[] = _("Can’t escape!\p"); +const u8 gText_PkmnCantEscape2[] = _("{B_ATK_NAME_WITH_PREFIX} can’t escape!"); +const u8 gText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); +const u8 gText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); +const u8 gText_PkmnMadeSleep[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); +const u8 gText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready asleep!"); +const u8 gText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} is\nalready asleep!"); +const u8 gText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn’t affected!"); +const u8 gText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nwas poisoned!"); +const u8 gText_PkmnPoisonedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\npoisoned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtByPoison[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby poison!"); +const u8 gText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is already\npoisoned."); +const u8 gText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!"); +const u8 gText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!"); +const u8 gText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!"); +const u8 gText_PkmnBurnedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nburned {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!"); +const u8 gText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} already\nhas a burn."); +const u8 gText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} was\nfrozen solid!"); +const u8 gText_PkmnFrozenBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); +const u8 gText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} is\nfrozen solid!"); +const u8 gText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndefrosted!"); +const u8 gText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted!"); +const u8 gText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted by {B_CURRENT_MOVE}!"); +const u8 gText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} is paralyzed!\nIt may be unable to move!"); +const u8 gText_PkmnWasParalyzedBy[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); +const u8 gText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can’t move!"); +const u8 gText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready paralyzed!"); +const u8 gText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX} was\nhealed of paralysis!"); +const u8 gText_PkmnDreamEaten[] = _("{B_DEF_NAME_WITH_PREFIX}’s\ndream was eaten!"); +const u8 gText_StatsWontIncrease[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go higher!"); +const u8 gText_StatsWontDecrease[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwon’t go lower!"); +const u8 gText_TeamStoppedWorking[] = _("Your team’s {B_BUFF1}\nstopped working!"); +const u8 gText_FoeStoppedWorking[] = _("The foe’s {B_BUFF1}\nstopped working!"); +const u8 gText_PkmnIsConfused[] = _("{B_ATK_NAME_WITH_PREFIX} is\nconfused!"); +const u8 gText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} snapped\nout of confusion!"); +const u8 gText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} became\nconfused!"); +const u8 gText_PkmnAlreadyConfused[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready confused!"); +const u8 gText_PkmnFellInLove[] = _("{B_DEF_NAME_WITH_PREFIX}\nfell in love!"); +const u8 gText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} is in love\nwith {B_ACTIVE_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnImmobilizedByLove[] = _("{B_ATK_NAME_WITH_PREFIX} is\nimmobilized by love!"); +const u8 gText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} was\nblown away!"); +const u8 gText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); +const u8 gText_PkmnFlinched[] = _("{B_ATK_NAME_WITH_PREFIX} flinched!"); +const u8 gText_PkmnRegainedHealth[] = _("{B_DEF_NAME_WITH_PREFIX} regained\nhealth!"); +const u8 gText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nHP is full!"); +const u8 gText_PkmnRaisedSpDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF!"); +const u8 gText_PkmnRaisedSpDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised SP. DEF a little!"); +const u8 gText_PkmnRaisedDef[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE!"); +const u8 gText_PkmnRaisedDefALittle[] = _("{B_ATK_PREFIX2}’s {B_CURRENT_MOVE}\nraised DEFENSE a little!"); +const u8 gText_PkmnCoveredByVeil[] = _("{B_ATK_PREFIX2}’s party is covered\nby a veil!"); +const u8 gText_PkmnUsedSafeguard[] = _("{B_DEF_NAME_WITH_PREFIX}’s party is protected\nby SAFEGUARD!"); +const u8 gText_PkmnSafeguardExpired[] = _("{B_ATK_PREFIX3}’s party is no longer\nprotected by SAFEGUARD!"); +const u8 gText_PkmnWentToSleep[] = _("{B_ATK_NAME_WITH_PREFIX} went\nto sleep!"); +const u8 gText_PkmnSleptHealthy[] = _("{B_ATK_NAME_WITH_PREFIX} slept and\nbecame healthy!"); +const u8 gText_PkmnWhippedWhirlwind[] = _("{B_ATK_NAME_WITH_PREFIX} whipped\nup a whirlwind!"); +const u8 gText_PkmnTookSunlight[] = _("{B_ATK_NAME_WITH_PREFIX} took\nin sunlight!"); +const u8 gText_PkmnLoweredHead[] = _("{B_ATK_NAME_WITH_PREFIX} lowered\nits head!"); +const u8 gText_PkmnIsGlowing[] = _("{B_ATK_NAME_WITH_PREFIX} is glowing!"); +const u8 gText_PkmnFlewHigh[] = _("{B_ATK_NAME_WITH_PREFIX} flew\nup high!"); +const u8 gText_PkmnDugHole[] = _("{B_ATK_NAME_WITH_PREFIX} dug a hole!"); +const u8 gText_PkmnHidUnderwater[] = _("{B_ATK_NAME_WITH_PREFIX} hid\nunderwater!"); +const u8 gText_PkmnSprangUp[] = _("{B_ATK_NAME_WITH_PREFIX} sprang up!"); +const u8 gText_PkmnSqueezedByBind[] = _("{B_DEF_NAME_WITH_PREFIX} was squeezed by\n{B_ATK_NAME_WITH_PREFIX}’s BIND!"); +const u8 gText_PkmnTrappedInVortex[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nin the vortex!"); +const u8 gText_PkmnTrappedBySandTomb[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nby SAND TOMB!"); +const u8 gText_PkmnWrappedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was WRAPPED by\n{B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnClamped[] = _("{B_ATK_NAME_WITH_PREFIX} CLAMPED\n{B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnHurtBy[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby {B_BUFF1}!"); +const u8 gText_PkmnFreedFrom[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\nfrom {B_BUFF1}!"); +const u8 gText_PkmnCrashed[] = _("{B_ATK_NAME_WITH_PREFIX} kept going\nand crashed!"); +const u8 gText_PkmnShroudedInMist[] = _("{B_ATK_PREFIX2} became\nshrouded in MIST!"); +const u8 gText_PkmnProtectedByMist[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is protected\nby MIST!"); +const u8 gText_PkmnGettingPumped[] = _("{B_ATK_NAME_WITH_PREFIX} is getting\npumped!"); +const u8 gText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX} is hit\nwith recoil!"); +const u8 gText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} protected\nitself!"); +const u8 gText_PkmnBuffetedBySandstorm[] = _("{B_ATK_NAME_WITH_PREFIX} is buffeted\nby the sandstorm!"); +const u8 gText_PkmnPeltedByHail[] = _("{B_ATK_NAME_WITH_PREFIX} is pelted\nby HAIL!"); +const u8 gText_PkmnsXWoreOff[] = _("{B_ATK_PREFIX1}’s {B_BUFF1}\nwore off!"); +const u8 gText_PkmnSeeded[] = _("{B_DEF_NAME_WITH_PREFIX} was seeded!"); +const u8 gText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evaded\nthe attack!"); +const u8 gText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}’s health is\nsapped by LEECH SEED!"); +const u8 gText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} is fast\nasleep."); +const u8 gText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} woke up!"); +const u8 gText_PkmnUproarKeptAwake[] = _("But {B_ACTIVE_NAME_WITH_PREFIX}’s UPROAR\nkept it awake!"); +const u8 gText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} woke up\nin the UPROAR!"); +const u8 gText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} caused\nan UPROAR!"); +const u8 gText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} is making\nan UPROAR!"); +const u8 gText_PkmnCalmedDown[] = _("{B_ATK_NAME_WITH_PREFIX} calmed down."); +const u8 gText_PkmnCantSleepInUproar[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +const u8 gText_PkmnStockpiled[] = _("{B_ATK_NAME_WITH_PREFIX} STOCKPILED\n{B_BUFF1}!"); +const u8 gText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} can’t\nSTOCKPILE any more!"); +const u8 gText_PkmnCantSleepInUproar2[] = _("But {B_DEF_NAME_WITH_PREFIX} can’t\nsleep in an UPROAR!"); +const u8 gText_UproarKeptPkmnAwake[] = _("But the UPROAR kept\n{B_DEF_NAME_WITH_PREFIX} awake!"); +const u8 gText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} stayed awake\nusing its {B_DEF_ABILITY}!"); +const u8 gText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} is storing\nenergy!"); +const u8 gText_PkmnUnleashedEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} unleashed\nenergy!"); +const u8 gText_PkmnFatigueConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} became\nconfused due to fatigue!"); +const u8 gText_PkmnPickedUpItem[] = _("{B_PLAYER_NAME} picked up\n¥{B_BUFF1}!\p"); +const u8 gText_PkmnUnaffected[] = _("{B_DEF_NAME_WITH_PREFIX} is\nunaffected!"); +const u8 gText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto {B_BUFF1}!"); +const u8 gText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} made\na SUBSTITUTE!"); +const u8 gText_PkmnHasSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} already\nhas a SUBSTITUTE!"); +const u8 gText_SubstituteDamaged[] = _("The SUBSTITUTE took damage\nfor {B_DEF_NAME_WITH_PREFIX}!\p"); +const u8 gText_PkmnSubstituteFaded[] = _("{B_DEF_NAME_WITH_PREFIX}’s\nSUBSTITUTE faded!\p"); +const u8 gText_PkmnMustRecharge[] = _("{B_ATK_NAME_WITH_PREFIX} must\nrecharge!"); +const u8 gText_PkmnRageBuilding[] = _("{B_DEF_NAME_WITH_PREFIX}’s RAGE\nis building!"); +const u8 gText_PkmnMoveWasDisabled[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\nwas disabled!"); +const u8 gText_PkmnMoveDisabledNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is disabled\nno more!"); +const u8 gText_PkmnGotEncore[] = _("{B_DEF_NAME_WITH_PREFIX} got\nan ENCORE!"); +const u8 gText_PkmnEncoreEnded[] = _("{B_ATK_NAME_WITH_PREFIX}’s ENCORE\nended!"); +const u8 gText_PkmnTookAim[] = _("{B_ATK_NAME_WITH_PREFIX} took aim\nat {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnSketchedMove[] = _("{B_ATK_NAME_WITH_PREFIX} SKETCHED\n{B_BUFF1}!"); +const u8 gText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} is trying\nto take its foe with it!"); +const u8 gText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} took\n{B_ATK_NAME_WITH_PREFIX} with it!"); +const u8 gText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}’s\n{B_BUFF1} by {B_BUFF2}!"); +const u8 gText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); +const u8 gText_PkmnCantEscape[] = _("{B_DEF_NAME_WITH_PREFIX} can’t\nescape now!"); +const u8 gText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} fell into\na NIGHTMARE!"); +const u8 gText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\nin a NIGHTMARE!"); +const u8 gText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} is afflicted\nby the CURSE!"); +const u8 gText_SpikesScattered[] = _("SPIKES were scattered all around\nthe opponent’s side!"); +const u8 gText_PkmnHurtBySpikes[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is hurt\nby SPIKES!"); +const u8 gText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identified\n{B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}’s PERISH count\nfell to {B_BUFF1}!"); +const u8 gText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} braced\nitself!"); +const u8 gText_PkmnEnduredHit[] = _("{B_DEF_NAME_WITH_PREFIX} ENDURED\nthe hit!"); +const u8 gText_MagnitudeStrength[] = _("MAGNITUDE {B_BUFF1}!"); +const u8 gText_PkmnCutHPMaxedAttack[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP\nand maximized ATTACK!"); +const u8 gText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s stat changes!"); +const u8 gText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} got free of\n{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}!"); +const u8 gText_PkmnShedLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX} shed\nLEECH SEED!"); +const u8 gText_PkmnBlewAwaySpikes[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nSPIKES!"); +const u8 gText_PkmnFledFromBattle[] = _("{B_ATK_NAME_WITH_PREFIX} fled from\nbattle!"); +const u8 gText_PkmnForesawAttack[] = _("{B_ATK_NAME_WITH_PREFIX} foresaw\nan attack!"); +const u8 gText_PkmnTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX} took the\n{B_BUFF1} attack!"); +const u8 gText_PkmnChoseXAsDestiny[] = _("{B_ATK_NAME_WITH_PREFIX} chose\n{B_CURRENT_MOVE} as its destiny!"); +const u8 gText_PkmnAttack[] = _("{B_BUFF1}’s attack!"); +const u8 gText_PkmnCenterAttention[] = _("{B_ATK_NAME_WITH_PREFIX} became the\ncenter of attention!"); +const u8 gText_PkmnChargingPower[] = _("{B_ATK_NAME_WITH_PREFIX} began\ncharging power!"); +const u8 gText_NaturePowerTurnedInto[] = _("NATURE POWER turned into\n{B_CURRENT_MOVE}!"); +const u8 gText_PkmnStatusNormal[] = _("{B_ATK_NAME_WITH_PREFIX}’s status\nreturned to normal!"); +const u8 gText_PkmnSubjectedToTorment[] = _("{B_DEF_NAME_WITH_PREFIX} was subjected\nto TORMENT!"); +const u8 gText_PkmnTighteningFocus[] = _("{B_ATK_NAME_WITH_PREFIX} is tightening\nits focus!"); +const u8 gText_PkmnFellForTaunt[] = _("{B_DEF_NAME_WITH_PREFIX} fell for\nthe TAUNT!"); +const u8 gText_PkmnReadyToHelp[] = _("{B_ATK_NAME_WITH_PREFIX} is ready to\nhelp {B_DEF_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnSwitchedItems[] = _("{B_ATK_NAME_WITH_PREFIX} switched\nitems with its opponent!"); +const u8 gText_PkmnObtainedX[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}."); +const u8 gText_PkmnObtainedX2[] = _("{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); +const u8 gText_PkmnObtainedXYObtainedZ[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}.\p{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); +const u8 gText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}!"); +const u8 gText_PkmnMadeWish[] = _("{B_ATK_NAME_WITH_PREFIX} made a WISH!"); +const u8 gText_PkmnWishCameTrue[] = _("{B_BUFF1}’s WISH\ncame true!"); +const u8 gText_PkmnPlantedRoots[] = _("{B_ATK_NAME_WITH_PREFIX} planted its roots!"); +const u8 gText_PkmnAbsorbedNutrients[] = _("{B_ATK_NAME_WITH_PREFIX} absorbed\nnutrients with its roots!"); +const u8 gText_PkmnAnchoredItself[] = _("{B_DEF_NAME_WITH_PREFIX} anchored\nitself with its roots!"); +const u8 gText_PkmnWasMadeDrowsy[] = _("{B_ATK_NAME_WITH_PREFIX} made\n{B_DEF_NAME_WITH_PREFIX} drowsy!"); +const u8 gText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} knocked off\n{B_DEF_NAME_WITH_PREFIX}’s {B_LAST_ITEM}!"); +const u8 gText_PkmnSwappedAbilities[] = _("{B_ATK_NAME_WITH_PREFIX} swapped abilities\nwith its opponent!"); +const u8 gText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} sealed the\nopponent’s move(s)!"); +const u8 gText_PkmnWantsGrudge[] = _("{B_ATK_NAME_WITH_PREFIX} wants the\nopponent to bear a GRUDGE!"); +const u8 gText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1} lost\nall its PP due to the GRUDGE!"); +const u8 gText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} shrouded\nitself in {B_CURRENT_MOVE}!"); +const u8 gText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); +const u8 gText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} waits for a target\nto make a move!"); +const u8 gText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_ACTIVE_NAME_WITH_PREFIX}’s move!"); +const u8 gText_ElectricityWeakened[] = _("Electricity’s power was\nweakened!"); +const u8 gText_FireWeakened[] = _("Fire’s power was\nweakened!"); +const u8 gText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX} found\none {B_LAST_ITEM}!"); +const u8 gText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); +const u8 gText_ItemsCantBeUsedNow[] = _("Items can’t be used now.{PAUSE 64}"); +const u8 gText_ForXCommaYZ[] = _("For {B_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); +const u8 gText_PkmnUsedXToGetPumped[] = _("{B_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); +const u8 gText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn’t move!"); +const u8 gText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndragged out!\p"); +const u8 gText_TheWallShattered[] = _("The wall shattered!"); +const u8 gText_ButNoEffect[] = _("But it had no effect!"); +const u8 gText_PkmnHasNoMovesLeft[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has no\nmoves left!\p"); +const u8 gText_PkmnMoveIsDisabled[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}’s {B_CURRENT_MOVE}\nis disabled!\p"); +const u8 gText_PkmnCantUseMoveTorment[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the same\nmove in a row due to the TORMENT!\p"); +const u8 gText_PkmnCantUseMoveTaunt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use\n{B_CURRENT_MOVE} after the TAUNT!\p"); +const u8 gText_PkmnCantUseMoveSealed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can’t use the\nsealed {B_CURRENT_MOVE}!\p"); +const u8 gText_PkmnMadeItRain[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); +const u8 gText_PkmnRaisedSpeed[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); +const u8 gText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was protected\nby {B_DEF_ABILITY}!"); +const u8 gText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); +const u8 gText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} restored HP\nusing its {B_DEF_ABILITY}!"); +const u8 gText_PkmnsXMadeYUseless[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} useless!"); +const u8 gText_PkmnChangedTypeWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade it the {B_BUFF1} type!"); +const u8 gText_PkmnPreventsParalysisWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents paralysis!"); +const u8 gText_PkmnPreventsRomanceWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents romance!"); +const u8 gText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents poisoning!"); +const u8 gText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevents confusion!"); +const u8 gText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nraised its FIRE power!"); +const u8 gText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} anchors\nitself with {B_DEF_ABILITY}!"); +const u8 gText_PkmnCutsAttackWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}’s ATTACK!"); +const u8 gText_PkmnPreventsStatLossWith[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); +const u8 gText_PkmnHurtsWith[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nhurt {B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnTraced[] = _("{B_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}’s {B_BUFF2}!"); +const u8 gText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents burns!"); +const u8 gText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +const u8 gText_PkmnsXBlocksY2[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); +const u8 gText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nrestored its HP a little!"); +const u8 gText_PkmnsXWhippedUpSandstorm[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); +const u8 gText_PkmnsXIntensifiedSun[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nintensified the sun’s rays!"); +const u8 gText_PkmnsXPreventsYLoss[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); +const u8 gText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); +const u8 gText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); +const u8 gText_PkmnsXCuredYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_ItSuckedLiquidOoze[] = _("It sucked up the\nLIQUID OOZE!"); +const u8 gText_PkmnTransformed[] = _("{B_ACTIVE_NAME_WITH_PREFIX} transformed!"); +const u8 gText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\ntook the attack!"); +const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}’s {STRING 23}\nprevents switching!\p"); +const u8 gText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_DEF_ABILITY}\nprevented {B_ACTIVE_NAME_WITH_PREFIX}’s\l{B_BUFF1} from working!"); +const u8 gText_PkmnsXMadeItIneffective[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); +const u8 gText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}’s {STRING 27}\nprevents flinching!"); +const u8 gText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}’s {STRING 24}\nprevents {B_DEF_NAME_WITH_PREFIX}’s\l{B_DEF_ABILITY} from working!"); +const u8 gText_PkmnsXCuredItsYProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsXHadNoEffectOnY[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); +const u8 gText_StatSharply[] = _("sharply "); +const u8 gText_StatRose[] = _("rose!"); +const u8 gText_StatHarshly[] = _("harshly "); +const u8 gText_StatFell[] = _("fell!"); +const u8 gText_PkmnsStatChanged[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_PkmnsStatChanged2[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_UsingXTheYOfZN[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); +const u8 gText_PkmnsStatChanged3[] = _("{B_ATK_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_PkmnsStatChanged4[] = _("{B_DEF_NAME_WITH_PREFIX}’s {B_BUFF1}\n{B_BUFF2}"); +const u8 gText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}’s stats won’t\ngo any higher!"); +const u8 gText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}’s stats won’t\ngo any lower!"); +const u8 gText_CriticalHit[] = _("A critical hit!"); +const u8 gText_OneHitKO[] = _("It’s a one-hit KO!"); +const u8 gText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE 0x0038}Poof!\p"); +const u8 gText_AndEllipsis[] = _("And…\p"); +const u8 gText_HMMovesCantBeForgotten[] = _("HM moves can’t be\nforgotten now.\p"); +const u8 gText_NotVeryEffective[] = _("It’s not very effective…"); +const u8 gText_SuperEffective[] = _("It’s super effective!"); +const u8 gText_GotAwaySafely[] = _("{PLAY_SE 0x0011}Got away safely!\p"); +const u8 gText_PkmnFledUsingIts[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); +const u8 gText_PkmnFledUsing[] = _("{PLAY_SE 0x0011}{B_ATK_NAME_WITH_PREFIX} fled\nusing {STRING 24}!\p"); +const u8 gText_WildPkmnFled[] = _("{PLAY_SE 0x0011}Wild {B_BUFF1} fled!"); +const u8 gText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_20}!"); +const u8 gText_TwoLinkTrainersDefeated[] = _("Player beat {B_20}\nand {B_21}!"); +const u8 gText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_20}!"); +const u8 gText_PlayerLostToTwo[] = _("Player lost to {B_20}\nand {B_21}!"); +const u8 gText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_20}!"); +const u8 gText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_20} and {B_21}!"); +const u8 gText_WildFled[] = _("{PLAY_SE 0x0011}{B_20} fled!"); +const u8 gText_TwoWildFled[] = _("{PLAY_SE 0x0011}{B_20} and\n{B_21} fled!"); +const u8 gText_NoRunningFromTrainers[] = _("No! There’s no running\nfrom a TRAINER battle!\p"); +const u8 gText_CantEscape[] = _("Can’t escape!\p"); +const u8 gText_DontLeaveBirch[] = _("PROF. BIRCH: Don’t leave me like this!\p"); +const u8 gText_ButNothingHappened[] = _("But nothing happened!"); +const u8 gText_ButItFailed[] = _("But it failed!"); +const u8 gText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); +const u8 gText_MirrorMoveFailed[] = _("The MIRROR MOVE failed!"); +const u8 gText_StartedToRain[] = _("It started to rain!"); +const u8 gText_DownpourStarted[] = _("A downpour started!"); +const u8 gText_RainContinues[] = _("Rain continues to fall."); +const u8 gText_DownpourContinues[] = _("The downpour continues."); +const u8 gText_RainStopped[] = _("The rain stopped."); +const u8 gText_SandstormBrewed[] = _("A sandstorm brewed!"); +const u8 gText_SandstormRages[] = _("The sandstorm rages."); +const u8 gText_SandstormSubsided[] = _("The sandstorm subsided."); +const u8 gText_SunlightGotBright[] = _("The sunlight got bright!"); +const u8 gText_SunlightStrong[] = _("The sunlight is strong."); +const u8 gText_SunlightFaded[] = _("The sunlight faded."); +const u8 gText_StartedHail[] = _("It started to hail!"); +const u8 gText_HailContinues[] = _("Hail continues to fall."); +const u8 gText_HailStopped[] = _("The hail stopped."); +const u8 gText_FailedToSpitUp[] = _("But it failed to SPIT UP\na thing!"); +const u8 gText_FailedToSwallow[] = _("But it failed to SWALLOW\na thing!"); +const u8 gText_WindBecameHeatWave[] = _("The wind turned into a\nHEAT WAVE!"); +const u8 gText_StatChangesGone[] = _("All stat changes were\neliminated!"); +const u8 gText_CoinsScattered[] = _("Coins scattered everywhere!"); +const u8 gText_TooWeakForSubstitute[] = _("It was too weak to make\na SUBSTITUTE!"); +const u8 gText_SharedPain[] = _("The battlers shared\ntheir pain!"); +const u8 gText_BellChimed[] = _("A bell chimed!"); +const u8 gText_FaintInThree[] = _("All affected POKéMON will\nfaint in three turns!"); +const u8 gText_NoPPLeft[] = _("There’s no PP left for\nthis move!\p"); +const u8 gText_ButNoPPLeft[] = _("But there was no PP left\nfor the move!"); +const u8 gText_PkmnIgnoresAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders while asleep!"); +const u8 gText_PkmnIgnoredOrders[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders!"); +const u8 gText_PkmnBeganToNap[] = _("{B_ATK_NAME_WITH_PREFIX} began to nap!"); +const u8 gText_PkmnLoafing[] = _("{B_ATK_NAME_WITH_PREFIX} is\nloafing around!"); +const u8 gText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} won’t\nobey!"); +const u8 gText_PkmnTurnedAway[] = _("{B_ATK_NAME_WITH_PREFIX} turned away!"); +const u8 gText_PkmnPretendNotNotice[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); +const u8 gText_EnemyAboutToSwitchPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); +const u8 gText_PkmnLearnedMove2[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); +const u8 gText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); +const u8 gText_CreptCloser[] = _("{B_PLAYER_NAME} crept closer to\n{B_OPPONENT_MON1_NAME}!"); +const u8 gText_CantGetCloser[] = _("{B_PLAYER_NAME} can’t get any closer!"); +const u8 gText_PkmnWatchingCarefully[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); +const u8 gText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious about\nthe {B_BUFF1}!"); +const u8 gText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); +const u8 gText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); +const u8 gText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); +const u8 gText_OutOfSafariBalls[] = _("{PLAY_SE 0x0049}ANNOUNCER: You’re out of\nSAFARI BALLS! Game over!\p"); +const u8 gText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppeared2[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); +const u8 gText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); +const u8 gText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); +const u8 gText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); +const u8 gText_LinkTrainerWantsToBattle[] = _("{B_20}\nwants to battle!"); +const u8 gText_TwoLinkTrainersWantToBattle[] = _("{B_20} and {B_21}\nwant to battle!"); +const u8 gText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!"); +const u8 gText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +const u8 gText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); +const u8 gText_LinkTrainerSentOutPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME}!"); +const u8 gText_LinkTrainerSentOutTwoPkmn[] = _("{B_20} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +const u8 gText_TwoLinkTrainersSentOutPkmn[] = _("{B_20} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_21} sent out {B_LINK_OPPONENT_MON2_NAME}!"); +const u8 gText_LinkTrainerSentOutPkmn2[] = _("{B_20} sent out\n{B_BUFF1}!"); +const u8 gText_LinkTrainerMultiSentOutPkmn[] = _("{B_22} sent out\n{B_BUFF1}!"); +const u8 gText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); +const u8 gText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); +const u8 gText_GoPkmn2[] = _("Go! {B_BUFF1}!"); +const u8 gText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); +const u8 gText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); +const u8 gText_YourFoesWeakGetEmPkmn[] = _("Your foe’s weak!\nGet ’em, {B_BUFF1}!"); +const u8 gText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_1F} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); +const u8 gText_PkmnThatsEnough[] = _("{B_BUFF1}, that’s enough!\nCome back!"); +const u8 gText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); +const u8 gText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); +const u8 gText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); +const u8 gText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); +const u8 gText_LinkTrainer1WithdrewPkmn[] = _("{B_20} withdrew\n{B_BUFF1}!"); +const u8 gText_LinkTrainer2WithdrewPkmn[] = _("{B_22} withdrew\n{B_BUFF1}!"); +const u8 gText_WildPkmnPrefix[] = _("Wild "); +const u8 gText_FoePkmnPrefix[] = _("Foe "); +const u8 gText_EmptyString8[] = _( ""); +const u8 gText_FoePkmnPrefix2[] = _("Foe"); +const u8 gText_AllyPkmnPrefix[] = _("Ally"); +const u8 gText_FoePkmnPrefix3[] = _("Foe"); +const u8 gText_AllyPkmnPrefix2[] = _("Ally"); +const u8 gText_FoePkmnPrefix4[] = _("Foe"); +const u8 gText_AllyPkmnPrefix3[] = _("Ally"); +const u8 gText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used\n{B_BUFF2}"); +const u8 gText_ExclamationMark[] = _("!"); +const u8 gText_ExclamationMark2[] = _("!"); +const u8 gText_ExclamationMark3[] = _("!"); +const u8 gText_ExclamationMark4[] = _("!"); +const u8 gText_ExclamationMark5[] = _("!"); +const u8 gText_HP2[] = _("HP"); +const u8 gText_Attack2[] = _("ATTACK"); +const u8 gText_Defense2[] = _("DEFENSE"); +const u8 gText_Speed[] = _("SPEED"); +const u8 gText_SpAtk2[] = _("SP. ATK"); +const u8 gText_SpDef2[] = _("SP. DEF"); +const u8 gText_Accuracy[] = _("accuracy"); +const u8 gText_Evasiveness[] = _("evasiveness"); + +const u8 * const gStatNamesTable[] = +{ + gText_HP2, gText_Attack2, gText_Defense2, + gText_Speed, gText_SpAtk2, gText_SpDef2, + gText_Accuracy, gText_Evasiveness +}; + +const u8 gText_PokeblockWasTooSpicy[] = _("was too spicy!"); +const u8 gText_PokeblockWasTooDry[] = _("was too dry!"); +const u8 gText_PokeblockWasTooSweet[] = _("was too sweet!"); +const u8 gText_PokeblockWasTooBitter[] = _("was too bitter!"); +const u8 gText_PokeblockWasTooSour[] = _("was too sour!"); + +const u8 * const gPokeblockWasTooXStringTable[] = +{ + gText_PokeblockWasTooSpicy, gText_PokeblockWasTooDry, + gText_PokeblockWasTooSweet, gText_PokeblockWasTooBitter, + gText_PokeblockWasTooSour +}; + +const u8 gText_PlayerUsedItem[] = _("{B_PLAYER_NAME} used\n{B_LAST_ITEM}!"); +const u8 gText_WallyUsedItem[] = _("WALLY used\n{B_LAST_ITEM}!"); +const u8 gText_Trainer1UsedItem[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nused {B_LAST_ITEM}!"); +const u8 gText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); +const u8 gText_DontBeAThief[] = _("Don’t be a thief!"); +const u8 gText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can’t be caught!"); +const u8 gText_YouMissedPkmn[] = _("You missed the POKéMON!"); +const u8 gText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); +const u8 gText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); +const u8 gText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); +const u8 gText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); +const u8 gText_GotchaPkmnCaught[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}\p"); +const u8 gText_GotchaPkmnCaught2[] = _("Gotcha!\n{B_OPPONENT_MON1_NAME} was caught!{UNKNOWN_A}{PLAY_BGM BGM_KACHI22}{PAUSE 127}"); +const u8 gText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_OPPONENT_MON1_NAME}?"); +const u8 gText_PkmnSentToPC[] = _("{B_OPPONENT_MON1_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); +const u8 gText_Someones[] = _("someone’s"); +const u8 gText_Lanettes[] = _("LANETTE’s"); +const u8 gText_PkmnDataAddedToDex[] = _("{B_OPPONENT_MON1_NAME}’s data was\nadded to the POKéDEX.\p"); +const u8 gText_ItIsRaining[] = _("It is raining."); +const u8 gText_SandstormIsRaging[] = _("A sandstorm is raging."); +const u8 gText_BoxIsFull[] = _("The BOX is full!\nYou can’t catch any more!\p"); +const u8 gText_EnigmaBerry[] = _("ENIGMA BERRY"); +const u8 gText_BerrySuffix[] = _(" BERRY"); +const u8 gText_PkmnsItemCuredParalysis[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured paralysis!"); +const u8 gText_PkmnsItemCuredPoison[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured poison!"); +const u8 gText_PkmnsItemHealedBurn[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nhealed its burn!"); +const u8 gText_PkmnsItemDefrostedIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ndefrosted it!"); +const u8 gText_PkmnsItemWokeIt[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nwoke it from its sleep!"); +const u8 gText_PkmnsItemSnappedOut[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nsnapped it out of confusion!"); +const u8 gText_PkmnsItemCuredProblem[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); +const u8 gText_PkmnsItemNormalizedStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nnormalized its status!"); +const u8 gText_PkmnsItemRestoredHealth[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored health!"); +const u8 gText_PkmnsItemRestoredPP[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored {B_BUFF1}’s PP!"); +const u8 gText_PkmnsItemRestoredStatus[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its status!"); +const u8 gText_PkmnsItemRestoredHPALittle[] = _("{B_ACTIVE_NAME_WITH_PREFIX}’s {B_LAST_ITEM}\nrestored its HP a little!"); +const u8 gText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} allows the\nuse of only {B_CURRENT_MOVE}!\p"); +const u8 gText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} hung on\nusing its {B_LAST_ITEM}!"); +const u8 gText_EmptyString3[] = _(""); +const u8 gText_YouThrowABallNowRight[] = _("You throw a BALL now, right?\nI… I’ll do my best!"); + +// early declaration of strings +const u8 gText_PkmnIncapableOfPower[]; +const u8 gText_GlintAppearsInEye[]; +const u8 gText_PkmnGettingIntoPosition[]; +const u8 gText_PkmnBeganGrowlingDeeply[]; +const u8 gText_PkmnEagerForMore[]; +const u8 gText_DefeatedOpponentByReferee[]; +const u8 gText_LostToOpponentByReferee[]; +const u8 gText_TiedOpponentByReferee[]; +const u8 gText_QuestionForfeitMatch[]; +const u8 gText_ForfeitedMatch[]; +const u8 gText_Trainer1WinText[]; +const u8 gText_Trainer2WinText[]; +const u8 gText_TwoInGameTrainersDefeated[]; +const u8 gText_Trainer2LoseText[]; + +const u8 * const gBattleStringsTable[BATTLESTRINGS_COUNT] = +{ + gText_Trainer1LoseText, + gText_PkmnGainedEXP, + gText_PkmnGrewToLv, + gText_PkmnLearnedMove, + gText_TryToLearnMove1, + gText_TryToLearnMove2, + gText_TryToLearnMove3, + gText_PkmnForgotMove, + gText_StopLearningMove, + gText_DidNotLearnMove, + gText_PkmnLearnedMove2, + gText_AttackMissed, + gText_PkmnProtectedItself, + gText_StatsWontIncrease2, + gText_AvoidedDamage, + gText_ItDoesntAffect, + gText_PkmnFainted, + gText_PkmnFainted2, + gText_PlayerGotMoney, + gText_PlayerWhiteout, + gText_PlayerWhiteout2, + gText_PreventsEscape, + gText_HitXTimes, + gText_PkmnFellAsleep, + gText_PkmnMadeSleep, + gText_PkmnAlreadyAsleep, + gText_PkmnAlreadyAsleep2, + gText_PkmnWasntAffected, + gText_PkmnWasPoisoned, + gText_PkmnPoisonedBy, + gText_PkmnHurtByPoison, + gText_PkmnAlreadyPoisoned, + gText_PkmnBadlyPoisoned, + gText_PkmnEnergyDrained, + gText_PkmnWasBurned, + gText_PkmnBurnedBy, + gText_PkmnHurtByBurn, + gText_PkmnWasFrozen, + gText_PkmnFrozenBy, + gText_PkmnIsFrozen, + gText_PkmnWasDefrosted, + gText_PkmnWasDefrosted2, + gText_PkmnWasDefrostedBy, + gText_PkmnWasParalyzed, + gText_PkmnWasParalyzedBy, + gText_PkmnIsParalyzed, + gText_PkmnIsAlreadyParalyzed, + gText_PkmnHealedParalysis, + gText_PkmnDreamEaten, + gText_StatsWontIncrease, + gText_StatsWontDecrease, + gText_TeamStoppedWorking, + gText_FoeStoppedWorking, + gText_PkmnIsConfused, + gText_PkmnHealedConfusion, + gText_PkmnWasConfused, + gText_PkmnAlreadyConfused, + gText_PkmnFellInLove, + gText_PkmnInLove, + gText_PkmnImmobilizedByLove, + gText_PkmnBlownAway, + gText_PkmnChangedType, + gText_PkmnFlinched, + gText_PkmnRegainedHealth, + gText_PkmnHPFull, + gText_PkmnRaisedSpDef, + gText_PkmnRaisedDef, + gText_PkmnCoveredByVeil, + gText_PkmnUsedSafeguard, + gText_PkmnSafeguardExpired, + gText_PkmnWentToSleep, + gText_PkmnSleptHealthy, + gText_PkmnWhippedWhirlwind, + gText_PkmnTookSunlight, + gText_PkmnLoweredHead, + gText_PkmnIsGlowing, + gText_PkmnFlewHigh, + gText_PkmnDugHole, + gText_PkmnSqueezedByBind, + gText_PkmnTrappedInVortex, + gText_PkmnWrappedBy, + gText_PkmnClamped, + gText_PkmnHurtBy, + gText_PkmnFreedFrom, + gText_PkmnCrashed, + gText_PkmnShroudedInMist, + gText_PkmnProtectedByMist, + gText_PkmnGettingPumped, + gText_PkmnHitWithRecoil, + gText_PkmnProtectedItself2, + gText_PkmnBuffetedBySandstorm, + gText_PkmnPeltedByHail, + gText_PkmnSeeded, + gText_PkmnEvadedAttack, + gText_PkmnSappedByLeechSeed, + gText_PkmnFastAsleep, + gText_PkmnWokeUp, + gText_PkmnUproarKeptAwake, + gText_PkmnWokeUpInUproar, + gText_PkmnCausedUproar, + gText_PkmnMakingUproar, + gText_PkmnCalmedDown, + gText_PkmnCantSleepInUproar, + gText_PkmnStockpiled, + gText_PkmnCantStockpile, + gText_PkmnCantSleepInUproar2, + gText_UproarKeptPkmnAwake, + gText_PkmnStayedAwakeUsing, + gText_PkmnStoringEnergy, + gText_PkmnUnleashedEnergy, + gText_PkmnFatigueConfusion, + gText_PkmnPickedUpItem, + gText_PkmnUnaffected, + gText_PkmnTransformedInto, + gText_PkmnMadeSubstitute, + gText_PkmnHasSubstitute, + gText_SubstituteDamaged, + gText_PkmnSubstituteFaded, + gText_PkmnMustRecharge, + gText_PkmnRageBuilding, + gText_PkmnMoveWasDisabled, + gText_PkmnMoveIsDisabled, + gText_PkmnMoveDisabledNoMore, + gText_PkmnGotEncore, + gText_PkmnEncoreEnded, + gText_PkmnTookAim, + gText_PkmnSketchedMove, + gText_PkmnTryingToTakeFoe, + gText_PkmnTookFoe, + gText_PkmnReducedPP, + gText_PkmnStoleItem, + gText_PkmnCantEscape, + gText_PkmnFellIntoNightmare, + gText_PkmnLockedInNightmare, + gText_PkmnLaidCurse, + gText_PkmnAfflictedByCurse, + gText_SpikesScattered, + gText_PkmnHurtBySpikes, + gText_PkmnIdentified, + gText_PkmnPerishCountFell, + gText_PkmnBracedItself, + gText_PkmnEnduredHit, + gText_MagnitudeStrength, + gText_PkmnCutHPMaxedAttack, + gText_PkmnCopiedStatChanges, + gText_PkmnGotFree, + gText_PkmnShedLeechSeed, + gText_PkmnBlewAwaySpikes, + gText_PkmnFledFromBattle, + gText_PkmnForesawAttack, + gText_PkmnTookAttack, + gText_PkmnAttack, + gText_PkmnCenterAttention, + gText_PkmnChargingPower, + gText_NaturePowerTurnedInto, + gText_PkmnStatusNormal, + gText_PkmnHasNoMovesLeft, + gText_PkmnSubjectedToTorment, + gText_PkmnCantUseMoveTorment, + gText_PkmnTighteningFocus, + gText_PkmnFellForTaunt, + gText_PkmnCantUseMoveTaunt, + gText_PkmnReadyToHelp, + gText_PkmnSwitchedItems, + gText_PkmnCopiedFoe, + gText_PkmnMadeWish, + gText_PkmnWishCameTrue, + gText_PkmnPlantedRoots, + gText_PkmnAbsorbedNutrients, + gText_PkmnAnchoredItself, + gText_PkmnWasMadeDrowsy, + gText_PkmnKnockedOff, + gText_PkmnSwappedAbilities, + gText_PkmnSealedOpponentMove, + gText_PkmnCantUseMoveSealed, + gText_PkmnWantsGrudge, + gText_PkmnLostPPGrudge, + gText_PkmnShroudedItself, + gText_PkmnMoveBounced, + gText_PkmnWaitsForTarget, + gText_PkmnSnatchedMove, + gText_PkmnMadeItRain, + gText_PkmnRaisedSpeed, + gText_PkmnProtectedBy, + gText_PkmnPreventsUsage, + gText_PkmnRestoredHPUsing, + gText_PkmnChangedTypeWith, + gText_PkmnPreventsParalysisWith, + gText_PkmnPreventsRomanceWith, + gText_PkmnPreventsPoisoningWith, + gText_PkmnPreventsConfusionWith, + gText_PkmnRaisedFirePowerWith, + gText_PkmnAnchorsItselfWith, + gText_PkmnCutsAttackWith, + gText_PkmnPreventsStatLossWith, + gText_PkmnHurtsWith, + gText_PkmnTraced, + gText_StatSharply, + gText_StatRose, + gText_StatHarshly, + gText_StatFell, + gText_PkmnsStatChanged, + gText_PkmnsStatChanged2, + gText_PkmnsStatChanged3, + gText_PkmnsStatChanged4, + gText_CriticalHit, + gText_OneHitKO, + gText_123Poof, + gText_AndEllipsis, + gText_NotVeryEffective, + gText_SuperEffective, + gText_GotAwaySafely, + gText_WildPkmnFled, + gText_NoRunningFromTrainers, + gText_CantEscape, + gText_DontLeaveBirch, + gText_ButNothingHappened, + gText_ButItFailed, + gText_ItHurtConfusion, + gText_MirrorMoveFailed, + gText_StartedToRain, + gText_DownpourStarted, + gText_RainContinues, + gText_DownpourContinues, + gText_RainStopped, + gText_SandstormBrewed, + gText_SandstormRages, + gText_SandstormSubsided, + gText_SunlightGotBright, + gText_SunlightStrong, + gText_SunlightFaded, + gText_StartedHail, + gText_HailContinues, + gText_HailStopped, + gText_FailedToSpitUp, + gText_FailedToSwallow, + gText_WindBecameHeatWave, + gText_StatChangesGone, + gText_CoinsScattered, + gText_TooWeakForSubstitute, + gText_SharedPain, + gText_BellChimed, + gText_FaintInThree, + gText_NoPPLeft, + gText_ButNoPPLeft, + gText_PlayerUsedItem, + gText_WallyUsedItem, + gText_TrainerBlockedBall, + gText_DontBeAThief, + gText_ItDodgedBall, + gText_YouMissedPkmn, + gText_PkmnBrokeFree, + gText_ItAppearedCaught, + gText_AarghAlmostHadIt, + gText_ShootSoClose, + gText_GotchaPkmnCaught, + gText_GotchaPkmnCaught2, + gText_GiveNicknameCaptured, + gText_PkmnSentToPC, + gText_PkmnDataAddedToDex, + gText_ItIsRaining, + gText_SandstormIsRaging, + gText_CantEscape2, + gText_PkmnIgnoresAsleep, + gText_PkmnIgnoredOrders, + gText_PkmnBeganToNap, + gText_PkmnLoafing, + gText_PkmnWontObey, + gText_PkmnTurnedAway, + gText_PkmnPretendNotNotice, + gText_EnemyAboutToSwitchPkmn, + gText_CreptCloser, + gText_CantGetCloser, + gText_PkmnWatchingCarefully, + gText_PkmnCuriousAboutX, + gText_PkmnEnthralledByX, + gText_PkmnIgnoredX, + gText_ThrewPokeblockAtPkmn, + gText_OutOfSafariBalls, + gText_PkmnsItemCuredParalysis, + gText_PkmnsItemCuredPoison, + gText_PkmnsItemHealedBurn, + gText_PkmnsItemDefrostedIt, + gText_PkmnsItemWokeIt, + gText_PkmnsItemSnappedOut, + gText_PkmnsItemCuredProblem, + gText_PkmnsItemRestoredHealth, + gText_PkmnsItemRestoredPP, + gText_PkmnsItemRestoredStatus, + gText_PkmnsItemRestoredHPALittle, + gText_ItemAllowsOnlyYMove, + gText_PkmnHungOnWithX, + gText_EmptyString3, + gText_PkmnsXPreventsBurns, + gText_PkmnsXBlocksY, + gText_PkmnsXRestoredHPALittle2, + gText_PkmnsXWhippedUpSandstorm, + gText_PkmnsXPreventsYLoss, + gText_PkmnsXInfatuatedY, + gText_PkmnsXMadeYIneffective, + gText_PkmnsXCuredYProblem, + gText_ItSuckedLiquidOoze, + gText_PkmnTransformed, + gText_ElectricityWeakened, + gText_FireWeakened, + gText_PkmnHidUnderwater, + gText_PkmnSprangUp, + gText_HMMovesCantBeForgotten, + gText_XFoundOneY, + gText_PlayerDefeatedLinkTrainerTrainer1, + gText_SoothingAroma, + gText_ItemsCantBeUsedNow, + gText_ForXCommaYZ, + gText_UsingXTheYOfZN, + gText_PkmnUsedXToGetPumped, + gText_PkmnsXMadeYUseless, + gText_PkmnTrappedBySandTomb, + gText_EmptyString4, + gText_ABoosted, + gText_PkmnsXIntensifiedSun, + gText_PkmnMakesGroundMiss, + gText_YouThrowABallNowRight, + gText_PkmnsXTookAttack, + gText_PkmnChoseXAsDestiny, + gText_PkmnLostFocus, + gText_UseNextPkmn, + gText_PkmnFledUsingIts, + gText_PkmnFledUsing, + gText_PkmnWasDraggedOut, + gText_PreventedFromWorking, + gText_PkmnsItemNormalizedStatus, + gText_Trainer1UsedItem, + gText_BoxIsFull, + gText_PkmnAvoidedAttack, + gText_PkmnsXMadeItIneffective, + gText_PkmnsXPreventsFlinching, + gText_PkmnAlreadyHasBurn, + gText_StatsWontDecrease2, + gText_PkmnsXBlocksY2, + gText_PkmnsXWoreOff, + gText_PkmnRaisedDefALittle, + gText_PkmnRaisedSpDefALittle, + gText_TheWallShattered, + gText_PkmnsXPreventsYsZ, + gText_PkmnsXCuredItsYProblem, + gText_PkmnCantEscape2, + gText_PkmnObtainedX, + gText_PkmnObtainedX2, + gText_PkmnObtainedXYObtainedZ, + gText_ButNoEffect, + gText_PkmnsXHadNoEffectOnY, + gText_TwoInGameTrainersDefeated, + gText_Trainer2LoseText, + gText_PkmnIncapableOfPower, + gText_GlintAppearsInEye, + gText_PkmnGettingIntoPosition, + gText_PkmnBeganGrowlingDeeply, + gText_PkmnEagerForMore, + gText_DefeatedOpponentByReferee, + gText_LostToOpponentByReferee, + gText_TiedOpponentByReferee, + gText_QuestionForfeitMatch, + gText_ForfeitedMatch, + gText_PkmnTransferredSomeonesPC, + gText_PkmnTransferredLanettesPC, + gText_PkmnBoxSomeonesPCFull, + gText_PkmnBoxLanettesPCFull, + gText_Trainer1WinText, + gText_Trainer2WinText, +}; + +const u16 gMissStringIds[] = +{ + STRINGID_ATTACKMISSED, STRINGID_PKMNPROTECTEDITSELF, + STRINGID_PKMNAVOIDEDATTACK, STRINGID_AVOIDEDDAMAGE, + STRINGID_PKMNMAKESGROUNDMISS +}; + +// todo: change values to string Ids +const u16 gUnknown_085CC83E[] = +{ + 0x00e2, 0x00e3, 0x0021, + 0x0112, 0x0165, 0x00e8, 0x00e9, 0x00e5, 0x00ed, 0x00f0, 0x00f3, + 0x00ee, 0x00f4, 0x0066, 0x0067, 0x00ef, 0x00f5, 0x00ea, 0x00eb, + 0x00ec, 0x0065, 0x0098, 0x00e5, 0x00e5, 0x004e, 0x0160, 0x004d, + 0x0161, 0x004f, 0x0068, 0x0069, 0x001b, 0x006a, 0x0139, 0x0052, + 0x0053, 0x0070, 0x0071, 0x0073, 0x0074, 0x006c, 0x006e, 0x00f7, + 0x004c, 0x0075, 0x0076, 0x0077, 0x00d5, 0x00d6, 0x003d, 0x0130, + 0x0145, 0x0146, 0x00d7, 0x00d8, 0x003e, 0x0130, 0x0054, 0x0055, + 0x0056, 0x0057, 0x0058, 0x0059, 0x013d, 0x013e, 0x005a, 0x005c, + 0x005b, 0x005d, 0x005b, 0x0148, 0x0061, 0x00e5, 0x0063, 0x00e5, + 0x007d, 0x00e5, 0x007e, 0x00fb, 0x0028, 0x0029, 0x0037, 0x0038, + 0x0023, 0x0024, 0x002e, 0x002f, 0x0031, 0x0032, 0x0035, 0x0036, + 0x0017, 0x007c, 0x0045, 0x0136, 0x002d, 0x0139, 0x013b, 0x013c, + 0x00fd, 0x00fd, 0x00fd, 0x00fd, 0x0142, 0x00a1, 0x014f, 0x0107, + 0x0108, 0x0109, 0x010a, 0x0110, 0x0110, 0x0110, 0x0110, 0x0110, + 0x0110, 0x0110, 0x0110, 0x0111, 0x0110, 0x0110, 0x0110, 0x00f1, + 0x0110, 0x0110, 0x0110, 0x0116, 0x0117, 0x0118, 0x0119, 0x016d, + 0x011b, 0x011c, 0x011e, 0x011f, 0x0120, 0x0128, 0x0123, 0x0126, + 0x0125, 0x0124, 0x0127, 0x0129, 0x0156, 0x0131, 0x0163, 0x016a, + 0x00c7, 0x0163, 0x016a, 0x00c9, 0x0163, 0x016a, 0x0166, 0x0167, + 0x0168, 0x00cb, 0x0137, 0x0177, 0x0178, 0x0179, 0x017a, +}; + +const u16 gTrappingMoves[] = +{ + MOVE_BIND, MOVE_WRAP, MOVE_FIRE_SPIN, MOVE_CLAMP, MOVE_WHIRLPOOL, MOVE_SAND_TOMB, 0xFFFF +}; + +const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); +const u8 gText_CongratsPkmnEvolved[] = _("Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{UNKNOWN_A}\p"); +const u8 gText_PkmnStoppedEvolving[] = _("Huh? {STR_VAR_1}\nstopped evolving!\p"); +const u8 gText_EllipsisQuestionMark[] = _("……?\p"); +const u8 gText_WhatWillPkmnDo[] = _("What will\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} do?"); +const u8 gText_WhatWillPkmnDo2[] = _("What will\n{B_PLAYER_NAME} do?"); +const u8 gText_WhatWillWallyDo[] = _("What will\nWALLY do?"); +const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); +const u8 gText_BattleMenu[] = _("FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN"); +const u8 gText_SafariZoneMenu[] = _("BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN"); +const u8 gText_MoveInterfacePP[] = _("PP "); +const u8 gText_MoveInterfaceType[] = _("TYPE/"); +const u8 gText_MoveInterfacePpType[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/"); +const u8 gText_MoveInterfaceDynamicColors[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}"); +const u8 gText_WhichMoveToForget4[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Which move should\nbe forgotten?"); +const u8 gText_BattleYesNoChoice[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Yes\nNo"); +const u8 gText_BattleSwitchWhich[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}Switch\nwhich?"); +const u8 gText_BattleSwitchWhich2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}"); +const u8 gText_BattleSwitchWhich3[] = _("{UP_ARROW}"); +const u8 gText_BattleSwitchWhich4[] = _("{ESCAPE 4}"); +const u8 gText_BattleSwitchWhich5[] = _("-"); + +const u8 gText_HP[] = _("HP"); +const u8 gText_Attack[] = _("ATTACK"); +const u8 gText_Defense[] = _("DEFENSE"); +const u8 gText_SpAtk[] = _("SP. ATK"); +const u8 gText_SpDef[] = _("SP. DEF"); + +const u8 * const gStatNamesTable2[] = +{ + gText_HP, gText_SpAtk, gText_Attack, + gText_SpDef, gText_Defense, gText_Speed +}; + +const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GREY}SAFARI BALLS"); +const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GREY}Left: $" "{HIGHLIGHT DARK_GREY}");const u8 gText_Sleep[] = _( "sleep");const u8 gText_Poison[] = _( "poison");const u8 gText_Burn[] = _( "burn");const u8 gText_Paralysis[] = _( "paralysis");const u8 gText_Ice[] = _( "ice");const u8 gText_Confusion[] = _( "confusion");const u8 gText_Love[] = _( "love"); +const u8 gText_SpaceAndSpace[] = _(" and "); +const u8 gText_CommaSpace[] = _(", "); +const u8 gText_Space2[] = _(" "); +const u8 gText_ScrollTextUp[] = _("\l"); +const u8 gText_NewLine[] = _("\n"); +const u8 gText_Are[] = _("are"); +const u8 gText_Are2[] = _("are"); +const u8 gText_BadEgg[] = _("Bad EGG"); +const u8 gText_BattleWallyName[] = _("WALLY"); +const u8 gText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); +const u8 gText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); +const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); +const u8 gText_SpaceIs[] = _(" is"); +const u8 gText_ApostropheS[] = _("’s"); + +const u8 gText_UnknownMoveTypes[][17] = +{ + _("a NORMAL move"), + _("a FIGHTING move"), + _("a FLYING move"), + _("a POISON move"), + _("a GROUND move"), + _("a ROCK move"), + _("a BUG move"), + _("a GHOST move"), + _("a STEEL move"), + _("a ??? move"), + _("a FIRE move"), + _("a WATER move"), + _("a GRASS move"), + _("an ELECTRIC move"), + _("a PSYCHIC move"), + _("an ICE move"), + _("a DRAGON move"), + _("a DARK move") +}; + +const u8 gText_BattleTourney[] = _("BATTLE TOURNEY"); +const u8 gText_Round1[] = _("Round 1"); +const u8 gText_Round2[] = _("Round 2"); +const u8 gText_Semifinal[] = _("Semifinal"); +const u8 gText_Final[] = _("Final"); + +const u8 * const gRoundsStringTable[] = +{ + gText_Round1, + gText_Round2, + gText_Semifinal, + gText_Final +}; + +const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); +const u8 gText_WillChampinshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); +const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); +const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); +const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); + +const u8 gText_PlayerMon1Name[] = _("{B_PLAYER_MON1_NAME}"); +const u8 gText_Vs[] = _("VS"); +const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}"); +const u8 gText_Mind[] = _("Mind"); +const u8 gText_Skill[] = _("Skill"); +const u8 gText_Body[] = _("Body"); +const u8 gText_Judgement[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}"); +const u8 gText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_OPPONENT_MON2_NAME}!"); +const u8 gText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_BUFF1}!"); +const u8 gText_TwoTrainersWantToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwant to battle!\p"); +const u8 gText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_CLASS} {B_PARTNER_NAME} sent\nout {B_PLAYER_MON2_NAME}!\lGo, {B_PLAYER_MON1_NAME}!"); +const u8 gText_TwoInGameTrainersDefeated[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwere defeated!\p"); +const u8 gText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); +const u8 gText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} appears incapable\nof using its power!"); +const u8 gText_GlintAppearsInEye[] = _("A glint appears in\n{B_ACTIVE_NAME_WITH_PREFIX}’s eyes!"); +const u8 gText_PkmnGettingIntoPosition[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); +const u8 gText_PkmnBeganGrowlingDeeply[] = _("{B_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); +const u8 gText_PkmnEagerForMore[] = _("{B_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); + +const u16 gUnknown_085CCF0A[] = +{ + 0x016E, 0x016F, 0x0170, 0x0171 +}; + +const u8 gText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); +const u8 gText_RefThatsIt[] = _("REFEREE: That’s it! We will now go to\njudging to determine the winner!"); +const u8 gText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); +const u8 gText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); +const u8 gText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); +const u8 gText_RefJudgement1[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}’s {B_PLAYER_MON1_NAME}!\p"); +const u8 gText_RefJudgement2[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}’s {B_OPPONENT_MON1_NAME}!\p"); +const u8 gText_RefJudgement3[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); +const u8 gText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE’s decision!"); +const u8 gText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nCommence battling!"); + +const u8 * const gRefereeStringsTable[] = +{ + gText_RefIfNothingIsDecided, + gText_RefThatsIt, + gText_RefJudgeMind, + gText_RefJudgeSkill, + gText_RefJudgeBody, + gText_RefJudgement1, + gText_RefJudgement2, + gText_RefJudgement3, + gText_RefCommenceBattle, +}; + +const u8 gText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); +const u8 gText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); +const u8 gText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); +const u8 gText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); +const u8 gText_Trainer1Fled[] = _( "{PLAY_SE 0x0011}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); +const u8 gText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); +const u8 gText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); +const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); +const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}’s battle result was recorded\non the FRONTIER PASS."); +const u8 gText_LinkTrainerWantsToBattlePause[] = _("{B_20}\nwants to battle!{PAUSE 49}"); +const u8 gText_TwoLinkTrainersWantToBattlePause[] = _("{B_20} and {B_21}\nwant to battle!{PAUSE 49}"); + +const u16 gUnknown_085CD336[] = +{ + 0x000e, 0x0046, 0x004a, 0x006a, 0x006b, 0x006c, 0x006e, 0x006f, + 0x0079, 0x007b, 0x007d, 0x0094, 0x0096, 0x0097, 0x009b, 0x009c, + 0x009f, 0x00a4, 0x00aa, 0x00ad, 0x00b6, 0x00bf, 0x00cb, 0x00cd, + 0x00cf, 0x00d6, 0x00ed, 0x00f4, 0x00f5, 0x010a, 0x010f, 0x0112, + 0x0113, 0x011a, 0x0125, 0x0136, 0x013c, 0x0140, 0x0149, 0x014a, + 0x014e, 0x0154, 0x0000, 0x0064, 0x0069, 0x0075, 0x0085, 0x00af, + 0x010d, 0x0153, 0x0000, 0x0060, 0x0061, 0x0066, 0x0068, 0x008c, + 0x0090, 0x00a5, 0x00b8, 0x010c, 0x0111, 0x0118, 0x0119, 0x0129, + 0x012a, 0x012c, 0x0139, 0x015a, 0x015b, 0x0000, 0x0001, 0x000a, + 0x000b, 0x0011, 0x0013, 0x0014, 0x0015, 0x001e, 0x0023, 0x0025, + 0x0027, 0x002b, 0x002c, 0x002d, 0x002e, 0x002f, 0x0040, 0x0047, + 0x0051, 0x0059, 0x005a, 0x005b, 0x005c, 0x0067, 0x0076, 0x007a, + 0x0080, 0x0084, 0x008b, 0x0091, 0x00a3, 0x00a9, 0x00ab, 0x00ae, + 0x00c1, 0x00cc, 0x00d5, 0x00f9, 0x00fd, 0x00ff, 0x0100, 0x0103, + 0x0104, 0x0110, 0x011b, 0x0141, 0x0157, 0x0000, +}; + +const u8 gUnknown_085CD422[] = {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0}; + +const u16 gUnknown_085CD42C[] = +{ + 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, + 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, + 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, + 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x01ff, + 0x0000, 0x0100, 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, + 0x0600, 0x0000, 0x0100, 0x01ff, 0x0000, 0x0100, 0x0600, 0x0000, +}; + +const u16 gUnknown_085CD54C[] = +{ + 0x01ff, 0x0100, 0x0000, 0x0101, 0x060f, 0x0000, 0x01ff, 0x0101, + 0x0000, 0x0100, 0x060f, 0x0000, 0x01ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0c00, 0x0b0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0102, + 0x0000, 0x0c00, 0x0b0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x07ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x0100, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x0100, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0100, 0x0120, 0x0000, 0x0100, + 0x0200, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0100, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, + 0x0f0e, 0x0000, 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, + 0x01ee, 0x01ff, 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x01ee, 0x01ff, + 0x0000, 0x0d00, 0x0f0e, 0x0000, 0x0111, 0x0100, 0x0000, 0x0201, + 0x0301, 0x0000 +}; + +const u16 * const gUnknown_085CD660[] = +{ + gUnknown_085CD42C, gUnknown_085CD54C +}; + +const u8 gUnknown_085CD668[] = {8, 4, 1, 0}; + +extern struct StringInfoBattle *gStringInfo; + +void BufferStringBattle(u16 stringID) +{ + s32 i; + const u8* stringPtr = NULL; + + gStringInfo = (struct StringInfoBattle*)(&gBattleBufferA[gActiveBank][4]); + gLastUsedItem = gStringInfo->lastItem; + gLastUsedAbility = gStringInfo->lastAbility; + gBattleScripting.bank = gStringInfo->scrActive; + *(&gBattleStruct->field_52) = gStringInfo->unk1605E; + *(&gBattleStruct->hpScale) = gStringInfo->hpScale; + gStringBank = gStringInfo->StringBank; + *(&gBattleStruct->stringMoveType) = gStringInfo->moveType; + + for (i = 0; i < BATTLE_BANKS_COUNT; i++) + { + gAbilitiesPerBank[i] = gStringInfo->abilities[i]; + } + for (i = 0; i < TEXT_BUFF_ARRAY_COUNT; i++) + { + gBattleTextBuff1[i] = gStringInfo->textBuffs[0][i]; + gBattleTextBuff2[i] = gStringInfo->textBuffs[1][i]; + gBattleTextBuff3[i] = gStringInfo->textBuffs[2][i]; + } + + switch (stringID) + { + case STRINGID_INTROMSG: // first battle msg + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + { + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + stringPtr = gText_TwoTrainersWantToBattle; + } + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + stringPtr = gText_TwoLinkTrainersWantToBattlePause; + else + stringPtr = gText_TwoLinkTrainersWantToBattle; + } + else + { + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1WantsToBattle; + else if (gBattleTypeFlags & BATTLE_TYPE_RECORDED) + stringPtr = gText_LinkTrainerWantsToBattlePause; + else + stringPtr = gText_LinkTrainerWantsToBattle; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + stringPtr = gText_TwoTrainersWantToBattle; + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_TwoTrainersWantToBattle; + else + stringPtr = gText_Trainer1WantsToBattle; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_LEGENDARY) + stringPtr = gText_WildPkmnAppeared2; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) // interesting, looks like they had something planned for wild double battles + stringPtr = gText_TwoWildPkmnAppeared; + else if (gBattleTypeFlags & BATTLE_TYPE_WALLY_TUTORIAL) + stringPtr = gText_WildPkmnAppearedPause; + else + stringPtr = gText_WildPkmnAppeared; + } + break; + case STRINGID_INTROSENDOUT: // poke first send-out + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + stringPtr = gText_InGamePartnerSentOutZGoN; + else if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_GoTwoPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkPartnerSentOutPkmnGoPkmn; + else + stringPtr = gText_GoTwoPkmn; + } + else + { + stringPtr = gText_GoPkmn; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + stringPtr = gText_TwoTrainersSentPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_x800000) + stringPtr = gText_TwoTrainersSentPkmn; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_TwoLinkTrainersSentOutPkmn; + else if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + stringPtr = gText_LinkTrainerSentOutTwoPkmn; + else + stringPtr = gText_Trainer1SentOutTwoPkmn; + } + else + { + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000))) + stringPtr = gText_Trainer1SentOutPkmn; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1SentOutPkmn; + else + stringPtr = gText_LinkTrainerSentOutPkmn; + } + } + break; + case STRINGID_RETURNMON: // sending poke to ball msg + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (*(&gBattleStruct->hpScale) == 0) + stringPtr = gText_PkmnThatsEnough; + else if (*(&gBattleStruct->hpScale) == 1 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + stringPtr = gText_PkmnComeBack; + else if (*(&gBattleStruct->hpScale) == 2) + stringPtr = gText_PkmnOkComeBack; + else + stringPtr = gText_PkmnGoodComeBack; + } + else + { + if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_800 || gBattleTypeFlags & BATTLE_TYPE_x2000000) + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkTrainer2WithdrewPkmn; + else + stringPtr = gText_LinkTrainer1WithdrewPkmn; + } + else + { + stringPtr = gText_Trainer1WithdrewPkmn; + } + } + break; + case STRINGID_SWITCHINMON: // switch-in msg + if (GetBankSide(gBattleScripting.bank) == SIDE_PLAYER) + { + if (*(&gBattleStruct->hpScale) == 0 || gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + stringPtr = gText_GoPkmn2; + else if (*(&gBattleStruct->hpScale) == 1) + stringPtr = gText_DoItPkmn; + else if (*(&gBattleStruct->hpScale) == 2) + stringPtr = gText_GoForItPkmn; + else + stringPtr = gText_YourFoesWeakGetEmPkmn; + } + else + { + if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_x2000000)) + { + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + { + if (gBattleScripting.bank == 1) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_Trainer2SentOutPkmn; + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_LinkTrainerMultiSentOutPkmn; + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_LinkTrainerSentOutPkmn2; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) + { + if (gBattleScripting.bank == 1) + stringPtr = gText_Trainer1SentOutPkmn2; + else + stringPtr = gText_Trainer2SentOutPkmn; + } + else + { + stringPtr = gText_Trainer1SentOutPkmn2; + } + } + } + break; + case STRINGID_USEDMOVE: // pokemon used a move msg + sub_814F8F8(gBattleTextBuff1); + + if (gStringInfo->currentMove > LAST_MOVE_INDEX) + StringCopy(gBattleTextBuff2, gText_UnknownMoveTypes[*(&gBattleStruct->stringMoveType)]); + else + StringCopy(gBattleTextBuff2, gMoveNames[gStringInfo->currentMove]); + + sub_814F950(gBattleTextBuff2); + stringPtr = gText_AttackerUsedX; + break; + case STRINGID_BATTLEEND: // battle end + if (gBattleTextBuff1[0] & BATTLE_OUTCOME_BIT_x80) + { + gBattleTextBuff1[0] &= ~(BATTLE_OUTCOME_BIT_x80); + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) + gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + + if (gBattleTextBuff1[0] == BATTLE_LOST || gBattleTextBuff1[0] == BATTLE_DREW) + stringPtr = gText_GotAwaySafely; + else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + stringPtr = gText_TwoWildFled; + else + stringPtr = gText_WildFled; + } + else + { + if (GetBankSide(gActiveBank) == SIDE_OPPONENT && gBattleTextBuff1[0] != BATTLE_DREW) + gBattleTextBuff1[0] ^= (BATTLE_LOST | BATTLE_WON); + + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + if (gBattleTypeFlags & BATTLE_TYPE_x800000) + stringPtr = gText_TwoInGameTrainersDefeated; + else + stringPtr = gText_TwoLinkTrainersDefeated; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostToTwo; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawVsTwo; + break; + } + } + else if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_C00) + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + stringPtr = gText_PlayerDefeatedLinkTrainerTrainer1; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostAgainstTrainer1; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawTrainer1; + break; + } + } + else + { + switch (gBattleTextBuff1[0]) + { + case BATTLE_WON: + stringPtr = gText_PlayerDefeatedLinkTrainer; + break; + case BATTLE_LOST: + stringPtr = gText_PlayerLostAgainstLinkTrainer; + break; + case BATTLE_DREW: + stringPtr = gText_PlayerBattledToDrawLinkTrainer; + break; + } + } + } + break; + default: // load a string from the table + if (stringID >= BATTLESTRINGS_COUNT + BATTLESTRINGS_ID_ADDER) + { + gDisplayedStringBattle[0] = EOS; + return; + } + else + { + stringPtr = gBattleStringsTable[stringID - BATTLESTRINGS_ID_ADDER]; + } + break; + } + + BattleStringExpandPlaceholdersToDisplayedString(stringPtr); +} diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index e53292442b..17b0e2ff97 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -34,6 +34,7 @@ #include "pokemon_storage_system.h" #include "task.h" #include "naming_screen.h" +#include "battle_string_ids.h" // variables @@ -1375,7 +1376,7 @@ static void atk02_attackstring(void) return; if (!(gHitMarker & (HITMARKER_NO_ATTACKSTRING | HITMARKER_ATTACKSTRING_PRINTED))) { - PrepareStringBattle(4, gBankAttacker); + PrepareStringBattle(STRINGID_USEDMOVE, gBankAttacker); gHitMarker |= HITMARKER_ATTACKSTRING_PRINTED; } gBattlescriptCurrInstr++; @@ -2000,7 +2001,7 @@ static void atk0B_healthbarupdate(void) if (gBattleMons[gActiveBank].status2 & STATUS2_SUBSTITUTE && gDisableStructs[gActiveBank].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - PrepareStringBattle(0x80, gActiveBank); + PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, gActiveBank); } else { @@ -2157,7 +2158,7 @@ static void atk0D_critmessage(void) { if (gCritMultiplier == 2 && !(gBattleMoveFlags & MOVESTATUS_NOEFFECT)) { - PrepareStringBattle(0xD9, gBankAttacker); + PrepareStringBattle(STRINGID_CRITICALHIT, gBankAttacker); gBattleCommunication[MSG_DISPLAY] = 1; } gBattlescriptCurrInstr++; @@ -2229,22 +2230,22 @@ static void atk0F_resultmessage(void) switch (gBattleMoveFlags & (u8)(~(MOVESTATUS_MISSED))) { case MOVESTATUS_SUPEREFFECTIVE: - stringId = 0xDE; + stringId = STRINGID_SUPEREFFECTIVE; break; case MOVESTATUS_NOTVERYEFFECTIVE: - stringId = 0xDD; + stringId = STRINGID_NOTVERYEFFECTIVE; break; case MOVESTATUS_ONEHITKO: - stringId = 0xDA; + stringId = STRINGID_ONEHITKO; break; case MOVESTATUS_ENDURED: - stringId = 0x99; + stringId = STRINGID_PKMNENDUREDHIT; break; case MOVESTATUS_FAILED: - stringId = 0xE5; + stringId = STRINGID_BUTITFAILED; break; case MOVESTATUS_NOTAFFECTED: - stringId = 0x1B; + stringId = STRINGID_ITDOESNTAFFECT; break; case MOVESTATUS_HUNGON: gLastUsedItem = gBattleMons[gBankTarget].item; @@ -2256,7 +2257,7 @@ static void atk0F_resultmessage(void) default: if (gBattleMoveFlags & MOVESTATUS_NOTAFFECTED) { - stringId = 0x1B; + stringId = STRINGID_ITDOESNTAFFECT; } else if (gBattleMoveFlags & MOVESTATUS_ONEHITKO) { @@ -2285,7 +2286,7 @@ static void atk0F_resultmessage(void) } else if (gBattleMoveFlags & MOVESTATUS_FAILED) { - stringId = 0xE5; + stringId = STRINGID_BUTITFAILED; } else { @@ -3592,7 +3593,7 @@ static void atk23_getexp(void) PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 5, gBattleMoveDamage) - PrepareStringBattle(0xD, gBattleStruct->expGetterBank); + PrepareStringBattle(STRINGID_PKMNGAINEDEXP, gBattleStruct->expGetterBank); MonGainEVs(&gPlayerParty[gBattleStruct->expGetterId], gBattleMons[gBank1].species); } gBattleStruct->sentInPokes >>= 1; @@ -6181,7 +6182,7 @@ static void atk5A_yesnoboxlearnmove(void) u16 moveId = GetMonData(&gPlayerParty[gBattleStruct->expGetterId], MON_DATA_MOVE1 + movePosition); if (IsHMMove2(moveId)) { - PrepareStringBattle(0x13F, gActiveBank); + PrepareStringBattle(STRINGID_HMMOVESCANTBEFORGOTTEN, gActiveBank); gBattleScripting.learnMoveState = 6; } else diff --git a/sym_ewram.txt b/sym_ewram.txt index b1572bf25a..0299dad2e6 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -238,26 +238,7 @@ gBattle_WIN1H: @ 2022E28 gBattle_WIN1V: @ 2022E2A .space 0x2 -gDisplayedStringBattle: @ 2022E2C - .space 0x12C - -gBattleTextBuff1: @ 2022F58 - .space 0x2 - -gUnknown_02022F5A: @ 2022F5A - .space 0x2 - -gUnknown_02022F5C: @ 2022F5C - .space 0xC - -gBattleTextBuff2: @ 2022F68 - .space 0x2 - -gUnknown_02022F6A: @ 2022F6A - .space 0xE - -gBattleTextBuff3: @ 2022F78 - .space 0x10 + .include "src/battle_message.o" gUnknown_02022F88: @ 2022F88 .space 0x64