From 47acecb873695944a230820e57c6c8fd4658eaff Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 7 Jan 2018 18:11:16 -0600 Subject: match SaveCurrentWinStreak --- src/field/battle_tower.c | 113 +++++++---------------------------------------- 1 file changed, 15 insertions(+), 98 deletions(-) diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index caebc6a7b..24726a325 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -132,7 +132,7 @@ static const u8 sMaleTrainerClasses[] = { TRAINER_CLASS_POKEMON_BREEDER_M, TRAINER_CLASS_POKEMON_RANGER_M, TRAINER_CLASS_BUG_CATCHER, - TRAINER_CLASS_HIKER, + TRAINER_CLASS_HIKER, }; static const u8 sFemaleTrainerClasses[] = { @@ -255,7 +255,7 @@ static void ResetBattleTowerStreak(u8 levelType); static void ValidateBattleTowerRecordChecksums(void); static void PrintEReaderTrainerFarewellMessage(void); extern void SetBattleTowerTrainerGfxId(u8); -extern void sub_8135A3C(void); +static void SaveCurrentWinStreak(void); static void sub_8135CFC(void); static void CheckMonBattleTowerBanlist(u16, u16, u16, u8, u8, u16 *, u16 *, u8 *); static void ClearEReaderTrainer(struct BattleTowerEReaderTrainer *); @@ -1538,7 +1538,7 @@ void CheckPartyBattleTowerBanlist(void) StringAppend(gStringVar1, BattleText_Format8); return; } - + if (1 & counter) StringAppend(gStringVar1, BattleText_Format6); else @@ -1699,7 +1699,7 @@ void SetBattleTowerProperty(void) } gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType]++; - sub_8135A3C(); + SaveCurrentWinStreak(); gSpecialVar_Result = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType]; gStringVar1[0] = gSaveBlock2.battleTower.curChallengeBattleNum[battleTowerLevelType] + 0xA1; @@ -1711,7 +1711,7 @@ void SetBattleTowerProperty(void) gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType]++; } - sub_8135A3C(); + SaveCurrentWinStreak(); gSpecialVar_Result = gSaveBlock2.battleTower.curStreakChallengesNum[battleTowerLevelType]; break; case 8: @@ -1801,118 +1801,35 @@ void SetBattleTowerParty(void) ReducePlayerPartyToThree(); } -#ifdef NONMATCHING -void sub_8135A3C(void) +static void SaveCurrentWinStreak(void) { - u8 battleTowerLevelType = gSaveBlock2.battleTower.battleTowerLevelType; - u16 winStreak = GetCurrentBattleTowerWinStreak(battleTowerLevelType); + u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType; + u16 streak = GetCurrentBattleTowerWinStreak(levelType); - if (gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] < winStreak) - { - gSaveBlock2.battleTower.recordWinStreaks[battleTowerLevelType] = winStreak; - } + if (gSaveBlock2.battleTower.recordWinStreaks[levelType] < streak) + gSaveBlock2.battleTower.recordWinStreaks[levelType] = streak; if (gSaveBlock2.battleTower.recordWinStreaks[0] > gSaveBlock2.battleTower.recordWinStreaks[1]) { - u16 streak = gSaveBlock2.battleTower.recordWinStreaks[0]; + streak = gSaveBlock2.battleTower.recordWinStreaks[0]; SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak); + if (streak > 9999) - { gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999; - } else - { gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak; - } } else { - u16 streak = gSaveBlock2.battleTower.recordWinStreaks[1]; + streak = gSaveBlock2.battleTower.recordWinStreaks[1]; SetGameStat(GAME_STAT_BATTLE_TOWER_BEST_STREAK, streak); + if (streak > 9999) - { gSaveBlock2.battleTower.bestBattleTowerWinStreak = 9999; - } else - { gSaveBlock2.battleTower.bestBattleTowerWinStreak = streak; - } } } -#else -__attribute__((naked)) -void sub_8135A3C(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - ldr r6, _08135A84 @ =gSaveBlock2\n\ - ldr r1, _08135A88 @ =0x00000554\n\ - adds r0, r6, r1\n\ - ldrb r4, [r0]\n\ - lsls r4, 31\n\ - lsrs r4, 31\n\ - adds r0, r4, 0\n\ - bl GetCurrentBattleTowerWinStreak\n\ - lsls r0, 16\n\ - lsrs r5, r0, 16\n\ - lsls r4, 1\n\ - movs r3, 0xAC\n\ - lsls r3, 3\n\ - adds r2, r6, r3\n\ - adds r4, r2\n\ - ldrh r0, [r4]\n\ - cmp r0, r5\n\ - bcs _08135A66\n\ - strh r5, [r4]\n\ -_08135A66:\n\ - ldr r0, _08135A8C @ =0x00000562\n\ - adds r1, r6, r0\n\ - ldrh r0, [r2]\n\ - ldrh r3, [r1]\n\ - cmp r0, r3\n\ - bls _08135A94\n\ - adds r5, r0, 0\n\ - movs r0, 0x20\n\ - adds r1, r5, 0\n\ - bl SetGameStat\n\ - ldr r1, _08135A90 @ =0x0000270f\n\ - cmp r5, r1\n\ - bhi _08135AA4\n\ - b _08135AB4\n\ - .align 2, 0\n\ -_08135A84: .4byte gSaveBlock2\n\ -_08135A88: .4byte 0x00000554\n\ -_08135A8C: .4byte 0x00000562\n\ -_08135A90: .4byte 0x0000270f\n\ -_08135A94:\n\ - ldrh r5, [r1]\n\ - movs r0, 0x20\n\ - adds r1, r5, 0\n\ - bl SetGameStat\n\ - ldr r1, _08135AAC @ =0x0000270f\n\ - cmp r5, r1\n\ - bls _08135AB4\n\ -_08135AA4:\n\ - ldr r2, _08135AB0 @ =0x00000572\n\ - adds r0, r6, r2\n\ - strh r1, [r0]\n\ - b _08135ABA\n\ - .align 2, 0\n\ -_08135AAC: .4byte 0x0000270f\n\ -_08135AB0: .4byte 0x00000572\n\ -_08135AB4:\n\ - ldr r3, _08135AC0 @ =0x00000572\n\ - adds r0, r6, r3\n\ - strh r5, [r0]\n\ -_08135ABA:\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08135AC0: .4byte 0x00000572\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void sub_8135AC4(void) { @@ -1951,7 +1868,7 @@ void sub_8135AC4(void) } SetBattleTowerRecordChecksum(&gSaveBlock2.battleTower.playerRecord); - sub_8135A3C(); + SaveCurrentWinStreak(); } void SaveBattleTowerProgress(void) -- cgit v1.2.3 From bbb65b40f9e6e68b0412ce47755d61200727fbf7 Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 7 Jan 2018 18:18:57 -0600 Subject: match DetermineBattleTowerPrize --- src/field/battle_tower.c | 72 +++--------------------------------------------- 1 file changed, 4 insertions(+), 68 deletions(-) diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 24726a325..88115d28a 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -1985,79 +1985,15 @@ u16 GetCurrentBattleTowerWinStreak(u8 battleTowerLevelType) return winStreak; } -#ifdef NONMATCHING void DetermineBattleTowerPrize(void) { - u16 prizeItem; - struct SaveBlock2 *saveBlock = &gSaveBlock2; - u8 battleTowerLevelType = saveBlock->battleTower.battleTowerLevelType; + u8 levelType = gSaveBlock2.battleTower.battleTowerLevelType; - if (saveBlock->battleTower.curStreakChallengesNum[battleTowerLevelType] - 1 > 5) - { - prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)]; - } + if (gSaveBlock2.battleTower.curStreakChallengesNum[levelType] - 1 > 5) + gSaveBlock2.battleTower.prizeItem = sLongStreakPrizes[Random() % ARRAY_COUNT(sLongStreakPrizes)]; else - { - prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)]; - } - - saveBlock->battleTower.prizeItem = prizeItem; -} -#else -__attribute__((naked)) -void DetermineBattleTowerPrize(void) -{ - asm(".syntax unified\n\ - push {r4,r5,lr}\n\ - ldr r5, _08135DB0 @ =gSaveBlock2\n\ - ldr r1, _08135DB4 @ =0x00000554\n\ - adds r0, r5, r1\n\ - ldrb r0, [r0]\n\ - lsls r0, 31\n\ - lsrs r0, 31\n\ - lsls r0, 1\n\ - ldr r2, _08135DB8 @ =0x0000055c\n\ - adds r1, r5, r2\n\ - adds r0, r1\n\ - ldrh r0, [r0]\n\ - subs r0, 0x1\n\ - cmp r0, 0x5\n\ - ble _08135DC0\n\ - bl Random\n\ - ldr r4, _08135DBC @ =sLongStreakPrizes\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x9\n\ - b _08135DCC\n\ - .align 2, 0\n\ -_08135DB0: .4byte gSaveBlock2\n\ -_08135DB4: .4byte 0x00000554\n\ -_08135DB8: .4byte 0x0000055c\n\ -_08135DBC: .4byte sLongStreakPrizes\n\ -_08135DC0:\n\ - bl Random\n\ - ldr r4, _08135DE8 @ =sShortStreakPrizes\n\ - lsls r0, 16\n\ - lsrs r0, 16\n\ - movs r1, 0x6\n\ -_08135DCC:\n\ - bl __umodsi3\n\ - lsls r0, 16\n\ - lsrs r0, 15\n\ - adds r0, r4\n\ - ldrh r1, [r0]\n\ - movs r2, 0xAD\n\ - lsls r2, 3\n\ - adds r0, r5, r2\n\ - strh r1, [r0]\n\ - pop {r4,r5}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_08135DE8: .4byte sShortStreakPrizes\n\ - .syntax divided\n"); + gSaveBlock2.battleTower.prizeItem = sShortStreakPrizes[Random() % ARRAY_COUNT(sShortStreakPrizes)]; } -#endif // NONMATCHING void GiveBattleTowerPrize(void) { -- cgit v1.2.3 From 3f9ca66670d59f8fad77c5a8952f1d43f13da1ea Mon Sep 17 00:00:00 2001 From: camthesaxman Date: Sun, 7 Jan 2018 18:52:34 -0600 Subject: match CB2_PartyMenuMain --- src/field/party_menu.c | 56 ++++---------------------------------------------- 1 file changed, 4 insertions(+), 52 deletions(-) diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 9c1150515..7160da93b 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -490,9 +490,6 @@ extern const u8 gStatusPal_Icons[]; #define WINDOW_RIGHT (29) #endif - -#ifdef NONMATCHING -// Main handler for the party menu. void CB2_PartyMenuMain(void) { const struct PartyMonTextSettingsStruct *textSettings; @@ -506,62 +503,17 @@ void CB2_PartyMenuMain(void) { // Draw mon name, level, and hp sprites DrawPartyMenuMonText( - textSettings[i].xOffset * 8, - textSettings[i].yOffset * 8, - textSettings[i].oamSettings, + textSettings->xOffset * 8, + textSettings->yOffset * 8, + textSettings->oamSettings, 0, (i << 5) | 0x200); + textSettings++; } RunTasks(); UpdatePaletteFade(); } -#else -__attribute__((naked)) -void CB2_PartyMenuMain(void) -{ - asm(".syntax unified\n\ - push {r4-r6,lr}\n\ - sub sp, 0x4\n\ - bl AnimateSprites\n\ - bl BuildOamBuffer\n\ - ldr r0, _0806AF2C @ =gPartyMenuType\n\ - ldrb r1, [r0]\n\ - lsls r0, r1, 1\n\ - adds r0, r1\n\ - lsls r0, 4\n\ - ldr r1, _0806AF30 @ =PartyMonTextSettings\n\ - adds r5, r0, r1\n\ - movs r6, 0\n\ -_0806AEF8:\n\ - ldrb r0, [r5]\n\ - lsls r0, 3\n\ - ldrb r1, [r5, 0x1]\n\ - lsls r1, 3\n\ - ldr r2, [r5, 0x4]\n\ - lsls r3, r6, 5\n\ - movs r4, 0x80\n\ - lsls r4, 2\n\ - orrs r3, r4\n\ - str r3, [sp]\n\ - movs r3, 0\n\ - bl DrawPartyMenuMonText\n\ - adds r5, 0x8\n\ - adds r6, 0x1\n\ - cmp r6, 0x5\n\ - ble _0806AEF8\n\ - bl RunTasks\n\ - bl UpdatePaletteFade\n\ - add sp, 0x4\n\ - pop {r4-r6}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0806AF2C: .4byte gPartyMenuType\n\ -_0806AF30: .4byte PartyMonTextSettings\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void VBlankCB_PartyMenu(void) { -- cgit v1.2.3 From 17d5ba39acb897e07e6842cbff5b1172cc6f7951 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 7 Jan 2018 19:36:27 -0800 Subject: Match sub_806BC3C --- src/field/party_menu.c | 72 +++----------------------------------------------- 1 file changed, 3 insertions(+), 69 deletions(-) diff --git a/src/field/party_menu.c b/src/field/party_menu.c index 7160da93b..790aede60 100644 --- a/src/field/party_menu.c +++ b/src/field/party_menu.c @@ -1178,8 +1178,6 @@ void sub_806BBEC(u8 a) } } -#ifdef NONMATCHING -// The original THUMB is preserving r8 for seemingly no reason. Unsure how to match. void sub_806BC3C(u8 monIndex, u8 b) { u16 *vramPtr = gUnknown_08376918[IsDoubleBattle()][monIndex]; @@ -1192,74 +1190,10 @@ void sub_806BC3C(u8 monIndex, u8 b) vramPtr[i] = gUnknown_08E9A300[offset] + 0x10C; vramPtr[i + 0x20] = gUnknown_08E9A300[offset + 0x20] + 0x10C; } + + // Some dead code was likely optimized out, but the compiler still think r8 was used. + asm("":::"r8"); } -#else -__attribute__((naked)) -void sub_806BC3C(u8 monIndex, u8 b) -{ - asm(".syntax unified\n\ - push {r4-r7,lr}\n\ - mov r7, r8\n\ - push {r7}\n\ - adds r4, r0, 0\n\ - adds r5, r1, 0\n\ - lsls r4, 24\n\ - lsrs r4, 24\n\ - lsls r5, 24\n\ - lsrs r5, 24\n\ - ldr r6, _0806BCB0 @ =gUnknown_08376918\n\ - bl IsDoubleBattle\n\ - lsls r4, 2\n\ - lsls r0, 24\n\ - lsrs r0, 24\n\ - lsls r1, r0, 1\n\ - adds r1, r0\n\ - lsls r1, 3\n\ - adds r4, r1\n\ - adds r4, r6\n\ - ldr r7, [r4]\n\ - movs r6, 0\n\ - adds r0, r5, 0\n\ - movs r1, 0x7\n\ - bl __udivsi3\n\ - lsls r0, 24\n\ - lsrs r4, r0, 19\n\ - ldr r5, _0806BCB4 @ =gUnknown_08E9A300\n\ - movs r0, 0x86\n\ - lsls r0, 1\n\ - adds r3, r0, 0\n\ -_0806BC7C:\n\ - adds r1, r6, r4\n\ - lsls r2, r6, 1\n\ - adds r2, r7\n\ - lsls r0, r1, 1\n\ - adds r0, r5\n\ - ldrh r0, [r0]\n\ - adds r0, r3, r0\n\ - strh r0, [r2]\n\ - adds r2, 0x40\n\ - adds r1, 0x20\n\ - lsls r1, 1\n\ - adds r1, r5\n\ - ldrh r1, [r1]\n\ - adds r0, r3, r1\n\ - strh r0, [r2]\n\ - adds r0, r6, 0x1\n\ - lsls r0, 24\n\ - lsrs r6, r0, 24\n\ - cmp r6, 0x6\n\ - bls _0806BC7C\n\ - pop {r3}\n\ - mov r8, r3\n\ - pop {r4-r7}\n\ - pop {r0}\n\ - bx r0\n\ - .align 2, 0\n\ -_0806BCB0: .4byte gUnknown_08376918\n\ -_0806BCB4: .4byte gUnknown_08E9A300\n\ - .syntax divided\n"); -} -#endif // NONMATCHING void unref_sub_806BCB8(u8 a) { -- cgit v1.2.3 From 36841a8498134931be3d1c73927f6fec4482fb30 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sat, 6 Jan 2018 13:56:53 -0800 Subject: Decompile more battle_2 functions --- asm/battle_2.s | 1999 ------------------------------------------------ include/pokemon.h | 2 +- src/battle/battle_2.c | 1645 ++++++++++++++++++++++++++++++++++++++- src/battle/battle_ai.c | 4 +- 4 files changed, 1647 insertions(+), 2003 deletions(-) diff --git a/asm/battle_2.s b/asm/battle_2.s index 5a751ba55..edd7fffde 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -5,2005 +5,6 @@ .text - thumb_func_start sub_8012324 -sub_8012324: @ 8012324 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - ldr r0, _08012340 @ =gBattleCommunication - movs r1, 0 - strb r1, [r0, 0x4] - ldr r0, _08012344 @ =gActiveBank - strb r1, [r0] - ldr r0, _08012348 @ =gNoOfAllBanks - bl _08012F74 - .align 2, 0 -_08012340: .4byte gBattleCommunication -_08012344: .4byte gActiveBank -_08012348: .4byte gNoOfAllBanks -_0801234C: - ldr r4, _08012374 @ =gActiveBank - ldrb r0, [r4] - bl GetBankIdentity - lsls r0, 24 - lsrs r5, r0, 24 - ldr r1, _08012378 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x6 - bls _08012368 - bl _08012F66 -_08012368: - lsls r0, 2 - ldr r1, _0801237C @ =_08012380 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012374: .4byte gActiveBank -_08012378: .4byte gBattleCommunication -_0801237C: .4byte _08012380 - .align 2, 0 -_08012380: - .4byte _0801239C - .4byte _080124C8 - .4byte _08012A28 - .4byte _08012DA8 - .4byte _08012E50 - .4byte _08012E94 - .4byte _08012F38 -_0801239C: - ldr r4, _08012434 @ =gSharedMem - ldr r0, _08012438 @ =gActiveBank - ldrb r0, [r0] - ldr r1, _0801243C @ =0x00016068 - adds r0, r1 - adds r0, r4 - movs r1, 0x6 - strb r1, [r0] - ldr r0, _08012440 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _080123F8 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _080123F8 - eors r5, r1 - adds r0, r5, 0 - bl GetBankByPlayerAI - ldr r2, _08012444 @ =0x000160a6 - adds r1, r4, r2 - ldrb r1, [r1] - ldr r2, _08012448 @ =gBitTable - lsls r0, 24 - lsrs r0, 22 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080123F8 - ldr r4, _0801244C @ =gBattleCommunication - adds r0, r5, 0 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x4 - beq _080123F8 - bl _08012F66 -_080123F8: - ldr r0, _08012434 @ =gSharedMem - ldr r3, _08012444 @ =0x000160a6 - adds r0, r3 - ldrb r3, [r0] - ldr r1, _08012448 @ =gBitTable - ldr r4, _08012438 @ =gActiveBank - ldrb r2, [r4] - lsls r0, r2, 2 - adds r0, r1 - ldr r0, [r0] - ands r3, r0 - cmp r3, 0 - beq _08012468 - ldr r0, _08012450 @ =gActionForBanks - adds r0, r2, r0 - movs r1, 0xD - strb r1, [r0] - ldr r0, _08012440 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _08012454 - ldr r0, _0801244C @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x4 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012434: .4byte gSharedMem -_08012438: .4byte gActiveBank -_0801243C: .4byte 0x00016068 -_08012440: .4byte gBattleTypeFlags -_08012444: .4byte 0x000160a6 -_08012448: .4byte gBitTable -_0801244C: .4byte gBattleCommunication -_08012450: .4byte gActionForBanks -_08012454: - ldr r0, _08012464 @ =gBattleCommunication - ldrb r1, [r4] - adds r1, r0 - movs r0, 0x3 - strb r0, [r1] - bl _08012F66 - .align 2, 0 -_08012464: .4byte gBattleCommunication -_08012468: - ldr r1, _0801249C @ =gBattleMons - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r1, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r1 - cmp r0, 0 - bne _08012488 - movs r0, 0x80 - lsls r0, 15 - ands r1, r0 - cmp r1, 0 - beq _080124A8 -_08012488: - ldr r0, _080124A0 @ =gActionForBanks - adds r0, r2, r0 - strb r3, [r0] - ldr r1, _080124A4 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F66 - .align 2, 0 -_0801249C: .4byte gBattleMons -_080124A0: .4byte gActionForBanks -_080124A4: .4byte gBattleCommunication -_080124A8: - ldr r0, _080124C0 @ =gActionForBanks - ldrb r1, [r0] - ldr r0, _080124C4 @ =gBattleBufferB - ldrb r2, [r0, 0x1] - ldrb r0, [r0, 0x2] - lsls r0, 8 - orrs r2, r0 - movs r0, 0 - bl Emitcmd18 - bl _08012E32 - .align 2, 0 -_080124C0: .4byte gActionForBanks -_080124C4: .4byte gBattleBufferB -_080124C8: - ldr r4, _08012520 @ =gBattleExecBuffer - ldr r1, _08012524 @ =gBitTable - ldr r3, _08012528 @ =gActiveBank - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _080124F6 - bl _08012F66 -_080124F6: - ldr r2, _0801252C @ =gActionForBanks - adds r2, r5, r2 - ldr r1, _08012530 @ =gBattleBufferB - lsls r0, r5, 9 - adds r1, 0x1 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldrb r0, [r3] - lsls r0, 9 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0xC - bls _08012514 - b _08012968 -_08012514: - lsls r0, 2 - ldr r1, _08012534 @ =_08012538 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012520: .4byte gBattleExecBuffer -_08012524: .4byte gBitTable -_08012528: .4byte gActiveBank -_0801252C: .4byte gActionForBanks -_08012530: .4byte gBattleBufferB -_08012534: .4byte _08012538 - .align 2, 0 -_08012538: - .4byte _0801256C - .4byte _080126B4 - .4byte _080126E0 - .4byte _08012968 - .4byte _08012968 - .4byte _080128B0 - .4byte _08012908 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _08012968 - .4byte _0801292C -_0801256C: - bl AreAllMovesUnusable - lsls r0, 24 - cmp r0, 0 - beq _080125D0 - ldr r0, _080125B4 @ =gBattleCommunication - ldr r2, _080125B8 @ =gActiveBank - ldrb r1, [r2] - adds r1, r0 - movs r4, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _080125BC @ =gSharedMem - ldrb r0, [r2] - ldr r1, _080125C0 @ =0x00016060 - adds r0, r1 - adds r0, r3 - strb r4, [r0] - ldrb r0, [r2] - ldr r4, _080125C4 @ =0x00016094 - adds r0, r4 - adds r0, r3 - movs r1, 0x3 - strb r1, [r0] - ldrb r1, [r2] - ldr r0, _080125C8 @ =0x00016010 - adds r2, r1, r0 - adds r2, r3 - ldr r0, _080125CC @ =gBattleBufferB - lsls r1, 9 - adds r0, 0x3 - adds r1, r0 - ldrb r0, [r1] - strb r0, [r2] - bl _08012F90 - .align 2, 0 -_080125B4: .4byte gBattleCommunication -_080125B8: .4byte gActiveBank -_080125BC: .4byte gSharedMem -_080125C0: .4byte 0x00016060 -_080125C4: .4byte 0x00016094 -_080125C8: .4byte 0x00016010 -_080125CC: .4byte gBattleBufferB -_080125D0: - ldr r1, _080125FC @ =gDisableStructs - ldr r5, _08012600 @ =gActiveBank - ldrb r4, [r5] - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrh r2, [r0, 0x6] - cmp r2, 0 - beq _0801260C - ldr r1, _08012604 @ =gChosenMovesByBanks - lsls r0, r4, 1 - adds r0, r1 - strh r2, [r0] - ldr r1, _08012608 @ =gBattleCommunication - ldrb r0, [r5] - adds r0, r1 - movs r1, 0x3 - strb r1, [r0] - bl _08012F90 - .align 2, 0 -_080125FC: .4byte gDisableStructs -_08012600: .4byte gActiveBank -_08012604: .4byte gChosenMovesByBanks -_08012608: .4byte gBattleCommunication -_0801260C: - add r2, sp, 0x4 - ldr r3, _080126AC @ =gBattleMons - movs r1, 0x58 - adds r0, r4, 0 - muls r0, r1 - adds r0, r3 - ldrh r0, [r0] - strh r0, [r2, 0x10] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x21 - ldrb r0, [r0] - strb r0, [r2, 0x12] - ldrb r0, [r5] - muls r0, r1 - adds r0, r3 - adds r0, 0x22 - ldrb r0, [r0] - strb r0, [r2, 0x13] - movs r4, 0 - mov r1, sp - adds r1, 0xC - str r1, [sp, 0x18] - add r2, sp, 0x10 - mov r10, r2 - mov r8, r3 - adds r7, r5, 0 - movs r6, 0x58 - movs r3, 0xC - add r3, r8 - mov r9, r3 - add r5, sp, 0x4 -_0801264E: - lsls r2, r4, 1 - ldrb r0, [r7] - muls r0, r6 - adds r0, r2, r0 - add r0, r9 - ldrh r0, [r0] - strh r0, [r5] - ldr r0, [sp, 0x18] - adds r3, r0, r4 - ldrb r0, [r7] - muls r0, r6 - adds r0, r4, r0 - mov r1, r8 - adds r1, 0x24 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldrb r0, [r7] - adds r1, r0, 0 - muls r1, r6 - adds r2, r1 - add r2, r9 - ldrh r0, [r2] - add r1, r8 - adds r1, 0x3B - ldrb r1, [r1] - lsls r2, r4, 24 - lsrs r2, 24 - bl CalculatePPWithBonus - mov r2, r10 - adds r1, r2, r4 - strb r0, [r1] - adds r5, 0x2 - adds r4, 0x1 - cmp r4, 0x3 - ble _0801264E - ldr r0, _080126B0 @ =gBattleTypeFlags - ldrb r0, [r0] - movs r1, 0x1 - ands r1, r0 - movs r0, 0 - movs r2, 0 - add r3, sp, 0x4 - bl Emitcmd20 - b _0801289E - .align 2, 0 -_080126AC: .4byte gBattleMons -_080126B0: .4byte gBattleTypeFlags -_080126B4: - ldr r0, _080126D0 @ =gBattleTypeFlags - ldrh r1, [r0] - ldr r0, _080126D4 @ =0x00000902 - ands r0, r1 - cmp r0, 0 - bne _080126C2 - b _08012908 -_080126C2: - ldr r1, _080126D8 @ =gUnknown_02024C1C - mov r3, r8 - ldrb r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed - b _080129CC - .align 2, 0 -_080126D0: .4byte gBattleTypeFlags -_080126D4: .4byte 0x00000902 -_080126D8: .4byte gUnknown_02024C1C -_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed -_080126E0: - ldr r3, _08012738 @ =gSharedMem - ldr r5, _0801273C @ =gActiveBank - ldrb r0, [r5] - ldr r4, _08012740 @ =0x00016064 - adds r1, r0, r4 - adds r1, r3 - ldr r2, _08012744 @ =gBattlePartyID - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1] - ldr r7, _08012748 @ =gBattleMons - ldrb r2, [r5] - movs r6, 0x58 - adds r0, r2, 0 - muls r0, r6 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _0801274C @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - bne _08012722 - ldr r0, _08012750 @ =gStatuses3 - lsls r1, r2, 2 - adds r1, r0 - ldr r1, [r1] - movs r0, 0x80 - lsls r0, 3 - ands r1, r0 - cmp r1, 0 - beq _08012758 -_08012722: - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012754 @ =0x0001606c - adds r1, r3, r2 - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0x2 - movs r2, 0x6 - b _0801286C - .align 2, 0 -_08012738: .4byte gSharedMem -_0801273C: .4byte gActiveBank -_08012740: .4byte 0x00016064 -_08012744: .4byte gBattlePartyID -_08012748: .4byte gBattleMons -_0801274C: .4byte 0x0400e000 -_08012750: .4byte gStatuses3 -_08012754: .4byte 0x0001606c -_08012758: - str r1, [sp] - movs r0, 0xC - adds r1, r2, 0 - movs r2, 0x17 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _080127E0 - ldrb r1, [r5] - str r4, [sp] - movs r0, 0xC - movs r2, 0x47 - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _080127A8 - ldrb r0, [r5] - muls r0, r6 - adds r1, r0, r7 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x2 - beq _080127A8 - adds r0, r1, 0 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1A - bne _080127E0 -_080127A8: - ldr r5, _08012808 @ =gActiveBank - ldrb r1, [r5] - movs r0, 0 - str r0, [sp] - movs r0, 0xF - movs r2, 0x2A - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _08012818 - ldr r2, _0801280C @ =gBattleMons - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r1, r0, r2 - adds r0, r1, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x8 - beq _080127E0 - adds r0, r1, 0 - adds r0, 0x22 - ldrb r0, [r0] - cmp r0, 0x8 - bne _08012818 -_080127E0: - subs r1, r4, 0x1 - lsls r1, 4 - movs r0, 0x4 - orrs r1, r0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08012810 @ =gLastUsedAbility - ldrb r3, [r0] - ldr r0, _08012808 @ =gActiveBank - ldrb r2, [r0] - lsls r0, r2, 1 - adds r0, r2 - ldr r2, _08012814 @ =gSharedMem + 0x1606C - adds r0, r2 - str r0, [sp] - movs r0, 0 - movs r2, 0x6 - bl EmitChoosePokemon - b _0801289E - .align 2, 0 -_08012808: .4byte gActiveBank -_0801280C: .4byte gBattleMons -_08012810: .4byte gLastUsedAbility -_08012814: .4byte gSharedMem + 0x1606C -_08012818: - ldr r0, _08012830 @ =gActiveBank - ldrb r1, [r0] - mov r8, r0 - cmp r1, 0x2 - bne _08012840 - ldr r0, _08012834 @ =gActionForBanks - ldrb r0, [r0] - cmp r0, 0x2 - bne _08012840 - ldr r3, _08012838 @ =gSharedMem - ldr r4, _0801283C @ =0x00016068 - b _08012854 - .align 2, 0 -_08012830: .4byte gActiveBank -_08012834: .4byte gActionForBanks -_08012838: .4byte gSharedMem -_0801283C: .4byte 0x00016068 -_08012840: - mov r2, r8 - ldrb r0, [r2] - cmp r0, 0x3 - bne _08012884 - ldr r0, _08012874 @ =gActionForBanks - ldrb r0, [r0, 0x1] - cmp r0, 0x2 - bne _08012884 - ldr r3, _08012878 @ =gSharedMem - ldr r4, _0801287C @ =0x00016069 -_08012854: - adds r0, r3, r4 - ldrb r2, [r0] - mov r0, r8 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _08012880 @ =0x0001606c - adds r3, r1 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r1, 0 -_0801286C: - movs r3, 0 - bl EmitChoosePokemon - b _0801289E - .align 2, 0 -_08012874: .4byte gActionForBanks -_08012878: .4byte gSharedMem -_0801287C: .4byte 0x00016069 -_08012880: .4byte 0x0001606c -_08012884: - ldr r0, _080128A8 @ =gActiveBank - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - ldr r1, _080128AC @ =gSharedMem + 0x1606C - adds r0, r1 - str r0, [sp] - movs r0, 0 - movs r1, 0 - movs r2, 0x6 - movs r3, 0 - bl EmitChoosePokemon -_0801289E: - ldr r0, _080128A8 @ =gActiveBank - ldrb r0, [r0] - bl MarkBufferBankForExecution - b _08012968 - .align 2, 0 -_080128A8: .4byte gActiveBank -_080128AC: .4byte gSharedMem + 0x1606C -_080128B0: - bl PlayerPartyAndPokemonStorageFull - lsls r0, 24 - cmp r0, 0 - beq _08012968 - ldr r1, _080128EC @ =gUnknown_02024C1C - ldr r2, _080128F0 @ =gActiveBank - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r1, _080128F4 @ =BattleScript_PrintFullBox - str r1, [r0] - ldr r0, _080128F8 @ =gBattleCommunication - ldrb r1, [r2] - adds r1, r0 - movs r3, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _080128FC @ =gSharedMem - ldrb r0, [r2] - ldr r4, _08012900 @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r3, [r0] - ldrb r0, [r2] - ldr r2, _08012904 @ =0x00016094 - adds r0, r2 - adds r0, r1 - strb r3, [r0] - b _08012F90 - .align 2, 0 -_080128EC: .4byte gUnknown_02024C1C -_080128F0: .4byte gActiveBank -_080128F4: .4byte BattleScript_PrintFullBox -_080128F8: .4byte gBattleCommunication -_080128FC: .4byte gSharedMem -_08012900: .4byte 0x00016060 -_08012904: .4byte 0x00016094 -_08012908: - ldr r4, _08012924 @ =gActiveBank - ldrb r0, [r4] - lsls r1, r0, 1 - adds r1, r0 - ldr r0, _08012928 @ =gSharedMem + 0x1606C - adds r1, r0 - movs r0, 0 - bl EmitOpenBag - ldrb r0, [r4] - bl MarkBufferBankForExecution - b _08012968 - .align 2, 0 -_08012924: .4byte gActiveBank -_08012928: .4byte gSharedMem + 0x1606C -_0801292C: - ldr r4, _08012964 @ =gBattleCommunication - mov r3, r8 - ldrb r1, [r3] - adds r1, r4 - movs r5, 0 - movs r0, 0x6 - strb r0, [r1] - ldrb r0, [r3] - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByPlayerAI - lsls r0, 24 - lsrs r0, 24 - adds r0, r4 - strb r5, [r0] - movs r0, 0 - bl Emitcmd50 - mov r4, r8 - ldrb r0, [r4] - bl MarkBufferBankForExecution - b _08012F90 - .align 2, 0 -_08012964: .4byte gBattleCommunication -_08012968: - ldr r0, _08012994 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - bne _080129A8 - ldr r0, _08012998 @ =gBattleBufferB - ldr r4, _0801299C @ =gActiveBank - ldrb r1, [r4] - lsls r1, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _080129A8 - ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer - bl b_call_bc_move_exec - ldr r1, _080129A4 @ =gBattleCommunication - ldrb r0, [r4] - adds r0, r1 - b _08012BFE - .align 2, 0 -_08012994: .4byte gBattleTypeFlags -_08012998: .4byte gBattleBufferB -_0801299C: .4byte gActiveBank -_080129A0: .4byte BattleScript_PrintCantRunFromTrainer -_080129A4: .4byte gBattleCommunication -_080129A8: - bl CanRunFromBattle - lsls r0, 24 - cmp r0, 0 - beq _08012A14 - ldr r0, _080129F4 @ =gBattleBufferB - ldr r3, _080129F8 @ =gActiveBank - ldrb r2, [r3] - lsls r1, r2, 9 - adds r0, 0x1 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0x3 - bne _08012A14 - ldr r1, _080129FC @ =gUnknown_02024C1C - lsls r0, r2, 2 - adds r0, r1 - ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle -_080129CC: - str r1, [r0] - ldr r0, _08012A04 @ =gBattleCommunication - ldrb r1, [r3] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r1, _08012A08 @ =gSharedMem - ldrb r0, [r3] - ldr r4, _08012A0C @ =0x00016060 - adds r0, r4 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r3] - ldr r3, _08012A10 @ =0x00016094 - adds r0, r3 - adds r0, r1 - strb r2, [r0] - b _08012F90 - .align 2, 0 -_080129F4: .4byte gBattleBufferB -_080129F8: .4byte gActiveBank -_080129FC: .4byte gUnknown_02024C1C -_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle -_08012A04: .4byte gBattleCommunication -_08012A08: .4byte gSharedMem -_08012A0C: .4byte 0x00016060 -_08012A10: .4byte 0x00016094 -_08012A14: - ldr r2, _08012A20 @ =gBattleCommunication - ldr r0, _08012A24 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012A20: .4byte gBattleCommunication -_08012A24: .4byte gActiveBank -_08012A28: - ldr r4, _08012A6C @ =gBattleExecBuffer - ldr r1, _08012A70 @ =gBitTable - ldr r3, _08012A74 @ =gActiveBank - ldrb r5, [r3] - lsls r0, r5, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r1, [r4] - ands r1, r0 - mov r8, r3 - cmp r1, 0 - beq _08012A54 - b _08012F66 -_08012A54: - ldr r1, _08012A78 @ =gActionForBanks - adds r0, r5, r1 - ldrb r0, [r0] - adds r3, r1, 0 - cmp r0, 0x9 - bls _08012A62 - b _08012F66 -_08012A62: - lsls r0, 2 - ldr r1, _08012A7C @ =_08012A80 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08012A6C: .4byte gBattleExecBuffer -_08012A70: .4byte gBitTable -_08012A74: .4byte gActiveBank -_08012A78: .4byte gActionForBanks -_08012A7C: .4byte _08012A80 - .align 2, 0 -_08012A80: - .4byte _08012AA8 - .4byte _08012BB0 - .4byte _08012BE8 - .4byte _08012CE0 - .4byte _08012D04 - .4byte _08012D18 - .4byte _08012D2C - .4byte _08012D5C - .4byte _08012D70 - .4byte _08012D94 -_08012AA8: - ldr r0, _08012AC8 @ =gBattleBufferB - mov r1, r8 - ldrb r4, [r1] - lsls r1, r4, 9 - adds r2, r0, 0x1 - adds r1, r2 - ldrb r1, [r1] - adds r6, r0, 0 - cmp r1, 0x9 - bgt _08012ACC - cmp r1, 0x3 - blt _08012ACC - adds r0, r4, r3 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012AC8: .4byte gBattleBufferB -_08012ACC: - adds r3, r6, 0 - mov r5, r8 - ldrb r4, [r5] - lsls r1, r4, 9 - adds r7, r3, 0x2 - adds r0, r1, r7 - ldrb r2, [r0] - adds r3, 0x3 - mov r9, r3 - add r1, r9 - ldrb r0, [r1] - lsls r0, 8 - orrs r2, r0 - ldr r0, _08012AF4 @ =0x0000ffff - cmp r2, r0 - bne _08012AFC - ldr r0, _08012AF8 @ =gBattleCommunication - adds r0, r4, r0 - b _08012BFE - .align 2, 0 -_08012AF4: .4byte 0x0000ffff -_08012AF8: .4byte gBattleCommunication -_08012AFC: - bl sub_8015894 - lsls r0, 24 - cmp r0, 0 - beq _08012B48 - ldr r0, _08012B38 @ =gBattleCommunication - ldrb r1, [r5] - adds r1, r0 - movs r2, 0 - movs r0, 0x5 - strb r0, [r1] - ldr r3, _08012B3C @ =gSharedMem - ldrb r0, [r5] - ldr r4, _08012B40 @ =0x00016060 - adds r0, r4 - adds r0, r3 - strb r2, [r0] - ldrb r0, [r5] - lsls r0, 9 - adds r1, r6, 0x1 - adds r0, r1 - strb r2, [r0] - ldrb r0, [r5] - ldr r1, _08012B44 @ =0x00016094 - adds r0, r1 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - b _08012F90 - .align 2, 0 -_08012B38: .4byte gBattleCommunication -_08012B3C: .4byte gSharedMem -_08012B40: .4byte 0x00016060 -_08012B44: .4byte 0x00016094 -_08012B48: - ldr r6, _08012B98 @ =gSharedMem - mov r2, r8 - ldrb r0, [r2] - ldr r2, _08012B9C @ =0x0001608c - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BA0 @ =gChosenMovesByBanks - mov r4, r8 - ldrb r3, [r4] - lsls r5, r3, 1 - adds r5, r0 - ldr r4, _08012BA4 @ =gBattleMons - adds r2, r3, r2 - adds r2, r6 - ldrb r0, [r2] - lsls r0, 1 - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r4, 0xC - adds r0, r4 - ldrh r0, [r0] - strh r0, [r5] - mov r1, r8 - ldrb r0, [r1] - ldr r2, _08012BA8 @ =0x00016010 - adds r1, r0, r2 - adds r1, r6 - lsls r0, 9 - add r0, r9 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _08012BAC @ =gBattleCommunication - mov r3, r8 - ldrb r1, [r3] - b _08012E3C - .align 2, 0 -_08012B98: .4byte gSharedMem -_08012B9C: .4byte 0x0001608c -_08012BA0: .4byte gChosenMovesByBanks -_08012BA4: .4byte gBattleMons -_08012BA8: .4byte 0x00016010 -_08012BAC: .4byte gBattleCommunication -_08012BB0: - ldr r2, _08012BD8 @ =gBattleBufferB - ldr r5, _08012BDC @ =gActiveBank - ldrb r4, [r5] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012BCE - b _08012F60 -_08012BCE: - ldr r0, _08012BE0 @ =gLastUsedItem - strh r3, [r0] - ldr r0, _08012BE4 @ =gBattleCommunication - ldrb r1, [r5] - b _08012E3C - .align 2, 0 -_08012BD8: .4byte gBattleBufferB -_08012BDC: .4byte gActiveBank -_08012BE0: .4byte gLastUsedItem -_08012BE4: .4byte gBattleCommunication -_08012BE8: - ldr r4, _08012C04 @ =gBattleBufferB - ldr r7, _08012C08 @ =gActiveBank - ldrb r2, [r7] - lsls r0, r2, 9 - adds r1, r4, 0x1 - adds r0, r1 - ldrb r1, [r0] - cmp r1, 0x6 - bne _08012C10 - ldr r0, _08012C0C @ =gBattleCommunication - adds r0, r2, r0 -_08012BFE: - movs r1, 0 - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012C04: .4byte gBattleBufferB -_08012C08: .4byte gActiveBank -_08012C0C: .4byte gBattleCommunication -_08012C10: - ldr r0, _08012CC4 @ =gSharedMem - mov r12, r0 - ldr r3, _08012CC8 @ =0x00016068 - adds r0, r2, r3 - add r0, r12 - strb r1, [r0] - ldr r0, _08012CCC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _08012CBE - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r5, _08012CD0 @ =0x0001606c - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - movs r0, 0xF - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - lsls r2, r0, 1 - adds r2, r0 - adds r2, r5 - add r2, r12 - lsls r0, 9 - adds r6, r4, 0x2 - adds r0, r6 - ldrb r1, [r0] - movs r3, 0xF0 - adds r0, r3, 0 - ands r0, r1 - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r7] - lsls r1, r0, 1 - adds r1, r0 - ldr r2, _08012CD4 @ =0x0001606d - adds r1, r2 - add r1, r12 - lsls r0, 9 - adds r4, 0x3 - mov r8, r4 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] - ldrb r0, [r7] - movs r4, 0x2 - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r2, [r1] - adds r0, r3, 0 - ands r0, r2 - strb r0, [r1] - ldrb r0, [r7] - eors r0, r4 - lsls r1, r0, 1 - adds r1, r0 - adds r1, r5 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - adds r0, r6 - ldrb r0, [r0] - ands r3, r0 - lsrs r3, 4 - ldrb r0, [r1] - orrs r3, r0 - strb r3, [r1] - ldrb r0, [r7] - eors r4, r0 - lsls r1, r4, 1 - adds r1, r4 - ldr r3, _08012CD8 @ =0x0001606e - adds r1, r3 - add r1, r12 - ldrb r0, [r7] - lsls r0, 9 - add r0, r8 - ldrb r0, [r0] - strb r0, [r1] -_08012CBE: - ldr r0, _08012CDC @ =gBattleCommunication - ldrb r1, [r7] - b _08012E3C - .align 2, 0 -_08012CC4: .4byte gSharedMem -_08012CC8: .4byte 0x00016068 -_08012CCC: .4byte gBattleTypeFlags -_08012CD0: .4byte 0x0001606c -_08012CD4: .4byte 0x0001606d -_08012CD8: .4byte 0x0001606e -_08012CDC: .4byte gBattleCommunication -_08012CE0: - ldr r2, _08012CF8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012CFC @ =gBattleCommunication - ldr r0, _08012D00 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012CF8: .4byte gHitMarker -_08012CFC: .4byte gBattleCommunication -_08012D00: .4byte gActiveBank -_08012D04: - ldr r2, _08012D10 @ =gBattleCommunication - ldr r0, _08012D14 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D10: .4byte gBattleCommunication -_08012D14: .4byte gActiveBank -_08012D18: - ldr r2, _08012D24 @ =gBattleCommunication - ldr r0, _08012D28 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D24: .4byte gBattleCommunication -_08012D28: .4byte gActiveBank -_08012D2C: - ldr r2, _08012D50 @ =gBattleBufferB - ldr r0, _08012D54 @ =gActiveBank - ldrb r4, [r0] - lsls r1, r4, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - cmp r3, 0 - bne _08012D4A - b _08012F60 -_08012D4A: - ldr r1, _08012D58 @ =gBattleCommunication - adds r1, r4, r1 - b _08012E3E - .align 2, 0 -_08012D50: .4byte gBattleBufferB -_08012D54: .4byte gActiveBank -_08012D58: .4byte gBattleCommunication -_08012D5C: - ldr r2, _08012D68 @ =gBattleCommunication - ldr r0, _08012D6C @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D68: .4byte gBattleCommunication -_08012D6C: .4byte gActiveBank -_08012D70: - ldr r2, _08012D88 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 8 - orrs r0, r1 - str r0, [r2] - ldr r2, _08012D8C @ =gBattleCommunication - ldr r0, _08012D90 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012D88: .4byte gHitMarker -_08012D8C: .4byte gBattleCommunication -_08012D90: .4byte gActiveBank -_08012D94: - ldr r2, _08012DA0 @ =gBattleCommunication - ldr r0, _08012DA4 @ =gActiveBank - ldrb r1, [r0] - adds r1, r2 - b _08012E3E - .align 2, 0 -_08012DA0: .4byte gBattleCommunication -_08012DA4: .4byte gActiveBank -_08012DA8: - ldr r3, _08012E10 @ =gBattleExecBuffer - ldr r4, _08012E14 @ =gBitTable - ldr r0, _08012E18 @ =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r4 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - beq _08012DD2 - b _08012F66 -_08012DD2: - ldr r0, _08012E1C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x41 - ands r0, r1 - cmp r0, 0x1 - bne _08012E06 - movs r1, 0x2 - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - bne _08012E06 - adds r0, r5, 0 - eors r0, r1 - bl GetBankByPlayerAI - ldr r1, _08012E20 @ =gSharedMem - ldr r2, _08012E24 @ =0x000160a6 - adds r1, r2 - ldrb r1, [r1] - lsls r0, 24 - lsrs r0, 22 - adds r0, r4 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _08012E28 -_08012E06: - movs r0, 0 - movs r1, 0 - bl EmitLinkStandbyMsg - b _08012E30 - .align 2, 0 -_08012E10: .4byte gBattleExecBuffer -_08012E14: .4byte gBitTable -_08012E18: .4byte gActiveBank -_08012E1C: .4byte gBattleTypeFlags -_08012E20: .4byte gSharedMem -_08012E24: .4byte 0x000160a6 -_08012E28: - movs r0, 0 - movs r1, 0x1 - bl EmitLinkStandbyMsg -_08012E30: - ldr r4, _08012E48 @ =gActiveBank -_08012E32: - ldrb r0, [r4] - bl MarkBufferBankForExecution - ldr r0, _08012E4C @ =gBattleCommunication - ldrb r1, [r4] -_08012E3C: - adds r1, r0 -_08012E3E: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _08012F66 - .align 2, 0 -_08012E48: .4byte gActiveBank -_08012E4C: .4byte gBattleCommunication -_08012E50: - ldr r3, _08012E84 @ =gBattleExecBuffer - ldr r1, _08012E88 @ =gBitTable - ldr r0, _08012E8C @ =gActiveBank - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F66 - ldr r1, _08012E90 @ =gBattleCommunication - ldrb r0, [r1, 0x4] - adds r0, 0x1 - strb r0, [r1, 0x4] - b _08012F66 - .align 2, 0 -_08012E84: .4byte gBattleExecBuffer -_08012E88: .4byte gBitTable -_08012E8C: .4byte gActiveBank -_08012E90: .4byte gBattleCommunication -_08012E94: - ldr r2, _08012EB8 @ =gSharedMem - ldr r5, _08012EBC @ =gActiveBank - ldrb r1, [r5] - ldr r3, _08012EC0 @ =0x00016060 - adds r0, r1, r3 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _08012ECC - ldr r0, _08012EC4 @ =gBattleCommunication - adds r0, r1, r0 - ldr r4, _08012EC8 @ =0x00016094 - adds r1, r4 - adds r1, r2 - ldrb r1, [r1] - strb r1, [r0] - b _08012F66 - .align 2, 0 -_08012EB8: .4byte gSharedMem -_08012EBC: .4byte gActiveBank -_08012EC0: .4byte 0x00016060 -_08012EC4: .4byte gBattleCommunication -_08012EC8: .4byte 0x00016094 -_08012ECC: - ldr r0, _08012F20 @ =gBankAttacker - strb r1, [r0] - ldr r7, _08012F24 @ =gBattlescriptCurrInstr - ldr r6, _08012F28 @ =gUnknown_02024C1C - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r4, [r0] - str r4, [r7] - ldr r3, _08012F2C @ =gBattleExecBuffer - ldr r1, _08012F30 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - lsls r1, r2, 4 - movs r0, 0xF0 - lsls r0, 24 - orrs r1, r0 - orrs r1, r2 - lsls r0, r2, 8 - orrs r1, r0 - lsls r2, 12 - orrs r1, r2 - ldr r0, [r3] - ands r0, r1 - cmp r0, 0 - bne _08012F12 - ldr r0, _08012F34 @ =gBattleScriptingCommandsTable - ldrb r1, [r4] - lsls r1, 2 - adds r1, r0 - ldr r0, [r1] - bl _call_via_r0 -_08012F12: - ldrb r0, [r5] - lsls r0, 2 - adds r0, r6 - ldr r1, [r7] - str r1, [r0] - b _08012F66 - .align 2, 0 -_08012F20: .4byte gBankAttacker -_08012F24: .4byte gBattlescriptCurrInstr -_08012F28: .4byte gUnknown_02024C1C -_08012F2C: .4byte gBattleExecBuffer -_08012F30: .4byte gBitTable -_08012F34: .4byte gBattleScriptingCommandsTable -_08012F38: - ldr r3, _08012FA0 @ =gBattleExecBuffer - ldr r1, _08012FA4 @ =gBitTable - ldr r0, _08012FA8 @ =gActiveBank - ldrb r4, [r0] - lsls r0, r4, 2 - adds r0, r1 - ldr r2, [r0] - lsls r0, r2, 4 - movs r1, 0xF0 - lsls r1, 24 - orrs r0, r1 - orrs r0, r2 - lsls r1, r2, 8 - orrs r0, r1 - lsls r2, 12 - orrs r0, r2 - ldr r3, [r3] - ands r3, r0 - cmp r3, 0 - bne _08012F66 -_08012F60: - ldr r0, _08012FAC @ =gBattleCommunication - adds r0, r4, r0 - strb r3, [r0] -_08012F66: - ldr r0, _08012FA8 @ =gActiveBank - ldrb r1, [r0] - adds r1, 0x1 - strb r1, [r0] - ldr r0, _08012FB0 @ =gNoOfAllBanks - lsls r1, 24 - lsrs r1, 24 -_08012F74: - adds r2, r0, 0 - ldrb r0, [r2] - cmp r1, r0 - bcs _08012F80 - bl _0801234C -_08012F80: - ldr r0, _08012FAC @ =gBattleCommunication - ldrb r0, [r0, 0x4] - ldrb r2, [r2] - cmp r0, r2 - bne _08012F90 - ldr r1, _08012FB4 @ =gBattleMainFunc - ldr r0, _08012FB8 @ =sub_80133C8 - str r0, [r1] -_08012F90: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08012FA0: .4byte gBattleExecBuffer -_08012FA4: .4byte gBitTable -_08012FA8: .4byte gActiveBank -_08012FAC: .4byte gBattleCommunication -_08012FB0: .4byte gNoOfAllBanks -_08012FB4: .4byte gBattleMainFunc -_08012FB8: .4byte sub_80133C8 - thumb_func_end sub_8012324 - - thumb_func_start sub_8012FBC -sub_8012FBC: @ 8012FBC - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r2, _08012FE8 @ =gUnknown_02024A76 - adds r4, r0, r2 - ldrb r5, [r4] - adds r2, r1, r2 - ldrb r3, [r2] - strb r3, [r4] - strb r5, [r2] - ldr r2, _08012FEC @ =gTurnOrder - adds r0, r2 - ldrb r5, [r0] - adds r1, r2 - ldrb r2, [r1] - strb r2, [r0] - strb r5, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08012FE8: .4byte gUnknown_02024A76 -_08012FEC: .4byte gTurnOrder - thumb_func_end sub_8012FBC - - thumb_func_start GetWhoStrikesFirst -GetWhoStrikesFirst: @ 8012FF0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r1, 24 - lsrs r1, 24 - mov r10, r1 - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - str r0, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0xD - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, [sp, 0x8] - str r1, [sp] - movs r0, 0x13 - movs r1, 0 - movs r2, 0x4D - movs r3, 0 - bl AbilityBattleEffects - lsls r0, 24 - cmp r0, 0 - bne _080130B8 - ldr r1, _08013070 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r0, r1 - adds r0, 0x20 - ldrb r3, [r0] - cmp r3, 0x21 - bne _0801305C - ldr r0, _08013074 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801306C -_0801305C: - cmp r3, 0x22 - bne _08013078 - ldr r0, _08013074 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _08013078 -_0801306C: - movs r3, 0x2 - b _0801307A - .align 2, 0 -_08013070: .4byte gBattleMons -_08013074: .4byte gBattleWeather -_08013078: - movs r3, 0x1 -_0801307A: - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - ldr r2, _080130B0 @ =gBattleMons - adds r0, r2 - adds r0, 0x20 - ldrb r2, [r0] - cmp r2, 0x21 - bne _0801309A - ldr r0, _080130B4 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x7 - ands r0, r1 - cmp r0, 0 - bne _080130AA -_0801309A: - cmp r2, 0x22 - bne _080130BA - ldr r0, _080130B4 @ =gBattleWeather - ldrh r1, [r0] - movs r0, 0x60 - ands r0, r1 - cmp r0, 0 - beq _080130BA -_080130AA: - movs r7, 0x2 - b _080130BC - .align 2, 0 -_080130B0: .4byte gBattleMons -_080130B4: .4byte gBattleWeather -_080130B8: - movs r3, 0x1 -_080130BA: - movs r7, 0x1 -_080130BC: - ldr r1, _08013100 @ =gBattleMons - movs r0, 0x58 - mov r2, r9 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - muls r3, r0 - ldr r2, _08013104 @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - mov r8, r0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _0801310C - ldr r1, _08013108 @ =gEnigmaBerries - mov r3, r9 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013120 - .align 2, 0 -_08013100: .4byte gBattleMons -_08013104: .4byte gStatStageRatios -_08013108: .4byte gEnigmaBerries -_0801310C: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013120: - ldr r0, _080131DC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013154 - ldr r0, _080131E0 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013154 - mov r0, r9 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013154 - movs r0, 0x6E - mov r1, r8 - muls r1, r0 - adds r0, r1, 0 - movs r1, 0x64 - bl __udivsi3 - mov r8, r0 -_08013154: - cmp r6, 0x18 - bne _0801315E - mov r2, r8 - lsrs r2, 1 - mov r8, r2 -_0801315E: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r3, r9 - muls r3, r0 - adds r0, r3, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801317C - mov r0, r8 - lsrs r0, 2 - mov r8, r0 -_0801317C: - cmp r6, 0x1A - bne _08013198 - ldr r0, _080131E8 @ =gRandomTurnNumber - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013198 - movs r1, 0x1 - negs r1, r1 - mov r8, r1 -_08013198: - ldr r1, _080131E4 @ =gBattleMons - movs r0, 0x58 - mov r2, r10 - muls r2, r0 - adds r0, r2, 0 - adds r4, r0, r1 - ldrh r0, [r4, 0x6] - adds r3, r0, 0 - muls r3, r7 - ldr r2, _080131EC @ =gStatStageRatios - movs r1, 0x1B - ldrsb r1, [r4, r1] - lsls r1, 1 - adds r0, r1, r2 - ldrb r0, [r0] - muls r0, r3 - adds r2, 0x1 - adds r1, r2 - ldrb r1, [r1] - bl __divsi3 - adds r7, r0, 0 - ldrh r0, [r4, 0x2E] - cmp r0, 0xAF - bne _080131F4 - ldr r1, _080131F0 @ =gEnigmaBerries - mov r3, r10 - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r6, [r0, 0x7] - ldrb r5, [r0, 0x1A] - b _08013208 - .align 2, 0 -_080131DC: .4byte gBattleTypeFlags -_080131E0: .4byte 0x00000809 -_080131E4: .4byte gBattleMons -_080131E8: .4byte gRandomTurnNumber -_080131EC: .4byte gStatStageRatios -_080131F0: .4byte gEnigmaBerries -_080131F4: - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r6, r0, 24 - ldrh r0, [r4, 0x2E] - bl ItemId_GetHoldEffectParam - lsls r0, 24 - lsrs r5, r0, 24 -_08013208: - ldr r0, _08013280 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _08013238 - ldr r0, _08013284 @ =0x00000809 - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _08013238 - mov r0, r10 - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013238 - movs r0, 0x6E - muls r0, r7 - movs r1, 0x64 - bl __udivsi3 - adds r7, r0, 0 -_08013238: - cmp r6, 0x18 - bne _0801323E - lsrs r7, 1 -_0801323E: - ldr r2, _08013288 @ =gBattleMons - movs r0, 0x58 - mov r1, r10 - muls r1, r0 - adds r0, r1, 0 - adds r1, r2, 0 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0801325A - lsrs r7, 2 -_0801325A: - cmp r6, 0x1A - bne _08013274 - ldr r0, _0801328C @ =gRandomTurnNumber - ldrh r4, [r0] - lsls r0, r5, 16 - subs r0, r5 - movs r1, 0x64 - bl __divsi3 - cmp r4, r0 - bge _08013274 - movs r7, 0x1 - negs r7, r7 -_08013274: - ldr r2, [sp, 0x4] - cmp r2, 0 - beq _08013290 - movs r3, 0 - b _08013334 - .align 2, 0 -_08013280: .4byte gBattleTypeFlags -_08013284: .4byte 0x00000809 -_08013288: .4byte gBattleMons -_0801328C: .4byte gRandomTurnNumber -_08013290: - ldr r0, _080132B0 @ =gActionForBanks - mov r3, r9 - adds r1, r3, r0 - ldrb r1, [r1] - adds r2, r0, 0 - cmp r1, 0 - bne _080132E4 - ldr r0, _080132B4 @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _080132B8 - movs r3, 0xA5 - b _080132E6 - .align 2, 0 -_080132B0: .4byte gActionForBanks -_080132B4: .4byte gProtectStructs -_080132B8: - ldr r1, _080132D8 @ =gSharedMem - ldr r0, _080132DC @ =0x0001608c - add r0, r9 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r3, r9 - muls r3, r1 - adds r1, r3, 0 - adds r0, r1 - ldr r1, _080132E0 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r3, [r0] - b _080132E6 - .align 2, 0 -_080132D8: .4byte gSharedMem -_080132DC: .4byte 0x0001608c -_080132E0: .4byte gBattleMons -_080132E4: - movs r3, 0 -_080132E6: - mov r1, r10 - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _08013334 - ldr r0, _08013304 @ =gProtectStructs - lsls r1, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - bge _08013308 - movs r2, 0xA5 - b _08013336 - .align 2, 0 -_08013304: .4byte gProtectStructs -_08013308: - ldr r1, _08013328 @ =gSharedMem - ldr r0, _0801332C @ =0x0001608c - add r0, r10 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 1 - movs r1, 0x58 - mov r2, r10 - muls r2, r1 - adds r1, r2, 0 - adds r0, r1 - ldr r1, _08013330 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldrh r2, [r0] - b _08013336 - .align 2, 0 -_08013328: .4byte gSharedMem -_0801332C: .4byte 0x0001608c -_08013330: .4byte gBattleMons -_08013334: - movs r2, 0 -_08013336: - ldr r4, _08013380 @ =gBattleMoves - lsls r0, r3, 1 - adds r0, r3 - lsls r0, 2 - adds r0, r4 - movs r1, 0x7 - ldrsb r1, [r0, r1] - lsls r3, r2, 1 - cmp r1, 0 - bne _0801335A - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r0, 0 - beq _08013398 -_0801335A: - adds r0, r3, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x7] - lsls r0, 24 - asrs r0, 24 - cmp r1, r0 - bne _0801338E - cmp r8, r7 - bne _08013384 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08013384 - movs r3, 0x2 - b _080133B4 - .align 2, 0 -_08013380: .4byte gBattleMoves -_08013384: - cmp r8, r7 - bcs _080133B6 - movs r0, 0x1 - str r0, [sp, 0x8] - b _080133B6 -_0801338E: - cmp r1, r0 - bge _080133B6 - movs r1, 0x1 - str r1, [sp, 0x8] - b _080133B6 -_08013398: - cmp r8, r7 - bne _080133AE - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _080133AE - movs r2, 0x2 - str r2, [sp, 0x8] - b _080133B6 -_080133AE: - cmp r8, r7 - bcs _080133B6 - movs r3, 0x1 -_080133B4: - str r3, [sp, 0x8] -_080133B6: - ldr r0, [sp, 0x8] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end GetWhoStrikesFirst - thumb_func_start sub_80133C8 sub_80133C8: @ 80133C8 push {r4-r7,lr} diff --git a/include/pokemon.h b/include/pokemon.h index a1c30f1f3..b6c6e0030 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -405,7 +405,7 @@ struct BattleMove u8 pp; u8 secondaryEffectChance; u8 target; - u8 priority; + s8 priority; u8 flags; u8 pad[3]; }; diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index b0654950b..90d0d40e3 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -4,6 +4,7 @@ #include "battle_interface.h" #include "battle_setup.h" #include "data2.h" +#include "event_data.h" #include "item.h" #include "link.h" #include "main.h" @@ -26,9 +27,10 @@ #include "trig.h" #include "unknown_task.h" #include "util.h" +#include "constants/battle_move_effects.h" #include "constants/items.h" #include "constants/hold_effects.h" -#include "constants/battle_move_effects.h" +#include "constants/moves.h" #include "ewram.h" struct UnknownStruct7 @@ -56,6 +58,8 @@ struct UnknownStruct12 extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; +extern u8 gStatStageRatios[][2]; +extern u8 gUnknown_02024A76[4]; extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBank; @@ -2352,3 +2356,1642 @@ void sub_8012324(void) } } */ +__attribute__((naked)) +void sub_8012324(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + sub sp, 0x1C\n\ + ldr r0, _08012340 @ =gBattleCommunication\n\ + movs r1, 0\n\ + strb r1, [r0, 0x4]\n\ + ldr r0, _08012344 @ =gActiveBank\n\ + strb r1, [r0]\n\ + ldr r0, _08012348 @ =gNoOfAllBanks\n\ + bl _08012F74\n\ + .align 2, 0\n\ +_08012340: .4byte gBattleCommunication\n\ +_08012344: .4byte gActiveBank\n\ +_08012348: .4byte gNoOfAllBanks\n\ +_0801234C:\n\ + ldr r4, _08012374 @ =gActiveBank\n\ + ldrb r0, [r4]\n\ + bl GetBankIdentity\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + ldr r1, _08012378 @ =gBattleCommunication\n\ + ldrb r0, [r4]\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x6\n\ + bls _08012368\n\ + bl _08012F66\n\ +_08012368:\n\ + lsls r0, 2\n\ + ldr r1, _0801237C @ =_08012380\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08012374: .4byte gActiveBank\n\ +_08012378: .4byte gBattleCommunication\n\ +_0801237C: .4byte _08012380\n\ + .align 2, 0\n\ +_08012380:\n\ + .4byte _0801239C\n\ + .4byte _080124C8\n\ + .4byte _08012A28\n\ + .4byte _08012DA8\n\ + .4byte _08012E50\n\ + .4byte _08012E94\n\ + .4byte _08012F38\n\ +_0801239C:\n\ + ldr r4, _08012434 @ =gSharedMem\n\ + ldr r0, _08012438 @ =gActiveBank\n\ + ldrb r0, [r0]\n\ + ldr r1, _0801243C @ =0x00016068\n\ + adds r0, r1\n\ + adds r0, r4\n\ + movs r1, 0x6\n\ + strb r1, [r0]\n\ + ldr r0, _08012440 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080123F8\n\ + movs r1, 0x2\n\ + movs r0, 0x2\n\ + ands r0, r5\n\ + cmp r0, 0\n\ + beq _080123F8\n\ + eors r5, r1\n\ + adds r0, r5, 0\n\ + bl GetBankByPlayerAI\n\ + ldr r2, _08012444 @ =0x000160a6\n\ + adds r1, r4, r2\n\ + ldrb r1, [r1]\n\ + ldr r2, _08012448 @ =gBitTable\n\ + lsls r0, 24\n\ + lsrs r0, 22\n\ + adds r0, r2\n\ + ldr r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + bne _080123F8\n\ + ldr r4, _0801244C @ =gBattleCommunication\n\ + adds r0, r5, 0\n\ + bl GetBankByPlayerAI\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r0, r4\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x4\n\ + beq _080123F8\n\ + bl _08012F66\n\ +_080123F8:\n\ + ldr r0, _08012434 @ =gSharedMem\n\ + ldr r3, _08012444 @ =0x000160a6\n\ + adds r0, r3\n\ + ldrb r3, [r0]\n\ + ldr r1, _08012448 @ =gBitTable\n\ + ldr r4, _08012438 @ =gActiveBank\n\ + ldrb r2, [r4]\n\ + lsls r0, r2, 2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + ands r3, r0\n\ + cmp r3, 0\n\ + beq _08012468\n\ + ldr r0, _08012450 @ =gActionForBanks\n\ + adds r0, r2, r0\n\ + movs r1, 0xD\n\ + strb r1, [r0]\n\ + ldr r0, _08012440 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08012454\n\ + ldr r0, _0801244C @ =gBattleCommunication\n\ + ldrb r1, [r4]\n\ + adds r1, r0\n\ + movs r0, 0x4\n\ + strb r0, [r1]\n\ + bl _08012F66\n\ + .align 2, 0\n\ +_08012434: .4byte gSharedMem\n\ +_08012438: .4byte gActiveBank\n\ +_0801243C: .4byte 0x00016068\n\ +_08012440: .4byte gBattleTypeFlags\n\ +_08012444: .4byte 0x000160a6\n\ +_08012448: .4byte gBitTable\n\ +_0801244C: .4byte gBattleCommunication\n\ +_08012450: .4byte gActionForBanks\n\ +_08012454:\n\ + ldr r0, _08012464 @ =gBattleCommunication\n\ + ldrb r1, [r4]\n\ + adds r1, r0\n\ + movs r0, 0x3\n\ + strb r0, [r1]\n\ + bl _08012F66\n\ + .align 2, 0\n\ +_08012464: .4byte gBattleCommunication\n\ +_08012468:\n\ + ldr r1, _0801249C @ =gBattleMons\n\ + movs r0, 0x58\n\ + muls r0, r2\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r1, [r0]\n\ + movs r0, 0x80\n\ + lsls r0, 5\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08012488\n\ + movs r0, 0x80\n\ + lsls r0, 15\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _080124A8\n\ +_08012488:\n\ + ldr r0, _080124A0 @ =gActionForBanks\n\ + adds r0, r2, r0\n\ + strb r3, [r0]\n\ + ldr r1, _080124A4 @ =gBattleCommunication\n\ + ldrb r0, [r4]\n\ + adds r0, r1\n\ + movs r1, 0x3\n\ + strb r1, [r0]\n\ + bl _08012F66\n\ + .align 2, 0\n\ +_0801249C: .4byte gBattleMons\n\ +_080124A0: .4byte gActionForBanks\n\ +_080124A4: .4byte gBattleCommunication\n\ +_080124A8:\n\ + ldr r0, _080124C0 @ =gActionForBanks\n\ + ldrb r1, [r0]\n\ + ldr r0, _080124C4 @ =gBattleBufferB\n\ + ldrb r2, [r0, 0x1]\n\ + ldrb r0, [r0, 0x2]\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + movs r0, 0\n\ + bl Emitcmd18\n\ + bl _08012E32\n\ + .align 2, 0\n\ +_080124C0: .4byte gActionForBanks\n\ +_080124C4: .4byte gBattleBufferB\n\ +_080124C8:\n\ + ldr r4, _08012520 @ =gBattleExecBuffer\n\ + ldr r1, _08012524 @ =gBitTable\n\ + ldr r3, _08012528 @ =gActiveBank\n\ + ldrb r5, [r3]\n\ + lsls r0, r5, 2\n\ + adds r0, r1\n\ + ldr r2, [r0]\n\ + lsls r0, r2, 4\n\ + movs r1, 0xF0\n\ + lsls r1, 24\n\ + orrs r0, r1\n\ + orrs r0, r2\n\ + lsls r1, r2, 8\n\ + orrs r0, r1\n\ + lsls r2, 12\n\ + orrs r0, r2\n\ + ldr r1, [r4]\n\ + ands r1, r0\n\ + mov r8, r3\n\ + cmp r1, 0\n\ + beq _080124F6\n\ + bl _08012F66\n\ +_080124F6:\n\ + ldr r2, _0801252C @ =gActionForBanks\n\ + adds r2, r5, r2\n\ + ldr r1, _08012530 @ =gBattleBufferB\n\ + lsls r0, r5, 9\n\ + adds r1, 0x1\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r2]\n\ + ldrb r0, [r3]\n\ + lsls r0, 9\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + cmp r0, 0xC\n\ + bls _08012514\n\ + b _08012968\n\ +_08012514:\n\ + lsls r0, 2\n\ + ldr r1, _08012534 @ =_08012538\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08012520: .4byte gBattleExecBuffer\n\ +_08012524: .4byte gBitTable\n\ +_08012528: .4byte gActiveBank\n\ +_0801252C: .4byte gActionForBanks\n\ +_08012530: .4byte gBattleBufferB\n\ +_08012534: .4byte _08012538\n\ + .align 2, 0\n\ +_08012538:\n\ + .4byte _0801256C\n\ + .4byte _080126B4\n\ + .4byte _080126E0\n\ + .4byte _08012968\n\ + .4byte _08012968\n\ + .4byte _080128B0\n\ + .4byte _08012908\n\ + .4byte _08012968\n\ + .4byte _08012968\n\ + .4byte _08012968\n\ + .4byte _08012968\n\ + .4byte _08012968\n\ + .4byte _0801292C\n\ +_0801256C:\n\ + bl AreAllMovesUnusable\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _080125D0\n\ + ldr r0, _080125B4 @ =gBattleCommunication\n\ + ldr r2, _080125B8 @ =gActiveBank\n\ + ldrb r1, [r2]\n\ + adds r1, r0\n\ + movs r4, 0\n\ + movs r0, 0x5\n\ + strb r0, [r1]\n\ + ldr r3, _080125BC @ =gSharedMem\n\ + ldrb r0, [r2]\n\ + ldr r1, _080125C0 @ =0x00016060\n\ + adds r0, r1\n\ + adds r0, r3\n\ + strb r4, [r0]\n\ + ldrb r0, [r2]\n\ + ldr r4, _080125C4 @ =0x00016094\n\ + adds r0, r4\n\ + adds r0, r3\n\ + movs r1, 0x3\n\ + strb r1, [r0]\n\ + ldrb r1, [r2]\n\ + ldr r0, _080125C8 @ =0x00016010\n\ + adds r2, r1, r0\n\ + adds r2, r3\n\ + ldr r0, _080125CC @ =gBattleBufferB\n\ + lsls r1, 9\n\ + adds r0, 0x3\n\ + adds r1, r0\n\ + ldrb r0, [r1]\n\ + strb r0, [r2]\n\ + bl _08012F90\n\ + .align 2, 0\n\ +_080125B4: .4byte gBattleCommunication\n\ +_080125B8: .4byte gActiveBank\n\ +_080125BC: .4byte gSharedMem\n\ +_080125C0: .4byte 0x00016060\n\ +_080125C4: .4byte 0x00016094\n\ +_080125C8: .4byte 0x00016010\n\ +_080125CC: .4byte gBattleBufferB\n\ +_080125D0:\n\ + ldr r1, _080125FC @ =gDisableStructs\n\ + ldr r5, _08012600 @ =gActiveBank\n\ + ldrb r4, [r5]\n\ + lsls r0, r4, 3\n\ + subs r0, r4\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldrh r2, [r0, 0x6]\n\ + cmp r2, 0\n\ + beq _0801260C\n\ + ldr r1, _08012604 @ =gChosenMovesByBanks\n\ + lsls r0, r4, 1\n\ + adds r0, r1\n\ + strh r2, [r0]\n\ + ldr r1, _08012608 @ =gBattleCommunication\n\ + ldrb r0, [r5]\n\ + adds r0, r1\n\ + movs r1, 0x3\n\ + strb r1, [r0]\n\ + bl _08012F90\n\ + .align 2, 0\n\ +_080125FC: .4byte gDisableStructs\n\ +_08012600: .4byte gActiveBank\n\ +_08012604: .4byte gChosenMovesByBanks\n\ +_08012608: .4byte gBattleCommunication\n\ +_0801260C:\n\ + add r2, sp, 0x4\n\ + ldr r3, _080126AC @ =gBattleMons\n\ + movs r1, 0x58\n\ + adds r0, r4, 0\n\ + muls r0, r1\n\ + adds r0, r3\n\ + ldrh r0, [r0]\n\ + strh r0, [r2, 0x10]\n\ + ldrb r0, [r5]\n\ + muls r0, r1\n\ + adds r0, r3\n\ + adds r0, 0x21\n\ + ldrb r0, [r0]\n\ + strb r0, [r2, 0x12]\n\ + ldrb r0, [r5]\n\ + muls r0, r1\n\ + adds r0, r3\n\ + adds r0, 0x22\n\ + ldrb r0, [r0]\n\ + strb r0, [r2, 0x13]\n\ + movs r4, 0\n\ + mov r1, sp\n\ + adds r1, 0xC\n\ + str r1, [sp, 0x18]\n\ + add r2, sp, 0x10\n\ + mov r10, r2\n\ + mov r8, r3\n\ + adds r7, r5, 0\n\ + movs r6, 0x58\n\ + movs r3, 0xC\n\ + add r3, r8\n\ + mov r9, r3\n\ + add r5, sp, 0x4\n\ +_0801264E:\n\ + lsls r2, r4, 1\n\ + ldrb r0, [r7]\n\ + muls r0, r6\n\ + adds r0, r2, r0\n\ + add r0, r9\n\ + ldrh r0, [r0]\n\ + strh r0, [r5]\n\ + ldr r0, [sp, 0x18]\n\ + adds r3, r0, r4\n\ + ldrb r0, [r7]\n\ + muls r0, r6\n\ + adds r0, r4, r0\n\ + mov r1, r8\n\ + adds r1, 0x24\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r3]\n\ + ldrb r0, [r7]\n\ + adds r1, r0, 0\n\ + muls r1, r6\n\ + adds r2, r1\n\ + add r2, r9\n\ + ldrh r0, [r2]\n\ + add r1, r8\n\ + adds r1, 0x3B\n\ + ldrb r1, [r1]\n\ + lsls r2, r4, 24\n\ + lsrs r2, 24\n\ + bl CalculatePPWithBonus\n\ + mov r2, r10\n\ + adds r1, r2, r4\n\ + strb r0, [r1]\n\ + adds r5, 0x2\n\ + adds r4, 0x1\n\ + cmp r4, 0x3\n\ + ble _0801264E\n\ + ldr r0, _080126B0 @ =gBattleTypeFlags\n\ + ldrb r0, [r0]\n\ + movs r1, 0x1\n\ + ands r1, r0\n\ + movs r0, 0\n\ + movs r2, 0\n\ + add r3, sp, 0x4\n\ + bl Emitcmd20\n\ + b _0801289E\n\ + .align 2, 0\n\ +_080126AC: .4byte gBattleMons\n\ +_080126B0: .4byte gBattleTypeFlags\n\ +_080126B4:\n\ + ldr r0, _080126D0 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + ldr r0, _080126D4 @ =0x00000902\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _080126C2\n\ + b _08012908\n\ +_080126C2:\n\ + ldr r1, _080126D8 @ =gUnknown_02024C1C\n\ + mov r3, r8\n\ + ldrb r0, [r3]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r1, _080126DC @ =BattleScript_ActionSelectionItemsCantBeUsed\n\ + b _080129CC\n\ + .align 2, 0\n\ +_080126D0: .4byte gBattleTypeFlags\n\ +_080126D4: .4byte 0x00000902\n\ +_080126D8: .4byte gUnknown_02024C1C\n\ +_080126DC: .4byte BattleScript_ActionSelectionItemsCantBeUsed\n\ +_080126E0:\n\ + ldr r3, _08012738 @ =gSharedMem\n\ + ldr r5, _0801273C @ =gActiveBank\n\ + ldrb r0, [r5]\n\ + ldr r4, _08012740 @ =0x00016064\n\ + adds r1, r0, r4\n\ + adds r1, r3\n\ + ldr r2, _08012744 @ =gBattlePartyID\n\ + lsls r0, 1\n\ + adds r0, r2\n\ + ldrh r0, [r0]\n\ + strb r0, [r1]\n\ + ldr r7, _08012748 @ =gBattleMons\n\ + ldrb r2, [r5]\n\ + movs r6, 0x58\n\ + adds r0, r2, 0\n\ + muls r0, r6\n\ + adds r1, r7, 0\n\ + adds r1, 0x50\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + ldr r1, _0801274C @ =0x0400e000\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08012722\n\ + ldr r0, _08012750 @ =gStatuses3\n\ + lsls r1, r2, 2\n\ + adds r1, r0\n\ + ldr r1, [r1]\n\ + movs r0, 0x80\n\ + lsls r0, 3\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _08012758\n\ +_08012722:\n\ + lsls r0, r2, 1\n\ + adds r0, r2\n\ + ldr r2, _08012754 @ =0x0001606c\n\ + adds r1, r3, r2\n\ + adds r0, r1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + movs r1, 0x2\n\ + movs r2, 0x6\n\ + b _0801286C\n\ + .align 2, 0\n\ +_08012738: .4byte gSharedMem\n\ +_0801273C: .4byte gActiveBank\n\ +_08012740: .4byte 0x00016064\n\ +_08012744: .4byte gBattlePartyID\n\ +_08012748: .4byte gBattleMons\n\ +_0801274C: .4byte 0x0400e000\n\ +_08012750: .4byte gStatuses3\n\ +_08012754: .4byte 0x0001606c\n\ +_08012758:\n\ + str r1, [sp]\n\ + movs r0, 0xC\n\ + adds r1, r2, 0\n\ + movs r2, 0x17\n\ + movs r3, 0\n\ + bl AbilityBattleEffects\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + bne _080127E0\n\ + ldrb r1, [r5]\n\ + str r4, [sp]\n\ + movs r0, 0xC\n\ + movs r2, 0x47\n\ + movs r3, 0\n\ + bl AbilityBattleEffects\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + beq _080127A8\n\ + ldrb r0, [r5]\n\ + muls r0, r6\n\ + adds r1, r0, r7\n\ + adds r0, r1, 0\n\ + adds r0, 0x21\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + beq _080127A8\n\ + adds r0, r1, 0\n\ + adds r0, 0x22\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + beq _080127A8\n\ + adds r0, r1, 0\n\ + adds r0, 0x20\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x1A\n\ + bne _080127E0\n\ +_080127A8:\n\ + ldr r5, _08012808 @ =gActiveBank\n\ + ldrb r1, [r5]\n\ + movs r0, 0\n\ + str r0, [sp]\n\ + movs r0, 0xF\n\ + movs r2, 0x2A\n\ + movs r3, 0\n\ + bl AbilityBattleEffects\n\ + lsls r0, 24\n\ + lsrs r4, r0, 24\n\ + cmp r4, 0\n\ + beq _08012818\n\ + ldr r2, _0801280C @ =gBattleMons\n\ + ldrb r1, [r5]\n\ + movs r0, 0x58\n\ + muls r0, r1\n\ + adds r1, r0, r2\n\ + adds r0, r1, 0\n\ + adds r0, 0x21\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x8\n\ + beq _080127E0\n\ + adds r0, r1, 0\n\ + adds r0, 0x22\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x8\n\ + bne _08012818\n\ +_080127E0:\n\ + subs r1, r4, 0x1\n\ + lsls r1, 4\n\ + movs r0, 0x4\n\ + orrs r1, r0\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ + ldr r0, _08012810 @ =gLastUsedAbility\n\ + ldrb r3, [r0]\n\ + ldr r0, _08012808 @ =gActiveBank\n\ + ldrb r2, [r0]\n\ + lsls r0, r2, 1\n\ + adds r0, r2\n\ + ldr r2, _08012814 @ =gSharedMem + 0x1606C\n\ + adds r0, r2\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + movs r2, 0x6\n\ + bl EmitChoosePokemon\n\ + b _0801289E\n\ + .align 2, 0\n\ +_08012808: .4byte gActiveBank\n\ +_0801280C: .4byte gBattleMons\n\ +_08012810: .4byte gLastUsedAbility\n\ +_08012814: .4byte gSharedMem + 0x1606C\n\ +_08012818:\n\ + ldr r0, _08012830 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + mov r8, r0\n\ + cmp r1, 0x2\n\ + bne _08012840\n\ + ldr r0, _08012834 @ =gActionForBanks\n\ + ldrb r0, [r0]\n\ + cmp r0, 0x2\n\ + bne _08012840\n\ + ldr r3, _08012838 @ =gSharedMem\n\ + ldr r4, _0801283C @ =0x00016068\n\ + b _08012854\n\ + .align 2, 0\n\ +_08012830: .4byte gActiveBank\n\ +_08012834: .4byte gActionForBanks\n\ +_08012838: .4byte gSharedMem\n\ +_0801283C: .4byte 0x00016068\n\ +_08012840:\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + cmp r0, 0x3\n\ + bne _08012884\n\ + ldr r0, _08012874 @ =gActionForBanks\n\ + ldrb r0, [r0, 0x1]\n\ + cmp r0, 0x2\n\ + bne _08012884\n\ + ldr r3, _08012878 @ =gSharedMem\n\ + ldr r4, _0801287C @ =0x00016069\n\ +_08012854:\n\ + adds r0, r3, r4\n\ + ldrb r2, [r0]\n\ + mov r0, r8\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + ldr r1, _08012880 @ =0x0001606c\n\ + adds r3, r1\n\ + adds r0, r3\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + movs r1, 0\n\ +_0801286C:\n\ + movs r3, 0\n\ + bl EmitChoosePokemon\n\ + b _0801289E\n\ + .align 2, 0\n\ +_08012874: .4byte gActionForBanks\n\ +_08012878: .4byte gSharedMem\n\ +_0801287C: .4byte 0x00016069\n\ +_08012880: .4byte 0x0001606c\n\ +_08012884:\n\ + ldr r0, _080128A8 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + lsls r0, r1, 1\n\ + adds r0, r1\n\ + ldr r1, _080128AC @ =gSharedMem + 0x1606C\n\ + adds r0, r1\n\ + str r0, [sp]\n\ + movs r0, 0\n\ + movs r1, 0\n\ + movs r2, 0x6\n\ + movs r3, 0\n\ + bl EmitChoosePokemon\n\ +_0801289E:\n\ + ldr r0, _080128A8 @ =gActiveBank\n\ + ldrb r0, [r0]\n\ + bl MarkBufferBankForExecution\n\ + b _08012968\n\ + .align 2, 0\n\ +_080128A8: .4byte gActiveBank\n\ +_080128AC: .4byte gSharedMem + 0x1606C\n\ +_080128B0:\n\ + bl PlayerPartyAndPokemonStorageFull\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08012968\n\ + ldr r1, _080128EC @ =gUnknown_02024C1C\n\ + ldr r2, _080128F0 @ =gActiveBank\n\ + ldrb r0, [r2]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r1, _080128F4 @ =BattleScript_PrintFullBox\n\ + str r1, [r0]\n\ + ldr r0, _080128F8 @ =gBattleCommunication\n\ + ldrb r1, [r2]\n\ + adds r1, r0\n\ + movs r3, 0\n\ + movs r0, 0x5\n\ + strb r0, [r1]\n\ + ldr r1, _080128FC @ =gSharedMem\n\ + ldrb r0, [r2]\n\ + ldr r4, _08012900 @ =0x00016060\n\ + adds r0, r4\n\ + adds r0, r1\n\ + strb r3, [r0]\n\ + ldrb r0, [r2]\n\ + ldr r2, _08012904 @ =0x00016094\n\ + adds r0, r2\n\ + adds r0, r1\n\ + strb r3, [r0]\n\ + b _08012F90\n\ + .align 2, 0\n\ +_080128EC: .4byte gUnknown_02024C1C\n\ +_080128F0: .4byte gActiveBank\n\ +_080128F4: .4byte BattleScript_PrintFullBox\n\ +_080128F8: .4byte gBattleCommunication\n\ +_080128FC: .4byte gSharedMem\n\ +_08012900: .4byte 0x00016060\n\ +_08012904: .4byte 0x00016094\n\ +_08012908:\n\ + ldr r4, _08012924 @ =gActiveBank\n\ + ldrb r0, [r4]\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + ldr r0, _08012928 @ =gSharedMem + 0x1606C\n\ + adds r1, r0\n\ + movs r0, 0\n\ + bl EmitOpenBag\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + b _08012968\n\ + .align 2, 0\n\ +_08012924: .4byte gActiveBank\n\ +_08012928: .4byte gSharedMem + 0x1606C\n\ +_0801292C:\n\ + ldr r4, _08012964 @ =gBattleCommunication\n\ + mov r3, r8\n\ + ldrb r1, [r3]\n\ + adds r1, r4\n\ + movs r5, 0\n\ + movs r0, 0x6\n\ + strb r0, [r1]\n\ + ldrb r0, [r3]\n\ + bl GetBankIdentity\n\ + movs r1, 0x2\n\ + eors r0, r1\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + bl GetBankByPlayerAI\n\ + lsls r0, 24\n\ + lsrs r0, 24\n\ + adds r0, r4\n\ + strb r5, [r0]\n\ + movs r0, 0\n\ + bl Emitcmd50\n\ + mov r4, r8\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + b _08012F90\n\ + .align 2, 0\n\ +_08012964: .4byte gBattleCommunication\n\ +_08012968:\n\ + ldr r0, _08012994 @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0xA\n\ + ands r0, r1\n\ + cmp r0, 0x8\n\ + bne _080129A8\n\ + ldr r0, _08012998 @ =gBattleBufferB\n\ + ldr r4, _0801299C @ =gActiveBank\n\ + ldrb r1, [r4]\n\ + lsls r1, 9\n\ + adds r0, 0x1\n\ + adds r1, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x3\n\ + bne _080129A8\n\ + ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer\n\ + bl b_call_bc_move_exec\n\ + ldr r1, _080129A4 @ =gBattleCommunication\n\ + ldrb r0, [r4]\n\ + adds r0, r1\n\ + b _08012BFE\n\ + .align 2, 0\n\ +_08012994: .4byte gBattleTypeFlags\n\ +_08012998: .4byte gBattleBufferB\n\ +_0801299C: .4byte gActiveBank\n\ +_080129A0: .4byte BattleScript_PrintCantRunFromTrainer\n\ +_080129A4: .4byte gBattleCommunication\n\ +_080129A8:\n\ + bl CanRunFromBattle\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08012A14\n\ + ldr r0, _080129F4 @ =gBattleBufferB\n\ + ldr r3, _080129F8 @ =gActiveBank\n\ + ldrb r2, [r3]\n\ + lsls r1, r2, 9\n\ + adds r0, 0x1\n\ + adds r1, r0\n\ + ldrb r0, [r1]\n\ + cmp r0, 0x3\n\ + bne _08012A14\n\ + ldr r1, _080129FC @ =gUnknown_02024C1C\n\ + lsls r0, r2, 2\n\ + adds r0, r1\n\ + ldr r1, _08012A00 @ =BattleScript_PrintCantEscapeFromBattle\n\ +_080129CC:\n\ + str r1, [r0]\n\ + ldr r0, _08012A04 @ =gBattleCommunication\n\ + ldrb r1, [r3]\n\ + adds r1, r0\n\ + movs r2, 0\n\ + movs r0, 0x5\n\ + strb r0, [r1]\n\ + ldr r1, _08012A08 @ =gSharedMem\n\ + ldrb r0, [r3]\n\ + ldr r4, _08012A0C @ =0x00016060\n\ + adds r0, r4\n\ + adds r0, r1\n\ + strb r2, [r0]\n\ + ldrb r0, [r3]\n\ + ldr r3, _08012A10 @ =0x00016094\n\ + adds r0, r3\n\ + adds r0, r1\n\ + strb r2, [r0]\n\ + b _08012F90\n\ + .align 2, 0\n\ +_080129F4: .4byte gBattleBufferB\n\ +_080129F8: .4byte gActiveBank\n\ +_080129FC: .4byte gUnknown_02024C1C\n\ +_08012A00: .4byte BattleScript_PrintCantEscapeFromBattle\n\ +_08012A04: .4byte gBattleCommunication\n\ +_08012A08: .4byte gSharedMem\n\ +_08012A0C: .4byte 0x00016060\n\ +_08012A10: .4byte 0x00016094\n\ +_08012A14:\n\ + ldr r2, _08012A20 @ =gBattleCommunication\n\ + ldr r0, _08012A24 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012A20: .4byte gBattleCommunication\n\ +_08012A24: .4byte gActiveBank\n\ +_08012A28:\n\ + ldr r4, _08012A6C @ =gBattleExecBuffer\n\ + ldr r1, _08012A70 @ =gBitTable\n\ + ldr r3, _08012A74 @ =gActiveBank\n\ + ldrb r5, [r3]\n\ + lsls r0, r5, 2\n\ + adds r0, r1\n\ + ldr r2, [r0]\n\ + lsls r0, r2, 4\n\ + movs r1, 0xF0\n\ + lsls r1, 24\n\ + orrs r0, r1\n\ + orrs r0, r2\n\ + lsls r1, r2, 8\n\ + orrs r0, r1\n\ + lsls r2, 12\n\ + orrs r0, r2\n\ + ldr r1, [r4]\n\ + ands r1, r0\n\ + mov r8, r3\n\ + cmp r1, 0\n\ + beq _08012A54\n\ + b _08012F66\n\ +_08012A54:\n\ + ldr r1, _08012A78 @ =gActionForBanks\n\ + adds r0, r5, r1\n\ + ldrb r0, [r0]\n\ + adds r3, r1, 0\n\ + cmp r0, 0x9\n\ + bls _08012A62\n\ + b _08012F66\n\ +_08012A62:\n\ + lsls r0, 2\n\ + ldr r1, _08012A7C @ =_08012A80\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_08012A6C: .4byte gBattleExecBuffer\n\ +_08012A70: .4byte gBitTable\n\ +_08012A74: .4byte gActiveBank\n\ +_08012A78: .4byte gActionForBanks\n\ +_08012A7C: .4byte _08012A80\n\ + .align 2, 0\n\ +_08012A80:\n\ + .4byte _08012AA8\n\ + .4byte _08012BB0\n\ + .4byte _08012BE8\n\ + .4byte _08012CE0\n\ + .4byte _08012D04\n\ + .4byte _08012D18\n\ + .4byte _08012D2C\n\ + .4byte _08012D5C\n\ + .4byte _08012D70\n\ + .4byte _08012D94\n\ +_08012AA8:\n\ + ldr r0, _08012AC8 @ =gBattleBufferB\n\ + mov r1, r8\n\ + ldrb r4, [r1]\n\ + lsls r1, r4, 9\n\ + adds r2, r0, 0x1\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + adds r6, r0, 0\n\ + cmp r1, 0x9\n\ + bgt _08012ACC\n\ + cmp r1, 0x3\n\ + blt _08012ACC\n\ + adds r0, r4, r3\n\ + strb r1, [r0]\n\ + b _08012F90\n\ + .align 2, 0\n\ +_08012AC8: .4byte gBattleBufferB\n\ +_08012ACC:\n\ + adds r3, r6, 0\n\ + mov r5, r8\n\ + ldrb r4, [r5]\n\ + lsls r1, r4, 9\n\ + adds r7, r3, 0x2\n\ + adds r0, r1, r7\n\ + ldrb r2, [r0]\n\ + adds r3, 0x3\n\ + mov r9, r3\n\ + add r1, r9\n\ + ldrb r0, [r1]\n\ + lsls r0, 8\n\ + orrs r2, r0\n\ + ldr r0, _08012AF4 @ =0x0000ffff\n\ + cmp r2, r0\n\ + bne _08012AFC\n\ + ldr r0, _08012AF8 @ =gBattleCommunication\n\ + adds r0, r4, r0\n\ + b _08012BFE\n\ + .align 2, 0\n\ +_08012AF4: .4byte 0x0000ffff\n\ +_08012AF8: .4byte gBattleCommunication\n\ +_08012AFC:\n\ + bl sub_8015894\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + beq _08012B48\n\ + ldr r0, _08012B38 @ =gBattleCommunication\n\ + ldrb r1, [r5]\n\ + adds r1, r0\n\ + movs r2, 0\n\ + movs r0, 0x5\n\ + strb r0, [r1]\n\ + ldr r3, _08012B3C @ =gSharedMem\n\ + ldrb r0, [r5]\n\ + ldr r4, _08012B40 @ =0x00016060\n\ + adds r0, r4\n\ + adds r0, r3\n\ + strb r2, [r0]\n\ + ldrb r0, [r5]\n\ + lsls r0, 9\n\ + adds r1, r6, 0x1\n\ + adds r0, r1\n\ + strb r2, [r0]\n\ + ldrb r0, [r5]\n\ + ldr r1, _08012B44 @ =0x00016094\n\ + adds r0, r1\n\ + adds r0, r3\n\ + movs r1, 0x1\n\ + strb r1, [r0]\n\ + b _08012F90\n\ + .align 2, 0\n\ +_08012B38: .4byte gBattleCommunication\n\ +_08012B3C: .4byte gSharedMem\n\ +_08012B40: .4byte 0x00016060\n\ +_08012B44: .4byte 0x00016094\n\ +_08012B48:\n\ + ldr r6, _08012B98 @ =gSharedMem\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + ldr r2, _08012B9C @ =0x0001608c\n\ + adds r1, r0, r2\n\ + adds r1, r6\n\ + lsls r0, 9\n\ + adds r0, r7\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + ldr r0, _08012BA0 @ =gChosenMovesByBanks\n\ + mov r4, r8\n\ + ldrb r3, [r4]\n\ + lsls r5, r3, 1\n\ + adds r5, r0\n\ + ldr r4, _08012BA4 @ =gBattleMons\n\ + adds r2, r3, r2\n\ + adds r2, r6\n\ + ldrb r0, [r2]\n\ + lsls r0, 1\n\ + movs r1, 0x58\n\ + muls r1, r3\n\ + adds r0, r1\n\ + adds r4, 0xC\n\ + adds r0, r4\n\ + ldrh r0, [r0]\n\ + strh r0, [r5]\n\ + mov r1, r8\n\ + ldrb r0, [r1]\n\ + ldr r2, _08012BA8 @ =0x00016010\n\ + adds r1, r0, r2\n\ + adds r1, r6\n\ + lsls r0, 9\n\ + add r0, r9\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + ldr r0, _08012BAC @ =gBattleCommunication\n\ + mov r3, r8\n\ + ldrb r1, [r3]\n\ + b _08012E3C\n\ + .align 2, 0\n\ +_08012B98: .4byte gSharedMem\n\ +_08012B9C: .4byte 0x0001608c\n\ +_08012BA0: .4byte gChosenMovesByBanks\n\ +_08012BA4: .4byte gBattleMons\n\ +_08012BA8: .4byte 0x00016010\n\ +_08012BAC: .4byte gBattleCommunication\n\ +_08012BB0:\n\ + ldr r2, _08012BD8 @ =gBattleBufferB\n\ + ldr r5, _08012BDC @ =gActiveBank\n\ + ldrb r4, [r5]\n\ + lsls r1, r4, 9\n\ + adds r0, r2, 0x1\n\ + adds r0, r1, r0\n\ + ldrb r3, [r0]\n\ + adds r2, 0x2\n\ + adds r1, r2\n\ + ldrb r0, [r1]\n\ + lsls r0, 8\n\ + orrs r3, r0\n\ + cmp r3, 0\n\ + bne _08012BCE\n\ + b _08012F60\n\ +_08012BCE:\n\ + ldr r0, _08012BE0 @ =gLastUsedItem\n\ + strh r3, [r0]\n\ + ldr r0, _08012BE4 @ =gBattleCommunication\n\ + ldrb r1, [r5]\n\ + b _08012E3C\n\ + .align 2, 0\n\ +_08012BD8: .4byte gBattleBufferB\n\ +_08012BDC: .4byte gActiveBank\n\ +_08012BE0: .4byte gLastUsedItem\n\ +_08012BE4: .4byte gBattleCommunication\n\ +_08012BE8:\n\ + ldr r4, _08012C04 @ =gBattleBufferB\n\ + ldr r7, _08012C08 @ =gActiveBank\n\ + ldrb r2, [r7]\n\ + lsls r0, r2, 9\n\ + adds r1, r4, 0x1\n\ + adds r0, r1\n\ + ldrb r1, [r0]\n\ + cmp r1, 0x6\n\ + bne _08012C10\n\ + ldr r0, _08012C0C @ =gBattleCommunication\n\ + adds r0, r2, r0\n\ +_08012BFE:\n\ + movs r1, 0\n\ + strb r1, [r0]\n\ + b _08012F66\n\ + .align 2, 0\n\ +_08012C04: .4byte gBattleBufferB\n\ +_08012C08: .4byte gActiveBank\n\ +_08012C0C: .4byte gBattleCommunication\n\ +_08012C10:\n\ + ldr r0, _08012CC4 @ =gSharedMem\n\ + mov r12, r0\n\ + ldr r3, _08012CC8 @ =0x00016068\n\ + adds r0, r2, r3\n\ + add r0, r12\n\ + strb r1, [r0]\n\ + ldr r0, _08012CCC @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x40\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08012CBE\n\ + ldrb r0, [r7]\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + ldr r5, _08012CD0 @ =0x0001606c\n\ + adds r1, r5\n\ + add r1, r12\n\ + ldrb r2, [r1]\n\ + movs r0, 0xF\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + ldrb r0, [r7]\n\ + lsls r2, r0, 1\n\ + adds r2, r0\n\ + adds r2, r5\n\ + add r2, r12\n\ + lsls r0, 9\n\ + adds r6, r4, 0x2\n\ + adds r0, r6\n\ + ldrb r1, [r0]\n\ + movs r3, 0xF0\n\ + adds r0, r3, 0\n\ + ands r0, r1\n\ + ldrb r1, [r2]\n\ + orrs r0, r1\n\ + strb r0, [r2]\n\ + ldrb r0, [r7]\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + ldr r2, _08012CD4 @ =0x0001606d\n\ + adds r1, r2\n\ + add r1, r12\n\ + lsls r0, 9\n\ + adds r4, 0x3\n\ + mov r8, r4\n\ + add r0, r8\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ + ldrb r0, [r7]\n\ + movs r4, 0x2\n\ + eors r0, r4\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + adds r1, r5\n\ + add r1, r12\n\ + ldrb r2, [r1]\n\ + adds r0, r3, 0\n\ + ands r0, r2\n\ + strb r0, [r1]\n\ + ldrb r0, [r7]\n\ + eors r0, r4\n\ + lsls r1, r0, 1\n\ + adds r1, r0\n\ + adds r1, r5\n\ + add r1, r12\n\ + ldrb r0, [r7]\n\ + lsls r0, 9\n\ + adds r0, r6\n\ + ldrb r0, [r0]\n\ + ands r3, r0\n\ + lsrs r3, 4\n\ + ldrb r0, [r1]\n\ + orrs r3, r0\n\ + strb r3, [r1]\n\ + ldrb r0, [r7]\n\ + eors r4, r0\n\ + lsls r1, r4, 1\n\ + adds r1, r4\n\ + ldr r3, _08012CD8 @ =0x0001606e\n\ + adds r1, r3\n\ + add r1, r12\n\ + ldrb r0, [r7]\n\ + lsls r0, 9\n\ + add r0, r8\n\ + ldrb r0, [r0]\n\ + strb r0, [r1]\n\ +_08012CBE:\n\ + ldr r0, _08012CDC @ =gBattleCommunication\n\ + ldrb r1, [r7]\n\ + b _08012E3C\n\ + .align 2, 0\n\ +_08012CC4: .4byte gSharedMem\n\ +_08012CC8: .4byte 0x00016068\n\ +_08012CCC: .4byte gBattleTypeFlags\n\ +_08012CD0: .4byte 0x0001606c\n\ +_08012CD4: .4byte 0x0001606d\n\ +_08012CD8: .4byte 0x0001606e\n\ +_08012CDC: .4byte gBattleCommunication\n\ +_08012CE0:\n\ + ldr r2, _08012CF8 @ =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 8\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + ldr r2, _08012CFC @ =gBattleCommunication\n\ + ldr r0, _08012D00 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012CF8: .4byte gHitMarker\n\ +_08012CFC: .4byte gBattleCommunication\n\ +_08012D00: .4byte gActiveBank\n\ +_08012D04:\n\ + ldr r2, _08012D10 @ =gBattleCommunication\n\ + ldr r0, _08012D14 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012D10: .4byte gBattleCommunication\n\ +_08012D14: .4byte gActiveBank\n\ +_08012D18:\n\ + ldr r2, _08012D24 @ =gBattleCommunication\n\ + ldr r0, _08012D28 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012D24: .4byte gBattleCommunication\n\ +_08012D28: .4byte gActiveBank\n\ +_08012D2C:\n\ + ldr r2, _08012D50 @ =gBattleBufferB\n\ + ldr r0, _08012D54 @ =gActiveBank\n\ + ldrb r4, [r0]\n\ + lsls r1, r4, 9\n\ + adds r0, r2, 0x1\n\ + adds r0, r1, r0\n\ + ldrb r3, [r0]\n\ + adds r2, 0x2\n\ + adds r1, r2\n\ + ldrb r0, [r1]\n\ + lsls r0, 8\n\ + orrs r3, r0\n\ + cmp r3, 0\n\ + bne _08012D4A\n\ + b _08012F60\n\ +_08012D4A:\n\ + ldr r1, _08012D58 @ =gBattleCommunication\n\ + adds r1, r4, r1\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012D50: .4byte gBattleBufferB\n\ +_08012D54: .4byte gActiveBank\n\ +_08012D58: .4byte gBattleCommunication\n\ +_08012D5C:\n\ + ldr r2, _08012D68 @ =gBattleCommunication\n\ + ldr r0, _08012D6C @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012D68: .4byte gBattleCommunication\n\ +_08012D6C: .4byte gActiveBank\n\ +_08012D70:\n\ + ldr r2, _08012D88 @ =gHitMarker\n\ + ldr r0, [r2]\n\ + movs r1, 0x80\n\ + lsls r1, 8\n\ + orrs r0, r1\n\ + str r0, [r2]\n\ + ldr r2, _08012D8C @ =gBattleCommunication\n\ + ldr r0, _08012D90 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012D88: .4byte gHitMarker\n\ +_08012D8C: .4byte gBattleCommunication\n\ +_08012D90: .4byte gActiveBank\n\ +_08012D94:\n\ + ldr r2, _08012DA0 @ =gBattleCommunication\n\ + ldr r0, _08012DA4 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, r2\n\ + b _08012E3E\n\ + .align 2, 0\n\ +_08012DA0: .4byte gBattleCommunication\n\ +_08012DA4: .4byte gActiveBank\n\ +_08012DA8:\n\ + ldr r3, _08012E10 @ =gBattleExecBuffer\n\ + ldr r4, _08012E14 @ =gBitTable\n\ + ldr r0, _08012E18 @ =gActiveBank\n\ + ldrb r0, [r0]\n\ + lsls r0, 2\n\ + adds r0, r4\n\ + ldr r2, [r0]\n\ + lsls r1, r2, 4\n\ + movs r0, 0xF0\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + orrs r1, r2\n\ + lsls r0, r2, 8\n\ + orrs r1, r0\n\ + lsls r2, 12\n\ + orrs r1, r2\n\ + ldr r0, [r3]\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08012DD2\n\ + b _08012F66\n\ +_08012DD2:\n\ + ldr r0, _08012E1C @ =gBattleTypeFlags\n\ + ldrh r1, [r0]\n\ + movs r0, 0x41\n\ + ands r0, r1\n\ + cmp r0, 0x1\n\ + bne _08012E06\n\ + movs r1, 0x2\n\ + movs r0, 0x2\n\ + ands r0, r5\n\ + cmp r0, 0\n\ + bne _08012E06\n\ + adds r0, r5, 0\n\ + eors r0, r1\n\ + bl GetBankByPlayerAI\n\ + ldr r1, _08012E20 @ =gSharedMem\n\ + ldr r2, _08012E24 @ =0x000160a6\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 22\n\ + adds r0, r4\n\ + ldr r0, [r0]\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _08012E28\n\ +_08012E06:\n\ + movs r0, 0\n\ + movs r1, 0\n\ + bl EmitLinkStandbyMsg\n\ + b _08012E30\n\ + .align 2, 0\n\ +_08012E10: .4byte gBattleExecBuffer\n\ +_08012E14: .4byte gBitTable\n\ +_08012E18: .4byte gActiveBank\n\ +_08012E1C: .4byte gBattleTypeFlags\n\ +_08012E20: .4byte gSharedMem\n\ +_08012E24: .4byte 0x000160a6\n\ +_08012E28:\n\ + movs r0, 0\n\ + movs r1, 0x1\n\ + bl EmitLinkStandbyMsg\n\ +_08012E30:\n\ + ldr r4, _08012E48 @ =gActiveBank\n\ +_08012E32:\n\ + ldrb r0, [r4]\n\ + bl MarkBufferBankForExecution\n\ + ldr r0, _08012E4C @ =gBattleCommunication\n\ + ldrb r1, [r4]\n\ +_08012E3C:\n\ + adds r1, r0\n\ +_08012E3E:\n\ + ldrb r0, [r1]\n\ + adds r0, 0x1\n\ + strb r0, [r1]\n\ + b _08012F66\n\ + .align 2, 0\n\ +_08012E48: .4byte gActiveBank\n\ +_08012E4C: .4byte gBattleCommunication\n\ +_08012E50:\n\ + ldr r3, _08012E84 @ =gBattleExecBuffer\n\ + ldr r1, _08012E88 @ =gBitTable\n\ + ldr r0, _08012E8C @ =gActiveBank\n\ + ldrb r0, [r0]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r2, [r0]\n\ + lsls r1, r2, 4\n\ + movs r0, 0xF0\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + orrs r1, r2\n\ + lsls r0, r2, 8\n\ + orrs r1, r0\n\ + lsls r2, 12\n\ + orrs r1, r2\n\ + ldr r0, [r3]\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08012F66\n\ + ldr r1, _08012E90 @ =gBattleCommunication\n\ + ldrb r0, [r1, 0x4]\n\ + adds r0, 0x1\n\ + strb r0, [r1, 0x4]\n\ + b _08012F66\n\ + .align 2, 0\n\ +_08012E84: .4byte gBattleExecBuffer\n\ +_08012E88: .4byte gBitTable\n\ +_08012E8C: .4byte gActiveBank\n\ +_08012E90: .4byte gBattleCommunication\n\ +_08012E94:\n\ + ldr r2, _08012EB8 @ =gSharedMem\n\ + ldr r5, _08012EBC @ =gActiveBank\n\ + ldrb r1, [r5]\n\ + ldr r3, _08012EC0 @ =0x00016060\n\ + adds r0, r1, r3\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + cmp r0, 0\n\ + beq _08012ECC\n\ + ldr r0, _08012EC4 @ =gBattleCommunication\n\ + adds r0, r1, r0\n\ + ldr r4, _08012EC8 @ =0x00016094\n\ + adds r1, r4\n\ + adds r1, r2\n\ + ldrb r1, [r1]\n\ + strb r1, [r0]\n\ + b _08012F66\n\ + .align 2, 0\n\ +_08012EB8: .4byte gSharedMem\n\ +_08012EBC: .4byte gActiveBank\n\ +_08012EC0: .4byte 0x00016060\n\ +_08012EC4: .4byte gBattleCommunication\n\ +_08012EC8: .4byte 0x00016094\n\ +_08012ECC:\n\ + ldr r0, _08012F20 @ =gBankAttacker\n\ + strb r1, [r0]\n\ + ldr r7, _08012F24 @ =gBattlescriptCurrInstr\n\ + ldr r6, _08012F28 @ =gUnknown_02024C1C\n\ + ldrb r0, [r5]\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldr r4, [r0]\n\ + str r4, [r7]\n\ + ldr r3, _08012F2C @ =gBattleExecBuffer\n\ + ldr r1, _08012F30 @ =gBitTable\n\ + ldrb r0, [r5]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r2, [r0]\n\ + lsls r1, r2, 4\n\ + movs r0, 0xF0\n\ + lsls r0, 24\n\ + orrs r1, r0\n\ + orrs r1, r2\n\ + lsls r0, r2, 8\n\ + orrs r1, r0\n\ + lsls r2, 12\n\ + orrs r1, r2\n\ + ldr r0, [r3]\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + bne _08012F12\n\ + ldr r0, _08012F34 @ =gBattleScriptingCommandsTable\n\ + ldrb r1, [r4]\n\ + lsls r1, 2\n\ + adds r1, r0\n\ + ldr r0, [r1]\n\ + bl _call_via_r0\n\ +_08012F12:\n\ + ldrb r0, [r5]\n\ + lsls r0, 2\n\ + adds r0, r6\n\ + ldr r1, [r7]\n\ + str r1, [r0]\n\ + b _08012F66\n\ + .align 2, 0\n\ +_08012F20: .4byte gBankAttacker\n\ +_08012F24: .4byte gBattlescriptCurrInstr\n\ +_08012F28: .4byte gUnknown_02024C1C\n\ +_08012F2C: .4byte gBattleExecBuffer\n\ +_08012F30: .4byte gBitTable\n\ +_08012F34: .4byte gBattleScriptingCommandsTable\n\ +_08012F38:\n\ + ldr r3, _08012FA0 @ =gBattleExecBuffer\n\ + ldr r1, _08012FA4 @ =gBitTable\n\ + ldr r0, _08012FA8 @ =gActiveBank\n\ + ldrb r4, [r0]\n\ + lsls r0, r4, 2\n\ + adds r0, r1\n\ + ldr r2, [r0]\n\ + lsls r0, r2, 4\n\ + movs r1, 0xF0\n\ + lsls r1, 24\n\ + orrs r0, r1\n\ + orrs r0, r2\n\ + lsls r1, r2, 8\n\ + orrs r0, r1\n\ + lsls r2, 12\n\ + orrs r0, r2\n\ + ldr r3, [r3]\n\ + ands r3, r0\n\ + cmp r3, 0\n\ + bne _08012F66\n\ +_08012F60:\n\ + ldr r0, _08012FAC @ =gBattleCommunication\n\ + adds r0, r4, r0\n\ + strb r3, [r0]\n\ +_08012F66:\n\ + ldr r0, _08012FA8 @ =gActiveBank\n\ + ldrb r1, [r0]\n\ + adds r1, 0x1\n\ + strb r1, [r0]\n\ + ldr r0, _08012FB0 @ =gNoOfAllBanks\n\ + lsls r1, 24\n\ + lsrs r1, 24\n\ +_08012F74:\n\ + adds r2, r0, 0\n\ + ldrb r0, [r2]\n\ + cmp r1, r0\n\ + bcs _08012F80\n\ + bl _0801234C\n\ +_08012F80:\n\ + ldr r0, _08012FAC @ =gBattleCommunication\n\ + ldrb r0, [r0, 0x4]\n\ + ldrb r2, [r2]\n\ + cmp r0, r2\n\ + bne _08012F90\n\ + ldr r1, _08012FB4 @ =gBattleMainFunc\n\ + ldr r0, _08012FB8 @ =sub_80133C8\n\ + str r0, [r1]\n\ +_08012F90:\n\ + add sp, 0x1C\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08012FA0: .4byte gBattleExecBuffer\n\ +_08012FA4: .4byte gBitTable\n\ +_08012FA8: .4byte gActiveBank\n\ +_08012FAC: .4byte gBattleCommunication\n\ +_08012FB0: .4byte gNoOfAllBanks\n\ +_08012FB4: .4byte gBattleMainFunc\n\ +_08012FB8: .4byte sub_80133C8\n\ + .syntax divided\n"); +} + +void sub_8012FBC(u8 a, u8 b) +{ + int temp; + + temp = gUnknown_02024A76[a]; + gUnknown_02024A76[a] = gUnknown_02024A76[b]; + gUnknown_02024A76[b] = temp; + + temp = gTurnOrder[a]; + gTurnOrder[a] = gTurnOrder[b]; + gTurnOrder[b] = temp; +} + +// Determines which of the two given mons will strike first in a battle. +// Returns: +// 0 = first mon moves first +// 1 = second mon moves first +// 2 = second mon moves first because it won a 50/50 roll +u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) +{ + int bank1SpeedMultiplier, bank2SpeedMultiplier; + u32 bank1AdjustedSpeed, bank2AdjustedSpeed; + u8 heldItemEffect; + u8 heldItemEffectParam; + u16 bank1Move; + u16 bank2Move; + u8 strikesFirst = 0; + + // Check for abilities that boost speed in weather. + if (WEATHER_HAS_EFFECT) + { + if ((gBattleMons[bank1].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY)) + || (gBattleMons[bank1].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY))) + bank1SpeedMultiplier = 2; + else + bank1SpeedMultiplier = 1; + + if ((gBattleMons[bank2].ability == ABILITY_SWIFT_SWIM && (gBattleWeather & WEATHER_RAIN_ANY)) + || (gBattleMons[bank2].ability == ABILITY_CHLOROPHYLL && (gBattleWeather & WEATHER_SUN_ANY))) + bank2SpeedMultiplier = 2; + else + bank2SpeedMultiplier = 1; + } + else + { + bank1SpeedMultiplier = 1; + bank2SpeedMultiplier = 1; + } + + // Calculate adjusted speed for first mon. + bank1AdjustedSpeed = (gBattleMons[bank1].speed * bank1SpeedMultiplier) + * gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank1].statStages[STAT_STAGE_SPEED]][1]; + + if (gBattleMons[bank1].item == ITEM_ENIGMA_BERRY) + { + heldItemEffect = gEnigmaBerries[bank1].holdEffect; + heldItemEffectParam = gEnigmaBerries[bank1].holdEffectParam; + } + else + { + heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank1].item); + heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank1].item); + } + + // Only give badge speed boost to the player's mon. + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank1) == 0) + bank1AdjustedSpeed = (bank1AdjustedSpeed * 110) / 100; + + if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE) + bank1AdjustedSpeed /= 2; + + if (gBattleMons[bank1].status1 & STATUS_PARALYSIS) + bank1AdjustedSpeed /= 4; + + if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100) + bank1AdjustedSpeed = UINT_MAX; + + // Calculate adjusted speed for second mon. + bank2AdjustedSpeed = gBattleMons[bank2].speed * bank2SpeedMultiplier + * gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][0] / gStatStageRatios[gBattleMons[bank2].statStages[STAT_STAGE_SPEED]][1]; + + if (gBattleMons[bank2].item == ITEM_ENIGMA_BERRY) + { + heldItemEffect = gEnigmaBerries[bank2].holdEffect; + heldItemEffectParam = gEnigmaBerries[bank2].holdEffectParam; + } + else + { + heldItemEffect = ItemId_GetHoldEffect(gBattleMons[bank2].item); + heldItemEffectParam = ItemId_GetHoldEffectParam(gBattleMons[bank2].item); + } + + // Only give badge speed boost to the player's mon. + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK) && FlagGet(FLAG_BADGE03_GET) && GetBankSide(bank2) == 0) + { + bank2AdjustedSpeed = (bank2AdjustedSpeed * 110) / 100; + } + + if (heldItemEffect == HOLD_EFFECT_MACHO_BRACE) + bank2AdjustedSpeed /= 2; + + if (gBattleMons[bank2].status1 & STATUS_PARALYSIS) + bank2AdjustedSpeed /= 4; + + if (heldItemEffect == HOLD_EFFECT_QUICK_CLAW && gRandomTurnNumber < (heldItemEffectParam * 0xFFFF) / 100) + bank2AdjustedSpeed = UINT_MAX; + + if (ignoreMovePriorities) + { + bank1Move = MOVE_NONE; + bank2Move = MOVE_NONE; + } + else + { + if (gActionForBanks[bank1] == 0) + { + if (gProtectStructs[bank1].onlyStruggle) + bank1Move = MOVE_STRUGGLE; + else + bank1Move = gBattleMons[bank1].moves[ewram1608Carr(bank1)]; + } + else + bank1Move = MOVE_NONE; + + if (gActionForBanks[bank2] == 0) + { + if (gProtectStructs[bank2].onlyStruggle) + bank2Move = MOVE_STRUGGLE; + else + bank2Move = gBattleMons[bank2].moves[ewram1608Carr(bank2)]; + } + else + bank2Move = MOVE_NONE; + } + + if (gBattleMoves[bank1Move].priority != 0 || gBattleMoves[bank2Move].priority != 0) + { + if (gBattleMoves[bank1Move].priority == gBattleMoves[bank2Move].priority) + { + if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1)) + strikesFirst = 2; + else if (bank1AdjustedSpeed < bank2AdjustedSpeed) + strikesFirst = 1; + } + else if (gBattleMoves[bank1Move].priority < gBattleMoves[bank2Move].priority) + strikesFirst = 1; + } + else + { + if (bank1AdjustedSpeed == bank2AdjustedSpeed && (Random() & 1)) + strikesFirst = 2; + else if (bank1AdjustedSpeed < bank2AdjustedSpeed) + strikesFirst = 1; + } + + return strikesFirst; +} diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 1fa7a2ed2..6b892ea7a 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -1275,7 +1275,7 @@ static void BattleAICmd_if_arg_not_equal(void) static void BattleAICmd_if_would_go_first(void) { - if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) == gAIScriptPtr[1]) + if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) == gAIScriptPtr[1]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; @@ -1283,7 +1283,7 @@ static void BattleAICmd_if_would_go_first(void) static void BattleAICmd_if_would_not_go_first(void) { - if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, 1) != gAIScriptPtr[1]) + if (GetWhoStrikesFirst(gBankAttacker, gBankTarget, TRUE) != gAIScriptPtr[1]) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 2); else gAIScriptPtr += 6; -- cgit v1.2.3 From c0e0004ffabfcb9bc9827bdce28e3c18a6e52922 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 7 Jan 2018 10:59:12 -0800 Subject: Decompile through HandleEndTurn_BattleWon, and update trainer class constant names --- asm/battle_2.s | 1052 ++-------------------- asm/battle_9.s | 38 +- asm/battle_anim_813F0F4.s | 18 +- asm/battle_intro.s | 2 +- asm/dark.s | 2 +- asm/ice.s | 2 +- asm/pokemon_item_effect.s | 4 +- asm/psychic.s | 6 +- constants/trainer_constants.inc | 270 +++--- data-de/trainers.inc | 1388 +++++++++++++++--------------- data/data2a.s | 2 +- data/trainer_money.inc | 108 +-- data/trainers.inc | 1388 +++++++++++++++--------------- include/battle.h | 9 +- include/constants/battle_constants.h | 24 + include/ewram.h | 2 + include/rom_8077ABC.h | 6 +- include/trainer.h | 270 +++--- src/battle/anim/fire_2.c | 4 +- src/battle/battle_2.c | 313 ++++++- src/battle/battle_3.c | 62 +- src/battle/battle_4.c | 124 +-- src/battle/battle_7.c | 10 +- src/battle/battle_ai.c | 2 +- src/battle/battle_anim_80A7E7C.c | 8 +- src/battle/battle_controller_opponent.c | 24 +- src/battle/battle_controller_player.c | 22 +- src/battle/battle_controller_safari.c | 6 +- src/battle/battle_controller_wally.c | 6 +- src/battle/battle_message.c | 16 +- src/battle/battle_party_menu.c | 14 +- src/battle/pokeball.c | 10 +- src/battle/reshow_battle_screen.c | 4 +- src/data/battle_tower/trainers.h | 200 ++--- src/data/battle_tower/trainers_de.h | 200 ++--- src/data/pokemon/trainer_class_lookups.h | 160 ++-- src/de_rom_8040FE0.c | 22 +- src/field/battle_tower.c | 100 +-- src/pokemon/pokemon_2.c | 8 +- src/pokemon/pokemon_data.c | 4 +- src/rom_8077ABC.c | 40 +- sym_ewram.txt | 6 +- 42 files changed, 2671 insertions(+), 3285 deletions(-) diff --git a/asm/battle_2.s b/asm/battle_2.s index edd7fffde..f985f570b 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -5,914 +5,10 @@ .text - thumb_func_start sub_80133C8 -sub_80133C8: @ 80133C8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - movs r3, 0 - ldr r0, _0801341C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _08013434 - ldr r0, _08013420 @ =gActiveBank - strb r3, [r0] - ldr r4, _08013424 @ =gNoOfAllBanks - mov r8, r0 - ldrb r0, [r4] - cmp r3, r0 - bcc _080133F0 - b _08013622 -_080133F0: - ldr r7, _08013428 @ =gUnknown_02024A76 - ldr r6, _0801342C @ =gActionForBanks - mov r2, r8 - ldr r5, _08013430 @ =gTurnOrder -_080133F8: - adds r1, r3, r7 - ldrb r0, [r2] - adds r0, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r1, r3, r5 - ldrb r0, [r2] - strb r0, [r1] - adds r3, 0x1 - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r4] - cmp r0, r1 - bcc _080133F8 - b _08013622 - .align 2, 0 -_0801341C: .4byte gBattleTypeFlags -_08013420: .4byte gActiveBank -_08013424: .4byte gNoOfAllBanks -_08013428: .4byte gUnknown_02024A76 -_0801342C: .4byte gActionForBanks -_08013430: .4byte gTurnOrder -_08013434: - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013484 - ldr r0, _08013478 @ =gActiveBank - strb r3, [r0] - ldr r1, _0801347C @ =gNoOfAllBanks - mov r8, r0 - adds r2, r1, 0 - ldrb r2, [r2] - cmp r3, r2 - bcs _08013494 - ldr r0, _08013480 @ =gActionForBanks - ldrb r1, [r0] - adds r4, r0, 0 - cmp r1, 0x3 - beq _08013492 -_08013456: - mov r7, r8 - ldrb r0, [r7] - adds r0, 0x1 - strb r0, [r7] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _0801347C @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcs _08013494 - ldrb r0, [r7] - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08013456 - b _08013492 - .align 2, 0 -_08013478: .4byte gActiveBank -_0801347C: .4byte gNoOfAllBanks -_08013480: .4byte gActionForBanks -_08013484: - ldr r0, _080134FC @ =gActionForBanks - ldrb r0, [r0] - ldr r2, _08013500 @ =gActiveBank - mov r8, r2 - cmp r0, 0x3 - bne _08013494 - strb r3, [r2] -_08013492: - movs r3, 0x5 -_08013494: - cmp r3, 0x5 - bne _08013520 - ldr r6, _08013504 @ =gUnknown_02024A76 - ldr r1, _080134FC @ =gActionForBanks - mov r3, r8 - ldrb r0, [r3] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r6] - ldr r2, _08013508 @ =gTurnOrder - ldrb r0, [r3] - strb r0, [r2] - movs r3, 0x1 - movs r5, 0 - adds r4, r1, 0 - ldr r7, _0801350C @ =gBattleMainFunc - mov r9, r7 - ldr r0, _08013510 @ =bc_80154A0 - mov r12, r0 - ldr r1, _08013514 @ =gSharedMem - mov r10, r1 - ldr r7, _08013518 @ =gNoOfAllBanks - ldrb r7, [r7] - cmp r5, r7 - bge _080134EC - adds r7, r6, 0 - adds r6, r4, 0 - adds r4, r2, 0 - ldr r2, _08013518 @ =gNoOfAllBanks -_080134CE: - mov r0, r8 - ldrb r0, [r0] - cmp r5, r0 - beq _080134E4 - adds r1, r3, r7 - adds r0, r5, r6 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r4 - strb r5, [r0] - adds r3, 0x1 -_080134E4: - adds r5, 0x1 - ldrb r1, [r2] - cmp r5, r1 - blt _080134CE -_080134EC: - mov r2, r12 - mov r3, r9 - str r2, [r3] - ldr r1, _0801351C @ =0x0001601d - add r1, r10 - movs r0, 0 - strb r0, [r1] - b _08013632 - .align 2, 0 -_080134FC: .4byte gActionForBanks -_08013500: .4byte gActiveBank -_08013504: .4byte gUnknown_02024A76 -_08013508: .4byte gTurnOrder -_0801350C: .4byte gBattleMainFunc -_08013510: .4byte bc_80154A0 -_08013514: .4byte gSharedMem -_08013518: .4byte gNoOfAllBanks -_0801351C: .4byte 0x0001601d -_08013520: - movs r0, 0 - mov r7, r8 - strb r0, [r7] - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r0, [r1] - cmp r0, 0 - beq _08013566 - ldr r6, _080135B4 @ =gActionForBanks - mov r2, r8 - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gTurnOrder -_08013536: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013554 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013554: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _08013536 -_08013566: - movs r0, 0 - mov r2, r8 - strb r0, [r2] - ldr r7, _080135B0 @ =gNoOfAllBanks - ldrb r0, [r7] - cmp r0, 0 - beq _080135AA - ldr r6, _080135B4 @ =gActionForBanks - ldr r5, _080135B8 @ =gUnknown_02024A76 - ldr r4, _080135BC @ =gTurnOrder -_0801357A: - ldrb r0, [r2] - adds r0, r6 - ldrb r1, [r0] - subs r0, r1, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _08013598 - adds r0, r3, r5 - strb r1, [r0] - adds r1, r3, r4 - mov r7, r8 - ldrb r0, [r7] - strb r0, [r1] - adds r3, 0x1 -_08013598: - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080135B0 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _0801357A -_080135AA: - movs r5, 0 - b _08013618 - .align 2, 0 -_080135B0: .4byte gNoOfAllBanks -_080135B4: .4byte gActionForBanks -_080135B8: .4byte gUnknown_02024A76 -_080135BC: .4byte gTurnOrder -_080135C0: - adds r4, r5, 0x1 - adds r7, r4, 0 - ldrb r1, [r1] - cmp r7, r1 - bge _08013616 - ldr r6, _08013640 @ =gUnknown_02024A76 - lsls r2, r5, 24 - mov r8, r2 -_080135D0: - ldr r0, _08013644 @ =gTurnOrder - adds r1, r5, r0 - ldrb r3, [r1] - adds r0, r4, r0 - ldrb r1, [r0] - adds r0, r5, r6 - ldrb r2, [r0] - cmp r2, 0x1 - beq _0801360C - adds r0, r4, r6 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0801360C - cmp r2, 0x2 - beq _0801360C - cmp r0, 0x2 - beq _0801360C - adds r0, r3, 0 - movs r2, 0 - bl GetWhoStrikesFirst - lsls r0, 24 - cmp r0, 0 - beq _0801360C - lsls r1, r4, 24 - lsrs r1, 24 - mov r3, r8 - lsrs r0, r3, 24 - bl sub_8012FBC -_0801360C: - adds r4, 0x1 - ldr r0, _08013648 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080135D0 -_08013616: - adds r5, r7, 0 -_08013618: - ldr r1, _08013648 @ =gNoOfAllBanks - ldrb r0, [r1] - subs r0, 0x1 - cmp r5, r0 - blt _080135C0 -_08013622: - ldr r1, _0801364C @ =gBattleMainFunc - ldr r0, _08013650 @ =bc_80154A0 - str r0, [r1] - ldr r0, _08013654 @ =gSharedMem - ldr r7, _08013658 @ =0x0001601d - adds r0, r7 - movs r1, 0 - strb r1, [r0] -_08013632: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013640: .4byte gUnknown_02024A76 -_08013644: .4byte gTurnOrder -_08013648: .4byte gNoOfAllBanks -_0801364C: .4byte gBattleMainFunc -_08013650: .4byte bc_80154A0 -_08013654: .4byte gSharedMem -_08013658: .4byte 0x0001601d - thumb_func_end sub_80133C8 - - thumb_func_start TurnValuesCleanUp -TurnValuesCleanUp: @ 801365C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldr r1, _080136B4 @ =gActiveBank - movs r0, 0 - strb r0, [r1] - ldr r0, _080136B8 @ =gNoOfAllBanks - ldrb r2, [r0] - adds r5, r1, 0 - cmp r2, 0 - beq _08013754 - ldr r7, _080136BC @ =gProtectStructs - adds r6, r5, 0 - ldr r0, _080136C0 @ =gUnknown_02024AD0 - mov r12, r0 - ldr r1, _080136C4 @ =gDisableStructs - mov r8, r1 - mov r10, r8 -_0801368A: - mov r2, r9 - cmp r2, 0 - beq _080136C8 - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x2 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldrb r1, [r6] - lsls r1, 4 - adds r1, r7 - ldrb r2, [r1] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - b _08013724 - .align 2, 0 -_080136B4: .4byte gActiveBank -_080136B8: .4byte gNoOfAllBanks -_080136BC: .4byte gProtectStructs -_080136C0: .4byte gUnknown_02024AD0 -_080136C4: .4byte gDisableStructs -_080136C8: - ldrb r0, [r6] - lsls r0, 4 - adds r2, r0, r7 - movs r1, 0 - mov r4, r10 - movs r3, 0 -_080136D4: - adds r0, r2, r1 - strb r3, [r0] - adds r1, 0x1 - cmp r1, 0xF - bls _080136D4 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x16] - cmp r0, 0 - beq _080136F2 - subs r0, 0x1 - strb r0, [r1, 0x16] -_080136F2: - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r1, r0, r4 - ldrb r0, [r1, 0x19] - cmp r0, 0 - beq _08013724 - subs r0, 0x1 - strb r0, [r1, 0x19] - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x19] - cmp r0, 0 - bne _08013724 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _0801376C @ =0xffbfffff - ands r0, r1 - str r0, [r2] -_08013724: - ldrb r2, [r5] - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - add r0, r8 - ldrb r0, [r0, 0xA] - cmp r0, 0 - bne _08013742 - movs r0, 0x58 - muls r2, r0 - add r2, r12 - ldr r0, [r2] - ldr r1, _08013770 @ =0xfeffffff - ands r0, r1 - str r0, [r2] -_08013742: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08013774 @ =gNoOfAllBanks - ldrb r1, [r1] - cmp r0, r1 - bcc _0801368A -_08013754: - movs r0, 0 - ldr r2, _08013778 @ =gSideTimer - strb r0, [r2, 0x8] - strb r0, [r2, 0x14] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801376C: .4byte 0xffbfffff -_08013770: .4byte 0xfeffffff -_08013774: .4byte gNoOfAllBanks -_08013778: .4byte gSideTimer - thumb_func_end TurnValuesCleanUp - - thumb_func_start SpecialStatusesClear -SpecialStatusesClear: @ 801377C - push {r4-r6,lr} - ldr r2, _080137C0 @ =gActiveBank - movs r0, 0 - strb r0, [r2] - ldr r0, _080137C4 @ =gNoOfAllBanks - ldrb r1, [r0] - adds r6, r0, 0 - cmp r1, 0 - beq _080137BA - adds r3, r2, 0 - movs r4, 0 - ldr r5, _080137C8 @ =gSpecialStatuses -_08013794: - ldrb r1, [r3] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, r0, r5 - movs r1, 0 -_080137A0: - adds r0, r2, r1 - strb r4, [r0] - adds r1, 0x1 - cmp r1, 0x13 - bls _080137A0 - ldrb r0, [r3] - adds r0, 0x1 - strb r0, [r3] - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r6] - cmp r0, r1 - bcc _08013794 -_080137BA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080137C0: .4byte gActiveBank -_080137C4: .4byte gNoOfAllBanks -_080137C8: .4byte gSpecialStatuses - thumb_func_end SpecialStatusesClear - - thumb_func_start bc_80154A0 -bc_80154A0: @ 80137CC - push {r4-r7,lr} - ldr r0, _08013850 @ =gHitMarker - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 8 - ands r0, r1 - cmp r0, 0 - bne _08013884 - ldr r0, _08013854 @ =gSharedMem - ldr r1, _08013858 @ =0x0001601d - adds r2, r0, r1 - ldr r0, _0801385C @ =gNoOfAllBanks - ldrb r1, [r2] - adds r7, r0, 0 - ldrb r0, [r7] - cmp r1, r0 - bcs _08013884 - ldr r6, _08013860 @ =gActiveBank - ldr r5, _08013864 @ =gBankAttacker - adds r4, r2, 0 - movs r1, 0x84 - lsls r1, 1 - mov r12, r1 -_080137FA: - ldrb r0, [r4] - strb r0, [r5] - strb r0, [r6] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013868 @ =gChosenMovesByBanks - ldrb r3, [r6] - lsls r0, r3, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, r12 - bne _0801387C - ldr r1, _0801386C @ =gBattleMons - movs r0, 0x58 - muls r0, r3 - adds r1, 0x4C - adds r0, r1 - ldr r0, [r0] - movs r1, 0x7 - ands r0, r1 - cmp r0, 0 - bne _0801387C - ldr r2, _08013870 @ =gDisableStructs - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsls r0, 31 - cmp r0, 0 - bne _0801387C - ldr r0, _08013874 @ =gProtectStructs - lsls r1, r3, 4 - adds r1, r0 - ldrb r0, [r1] - lsls r0, 29 - cmp r0, 0 - blt _0801387C - ldr r0, _08013878 @ =BattleScript_FocusPunchSetUp - bl b_call_bc_move_exec - b _080138BE - .align 2, 0 -_08013850: .4byte gHitMarker -_08013854: .4byte gSharedMem -_08013858: .4byte 0x0001601d -_0801385C: .4byte gNoOfAllBanks -_08013860: .4byte gActiveBank -_08013864: .4byte gBankAttacker -_08013868: .4byte gChosenMovesByBanks -_0801386C: .4byte gBattleMons -_08013870: .4byte gDisableStructs -_08013874: .4byte gProtectStructs -_08013878: .4byte BattleScript_FocusPunchSetUp -_0801387C: - ldrb r0, [r4] - ldrb r2, [r7] - cmp r0, r2 - bcc _080137FA -_08013884: - bl b_clear_atk_up_if_hit_flag_unless_enraged - ldr r1, _080138C4 @ =gCurrentMoveTurn - movs r0, 0 - strb r0, [r1] - ldr r1, _080138C8 @ =gFightStateTracker - ldr r0, _080138CC @ =gUnknown_02024A76 - movs r2, 0 - ldrb r0, [r0] - strb r0, [r1] - ldr r0, _080138D0 @ =gDynamicBasePower - movs r3, 0 - strh r2, [r0] - ldr r1, _080138D4 @ =gSharedMem - ldr r2, _080138D8 @ =0x0001601c - adds r0, r1, r2 - strb r3, [r0] - ldr r2, _080138DC @ =gBattleMainFunc - ldr r0, _080138E0 @ =sub_80138F0 - str r0, [r2] - ldr r0, _080138E4 @ =gBattleCommunication - strb r3, [r0, 0x3] - strb r3, [r0, 0x4] - ldr r2, _080138E8 @ =0x00016112 - adds r0, r1, r2 - strb r3, [r0] - ldr r0, _080138EC @ =0x00017130 - adds r1, r0 - strb r3, [r1] -_080138BE: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080138C4: .4byte gCurrentMoveTurn -_080138C8: .4byte gFightStateTracker -_080138CC: .4byte gUnknown_02024A76 -_080138D0: .4byte gDynamicBasePower -_080138D4: .4byte gSharedMem -_080138D8: .4byte 0x0001601c -_080138DC: .4byte gBattleMainFunc -_080138E0: .4byte sub_80138F0 -_080138E4: .4byte gBattleCommunication -_080138E8: .4byte 0x00016112 -_080138EC: .4byte 0x00017130 - thumb_func_end bc_80154A0 - - thumb_func_start sub_80138F0 -sub_80138F0: @ 80138F0 - push {r4-r6,lr} - ldr r6, _08013944 @ =gBattleOutcome - ldrb r0, [r6] - ldr r2, _08013948 @ =gFightStateTracker - cmp r0, 0 - beq _08013900 - movs r0, 0xC - strb r0, [r2] -_08013900: - ldr r1, _0801394C @ =gSharedMem - ldr r4, _08013950 @ =gCurrentMoveTurn - ldrb r0, [r4] - ldr r3, _08013954 @ =0x00016057 - adds r5, r1, r3 - strb r0, [r5] - ldr r1, _08013958 @ =gUnknown_081FA640 - ldrb r0, [r2] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - ldr r0, _0801395C @ =gNoOfAllBanks - ldrb r1, [r4] - ldrb r0, [r0] - cmp r1, r0 - bcc _08013970 - ldr r2, _08013960 @ =gHitMarker - ldr r0, [r2] - ldr r1, _08013964 @ =0xffefffff - ands r0, r1 - str r0, [r2] - ldr r3, _08013968 @ =gBattleMainFunc - ldr r2, _0801396C @ =gUnknown_081FA678 - ldrb r1, [r6] - movs r0, 0x7F - ands r0, r1 - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - str r0, [r3] - b _08013984 - .align 2, 0 -_08013944: .4byte gBattleOutcome -_08013948: .4byte gFightStateTracker -_0801394C: .4byte gSharedMem -_08013950: .4byte gCurrentMoveTurn -_08013954: .4byte 0x00016057 -_08013958: .4byte gUnknown_081FA640 -_0801395C: .4byte gNoOfAllBanks -_08013960: .4byte gHitMarker -_08013964: .4byte 0xffefffff -_08013968: .4byte gBattleMainFunc -_0801396C: .4byte gUnknown_081FA678 -_08013970: - ldrb r0, [r5] - cmp r0, r1 - beq _08013984 - ldr r2, _0801398C @ =gHitMarker - ldr r0, [r2] - ldr r1, _08013990 @ =0xfffffdff - ands r0, r1 - ldr r1, _08013994 @ =0xfff7ffff - ands r0, r1 - str r0, [r2] -_08013984: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0801398C: .4byte gHitMarker -_08013990: .4byte 0xfffffdff -_08013994: .4byte 0xfff7ffff - thumb_func_end sub_80138F0 - - thumb_func_start sub_8013998 -sub_8013998: @ 8013998 - push {r4,lr} - ldr r1, _080139D0 @ =gFightStateTracker - movs r0, 0 - strb r0, [r1] - ldr r0, _080139D4 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080139EC - ldr r1, _080139D8 @ =gBattleTextBuff1 - ldr r4, _080139DC @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBankByPlayerAI - ldr r1, _080139E0 @ =gBankAttacker - strb r0, [r1] - ldr r1, _080139E4 @ =gBattlescriptCurrInstr - ldr r0, _080139E8 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013B48 - .align 2, 0 -_080139D0: .4byte gFightStateTracker -_080139D4: .4byte gBattleTypeFlags -_080139D8: .4byte gBattleTextBuff1 -_080139DC: .4byte gBattleOutcome -_080139E0: .4byte gBankAttacker -_080139E4: .4byte gBattlescriptCurrInstr -_080139E8: .4byte gUnknown_081D8E02 -_080139EC: - movs r0, 0x90 - lsls r0, 4 - ands r0, r1 - cmp r0, 0 - beq _08013A04 - ldr r1, _080139FC @ =gBattlescriptCurrInstr - ldr r0, _08013A00 @ =gUnknown_081D8E0D - b _08013B46 - .align 2, 0 -_080139FC: .4byte gBattlescriptCurrInstr -_08013A00: .4byte gUnknown_081D8E0D -_08013A04: - movs r0, 0xA - ands r0, r1 - cmp r0, 0x8 - beq _08013A0E - b _08013B42 -_08013A0E: - bl BattleMusicStop - ldr r1, _08013A3C @ =gBattlescriptCurrInstr - ldr r0, _08013A40 @ =BattleScript_LocalTrainerBattleWon - str r0, [r1] - ldr r2, _08013A44 @ =gTrainers - ldr r0, _08013A48 @ =gTrainerBattleOpponent - ldrh r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - ldrb r0, [r0, 0x1] - subs r0, 0x2 - cmp r0, 0x31 - bls _08013A30 - b _08013B38 -_08013A30: - lsls r0, 2 - ldr r1, _08013A4C @ =_08013A50 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08013A3C: .4byte gBattlescriptCurrInstr -_08013A40: .4byte BattleScript_LocalTrainerBattleWon -_08013A44: .4byte gTrainers -_08013A48: .4byte gTrainerBattleOpponent -_08013A4C: .4byte _08013A50 - .align 2, 0 -_08013A50: - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B2E - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B18 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B38 - .4byte _08013B24 - .4byte _08013B24 - .4byte _08013B24 -_08013B18: - ldr r0, _08013B20 @ =0x00000163 - bl PlayBGM - b _08013B48 - .align 2, 0 -_08013B20: .4byte 0x00000163 -_08013B24: - movs r0, 0xD4 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B2E: - movs r0, 0xB1 - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B38: - movs r0, 0xCE - lsls r0, 1 - bl PlayBGM - b _08013B48 -_08013B42: - ldr r1, _08013B54 @ =gBattlescriptCurrInstr - ldr r0, _08013B58 @ =BattleScript_PayDayMoneyAndPickUpItems -_08013B46: - str r0, [r1] -_08013B48: - ldr r1, _08013B5C @ =gBattleMainFunc - ldr r0, _08013B60 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013B54: .4byte gBattlescriptCurrInstr -_08013B58: .4byte BattleScript_PayDayMoneyAndPickUpItems -_08013B5C: .4byte gBattleMainFunc -_08013B60: .4byte sub_8013C9C - thumb_func_end sub_8013998 - thumb_func_start sub_8013B64 sub_8013B64: @ 8013B64 push {r4,lr} - ldr r1, _08013B9C @ =gFightStateTracker + ldr r1, _08013B9C @ =gCurrentActionFuncId movs r0, 0 strb r0, [r1] ldr r0, _08013BA0 @ =gBattleTypeFlags @@ -926,7 +22,7 @@ sub_8013B64: @ 8013B64 ldrb r0, [r4] strb r0, [r1] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08013BAC @ =gBankAttacker strb r0, [r1] ldr r1, _08013BB0 @ =gBattlescriptCurrInstr @@ -938,7 +34,7 @@ sub_8013B64: @ 8013B64 strb r0, [r4] b _08013BBE .align 2, 0 -_08013B9C: .4byte gFightStateTracker +_08013B9C: .4byte gCurrentActionFuncId _08013BA0: .4byte gBattleTypeFlags _08013BA4: .4byte gBattleTextBuff1 _08013BA8: .4byte gBattleOutcome @@ -966,7 +62,7 @@ _08013BD8: .4byte sub_8013C9C thumb_func_start sub_8013BDC sub_8013BDC: @ 8013BDC push {lr} - ldr r1, _08013C04 @ =gFightStateTracker + ldr r1, _08013C04 @ =gCurrentActionFuncId movs r0, 0 strb r0, [r1] ldr r1, _08013C08 @ =gProtectStructs @@ -985,7 +81,7 @@ sub_8013BDC: @ 8013BDC ldr r0, _08013C14 @ =BattleScript_GotAwaySafely b _08013C2C .align 2, 0 -_08013C04: .4byte gFightStateTracker +_08013C04: .4byte gCurrentActionFuncId _08013C08: .4byte gProtectStructs _08013C0C: .4byte gBankAttacker _08013C10: .4byte gBattlescriptCurrInstr @@ -1016,7 +112,7 @@ _08013C44: .4byte sub_8013C9C thumb_func_start sub_8013C48 sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gFightStateTracker + ldr r1, _08013C7C @ =gCurrentActionFuncId movs r0, 0 strb r0, [r1] ldr r1, _08013C80 @ =gBattleTextBuff1 @@ -1043,7 +139,7 @@ sub_8013C48: @ 8013C48 str r0, [r1] bx lr .align 2, 0 -_08013C7C: .4byte gFightStateTracker +_08013C7C: .4byte gCurrentActionFuncId _08013C80: .4byte gBattleTextBuff1 _08013C84: .4byte gBankAttacker _08013C88: .4byte gBattlePartyID @@ -1056,7 +152,7 @@ _08013C98: .4byte sub_8013C9C thumb_func_start sub_8013C9C sub_8013C9C: @ 8013C9C push {r4-r7,lr} - ldr r0, _08013D00 @ =gFightStateTracker + ldr r0, _08013D00 @ =gCurrentActionFuncId ldrb r0, [r0] subs r0, 0xB lsls r0, 24 @@ -1104,7 +200,7 @@ _08013CCE: bl StringCopy b _08013D36 .align 2, 0 -_08013D00: .4byte gFightStateTracker +_08013D00: .4byte gCurrentActionFuncId _08013D04: .4byte gBattleTypeFlags _08013D08: .4byte 0x00000b92 _08013D0C: .4byte gActiveBank @@ -1391,7 +487,7 @@ _08013F50: .4byte gEnemyParty thumb_func_start sub_8013F54 sub_8013F54: @ 8013F54 push {lr} - ldr r0, _08013F84 @ =gFightStateTracker + ldr r0, _08013F84 @ =gCurrentActionFuncId ldrb r0, [r0] subs r0, 0xB lsls r0, 24 @@ -1415,7 +511,7 @@ _08013F74: str r1, [r0] b _08013FAA .align 2, 0 -_08013F84: .4byte gFightStateTracker +_08013F84: .4byte gCurrentActionFuncId _08013F88: .4byte gSharedMem + 0x17140 _08013F8C: .4byte gBattleMainFunc _08013F90: @@ -1476,7 +572,7 @@ sub_8013FE8: @ 8013FE8 str r0, [sp] ldr r7, _08014028 @ =gBankAttacker ldr r1, _0801402C @ =gTurnOrder - ldr r0, _08014030 @ =gCurrentMoveTurn + ldr r0, _08014030 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -1494,17 +590,17 @@ sub_8013FE8: @ 8013FE8 ands r2, r0 cmp r2, 0 beq _08014044 - ldr r1, _08014040 @ =gFightStateTracker + ldr r1, _08014040 @ =gCurrentActionFuncId movs r0, 0xC b _080146CC .align 2, 0 _08014028: .4byte gBankAttacker _0801402C: .4byte gTurnOrder -_08014030: .4byte gCurrentMoveTurn +_08014030: .4byte gCurrentTurnActionNumber _08014034: .4byte gSharedMem _08014038: .4byte 0x000160a6 _0801403C: .4byte gBitTable -_08014040: .4byte gFightStateTracker +_08014040: .4byte gCurrentActionFuncId _08014044: ldr r1, _080140B8 @ =gCritMultiplier movs r0, 0x1 @@ -1791,7 +887,7 @@ _080142B0: eors r0, r1 lsls r0, 24 lsrs r6, r0, 24 - ldr r1, _08014320 @ =gSideTimer + ldr r1, _08014320 @ =gSideTimers lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -1834,7 +930,7 @@ _080142B0: _08014314: .4byte gBattleResults _08014318: .4byte gCurrentMove _0801431C: .4byte gBankAttacker -_08014320: .4byte gSideTimer +_08014320: .4byte gSideTimers _08014324: .4byte gBattleMoves _08014328: .4byte gBattleMons _0801432C: .4byte gBankTarget @@ -1849,7 +945,7 @@ _08014330: bne _08014342 b _0801461C _08014342: - ldr r1, _0801445C @ =gSideTimer + ldr r1, _0801445C @ =gSideTimers lsls r0, r6, 1 adds r0, r6 lsls r0, 2 @@ -1991,7 +1087,7 @@ _0801441E: .align 2, 0 _08014454: .4byte gBattleTypeFlags _08014458: .4byte gBankAttacker -_0801445C: .4byte gSideTimer +_0801445C: .4byte gSideTimers _08014460: .4byte gBattleMoves _08014464: .4byte gCurrentMove _08014468: .4byte gBattleMons @@ -2014,7 +1110,7 @@ _08014484: _08014494: movs r0, 0x2 _08014496: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _080144A0 @ =gBankTarget strb r0, [r1] b _080144B6 @@ -2071,7 +1167,7 @@ _08014504: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldrb r1, [r7] ldrb r2, [r5] @@ -2162,7 +1258,7 @@ _080145C0: _080145D0: movs r0, 0x2 _080145D2: - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _0801460C @ =gBankTarget strb r0, [r1] ldr r0, _08014610 @ =gAbsentBankFlags @@ -2239,7 +1335,7 @@ _08014674: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] ldrb r1, [r6] ldrb r2, [r5] @@ -2257,7 +1353,7 @@ _0801469A: eors r0, r1 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity strb r0, [r5] _080146AC: ldr r4, _080146E0 @ =gBattlescriptCurrInstr @@ -2274,7 +1370,7 @@ _080146AC: adds r0, r3 ldr r0, [r0] str r0, [r4] - ldr r1, _080146F0 @ =gFightStateTracker + ldr r1, _080146F0 @ =gCurrentActionFuncId movs r0, 0xA _080146CC: strb r0, [r1] @@ -2291,7 +1387,7 @@ _080146E0: .4byte gBattlescriptCurrInstr _080146E4: .4byte gBattleScriptsForMoveEffects _080146E8: .4byte gBattleMoves _080146EC: .4byte gCurrentMove -_080146F0: .4byte gFightStateTracker +_080146F0: .4byte gCurrentActionFuncId thumb_func_end sub_8013FE8 thumb_func_start sub_80146F4 @@ -2299,7 +1395,7 @@ sub_80146F4: @ 80146F4 push {r4,lr} ldr r3, _08014764 @ =gBankAttacker ldr r1, _08014768 @ =gTurnOrder - ldr r0, _0801476C @ =gCurrentMoveTurn + ldr r0, _0801476C @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -2339,7 +1435,7 @@ sub_80146F4: @ 80146F4 ldr r1, _08014790 @ =gBattlescriptCurrInstr ldr r0, _08014794 @ =BattleScript_ActionSwitch str r0, [r1] - ldr r1, _08014798 @ =gFightStateTracker + ldr r1, _08014798 @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] ldr r1, _0801479C @ =gBattleResults @@ -2355,7 +1451,7 @@ _0801475C: .align 2, 0 _08014764: .4byte gBankAttacker _08014768: .4byte gTurnOrder -_0801476C: .4byte gCurrentMoveTurn +_0801476C: .4byte gCurrentTurnActionNumber _08014770: .4byte gUnknown_030042A4 _08014774: .4byte gUnknown_030042A0 _08014778: .4byte gActionSelectionCursor @@ -2366,7 +1462,7 @@ _08014788: .4byte 0x00016064 _0801478C: .4byte 0x00016003 _08014790: .4byte gBattlescriptCurrInstr _08014794: .4byte BattleScript_ActionSwitch -_08014798: .4byte gFightStateTracker +_08014798: .4byte gCurrentActionFuncId _0801479C: .4byte gBattleResults thumb_func_end sub_80146F4 @@ -2380,7 +1476,7 @@ sub_80147A0: @ 80147A0 ldr r4, _08014804 @ =gBankAttacker ldr r2, _08014808 @ =gBankTarget ldr r1, _0801480C @ =gTurnOrder - ldr r0, _08014810 @ =gCurrentMoveTurn + ldr r0, _08014810 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -2425,7 +1521,7 @@ sub_80147A0: @ 80147A0 _08014804: .4byte gBankAttacker _08014808: .4byte gBankTarget _0801480C: .4byte gTurnOrder -_08014810: .4byte gCurrentMoveTurn +_08014810: .4byte gCurrentTurnActionNumber _08014814: .4byte gUnknown_030042A4 _08014818: .4byte gUnknown_030042A0 _0801481C: .4byte gDisableStructs @@ -2718,7 +1814,7 @@ _08014A74: str r0, [r1] _08014A8C: movs r0, 0xA - ldr r2, _08014AB4 @ =gFightStateTracker + ldr r2, _08014AB4 @ =gCurrentActionFuncId strb r0, [r2] pop {r3-r5} mov r8, r3 @@ -2733,7 +1829,7 @@ _08014AA4: .4byte gBankAttacker _08014AA8: .4byte gBattlescriptCurrInstr _08014AAC: .4byte gBattlescriptsForUsingItem _08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gFightStateTracker +_08014AB4: .4byte gCurrentActionFuncId thumb_func_end sub_80147A0 thumb_func_start sub_8014AB8 @@ -2871,7 +1967,7 @@ _08014BB6: _08014BC2: cmp r5, 0 beq _08014BD4 - ldr r1, _08014BE8 @ =gCurrentMoveTurn + ldr r1, _08014BE8 @ =gCurrentTurnActionNumber ldr r0, _08014BEC @ =gNoOfAllBanks ldrb r0, [r0] strb r0, [r1] @@ -2887,7 +1983,7 @@ _08014BD4: _08014BDC: .4byte gBattleTypeFlags _08014BE0: .4byte gSharedMem _08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gCurrentMoveTurn +_08014BE8: .4byte gCurrentTurnActionNumber _08014BEC: .4byte gNoOfAllBanks _08014BF0: .4byte gBattleOutcome thumb_func_end sub_8014AB8 @@ -2897,7 +1993,7 @@ sub_8014BF4: @ 8014BF4 push {r4-r6,lr} ldr r4, _08014C44 @ =gBankAttacker ldr r1, _08014C48 @ =gTurnOrder - ldr r5, _08014C4C @ =gCurrentMoveTurn + ldr r5, _08014C4C @ =gCurrentTurnActionNumber ldrb r0, [r5] adds r0, r1 ldrb r0, [r0] @@ -2937,7 +2033,7 @@ _08014C28: .align 2, 0 _08014C44: .4byte gBankAttacker _08014C48: .4byte gTurnOrder -_08014C4C: .4byte gCurrentMoveTurn +_08014C4C: .4byte gCurrentTurnActionNumber _08014C50: .4byte gBattleTypeFlags _08014C54: .4byte gNoOfAllBanks _08014C58: .4byte gActiveBank @@ -3001,7 +2097,7 @@ _08014C9C: ldr r1, _08014CE8 @ =gBattlescriptCurrInstr ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString str r0, [r1] - ldr r1, _08014CF0 @ =gFightStateTracker + ldr r1, _08014CF0 @ =gCurrentActionFuncId movs r0, 0xA b _08014D3E .align 2, 0 @@ -3010,7 +2106,7 @@ _08014CE0: .4byte 0xfdffffff _08014CE4: .4byte gBattleCommunication _08014CE8: .4byte gBattlescriptCurrInstr _08014CEC: .4byte BattleScript_PrintFailedToRunString -_08014CF0: .4byte gFightStateTracker +_08014CF0: .4byte gCurrentActionFuncId _08014CF4: ldr r1, _08014D1C @ =gBattleMons ldrb r2, [r4] @@ -3029,7 +2125,7 @@ _08014CF4: ldr r1, _08014D28 @ =gBattlescriptCurrInstr ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString str r0, [r1] - ldr r1, _08014D30 @ =gFightStateTracker + ldr r1, _08014D30 @ =gCurrentActionFuncId movs r0, 0xA b _08014D3E .align 2, 0 @@ -3038,7 +2134,7 @@ _08014D20: .4byte 0x0400e000 _08014D24: .4byte gBattleCommunication _08014D28: .4byte gBattlescriptCurrInstr _08014D2C: .4byte BattleScript_PrintFailedToRunString -_08014D30: .4byte gFightStateTracker +_08014D30: .4byte gCurrentActionFuncId _08014D34: ldr r0, _08014D48 @ =gNoOfAllBanks ldrb r0, [r0] @@ -3060,7 +2156,7 @@ _08014D4C: .4byte gBattleOutcome sub_8014D50: @ 8014D50 ldr r2, _08014D78 @ =gBankAttacker ldr r1, _08014D7C @ =gTurnOrder - ldr r0, _08014D80 @ =gCurrentMoveTurn + ldr r0, _08014D80 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -3074,26 +2170,26 @@ sub_8014D50: @ 8014D50 ldr r0, _08014D90 @ =gBattlescriptsForSafariActions ldr r0, [r0] str r0, [r1] - ldr r1, _08014D94 @ =gFightStateTracker + ldr r1, _08014D94 @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 _08014D78: .4byte gBankAttacker _08014D7C: .4byte gTurnOrder -_08014D80: .4byte gCurrentMoveTurn +_08014D80: .4byte gCurrentTurnActionNumber _08014D84: .4byte gUnknown_030042A4 _08014D88: .4byte gUnknown_030042A0 _08014D8C: .4byte gBattlescriptCurrInstr _08014D90: .4byte gBattlescriptsForSafariActions -_08014D94: .4byte gFightStateTracker +_08014D94: .4byte gCurrentActionFuncId thumb_func_end sub_8014D50 thumb_func_start sub_8014D98 sub_8014D98: @ 8014D98 ldr r2, _08014DD0 @ =gBankAttacker ldr r1, _08014DD4 @ =gTurnOrder - ldr r0, _08014DD8 @ =gCurrentMoveTurn + ldr r0, _08014DD8 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -3114,21 +2210,21 @@ sub_8014D98: @ 8014D98 ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow ldr r0, [r0, 0x14] str r0, [r1] - ldr r1, _08014DF4 @ =gFightStateTracker + ldr r1, _08014DF4 @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] bx lr .align 2, 0 _08014DD0: .4byte gBankAttacker _08014DD4: .4byte gTurnOrder -_08014DD8: .4byte gCurrentMoveTurn +_08014DD8: .4byte gCurrentTurnActionNumber _08014DDC: .4byte gUnknown_030042A4 _08014DE0: .4byte gUnknown_030042A0 _08014DE4: .4byte gNumSafariBalls _08014DE8: .4byte gLastUsedItem _08014DEC: .4byte gBattlescriptCurrInstr _08014DF0: .4byte gBattlescriptsForBallThrow -_08014DF4: .4byte gFightStateTracker +_08014DF4: .4byte gCurrentActionFuncId thumb_func_end sub_8014D98 thumb_func_start sub_8014DF8 @@ -3136,7 +2232,7 @@ sub_8014DF8: @ 8014DF8 push {r4-r6,lr} ldr r3, _08014E68 @ =gBankAttacker ldr r1, _08014E6C @ =gTurnOrder - ldr r0, _08014E70 @ =gCurrentMoveTurn + ldr r0, _08014E70 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -3192,7 +2288,7 @@ _08014E42: .align 2, 0 _08014E68: .4byte gBankAttacker _08014E6C: .4byte gTurnOrder -_08014E70: .4byte gCurrentMoveTurn +_08014E70: .4byte gCurrentTurnActionNumber _08014E74: .4byte gUnknown_030042A4 _08014E78: .4byte gUnknown_030042A0 _08014E7C: .4byte gBattleCommunication @@ -3211,7 +2307,7 @@ _08014E9C: ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions ldr r0, [r0, 0x8] str r0, [r1] - ldr r1, _08014EB8 @ =gFightStateTracker + ldr r1, _08014EB8 @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] pop {r4-r6} @@ -3220,7 +2316,7 @@ _08014E9C: .align 2, 0 _08014EB0: .4byte gBattlescriptCurrInstr _08014EB4: .4byte gBattlescriptsForSafariActions -_08014EB8: .4byte gFightStateTracker +_08014EB8: .4byte gCurrentActionFuncId thumb_func_end sub_8014DF8 thumb_func_start sub_8014EBC @@ -3228,7 +2324,7 @@ sub_8014EBC: @ 8014EBC push {r4,r5,lr} ldr r2, _08014F28 @ =gBankAttacker ldr r1, _08014F2C @ =gTurnOrder - ldr r0, _08014F30 @ =gCurrentMoveTurn + ldr r0, _08014F30 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r0, [r0] @@ -3284,7 +2380,7 @@ _08014F18: .align 2, 0 _08014F28: .4byte gBankAttacker _08014F2C: .4byte gTurnOrder -_08014F30: .4byte gCurrentMoveTurn +_08014F30: .4byte gCurrentTurnActionNumber _08014F34: .4byte gUnknown_030042A4 _08014F38: .4byte gUnknown_030042A0 _08014F3C: .4byte gSharedMem @@ -3302,7 +2398,7 @@ _08014F5A: ldr r0, _08014F78 @ =gBattlescriptsForSafariActions ldr r0, [r0, 0x4] str r0, [r1] - ldr r1, _08014F7C @ =gFightStateTracker + ldr r1, _08014F7C @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] pop {r4,r5} @@ -3312,7 +2408,7 @@ _08014F5A: _08014F70: .4byte gBattleCommunication _08014F74: .4byte gBattlescriptCurrInstr _08014F78: .4byte gBattlescriptsForSafariActions -_08014F7C: .4byte gFightStateTracker +_08014F7C: .4byte gCurrentActionFuncId thumb_func_end sub_8014EBC thumb_func_start bs8_exit_by_flight @@ -3320,7 +2416,7 @@ bs8_exit_by_flight: @ 8014F80 push {r4,lr} ldr r2, _08014FA8 @ =gBankAttacker ldr r1, _08014FAC @ =gTurnOrder - ldr r4, _08014FB0 @ =gCurrentMoveTurn + ldr r4, _08014FB0 @ =gCurrentTurnActionNumber ldrb r0, [r4] adds r0, r1 ldrb r0, [r0] @@ -3339,7 +2435,7 @@ bs8_exit_by_flight: @ 8014F80 .align 2, 0 _08014FA8: .4byte gBankAttacker _08014FAC: .4byte gTurnOrder -_08014FB0: .4byte gCurrentMoveTurn +_08014FB0: .4byte gCurrentTurnActionNumber _08014FB4: .4byte gNoOfAllBanks _08014FB8: .4byte gBattleOutcome thumb_func_end bs8_exit_by_flight @@ -3348,7 +2444,7 @@ _08014FB8: .4byte gBattleOutcome sub_8014FBC: @ 8014FBC ldr r3, _08015008 @ =gBankAttacker ldr r1, _0801500C @ =gTurnOrder - ldr r0, _08015010 @ =gCurrentMoveTurn + ldr r0, _08015010 @ =gCurrentTurnActionNumber ldrb r0, [r0] adds r0, r1 ldrb r2, [r0] @@ -3376,7 +2472,7 @@ sub_8014FBC: @ 8014FBC ldr r0, _08015028 @ =gBattlescriptsForSafariActions ldr r0, [r0, 0xC] str r0, [r1] - ldr r1, _0801502C @ =gFightStateTracker + ldr r1, _0801502C @ =gCurrentActionFuncId movs r0, 0xA strb r0, [r1] ldr r1, _08015030 @ =gUnknown_02024A76 @@ -3386,14 +2482,14 @@ sub_8014FBC: @ 8014FBC .align 2, 0 _08015008: .4byte gBankAttacker _0801500C: .4byte gTurnOrder -_08015010: .4byte gCurrentMoveTurn +_08015010: .4byte gCurrentTurnActionNumber _08015014: .4byte gUnknown_030042A4 _08015018: .4byte gUnknown_030042A0 _0801501C: .4byte gBattleTextBuff1 _08015020: .4byte gBattlePartyID _08015024: .4byte gBattlescriptCurrInstr _08015028: .4byte gBattlescriptsForSafariActions -_0801502C: .4byte gFightStateTracker +_0801502C: .4byte gCurrentActionFuncId _08015030: .4byte gUnknown_02024A76 thumb_func_end sub_8014FBC @@ -3409,7 +2505,7 @@ bsB_exit_by_move: @ 8015034 ldr r2, _08015058 @ =0x00016059 adds r0, r2 strb r1, [r0] - ldr r1, _0801505C @ =gFightStateTracker + ldr r1, _0801505C @ =gCurrentActionFuncId movs r0, 0xC strb r0, [r1] _08015050: @@ -3418,16 +2514,16 @@ _08015050: .align 2, 0 _08015054: .4byte gSharedMem _08015058: .4byte 0x00016059 -_0801505C: .4byte gFightStateTracker +_0801505C: .4byte gCurrentActionFuncId thumb_func_end bsB_exit_by_move thumb_func_start sub_8015060 sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gCurrentMoveTurn + ldr r1, _08015080 @ =gCurrentTurnActionNumber ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r3, _08015084 @ =gFightStateTracker + ldr r3, _08015084 @ =gCurrentActionFuncId ldr r2, _08015088 @ =gUnknown_02024A76 ldrb r0, [r1] adds r0, r2 @@ -3440,8 +2536,8 @@ sub_8015060: @ 8015060 str r0, [r2] bx lr .align 2, 0 -_08015080: .4byte gCurrentMoveTurn -_08015084: .4byte gFightStateTracker +_08015080: .4byte gCurrentTurnActionNumber +_08015084: .4byte gCurrentActionFuncId _08015088: .4byte gUnknown_02024A76 _0801508C: .4byte gHitMarker _08015090: .4byte 0xf1e892af @@ -3450,11 +2546,11 @@ _08015090: .4byte 0xf1e892af thumb_func_start bsC_8016D70 bsC_8016D70: @ 8015094 push {r4,r5,lr} - ldr r1, _0801510C @ =gCurrentMoveTurn + ldr r1, _0801510C @ =gCurrentTurnActionNumber ldrb r0, [r1] adds r0, 0x1 strb r0, [r1] - ldr r3, _08015110 @ =gFightStateTracker + ldr r3, _08015110 @ =gCurrentActionFuncId ldr r2, _08015114 @ =gUnknown_02024A76 ldrb r0, [r1] adds r0, r2 @@ -3509,8 +2605,8 @@ bsC_8016D70: @ 8015094 pop {r0} bx r0 .align 2, 0 -_0801510C: .4byte gCurrentMoveTurn -_08015110: .4byte gFightStateTracker +_0801510C: .4byte gCurrentTurnActionNumber +_08015110: .4byte gCurrentActionFuncId _08015114: .4byte gUnknown_02024A76 _08015118: .4byte gHitMarker _0801511C: .4byte 0xf1e892af diff --git a/asm/battle_9.s b/asm/battle_9.s index dce32d076..b86914ca6 100644 --- a/asm/battle_9.s +++ b/asm/battle_9.s @@ -95,7 +95,7 @@ _0803609C: .4byte 0x000160c8 _080360A0: ldr r4, _080361D8 @ =gBattleMons movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x58 @@ -108,7 +108,7 @@ _080360A0: b _080361C8 _080360BC: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r6, 0 @@ -187,7 +187,7 @@ _08036110: movs r1, 0x2E bl GetMonData movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r2, r0, 24 movs r4, 0 @@ -312,7 +312,7 @@ _08036242: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036290 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036294 @ =gBitTable @@ -339,7 +339,7 @@ _08036298: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r7, r0, 24 b _080362B2 @@ -656,7 +656,7 @@ ai_has_super_effective_move_on_field: @ 8036514 lsrs r0, 24 mov r8, r0 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, _080365AC @ =gAbsentBankFlags @@ -733,7 +733,7 @@ _080365C0: b _08036640 _080365C4: movs r0, 0x2 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r3, r0, 24 ldr r0, _0803664C @ =gAbsentBankFlags @@ -909,7 +909,7 @@ _080366F6: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036748 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _0803674C @ =gBitTable @@ -938,7 +938,7 @@ _08036750: eors r0, r4 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -1238,7 +1238,7 @@ _080369A0: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _080369F4 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _080369F8 @ =gBitTable @@ -1265,7 +1265,7 @@ _080369FC: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 b _08036A18 @@ -1427,7 +1427,7 @@ _08036B28: cmp r0, 0 bne _08036B78 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 @@ -1439,11 +1439,11 @@ _08036B70: .4byte gActiveBank _08036B74: .4byte 0x000160c8 _08036B78: movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r6, r0, 24 movs r0, 0x3 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 _08036B8C: @@ -1636,7 +1636,7 @@ sub_8036CD4: @ 8036CD4 eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08036D24 @ =gAbsentBankFlags ldrb r1, [r1] ldr r2, _08036D28 @ =gBitTable @@ -1661,7 +1661,7 @@ _08036D2C: eors r0, r5 lsls r0, 24 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x10] @@ -1692,7 +1692,7 @@ _08036D70: .4byte gAbsentBankFlags _08036D74: .4byte gBitTable _08036D78: movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 mov r10, r0 @@ -2598,7 +2598,7 @@ _08037468: ldrb r0, [r0, 0x16] cmp r0, 0 beq _080374A8 - ldr r0, _080374A4 @ =gSideTimer + ldr r0, _080374A4 @ =gSideTimers lsls r1, r3, 1 adds r1, r3 lsls r1, 2 @@ -2613,7 +2613,7 @@ _08037496: .align 2, 0 _0803749C: .4byte gActiveBank _080374A0: .4byte gDisableStructs -_080374A4: .4byte gSideTimer +_080374A4: .4byte gSideTimers _080374A8: mov r1, r8 cmp r1, 0 diff --git a/asm/battle_anim_813F0F4.s b/asm/battle_anim_813F0F4.s index 73f399caa..fb9c25a82 100644 --- a/asm/battle_anim_813F0F4.s +++ b/asm/battle_anim_813F0F4.s @@ -1366,7 +1366,7 @@ _0813FBE0: lsls r4, 24 lsrs r4, 24 movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 bl sub_8079E90 @@ -1418,7 +1418,7 @@ _0813FBE0: ldr r0, _0813FCAC @ =SpriteCallbackDummy str r0, [r4] movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _0813FCB0 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1462,7 +1462,7 @@ sub_813FCBC: @ 813FCBC lsrs r5, r0, 24 ldr r6, _0813FD1C @ =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _0813FD20 @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1519,7 +1519,7 @@ sub_813FD34: @ 813FD34 lsrs r5, r0, 24 ldr r6, _0813FD88 @ =gSprites movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r4, _0813FD8C @ =gObjectBankIDs lsls r0, 24 lsrs r0, 24 @@ -1535,7 +1535,7 @@ sub_813FD34: @ 813FD34 cmp r0, 0 bge _0813FD80 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r0, r4 @@ -5483,7 +5483,7 @@ sub_8141C30: @ 8141C30 movs r0, 0x1E strh r0, [r4, 0x2E] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0 @@ -5495,7 +5495,7 @@ sub_8141C30: @ 8141C30 adds r0, r1 strh r0, [r4, 0x32] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 movs r1, 0x1 @@ -5644,11 +5644,11 @@ sub_8141D7C: @ 8141D7C lsls r4, 24 lsrs r4, 24 movs r0, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08141DA4 @ =gAnimBankAttacker strb r0, [r1] movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity ldr r1, _08141DA8 @ =gAnimBankTarget strb r0, [r1] adds r0, r4, 0 diff --git a/asm/battle_intro.s b/asm/battle_intro.s index 10b504a79..4bfcf42fb 100755 --- a/asm/battle_intro.s +++ b/asm/battle_intro.s @@ -1474,7 +1474,7 @@ sub_80E4EF8: @ 80E4EF8 lsls r5, 24 lsrs r5, 24 adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 ldr r2, _080E4FCC @ =0x040000d4 diff --git a/asm/dark.s b/asm/dark.s index 3fcc3f56c..f3274861c 100755 --- a/asm/dark.s +++ b/asm/dark.s @@ -1940,7 +1940,7 @@ _080E0E8A: beq _080E0EB6 _080E0E90: adds r0, r4, 0 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r0, r4, 0 diff --git a/asm/ice.s b/asm/ice.s index 1fad057ed..557be621c 100755 --- a/asm/ice.s +++ b/asm/ice.s @@ -2701,7 +2701,7 @@ sub_80D8BA8: @ 80D8BA8 ldrh r0, [r4, 0x2] lsls r0, 20 lsrs r0, 24 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r5, r0, 24 adds r0, r5, 0 diff --git a/asm/pokemon_item_effect.s b/asm/pokemon_item_effect.s index 822c4c566..a8b8fa401 100644 --- a/asm/pokemon_item_effect.s +++ b/asm/pokemon_item_effect.s @@ -529,7 +529,7 @@ _0803E59C: adds r6, r2, 0 cmp r0, 0 beq _0803E5E4 - ldr r5, _0803E758 @ =gSideTimer + ldr r5, _0803E758 @ =gSideTimers ldr r4, _0803E75C @ =gActiveBank ldrb r0, [r4] bl GetBankSide @@ -738,7 +738,7 @@ _0803E74E: str r5, [sp, 0x1C] bl _0803F14C .align 2, 0 -_0803E758: .4byte gSideTimer +_0803E758: .4byte gSideTimers _0803E75C: .4byte gActiveBank _0803E760: .4byte gExperienceTables _0803E764: .4byte gBaseStats diff --git a/asm/psychic.s b/asm/psychic.s index 7a6000335..20e558bf6 100755 --- a/asm/psychic.s +++ b/asm/psychic.s @@ -39,7 +39,7 @@ _080DB77E: cmp r0, 0 bne _080DB7DA movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r7, r4, 0 @@ -274,7 +274,7 @@ sub_80DB92C: @ 80DB92C cmp r0, 0 bne _080DB9BC movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r4, r0, 24 adds r6, r4, 0 @@ -349,7 +349,7 @@ sub_80DB9E4: @ 80DB9E4 cmp r0, 0 bne _080DBA3C movs r0, 0x1 - bl GetBankByPlayerAI + bl GetBankByIdentity lsls r0, 24 lsrs r0, 24 adds r4, r0, 0 diff --git a/constants/trainer_constants.inc b/constants/trainer_constants.inc index 48ed3036e..920ac1e32 100644 --- a/constants/trainer_constants.inc +++ b/constants/trainer_constants.inc @@ -1,80 +1,80 @@ - .set TRAINER_CLASS_AQUA_LEADER, 0 - .set TRAINER_CLASS_TEAM_AQUA_M, 1 - .set TRAINER_CLASS_TEAM_AQUA_F, 2 - .set TRAINER_CLASS_AROMA_LADY, 3 - .set TRAINER_CLASS_RUIN_MANIAC, 4 - .set TRAINER_CLASS_INTERVIEWER, 5 - .set TRAINER_CLASS_TUBER_F, 6 - .set TRAINER_CLASS_TUBER_M, 7 - .set TRAINER_CLASS_COOL_TRAINER_M, 8 - .set TRAINER_CLASS_COOL_TRAINER_F, 9 - .set TRAINER_CLASS_HEX_MANIAC, 10 - .set TRAINER_CLASS_LADY, 11 - .set TRAINER_CLASS_BEAUTY, 12 - .set TRAINER_CLASS_RICH_BOY, 13 - .set TRAINER_CLASS_POKEMANIAC, 14 - .set TRAINER_CLASS_SWIMMER_M, 15 - .set TRAINER_CLASS_BLACK_BELT, 16 - .set TRAINER_CLASS_GUITARIST, 17 - .set TRAINER_CLASS_KINDLER, 18 - .set TRAINER_CLASS_CAMPER, 19 - .set TRAINER_CLASS_BUG_MANIAC, 20 - .set TRAINER_CLASS_PSYCHIC_M, 21 - .set TRAINER_CLASS_PSYCHIC_F, 22 - .set TRAINER_CLASS_GENTLEMAN, 23 - .set TRAINER_CLASS_ELITE_FOUR_M, 24 - .set TRAINER_CLASS_ELITE_FOUR_F, 25 - .set TRAINER_CLASS_LEADER_F, 26 - .set TRAINER_CLASS_LEADER_M, 27 - .set TRAINER_CLASS_LEADER_MF, 28 - .set TRAINER_CLASS_SCHOOL_KID_M, 29 - .set TRAINER_CLASS_SCHOOL_KID_F, 30 - .set TRAINER_CLASS_SR_AND_JR, 31 - .set TRAINER_CLASS_POKEFAN_M, 32 - .set TRAINER_CLASS_POKEFAN_F, 33 - .set TRAINER_CLASS_EXPERT_M, 34 - .set TRAINER_CLASS_EXPERT_F, 35 - .set TRAINER_CLASS_YOUNGSTER, 36 - .set TRAINER_CLASS_CHAMPION, 37 - .set TRAINER_CLASS_FISHERMAN, 38 - .set TRAINER_CLASS_CYCLING_TRIATHLETE_M, 39 - .set TRAINER_CLASS_CYCLING_TRIATHLETE_F, 40 - .set TRAINER_CLASS_RUNNING_TRIATHLETE_M, 41 - .set TRAINER_CLASS_RUNNING_TRIATHLETE_F, 42 - .set TRAINER_CLASS_SWIMMING_TRIATHLETE_M, 43 - .set TRAINER_CLASS_SWIMMING_TRIATHLETE_F, 44 - .set TRAINER_CLASS_DRAGON_TAMER, 45 - .set TRAINER_CLASS_BIRD_KEEPER, 46 - .set TRAINER_CLASS_NINJA_BOY, 47 - .set TRAINER_CLASS_BATTLE_GIRL, 48 - .set TRAINER_CLASS_PARASOL_LADY, 49 - .set TRAINER_CLASS_SWIMMER_F, 50 - .set TRAINER_CLASS_PICNICKER, 51 - .set TRAINER_CLASS_TWINS, 52 - .set TRAINER_CLASS_SAILOR, 53 - .set TRAINER_CLASS_BOARDER_1, 54 - .set TRAINER_CLASS_BOARDER_2, 55 - .set TRAINER_CLASS_COLLECTOR, 56 - .set TRAINER_CLASS_WALLY, 57 - .set TRAINER_CLASS_BRENDAN_1, 58 - .set TRAINER_CLASS_BRENDAN_2, 59 - .set TRAINER_CLASS_BRENDAN_3, 60 - .set TRAINER_CLASS_MAY_1, 61 - .set TRAINER_CLASS_MAY_2, 62 - .set TRAINER_CLASS_MAY_3, 63 - .set TRAINER_CLASS_POKEMON_BREEDER_M, 64 - .set TRAINER_CLASS_POKEMON_BREEDER_F, 65 - .set TRAINER_CLASS_POKEMON_RANGER_M, 66 - .set TRAINER_CLASS_POKEMON_RANGER_F, 67 - .set TRAINER_CLASS_MAGMA_LEADER, 68 - .set TRAINER_CLASS_TEAM_MAGMA_M, 69 - .set TRAINER_CLASS_TEAM_MAGMA_F, 70 - .set TRAINER_CLASS_LASS, 71 - .set TRAINER_CLASS_BUG_CATCHER, 72 - .set TRAINER_CLASS_HIKER, 73 - .set TRAINER_CLASS_YOUNG_COUPLE, 74 - .set TRAINER_CLASS_OLD_COUPLE, 75 - .set TRAINER_CLASS_SIS_AND_BRO, 76 + .set FACILITY_CLASS_AQUA_LEADER, 0 + .set FACILITY_CLASS_TEAM_AQUA_M, 1 + .set FACILITY_CLASS_TEAM_AQUA_F, 2 + .set FACILITY_CLASS_AROMA_LADY, 3 + .set FACILITY_CLASS_RUIN_MANIAC, 4 + .set FACILITY_CLASS_INTERVIEWER, 5 + .set FACILITY_CLASS_TUBER_F, 6 + .set FACILITY_CLASS_TUBER_M, 7 + .set FACILITY_CLASS_COOL_TRAINER_M, 8 + .set FACILITY_CLASS_COOL_TRAINER_F, 9 + .set FACILITY_CLASS_HEX_MANIAC, 10 + .set FACILITY_CLASS_LADY, 11 + .set FACILITY_CLASS_BEAUTY, 12 + .set FACILITY_CLASS_RICH_BOY, 13 + .set FACILITY_CLASS_POKEMANIAC, 14 + .set FACILITY_CLASS_SWIMMER_M, 15 + .set FACILITY_CLASS_BLACK_BELT, 16 + .set FACILITY_CLASS_GUITARIST, 17 + .set FACILITY_CLASS_KINDLER, 18 + .set FACILITY_CLASS_CAMPER, 19 + .set FACILITY_CLASS_BUG_MANIAC, 20 + .set FACILITY_CLASS_PSYCHIC_M, 21 + .set FACILITY_CLASS_PSYCHIC_F, 22 + .set FACILITY_CLASS_GENTLEMAN, 23 + .set FACILITY_CLASS_ELITE_FOUR_M, 24 + .set FACILITY_CLASS_ELITE_FOUR_F, 25 + .set FACILITY_CLASS_LEADER_F, 26 + .set FACILITY_CLASS_LEADER_M, 27 + .set FACILITY_CLASS_LEADER_MF, 28 + .set FACILITY_CLASS_SCHOOL_KID_M, 29 + .set FACILITY_CLASS_SCHOOL_KID_F, 30 + .set FACILITY_CLASS_SR_AND_JR, 31 + .set FACILITY_CLASS_POKEFAN_M, 32 + .set FACILITY_CLASS_POKEFAN_F, 33 + .set FACILITY_CLASS_EXPERT_M, 34 + .set FACILITY_CLASS_EXPERT_F, 35 + .set FACILITY_CLASS_YOUNGSTER, 36 + .set FACILITY_CLASS_CHAMPION, 37 + .set FACILITY_CLASS_FISHERMAN, 38 + .set FACILITY_CLASS_CYCLING_TRIATHLETE_M, 39 + .set FACILITY_CLASS_CYCLING_TRIATHLETE_F, 40 + .set FACILITY_CLASS_RUNNING_TRIATHLETE_M, 41 + .set FACILITY_CLASS_RUNNING_TRIATHLETE_F, 42 + .set FACILITY_CLASS_SWIMMING_TRIATHLETE_M, 43 + .set FACILITY_CLASS_SWIMMING_TRIATHLETE_F, 44 + .set FACILITY_CLASS_DRAGON_TAMER, 45 + .set FACILITY_CLASS_BIRD_KEEPER, 46 + .set FACILITY_CLASS_NINJA_BOY, 47 + .set FACILITY_CLASS_BATTLE_GIRL, 48 + .set FACILITY_CLASS_PARASOL_LADY, 49 + .set FACILITY_CLASS_SWIMMER_F, 50 + .set FACILITY_CLASS_PICNICKER, 51 + .set FACILITY_CLASS_TWINS, 52 + .set FACILITY_CLASS_SAILOR, 53 + .set FACILITY_CLASS_BOARDER_1, 54 + .set FACILITY_CLASS_BOARDER_2, 55 + .set FACILITY_CLASS_COLLECTOR, 56 + .set FACILITY_CLASS_WALLY, 57 + .set FACILITY_CLASS_BRENDAN_1, 58 + .set FACILITY_CLASS_BRENDAN_2, 59 + .set FACILITY_CLASS_BRENDAN_3, 60 + .set FACILITY_CLASS_MAY_1, 61 + .set FACILITY_CLASS_MAY_2, 62 + .set FACILITY_CLASS_MAY_3, 63 + .set FACILITY_CLASS_POKEMON_BREEDER_M, 64 + .set FACILITY_CLASS_POKEMON_BREEDER_F, 65 + .set FACILITY_CLASS_POKEMON_RANGER_M, 66 + .set FACILITY_CLASS_POKEMON_RANGER_F, 67 + .set FACILITY_CLASS_MAGMA_LEADER, 68 + .set FACILITY_CLASS_TEAM_MAGMA_M, 69 + .set FACILITY_CLASS_TEAM_MAGMA_F, 70 + .set FACILITY_CLASS_LASS, 71 + .set FACILITY_CLASS_BUG_CATCHER, 72 + .set FACILITY_CLASS_HIKER, 73 + .set FACILITY_CLASS_YOUNG_COUPLE, 74 + .set FACILITY_CLASS_OLD_COUPLE, 75 + .set FACILITY_CLASS_SIS_AND_BRO, 76 .set TRAINER_PIC_BRENDAN, 0 .set TRAINER_PIC_MAY, 1 @@ -160,64 +160,64 @@ .set TRAINER_PIC_GLACIA, 81 .set TRAINER_PIC_DRAKE, 82 - .set TRAINER_CLASS_NAME_POKEMON_TRAINER_1, 0 - .set TRAINER_CLASS_NAME_POKEMON_TRAINER_2, 1 - .set TRAINER_CLASS_NAME_AQUA_LEADER, 2 - .set TRAINER_CLASS_NAME_TEAM_AQUA, 3 - .set TRAINER_CLASS_NAME_AQUA_ADMIN, 4 - .set TRAINER_CLASS_NAME_AROMA_LADY, 5 - .set TRAINER_CLASS_NAME_RUIN_MANIAC, 6 - .set TRAINER_CLASS_NAME_INTERVIEWER, 7 - .set TRAINER_CLASS_NAME_TUBER_F, 8 - .set TRAINER_CLASS_NAME_TUBER_M, 9 - .set TRAINER_CLASS_NAME_COOL_TRAINER, 10 - .set TRAINER_CLASS_NAME_HEX_MANIAC, 11 - .set TRAINER_CLASS_NAME_LADY, 12 - .set TRAINER_CLASS_NAME_BEAUTY, 13 - .set TRAINER_CLASS_NAME_RICH_BOY, 14 - .set TRAINER_CLASS_NAME_POKEMANIAC, 15 - .set TRAINER_CLASS_NAME_SWIMMER_M, 16 - .set TRAINER_CLASS_NAME_BLACK_BELT, 17 - .set TRAINER_CLASS_NAME_GUITARIST, 18 - .set TRAINER_CLASS_NAME_KINDLER, 19 - .set TRAINER_CLASS_NAME_CAMPER, 20 - .set TRAINER_CLASS_NAME_BUG_MANIAC, 21 - .set TRAINER_CLASS_NAME_PSYCHIC, 22 - .set TRAINER_CLASS_NAME_GENTLEMAN, 23 - .set TRAINER_CLASS_NAME_ELITE_FOUR, 24 - .set TRAINER_CLASS_NAME_LEADER, 25 - .set TRAINER_CLASS_NAME_SCHOOL_KID, 26 - .set TRAINER_CLASS_NAME_SR_AND_JR, 27 - .set TRAINER_CLASS_NAME_WINSTRATE, 28 - .set TRAINER_CLASS_NAME_POKEFAN, 29 - .set TRAINER_CLASS_NAME_EXPERT, 30 - .set TRAINER_CLASS_NAME_YOUNGSTER, 31 - .set TRAINER_CLASS_NAME_CHAMPION, 32 - .set TRAINER_CLASS_NAME_FISHERMAN, 33 - .set TRAINER_CLASS_NAME_TRIATHLETE, 34 - .set TRAINER_CLASS_NAME_DRAGON_TAMER, 35 - .set TRAINER_CLASS_NAME_BIRD_KEEPER, 36 - .set TRAINER_CLASS_NAME_NINJA_BOY, 37 - .set TRAINER_CLASS_NAME_BATTLE_GIRL, 38 - .set TRAINER_CLASS_NAME_PARASOL_LADY, 39 - .set TRAINER_CLASS_NAME_SWIMMER_F, 40 - .set TRAINER_CLASS_NAME_PICNICKER, 41 - .set TRAINER_CLASS_NAME_TWINS, 42 - .set TRAINER_CLASS_NAME_SAILOR, 43 - .set TRAINER_CLASS_NAME_BOARDER, 44 - .set TRAINER_CLASS_NAME_COLLECTOR, 45 - .set TRAINER_CLASS_NAME_POKEMON_TRAINER_3, 46 - .set TRAINER_CLASS_NAME_POKEMON_BREEDER, 47 - .set TRAINER_CLASS_NAME_POKEMON_RANGER, 48 - .set TRAINER_CLASS_NAME_MAGMA_LEADER, 49 - .set TRAINER_CLASS_NAME_TEAM_MAGMA, 50 - .set TRAINER_CLASS_NAME_MAGMA_ADMIN, 51 - .set TRAINER_CLASS_NAME_LASS, 52 - .set TRAINER_CLASS_NAME_BUG_CATCHER, 53 - .set TRAINER_CLASS_NAME_HIKER, 54 - .set TRAINER_CLASS_NAME_YOUNG_COUPLE, 55 - .set TRAINER_CLASS_NAME_OLD_COUPLE, 56 - .set TRAINER_CLASS_NAME_SIS_AND_BRO, 57 + .set TRAINER_CLASS_POKEMON_TRAINER_1, 0 + .set TRAINER_CLASS_POKEMON_TRAINER_2, 1 + .set TRAINER_CLASS_AQUA_LEADER, 2 + .set TRAINER_CLASS_TEAM_AQUA, 3 + .set TRAINER_CLASS_AQUA_ADMIN, 4 + .set TRAINER_CLASS_AROMA_LADY, 5 + .set TRAINER_CLASS_RUIN_MANIAC, 6 + .set TRAINER_CLASS_INTERVIEWER, 7 + .set TRAINER_CLASS_TUBER_F, 8 + .set TRAINER_CLASS_TUBER_M, 9 + .set TRAINER_CLASS_COOL_TRAINER, 10 + .set TRAINER_CLASS_HEX_MANIAC, 11 + .set TRAINER_CLASS_LADY, 12 + .set TRAINER_CLASS_BEAUTY, 13 + .set TRAINER_CLASS_RICH_BOY, 14 + .set TRAINER_CLASS_POKEMANIAC, 15 + .set TRAINER_CLASS_SWIMMER_M, 16 + .set TRAINER_CLASS_BLACK_BELT, 17 + .set TRAINER_CLASS_GUITARIST, 18 + .set TRAINER_CLASS_KINDLER, 19 + .set TRAINER_CLASS_CAMPER, 20 + .set TRAINER_CLASS_BUG_MANIAC, 21 + .set TRAINER_CLASS_PSYCHIC, 22 + .set TRAINER_CLASS_GENTLEMAN, 23 + .set TRAINER_CLASS_ELITE_FOUR, 24 + .set TRAINER_CLASS_LEADER, 25 + .set TRAINER_CLASS_SCHOOL_KID, 26 + .set TRAINER_CLASS_SR_AND_JR, 27 + .set TRAINER_CLASS_WINSTRATE, 28 + .set TRAINER_CLASS_POKEFAN, 29 + .set TRAINER_CLASS_EXPERT, 30 + .set TRAINER_CLASS_YOUNGSTER, 31 + .set TRAINER_CLASS_CHAMPION, 32 + .set TRAINER_CLASS_FISHERMAN, 33 + .set TRAINER_CLASS_TRIATHLETE, 34 + .set TRAINER_CLASS_DRAGON_TAMER, 35 + .set TRAINER_CLASS_BIRD_KEEPER, 36 + .set TRAINER_CLASS_NINJA_BOY, 37 + .set TRAINER_CLASS_BATTLE_GIRL, 38 + .set TRAINER_CLASS_PARASOL_LADY, 39 + .set TRAINER_CLASS_SWIMMER_F, 40 + .set TRAINER_CLASS_PICNICKER, 41 + .set TRAINER_CLASS_TWINS, 42 + .set TRAINER_CLASS_SAILOR, 43 + .set TRAINER_CLASS_BOARDER, 44 + .set TRAINER_CLASS_COLLECTOR, 45 + .set TRAINER_CLASS_POKEMON_TRAINER_3, 46 + .set TRAINER_CLASS_POKEMON_BREEDER, 47 + .set TRAINER_CLASS_POKEMON_RANGER, 48 + .set TRAINER_CLASS_MAGMA_LEADER, 49 + .set TRAINER_CLASS_TEAM_MAGMA, 50 + .set TRAINER_CLASS_MAGMA_ADMIN, 51 + .set TRAINER_CLASS_LASS, 52 + .set TRAINER_CLASS_BUG_CATCHER, 53 + .set TRAINER_CLASS_HIKER, 54 + .set TRAINER_CLASS_YOUNG_COUPLE, 55 + .set TRAINER_CLASS_OLD_COUPLE, 56 + .set TRAINER_CLASS_SIS_AND_BRO, 57 .set TRAINER_ENCOUNTER_MUSIC_MALE, 0 @ standard male encounter music .set TRAINER_ENCOUNTER_MUSIC_FEMALE, 1 @ standard female encounter music diff --git a/data-de/trainers.inc b/data-de/trainers.inc index 47e4c2289..39bfd9bfe 100644 --- a/data-de/trainers.inc +++ b/data-de/trainers.inc @@ -2,7 +2,7 @@ gTrainers:: @ 81F04FC @ NONE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_1 + .byte TRAINER_CLASS_POKEMON_TRAINER_1 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "$", 12 @@ -14,7 +14,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ADRIAN$", 12 @@ -26,7 +26,7 @@ gTrainers:: @ 81F04FC @ GRUNT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -38,7 +38,7 @@ gTrainers:: @ 81F04FC @ GRUNT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -50,7 +50,7 @@ gTrainers:: @ 81F04FC @ GRUNT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -62,7 +62,7 @@ gTrainers:: @ 81F04FC @ GRUNT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -74,7 +74,7 @@ gTrainers:: @ 81F04FC @ GRUNT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -86,7 +86,7 @@ gTrainers:: @ 81F04FC @ GRUNT_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -98,7 +98,7 @@ gTrainers:: @ 81F04FC @ GRUNT_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -110,7 +110,7 @@ gTrainers:: @ 81F04FC @ GRUNT_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -122,7 +122,7 @@ gTrainers:: @ 81F04FC @ GRUNT_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -134,7 +134,7 @@ gTrainers:: @ 81F04FC @ GRUNT_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -146,7 +146,7 @@ gTrainers:: @ 81F04FC @ GRUNT_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -158,7 +158,7 @@ gTrainers:: @ 81F04FC @ GRUNT_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -170,7 +170,7 @@ gTrainers:: @ 81F04FC @ GRUNT_13 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -182,7 +182,7 @@ gTrainers:: @ 81F04FC @ GRUNT_14 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -194,7 +194,7 @@ gTrainers:: @ 81F04FC @ GRUNT_15 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -206,7 +206,7 @@ gTrainers:: @ 81F04FC @ GRUNT_16 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -218,7 +218,7 @@ gTrainers:: @ 81F04FC @ GRUNT_17 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -230,7 +230,7 @@ gTrainers:: @ 81F04FC @ GRUNT_18 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -242,7 +242,7 @@ gTrainers:: @ 81F04FC @ GRUNT_19 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -254,7 +254,7 @@ gTrainers:: @ 81F04FC @ GRUNT_20 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -266,7 +266,7 @@ gTrainers:: @ 81F04FC @ GRUNT_21 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -278,7 +278,7 @@ gTrainers:: @ 81F04FC @ GRUNT_22 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -290,7 +290,7 @@ gTrainers:: @ 81F04FC @ GRUNT_23 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -302,7 +302,7 @@ gTrainers:: @ 81F04FC @ GRUNT_24 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "RÜPEL$", 12 @@ -314,7 +314,7 @@ gTrainers:: @ 81F04FC @ GRUNT_25 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "RÜPEL$", 12 @@ -326,7 +326,7 @@ gTrainers:: @ 81F04FC @ GRUNT_26 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "RÜPEL$", 12 @@ -338,7 +338,7 @@ gTrainers:: @ 81F04FC @ GRUNT_27 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "RÜPEL$", 12 @@ -350,7 +350,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "$", 12 @@ -362,7 +362,7 @@ gTrainers:: @ 81F04FC @ MATT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "WOLFGANG$", 12 @@ -374,7 +374,7 @@ gTrainers:: @ 81F04FC @ MATT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "WOLFGANG$", 12 @@ -386,7 +386,7 @@ gTrainers:: @ 81F04FC @ SHELLY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_F .string "KORDULA$", 12 @@ -398,7 +398,7 @@ gTrainers:: @ 81F04FC @ SHELLY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_F .string "KORDULA$", 12 @@ -410,7 +410,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ADRIAN$", 12 @@ -422,7 +422,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ADRIAN$", 12 @@ -434,7 +434,7 @@ gTrainers:: @ 81F04FC @ DAISY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "MARGARETE$", 12 @@ -446,7 +446,7 @@ gTrainers:: @ 81F04FC @ ROSE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSEMARIE$", 12 @@ -458,7 +458,7 @@ gTrainers:: @ 81F04FC @ LILY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "LILLY$", 12 @@ -470,7 +470,7 @@ gTrainers:: @ 81F04FC @ VIOLET .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ERIKA$", 12 @@ -482,7 +482,7 @@ gTrainers:: @ 81F04FC @ ROSE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSEMARIE$", 12 @@ -494,7 +494,7 @@ gTrainers:: @ 81F04FC @ ROSE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSEMARIE$", 12 @@ -506,7 +506,7 @@ gTrainers:: @ 81F04FC @ ROSE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSEMARIE$", 12 @@ -518,7 +518,7 @@ gTrainers:: @ 81F04FC @ ROSE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSEMARIE$", 12 @@ -530,7 +530,7 @@ gTrainers:: @ 81F04FC @ DUSTY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RÜDIGER$", 12 @@ -542,7 +542,7 @@ gTrainers:: @ 81F04FC @ CHIP .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RUPRECHT$", 12 @@ -554,7 +554,7 @@ gTrainers:: @ 81F04FC @ FOSTER .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RUBEN$", 12 @@ -566,7 +566,7 @@ gTrainers:: @ 81F04FC @ DUSTY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RÜDIGER$", 12 @@ -578,7 +578,7 @@ gTrainers:: @ 81F04FC @ DUSTY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RÜDIGER$", 12 @@ -590,7 +590,7 @@ gTrainers:: @ 81F04FC @ DUSTY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RÜDIGER$", 12 @@ -602,7 +602,7 @@ gTrainers:: @ 81F04FC @ DUSTY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "RÜDIGER$", 12 @@ -614,7 +614,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -626,7 +626,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -638,7 +638,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -650,7 +650,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -662,7 +662,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -674,7 +674,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "PIA & UDO$", 12 @@ -686,7 +686,7 @@ gTrainers:: @ 81F04FC @ LOLA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -698,7 +698,7 @@ gTrainers:: @ 81F04FC @ CARMEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "CARMEN$", 12 @@ -710,7 +710,7 @@ gTrainers:: @ 81F04FC @ GWEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "HILDE $", 12 @@ -722,7 +722,7 @@ gTrainers:: @ 81F04FC @ LOLA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -734,7 +734,7 @@ gTrainers:: @ 81F04FC @ LOLA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -746,7 +746,7 @@ gTrainers:: @ 81F04FC @ LOLA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -758,7 +758,7 @@ gTrainers:: @ 81F04FC @ LOLA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -770,7 +770,7 @@ gTrainers:: @ 81F04FC @ RICKY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "GÜNTHER$", 12 @@ -782,7 +782,7 @@ gTrainers:: @ 81F04FC @ SIMON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "SIMON$", 12 @@ -794,7 +794,7 @@ gTrainers:: @ 81F04FC @ CHARLIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "HILMAR$", 12 @@ -806,7 +806,7 @@ gTrainers:: @ 81F04FC @ RICKY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "GÜNTHER$", 12 @@ -818,7 +818,7 @@ gTrainers:: @ 81F04FC @ RICKY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "GÜNTHER$", 12 @@ -830,7 +830,7 @@ gTrainers:: @ 81F04FC @ RICKY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "GÜNTHER$", 12 @@ -842,7 +842,7 @@ gTrainers:: @ 81F04FC @ RICKY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "GÜNTHER$", 12 @@ -854,7 +854,7 @@ gTrainers:: @ 81F04FC @ RANDALL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "HUBERT$", 12 @@ -866,7 +866,7 @@ gTrainers:: @ 81F04FC @ PARKER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PATRICK$", 12 @@ -878,7 +878,7 @@ gTrainers:: @ 81F04FC @ GEORGE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "NILS$", 12 @@ -890,7 +890,7 @@ gTrainers:: @ 81F04FC @ BERKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "CHRISTIAN$", 12 @@ -902,7 +902,7 @@ gTrainers:: @ 81F04FC @ CLYDE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "OSKAR$", 12 @@ -914,7 +914,7 @@ gTrainers:: @ 81F04FC @ VINCENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "OTFRIED$", 12 @@ -926,7 +926,7 @@ gTrainers:: @ 81F04FC @ LEROY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "OTMAR$", 12 @@ -938,7 +938,7 @@ gTrainers:: @ 81F04FC @ WILTON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PASCAL$", 12 @@ -950,7 +950,7 @@ gTrainers:: @ 81F04FC @ EDGAR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "EDGAR$", 12 @@ -962,7 +962,7 @@ gTrainers:: @ 81F04FC @ ALBERT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PABLO$", 12 @@ -974,7 +974,7 @@ gTrainers:: @ 81F04FC @ SAMUEL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "RICHARD$", 12 @@ -986,7 +986,7 @@ gTrainers:: @ 81F04FC @ VITO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PAUL$", 12 @@ -998,7 +998,7 @@ gTrainers:: @ 81F04FC @ OWEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "RAIMUND$", 12 @@ -1010,7 +1010,7 @@ gTrainers:: @ 81F04FC @ WILTON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PASCAL$", 12 @@ -1022,7 +1022,7 @@ gTrainers:: @ 81F04FC @ WILTON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PASCAL$", 12 @@ -1034,7 +1034,7 @@ gTrainers:: @ 81F04FC @ WILTON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PASCAL$", 12 @@ -1046,7 +1046,7 @@ gTrainers:: @ 81F04FC @ WILTON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PASCAL$", 12 @@ -1058,7 +1058,7 @@ gTrainers:: @ 81F04FC @ WARREN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "MARKUS$", 12 @@ -1070,7 +1070,7 @@ gTrainers:: @ 81F04FC @ MARY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "YVONNE$", 12 @@ -1082,7 +1082,7 @@ gTrainers:: @ 81F04FC @ LORI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "RAMONA$", 12 @@ -1094,7 +1094,7 @@ gTrainers:: @ 81F04FC @ JODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "ROSWITA$", 12 @@ -1106,7 +1106,7 @@ gTrainers:: @ 81F04FC @ WENDY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VIOLA$", 12 @@ -1118,7 +1118,7 @@ gTrainers:: @ 81F04FC @ ELAINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "FRAUKE$", 12 @@ -1130,7 +1130,7 @@ gTrainers:: @ 81F04FC @ BROOKE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VERONIKA$", 12 @@ -1142,7 +1142,7 @@ gTrainers:: @ 81F04FC @ JENNIFER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "MARIANNE$", 12 @@ -1154,7 +1154,7 @@ gTrainers:: @ 81F04FC @ HOPE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "TRUDLINDE$", 12 @@ -1166,7 +1166,7 @@ gTrainers:: @ 81F04FC @ SHANNON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "THERESA$", 12 @@ -1178,7 +1178,7 @@ gTrainers:: @ 81F04FC @ MICHELLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "MICHELLE$", 12 @@ -1190,7 +1190,7 @@ gTrainers:: @ 81F04FC @ CAROLINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "KAROLINE$", 12 @@ -1202,7 +1202,7 @@ gTrainers:: @ 81F04FC @ JULIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "MICHAELA$", 12 @@ -1214,7 +1214,7 @@ gTrainers:: @ 81F04FC @ BROOKE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VERONIKA$", 12 @@ -1226,7 +1226,7 @@ gTrainers:: @ 81F04FC @ BROOKE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VERONIKA$", 12 @@ -1238,7 +1238,7 @@ gTrainers:: @ 81F04FC @ BROOKE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VERONIKA$", 12 @@ -1250,7 +1250,7 @@ gTrainers:: @ 81F04FC @ BROOKE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "VERONIKA$", 12 @@ -1262,7 +1262,7 @@ gTrainers:: @ 81F04FC @ PATRICIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "WALBURGA$", 12 @@ -1274,7 +1274,7 @@ gTrainers:: @ 81F04FC @ KINDRA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "GUNDULA$", 12 @@ -1286,7 +1286,7 @@ gTrainers:: @ 81F04FC @ TAMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "BRUNHILDE$", 12 @@ -1298,7 +1298,7 @@ gTrainers:: @ 81F04FC @ VALERIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TABITHA$", 12 @@ -1310,7 +1310,7 @@ gTrainers:: @ 81F04FC @ TASHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "PANDORA$", 12 @@ -1322,7 +1322,7 @@ gTrainers:: @ 81F04FC @ VALERIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TABITHA$", 12 @@ -1334,7 +1334,7 @@ gTrainers:: @ 81F04FC @ VALERIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TABITHA$", 12 @@ -1346,7 +1346,7 @@ gTrainers:: @ 81F04FC @ VALERIE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TABITHA$", 12 @@ -1358,7 +1358,7 @@ gTrainers:: @ 81F04FC @ VALERIE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TABITHA$", 12 @@ -1370,7 +1370,7 @@ gTrainers:: @ 81F04FC @ CINDY_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1382,7 +1382,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "$", 12 @@ -1394,7 +1394,7 @@ gTrainers:: @ 81F04FC @ BRIANNA_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "NATASCHA$", 12 @@ -1406,7 +1406,7 @@ gTrainers:: @ 81F04FC @ CINDY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1418,7 +1418,7 @@ gTrainers:: @ 81F04FC @ BRIANNA_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "NATASCHA$", 12 @@ -1430,7 +1430,7 @@ gTrainers:: @ 81F04FC @ ANETTE .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "ANETTE$", 12 @@ -1442,7 +1442,7 @@ gTrainers:: @ 81F04FC @ CINDY_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1454,7 +1454,7 @@ gTrainers:: @ 81F04FC @ CINDY_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1466,7 +1466,7 @@ gTrainers:: @ 81F04FC @ CINDY_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1478,7 +1478,7 @@ gTrainers:: @ 81F04FC @ CINDY_6 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "PATRIZIA$", 12 @@ -1490,7 +1490,7 @@ gTrainers:: @ 81F04FC @ MELISSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "MELISSA$", 12 @@ -1502,7 +1502,7 @@ gTrainers:: @ 81F04FC @ SHEILA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "SYLVIA$", 12 @@ -1514,7 +1514,7 @@ gTrainers:: @ 81F04FC @ SHIRLEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "MIRJAM$", 12 @@ -1526,7 +1526,7 @@ gTrainers:: @ 81F04FC @ JESSICA_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "GERMAINE$", 12 @@ -1538,7 +1538,7 @@ gTrainers:: @ 81F04FC @ CONNIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "FRANCESCA$", 12 @@ -1550,7 +1550,7 @@ gTrainers:: @ 81F04FC @ BRIDGET .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "SALMA$", 12 @@ -1562,7 +1562,7 @@ gTrainers:: @ 81F04FC @ OLIVIA .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "TIA$", 12 @@ -1574,7 +1574,7 @@ gTrainers:: @ 81F04FC @ TIFFANY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "DANIELA$", 12 @@ -1586,7 +1586,7 @@ gTrainers:: @ 81F04FC @ JESSICA_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "GERMAINE$", 12 @@ -1598,7 +1598,7 @@ gTrainers:: @ 81F04FC @ JESSICA_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "GERMAINE$", 12 @@ -1610,7 +1610,7 @@ gTrainers:: @ 81F04FC @ JESSICA_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "GERMAINE$", 12 @@ -1622,7 +1622,7 @@ gTrainers:: @ 81F04FC @ JESSICA_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "GERMAINE$", 12 @@ -1634,7 +1634,7 @@ gTrainers:: @ 81F04FC @ WINSTON_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "RENE$", 12 @@ -1646,7 +1646,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "$", 12 @@ -1658,7 +1658,7 @@ gTrainers:: @ 81F04FC @ GARRET .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "KAI$", 12 @@ -1670,7 +1670,7 @@ gTrainers:: @ 81F04FC @ WINSTON_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "RENE$", 12 @@ -1682,7 +1682,7 @@ gTrainers:: @ 81F04FC @ WINSTON_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "RENE$", 12 @@ -1694,7 +1694,7 @@ gTrainers:: @ 81F04FC @ WINSTON_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "RENE$", 12 @@ -1706,7 +1706,7 @@ gTrainers:: @ 81F04FC @ WINSTON_5 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "RENE$", 12 @@ -1718,7 +1718,7 @@ gTrainers:: @ 81F04FC @ STEVE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "HIRO$", 12 @@ -1730,7 +1730,7 @@ gTrainers:: @ 81F04FC @ CHRIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "CHRIS$", 12 @@ -1742,7 +1742,7 @@ gTrainers:: @ 81F04FC @ MARK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "MARK$", 12 @@ -1754,7 +1754,7 @@ gTrainers:: @ 81F04FC @ KENN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "KLAUS$", 12 @@ -1766,7 +1766,7 @@ gTrainers:: @ 81F04FC @ STEVE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "HIRO$", 12 @@ -1778,7 +1778,7 @@ gTrainers:: @ 81F04FC @ STEVE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "HIRO$", 12 @@ -1790,7 +1790,7 @@ gTrainers:: @ 81F04FC @ STEVE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "HIRO$", 12 @@ -1802,7 +1802,7 @@ gTrainers:: @ 81F04FC @ STEVE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "HIRO$", 12 @@ -1814,7 +1814,7 @@ gTrainers:: @ 81F04FC @ LUIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KONSTANTIN$", 12 @@ -1826,7 +1826,7 @@ gTrainers:: @ 81F04FC @ AUSTIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "GUIDO$", 12 @@ -1838,7 +1838,7 @@ gTrainers:: @ 81F04FC @ DOUGLAS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "IGNAZ$", 12 @@ -1850,7 +1850,7 @@ gTrainers:: @ 81F04FC @ DARRIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "MANUEL$", 12 @@ -1862,7 +1862,7 @@ gTrainers:: @ 81F04FC @ TONY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KEVIN$", 12 @@ -1874,7 +1874,7 @@ gTrainers:: @ 81F04FC @ JEROME .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "OSWALD$", 12 @@ -1886,7 +1886,7 @@ gTrainers:: @ 81F04FC @ MATTHEW .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "UMBERTO$", 12 @@ -1898,7 +1898,7 @@ gTrainers:: @ 81F04FC @ DAVID .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "WINFRIED$", 12 @@ -1910,7 +1910,7 @@ gTrainers:: @ 81F04FC @ SPENCER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "LEOPOLD$", 12 @@ -1922,7 +1922,7 @@ gTrainers:: @ 81F04FC @ ROLAND .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "THOMAS$", 12 @@ -1934,7 +1934,7 @@ gTrainers:: @ 81F04FC @ CODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TIMO$", 12 @@ -1946,7 +1946,7 @@ gTrainers:: @ 81F04FC @ STAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "BALTHASAR$", 12 @@ -1958,7 +1958,7 @@ gTrainers:: @ 81F04FC @ BARRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "BASIL$", 12 @@ -1970,7 +1970,7 @@ gTrainers:: @ 81F04FC @ DEAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DAGOBERT$", 12 @@ -1982,7 +1982,7 @@ gTrainers:: @ 81F04FC @ RODNEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DIETER$", 12 @@ -1994,7 +1994,7 @@ gTrainers:: @ 81F04FC @ RICHARD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "ENNO$", 12 @@ -2006,7 +2006,7 @@ gTrainers:: @ 81F04FC @ HERMAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "BENNO$", 12 @@ -2018,7 +2018,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "$", 12 @@ -2030,7 +2030,7 @@ gTrainers:: @ 81F04FC @ GILBERT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "ERICH$", 12 @@ -2042,7 +2042,7 @@ gTrainers:: @ 81F04FC @ FRANKLIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KASPER$", 12 @@ -2054,7 +2054,7 @@ gTrainers:: @ 81F04FC @ DANNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "MARCEL$", 12 @@ -2066,7 +2066,7 @@ gTrainers:: @ 81F04FC @ JACK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "PEDRO$", 12 @@ -2078,7 +2078,7 @@ gTrainers:: @ 81F04FC @ DUDLEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "THEODOR$", 12 @@ -2090,7 +2090,7 @@ gTrainers:: @ 81F04FC @ CHAD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "JANNIK$", 12 @@ -2102,7 +2102,7 @@ gTrainers:: @ 81F04FC @ TONY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KEVIN$", 12 @@ -2114,7 +2114,7 @@ gTrainers:: @ 81F04FC @ TONY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KEVIN$", 12 @@ -2126,7 +2126,7 @@ gTrainers:: @ 81F04FC @ TONY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KEVIN$", 12 @@ -2138,7 +2138,7 @@ gTrainers:: @ 81F04FC @ TONY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "KEVIN$", 12 @@ -2150,7 +2150,7 @@ gTrainers:: @ 81F04FC @ HIDEKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "SATORU$", 12 @@ -2162,7 +2162,7 @@ gTrainers:: @ 81F04FC @ HITOSHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "SHIGERU$", 12 @@ -2174,7 +2174,7 @@ gTrainers:: @ 81F04FC @ KIYO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "YU$", 12 @@ -2186,7 +2186,7 @@ gTrainers:: @ 81F04FC @ KOICHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "JUNICHI$", 12 @@ -2198,7 +2198,7 @@ gTrainers:: @ 81F04FC @ NOB_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "MINORU$", 12 @@ -2210,7 +2210,7 @@ gTrainers:: @ 81F04FC @ NOB_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "MINORU$", 12 @@ -2222,7 +2222,7 @@ gTrainers:: @ 81F04FC @ NOB_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "MINORU$", 12 @@ -2234,7 +2234,7 @@ gTrainers:: @ 81F04FC @ NOB_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "MINORU$", 12 @@ -2246,7 +2246,7 @@ gTrainers:: @ 81F04FC @ NOB_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "MINORU$", 12 @@ -2258,7 +2258,7 @@ gTrainers:: @ 81F04FC @ YUJI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "HIDEO$", 12 @@ -2270,7 +2270,7 @@ gTrainers:: @ 81F04FC @ DAISUKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "KENJI$", 12 @@ -2282,7 +2282,7 @@ gTrainers:: @ 81F04FC @ ATSUSHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "HIROSHI$", 12 @@ -2294,7 +2294,7 @@ gTrainers:: @ 81F04FC @ KIRK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "CHUCK$", 12 @@ -2306,7 +2306,7 @@ gTrainers:: @ 81F04FC @ SCOTT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "TREY$", 12 @@ -2318,7 +2318,7 @@ gTrainers:: @ 81F04FC @ HARVEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KERRY$", 12 @@ -2330,7 +2330,7 @@ gTrainers:: @ 81F04FC @ SHAWN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "REINHARD$", 12 @@ -2342,7 +2342,7 @@ gTrainers:: @ 81F04FC @ RANDY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "JEFF$", 12 @@ -2354,7 +2354,7 @@ gTrainers:: @ 81F04FC @ DALTON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2366,7 +2366,7 @@ gTrainers:: @ 81F04FC @ DALTON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2378,7 +2378,7 @@ gTrainers:: @ 81F04FC @ DALTON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2390,7 +2390,7 @@ gTrainers:: @ 81F04FC @ DALTON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2402,7 +2402,7 @@ gTrainers:: @ 81F04FC @ DALTON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2414,7 +2414,7 @@ gTrainers:: @ 81F04FC @ COLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HENDRIK$", 12 @@ -2426,7 +2426,7 @@ gTrainers:: @ 81F04FC @ FLINT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HEINZ$", 12 @@ -2438,7 +2438,7 @@ gTrainers:: @ 81F04FC @ AXLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HAGEN$", 12 @@ -2450,7 +2450,7 @@ gTrainers:: @ 81F04FC @ JAKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HANNES$", 12 @@ -2462,7 +2462,7 @@ gTrainers:: @ 81F04FC @ ANDY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HARTMANN$", 12 @@ -2474,7 +2474,7 @@ gTrainers:: @ 81F04FC @ BERNIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HASSO$", 12 @@ -2486,7 +2486,7 @@ gTrainers:: @ 81F04FC @ BERNIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HASSO$", 12 @@ -2498,7 +2498,7 @@ gTrainers:: @ 81F04FC @ BERNIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HASSO$", 12 @@ -2510,7 +2510,7 @@ gTrainers:: @ 81F04FC @ BERNIE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HASSO$", 12 @@ -2522,7 +2522,7 @@ gTrainers:: @ 81F04FC @ BERNIE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "HASSO$", 12 @@ -2534,7 +2534,7 @@ gTrainers:: @ 81F04FC @ DREW .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ISSIDOR$", 12 @@ -2546,7 +2546,7 @@ gTrainers:: @ 81F04FC @ CLIFF .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "IVAN$", 12 @@ -2558,7 +2558,7 @@ gTrainers:: @ 81F04FC @ LARRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "KAREL$", 12 @@ -2570,7 +2570,7 @@ gTrainers:: @ 81F04FC @ SHANE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "KUNO$", 12 @@ -2582,7 +2582,7 @@ gTrainers:: @ 81F04FC @ JUSTIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "LAURENZ$", 12 @@ -2594,7 +2594,7 @@ gTrainers:: @ 81F04FC @ ETHAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "EWALD$", 12 @@ -2606,7 +2606,7 @@ gTrainers:: @ 81F04FC @ JEFF .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "RAPHAEL$", 12 @@ -2618,7 +2618,7 @@ gTrainers:: @ 81F04FC @ TRAVIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "RONALD$", 12 @@ -2630,7 +2630,7 @@ gTrainers:: @ 81F04FC @ ETHAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "EWALD$", 12 @@ -2642,7 +2642,7 @@ gTrainers:: @ 81F04FC @ ETHAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "EWALD$", 12 @@ -2654,7 +2654,7 @@ gTrainers:: @ 81F04FC @ ETHAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "EWALD$", 12 @@ -2666,7 +2666,7 @@ gTrainers:: @ 81F04FC @ ETHAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "EWALD$", 12 @@ -2678,7 +2678,7 @@ gTrainers:: @ 81F04FC @ BRENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "ROMEO$", 12 @@ -2690,7 +2690,7 @@ gTrainers:: @ 81F04FC @ DONALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "TILL$", 12 @@ -2702,7 +2702,7 @@ gTrainers:: @ 81F04FC @ TAYLOR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "URIEL$", 12 @@ -2714,7 +2714,7 @@ gTrainers:: @ 81F04FC @ BRANDON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRUNO$", 12 @@ -2726,7 +2726,7 @@ gTrainers:: @ 81F04FC @ DEREK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BURKARD$", 12 @@ -2738,7 +2738,7 @@ gTrainers:: @ 81F04FC @ BRANDON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRUNO$", 12 @@ -2750,7 +2750,7 @@ gTrainers:: @ 81F04FC @ BRANDON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRUNO$", 12 @@ -2762,7 +2762,7 @@ gTrainers:: @ 81F04FC @ BRANDON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRUNO$", 12 @@ -2774,7 +2774,7 @@ gTrainers:: @ 81F04FC @ BRANDON_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRUNO$", 12 @@ -2786,7 +2786,7 @@ gTrainers:: @ 81F04FC @ EDWARD .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "WENDELIN$", 12 @@ -2798,7 +2798,7 @@ gTrainers:: @ 81F04FC @ PRESTON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "URBAN$", 12 @@ -2810,7 +2810,7 @@ gTrainers:: @ 81F04FC @ VIRGIL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "ZOLTAN$", 12 @@ -2822,7 +2822,7 @@ gTrainers:: @ 81F04FC @ FRITZ .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "XAVER$", 12 @@ -2834,7 +2834,7 @@ gTrainers:: @ 81F04FC @ WILLIAM .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "WULF$", 12 @@ -2846,7 +2846,7 @@ gTrainers:: @ 81F04FC @ JOSHUA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "JONAS$", 12 @@ -2858,7 +2858,7 @@ gTrainers:: @ 81F04FC @ CAMERON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "MAXIMILIAN$", 12 @@ -2870,7 +2870,7 @@ gTrainers:: @ 81F04FC @ CAMERON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "MAXIMILIAN$", 12 @@ -2882,7 +2882,7 @@ gTrainers:: @ 81F04FC @ CAMERON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "MAXIMILIAN$", 12 @@ -2894,7 +2894,7 @@ gTrainers:: @ 81F04FC @ CAMERON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "MAXIMILIAN$", 12 @@ -2906,7 +2906,7 @@ gTrainers:: @ 81F04FC @ CAMERON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "MAXIMILIAN$", 12 @@ -2918,7 +2918,7 @@ gTrainers:: @ 81F04FC @ JACLYN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "COSIMA$", 12 @@ -2930,7 +2930,7 @@ gTrainers:: @ 81F04FC @ HANNAH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "HANNAH$", 12 @@ -2942,7 +2942,7 @@ gTrainers:: @ 81F04FC @ SAMANTHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "SAMANTHA$", 12 @@ -2954,7 +2954,7 @@ gTrainers:: @ 81F04FC @ MAURA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "DOLORES$", 12 @@ -2966,7 +2966,7 @@ gTrainers:: @ 81F04FC @ KAYLA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "CAMILLA$", 12 @@ -2978,7 +2978,7 @@ gTrainers:: @ 81F04FC @ ALEXIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "ALEXIS$", 12 @@ -2990,7 +2990,7 @@ gTrainers:: @ 81F04FC @ JACKI_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KORNELIA$", 12 @@ -3002,7 +3002,7 @@ gTrainers:: @ 81F04FC @ JACKI_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KORNELIA$", 12 @@ -3014,7 +3014,7 @@ gTrainers:: @ 81F04FC @ JACKI_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KORNELIA$", 12 @@ -3026,7 +3026,7 @@ gTrainers:: @ 81F04FC @ JACKI_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KORNELIA$", 12 @@ -3038,7 +3038,7 @@ gTrainers:: @ 81F04FC @ JACKI_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KORNELIA$", 12 @@ -3050,7 +3050,7 @@ gTrainers:: @ 81F04FC @ WALTER_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "ABRAHAM$", 12 @@ -3062,7 +3062,7 @@ gTrainers:: @ 81F04FC @ TUCKER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "CLAUDIO$", 12 @@ -3074,7 +3074,7 @@ gTrainers:: @ 81F04FC @ THOMAS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "NIKOLAI$", 12 @@ -3086,7 +3086,7 @@ gTrainers:: @ 81F04FC @ WALTER_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "ABRAHAM$", 12 @@ -3098,7 +3098,7 @@ gTrainers:: @ 81F04FC @ WALTER_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "ABRAHAM$", 12 @@ -3110,7 +3110,7 @@ gTrainers:: @ 81F04FC @ WALTER_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "ABRAHAM$", 12 @@ -3122,7 +3122,7 @@ gTrainers:: @ 81F04FC @ WALTER_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "ABRAHAM$", 12 @@ -3134,7 +3134,7 @@ gTrainers:: @ 81F04FC @ SIDNEY .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_SIDNEY .string "ULRICH$", 12 @@ -3146,7 +3146,7 @@ gTrainers:: @ 81F04FC @ PHOEBE .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_PHOEBE .string "ANTONIA$", 12 @@ -3158,7 +3158,7 @@ gTrainers:: @ 81F04FC @ GLACIA .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_GLACIA .string "FROSINA$", 12 @@ -3170,7 +3170,7 @@ gTrainers:: @ 81F04FC @ DRAKE .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_DRAKE .string "DRAGAN$", 12 @@ -3182,7 +3182,7 @@ gTrainers:: @ 81F04FC @ ROXANNE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_ROXANNE .string "FELIZIA$", 12 @@ -3194,7 +3194,7 @@ gTrainers:: @ 81F04FC @ BRAWLY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRAWLY .string "KAMILLO$", 12 @@ -3206,7 +3206,7 @@ gTrainers:: @ 81F04FC @ WATTSON .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WATTSON .string "WALTER$", 12 @@ -3218,7 +3218,7 @@ gTrainers:: @ 81F04FC @ FLANNERY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_FLANNERY .string "FLAVIA$", 12 @@ -3230,7 +3230,7 @@ gTrainers:: @ 81F04FC @ NORMAN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_NORMAN .string "NORMAN$", 12 @@ -3242,7 +3242,7 @@ gTrainers:: @ 81F04FC @ WINONA .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_WINONA .string "WIBKE$", 12 @@ -3254,7 +3254,7 @@ gTrainers:: @ 81F04FC @ TATE_AND_LIZA .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_TATE_AND_LIZA .string "BEN&SVENJA$", 12 @@ -3266,7 +3266,7 @@ gTrainers:: @ 81F04FC @ WALLACE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLACE .string "WASSILI$", 12 @@ -3278,7 +3278,7 @@ gTrainers:: @ 81F04FC @ JERRY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "ORLANDO$", 12 @@ -3290,7 +3290,7 @@ gTrainers:: @ 81F04FC @ TED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "RAMON$", 12 @@ -3302,7 +3302,7 @@ gTrainers:: @ 81F04FC @ PAUL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JÜRGEN$", 12 @@ -3314,7 +3314,7 @@ gTrainers:: @ 81F04FC @ JERRY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "ORLANDO$", 12 @@ -3326,7 +3326,7 @@ gTrainers:: @ 81F04FC @ JERRY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "ORLANDO$", 12 @@ -3338,7 +3338,7 @@ gTrainers:: @ 81F04FC @ JERRY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "ORLANDO$", 12 @@ -3350,7 +3350,7 @@ gTrainers:: @ 81F04FC @ JERRY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "ORLANDO$", 12 @@ -3362,7 +3362,7 @@ gTrainers:: @ 81F04FC @ KAREN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KERSTIN$", 12 @@ -3374,7 +3374,7 @@ gTrainers:: @ 81F04FC @ GEORGIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "ARIANE$", 12 @@ -3386,7 +3386,7 @@ gTrainers:: @ 81F04FC @ KAREN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KERSTIN$", 12 @@ -3398,7 +3398,7 @@ gTrainers:: @ 81F04FC @ KAREN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KERSTIN$", 12 @@ -3410,7 +3410,7 @@ gTrainers:: @ 81F04FC @ KAREN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KERSTIN$", 12 @@ -3422,7 +3422,7 @@ gTrainers:: @ 81F04FC @ KAREN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KERSTIN$", 12 @@ -3434,7 +3434,7 @@ gTrainers:: @ 81F04FC @ KATE_AND_JOY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "EVA & UTE$", 12 @@ -3446,7 +3446,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "IRM & IDA$", 12 @@ -3458,7 +3458,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "IRM & IDA$", 12 @@ -3470,7 +3470,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "IRM & IDA$", 12 @@ -3482,7 +3482,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "IRM & IDA$", 12 @@ -3494,7 +3494,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "IRM & IDA$", 12 @@ -3506,7 +3506,7 @@ gTrainers:: @ 81F04FC @ VICTOR .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "VIKTOR$", 12 @@ -3518,7 +3518,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3530,7 +3530,7 @@ gTrainers:: @ 81F04FC @ COLTON .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "ATTILA$", 12 @@ -3542,7 +3542,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3554,7 +3554,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3566,7 +3566,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3578,7 +3578,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3590,7 +3590,7 @@ gTrainers:: @ 81F04FC @ VICTORIA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "VIKTORIA$", 12 @@ -3602,7 +3602,7 @@ gTrainers:: @ 81F04FC @ VANESSA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "VANESSA$", 12 @@ -3614,7 +3614,7 @@ gTrainers:: @ 81F04FC @ MARISSA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "EVELYN$", 12 @@ -3626,7 +3626,7 @@ gTrainers:: @ 81F04FC @ ISABEL_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3638,7 +3638,7 @@ gTrainers:: @ 81F04FC @ ISABEL_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3650,7 +3650,7 @@ gTrainers:: @ 81F04FC @ ISABEL_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3662,7 +3662,7 @@ gTrainers:: @ 81F04FC @ ISABEL_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3674,7 +3674,7 @@ gTrainers:: @ 81F04FC @ ISABEL_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3686,7 +3686,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "THEOBALD$", 12 @@ -3698,7 +3698,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "THEOBALD$", 12 @@ -3710,7 +3710,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "THEOBALD$", 12 @@ -3722,7 +3722,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "THEOBALD$", 12 @@ -3734,7 +3734,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "THEOBALD$", 12 @@ -3746,7 +3746,7 @@ gTrainers:: @ 81F04FC @ VICKY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "VICKY$", 12 @@ -3758,7 +3758,7 @@ gTrainers:: @ 81F04FC @ SHELBY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "WALTRAUD$", 12 @@ -3770,7 +3770,7 @@ gTrainers:: @ 81F04FC @ SHELBY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "WALTRAUD$", 12 @@ -3782,7 +3782,7 @@ gTrainers:: @ 81F04FC @ SHELBY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "WALTRAUD$", 12 @@ -3794,7 +3794,7 @@ gTrainers:: @ 81F04FC @ SHELBY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "WALTRAUD$", 12 @@ -3806,7 +3806,7 @@ gTrainers:: @ 81F04FC @ SHELBY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "WALTRAUD$", 12 @@ -3818,7 +3818,7 @@ gTrainers:: @ 81F04FC @ CALVIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANSGAR$", 12 @@ -3830,7 +3830,7 @@ gTrainers:: @ 81F04FC @ BILLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "FRIDOLIN$", 12 @@ -3842,7 +3842,7 @@ gTrainers:: @ 81F04FC @ JOSH .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "GASTON$", 12 @@ -3854,7 +3854,7 @@ gTrainers:: @ 81F04FC @ TOMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "DOMINIK$", 12 @@ -3866,7 +3866,7 @@ gTrainers:: @ 81F04FC @ JOEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "LUDGER$", 12 @@ -3878,7 +3878,7 @@ gTrainers:: @ 81F04FC @ BEN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "EGON$", 12 @@ -3890,7 +3890,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -3902,7 +3902,7 @@ gTrainers:: @ 81F04FC @ KEVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "JULIUS$", 12 @@ -3914,7 +3914,7 @@ gTrainers:: @ 81F04FC @ NEAL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "MORITZ$", 12 @@ -3926,7 +3926,7 @@ gTrainers:: @ 81F04FC @ DILLON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "SÖNCKE$", 12 @@ -3938,7 +3938,7 @@ gTrainers:: @ 81F04FC @ CALVIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANSGAR$", 12 @@ -3950,7 +3950,7 @@ gTrainers:: @ 81F04FC @ CALVIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANSGAR$", 12 @@ -3962,7 +3962,7 @@ gTrainers:: @ 81F04FC @ CALVIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANSGAR$", 12 @@ -3974,7 +3974,7 @@ gTrainers:: @ 81F04FC @ CALVIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANSGAR$", 12 @@ -3986,7 +3986,7 @@ gTrainers:: @ 81F04FC @ EDDIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "HENRY$", 12 @@ -3998,7 +3998,7 @@ gTrainers:: @ 81F04FC @ ALLEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "HUGO$", 12 @@ -4010,7 +4010,7 @@ gTrainers:: @ 81F04FC @ TIMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "FRIEDER$", 12 @@ -4022,7 +4022,7 @@ gTrainers:: @ 81F04FC @ STEVEN .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CHAMPION + .byte TRAINER_CLASS_CHAMPION .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_STEVEN .string "TROY$", 12 @@ -4034,7 +4034,7 @@ gTrainers:: @ 81F04FC @ ANDREW .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ANSGAR$", 12 @@ -4046,7 +4046,7 @@ gTrainers:: @ 81F04FC @ IVAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ANGELO$", 12 @@ -4058,7 +4058,7 @@ gTrainers:: @ 81F04FC @ CLAUDE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ANSELM$", 12 @@ -4070,7 +4070,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALOIS$", 12 @@ -4082,7 +4082,7 @@ gTrainers:: @ 81F04FC @ NED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ARTHUR$", 12 @@ -4094,7 +4094,7 @@ gTrainers:: @ 81F04FC @ DALE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALBIN$", 12 @@ -4106,7 +4106,7 @@ gTrainers:: @ 81F04FC @ NOLAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "AMADEUS$", 12 @@ -4118,7 +4118,7 @@ gTrainers:: @ 81F04FC @ BARNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALBRECHT$", 12 @@ -4130,7 +4130,7 @@ gTrainers:: @ 81F04FC @ WADE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALAIN$", 12 @@ -4142,7 +4142,7 @@ gTrainers:: @ 81F04FC @ CARTER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ARMIN$", 12 @@ -4154,7 +4154,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALOIS$", 12 @@ -4166,7 +4166,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALOIS$", 12 @@ -4178,7 +4178,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALOIS$", 12 @@ -4190,7 +4190,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALOIS$", 12 @@ -4202,7 +4202,7 @@ gTrainers:: @ 81F04FC @ RONALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ACHMED$", 12 @@ -4214,7 +4214,7 @@ gTrainers:: @ 81F04FC @ JACOB .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "ROMAN$", 12 @@ -4226,7 +4226,7 @@ gTrainers:: @ 81F04FC @ ANTHONY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EMIL$", 12 @@ -4238,7 +4238,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EGIDIUS$", 12 @@ -4250,7 +4250,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EGIDIUS$", 12 @@ -4262,7 +4262,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EGIDIUS$", 12 @@ -4274,7 +4274,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EGIDIUS$", 12 @@ -4286,7 +4286,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "EGIDIUS$", 12 @@ -4298,7 +4298,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "IRMGARD$", 12 @@ -4310,7 +4310,7 @@ gTrainers:: @ 81F04FC @ JASMINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "MARTHA$", 12 @@ -4322,7 +4322,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "IRMGARD$", 12 @@ -4334,7 +4334,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "IRMGARD$", 12 @@ -4346,7 +4346,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "IRMGARD$", 12 @@ -4358,7 +4358,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "IRMGARD$", 12 @@ -4370,7 +4370,7 @@ gTrainers:: @ 81F04FC @ DYLAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "IGOR$", 12 @@ -4382,7 +4382,7 @@ gTrainers:: @ 81F04FC @ DYLAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "IGOR$", 12 @@ -4394,7 +4394,7 @@ gTrainers:: @ 81F04FC @ DYLAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "IGOR$", 12 @@ -4406,7 +4406,7 @@ gTrainers:: @ 81F04FC @ DYLAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "IGOR$", 12 @@ -4418,7 +4418,7 @@ gTrainers:: @ 81F04FC @ DYLAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "IGOR$", 12 @@ -4430,7 +4430,7 @@ gTrainers:: @ 81F04FC @ MARIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "JUTTA$", 12 @@ -4442,7 +4442,7 @@ gTrainers:: @ 81F04FC @ MARIA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "JUTTA$", 12 @@ -4454,7 +4454,7 @@ gTrainers:: @ 81F04FC @ MARIA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "JUTTA$", 12 @@ -4466,7 +4466,7 @@ gTrainers:: @ 81F04FC @ MARIA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "JUTTA$", 12 @@ -4478,7 +4478,7 @@ gTrainers:: @ 81F04FC @ MARIA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "JUTTA$", 12 @@ -4490,7 +4490,7 @@ gTrainers:: @ 81F04FC @ CALEB .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "OLEG$", 12 @@ -4502,7 +4502,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "$", 12 @@ -4514,7 +4514,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "KASPAR$", 12 @@ -4526,7 +4526,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "$", 12 @@ -4538,7 +4538,7 @@ gTrainers:: @ 81F04FC @ CHASE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "FERDINAND$", 12 @@ -4550,7 +4550,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "KASPAR$", 12 @@ -4562,7 +4562,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "KASPAR$", 12 @@ -4574,7 +4574,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "KASPAR$", 12 @@ -4586,7 +4586,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "KASPAR$", 12 @@ -4598,7 +4598,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "$", 12 @@ -4610,7 +4610,7 @@ gTrainers:: @ 81F04FC @ CONNOR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MIRA$", 12 @@ -4622,7 +4622,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "$", 12 @@ -4634,7 +4634,7 @@ gTrainers:: @ 81F04FC @ KATELYN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MECHTHILD$", 12 @@ -4646,7 +4646,7 @@ gTrainers:: @ 81F04FC @ ALLISON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "LOTTE$", 12 @@ -4658,7 +4658,7 @@ gTrainers:: @ 81F04FC @ KATELYN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MECHTHILD$", 12 @@ -4670,7 +4670,7 @@ gTrainers:: @ 81F04FC @ KATELYN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MECHTHILD$", 12 @@ -4682,7 +4682,7 @@ gTrainers:: @ 81F04FC @ KATELYN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MECHTHILD$", 12 @@ -4694,7 +4694,7 @@ gTrainers:: @ 81F04FC @ KATELYN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "MECHTHILD$", 12 @@ -4706,7 +4706,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "ALFONS$", 12 @@ -4718,7 +4718,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "ALFONS$", 12 @@ -4730,7 +4730,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "ALFONS$", 12 @@ -4742,7 +4742,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "ALFONS$", 12 @@ -4754,7 +4754,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "ALFONS$", 12 @@ -4766,7 +4766,7 @@ gTrainers:: @ 81F04FC @ AARON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "EDMUND$", 12 @@ -4778,7 +4778,7 @@ gTrainers:: @ 81F04FC @ PERRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "JOSCHKA$", 12 @@ -4790,7 +4790,7 @@ gTrainers:: @ 81F04FC @ HUGH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ENRICO$", 12 @@ -4802,7 +4802,7 @@ gTrainers:: @ 81F04FC @ PHIL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "HENRY$", 12 @@ -4814,7 +4814,7 @@ gTrainers:: @ 81F04FC @ JARED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "HIOB$", 12 @@ -4826,7 +4826,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "$", 12 @@ -4838,7 +4838,7 @@ gTrainers:: @ 81F04FC @ TANNER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ANATOL$", 12 @@ -4850,7 +4850,7 @@ gTrainers:: @ 81F04FC @ WILL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "BJÖRN$", 12 @@ -4862,7 +4862,7 @@ gTrainers:: @ 81F04FC @ COLIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "WIM$", 12 @@ -4874,7 +4874,7 @@ gTrainers:: @ 81F04FC @ ROBERT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "FRITJOF$", 12 @@ -4886,7 +4886,7 @@ gTrainers:: @ 81F04FC @ BENNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "GENADI$", 12 @@ -4898,7 +4898,7 @@ gTrainers:: @ 81F04FC @ CHESTER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "VITALI$", 12 @@ -4910,7 +4910,7 @@ gTrainers:: @ 81F04FC @ ROBERT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "FRITJOF$", 12 @@ -4922,7 +4922,7 @@ gTrainers:: @ 81F04FC @ ROBERT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "FRITJOF$", 12 @@ -4934,7 +4934,7 @@ gTrainers:: @ 81F04FC @ ROBERT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "FRITJOF$", 12 @@ -4946,7 +4946,7 @@ gTrainers:: @ 81F04FC @ ROBERT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "FRITJOF$", 12 @@ -4958,7 +4958,7 @@ gTrainers:: @ 81F04FC @ ALEX .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ARNE$", 12 @@ -4970,7 +4970,7 @@ gTrainers:: @ 81F04FC @ BECK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "VINCENT$", 12 @@ -4982,7 +4982,7 @@ gTrainers:: @ 81F04FC @ YASU .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "VALENTIN$", 12 @@ -4994,7 +4994,7 @@ gTrainers:: @ 81F04FC @ TAKASHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EUGEN$", 12 @@ -5006,7 +5006,7 @@ gTrainers:: @ 81F04FC @ MAKOTO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "HERIBERT$", 12 @@ -5018,7 +5018,7 @@ gTrainers:: @ 81F04FC @ HIDEO_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "SAUL$", 12 @@ -5030,7 +5030,7 @@ gTrainers:: @ 81F04FC @ LAO_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EDUARD$", 12 @@ -5042,7 +5042,7 @@ gTrainers:: @ 81F04FC @ LUNG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "ARND$", 12 @@ -5054,7 +5054,7 @@ gTrainers:: @ 81F04FC @ LAO_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EDUARD$", 12 @@ -5066,7 +5066,7 @@ gTrainers:: @ 81F04FC @ LAO_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EDUARD$", 12 @@ -5078,7 +5078,7 @@ gTrainers:: @ 81F04FC @ LAO_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EDUARD$", 12 @@ -5090,7 +5090,7 @@ gTrainers:: @ 81F04FC @ LAO_5 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "EDUARD$", 12 @@ -5102,7 +5102,7 @@ gTrainers:: @ 81F04FC @ TESSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "TAMARA$", 12 @@ -5114,7 +5114,7 @@ gTrainers:: @ 81F04FC @ LAURA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "LAURA$", 12 @@ -5126,7 +5126,7 @@ gTrainers:: @ 81F04FC @ CYNDY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "ELFI$", 12 @@ -5138,7 +5138,7 @@ gTrainers:: @ 81F04FC @ CORA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "THEA$", 12 @@ -5150,7 +5150,7 @@ gTrainers:: @ 81F04FC @ JILL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "AGNES$", 12 @@ -5162,7 +5162,7 @@ gTrainers:: @ 81F04FC @ CYNDY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "ELFI$", 12 @@ -5174,7 +5174,7 @@ gTrainers:: @ 81F04FC @ CYNDY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "ELFI$", 12 @@ -5186,7 +5186,7 @@ gTrainers:: @ 81F04FC @ CYNDY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "ELFI$", 12 @@ -5198,7 +5198,7 @@ gTrainers:: @ 81F04FC @ CYNDY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "ELFI$", 12 @@ -5210,7 +5210,7 @@ gTrainers:: @ 81F04FC @ MADELINE_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "SASKIA$", 12 @@ -5222,7 +5222,7 @@ gTrainers:: @ 81F04FC @ CLARISSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "GERDA$", 12 @@ -5234,7 +5234,7 @@ gTrainers:: @ 81F04FC @ ANGELICA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MARIKA$", 12 @@ -5246,7 +5246,7 @@ gTrainers:: @ 81F04FC @ MADELINE_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "SASKIA$", 12 @@ -5258,7 +5258,7 @@ gTrainers:: @ 81F04FC @ MADELINE_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "SASKIA$", 12 @@ -5270,7 +5270,7 @@ gTrainers:: @ 81F04FC @ MADELINE_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "SASKIA$", 12 @@ -5282,7 +5282,7 @@ gTrainers:: @ 81F04FC @ MADELINE_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "SASKIA$", 12 @@ -5294,7 +5294,7 @@ gTrainers:: @ 81F04FC @ BEVERLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DAGMAR$", 12 @@ -5306,7 +5306,7 @@ gTrainers:: @ 81F04FC @ DAWN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "HEIDRUN$", 12 @@ -5318,7 +5318,7 @@ gTrainers:: @ 81F04FC @ NICOLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "NICOLE$", 12 @@ -5330,7 +5330,7 @@ gTrainers:: @ 81F04FC @ DENISE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DENISE$", 12 @@ -5342,7 +5342,7 @@ gTrainers:: @ 81F04FC @ BETH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ALMUT$", 12 @@ -5354,7 +5354,7 @@ gTrainers:: @ 81F04FC @ TARA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "SIEGLINDE$", 12 @@ -5366,7 +5366,7 @@ gTrainers:: @ 81F04FC @ MISSY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MARION$", 12 @@ -5378,7 +5378,7 @@ gTrainers:: @ 81F04FC @ ALICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ALICE$", 12 @@ -5390,7 +5390,7 @@ gTrainers:: @ 81F04FC @ JENNY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MONIKA$", 12 @@ -5402,7 +5402,7 @@ gTrainers:: @ 81F04FC @ GRACE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ILONA$", 12 @@ -5414,7 +5414,7 @@ gTrainers:: @ 81F04FC @ TANYA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "EMILIE$", 12 @@ -5426,7 +5426,7 @@ gTrainers:: @ 81F04FC @ SHARON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "GUDRUN$", 12 @@ -5438,7 +5438,7 @@ gTrainers:: @ 81F04FC @ NIKKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ASTRID$", 12 @@ -5450,7 +5450,7 @@ gTrainers:: @ 81F04FC @ BRENDA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "OTTILIE$", 12 @@ -5462,7 +5462,7 @@ gTrainers:: @ 81F04FC @ KATIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "SENTA$", 12 @@ -5474,7 +5474,7 @@ gTrainers:: @ 81F04FC @ SUSIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JANKA$", 12 @@ -5486,7 +5486,7 @@ gTrainers:: @ 81F04FC @ KARA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "RENATE$", 12 @@ -5498,7 +5498,7 @@ gTrainers:: @ 81F04FC @ DANA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "VICKI$", 12 @@ -5510,7 +5510,7 @@ gTrainers:: @ 81F04FC @ ERIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "REBECCA$", 12 @@ -5522,7 +5522,7 @@ gTrainers:: @ 81F04FC @ DEBRA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ANJA$", 12 @@ -5534,7 +5534,7 @@ gTrainers:: @ 81F04FC @ LINDA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "GISELA$", 12 @@ -5546,7 +5546,7 @@ gTrainers:: @ 81F04FC @ KAYLEE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "PAOLA$", 12 @@ -5558,7 +5558,7 @@ gTrainers:: @ 81F04FC @ LAUREL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "BIRTE$", 12 @@ -5570,7 +5570,7 @@ gTrainers:: @ 81F04FC @ DARCY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DOROTHEA$", 12 @@ -5582,7 +5582,7 @@ gTrainers:: @ 81F04FC @ JENNY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MONIKA$", 12 @@ -5594,7 +5594,7 @@ gTrainers:: @ 81F04FC @ JENNY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MONIKA$", 12 @@ -5606,7 +5606,7 @@ gTrainers:: @ 81F04FC @ JENNY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MONIKA$", 12 @@ -5618,7 +5618,7 @@ gTrainers:: @ 81F04FC @ JENNY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MONIKA$", 12 @@ -5630,7 +5630,7 @@ gTrainers:: @ 81F04FC @ HEIDI .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "JANA$", 12 @@ -5642,7 +5642,7 @@ gTrainers:: @ 81F04FC @ BECKY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "HEIDI$", 12 @@ -5654,7 +5654,7 @@ gTrainers:: @ 81F04FC @ CAROL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "NATALIE$", 12 @@ -5666,7 +5666,7 @@ gTrainers:: @ 81F04FC @ NANCY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "NANCY$", 12 @@ -5678,7 +5678,7 @@ gTrainers:: @ 81F04FC @ MARTHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "MARTHA$", 12 @@ -5690,7 +5690,7 @@ gTrainers:: @ 81F04FC @ DIANA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "GWENDOLIN$", 12 @@ -5702,7 +5702,7 @@ gTrainers:: @ 81F04FC @ NINA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "NADJA$", 12 @@ -5714,7 +5714,7 @@ gTrainers:: @ 81F04FC @ IRENE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "IRENE$", 12 @@ -5726,7 +5726,7 @@ gTrainers:: @ 81F04FC @ DIANA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "GWENDOLIN$", 12 @@ -5738,7 +5738,7 @@ gTrainers:: @ 81F04FC @ DIANA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "GWENDOLIN$", 12 @@ -5750,7 +5750,7 @@ gTrainers:: @ 81F04FC @ DIANA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "GWENDOLIN$", 12 @@ -5762,7 +5762,7 @@ gTrainers:: @ 81F04FC @ DIANA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "GWENDOLIN$", 12 @@ -5774,7 +5774,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5786,7 +5786,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5798,7 +5798,7 @@ gTrainers:: @ 81F04FC @ GINA_AND_MIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "GINA & MIA$", 12 @@ -5810,7 +5810,7 @@ gTrainers:: @ 81F04FC @ MIU_AND_YUKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "LEA & GRIT$", 12 @@ -5822,7 +5822,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5834,7 +5834,7 @@ gTrainers:: @ 81F04FC @ GINA_AND_MIA_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "GINA & MIA$", 12 @@ -5846,7 +5846,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5858,7 +5858,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5870,7 +5870,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "NORA & JO$", 12 @@ -5882,7 +5882,7 @@ gTrainers:: @ 81F04FC @ HUEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "TASSILO$", 12 @@ -5894,7 +5894,7 @@ gTrainers:: @ 81F04FC @ EDMOND .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "MONTY$", 12 @@ -5906,7 +5906,7 @@ gTrainers:: @ 81F04FC @ ERNEST_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ELERT$", 12 @@ -5918,7 +5918,7 @@ gTrainers:: @ 81F04FC @ DWAYNE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "RETO$", 12 @@ -5930,7 +5930,7 @@ gTrainers:: @ 81F04FC @ PHILLIP .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "GUNNAR$", 12 @@ -5942,7 +5942,7 @@ gTrainers:: @ 81F04FC @ LEONARD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "LEONARD$", 12 @@ -5954,7 +5954,7 @@ gTrainers:: @ 81F04FC @ DUNCAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "PIERRE$", 12 @@ -5966,7 +5966,7 @@ gTrainers:: @ 81F04FC @ ERNEST_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ELERT$", 12 @@ -5978,7 +5978,7 @@ gTrainers:: @ 81F04FC @ ERNEST_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ELERT$", 12 @@ -5990,7 +5990,7 @@ gTrainers:: @ 81F04FC @ ERNEST_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ELERT$", 12 @@ -6002,7 +6002,7 @@ gTrainers:: @ 81F04FC @ ERNEST_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ELERT$", 12 @@ -6014,7 +6014,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6026,7 +6026,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6038,7 +6038,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_13 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6050,7 +6050,7 @@ gTrainers:: @ 81F04FC @ SONNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "WENZEL$", 12 @@ -6062,7 +6062,7 @@ gTrainers:: @ 81F04FC @ DONOVAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "STANISLAUS$", 12 @@ -6074,7 +6074,7 @@ gTrainers:: @ 81F04FC @ GERALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "GERALD$", 12 @@ -6086,7 +6086,7 @@ gTrainers:: @ 81F04FC @ KELVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "AARON$", 12 @@ -6098,7 +6098,7 @@ gTrainers:: @ 81F04FC @ KODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ALBERT$", 12 @@ -6110,7 +6110,7 @@ gTrainers:: @ 81F04FC @ TEVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ANDRE$", 12 @@ -6122,7 +6122,7 @@ gTrainers:: @ 81F04FC @ DAMON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "AMON$", 12 @@ -6134,7 +6134,7 @@ gTrainers:: @ 81F04FC @ PABLO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "PABLO$", 12 @@ -6146,7 +6146,7 @@ gTrainers:: @ 81F04FC @ EDWIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6158,7 +6158,7 @@ gTrainers:: @ 81F04FC @ HECTOR_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "HEKTOR$", 12 @@ -6170,7 +6170,7 @@ gTrainers:: @ 81F04FC @ HECTOR_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "HEKTOR$", 12 @@ -6182,7 +6182,7 @@ gTrainers:: @ 81F04FC @ EDWIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6194,7 +6194,7 @@ gTrainers:: @ 81F04FC @ EDWIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6206,7 +6206,7 @@ gTrainers:: @ 81F04FC @ EDWIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6218,7 +6218,7 @@ gTrainers:: @ 81F04FC @ EDWIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6230,7 +6230,7 @@ gTrainers:: @ 81F04FC @ WALLY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -6242,7 +6242,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6254,7 +6254,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6266,7 +6266,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6278,7 +6278,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6290,7 +6290,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6302,7 +6302,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6314,7 +6314,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6326,7 +6326,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6338,7 +6338,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -6350,7 +6350,7 @@ gTrainers:: @ 81F04FC @ MAY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6362,7 +6362,7 @@ gTrainers:: @ 81F04FC @ MAY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6374,7 +6374,7 @@ gTrainers:: @ 81F04FC @ MAY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6386,7 +6386,7 @@ gTrainers:: @ 81F04FC @ MAY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6398,7 +6398,7 @@ gTrainers:: @ 81F04FC @ MAY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6410,7 +6410,7 @@ gTrainers:: @ 81F04FC @ MAY_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6422,7 +6422,7 @@ gTrainers:: @ 81F04FC @ MAY_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6434,7 +6434,7 @@ gTrainers:: @ 81F04FC @ MAY_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6446,7 +6446,7 @@ gTrainers:: @ 81F04FC @ MAY_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -6458,7 +6458,7 @@ gTrainers:: @ 81F04FC @ ISAAC_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "BLASIUS$", 12 @@ -6470,7 +6470,7 @@ gTrainers:: @ 81F04FC @ RILEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "CLIFF$", 12 @@ -6482,7 +6482,7 @@ gTrainers:: @ 81F04FC @ AIDAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "DARIO$", 12 @@ -6494,7 +6494,7 @@ gTrainers:: @ 81F04FC @ ISAAC_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "BLASIUS$", 12 @@ -6506,7 +6506,7 @@ gTrainers:: @ 81F04FC @ ISAAC_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "BLASIUS$", 12 @@ -6518,7 +6518,7 @@ gTrainers:: @ 81F04FC @ ISAAC_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "BLASIUS$", 12 @@ -6530,7 +6530,7 @@ gTrainers:: @ 81F04FC @ ISAAC_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "BLASIUS$", 12 @@ -6542,7 +6542,7 @@ gTrainers:: @ 81F04FC @ LYDIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6554,7 +6554,7 @@ gTrainers:: @ 81F04FC @ ALEXIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "DORIS$", 12 @@ -6566,7 +6566,7 @@ gTrainers:: @ 81F04FC @ DANIELLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "DUNJA$", 12 @@ -6578,7 +6578,7 @@ gTrainers:: @ 81F04FC @ LYDIA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6590,7 +6590,7 @@ gTrainers:: @ 81F04FC @ LYDIA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6602,7 +6602,7 @@ gTrainers:: @ 81F04FC @ LYDIA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6614,7 +6614,7 @@ gTrainers:: @ 81F04FC @ LYDIA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6626,7 +6626,7 @@ gTrainers:: @ 81F04FC @ JACKSON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "ECKBERT$", 12 @@ -6638,7 +6638,7 @@ gTrainers:: @ 81F04FC @ CARLOS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "EDWARD$", 12 @@ -6650,7 +6650,7 @@ gTrainers:: @ 81F04FC @ SEBASTIAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "EILMAR$", 12 @@ -6662,7 +6662,7 @@ gTrainers:: @ 81F04FC @ JACKSON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "ECKBERT$", 12 @@ -6674,7 +6674,7 @@ gTrainers:: @ 81F04FC @ JACKSON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "ECKBERT$", 12 @@ -6686,7 +6686,7 @@ gTrainers:: @ 81F04FC @ JACKSON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "ECKBERT$", 12 @@ -6698,7 +6698,7 @@ gTrainers:: @ 81F04FC @ JACKSON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "ECKBERT$", 12 @@ -6710,7 +6710,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "HANNELORE$", 12 @@ -6722,7 +6722,7 @@ gTrainers:: @ 81F04FC @ JENNA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "INGEBORG$", 12 @@ -6734,7 +6734,7 @@ gTrainers:: @ 81F04FC @ SOPHIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "SOPHIA$", 12 @@ -6746,7 +6746,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "HANNELORE$", 12 @@ -6758,7 +6758,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "HANNELORE$", 12 @@ -6770,7 +6770,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "HANNELORE$", 12 @@ -6782,7 +6782,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "HANNELORE$", 12 @@ -6794,7 +6794,7 @@ gTrainers:: @ 81F04FC @ MAXIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MARC$", 12 @@ -6806,7 +6806,7 @@ gTrainers:: @ 81F04FC @ GRUNT_28 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6818,7 +6818,7 @@ gTrainers:: @ 81F04FC @ GRUNT_29 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6830,7 +6830,7 @@ gTrainers:: @ 81F04FC @ GRUNT_30 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6842,7 +6842,7 @@ gTrainers:: @ 81F04FC @ GRUNT_31 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6854,7 +6854,7 @@ gTrainers:: @ 81F04FC @ GRUNT_32 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6866,7 +6866,7 @@ gTrainers:: @ 81F04FC @ GRUNT_33 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6878,7 +6878,7 @@ gTrainers:: @ 81F04FC @ GRUNT_34 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6890,7 +6890,7 @@ gTrainers:: @ 81F04FC @ GRUNT_35 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6902,7 +6902,7 @@ gTrainers:: @ 81F04FC @ GRUNT_36 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6914,7 +6914,7 @@ gTrainers:: @ 81F04FC @ GRUNT_37 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6926,7 +6926,7 @@ gTrainers:: @ 81F04FC @ GRUNT_38 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6938,7 +6938,7 @@ gTrainers:: @ 81F04FC @ GRUNT_39 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6950,7 +6950,7 @@ gTrainers:: @ 81F04FC @ GRUNT_40 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6962,7 +6962,7 @@ gTrainers:: @ 81F04FC @ GRUNT_41 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6974,7 +6974,7 @@ gTrainers:: @ 81F04FC @ GRUNT_42 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6986,7 +6986,7 @@ gTrainers:: @ 81F04FC @ GRUNT_43 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -6998,7 +6998,7 @@ gTrainers:: @ 81F04FC @ GRUNT_44 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7010,7 +7010,7 @@ gTrainers:: @ 81F04FC @ GRUNT_45 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7022,7 +7022,7 @@ gTrainers:: @ 81F04FC @ GRUNT_46 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7034,7 +7034,7 @@ gTrainers:: @ 81F04FC @ GRUNT_47 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7046,7 +7046,7 @@ gTrainers:: @ 81F04FC @ GRUNT_48 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7058,7 +7058,7 @@ gTrainers:: @ 81F04FC @ GRUNT_49 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7070,7 +7070,7 @@ gTrainers:: @ 81F04FC @ GRUNT_50 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7082,7 +7082,7 @@ gTrainers:: @ 81F04FC @ GRUNT_51 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "RÜPEL$", 12 @@ -7094,7 +7094,7 @@ gTrainers:: @ 81F04FC @ GRUNT_52 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "RÜPEL$", 12 @@ -7106,7 +7106,7 @@ gTrainers:: @ 81F04FC @ GRUNT_53 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "RÜPEL$", 12 @@ -7118,7 +7118,7 @@ gTrainers:: @ 81F04FC @ GRUNT_54 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "RÜPEL$", 12 @@ -7130,7 +7130,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_14 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "$", 12 @@ -7142,7 +7142,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_15 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "$", 12 @@ -7154,7 +7154,7 @@ gTrainers:: @ 81F04FC @ TABITHA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "KALLE$", 12 @@ -7166,7 +7166,7 @@ gTrainers:: @ 81F04FC @ TABITHA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "KALLE$", 12 @@ -7178,7 +7178,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_16 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "$", 12 @@ -7190,7 +7190,7 @@ gTrainers:: @ 81F04FC @ COURTNEY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_F .string "JÖRDIS$", 12 @@ -7202,7 +7202,7 @@ gTrainers:: @ 81F04FC @ COURTNEY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_F .string "JÖRDIS$", 12 @@ -7214,7 +7214,7 @@ gTrainers:: @ 81F04FC @ MAXIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MARC$", 12 @@ -7226,7 +7226,7 @@ gTrainers:: @ 81F04FC @ MAXIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MARC$", 12 @@ -7238,7 +7238,7 @@ gTrainers:: @ 81F04FC @ TIANA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "KARIN$", 12 @@ -7250,7 +7250,7 @@ gTrainers:: @ 81F04FC @ HALEY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ELISA$", 12 @@ -7262,7 +7262,7 @@ gTrainers:: @ 81F04FC @ JANICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "RICARDA$", 12 @@ -7274,7 +7274,7 @@ gTrainers:: @ 81F04FC @ VIVI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "SIEGLINDE$", 12 @@ -7286,7 +7286,7 @@ gTrainers:: @ 81F04FC @ HALEY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ELISA$", 12 @@ -7298,7 +7298,7 @@ gTrainers:: @ 81F04FC @ HALEY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ELISA$", 12 @@ -7310,7 +7310,7 @@ gTrainers:: @ 81F04FC @ HALEY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ELISA$", 12 @@ -7322,7 +7322,7 @@ gTrainers:: @ 81F04FC @ HALEY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ELISA$", 12 @@ -7334,7 +7334,7 @@ gTrainers:: @ 81F04FC @ SALLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "FREDERIKE$", 12 @@ -7346,7 +7346,7 @@ gTrainers:: @ 81F04FC @ ROBIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ROBIN$", 12 @@ -7358,7 +7358,7 @@ gTrainers:: @ 81F04FC @ ANDREA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "FRIEDA$", 12 @@ -7370,7 +7370,7 @@ gTrainers:: @ 81F04FC @ CRISSY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ADELHEID$", 12 @@ -7382,7 +7382,7 @@ gTrainers:: @ 81F04FC @ RICK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "BALDUR$", 12 @@ -7394,7 +7394,7 @@ gTrainers:: @ 81F04FC @ LYLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "DETWIN$", 12 @@ -7406,7 +7406,7 @@ gTrainers:: @ 81F04FC @ JOSE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "EROS$", 12 @@ -7418,7 +7418,7 @@ gTrainers:: @ 81F04FC @ DOUG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "EUSEBIUS$", 12 @@ -7430,7 +7430,7 @@ gTrainers:: @ 81F04FC @ GREG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GANGOLF$", 12 @@ -7442,7 +7442,7 @@ gTrainers:: @ 81F04FC @ KENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERIT$", 12 @@ -7454,7 +7454,7 @@ gTrainers:: @ 81F04FC @ JAMES_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERNOT$", 12 @@ -7466,7 +7466,7 @@ gTrainers:: @ 81F04FC @ JAMES_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERNOT$", 12 @@ -7478,7 +7478,7 @@ gTrainers:: @ 81F04FC @ JAMES_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERNOT$", 12 @@ -7490,7 +7490,7 @@ gTrainers:: @ 81F04FC @ JAMES_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERNOT$", 12 @@ -7502,7 +7502,7 @@ gTrainers:: @ 81F04FC @ JAMES_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GERNOT$", 12 @@ -7514,7 +7514,7 @@ gTrainers:: @ 81F04FC @ BRICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "GISBERT$", 12 @@ -7526,7 +7526,7 @@ gTrainers:: @ 81F04FC @ TRENT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "HEIMKE$", 12 @@ -7538,7 +7538,7 @@ gTrainers:: @ 81F04FC @ LENNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "JANNO$", 12 @@ -7550,7 +7550,7 @@ gTrainers:: @ 81F04FC @ LUCAS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "KLODWIG$", 12 @@ -7562,7 +7562,7 @@ gTrainers:: @ 81F04FC @ ALAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "LANZELOT$", 12 @@ -7574,7 +7574,7 @@ gTrainers:: @ 81F04FC @ CLARK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "LUZIUS$", 12 @@ -7586,7 +7586,7 @@ gTrainers:: @ 81F04FC @ ERIC .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "MAURIZIO$", 12 @@ -7598,7 +7598,7 @@ gTrainers:: @ 81F04FC @ LUCAS_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "KLODWIG$", 12 @@ -7610,7 +7610,7 @@ gTrainers:: @ 81F04FC @ MIKE_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "MELVIN$", 12 @@ -7622,7 +7622,7 @@ gTrainers:: @ 81F04FC @ MIKE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "MELVIN$", 12 @@ -7634,7 +7634,7 @@ gTrainers:: @ 81F04FC @ TRENT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "HEIMKE$", 12 @@ -7646,7 +7646,7 @@ gTrainers:: @ 81F04FC @ TRENT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "HEIMKE$", 12 @@ -7658,7 +7658,7 @@ gTrainers:: @ 81F04FC @ TRENT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "HEIMKE$", 12 @@ -7670,7 +7670,7 @@ gTrainers:: @ 81F04FC @ TRENT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "HEIMKE$", 12 @@ -7682,7 +7682,7 @@ gTrainers:: @ 81F04FC @ DEZ_AND_LUKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "INA & LEIF$", 12 @@ -7694,7 +7694,7 @@ gTrainers:: @ 81F04FC @ LEA_AND_JED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LENA & UWE$", 12 @@ -7706,7 +7706,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GESA & PIT$", 12 @@ -7718,7 +7718,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GESA & PIT$", 12 @@ -7730,7 +7730,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GESA & PIT$", 12 @@ -7742,7 +7742,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GESA & PIT$", 12 @@ -7754,7 +7754,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GESA & PIT$", 12 @@ -7766,7 +7766,7 @@ gTrainers:: @ 81F04FC @ JOHANNA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "CORDULA$", 12 @@ -7778,7 +7778,7 @@ gTrainers:: @ 81F04FC @ ZANE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "OTBERT$", 12 @@ -7790,7 +7790,7 @@ gTrainers:: @ 81F04FC @ VIVIAN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "BÄRBEL$", 12 @@ -7802,7 +7802,7 @@ gTrainers:: @ 81F04FC @ SADIE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CHANTAL$", 12 @@ -7814,7 +7814,7 @@ gTrainers:: @ 81F04FC @ HIDEO_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "SAUL$", 12 @@ -7826,7 +7826,7 @@ gTrainers:: @ 81F04FC @ KEIGO .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "NELSON$", 12 @@ -7838,7 +7838,7 @@ gTrainers:: @ 81F04FC @ TSUNAO .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "NIKODEMUS$", 12 @@ -7850,7 +7850,7 @@ gTrainers:: @ 81F04FC @ TERRELL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "NESTOR$", 12 @@ -7862,7 +7862,7 @@ gTrainers:: @ 81F04FC @ KYLEE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "MIREILLE$", 12 @@ -7874,7 +7874,7 @@ gTrainers:: @ 81F04FC @ WALLY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -7886,7 +7886,7 @@ gTrainers:: @ 81F04FC @ WALLY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -7898,7 +7898,7 @@ gTrainers:: @ 81F04FC @ WALLY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -7910,7 +7910,7 @@ gTrainers:: @ 81F04FC @ WALLY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -7922,7 +7922,7 @@ gTrainers:: @ 81F04FC @ WALLY_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "HEIKO$", 12 @@ -7934,7 +7934,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -7946,7 +7946,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -7958,7 +7958,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRIX$", 12 @@ -7970,7 +7970,7 @@ gTrainers:: @ 81F04FC @ MAY_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -7982,7 +7982,7 @@ gTrainers:: @ 81F04FC @ MAY_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -7994,7 +7994,7 @@ gTrainers:: @ 81F04FC @ MAY_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAIKE$", 12 @@ -8006,7 +8006,7 @@ gTrainers:: @ 81F04FC @ JONAH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "OLOF$", 12 @@ -8018,7 +8018,7 @@ gTrainers:: @ 81F04FC @ HENRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "PIUS$", 12 @@ -8030,7 +8030,7 @@ gTrainers:: @ 81F04FC @ ROGER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "AMATUS$", 12 @@ -8042,7 +8042,7 @@ gTrainers:: @ 81F04FC @ ALEXA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "ANNABEL$", 12 @@ -8054,7 +8054,7 @@ gTrainers:: @ 81F04FC @ RUBEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "TRUTZ$", 12 @@ -8066,7 +8066,7 @@ gTrainers:: @ 81F04FC @ KOJI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "REMIGIUS$", 12 @@ -8078,7 +8078,7 @@ gTrainers:: @ 81F04FC @ WAYNE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ALVARO$", 12 @@ -8090,7 +8090,7 @@ gTrainers:: @ 81F04FC @ BYRON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "AMALRICH$", 12 @@ -8102,7 +8102,7 @@ gTrainers:: @ 81F04FC @ REED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "ANDOLIN$", 12 @@ -8114,7 +8114,7 @@ gTrainers:: @ 81F04FC @ TISHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "IMKE$", 12 @@ -8126,7 +8126,7 @@ gTrainers:: @ 81F04FC @ TORI_AND_TIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "LI & FLO$", 12 @@ -8138,7 +8138,7 @@ gTrainers:: @ 81F04FC @ KIM_AND_IRIS .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ZOE & IRIS$", 12 @@ -8150,7 +8150,7 @@ gTrainers:: @ 81F04FC @ TYRA_AND_IVY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "TYRA & IVY$", 12 @@ -8162,7 +8162,7 @@ gTrainers:: @ 81F04FC @ MEL_AND_PAUL .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "GELI & OLE$", 12 @@ -8174,7 +8174,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "URS & EVI$", 12 @@ -8186,7 +8186,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "URS & EVI$", 12 @@ -8198,7 +8198,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "URS & EVI$", 12 @@ -8210,7 +8210,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "URS & EVI$", 12 @@ -8222,7 +8222,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "URS & EVI$", 12 @@ -8234,7 +8234,7 @@ gTrainers:: @ 81F04FC @ RELI_AND_IAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOBI & UNA$", 12 @@ -8246,7 +8246,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOM & UTA$", 12 @@ -8258,7 +8258,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOM & UTA$", 12 @@ -8270,7 +8270,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOM & UTA$", 12 @@ -8282,7 +8282,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOM & UTA$", 12 @@ -8294,7 +8294,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "TOM & UTA$", 12 @@ -8306,7 +8306,7 @@ gTrainers:: @ 81F04FC @ LISA_AND_RAY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "ERKO & BEA$", 12 @@ -8318,7 +8318,7 @@ gTrainers:: @ 81F04FC @ EUGENE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ABELKE$", 12 diff --git a/data/data2a.s b/data/data2a.s index 103b723e8..3bd3f6ebd 100644 --- a/data/data2a.s +++ b/data/data2a.s @@ -964,7 +964,7 @@ gUnknown_081FA640:: @ 81FA640 .align 2 gUnknown_081FA678:: @ 81FA678 .4byte bc_8013B1C - .4byte sub_8013998 + .4byte HandleEndTurn_BattleWon .4byte sub_8013B64 .4byte sub_8013B64 .4byte sub_8013BDC diff --git a/data/trainer_money.inc b/data/trainer_money.inc index 95da92fea..ceffb0a61 100644 --- a/data/trainer_money.inc +++ b/data/trainer_money.inc @@ -1,58 +1,58 @@ @ This is a factor in how much money you get for beating a trainer. .align 2 gTrainerMoney:: @ 81F98F0 - .byte TRAINER_CLASS_NAME_TEAM_AQUA, 5, 0, 0 - .byte TRAINER_CLASS_NAME_AQUA_ADMIN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_AQUA_LEADER, 20, 0, 0 - .byte TRAINER_CLASS_NAME_AROMA_LADY, 10, 0, 0 - .byte TRAINER_CLASS_NAME_RUIN_MANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_INTERVIEWER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_TUBER_F, 1, 0, 0 - .byte TRAINER_CLASS_NAME_TUBER_M, 1, 0, 0 - .byte TRAINER_CLASS_NAME_SIS_AND_BRO, 3, 0, 0 - .byte TRAINER_CLASS_NAME_COOL_TRAINER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_HEX_MANIAC, 6, 0, 0 - .byte TRAINER_CLASS_NAME_LADY, 50, 0, 0 - .byte TRAINER_CLASS_NAME_BEAUTY, 20, 0, 0 - .byte TRAINER_CLASS_NAME_RICH_BOY, 50, 0, 0 - .byte TRAINER_CLASS_NAME_POKEMANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_SWIMMER_M, 2, 0, 0 - .byte TRAINER_CLASS_NAME_BLACK_BELT, 8, 0, 0 - .byte TRAINER_CLASS_NAME_GUITARIST, 8, 0, 0 - .byte TRAINER_CLASS_NAME_KINDLER, 8, 0, 0 - .byte TRAINER_CLASS_NAME_CAMPER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_OLD_COUPLE, 10, 0, 0 - .byte TRAINER_CLASS_NAME_BUG_MANIAC, 15, 0, 0 - .byte TRAINER_CLASS_NAME_PSYCHIC, 6, 0, 0 - .byte TRAINER_CLASS_NAME_GENTLEMAN, 20, 0, 0 - .byte TRAINER_CLASS_NAME_ELITE_FOUR, 25, 0, 0 - .byte TRAINER_CLASS_NAME_LEADER, 25, 0, 0 - .byte TRAINER_CLASS_NAME_SCHOOL_KID, 5, 0, 0 - .byte TRAINER_CLASS_NAME_SR_AND_JR, 4, 0, 0 - .byte TRAINER_CLASS_NAME_POKEFAN, 20, 0, 0 - .byte TRAINER_CLASS_NAME_EXPERT, 10, 0, 0 - .byte TRAINER_CLASS_NAME_YOUNGSTER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_CHAMPION, 50, 0, 0 - .byte TRAINER_CLASS_NAME_FISHERMAN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_TRIATHLETE, 10, 0, 0 - .byte TRAINER_CLASS_NAME_DRAGON_TAMER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_BIRD_KEEPER, 8, 0, 0 - .byte TRAINER_CLASS_NAME_NINJA_BOY, 3, 0, 0 - .byte TRAINER_CLASS_NAME_BATTLE_GIRL, 6, 0, 0 - .byte TRAINER_CLASS_NAME_PARASOL_LADY, 10, 0, 0 - .byte TRAINER_CLASS_NAME_SWIMMER_F, 2, 0, 0 - .byte TRAINER_CLASS_NAME_PICNICKER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_TWINS, 3, 0, 0 - .byte TRAINER_CLASS_NAME_SAILOR, 8, 0, 0 - .byte TRAINER_CLASS_NAME_COLLECTOR, 15, 0, 0 - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3, 15, 0, 0 - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER, 10, 0, 0 - .byte TRAINER_CLASS_NAME_POKEMON_RANGER, 12, 0, 0 - .byte TRAINER_CLASS_NAME_TEAM_MAGMA, 5, 0, 0 - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN, 10, 0, 0 - .byte TRAINER_CLASS_NAME_MAGMA_LEADER, 20, 0, 0 - .byte TRAINER_CLASS_NAME_LASS, 4, 0, 0 - .byte TRAINER_CLASS_NAME_BUG_CATCHER, 4, 0, 0 - .byte TRAINER_CLASS_NAME_HIKER, 10, 0, 0 - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE, 8, 0, 0 + .byte TRAINER_CLASS_TEAM_AQUA, 5, 0, 0 + .byte TRAINER_CLASS_AQUA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_AQUA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_AROMA_LADY, 10, 0, 0 + .byte TRAINER_CLASS_RUIN_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_INTERVIEWER, 12, 0, 0 + .byte TRAINER_CLASS_TUBER_F, 1, 0, 0 + .byte TRAINER_CLASS_TUBER_M, 1, 0, 0 + .byte TRAINER_CLASS_SIS_AND_BRO, 3, 0, 0 + .byte TRAINER_CLASS_COOL_TRAINER, 12, 0, 0 + .byte TRAINER_CLASS_HEX_MANIAC, 6, 0, 0 + .byte TRAINER_CLASS_LADY, 50, 0, 0 + .byte TRAINER_CLASS_BEAUTY, 20, 0, 0 + .byte TRAINER_CLASS_RICH_BOY, 50, 0, 0 + .byte TRAINER_CLASS_POKEMANIAC, 15, 0, 0 + .byte TRAINER_CLASS_SWIMMER_M, 2, 0, 0 + .byte TRAINER_CLASS_BLACK_BELT, 8, 0, 0 + .byte TRAINER_CLASS_GUITARIST, 8, 0, 0 + .byte TRAINER_CLASS_KINDLER, 8, 0, 0 + .byte TRAINER_CLASS_CAMPER, 4, 0, 0 + .byte TRAINER_CLASS_OLD_COUPLE, 10, 0, 0 + .byte TRAINER_CLASS_BUG_MANIAC, 15, 0, 0 + .byte TRAINER_CLASS_PSYCHIC, 6, 0, 0 + .byte TRAINER_CLASS_GENTLEMAN, 20, 0, 0 + .byte TRAINER_CLASS_ELITE_FOUR, 25, 0, 0 + .byte TRAINER_CLASS_LEADER, 25, 0, 0 + .byte TRAINER_CLASS_SCHOOL_KID, 5, 0, 0 + .byte TRAINER_CLASS_SR_AND_JR, 4, 0, 0 + .byte TRAINER_CLASS_POKEFAN, 20, 0, 0 + .byte TRAINER_CLASS_EXPERT, 10, 0, 0 + .byte TRAINER_CLASS_YOUNGSTER, 4, 0, 0 + .byte TRAINER_CLASS_CHAMPION, 50, 0, 0 + .byte TRAINER_CLASS_FISHERMAN, 10, 0, 0 + .byte TRAINER_CLASS_TRIATHLETE, 10, 0, 0 + .byte TRAINER_CLASS_DRAGON_TAMER, 12, 0, 0 + .byte TRAINER_CLASS_BIRD_KEEPER, 8, 0, 0 + .byte TRAINER_CLASS_NINJA_BOY, 3, 0, 0 + .byte TRAINER_CLASS_BATTLE_GIRL, 6, 0, 0 + .byte TRAINER_CLASS_PARASOL_LADY, 10, 0, 0 + .byte TRAINER_CLASS_SWIMMER_F, 2, 0, 0 + .byte TRAINER_CLASS_PICNICKER, 4, 0, 0 + .byte TRAINER_CLASS_TWINS, 3, 0, 0 + .byte TRAINER_CLASS_SAILOR, 8, 0, 0 + .byte TRAINER_CLASS_COLLECTOR, 15, 0, 0 + .byte TRAINER_CLASS_POKEMON_TRAINER_3, 15, 0, 0 + .byte TRAINER_CLASS_POKEMON_BREEDER, 10, 0, 0 + .byte TRAINER_CLASS_POKEMON_RANGER, 12, 0, 0 + .byte TRAINER_CLASS_TEAM_MAGMA, 5, 0, 0 + .byte TRAINER_CLASS_MAGMA_ADMIN, 10, 0, 0 + .byte TRAINER_CLASS_MAGMA_LEADER, 20, 0, 0 + .byte TRAINER_CLASS_LASS, 4, 0, 0 + .byte TRAINER_CLASS_BUG_CATCHER, 4, 0, 0 + .byte TRAINER_CLASS_HIKER, 10, 0, 0 + .byte TRAINER_CLASS_YOUNG_COUPLE, 8, 0, 0 .byte -1, 5, 0, 0 diff --git a/data/trainers.inc b/data/trainers.inc index 8e80cd77f..be9ce1a81 100644 --- a/data/trainers.inc +++ b/data/trainers.inc @@ -2,7 +2,7 @@ gTrainers:: @ 81F04FC @ NONE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_1 + .byte TRAINER_CLASS_POKEMON_TRAINER_1 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "$", 12 @@ -14,7 +14,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ARCHIE$", 12 @@ -26,7 +26,7 @@ gTrainers:: @ 81F04FC @ GRUNT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -38,7 +38,7 @@ gTrainers:: @ 81F04FC @ GRUNT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -50,7 +50,7 @@ gTrainers:: @ 81F04FC @ GRUNT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -62,7 +62,7 @@ gTrainers:: @ 81F04FC @ GRUNT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -74,7 +74,7 @@ gTrainers:: @ 81F04FC @ GRUNT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -86,7 +86,7 @@ gTrainers:: @ 81F04FC @ GRUNT_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -98,7 +98,7 @@ gTrainers:: @ 81F04FC @ GRUNT_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -110,7 +110,7 @@ gTrainers:: @ 81F04FC @ GRUNT_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -122,7 +122,7 @@ gTrainers:: @ 81F04FC @ GRUNT_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -134,7 +134,7 @@ gTrainers:: @ 81F04FC @ GRUNT_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -146,7 +146,7 @@ gTrainers:: @ 81F04FC @ GRUNT_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -158,7 +158,7 @@ gTrainers:: @ 81F04FC @ GRUNT_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -170,7 +170,7 @@ gTrainers:: @ 81F04FC @ GRUNT_13 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -182,7 +182,7 @@ gTrainers:: @ 81F04FC @ GRUNT_14 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -194,7 +194,7 @@ gTrainers:: @ 81F04FC @ GRUNT_15 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -206,7 +206,7 @@ gTrainers:: @ 81F04FC @ GRUNT_16 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -218,7 +218,7 @@ gTrainers:: @ 81F04FC @ GRUNT_17 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -230,7 +230,7 @@ gTrainers:: @ 81F04FC @ GRUNT_18 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -242,7 +242,7 @@ gTrainers:: @ 81F04FC @ GRUNT_19 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -254,7 +254,7 @@ gTrainers:: @ 81F04FC @ GRUNT_20 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -266,7 +266,7 @@ gTrainers:: @ 81F04FC @ GRUNT_21 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -278,7 +278,7 @@ gTrainers:: @ 81F04FC @ GRUNT_22 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -290,7 +290,7 @@ gTrainers:: @ 81F04FC @ GRUNT_23 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -302,7 +302,7 @@ gTrainers:: @ 81F04FC @ GRUNT_24 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_M .string "GRUNT$", 12 @@ -314,7 +314,7 @@ gTrainers:: @ 81F04FC @ GRUNT_25 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "GRUNT$", 12 @@ -326,7 +326,7 @@ gTrainers:: @ 81F04FC @ GRUNT_26 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "GRUNT$", 12 @@ -338,7 +338,7 @@ gTrainers:: @ 81F04FC @ GRUNT_27 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_AQUA + .byte TRAINER_CLASS_TEAM_AQUA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_GRUNT_F .string "GRUNT$", 12 @@ -350,7 +350,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "$", 12 @@ -362,7 +362,7 @@ gTrainers:: @ 81F04FC @ MATT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "MATT$", 12 @@ -374,7 +374,7 @@ gTrainers:: @ 81F04FC @ MATT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_M .string "MATT$", 12 @@ -386,7 +386,7 @@ gTrainers:: @ 81F04FC @ SHELLY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_F .string "SHELLY$", 12 @@ -398,7 +398,7 @@ gTrainers:: @ 81F04FC @ SHELLY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_ADMIN + .byte TRAINER_CLASS_AQUA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_AQUA_ADMIN_F .string "SHELLY$", 12 @@ -410,7 +410,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ARCHIE$", 12 @@ -422,7 +422,7 @@ gTrainers:: @ 81F04FC @ ARCHIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AQUA_LEADER + .byte TRAINER_CLASS_AQUA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_AQUA @ gender flag and encounter music .byte TRAINER_PIC_ARCHIE .string "ARCHIE$", 12 @@ -434,7 +434,7 @@ gTrainers:: @ 81F04FC @ DAISY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "DAISY$", 12 @@ -446,7 +446,7 @@ gTrainers:: @ 81F04FC @ ROSE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSE$", 12 @@ -458,7 +458,7 @@ gTrainers:: @ 81F04FC @ LILY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "LILY$", 12 @@ -470,7 +470,7 @@ gTrainers:: @ 81F04FC @ VIOLET .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "VIOLET$", 12 @@ -482,7 +482,7 @@ gTrainers:: @ 81F04FC @ ROSE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSE$", 12 @@ -494,7 +494,7 @@ gTrainers:: @ 81F04FC @ ROSE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSE$", 12 @@ -506,7 +506,7 @@ gTrainers:: @ 81F04FC @ ROSE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSE$", 12 @@ -518,7 +518,7 @@ gTrainers:: @ 81F04FC @ ROSE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_AROMA_LADY + .byte TRAINER_CLASS_AROMA_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_AROMA_LADY .string "ROSE$", 12 @@ -530,7 +530,7 @@ gTrainers:: @ 81F04FC @ DUSTY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "DUSTY$", 12 @@ -542,7 +542,7 @@ gTrainers:: @ 81F04FC @ CHIP .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "CHIP$", 12 @@ -554,7 +554,7 @@ gTrainers:: @ 81F04FC @ FOSTER .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "FOSTER$", 12 @@ -566,7 +566,7 @@ gTrainers:: @ 81F04FC @ DUSTY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "DUSTY$", 12 @@ -578,7 +578,7 @@ gTrainers:: @ 81F04FC @ DUSTY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "DUSTY$", 12 @@ -590,7 +590,7 @@ gTrainers:: @ 81F04FC @ DUSTY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "DUSTY$", 12 @@ -602,7 +602,7 @@ gTrainers:: @ 81F04FC @ DUSTY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RUIN_MANIAC + .byte TRAINER_CLASS_RUIN_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_RUIN_MANIAC .string "DUSTY$", 12 @@ -614,7 +614,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -626,7 +626,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -638,7 +638,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -650,7 +650,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -662,7 +662,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -674,7 +674,7 @@ gTrainers:: @ 81F04FC @ GABBY_AND_TY_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_INTERVIEWER + .byte TRAINER_CLASS_INTERVIEWER .byte TRAINER_ENCOUNTER_MUSIC_INTERVIEWER @ gender flag and encounter music .byte TRAINER_PIC_INTERVIEWER .string "GABBY & TY$", 12 @@ -686,7 +686,7 @@ gTrainers:: @ 81F04FC @ LOLA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -698,7 +698,7 @@ gTrainers:: @ 81F04FC @ CARMEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "CARMEN$", 12 @@ -710,7 +710,7 @@ gTrainers:: @ 81F04FC @ GWEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "GWEN $", 12 @@ -722,7 +722,7 @@ gTrainers:: @ 81F04FC @ LOLA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -734,7 +734,7 @@ gTrainers:: @ 81F04FC @ LOLA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -746,7 +746,7 @@ gTrainers:: @ 81F04FC @ LOLA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -758,7 +758,7 @@ gTrainers:: @ 81F04FC @ LOLA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_F + .byte TRAINER_CLASS_TUBER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_F .string "LOLA$", 12 @@ -770,7 +770,7 @@ gTrainers:: @ 81F04FC @ RICKY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "RICKY$", 12 @@ -782,7 +782,7 @@ gTrainers:: @ 81F04FC @ SIMON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "SIMON$", 12 @@ -794,7 +794,7 @@ gTrainers:: @ 81F04FC @ CHARLIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "CHARLIE$", 12 @@ -806,7 +806,7 @@ gTrainers:: @ 81F04FC @ RICKY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "RICKY$", 12 @@ -818,7 +818,7 @@ gTrainers:: @ 81F04FC @ RICKY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "RICKY$", 12 @@ -830,7 +830,7 @@ gTrainers:: @ 81F04FC @ RICKY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "RICKY$", 12 @@ -842,7 +842,7 @@ gTrainers:: @ 81F04FC @ RICKY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TUBER_M + .byte TRAINER_CLASS_TUBER_M .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_TUBER_M .string "RICKY$", 12 @@ -854,7 +854,7 @@ gTrainers:: @ 81F04FC @ RANDALL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "RANDALL$", 12 @@ -866,7 +866,7 @@ gTrainers:: @ 81F04FC @ PARKER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "PARKER$", 12 @@ -878,7 +878,7 @@ gTrainers:: @ 81F04FC @ GEORGE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "GEORGE$", 12 @@ -890,7 +890,7 @@ gTrainers:: @ 81F04FC @ BERKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "BERKE$", 12 @@ -902,7 +902,7 @@ gTrainers:: @ 81F04FC @ CLYDE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "CLYDE$", 12 @@ -914,7 +914,7 @@ gTrainers:: @ 81F04FC @ VINCENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "VINCENT$", 12 @@ -926,7 +926,7 @@ gTrainers:: @ 81F04FC @ LEROY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "LEROY$", 12 @@ -938,7 +938,7 @@ gTrainers:: @ 81F04FC @ WILTON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WILTON$", 12 @@ -950,7 +950,7 @@ gTrainers:: @ 81F04FC @ EDGAR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "EDGAR$", 12 @@ -962,7 +962,7 @@ gTrainers:: @ 81F04FC @ ALBERT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "ALBERT$", 12 @@ -974,7 +974,7 @@ gTrainers:: @ 81F04FC @ SAMUEL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "SAMUEL$", 12 @@ -986,7 +986,7 @@ gTrainers:: @ 81F04FC @ VITO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "VITO$", 12 @@ -998,7 +998,7 @@ gTrainers:: @ 81F04FC @ OWEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "OWEN$", 12 @@ -1010,7 +1010,7 @@ gTrainers:: @ 81F04FC @ WILTON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WILTON$", 12 @@ -1022,7 +1022,7 @@ gTrainers:: @ 81F04FC @ WILTON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WILTON$", 12 @@ -1034,7 +1034,7 @@ gTrainers:: @ 81F04FC @ WILTON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WILTON$", 12 @@ -1046,7 +1046,7 @@ gTrainers:: @ 81F04FC @ WILTON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WILTON$", 12 @@ -1058,7 +1058,7 @@ gTrainers:: @ 81F04FC @ WARREN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "WARREN$", 12 @@ -1070,7 +1070,7 @@ gTrainers:: @ 81F04FC @ MARY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "MARY$", 12 @@ -1082,7 +1082,7 @@ gTrainers:: @ 81F04FC @ LORI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "LORI$", 12 @@ -1094,7 +1094,7 @@ gTrainers:: @ 81F04FC @ JODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "JODY$", 12 @@ -1106,7 +1106,7 @@ gTrainers:: @ 81F04FC @ WENDY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "WENDY$", 12 @@ -1118,7 +1118,7 @@ gTrainers:: @ 81F04FC @ ELAINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "ELAINE$", 12 @@ -1130,7 +1130,7 @@ gTrainers:: @ 81F04FC @ BROOKE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "BROOKE$", 12 @@ -1142,7 +1142,7 @@ gTrainers:: @ 81F04FC @ JENNIFER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "JENNIFER$", 12 @@ -1154,7 +1154,7 @@ gTrainers:: @ 81F04FC @ HOPE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "HOPE$", 12 @@ -1166,7 +1166,7 @@ gTrainers:: @ 81F04FC @ SHANNON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "SHANNON$", 12 @@ -1178,7 +1178,7 @@ gTrainers:: @ 81F04FC @ MICHELLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "MICHELLE$", 12 @@ -1190,7 +1190,7 @@ gTrainers:: @ 81F04FC @ CAROLINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "CAROLINE$", 12 @@ -1202,7 +1202,7 @@ gTrainers:: @ 81F04FC @ JULIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "JULIE$", 12 @@ -1214,7 +1214,7 @@ gTrainers:: @ 81F04FC @ BROOKE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "BROOKE$", 12 @@ -1226,7 +1226,7 @@ gTrainers:: @ 81F04FC @ BROOKE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "BROOKE$", 12 @@ -1238,7 +1238,7 @@ gTrainers:: @ 81F04FC @ BROOKE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "BROOKE$", 12 @@ -1250,7 +1250,7 @@ gTrainers:: @ 81F04FC @ BROOKE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "BROOKE$", 12 @@ -1262,7 +1262,7 @@ gTrainers:: @ 81F04FC @ PATRICIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "PATRICIA$", 12 @@ -1274,7 +1274,7 @@ gTrainers:: @ 81F04FC @ KINDRA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "KINDRA$", 12 @@ -1286,7 +1286,7 @@ gTrainers:: @ 81F04FC @ TAMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TAMMY$", 12 @@ -1298,7 +1298,7 @@ gTrainers:: @ 81F04FC @ VALERIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "VALERIE$", 12 @@ -1310,7 +1310,7 @@ gTrainers:: @ 81F04FC @ TASHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "TASHA$", 12 @@ -1322,7 +1322,7 @@ gTrainers:: @ 81F04FC @ VALERIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "VALERIE$", 12 @@ -1334,7 +1334,7 @@ gTrainers:: @ 81F04FC @ VALERIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "VALERIE$", 12 @@ -1346,7 +1346,7 @@ gTrainers:: @ 81F04FC @ VALERIE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "VALERIE$", 12 @@ -1358,7 +1358,7 @@ gTrainers:: @ 81F04FC @ VALERIE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HEX_MANIAC + .byte TRAINER_CLASS_HEX_MANIAC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_HEX_MANIAC .string "VALERIE$", 12 @@ -1370,7 +1370,7 @@ gTrainers:: @ 81F04FC @ CINDY_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1382,7 +1382,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "$", 12 @@ -1394,7 +1394,7 @@ gTrainers:: @ 81F04FC @ BRIANNA_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "BRIANNA$", 12 @@ -1406,7 +1406,7 @@ gTrainers:: @ 81F04FC @ CINDY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1418,7 +1418,7 @@ gTrainers:: @ 81F04FC @ BRIANNA_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "BRIANNA$", 12 @@ -1430,7 +1430,7 @@ gTrainers:: @ 81F04FC @ ANETTE .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "ANETTE$", 12 @@ -1442,7 +1442,7 @@ gTrainers:: @ 81F04FC @ CINDY_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1454,7 +1454,7 @@ gTrainers:: @ 81F04FC @ CINDY_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1466,7 +1466,7 @@ gTrainers:: @ 81F04FC @ CINDY_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1478,7 +1478,7 @@ gTrainers:: @ 81F04FC @ CINDY_6 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LADY + .byte TRAINER_CLASS_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LADY .string "CINDY$", 12 @@ -1490,7 +1490,7 @@ gTrainers:: @ 81F04FC @ MELISSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "MELISSA$", 12 @@ -1502,7 +1502,7 @@ gTrainers:: @ 81F04FC @ SHEILA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "SHEILA$", 12 @@ -1514,7 +1514,7 @@ gTrainers:: @ 81F04FC @ SHIRLEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "SHIRLEY$", 12 @@ -1526,7 +1526,7 @@ gTrainers:: @ 81F04FC @ JESSICA_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JESSICA$", 12 @@ -1538,7 +1538,7 @@ gTrainers:: @ 81F04FC @ CONNIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "CONNIE$", 12 @@ -1550,7 +1550,7 @@ gTrainers:: @ 81F04FC @ BRIDGET .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "BRIDGET$", 12 @@ -1562,7 +1562,7 @@ gTrainers:: @ 81F04FC @ OLIVIA .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "OLIVIA$", 12 @@ -1574,7 +1574,7 @@ gTrainers:: @ 81F04FC @ TIFFANY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "TIFFANY$", 12 @@ -1586,7 +1586,7 @@ gTrainers:: @ 81F04FC @ JESSICA_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JESSICA$", 12 @@ -1598,7 +1598,7 @@ gTrainers:: @ 81F04FC @ JESSICA_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JESSICA$", 12 @@ -1610,7 +1610,7 @@ gTrainers:: @ 81F04FC @ JESSICA_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JESSICA$", 12 @@ -1622,7 +1622,7 @@ gTrainers:: @ 81F04FC @ JESSICA_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JESSICA$", 12 @@ -1634,7 +1634,7 @@ gTrainers:: @ 81F04FC @ WINSTON_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "WINSTON$", 12 @@ -1646,7 +1646,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "$", 12 @@ -1658,7 +1658,7 @@ gTrainers:: @ 81F04FC @ GARRET .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "GARRET$", 12 @@ -1670,7 +1670,7 @@ gTrainers:: @ 81F04FC @ WINSTON_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "WINSTON$", 12 @@ -1682,7 +1682,7 @@ gTrainers:: @ 81F04FC @ WINSTON_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "WINSTON$", 12 @@ -1694,7 +1694,7 @@ gTrainers:: @ 81F04FC @ WINSTON_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "WINSTON$", 12 @@ -1706,7 +1706,7 @@ gTrainers:: @ 81F04FC @ WINSTON_5 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_RICH_BOY + .byte TRAINER_CLASS_RICH_BOY .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_RICH_BOY .string "WINSTON$", 12 @@ -1718,7 +1718,7 @@ gTrainers:: @ 81F04FC @ STEVE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "STEVE$", 12 @@ -1730,7 +1730,7 @@ gTrainers:: @ 81F04FC @ CHRIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "CHRIS$", 12 @@ -1742,7 +1742,7 @@ gTrainers:: @ 81F04FC @ MARK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "MARK$", 12 @@ -1754,7 +1754,7 @@ gTrainers:: @ 81F04FC @ KENN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "KENN$", 12 @@ -1766,7 +1766,7 @@ gTrainers:: @ 81F04FC @ STEVE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "STEVE$", 12 @@ -1778,7 +1778,7 @@ gTrainers:: @ 81F04FC @ STEVE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "STEVE$", 12 @@ -1790,7 +1790,7 @@ gTrainers:: @ 81F04FC @ STEVE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "STEVE$", 12 @@ -1802,7 +1802,7 @@ gTrainers:: @ 81F04FC @ STEVE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMANIAC + .byte TRAINER_CLASS_POKEMANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_POKEMANIAC .string "STEVE$", 12 @@ -1814,7 +1814,7 @@ gTrainers:: @ 81F04FC @ LUIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "LUIS$", 12 @@ -1826,7 +1826,7 @@ gTrainers:: @ 81F04FC @ AUSTIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "AUSTIN$", 12 @@ -1838,7 +1838,7 @@ gTrainers:: @ 81F04FC @ DOUGLAS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DOUGLAS$", 12 @@ -1850,7 +1850,7 @@ gTrainers:: @ 81F04FC @ DARRIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DARRIN$", 12 @@ -1862,7 +1862,7 @@ gTrainers:: @ 81F04FC @ TONY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TONY$", 12 @@ -1874,7 +1874,7 @@ gTrainers:: @ 81F04FC @ JEROME .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "JEROME$", 12 @@ -1886,7 +1886,7 @@ gTrainers:: @ 81F04FC @ MATTHEW .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "MATTHEW$", 12 @@ -1898,7 +1898,7 @@ gTrainers:: @ 81F04FC @ DAVID .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DAVID$", 12 @@ -1910,7 +1910,7 @@ gTrainers:: @ 81F04FC @ SPENCER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "SPENCER$", 12 @@ -1922,7 +1922,7 @@ gTrainers:: @ 81F04FC @ ROLAND .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "ROLAND$", 12 @@ -1934,7 +1934,7 @@ gTrainers:: @ 81F04FC @ CODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "CODY$", 12 @@ -1946,7 +1946,7 @@ gTrainers:: @ 81F04FC @ STAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "STAN$", 12 @@ -1958,7 +1958,7 @@ gTrainers:: @ 81F04FC @ BARRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "BARRY$", 12 @@ -1970,7 +1970,7 @@ gTrainers:: @ 81F04FC @ DEAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DEAN$", 12 @@ -1982,7 +1982,7 @@ gTrainers:: @ 81F04FC @ RODNEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "RODNEY$", 12 @@ -1994,7 +1994,7 @@ gTrainers:: @ 81F04FC @ RICHARD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "RICHARD$", 12 @@ -2006,7 +2006,7 @@ gTrainers:: @ 81F04FC @ HERMAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "HERMAN$", 12 @@ -2018,7 +2018,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "$", 12 @@ -2030,7 +2030,7 @@ gTrainers:: @ 81F04FC @ GILBERT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "GILBERT$", 12 @@ -2042,7 +2042,7 @@ gTrainers:: @ 81F04FC @ FRANKLIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "FRANKLIN$", 12 @@ -2054,7 +2054,7 @@ gTrainers:: @ 81F04FC @ DANNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DANNY$", 12 @@ -2066,7 +2066,7 @@ gTrainers:: @ 81F04FC @ JACK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "JACK$", 12 @@ -2078,7 +2078,7 @@ gTrainers:: @ 81F04FC @ DUDLEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "DUDLEY$", 12 @@ -2090,7 +2090,7 @@ gTrainers:: @ 81F04FC @ CHAD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "CHAD$", 12 @@ -2102,7 +2102,7 @@ gTrainers:: @ 81F04FC @ TONY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TONY$", 12 @@ -2114,7 +2114,7 @@ gTrainers:: @ 81F04FC @ TONY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TONY$", 12 @@ -2126,7 +2126,7 @@ gTrainers:: @ 81F04FC @ TONY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TONY$", 12 @@ -2138,7 +2138,7 @@ gTrainers:: @ 81F04FC @ TONY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "TONY$", 12 @@ -2150,7 +2150,7 @@ gTrainers:: @ 81F04FC @ HIDEKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "HIDEKI$", 12 @@ -2162,7 +2162,7 @@ gTrainers:: @ 81F04FC @ HITOSHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "HITOSHI$", 12 @@ -2174,7 +2174,7 @@ gTrainers:: @ 81F04FC @ KIYO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "KIYO$", 12 @@ -2186,7 +2186,7 @@ gTrainers:: @ 81F04FC @ KOICHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "KOICHI$", 12 @@ -2198,7 +2198,7 @@ gTrainers:: @ 81F04FC @ NOB_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "NOB$", 12 @@ -2210,7 +2210,7 @@ gTrainers:: @ 81F04FC @ NOB_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "NOB$", 12 @@ -2222,7 +2222,7 @@ gTrainers:: @ 81F04FC @ NOB_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "NOB$", 12 @@ -2234,7 +2234,7 @@ gTrainers:: @ 81F04FC @ NOB_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "NOB$", 12 @@ -2246,7 +2246,7 @@ gTrainers:: @ 81F04FC @ NOB_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "NOB$", 12 @@ -2258,7 +2258,7 @@ gTrainers:: @ 81F04FC @ YUJI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "YUJI$", 12 @@ -2270,7 +2270,7 @@ gTrainers:: @ 81F04FC @ DAISUKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "DAISUKE$", 12 @@ -2282,7 +2282,7 @@ gTrainers:: @ 81F04FC @ ATSUSHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "ATSUSHI$", 12 @@ -2294,7 +2294,7 @@ gTrainers:: @ 81F04FC @ KIRK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "KIRK$", 12 @@ -2306,7 +2306,7 @@ gTrainers:: @ 81F04FC @ SCOTT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "SCOTT$", 12 @@ -2318,7 +2318,7 @@ gTrainers:: @ 81F04FC @ HARVEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "HARVEY$", 12 @@ -2330,7 +2330,7 @@ gTrainers:: @ 81F04FC @ SHAWN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "SHAWN$", 12 @@ -2342,7 +2342,7 @@ gTrainers:: @ 81F04FC @ RANDY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "RANDY$", 12 @@ -2354,7 +2354,7 @@ gTrainers:: @ 81F04FC @ DALTON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "DALTON$", 12 @@ -2366,7 +2366,7 @@ gTrainers:: @ 81F04FC @ DALTON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "DALTON$", 12 @@ -2378,7 +2378,7 @@ gTrainers:: @ 81F04FC @ DALTON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "DALTON$", 12 @@ -2390,7 +2390,7 @@ gTrainers:: @ 81F04FC @ DALTON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "DALTON$", 12 @@ -2402,7 +2402,7 @@ gTrainers:: @ 81F04FC @ DALTON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GUITARIST + .byte TRAINER_CLASS_GUITARIST .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_GUITARIST .string "DALTON$", 12 @@ -2414,7 +2414,7 @@ gTrainers:: @ 81F04FC @ COLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "COLE$", 12 @@ -2426,7 +2426,7 @@ gTrainers:: @ 81F04FC @ FLINT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "FLINT$", 12 @@ -2438,7 +2438,7 @@ gTrainers:: @ 81F04FC @ AXLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "AXLE$", 12 @@ -2450,7 +2450,7 @@ gTrainers:: @ 81F04FC @ JAKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "JAKE$", 12 @@ -2462,7 +2462,7 @@ gTrainers:: @ 81F04FC @ ANDY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "ANDY$", 12 @@ -2474,7 +2474,7 @@ gTrainers:: @ 81F04FC @ BERNIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "BERNIE$", 12 @@ -2486,7 +2486,7 @@ gTrainers:: @ 81F04FC @ BERNIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "BERNIE$", 12 @@ -2498,7 +2498,7 @@ gTrainers:: @ 81F04FC @ BERNIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "BERNIE$", 12 @@ -2510,7 +2510,7 @@ gTrainers:: @ 81F04FC @ BERNIE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "BERNIE$", 12 @@ -2522,7 +2522,7 @@ gTrainers:: @ 81F04FC @ BERNIE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_KINDLER + .byte TRAINER_CLASS_KINDLER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_KINDLER .string "BERNIE$", 12 @@ -2534,7 +2534,7 @@ gTrainers:: @ 81F04FC @ DREW .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "DREW$", 12 @@ -2546,7 +2546,7 @@ gTrainers:: @ 81F04FC @ CLIFF .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "CLIFF$", 12 @@ -2558,7 +2558,7 @@ gTrainers:: @ 81F04FC @ LARRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "LARRY$", 12 @@ -2570,7 +2570,7 @@ gTrainers:: @ 81F04FC @ SHANE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "SHANE$", 12 @@ -2582,7 +2582,7 @@ gTrainers:: @ 81F04FC @ JUSTIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "JUSTIN$", 12 @@ -2594,7 +2594,7 @@ gTrainers:: @ 81F04FC @ ETHAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ETHAN$", 12 @@ -2606,7 +2606,7 @@ gTrainers:: @ 81F04FC @ JEFF .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "JEFF$", 12 @@ -2618,7 +2618,7 @@ gTrainers:: @ 81F04FC @ TRAVIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "TRAVIS$", 12 @@ -2630,7 +2630,7 @@ gTrainers:: @ 81F04FC @ ETHAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ETHAN$", 12 @@ -2642,7 +2642,7 @@ gTrainers:: @ 81F04FC @ ETHAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ETHAN$", 12 @@ -2654,7 +2654,7 @@ gTrainers:: @ 81F04FC @ ETHAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ETHAN$", 12 @@ -2666,7 +2666,7 @@ gTrainers:: @ 81F04FC @ ETHAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "ETHAN$", 12 @@ -2678,7 +2678,7 @@ gTrainers:: @ 81F04FC @ BRENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRENT$", 12 @@ -2690,7 +2690,7 @@ gTrainers:: @ 81F04FC @ DONALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "DONALD$", 12 @@ -2702,7 +2702,7 @@ gTrainers:: @ 81F04FC @ TAYLOR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "TAYLOR$", 12 @@ -2714,7 +2714,7 @@ gTrainers:: @ 81F04FC @ BRANDON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRANDON$", 12 @@ -2726,7 +2726,7 @@ gTrainers:: @ 81F04FC @ DEREK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "DEREK$", 12 @@ -2738,7 +2738,7 @@ gTrainers:: @ 81F04FC @ BRANDON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRANDON$", 12 @@ -2750,7 +2750,7 @@ gTrainers:: @ 81F04FC @ BRANDON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRANDON$", 12 @@ -2762,7 +2762,7 @@ gTrainers:: @ 81F04FC @ BRANDON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRANDON$", 12 @@ -2774,7 +2774,7 @@ gTrainers:: @ 81F04FC @ BRANDON_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_BUG_MANIAC + .byte TRAINER_CLASS_BUG_MANIAC .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_BUG_MANIAC .string "BRANDON$", 12 @@ -2786,7 +2786,7 @@ gTrainers:: @ 81F04FC @ EDWARD .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "EDWARD$", 12 @@ -2798,7 +2798,7 @@ gTrainers:: @ 81F04FC @ PRESTON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "PRESTON$", 12 @@ -2810,7 +2810,7 @@ gTrainers:: @ 81F04FC @ VIRGIL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "VIRGIL$", 12 @@ -2822,7 +2822,7 @@ gTrainers:: @ 81F04FC @ FRITZ .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "FRITZ$", 12 @@ -2834,7 +2834,7 @@ gTrainers:: @ 81F04FC @ WILLIAM .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "WILLIAM$", 12 @@ -2846,7 +2846,7 @@ gTrainers:: @ 81F04FC @ JOSHUA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "JOSHUA$", 12 @@ -2858,7 +2858,7 @@ gTrainers:: @ 81F04FC @ CAMERON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "CAMERON$", 12 @@ -2870,7 +2870,7 @@ gTrainers:: @ 81F04FC @ CAMERON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "CAMERON$", 12 @@ -2882,7 +2882,7 @@ gTrainers:: @ 81F04FC @ CAMERON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "CAMERON$", 12 @@ -2894,7 +2894,7 @@ gTrainers:: @ 81F04FC @ CAMERON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "CAMERON$", 12 @@ -2906,7 +2906,7 @@ gTrainers:: @ 81F04FC @ CAMERON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_M .string "CAMERON$", 12 @@ -2918,7 +2918,7 @@ gTrainers:: @ 81F04FC @ JACLYN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACLYN$", 12 @@ -2930,7 +2930,7 @@ gTrainers:: @ 81F04FC @ HANNAH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "HANNAH$", 12 @@ -2942,7 +2942,7 @@ gTrainers:: @ 81F04FC @ SAMANTHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "SAMANTHA$", 12 @@ -2954,7 +2954,7 @@ gTrainers:: @ 81F04FC @ MAURA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "MAURA$", 12 @@ -2966,7 +2966,7 @@ gTrainers:: @ 81F04FC @ KAYLA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "KAYLA$", 12 @@ -2978,7 +2978,7 @@ gTrainers:: @ 81F04FC @ ALEXIS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "ALEXIS$", 12 @@ -2990,7 +2990,7 @@ gTrainers:: @ 81F04FC @ JACKI_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACKI$", 12 @@ -3002,7 +3002,7 @@ gTrainers:: @ 81F04FC @ JACKI_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACKI$", 12 @@ -3014,7 +3014,7 @@ gTrainers:: @ 81F04FC @ JACKI_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACKI$", 12 @@ -3026,7 +3026,7 @@ gTrainers:: @ 81F04FC @ JACKI_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACKI$", 12 @@ -3038,7 +3038,7 @@ gTrainers:: @ 81F04FC @ JACKI_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PSYCHIC + .byte TRAINER_CLASS_PSYCHIC .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_PSYCHIC_F .string "JACKI$", 12 @@ -3050,7 +3050,7 @@ gTrainers:: @ 81F04FC @ WALTER_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "WALTER$", 12 @@ -3062,7 +3062,7 @@ gTrainers:: @ 81F04FC @ TUCKER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "TUCKER$", 12 @@ -3074,7 +3074,7 @@ gTrainers:: @ 81F04FC @ THOMAS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "THOMAS$", 12 @@ -3086,7 +3086,7 @@ gTrainers:: @ 81F04FC @ WALTER_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "WALTER$", 12 @@ -3098,7 +3098,7 @@ gTrainers:: @ 81F04FC @ WALTER_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "WALTER$", 12 @@ -3110,7 +3110,7 @@ gTrainers:: @ 81F04FC @ WALTER_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "WALTER$", 12 @@ -3122,7 +3122,7 @@ gTrainers:: @ 81F04FC @ WALTER_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_GENTLEMAN + .byte TRAINER_CLASS_GENTLEMAN .byte TRAINER_ENCOUNTER_MUSIC_RICH @ gender flag and encounter music .byte TRAINER_PIC_GENTLEMAN .string "WALTER$", 12 @@ -3134,7 +3134,7 @@ gTrainers:: @ 81F04FC @ SIDNEY .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_SIDNEY .string "SIDNEY$", 12 @@ -3146,7 +3146,7 @@ gTrainers:: @ 81F04FC @ PHOEBE .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_PHOEBE .string "PHOEBE$", 12 @@ -3158,7 +3158,7 @@ gTrainers:: @ 81F04FC @ GLACIA .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_GLACIA .string "GLACIA$", 12 @@ -3170,7 +3170,7 @@ gTrainers:: @ 81F04FC @ DRAKE .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_ELITE_FOUR + .byte TRAINER_CLASS_ELITE_FOUR .byte TRAINER_ENCOUNTER_MUSIC_ELITE_FOUR @ gender flag and encounter music .byte TRAINER_PIC_DRAKE .string "DRAKE$", 12 @@ -3182,7 +3182,7 @@ gTrainers:: @ 81F04FC @ ROXANNE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_ROXANNE .string "ROXANNE$", 12 @@ -3194,7 +3194,7 @@ gTrainers:: @ 81F04FC @ BRAWLY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRAWLY .string "BRAWLY$", 12 @@ -3206,7 +3206,7 @@ gTrainers:: @ 81F04FC @ WATTSON .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WATTSON .string "WATTSON$", 12 @@ -3218,7 +3218,7 @@ gTrainers:: @ 81F04FC @ FLANNERY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_FLANNERY .string "FLANNERY$", 12 @@ -3230,7 +3230,7 @@ gTrainers:: @ 81F04FC @ NORMAN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_NORMAN .string "NORMAN$", 12 @@ -3242,7 +3242,7 @@ gTrainers:: @ 81F04FC @ WINONA .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_WINONA .string "WINONA$", 12 @@ -3254,7 +3254,7 @@ gTrainers:: @ 81F04FC @ TATE_AND_LIZA .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_TATE_AND_LIZA .string "TATE&LIZA$", 12 @@ -3266,7 +3266,7 @@ gTrainers:: @ 81F04FC @ WALLACE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_LEADER + .byte TRAINER_CLASS_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLACE .string "WALLACE$", 12 @@ -3278,7 +3278,7 @@ gTrainers:: @ 81F04FC @ JERRY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JERRY$", 12 @@ -3290,7 +3290,7 @@ gTrainers:: @ 81F04FC @ TED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "TED$", 12 @@ -3302,7 +3302,7 @@ gTrainers:: @ 81F04FC @ PAUL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "PAUL$", 12 @@ -3314,7 +3314,7 @@ gTrainers:: @ 81F04FC @ JERRY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JERRY$", 12 @@ -3326,7 +3326,7 @@ gTrainers:: @ 81F04FC @ JERRY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JERRY$", 12 @@ -3338,7 +3338,7 @@ gTrainers:: @ 81F04FC @ JERRY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JERRY$", 12 @@ -3350,7 +3350,7 @@ gTrainers:: @ 81F04FC @ JERRY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_M .string "JERRY$", 12 @@ -3362,7 +3362,7 @@ gTrainers:: @ 81F04FC @ KAREN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KAREN$", 12 @@ -3374,7 +3374,7 @@ gTrainers:: @ 81F04FC @ GEORGIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "GEORGIA$", 12 @@ -3386,7 +3386,7 @@ gTrainers:: @ 81F04FC @ KAREN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KAREN$", 12 @@ -3398,7 +3398,7 @@ gTrainers:: @ 81F04FC @ KAREN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KAREN$", 12 @@ -3410,7 +3410,7 @@ gTrainers:: @ 81F04FC @ KAREN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KAREN$", 12 @@ -3422,7 +3422,7 @@ gTrainers:: @ 81F04FC @ KAREN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SCHOOL_KID + .byte TRAINER_CLASS_SCHOOL_KID .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_SCHOOL_KID_F .string "KAREN$", 12 @@ -3434,7 +3434,7 @@ gTrainers:: @ 81F04FC @ KATE_AND_JOY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "KATE & JOY$", 12 @@ -3446,7 +3446,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ANNA & MEG$", 12 @@ -3458,7 +3458,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ANNA & MEG$", 12 @@ -3470,7 +3470,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ANNA & MEG$", 12 @@ -3482,7 +3482,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ANNA & MEG$", 12 @@ -3494,7 +3494,7 @@ gTrainers:: @ 81F04FC @ ANNA_AND_MEG_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "ANNA & MEG$", 12 @@ -3506,7 +3506,7 @@ gTrainers:: @ 81F04FC @ VICTOR .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "VICTOR$", 12 @@ -3518,7 +3518,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3530,7 +3530,7 @@ gTrainers:: @ 81F04FC @ COLTON .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "COLTON$", 12 @@ -3542,7 +3542,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3554,7 +3554,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3566,7 +3566,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3578,7 +3578,7 @@ gTrainers:: @ 81F04FC @ MIGUEL_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_M .string "MIGUEL$", 12 @@ -3590,7 +3590,7 @@ gTrainers:: @ 81F04FC @ VICTORIA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "VICTORIA$", 12 @@ -3602,7 +3602,7 @@ gTrainers:: @ 81F04FC @ VANESSA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "VANESSA$", 12 @@ -3614,7 +3614,7 @@ gTrainers:: @ 81F04FC @ MARISSA .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "MARISSA$", 12 @@ -3626,7 +3626,7 @@ gTrainers:: @ 81F04FC @ ISABEL_1 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3638,7 +3638,7 @@ gTrainers:: @ 81F04FC @ ISABEL_2 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3650,7 +3650,7 @@ gTrainers:: @ 81F04FC @ ISABEL_3 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3662,7 +3662,7 @@ gTrainers:: @ 81F04FC @ ISABEL_4 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3674,7 +3674,7 @@ gTrainers:: @ 81F04FC @ ISABEL_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_POKEFAN + .byte TRAINER_CLASS_POKEFAN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_POKEFAN_F .string "ISABEL$", 12 @@ -3686,7 +3686,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "TIMOTHY$", 12 @@ -3698,7 +3698,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "TIMOTHY$", 12 @@ -3710,7 +3710,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "TIMOTHY$", 12 @@ -3722,7 +3722,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "TIMOTHY$", 12 @@ -3734,7 +3734,7 @@ gTrainers:: @ 81F04FC @ TIMOTHY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_M .string "TIMOTHY$", 12 @@ -3746,7 +3746,7 @@ gTrainers:: @ 81F04FC @ VICKY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "VICKY$", 12 @@ -3758,7 +3758,7 @@ gTrainers:: @ 81F04FC @ SHELBY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "SHELBY$", 12 @@ -3770,7 +3770,7 @@ gTrainers:: @ 81F04FC @ SHELBY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "SHELBY$", 12 @@ -3782,7 +3782,7 @@ gTrainers:: @ 81F04FC @ SHELBY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "SHELBY$", 12 @@ -3794,7 +3794,7 @@ gTrainers:: @ 81F04FC @ SHELBY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "SHELBY$", 12 @@ -3806,7 +3806,7 @@ gTrainers:: @ 81F04FC @ SHELBY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_EXPERT + .byte TRAINER_CLASS_EXPERT .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_EXPERT_F .string "SHELBY$", 12 @@ -3818,7 +3818,7 @@ gTrainers:: @ 81F04FC @ CALVIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "CALVIN$", 12 @@ -3830,7 +3830,7 @@ gTrainers:: @ 81F04FC @ BILLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "BILLY$", 12 @@ -3842,7 +3842,7 @@ gTrainers:: @ 81F04FC @ JOSH .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "JOSH$", 12 @@ -3854,7 +3854,7 @@ gTrainers:: @ 81F04FC @ TOMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "TOMMY$", 12 @@ -3866,7 +3866,7 @@ gTrainers:: @ 81F04FC @ JOEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "JOEY$", 12 @@ -3878,7 +3878,7 @@ gTrainers:: @ 81F04FC @ BEN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "BEN$", 12 @@ -3890,7 +3890,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -3902,7 +3902,7 @@ gTrainers:: @ 81F04FC @ KEVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "KEVIN$", 12 @@ -3914,7 +3914,7 @@ gTrainers:: @ 81F04FC @ NEAL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "NEAL$", 12 @@ -3926,7 +3926,7 @@ gTrainers:: @ 81F04FC @ DILLON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "DILLON$", 12 @@ -3938,7 +3938,7 @@ gTrainers:: @ 81F04FC @ CALVIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "CALVIN$", 12 @@ -3950,7 +3950,7 @@ gTrainers:: @ 81F04FC @ CALVIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "CALVIN$", 12 @@ -3962,7 +3962,7 @@ gTrainers:: @ 81F04FC @ CALVIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "CALVIN$", 12 @@ -3974,7 +3974,7 @@ gTrainers:: @ 81F04FC @ CALVIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "CALVIN$", 12 @@ -3986,7 +3986,7 @@ gTrainers:: @ 81F04FC @ EDDIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "EDDIE$", 12 @@ -3998,7 +3998,7 @@ gTrainers:: @ 81F04FC @ ALLEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "ALLEN$", 12 @@ -4010,7 +4010,7 @@ gTrainers:: @ 81F04FC @ TIMMY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNGSTER + .byte TRAINER_CLASS_YOUNGSTER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "TIMMY$", 12 @@ -4022,7 +4022,7 @@ gTrainers:: @ 81F04FC @ STEVEN .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_CHAMPION + .byte TRAINER_CLASS_CHAMPION .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_STEVEN .string "STEVEN$", 12 @@ -4034,7 +4034,7 @@ gTrainers:: @ 81F04FC @ ANDREW .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ANDREW$", 12 @@ -4046,7 +4046,7 @@ gTrainers:: @ 81F04FC @ IVAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "IVAN$", 12 @@ -4058,7 +4058,7 @@ gTrainers:: @ 81F04FC @ CLAUDE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "CLAUDE$", 12 @@ -4070,7 +4070,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ELLIOT$", 12 @@ -4082,7 +4082,7 @@ gTrainers:: @ 81F04FC @ NED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "NED$", 12 @@ -4094,7 +4094,7 @@ gTrainers:: @ 81F04FC @ DALE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "DALE$", 12 @@ -4106,7 +4106,7 @@ gTrainers:: @ 81F04FC @ NOLAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "NOLAN$", 12 @@ -4118,7 +4118,7 @@ gTrainers:: @ 81F04FC @ BARNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "BARNY$", 12 @@ -4130,7 +4130,7 @@ gTrainers:: @ 81F04FC @ WADE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "WADE$", 12 @@ -4142,7 +4142,7 @@ gTrainers:: @ 81F04FC @ CARTER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "CARTER$", 12 @@ -4154,7 +4154,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ELLIOT$", 12 @@ -4166,7 +4166,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ELLIOT$", 12 @@ -4178,7 +4178,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ELLIOT$", 12 @@ -4190,7 +4190,7 @@ gTrainers:: @ 81F04FC @ ELLIOT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ELLIOT$", 12 @@ -4202,7 +4202,7 @@ gTrainers:: @ 81F04FC @ RONALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "RONALD$", 12 @@ -4214,7 +4214,7 @@ gTrainers:: @ 81F04FC @ JACOB .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "JACOB$", 12 @@ -4226,7 +4226,7 @@ gTrainers:: @ 81F04FC @ ANTHONY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "ANTHONY$", 12 @@ -4238,7 +4238,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "BENJAMIN$", 12 @@ -4250,7 +4250,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "BENJAMIN$", 12 @@ -4262,7 +4262,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "BENJAMIN$", 12 @@ -4274,7 +4274,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "BENJAMIN$", 12 @@ -4286,7 +4286,7 @@ gTrainers:: @ 81F04FC @ BENJAMIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_M .string "BENJAMIN$", 12 @@ -4298,7 +4298,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "ABIGAIL$", 12 @@ -4310,7 +4310,7 @@ gTrainers:: @ 81F04FC @ JASMINE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "JASMINE$", 12 @@ -4322,7 +4322,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "ABIGAIL$", 12 @@ -4334,7 +4334,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "ABIGAIL$", 12 @@ -4346,7 +4346,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "ABIGAIL$", 12 @@ -4358,7 +4358,7 @@ gTrainers:: @ 81F04FC @ ABIGAIL_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_CYCLING_TRIATHLETE_F .string "ABIGAIL$", 12 @@ -4370,7 +4370,7 @@ gTrainers:: @ 81F04FC @ DYLAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "DYLAN$", 12 @@ -4382,7 +4382,7 @@ gTrainers:: @ 81F04FC @ DYLAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "DYLAN$", 12 @@ -4394,7 +4394,7 @@ gTrainers:: @ 81F04FC @ DYLAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "DYLAN$", 12 @@ -4406,7 +4406,7 @@ gTrainers:: @ 81F04FC @ DYLAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "DYLAN$", 12 @@ -4418,7 +4418,7 @@ gTrainers:: @ 81F04FC @ DYLAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_M .string "DYLAN$", 12 @@ -4430,7 +4430,7 @@ gTrainers:: @ 81F04FC @ MARIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "MARIA$", 12 @@ -4442,7 +4442,7 @@ gTrainers:: @ 81F04FC @ MARIA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "MARIA$", 12 @@ -4454,7 +4454,7 @@ gTrainers:: @ 81F04FC @ MARIA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "MARIA$", 12 @@ -4466,7 +4466,7 @@ gTrainers:: @ 81F04FC @ MARIA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "MARIA$", 12 @@ -4478,7 +4478,7 @@ gTrainers:: @ 81F04FC @ MARIA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_RUNNING_TRIATHLETE_F .string "MARIA$", 12 @@ -4490,7 +4490,7 @@ gTrainers:: @ 81F04FC @ CALEB .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "CALEB$", 12 @@ -4502,7 +4502,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "$", 12 @@ -4514,7 +4514,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "ISAIAH$", 12 @@ -4526,7 +4526,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "$", 12 @@ -4538,7 +4538,7 @@ gTrainers:: @ 81F04FC @ CHASE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "CHASE$", 12 @@ -4550,7 +4550,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "ISAIAH$", 12 @@ -4562,7 +4562,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "ISAIAH$", 12 @@ -4574,7 +4574,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "ISAIAH$", 12 @@ -4586,7 +4586,7 @@ gTrainers:: @ 81F04FC @ ISAIAH_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_M .string "ISAIAH$", 12 @@ -4598,7 +4598,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "$", 12 @@ -4610,7 +4610,7 @@ gTrainers:: @ 81F04FC @ CONNOR .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "CONNOR$", 12 @@ -4622,7 +4622,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "$", 12 @@ -4634,7 +4634,7 @@ gTrainers:: @ 81F04FC @ KATELYN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "KATELYN$", 12 @@ -4646,7 +4646,7 @@ gTrainers:: @ 81F04FC @ ALLISON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "ALLISON$", 12 @@ -4658,7 +4658,7 @@ gTrainers:: @ 81F04FC @ KATELYN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "KATELYN$", 12 @@ -4670,7 +4670,7 @@ gTrainers:: @ 81F04FC @ KATELYN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "KATELYN$", 12 @@ -4682,7 +4682,7 @@ gTrainers:: @ 81F04FC @ KATELYN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "KATELYN$", 12 @@ -4694,7 +4694,7 @@ gTrainers:: @ 81F04FC @ KATELYN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TRIATHLETE + .byte TRAINER_CLASS_TRIATHLETE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMING_TRIATHLETE_F .string "KATELYN$", 12 @@ -4706,7 +4706,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "NICOLAS$", 12 @@ -4718,7 +4718,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "NICOLAS$", 12 @@ -4730,7 +4730,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "NICOLAS$", 12 @@ -4742,7 +4742,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "NICOLAS$", 12 @@ -4754,7 +4754,7 @@ gTrainers:: @ 81F04FC @ NICOLAS_5 .byte F_TRAINER_PARTY_HELD_ITEM @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "NICOLAS$", 12 @@ -4766,7 +4766,7 @@ gTrainers:: @ 81F04FC @ AARON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_DRAGON_TAMER + .byte TRAINER_CLASS_DRAGON_TAMER .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_DRAGON_TAMER .string "AARON$", 12 @@ -4778,7 +4778,7 @@ gTrainers:: @ 81F04FC @ PERRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "PERRY$", 12 @@ -4790,7 +4790,7 @@ gTrainers:: @ 81F04FC @ HUGH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "HUGH$", 12 @@ -4802,7 +4802,7 @@ gTrainers:: @ 81F04FC @ PHIL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "PHIL$", 12 @@ -4814,7 +4814,7 @@ gTrainers:: @ 81F04FC @ JARED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "JARED$", 12 @@ -4826,7 +4826,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "$", 12 @@ -4838,7 +4838,7 @@ gTrainers:: @ 81F04FC @ TANNER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "TANNER$", 12 @@ -4850,7 +4850,7 @@ gTrainers:: @ 81F04FC @ WILL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "WILL$", 12 @@ -4862,7 +4862,7 @@ gTrainers:: @ 81F04FC @ COLIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "COLIN$", 12 @@ -4874,7 +4874,7 @@ gTrainers:: @ 81F04FC @ ROBERT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ROBERT$", 12 @@ -4886,7 +4886,7 @@ gTrainers:: @ 81F04FC @ BENNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "BENNY$", 12 @@ -4898,7 +4898,7 @@ gTrainers:: @ 81F04FC @ CHESTER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "CHESTER$", 12 @@ -4910,7 +4910,7 @@ gTrainers:: @ 81F04FC @ ROBERT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ROBERT$", 12 @@ -4922,7 +4922,7 @@ gTrainers:: @ 81F04FC @ ROBERT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ROBERT$", 12 @@ -4934,7 +4934,7 @@ gTrainers:: @ 81F04FC @ ROBERT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ROBERT$", 12 @@ -4946,7 +4946,7 @@ gTrainers:: @ 81F04FC @ ROBERT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ROBERT$", 12 @@ -4958,7 +4958,7 @@ gTrainers:: @ 81F04FC @ ALEX .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "ALEX$", 12 @@ -4970,7 +4970,7 @@ gTrainers:: @ 81F04FC @ BECK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "BECK$", 12 @@ -4982,7 +4982,7 @@ gTrainers:: @ 81F04FC @ YASU .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "YASU$", 12 @@ -4994,7 +4994,7 @@ gTrainers:: @ 81F04FC @ TAKASHI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "TAKASHI$", 12 @@ -5006,7 +5006,7 @@ gTrainers:: @ 81F04FC @ MAKOTO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "MAKOTO$", 12 @@ -5018,7 +5018,7 @@ gTrainers:: @ 81F04FC @ HIDEO_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "HIDEO$", 12 @@ -5030,7 +5030,7 @@ gTrainers:: @ 81F04FC @ LAO_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LAO$", 12 @@ -5042,7 +5042,7 @@ gTrainers:: @ 81F04FC @ LUNG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LUNG$", 12 @@ -5054,7 +5054,7 @@ gTrainers:: @ 81F04FC @ LAO_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LAO$", 12 @@ -5066,7 +5066,7 @@ gTrainers:: @ 81F04FC @ LAO_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LAO$", 12 @@ -5078,7 +5078,7 @@ gTrainers:: @ 81F04FC @ LAO_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LAO$", 12 @@ -5090,7 +5090,7 @@ gTrainers:: @ 81F04FC @ LAO_5 .byte F_TRAINER_PARTY_HELD_ITEM | F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "LAO$", 12 @@ -5102,7 +5102,7 @@ gTrainers:: @ 81F04FC @ TESSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "TESSA$", 12 @@ -5114,7 +5114,7 @@ gTrainers:: @ 81F04FC @ LAURA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "LAURA$", 12 @@ -5126,7 +5126,7 @@ gTrainers:: @ 81F04FC @ CYNDY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CYNDY$", 12 @@ -5138,7 +5138,7 @@ gTrainers:: @ 81F04FC @ CORA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CORA$", 12 @@ -5150,7 +5150,7 @@ gTrainers:: @ 81F04FC @ JILL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "JILL$", 12 @@ -5162,7 +5162,7 @@ gTrainers:: @ 81F04FC @ CYNDY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CYNDY$", 12 @@ -5174,7 +5174,7 @@ gTrainers:: @ 81F04FC @ CYNDY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CYNDY$", 12 @@ -5186,7 +5186,7 @@ gTrainers:: @ 81F04FC @ CYNDY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CYNDY$", 12 @@ -5198,7 +5198,7 @@ gTrainers:: @ 81F04FC @ CYNDY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "CYNDY$", 12 @@ -5210,7 +5210,7 @@ gTrainers:: @ 81F04FC @ MADELINE_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MADELINE$", 12 @@ -5222,7 +5222,7 @@ gTrainers:: @ 81F04FC @ CLARISSA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "CLARISSA$", 12 @@ -5234,7 +5234,7 @@ gTrainers:: @ 81F04FC @ ANGELICA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "ANGELICA$", 12 @@ -5246,7 +5246,7 @@ gTrainers:: @ 81F04FC @ MADELINE_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MADELINE$", 12 @@ -5258,7 +5258,7 @@ gTrainers:: @ 81F04FC @ MADELINE_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MADELINE$", 12 @@ -5270,7 +5270,7 @@ gTrainers:: @ 81F04FC @ MADELINE_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MADELINE$", 12 @@ -5282,7 +5282,7 @@ gTrainers:: @ 81F04FC @ MADELINE_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PARASOL_LADY + .byte TRAINER_CLASS_PARASOL_LADY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_PARASOL_LADY .string "MADELINE$", 12 @@ -5294,7 +5294,7 @@ gTrainers:: @ 81F04FC @ BEVERLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "BEVERLY$", 12 @@ -5306,7 +5306,7 @@ gTrainers:: @ 81F04FC @ DAWN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DAWN$", 12 @@ -5318,7 +5318,7 @@ gTrainers:: @ 81F04FC @ NICOLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "NICOLE$", 12 @@ -5330,7 +5330,7 @@ gTrainers:: @ 81F04FC @ DENISE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DENISE$", 12 @@ -5342,7 +5342,7 @@ gTrainers:: @ 81F04FC @ BETH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "BETH$", 12 @@ -5354,7 +5354,7 @@ gTrainers:: @ 81F04FC @ TARA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "TARA$", 12 @@ -5366,7 +5366,7 @@ gTrainers:: @ 81F04FC @ MISSY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "MISSY$", 12 @@ -5378,7 +5378,7 @@ gTrainers:: @ 81F04FC @ ALICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ALICE$", 12 @@ -5390,7 +5390,7 @@ gTrainers:: @ 81F04FC @ JENNY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JENNY$", 12 @@ -5402,7 +5402,7 @@ gTrainers:: @ 81F04FC @ GRACE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "GRACE$", 12 @@ -5414,7 +5414,7 @@ gTrainers:: @ 81F04FC @ TANYA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "TANYA$", 12 @@ -5426,7 +5426,7 @@ gTrainers:: @ 81F04FC @ SHARON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "SHARON$", 12 @@ -5438,7 +5438,7 @@ gTrainers:: @ 81F04FC @ NIKKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "NIKKI$", 12 @@ -5450,7 +5450,7 @@ gTrainers:: @ 81F04FC @ BRENDA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "BRENDA$", 12 @@ -5462,7 +5462,7 @@ gTrainers:: @ 81F04FC @ KATIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "KATIE$", 12 @@ -5474,7 +5474,7 @@ gTrainers:: @ 81F04FC @ SUSIE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "SUSIE$", 12 @@ -5486,7 +5486,7 @@ gTrainers:: @ 81F04FC @ KARA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "KARA$", 12 @@ -5498,7 +5498,7 @@ gTrainers:: @ 81F04FC @ DANA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DANA$", 12 @@ -5510,7 +5510,7 @@ gTrainers:: @ 81F04FC @ ERIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "ERIN$", 12 @@ -5522,7 +5522,7 @@ gTrainers:: @ 81F04FC @ DEBRA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DEBRA$", 12 @@ -5534,7 +5534,7 @@ gTrainers:: @ 81F04FC @ LINDA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "LINDA$", 12 @@ -5546,7 +5546,7 @@ gTrainers:: @ 81F04FC @ KAYLEE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "KAYLEE$", 12 @@ -5558,7 +5558,7 @@ gTrainers:: @ 81F04FC @ LAUREL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "LAUREL$", 12 @@ -5570,7 +5570,7 @@ gTrainers:: @ 81F04FC @ DARCY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "DARCY$", 12 @@ -5582,7 +5582,7 @@ gTrainers:: @ 81F04FC @ JENNY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JENNY$", 12 @@ -5594,7 +5594,7 @@ gTrainers:: @ 81F04FC @ JENNY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JENNY$", 12 @@ -5606,7 +5606,7 @@ gTrainers:: @ 81F04FC @ JENNY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JENNY$", 12 @@ -5618,7 +5618,7 @@ gTrainers:: @ 81F04FC @ JENNY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "JENNY$", 12 @@ -5630,7 +5630,7 @@ gTrainers:: @ 81F04FC @ HEIDI .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "HEIDI$", 12 @@ -5642,7 +5642,7 @@ gTrainers:: @ 81F04FC @ BECKY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "BECKY$", 12 @@ -5654,7 +5654,7 @@ gTrainers:: @ 81F04FC @ CAROL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "CAROL$", 12 @@ -5666,7 +5666,7 @@ gTrainers:: @ 81F04FC @ NANCY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "NANCY$", 12 @@ -5678,7 +5678,7 @@ gTrainers:: @ 81F04FC @ MARTHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "MARTHA$", 12 @@ -5690,7 +5690,7 @@ gTrainers:: @ 81F04FC @ DIANA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "DIANA$", 12 @@ -5702,7 +5702,7 @@ gTrainers:: @ 81F04FC @ NINA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "NINA$", 12 @@ -5714,7 +5714,7 @@ gTrainers:: @ 81F04FC @ IRENE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "IRENE$", 12 @@ -5726,7 +5726,7 @@ gTrainers:: @ 81F04FC @ DIANA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "DIANA$", 12 @@ -5738,7 +5738,7 @@ gTrainers:: @ 81F04FC @ DIANA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "DIANA$", 12 @@ -5750,7 +5750,7 @@ gTrainers:: @ 81F04FC @ DIANA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "DIANA$", 12 @@ -5762,7 +5762,7 @@ gTrainers:: @ 81F04FC @ DIANA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "DIANA$", 12 @@ -5774,7 +5774,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5786,7 +5786,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5798,7 +5798,7 @@ gTrainers:: @ 81F04FC @ GINA_AND_MIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "GINA & MIA$", 12 @@ -5810,7 +5810,7 @@ gTrainers:: @ 81F04FC @ MIU_AND_YUKI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "MIU & YUKI$", 12 @@ -5822,7 +5822,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5834,7 +5834,7 @@ gTrainers:: @ 81F04FC @ GINA_AND_MIA_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "GINA & MIA$", 12 @@ -5846,7 +5846,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5858,7 +5858,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5870,7 +5870,7 @@ gTrainers:: @ 81F04FC @ AMY_AND_LIV_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "AMY & LIV$", 12 @@ -5882,7 +5882,7 @@ gTrainers:: @ 81F04FC @ HUEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "HUEY$", 12 @@ -5894,7 +5894,7 @@ gTrainers:: @ 81F04FC @ EDMOND .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "EDMOND$", 12 @@ -5906,7 +5906,7 @@ gTrainers:: @ 81F04FC @ ERNEST_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ERNEST$", 12 @@ -5918,7 +5918,7 @@ gTrainers:: @ 81F04FC @ DWAYNE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "DWAYNE$", 12 @@ -5930,7 +5930,7 @@ gTrainers:: @ 81F04FC @ PHILLIP .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "PHILLIP$", 12 @@ -5942,7 +5942,7 @@ gTrainers:: @ 81F04FC @ LEONARD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "LEONARD$", 12 @@ -5954,7 +5954,7 @@ gTrainers:: @ 81F04FC @ DUNCAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "DUNCAN$", 12 @@ -5966,7 +5966,7 @@ gTrainers:: @ 81F04FC @ ERNEST_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ERNEST$", 12 @@ -5978,7 +5978,7 @@ gTrainers:: @ 81F04FC @ ERNEST_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ERNEST$", 12 @@ -5990,7 +5990,7 @@ gTrainers:: @ 81F04FC @ ERNEST_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ERNEST$", 12 @@ -6002,7 +6002,7 @@ gTrainers:: @ 81F04FC @ ERNEST_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SAILOR + .byte TRAINER_CLASS_SAILOR .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_SAILOR .string "ERNEST$", 12 @@ -6014,7 +6014,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6026,7 +6026,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6038,7 +6038,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_13 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "$", 12 @@ -6050,7 +6050,7 @@ gTrainers:: @ 81F04FC @ SONNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "SONNY$", 12 @@ -6062,7 +6062,7 @@ gTrainers:: @ 81F04FC @ DONOVAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "DONOVAN$", 12 @@ -6074,7 +6074,7 @@ gTrainers:: @ 81F04FC @ GERALD .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "GERALD$", 12 @@ -6086,7 +6086,7 @@ gTrainers:: @ 81F04FC @ KELVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "KELVIN$", 12 @@ -6098,7 +6098,7 @@ gTrainers:: @ 81F04FC @ KODY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "KODY$", 12 @@ -6110,7 +6110,7 @@ gTrainers:: @ 81F04FC @ TEVIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "TEVIN$", 12 @@ -6122,7 +6122,7 @@ gTrainers:: @ 81F04FC @ DAMON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "DAMON$", 12 @@ -6134,7 +6134,7 @@ gTrainers:: @ 81F04FC @ PABLO .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BOARDER + .byte TRAINER_CLASS_BOARDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_YOUNGSTER .string "PABLO$", 12 @@ -6146,7 +6146,7 @@ gTrainers:: @ 81F04FC @ EDWIN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6158,7 +6158,7 @@ gTrainers:: @ 81F04FC @ HECTOR_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "HECTOR$", 12 @@ -6170,7 +6170,7 @@ gTrainers:: @ 81F04FC @ HECTOR_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "HECTOR$", 12 @@ -6182,7 +6182,7 @@ gTrainers:: @ 81F04FC @ EDWIN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6194,7 +6194,7 @@ gTrainers:: @ 81F04FC @ EDWIN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6206,7 +6206,7 @@ gTrainers:: @ 81F04FC @ EDWIN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6218,7 +6218,7 @@ gTrainers:: @ 81F04FC @ EDWIN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COLLECTOR + .byte TRAINER_CLASS_COLLECTOR .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_COLLECTOR .string "EDWIN$", 12 @@ -6230,7 +6230,7 @@ gTrainers:: @ 81F04FC @ WALLY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -6242,7 +6242,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6254,7 +6254,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6266,7 +6266,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6278,7 +6278,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6290,7 +6290,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6302,7 +6302,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6314,7 +6314,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6326,7 +6326,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6338,7 +6338,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -6350,7 +6350,7 @@ gTrainers:: @ 81F04FC @ MAY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6362,7 +6362,7 @@ gTrainers:: @ 81F04FC @ MAY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6374,7 +6374,7 @@ gTrainers:: @ 81F04FC @ MAY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6386,7 +6386,7 @@ gTrainers:: @ 81F04FC @ MAY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6398,7 +6398,7 @@ gTrainers:: @ 81F04FC @ MAY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6410,7 +6410,7 @@ gTrainers:: @ 81F04FC @ MAY_6 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6422,7 +6422,7 @@ gTrainers:: @ 81F04FC @ MAY_7 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6434,7 +6434,7 @@ gTrainers:: @ 81F04FC @ MAY_8 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6446,7 +6446,7 @@ gTrainers:: @ 81F04FC @ MAY_9 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -6458,7 +6458,7 @@ gTrainers:: @ 81F04FC @ ISAAC_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "ISAAC$", 12 @@ -6470,7 +6470,7 @@ gTrainers:: @ 81F04FC @ RILEY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "RILEY$", 12 @@ -6482,7 +6482,7 @@ gTrainers:: @ 81F04FC @ AIDAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "AIDAN$", 12 @@ -6494,7 +6494,7 @@ gTrainers:: @ 81F04FC @ ISAAC_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "ISAAC$", 12 @@ -6506,7 +6506,7 @@ gTrainers:: @ 81F04FC @ ISAAC_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "ISAAC$", 12 @@ -6518,7 +6518,7 @@ gTrainers:: @ 81F04FC @ ISAAC_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "ISAAC$", 12 @@ -6530,7 +6530,7 @@ gTrainers:: @ 81F04FC @ ISAAC_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_M .string "ISAAC$", 12 @@ -6542,7 +6542,7 @@ gTrainers:: @ 81F04FC @ LYDIA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6554,7 +6554,7 @@ gTrainers:: @ 81F04FC @ ALEXIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "ALEXIA$", 12 @@ -6566,7 +6566,7 @@ gTrainers:: @ 81F04FC @ DANIELLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "DANIELLE$", 12 @@ -6578,7 +6578,7 @@ gTrainers:: @ 81F04FC @ LYDIA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6590,7 +6590,7 @@ gTrainers:: @ 81F04FC @ LYDIA_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6602,7 +6602,7 @@ gTrainers:: @ 81F04FC @ LYDIA_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6614,7 +6614,7 @@ gTrainers:: @ 81F04FC @ LYDIA_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_BREEDER + .byte TRAINER_CLASS_POKEMON_BREEDER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_BREEDER_F .string "LYDIA$", 12 @@ -6626,7 +6626,7 @@ gTrainers:: @ 81F04FC @ JACKSON_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "JACKSON$", 12 @@ -6638,7 +6638,7 @@ gTrainers:: @ 81F04FC @ CARLOS .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "CARLOS$", 12 @@ -6650,7 +6650,7 @@ gTrainers:: @ 81F04FC @ SEBASTIAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "SEBASTIAN$", 12 @@ -6662,7 +6662,7 @@ gTrainers:: @ 81F04FC @ JACKSON_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "JACKSON$", 12 @@ -6674,7 +6674,7 @@ gTrainers:: @ 81F04FC @ JACKSON_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "JACKSON$", 12 @@ -6686,7 +6686,7 @@ gTrainers:: @ 81F04FC @ JACKSON_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "JACKSON$", 12 @@ -6698,7 +6698,7 @@ gTrainers:: @ 81F04FC @ JACKSON_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_M .string "JACKSON$", 12 @@ -6710,7 +6710,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "CATHERINE$", 12 @@ -6722,7 +6722,7 @@ gTrainers:: @ 81F04FC @ JENNA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "JENNA$", 12 @@ -6734,7 +6734,7 @@ gTrainers:: @ 81F04FC @ SOPHIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "SOPHIA$", 12 @@ -6746,7 +6746,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "CATHERINE$", 12 @@ -6758,7 +6758,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "CATHERINE$", 12 @@ -6770,7 +6770,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "CATHERINE$", 12 @@ -6782,7 +6782,7 @@ gTrainers:: @ 81F04FC @ CATHERINE_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_RANGER + .byte TRAINER_CLASS_POKEMON_RANGER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_POKEMON_RANGER_F .string "CATHERINE$", 12 @@ -6794,7 +6794,7 @@ gTrainers:: @ 81F04FC @ MAXIE_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MAXIE$", 12 @@ -6806,7 +6806,7 @@ gTrainers:: @ 81F04FC @ GRUNT_28 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6818,7 +6818,7 @@ gTrainers:: @ 81F04FC @ GRUNT_29 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6830,7 +6830,7 @@ gTrainers:: @ 81F04FC @ GRUNT_30 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6842,7 +6842,7 @@ gTrainers:: @ 81F04FC @ GRUNT_31 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6854,7 +6854,7 @@ gTrainers:: @ 81F04FC @ GRUNT_32 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6866,7 +6866,7 @@ gTrainers:: @ 81F04FC @ GRUNT_33 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6878,7 +6878,7 @@ gTrainers:: @ 81F04FC @ GRUNT_34 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6890,7 +6890,7 @@ gTrainers:: @ 81F04FC @ GRUNT_35 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6902,7 +6902,7 @@ gTrainers:: @ 81F04FC @ GRUNT_36 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6914,7 +6914,7 @@ gTrainers:: @ 81F04FC @ GRUNT_37 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6926,7 +6926,7 @@ gTrainers:: @ 81F04FC @ GRUNT_38 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6938,7 +6938,7 @@ gTrainers:: @ 81F04FC @ GRUNT_39 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6950,7 +6950,7 @@ gTrainers:: @ 81F04FC @ GRUNT_40 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6962,7 +6962,7 @@ gTrainers:: @ 81F04FC @ GRUNT_41 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6974,7 +6974,7 @@ gTrainers:: @ 81F04FC @ GRUNT_42 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6986,7 +6986,7 @@ gTrainers:: @ 81F04FC @ GRUNT_43 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -6998,7 +6998,7 @@ gTrainers:: @ 81F04FC @ GRUNT_44 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7010,7 +7010,7 @@ gTrainers:: @ 81F04FC @ GRUNT_45 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7022,7 +7022,7 @@ gTrainers:: @ 81F04FC @ GRUNT_46 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7034,7 +7034,7 @@ gTrainers:: @ 81F04FC @ GRUNT_47 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7046,7 +7046,7 @@ gTrainers:: @ 81F04FC @ GRUNT_48 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7058,7 +7058,7 @@ gTrainers:: @ 81F04FC @ GRUNT_49 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7070,7 +7070,7 @@ gTrainers:: @ 81F04FC @ GRUNT_50 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7082,7 +7082,7 @@ gTrainers:: @ 81F04FC @ GRUNT_51 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_M .string "GRUNT$", 12 @@ -7094,7 +7094,7 @@ gTrainers:: @ 81F04FC @ GRUNT_52 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "GRUNT$", 12 @@ -7106,7 +7106,7 @@ gTrainers:: @ 81F04FC @ GRUNT_53 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "GRUNT$", 12 @@ -7118,7 +7118,7 @@ gTrainers:: @ 81F04FC @ GRUNT_54 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TEAM_MAGMA + .byte TRAINER_CLASS_TEAM_MAGMA .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_GRUNT_F .string "GRUNT$", 12 @@ -7130,7 +7130,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_14 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "$", 12 @@ -7142,7 +7142,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_15 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "$", 12 @@ -7154,7 +7154,7 @@ gTrainers:: @ 81F04FC @ TABITHA_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "TABITHA$", 12 @@ -7166,7 +7166,7 @@ gTrainers:: @ 81F04FC @ TABITHA_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "TABITHA$", 12 @@ -7178,7 +7178,7 @@ gTrainers:: @ 81F04FC @ ANONYMOUS_16 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_M .string "$", 12 @@ -7190,7 +7190,7 @@ gTrainers:: @ 81F04FC @ COURTNEY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_F .string "COURTNEY$", 12 @@ -7202,7 +7202,7 @@ gTrainers:: @ 81F04FC @ COURTNEY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_ADMIN + .byte TRAINER_CLASS_MAGMA_ADMIN .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAGMA_ADMIN_F .string "COURTNEY$", 12 @@ -7214,7 +7214,7 @@ gTrainers:: @ 81F04FC @ MAXIE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MAXIE$", 12 @@ -7226,7 +7226,7 @@ gTrainers:: @ 81F04FC @ MAXIE_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_MAGMA_LEADER + .byte TRAINER_CLASS_MAGMA_LEADER .byte TRAINER_ENCOUNTER_MUSIC_MAGMA @ gender flag and encounter music .byte TRAINER_PIC_MAXIE .string "MAXIE$", 12 @@ -7238,7 +7238,7 @@ gTrainers:: @ 81F04FC @ TIANA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "TIANA$", 12 @@ -7250,7 +7250,7 @@ gTrainers:: @ 81F04FC @ HALEY_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "HALEY$", 12 @@ -7262,7 +7262,7 @@ gTrainers:: @ 81F04FC @ JANICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "JANICE$", 12 @@ -7274,7 +7274,7 @@ gTrainers:: @ 81F04FC @ VIVI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_WINSTRATE + .byte TRAINER_CLASS_WINSTRATE .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "VIVI$", 12 @@ -7286,7 +7286,7 @@ gTrainers:: @ 81F04FC @ HALEY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "HALEY$", 12 @@ -7298,7 +7298,7 @@ gTrainers:: @ 81F04FC @ HALEY_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "HALEY$", 12 @@ -7310,7 +7310,7 @@ gTrainers:: @ 81F04FC @ HALEY_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "HALEY$", 12 @@ -7322,7 +7322,7 @@ gTrainers:: @ 81F04FC @ HALEY_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "HALEY$", 12 @@ -7334,7 +7334,7 @@ gTrainers:: @ 81F04FC @ SALLY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "SALLY$", 12 @@ -7346,7 +7346,7 @@ gTrainers:: @ 81F04FC @ ROBIN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ROBIN$", 12 @@ -7358,7 +7358,7 @@ gTrainers:: @ 81F04FC @ ANDREA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "ANDREA$", 12 @@ -7370,7 +7370,7 @@ gTrainers:: @ 81F04FC @ CRISSY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_LASS + .byte TRAINER_CLASS_LASS .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_LASS .string "CRISSY$", 12 @@ -7382,7 +7382,7 @@ gTrainers:: @ 81F04FC @ RICK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "RICK$", 12 @@ -7394,7 +7394,7 @@ gTrainers:: @ 81F04FC @ LYLE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "LYLE$", 12 @@ -7406,7 +7406,7 @@ gTrainers:: @ 81F04FC @ JOSE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JOSE$", 12 @@ -7418,7 +7418,7 @@ gTrainers:: @ 81F04FC @ DOUG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "DOUG$", 12 @@ -7430,7 +7430,7 @@ gTrainers:: @ 81F04FC @ GREG .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "GREG$", 12 @@ -7442,7 +7442,7 @@ gTrainers:: @ 81F04FC @ KENT .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "KENT$", 12 @@ -7454,7 +7454,7 @@ gTrainers:: @ 81F04FC @ JAMES_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JAMES$", 12 @@ -7466,7 +7466,7 @@ gTrainers:: @ 81F04FC @ JAMES_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JAMES$", 12 @@ -7478,7 +7478,7 @@ gTrainers:: @ 81F04FC @ JAMES_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JAMES$", 12 @@ -7490,7 +7490,7 @@ gTrainers:: @ 81F04FC @ JAMES_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JAMES$", 12 @@ -7502,7 +7502,7 @@ gTrainers:: @ 81F04FC @ JAMES_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BUG_CATCHER + .byte TRAINER_CLASS_BUG_CATCHER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BUG_CATCHER .string "JAMES$", 12 @@ -7514,7 +7514,7 @@ gTrainers:: @ 81F04FC @ BRICE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "BRICE$", 12 @@ -7526,7 +7526,7 @@ gTrainers:: @ 81F04FC @ TRENT_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "TRENT$", 12 @@ -7538,7 +7538,7 @@ gTrainers:: @ 81F04FC @ LENNY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "LENNY$", 12 @@ -7550,7 +7550,7 @@ gTrainers:: @ 81F04FC @ LUCAS_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "LUCAS$", 12 @@ -7562,7 +7562,7 @@ gTrainers:: @ 81F04FC @ ALAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "ALAN$", 12 @@ -7574,7 +7574,7 @@ gTrainers:: @ 81F04FC @ CLARK .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "CLARK$", 12 @@ -7586,7 +7586,7 @@ gTrainers:: @ 81F04FC @ ERIC .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "ERIC$", 12 @@ -7598,7 +7598,7 @@ gTrainers:: @ 81F04FC @ LUCAS_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "LUCAS$", 12 @@ -7610,7 +7610,7 @@ gTrainers:: @ 81F04FC @ MIKE_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "MIKE$", 12 @@ -7622,7 +7622,7 @@ gTrainers:: @ 81F04FC @ MIKE_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "MIKE$", 12 @@ -7634,7 +7634,7 @@ gTrainers:: @ 81F04FC @ TRENT_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "TRENT$", 12 @@ -7646,7 +7646,7 @@ gTrainers:: @ 81F04FC @ TRENT_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "TRENT$", 12 @@ -7658,7 +7658,7 @@ gTrainers:: @ 81F04FC @ TRENT_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "TRENT$", 12 @@ -7670,7 +7670,7 @@ gTrainers:: @ 81F04FC @ TRENT_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_HIKER + .byte TRAINER_CLASS_HIKER .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_HIKER .string "TRENT$", 12 @@ -7682,7 +7682,7 @@ gTrainers:: @ 81F04FC @ DEZ_AND_LUKE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "DEZ & LUKE$", 12 @@ -7694,7 +7694,7 @@ gTrainers:: @ 81F04FC @ LEA_AND_JED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LEA & JED$", 12 @@ -7706,7 +7706,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LOIS & HAL$", 12 @@ -7718,7 +7718,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LOIS & HAL$", 12 @@ -7730,7 +7730,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LOIS & HAL$", 12 @@ -7742,7 +7742,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LOIS & HAL$", 12 @@ -7754,7 +7754,7 @@ gTrainers:: @ 81F04FC @ LOIS_AND_HAL_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "LOIS & HAL$", 12 @@ -7766,7 +7766,7 @@ gTrainers:: @ 81F04FC @ JOHANNA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BEAUTY + .byte TRAINER_CLASS_BEAUTY .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_BEAUTY .string "JOHANNA$", 12 @@ -7778,7 +7778,7 @@ gTrainers:: @ 81F04FC @ ZANE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "ZANE$", 12 @@ -7790,7 +7790,7 @@ gTrainers:: @ 81F04FC @ VIVIAN .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "VIVIAN$", 12 @@ -7802,7 +7802,7 @@ gTrainers:: @ 81F04FC @ SADIE .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_BATTLE_GIRL + .byte TRAINER_CLASS_BATTLE_GIRL .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BATTLE_GIRL .string "SADIE$", 12 @@ -7814,7 +7814,7 @@ gTrainers:: @ 81F04FC @ HIDEO_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "HIDEO$", 12 @@ -7826,7 +7826,7 @@ gTrainers:: @ 81F04FC @ KEIGO .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "KEIGO$", 12 @@ -7838,7 +7838,7 @@ gTrainers:: @ 81F04FC @ TSUNAO .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_NINJA_BOY + .byte TRAINER_CLASS_NINJA_BOY .byte TRAINER_ENCOUNTER_MUSIC_SUSPICIOUS @ gender flag and encounter music .byte TRAINER_PIC_NINJA_BOY .string "TSUNAO$", 12 @@ -7850,7 +7850,7 @@ gTrainers:: @ 81F04FC @ TERRELL .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_CAMPER + .byte TRAINER_CLASS_CAMPER .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_CAMPER .string "TERRELL$", 12 @@ -7862,7 +7862,7 @@ gTrainers:: @ 81F04FC @ KYLEE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_PICNICKER + .byte TRAINER_CLASS_PICNICKER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_PICNICKER .string "KYLEE$", 12 @@ -7874,7 +7874,7 @@ gTrainers:: @ 81F04FC @ WALLY_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -7886,7 +7886,7 @@ gTrainers:: @ 81F04FC @ WALLY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -7898,7 +7898,7 @@ gTrainers:: @ 81F04FC @ WALLY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -7910,7 +7910,7 @@ gTrainers:: @ 81F04FC @ WALLY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -7922,7 +7922,7 @@ gTrainers:: @ 81F04FC @ WALLY_6 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_WALLY .string "WALLY$", 12 @@ -7934,7 +7934,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -7946,7 +7946,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -7958,7 +7958,7 @@ gTrainers:: @ 81F04FC @ BRENDAN_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte TRAINER_ENCOUNTER_MUSIC_MALE @ gender flag and encounter music .byte TRAINER_PIC_BRENDAN .string "BRENDAN$", 12 @@ -7970,7 +7970,7 @@ gTrainers:: @ 81F04FC @ MAY_10 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -7982,7 +7982,7 @@ gTrainers:: @ 81F04FC @ MAY_11 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -7994,7 +7994,7 @@ gTrainers:: @ 81F04FC @ MAY_12 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_POKEMON_TRAINER_3 + .byte TRAINER_CLASS_POKEMON_TRAINER_3 .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_FEMALE @ gender flag and encounter music .byte TRAINER_PIC_MAY .string "MAY$", 12 @@ -8006,7 +8006,7 @@ gTrainers:: @ 81F04FC @ JONAH .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "JONAH$", 12 @@ -8018,7 +8018,7 @@ gTrainers:: @ 81F04FC @ HENRY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "HENRY$", 12 @@ -8030,7 +8030,7 @@ gTrainers:: @ 81F04FC @ ROGER .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "ROGER$", 12 @@ -8042,7 +8042,7 @@ gTrainers:: @ 81F04FC @ ALEXA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_F .string "ALEXA$", 12 @@ -8054,7 +8054,7 @@ gTrainers:: @ 81F04FC @ RUBEN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_COOL_TRAINER + .byte TRAINER_CLASS_COOL_TRAINER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_COOL_TRAINER_M .string "RUBEN$", 12 @@ -8066,7 +8066,7 @@ gTrainers:: @ 81F04FC @ KOJI .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BLACK_BELT + .byte TRAINER_CLASS_BLACK_BELT .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_BLACK_BELT .string "KOJI$", 12 @@ -8078,7 +8078,7 @@ gTrainers:: @ 81F04FC @ WAYNE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "WAYNE$", 12 @@ -8090,7 +8090,7 @@ gTrainers:: @ 81F04FC @ BYRON .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_BIRD_KEEPER + .byte TRAINER_CLASS_BIRD_KEEPER .byte TRAINER_ENCOUNTER_MUSIC_COOL @ gender flag and encounter music .byte TRAINER_PIC_BIRD_KEEPER .string "BYRON$", 12 @@ -8102,7 +8102,7 @@ gTrainers:: @ 81F04FC @ REED .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_M + .byte TRAINER_CLASS_SWIMMER_M .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_M .string "REED$", 12 @@ -8114,7 +8114,7 @@ gTrainers:: @ 81F04FC @ TISHA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SWIMMER_F + .byte TRAINER_CLASS_SWIMMER_F .byte F_TRAINER_FEMALE | TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SWIMMER_F .string "TISHA$", 12 @@ -8126,7 +8126,7 @@ gTrainers:: @ 81F04FC @ TORI_AND_TIA .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_TWINS + .byte TRAINER_CLASS_TWINS .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_TWINS .string "TORI & TIA$", 12 @@ -8138,7 +8138,7 @@ gTrainers:: @ 81F04FC @ KIM_AND_IRIS .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "KIM & IRIS$", 12 @@ -8150,7 +8150,7 @@ gTrainers:: @ 81F04FC @ TYRA_AND_IVY .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_SR_AND_JR + .byte TRAINER_CLASS_SR_AND_JR .byte TRAINER_ENCOUNTER_MUSIC_TWINS @ gender flag and encounter music .byte TRAINER_PIC_SR_AND_JR .string "TYRA & IVY$", 12 @@ -8162,7 +8162,7 @@ gTrainers:: @ 81F04FC @ MEL_AND_PAUL .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_YOUNG_COUPLE + .byte TRAINER_CLASS_YOUNG_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_GIRL @ gender flag and encounter music .byte TRAINER_PIC_YOUNG_COUPLE .string "MEL & PAUL$", 12 @@ -8174,7 +8174,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_1 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "JOHN & JAY$", 12 @@ -8186,7 +8186,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_2 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "JOHN & JAY$", 12 @@ -8198,7 +8198,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_3 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "JOHN & JAY$", 12 @@ -8210,7 +8210,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_4 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "JOHN & JAY$", 12 @@ -8222,7 +8222,7 @@ gTrainers:: @ 81F04FC @ JOHN_AND_JAY_5 .byte F_TRAINER_PARTY_CUSTOM_MOVESET @ party type flags - .byte TRAINER_CLASS_NAME_OLD_COUPLE + .byte TRAINER_CLASS_OLD_COUPLE .byte TRAINER_ENCOUNTER_MUSIC_INTENSE @ gender flag and encounter music .byte TRAINER_PIC_OLD_COUPLE .string "JOHN & JAY$", 12 @@ -8234,7 +8234,7 @@ gTrainers:: @ 81F04FC @ RELI_AND_IAN .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RELI & IAN$", 12 @@ -8246,7 +8246,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_1 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RITA & SAM$", 12 @@ -8258,7 +8258,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_2 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RITA & SAM$", 12 @@ -8270,7 +8270,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_3 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RITA & SAM$", 12 @@ -8282,7 +8282,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_4 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RITA & SAM$", 12 @@ -8294,7 +8294,7 @@ gTrainers:: @ 81F04FC @ RITA_AND_SAM_5 .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "RITA & SAM$", 12 @@ -8306,7 +8306,7 @@ gTrainers:: @ 81F04FC @ LISA_AND_RAY .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_SIS_AND_BRO + .byte TRAINER_CLASS_SIS_AND_BRO .byte TRAINER_ENCOUNTER_MUSIC_SWIMMER @ gender flag and encounter music .byte TRAINER_PIC_SIS_AND_BRO .string "LISA & RAY$", 12 @@ -8318,7 +8318,7 @@ gTrainers:: @ 81F04FC @ EUGENE .byte 0 @ party type flags - .byte TRAINER_CLASS_NAME_FISHERMAN + .byte TRAINER_CLASS_FISHERMAN .byte TRAINER_ENCOUNTER_MUSIC_HIKER @ gender flag and encounter music .byte TRAINER_PIC_FISHERMAN .string "EUGENE$", 12 diff --git a/include/battle.h b/include/battle.h index 0824fc46c..dd35cc303 100644 --- a/include/battle.h +++ b/include/battle.h @@ -501,7 +501,7 @@ extern struct DisableStruct gDisableStructs[MAX_BANKS_BATTLE]; extern struct BattleResults gBattleResults; extern struct ProtectStruct gProtectStructs[MAX_BANKS_BATTLE]; extern struct SpecialStatus gSpecialStatuses[MAX_BANKS_BATTLE]; -extern struct sideTimer gSideTimer[2]; +extern struct sideTimer gSideTimers[2]; extern struct WishFutureKnock gWishFutureKnock; extern struct AI_ThinkingStruct gAIThinkingSpace; extern struct Struct20238C8 gUnknown_020238C8; @@ -641,11 +641,8 @@ void BattleTurnPassed(void); // asm/battle_2.o void sub_8012324(void); -void sub_8012FBC(u8, u8); +void SwapTurnOrder(u8, u8); u8 GetWhoStrikesFirst(u8, u8, u8); -void TurnValuesCleanUp(u8); -void SpecialStatusesClear(void); -void sub_80138F0(void); void sub_80155A4(); void CancelMultiTurnMoves(u8 bank); void PrepareStringBattle(); @@ -660,6 +657,7 @@ u8 sub_80170DC(); u8 sub_80173A4(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); +void b_clear_atk_up_if_hit_flag_unless_enraged(void); // asm/battle_4.o void AI_CalcDmg(u8, u8); @@ -686,6 +684,7 @@ void sub_80324F8(struct Pokemon *, u8); void sub_8032638(); void sub_8032AA8(u8, u8); void SetBankFuncToOpponentBufferRunCommand(void); +void BattleMusicStop(void); // asm/battle_9.o void SetBankFuncToLinkOpponentBufferRunCommand(void); diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index f7efb0dfd..892b3e7f6 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -65,6 +65,7 @@ #define HITMARKER_PURSUIT_TRAP 0x00001000 #define HITMARKER_IGNORE_SAFEGUARD 0x00002000 #define HITMARKER_SYNCHRONISE_EFFECT 0x00004000 +#define HITMARKER_RUN 0x00008000 #define HITMARKER_IGNORE_ON_AIR 0x00010000 #define HITMARKER_IGNORE_UNDERGROUND 0x00020000 #define HITMARKER_IGNORE_UNDERWATER 0x00040000 @@ -88,6 +89,11 @@ #define MOVESTATUS_ENDURED (1 << 6) #define MOVESTATUS_HUNGON (1 << 7) +#define IDENTITY_PLAYER_MON1 0 +#define IDENTITY_OPPONENT_MON1 1 +#define IDENTITY_PLAYER_MON2 2 +#define IDENTITY_OPPONENT_MON2 3 + #define BATTLE_TYPE_DOUBLE 0x0001 #define BATTLE_TYPE_LINK 0x0002 #define BATTLE_TYPE_WILD 0x0004 @@ -117,6 +123,8 @@ #define BATTLE_OUT_OF_BALLS 0x8 #define BATTLE_OPPONENT_TELEPORTED 0xA +#define OUTCOME_LINK_BATTLE_RUN 0x80 + #define SIDE_STATUS_REFLECT (1 << 0) #define SIDE_STATUS_LIGHTSCREEN (1 << 1) #define SIDE_STATUS_X4 (1 << 2) @@ -126,6 +134,22 @@ #define SIDE_STATUS_MIST (1 << 8) #define SIDE_STATUS_SPIKES_DAMAGED (1 << 9) +#define ACTION_USE_MOVE 0 +#define ACTION_USE_ITEM 1 +#define ACTION_SWITCH 2 +#define ACTION_RUN 3 +#define ACTION_WATCHES_CAREFULLY 4 +#define ACTION_SAFARI_ZONE_BALL 5 +#define ACTION_POKEBLOCK_CASE 6 +#define ACTION_GO_NEAR 7 +#define ACTION_SAFARI_ZONE_RUN 8 +#define ACTION_9 9 +#define ACTION_RUN_BATTLESCRIPT 10 // when executing an action +#define ACTION_CANCEL_PARTNER 12 // when choosing an action +#define ACTION_FINISHED 12 // when executing an action +#define ACTION_NOTHING_FAINTED 13 // when choosing an action +#define ACTION_INIT_VALUE 0xFF + #define TARGET_SELECTED_POKEMON 0 #define TARGET_SPECIAL (1 << 0) #define TARGET_UNK2 (1 << 1) diff --git a/include/ewram.h b/include/ewram.h index 07f9d1ad2..d5e53393b 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -108,6 +108,7 @@ extern u8 gSharedMem[]; #define ewram16010arr(bank) (gSharedMem[0x16010 + bank]) #define ewram1601B (gSharedMem[0x1601B]) #define eDynamicMoveType (gSharedMem[0x1601C]) +#define eFocusPunchBank (gSharedMem[0x1601D]) #define eDmgMultiplier (gSharedMem[0x1601F]) #define ewram16020 ((u8 *)(gSharedMem + 0x16020)) #define ewram16020arr(i) (gSharedMem[0x16020 + i]) @@ -175,6 +176,7 @@ extern u8 gSharedMem[]; #define ewram16108arr(i) (gSharedMem[0x16108 + i]) #define ewram16110 (gSharedMem[0x16110]) #define ewram16111 (gSharedMem[0x16111]) +#define eMultihitMoveEffect (gSharedMem[0x16112]) #define ewram16113 (gSharedMem[0x16113]) #define ewram16400 (gSharedMem + 0x16400) #define AI_THINKING_STRUCT ((struct AI_ThinkingStruct *)(gSharedMem + 0x16800)) diff --git a/include/rom_8077ABC.h b/include/rom_8077ABC.h index dda90c48f..21ec88a90 100644 --- a/include/rom_8077ABC.h +++ b/include/rom_8077ABC.h @@ -25,9 +25,9 @@ u8 GetBankSide(u8 slot); u8 GetBankSide(u8); u8 GetBankIdentity(u8); u8 GetBankIdentity(u8 slot); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8); -u8 GetBankByPlayerAI(u8 state); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8); +u8 GetBankByIdentity(u8 state); bool8 IsBankSpritePresent(u8); bool8 IsDoubleBattle(); u8 IsDoubleBattle(void); diff --git a/include/trainer.h b/include/trainer.h index 2e0beb342..e8f2776d2 100644 --- a/include/trainer.h +++ b/include/trainer.h @@ -17,83 +17,83 @@ #define TRAINER_ENCOUNTER_MUSIC_RICH 13 // Rich Boys and Gentlemen enum { - TRAINER_CLASS_AQUA_LEADER, - TRAINER_CLASS_TEAM_AQUA_M, - TRAINER_CLASS_TEAM_AQUA_F, - TRAINER_CLASS_AROMA_LADY, - TRAINER_CLASS_RUIN_MANIAC, - TRAINER_CLASS_INTERVIEWER, - TRAINER_CLASS_TUBER_F, - TRAINER_CLASS_TUBER_M, - TRAINER_CLASS_COOL_TRAINER_M, - TRAINER_CLASS_COOL_TRAINER_F, - TRAINER_CLASS_HEX_MANIAC, - TRAINER_CLASS_LADY, - TRAINER_CLASS_BEAUTY, - TRAINER_CLASS_RICH_BOY, - TRAINER_CLASS_POKEMANIAC, - TRAINER_CLASS_SWIMMER_M, - TRAINER_CLASS_BLACK_BELT, - TRAINER_CLASS_GUITARIST, - TRAINER_CLASS_KINDLER, - TRAINER_CLASS_CAMPER, - TRAINER_CLASS_BUG_MANIAC, - TRAINER_CLASS_PSYCHIC_M, - TRAINER_CLASS_PSYCHIC_F, - TRAINER_CLASS_GENTLEMAN, - TRAINER_CLASS_ELITE_FOUR_M, - TRAINER_CLASS_ELITE_FOUR_F, - TRAINER_CLASS_LEADER_F, - TRAINER_CLASS_LEADER_M, - TRAINER_CLASS_LEADER_MF, - TRAINER_CLASS_SCHOOL_KID_M, - TRAINER_CLASS_SCHOOL_KID_F, - TRAINER_CLASS_SR_AND_JR, - TRAINER_CLASS_POKEFAN_M, - TRAINER_CLASS_POKEFAN_F, - TRAINER_CLASS_EXPERT_M, - TRAINER_CLASS_EXPERT_F, - TRAINER_CLASS_YOUNGSTER, - TRAINER_CLASS_CHAMPION, - TRAINER_CLASS_FISHERMAN, - TRAINER_CLASS_CYCLING_TRIATHLETE_M, - TRAINER_CLASS_CYCLING_TRIATHLETE_F, - TRAINER_CLASS_RUNNING_TRIATHLETE_M, - TRAINER_CLASS_RUNNING_TRIATHLETE_F, - TRAINER_CLASS_SWIMMING_TRIATHLETE_M, - TRAINER_CLASS_SWIMMING_TRIATHLETE_F, - TRAINER_CLASS_DRAGON_TAMER, - TRAINER_CLASS_BIRD_KEEPER, - TRAINER_CLASS_NINJA_BOY, - TRAINER_CLASS_BATTLE_GIRL, - TRAINER_CLASS_PARASOL_LADY, - TRAINER_CLASS_SWIMMER_F, - TRAINER_CLASS_PICNICKER, - TRAINER_CLASS_TWINS, - TRAINER_CLASS_SAILOR, - TRAINER_CLASS_BOARDER_1, - TRAINER_CLASS_BOARDER_2, - TRAINER_CLASS_COLLECTOR, - TRAINER_CLASS_WALLY, - TRAINER_CLASS_BRENDAN_1, - TRAINER_CLASS_BRENDAN_2, - TRAINER_CLASS_BRENDAN_3, - TRAINER_CLASS_MAY_1, - TRAINER_CLASS_MAY_2, - TRAINER_CLASS_MAY_3, - TRAINER_CLASS_POKEMON_BREEDER_M, - TRAINER_CLASS_POKEMON_BREEDER_F, - TRAINER_CLASS_POKEMON_RANGER_M, - TRAINER_CLASS_POKEMON_RANGER_F, - TRAINER_CLASS_MAGMA_LEADER, - TRAINER_CLASS_TEAM_MAGMA_M, - TRAINER_CLASS_TEAM_MAGMA_F, - TRAINER_CLASS_LASS, - TRAINER_CLASS_BUG_CATCHER, - TRAINER_CLASS_HIKER, - TRAINER_CLASS_YOUNG_COUPLE, - TRAINER_CLASS_OLD_COUPLE, - TRAINER_CLASS_SIS_AND_BRO + FACILITY_CLASS_AQUA_LEADER, + FACILITY_CLASS_TEAM_AQUA_M, + FACILITY_CLASS_TEAM_AQUA_F, + FACILITY_CLASS_AROMA_LADY, + FACILITY_CLASS_RUIN_MANIAC, + FACILITY_CLASS_INTERVIEWER, + FACILITY_CLASS_TUBER_F, + FACILITY_CLASS_TUBER_M, + FACILITY_CLASS_COOL_TRAINER_M, + FACILITY_CLASS_COOL_TRAINER_F, + FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_LADY, + FACILITY_CLASS_BEAUTY, + FACILITY_CLASS_RICH_BOY, + FACILITY_CLASS_POKEMANIAC, + FACILITY_CLASS_SWIMMER_M, + FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_GUITARIST, + FACILITY_CLASS_KINDLER, + FACILITY_CLASS_CAMPER, + FACILITY_CLASS_BUG_MANIAC, + FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_GENTLEMAN, + FACILITY_CLASS_ELITE_FOUR_M, + FACILITY_CLASS_ELITE_FOUR_F, + FACILITY_CLASS_LEADER_F, + FACILITY_CLASS_LEADER_M, + FACILITY_CLASS_LEADER_MF, + FACILITY_CLASS_SCHOOL_KID_M, + FACILITY_CLASS_SCHOOL_KID_F, + FACILITY_CLASS_SR_AND_JR, + FACILITY_CLASS_POKEFAN_M, + FACILITY_CLASS_POKEFAN_F, + FACILITY_CLASS_EXPERT_M, + FACILITY_CLASS_EXPERT_F, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_CHAMPION, + FACILITY_CLASS_FISHERMAN, + FACILITY_CLASS_CYCLING_TRIATHLETE_M, + FACILITY_CLASS_CYCLING_TRIATHLETE_F, + FACILITY_CLASS_RUNNING_TRIATHLETE_M, + FACILITY_CLASS_RUNNING_TRIATHLETE_F, + FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + FACILITY_CLASS_DRAGON_TAMER, + FACILITY_CLASS_BIRD_KEEPER, + FACILITY_CLASS_NINJA_BOY, + FACILITY_CLASS_BATTLE_GIRL, + FACILITY_CLASS_PARASOL_LADY, + FACILITY_CLASS_SWIMMER_F, + FACILITY_CLASS_PICNICKER, + FACILITY_CLASS_TWINS, + FACILITY_CLASS_SAILOR, + FACILITY_CLASS_BOARDER_1, + FACILITY_CLASS_BOARDER_2, + FACILITY_CLASS_COLLECTOR, + FACILITY_CLASS_WALLY, + FACILITY_CLASS_BRENDAN_1, + FACILITY_CLASS_BRENDAN_2, + FACILITY_CLASS_BRENDAN_3, + FACILITY_CLASS_MAY_1, + FACILITY_CLASS_MAY_2, + FACILITY_CLASS_MAY_3, + FACILITY_CLASS_POKEMON_BREEDER_M, + FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_POKEMON_RANGER_M, + FACILITY_CLASS_POKEMON_RANGER_F, + FACILITY_CLASS_MAGMA_LEADER, + FACILITY_CLASS_TEAM_MAGMA_M, + FACILITY_CLASS_TEAM_MAGMA_F, + FACILITY_CLASS_LASS, + FACILITY_CLASS_BUG_CATCHER, + FACILITY_CLASS_HIKER, + FACILITY_CLASS_YOUNG_COUPLE, + FACILITY_CLASS_OLD_COUPLE, + FACILITY_CLASS_SIS_AND_BRO }; enum { @@ -183,64 +183,64 @@ enum { }; enum { - TRAINER_CLASS_NAME_POKEMON_TRAINER_1, - TRAINER_CLASS_NAME_POKEMON_TRAINER_2, - TRAINER_CLASS_NAME_AQUA_LEADER, - TRAINER_CLASS_NAME_TEAM_AQUA, - TRAINER_CLASS_NAME_AQUA_ADMIN, - TRAINER_CLASS_NAME_AROMA_LADY, - TRAINER_CLASS_NAME_RUIN_MANIAC, - TRAINER_CLASS_NAME_INTERVIEWER, - TRAINER_CLASS_NAME_TUBER_F, - TRAINER_CLASS_NAME_TUBER_M, - TRAINER_CLASS_NAME_COOL_TRAINER, - TRAINER_CLASS_NAME_HEX_MANIAC, - TRAINER_CLASS_NAME_LADY, - TRAINER_CLASS_NAME_BEAUTY, - TRAINER_CLASS_NAME_RICH_BOY, - TRAINER_CLASS_NAME_POKEMANIAC, - TRAINER_CLASS_NAME_SWIMMER_M, - TRAINER_CLASS_NAME_BLACK_BELT, - TRAINER_CLASS_NAME_GUITARIST, - TRAINER_CLASS_NAME_KINDLER, - TRAINER_CLASS_NAME_CAMPER, - TRAINER_CLASS_NAME_BUG_MANIAC, - TRAINER_CLASS_NAME_PSYCHIC, - TRAINER_CLASS_NAME_GENTLEMAN, - TRAINER_CLASS_NAME_ELITE_FOUR, - TRAINER_CLASS_NAME_LEADER, - TRAINER_CLASS_NAME_SCHOOL_KID, - TRAINER_CLASS_NAME_SR_AND_JR, - TRAINER_CLASS_NAME_WINSTRATE, - TRAINER_CLASS_NAME_POKEFAN, - TRAINER_CLASS_NAME_EXPERT, - TRAINER_CLASS_NAME_YOUNGSTER, - TRAINER_CLASS_NAME_CHAMPION, - TRAINER_CLASS_NAME_FISHERMAN, - TRAINER_CLASS_NAME_TRIATHLETE, - TRAINER_CLASS_NAME_DRAGON_TAMER, - TRAINER_CLASS_NAME_BIRD_KEEPER, - TRAINER_CLASS_NAME_NINJA_BOY, - TRAINER_CLASS_NAME_BATTLE_GIRL, - TRAINER_CLASS_NAME_PARASOL_LADY, - TRAINER_CLASS_NAME_SWIMMER_F, - TRAINER_CLASS_NAME_PICNICKER, - TRAINER_CLASS_NAME_TWINS, - TRAINER_CLASS_NAME_SAILOR, - TRAINER_CLASS_NAME_BOARDER, - TRAINER_CLASS_NAME_COLLECTOR, - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, - TRAINER_CLASS_NAME_POKEMON_BREEDER, - TRAINER_CLASS_NAME_POKEMON_RANGER, - TRAINER_CLASS_NAME_MAGMA_LEADER, - TRAINER_CLASS_NAME_TEAM_MAGMA, - TRAINER_CLASS_NAME_MAGMA_ADMIN, - TRAINER_CLASS_NAME_LASS, - TRAINER_CLASS_NAME_BUG_CATCHER, - TRAINER_CLASS_NAME_HIKER, - TRAINER_CLASS_NAME_YOUNG_COUPLE, - TRAINER_CLASS_NAME_OLD_COUPLE, - TRAINER_CLASS_NAME_SIS_AND_BRO + TRAINER_CLASS_POKEMON_TRAINER_1, + TRAINER_CLASS_POKEMON_TRAINER_2, + TRAINER_CLASS_AQUA_LEADER, + TRAINER_CLASS_TEAM_AQUA, + TRAINER_CLASS_AQUA_ADMIN, + TRAINER_CLASS_AROMA_LADY, + TRAINER_CLASS_RUIN_MANIAC, + TRAINER_CLASS_INTERVIEWER, + TRAINER_CLASS_TUBER_F, + TRAINER_CLASS_TUBER_M, + TRAINER_CLASS_COOL_TRAINER, + TRAINER_CLASS_HEX_MANIAC, + TRAINER_CLASS_LADY, + TRAINER_CLASS_BEAUTY, + TRAINER_CLASS_RICH_BOY, + TRAINER_CLASS_POKEMANIAC, + TRAINER_CLASS_SWIMMER_M, + TRAINER_CLASS_BLACK_BELT, + TRAINER_CLASS_GUITARIST, + TRAINER_CLASS_KINDLER, + TRAINER_CLASS_CAMPER, + TRAINER_CLASS_BUG_MANIAC, + TRAINER_CLASS_PSYCHIC, + TRAINER_CLASS_GENTLEMAN, + TRAINER_CLASS_ELITE_FOUR, + TRAINER_CLASS_LEADER, + TRAINER_CLASS_SCHOOL_KID, + TRAINER_CLASS_SR_AND_JR, + TRAINER_CLASS_WINSTRATE, + TRAINER_CLASS_POKEFAN, + TRAINER_CLASS_EXPERT, + TRAINER_CLASS_YOUNGSTER, + TRAINER_CLASS_CHAMPION, + TRAINER_CLASS_FISHERMAN, + TRAINER_CLASS_TRIATHLETE, + TRAINER_CLASS_DRAGON_TAMER, + TRAINER_CLASS_BIRD_KEEPER, + TRAINER_CLASS_NINJA_BOY, + TRAINER_CLASS_BATTLE_GIRL, + TRAINER_CLASS_PARASOL_LADY, + TRAINER_CLASS_SWIMMER_F, + TRAINER_CLASS_PICNICKER, + TRAINER_CLASS_TWINS, + TRAINER_CLASS_SAILOR, + TRAINER_CLASS_BOARDER, + TRAINER_CLASS_COLLECTOR, + TRAINER_CLASS_POKEMON_TRAINER_3, + TRAINER_CLASS_POKEMON_BREEDER, + TRAINER_CLASS_POKEMON_RANGER, + TRAINER_CLASS_MAGMA_LEADER, + TRAINER_CLASS_TEAM_MAGMA, + TRAINER_CLASS_MAGMA_ADMIN, + TRAINER_CLASS_LASS, + TRAINER_CLASS_BUG_CATCHER, + TRAINER_CLASS_HIKER, + TRAINER_CLASS_YOUNG_COUPLE, + TRAINER_CLASS_OLD_COUPLE, + TRAINER_CLASS_SIS_AND_BRO }; #endif // GUARD_TRAINER_H diff --git a/src/battle/anim/fire_2.c b/src/battle/anim/fire_2.c index 6dc304232..4d577a765 100644 --- a/src/battle/anim/fire_2.c +++ b/src/battle/anim/fire_2.c @@ -23,8 +23,8 @@ void sub_80D57C4(u8 spriteId, u8 taskId, u8 a3); void sub_80D51A8(struct Sprite *sprite) { if (GetBankSide(gAnimBankAttacker) == GetBankSide(gAnimBankTarget) - && (gAnimBankAttacker == GetBankByPlayerAI(2) - || gAnimBankAttacker == GetBankByPlayerAI(3))) + && (gAnimBankAttacker == GetBankByIdentity(2) + || gAnimBankAttacker == GetBankByIdentity(3))) gBattleAnimArgs[2] = -gBattleAnimArgs[2]; sprite->callback = sub_8079534; diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 90d0d40e3..92e9e3e1d 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -24,6 +24,7 @@ #include "sprite.h" #include "task.h" #include "text.h" +#include "trainer.h" #include "trig.h" #include "unknown_task.h" #include "util.h" @@ -66,7 +67,7 @@ extern u8 gActiveBank; extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; -extern u8 gFightStateTracker; +extern u8 gCurrentActionFuncId; extern u8 gTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; extern u8 gObjectBankIDs[]; @@ -133,8 +134,26 @@ extern u16 gBattleWeather; extern u32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; extern u8 gBattleMoveFlags; +extern const u8 BattleScript_FocusPunchSetUp[]; +extern u16 gDynamicBasePower; +extern u8 gCurrentTurnActionNumber; +extern void (* const gUnknown_081FA640[])(void); +extern void (* const gUnknown_081FA678[])(void); +extern u8* gBattlescriptCurrInstr; +extern u8 gUnknown_081D8E02[]; +extern u8 BattleScript_PayDayMoneyAndPickUpItems[]; +extern u8 gUnknown_081D8E0D[]; +extern u8 BattleScript_LocalTrainerBattleWon[]; + +void b_call_bc_move_exec(const u8* BS_ptr); static void BattlePrepIntroSlide(void); +void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); +void SetActionsAndBanksTurnOrder(void); +static void TurnValuesCleanUp(u8); +void SpecialStatusesClear(void); +static void RunTurnActionsFunctions(void); +void sub_8013C9C(); void sub_800E7C4(void) { @@ -1538,7 +1557,7 @@ void sub_8010874(void) for (i = 0; i < 2; i++) { gSideAffecting[i] = 0; - MEMSET_ALT(&gSideTimer[i], 0, 12, j, r4); + MEMSET_ALT(&gSideTimers[i], 0, 12, j, r4); } gBankAttacker = 0; @@ -1791,7 +1810,7 @@ static void BattlePrepIntroSlide(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByPlayerAI(0); + gActiveBank = GetBankByIdentity(0); EmitIntroSlide(0, gBattleTerrain); MarkBufferBankForExecution(gActiveBank); gBattleMainFunc = sub_8011384; @@ -1895,7 +1914,7 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gEnemyParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByPlayerAI(1); + gActiveBank = GetBankByIdentity(1); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -1913,7 +1932,7 @@ void bc_801333C(void) hpStatus[i].status = GetMonData(&gPlayerParty[i], MON_DATA_STATUS); } } - gActiveBank = GetBankByPlayerAI(0); + gActiveBank = GetBankByIdentity(0); EmitDrawPartyStatusSummary(0, hpStatus, 0x80); MarkBufferBankForExecution(gActiveBank); @@ -1948,7 +1967,7 @@ void bc_battle_begin_message(void) { if (gBattleExecBuffer == 0) { - gActiveBank = GetBankByPlayerAI(1); + gActiveBank = GetBankByIdentity(1); PrepareStringBattle(0, gActiveBank); gBattleMainFunc = sub_8011800; } @@ -1967,7 +1986,7 @@ void sub_8011800(void) { if (gBattleExecBuffer == 0) { - PrepareStringBattle(1, GetBankByPlayerAI(1)); + PrepareStringBattle(1, GetBankByIdentity(1)); gBattleMainFunc = sub_8011834; } } @@ -2019,7 +2038,7 @@ void sub_8011970(void) if (gBattleExecBuffer == 0) { if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) - PrepareStringBattle(1, GetBankByPlayerAI(0)); + PrepareStringBattle(1, GetBankByIdentity(0)); gBattleMainFunc = sub_80119B4; } } @@ -2085,7 +2104,7 @@ void BattleBeginFirstTurn(void) for (j = i + 1; j < gNoOfAllBanks; j++) { if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0) - sub_8012FBC(i, j); + SwapTurnOrder(i, j); } } } @@ -2199,8 +2218,8 @@ void BattleTurnPassed(void) gBattleCommunication[i] = 0; if (gBattleOutcome != 0) { - gFightStateTracker = 12; - gBattleMainFunc = sub_80138F0; + gCurrentActionFuncId = 12; + gBattleMainFunc = RunTurnActionsFunctions; return; } if (gBattleResults.battleTurnCounter < 0xFF) @@ -2323,8 +2342,8 @@ void sub_8012324(void) ewram16068arr(gActiveBank) = 6; if (!(gBattleTypeFlags & 0x40) && (r5 & 2) - && !(ewram160A6 & gBitTable[GetBankByPlayerAI(r5 ^ 2)]) - && gBattleCommunication[GetBankByPlayerAI(r5)] != 4) + && !(ewram160A6 & gBitTable[GetBankByIdentity(r5 ^ 2)]) + && gBattleCommunication[GetBankByIdentity(r5)] != 4) break; //_080123F8 if (ewram160A6 & gBitTable[gActiveBank]) @@ -2431,7 +2450,7 @@ _0801239C:\n\ beq _080123F8\n\ eors r5, r1\n\ adds r0, r5, 0\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ ldr r2, _08012444 @ =0x000160a6\n\ adds r1, r4, r2\n\ ldrb r1, [r1]\n\ @@ -2445,7 +2464,7 @@ _0801239C:\n\ bne _080123F8\n\ ldr r4, _0801244C @ =gBattleCommunication\n\ adds r0, r5, 0\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -3071,7 +3090,7 @@ _0801292C:\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ lsls r0, 24\n\ lsrs r0, 24\n\ adds r0, r4\n\ @@ -3621,7 +3640,7 @@ _08012DD2:\n\ bne _08012E06\n\ adds r0, r5, 0\n\ eors r0, r1\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ ldr r1, _08012E20 @ =gSharedMem\n\ ldr r2, _08012E24 @ =0x000160a6\n\ adds r1, r2\n\ @@ -3816,7 +3835,7 @@ _08012F80:\n\ cmp r0, r2\n\ bne _08012F90\n\ ldr r1, _08012FB4 @ =gBattleMainFunc\n\ - ldr r0, _08012FB8 @ =sub_80133C8\n\ + ldr r0, _08012FB8 @ =SetActionsAndBanksTurnOrder\n\ str r0, [r1]\n\ _08012F90:\n\ add sp, 0x1C\n\ @@ -3834,11 +3853,11 @@ _08012FA8: .4byte gActiveBank\n\ _08012FAC: .4byte gBattleCommunication\n\ _08012FB0: .4byte gNoOfAllBanks\n\ _08012FB4: .4byte gBattleMainFunc\n\ -_08012FB8: .4byte sub_80133C8\n\ +_08012FB8: .4byte SetActionsAndBanksTurnOrder\n\ .syntax divided\n"); } -void sub_8012FBC(u8 a, u8 b) +void SwapTurnOrder(u8 a, u8 b) { int temp; @@ -3995,3 +4014,257 @@ u8 GetWhoStrikesFirst(u8 bank1, u8 bank2, bool8 ignoreMovePriorities) return strikesFirst; } + +void SetActionsAndBanksTurnOrder(void) +{ + s32 var = 0; + s32 i, j; + + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; + gTurnOrder[var] = gActiveBank; + var++; + } + } + else + { + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + { + var = 5; + break; + } + } + } + else + { + if (gActionForBanks[0] == ACTION_RUN) + { + gActiveBank = 0; + var = 5; + } + } + + if (var == 5) + { + gUnknown_02024A76[0] = gActionForBanks[gActiveBank]; + gTurnOrder[0] = gActiveBank; + var = 1; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (i != gActiveBank) + { + gUnknown_02024A76[var] = gActionForBanks[i]; + gTurnOrder[var] = i; + var++; + } + } + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; + eFocusPunchBank = 0; + return; + } + else + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) + { + gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; + gTurnOrder[var] = gActiveBank; + var++; + } + } + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) + { + gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; + gTurnOrder[var] = gActiveBank; + var++; + } + } + for (i = 0; i < gNoOfAllBanks - 1; i++) + { + for (j = i + 1; j < gNoOfAllBanks; j++) + { + u8 bank1 = gTurnOrder[i]; + u8 bank2 = gTurnOrder[j]; + if (gUnknown_02024A76[i] != ACTION_USE_ITEM + && gUnknown_02024A76[j] != ACTION_USE_ITEM + && gUnknown_02024A76[i] != ACTION_SWITCH + && gUnknown_02024A76[j] != ACTION_SWITCH) + { + if (GetWhoStrikesFirst(bank1, bank2, FALSE)) + SwapTurnOrder(i, j); + } + } + } + } + } + gBattleMainFunc = CheckFocusPunch_ClearVarsBeforeTurnStarts; + eFocusPunchBank = 0; +} + +static void TurnValuesCleanUp(bool8 var0) +{ + s32 i; + u8 *dataPtr; + + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (var0) + { + gProtectStructs[gActiveBank].protected = 0; + gProtectStructs[gActiveBank].endured = 0; + } + else + { + dataPtr = (u8*)(&gProtectStructs[gActiveBank]); + for (i = 0; i < sizeof(struct ProtectStruct); i++) + dataPtr[i] = 0; + + if (gDisableStructs[gActiveBank].isFirstTurn) + gDisableStructs[gActiveBank].isFirstTurn--; + + if (gDisableStructs[gActiveBank].rechargeCounter) + { + gDisableStructs[gActiveBank].rechargeCounter--; + if (gDisableStructs[gActiveBank].rechargeCounter == 0) + gBattleMons[gActiveBank].status2 &= ~(STATUS2_RECHARGE); + } + } + + if (gDisableStructs[gActiveBank].substituteHP == 0) + gBattleMons[gActiveBank].status2 &= ~(STATUS2_SUBSTITUTE); + } + + gSideTimers[0].followmeTimer = 0; + gSideTimers[1].followmeTimer = 0; +} + +void SpecialStatusesClear(void) +{ + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + s32 i; + u8 *dataPtr = (u8*)(&gSpecialStatuses[gActiveBank]); + + for (i = 0; i < sizeof(struct SpecialStatus); i++) + dataPtr[i] = 0; + } +} + +void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) +{ + if (!(gHitMarker & HITMARKER_RUN)) + { + while (eFocusPunchBank < gNoOfAllBanks) + { + gActiveBank = gBankAttacker = eFocusPunchBank; + eFocusPunchBank++; + if (gChosenMovesByBanks[gActiveBank] == MOVE_FOCUS_PUNCH + && !(gBattleMons[gActiveBank].status1 & STATUS_SLEEP) + && !(gDisableStructs[gBankAttacker].truantCounter) + && !(gProtectStructs[gActiveBank].onlyStruggle)) + { + b_call_bc_move_exec(BattleScript_FocusPunchSetUp); + return; + } + } + } + + b_clear_atk_up_if_hit_flag_unless_enraged(); + gCurrentTurnActionNumber = 0; + { + // something stupid needed to match + u8 zero; + gCurrentActionFuncId = gUnknown_02024A76[(zero = 0)]; + } + + gDynamicBasePower = 0; + BATTLE_STRUCT->dynamicMoveType = 0; + gBattleMainFunc = RunTurnActionsFunctions; + gBattleCommunication[3] = 0; + gBattleCommunication[4] = 0; + eMultihitMoveEffect = 0; + ewram17130 = 0; +} + +static void RunTurnActionsFunctions(void) +{ + if (gBattleOutcome != 0) + gCurrentActionFuncId = 12; + + BATTLE_STRUCT->unk16057 = gCurrentTurnActionNumber; + gUnknown_081FA640[gCurrentActionFuncId](); + + if (gCurrentTurnActionNumber >= gNoOfAllBanks) // everyone did their actions, turn finished + { + gHitMarker &= ~(HITMARKER_x100000); + gBattleMainFunc = gUnknown_081FA678[gBattleOutcome & 0x7F]; + } + else + { + if (BATTLE_STRUCT->unk16057 != gCurrentTurnActionNumber) // action turn has been done, clear hitmarker bits for another bank + { + gHitMarker &= ~(HITMARKER_NO_ATTACKSTRING); + gHitMarker &= ~(HITMARKER_UNABLE_TO_USE_MOVE); + } + } +} + +void HandleEndTurn_BattleWon(void) +{ + gCurrentActionFuncId = 0; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleTextBuff1[0] = gBattleOutcome; + gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBattlescriptCurrInstr = gUnknown_081D8E02; + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + } + else if (gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)) + { + gBattlescriptCurrInstr = gUnknown_081D8E0D; + } + else if (gBattleTypeFlags & BATTLE_TYPE_TRAINER && !(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + BattleMusicStop(); + gBattlescriptCurrInstr = BattleScript_LocalTrainerBattleWon; + + switch (gTrainers[gTrainerBattleOpponent].trainerClass) + { + case TRAINER_CLASS_ELITE_FOUR: + case TRAINER_CLASS_CHAMPION: + PlayBGM(BGM_KACHI5); + break; + case TRAINER_CLASS_TEAM_AQUA: + case TRAINER_CLASS_TEAM_MAGMA: + case TRAINER_CLASS_AQUA_ADMIN: + case TRAINER_CLASS_AQUA_LEADER: + case TRAINER_CLASS_MAGMA_ADMIN: + case TRAINER_CLASS_MAGMA_LEADER: + PlayBGM(BGM_KACHI4); + break; + case TRAINER_CLASS_LEADER: + PlayBGM(BGM_KACHI3); + break; + default: + PlayBGM(BGM_KACHI1); + break; + } + } + else + { + gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems; + } + + gBattleMainFunc = sub_8013C9C; +} diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c index e5a730598..cfa188fa4 100644 --- a/src/battle/battle_3.c +++ b/src/battle/battle_3.c @@ -50,7 +50,7 @@ extern u8 gTakenDmgBanks[4]; extern u8 gBattleMoveFlags; extern u8 gLastUsedAbility; extern u8 gBattleTextBuff2[]; -extern u8 gFightStateTracker; +extern u8 gCurrentActionFuncId; extern struct BattleEnigmaBerry gEnigmaBerries[4]; extern u8 gUnknown_02024BE5; extern u8 gCurrMovePos; @@ -69,7 +69,7 @@ extern const u8 gStatusConditionString_LoveJpn[]; extern const BattleCmdFunc gBattleScriptingCommandsTable[]; u8 IsImprisoned(u8 bank, u16 move); -u8 GetBankByPlayerAI(u8 ID); +u8 GetBankByIdentity(u8 ID); u8 GetBankIdentity(u8 bank); u8 GetBankSide(u8 bank); void b_call_bc_move_exec(u8* BS_ptr); @@ -320,9 +320,9 @@ bool8 AreAllMovesUnusable(void) gProtectStructs[gActiveBank].onlyStruggle = 1; gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2)); + gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2)); else - gBattleBufferB[gActiveBank][3] = GetBankByPlayerAI(GetBankIdentity(gActiveBank) ^ 1); + gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1); } else gProtectStructs[gActiveBank].onlyStruggle = 0; @@ -380,7 +380,7 @@ u8 UpdateTurnCounters(void) for (j = i + 1; j < gNoOfAllBanks; j++) { if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0)) - sub_8012FBC(i, j); + SwapTurnOrder(i, j); } } BATTLE_STRUCT->turncountersTracker++; @@ -392,7 +392,7 @@ u8 UpdateTurnCounters(void) if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) { - if (--gSideTimer[sideBank].reflectTimer == 0) + if (--gSideTimers[sideBank].reflectTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; @@ -421,7 +421,7 @@ u8 UpdateTurnCounters(void) gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) { - if (--gSideTimer[sideBank].lightscreenTimer == 0) + if (--gSideTimers[sideBank].lightscreenTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; b_call_bc_move_exec(BattleScript_SideStatusWoreOff); @@ -448,7 +448,7 @@ u8 UpdateTurnCounters(void) while (BATTLE_STRUCT->turnSideTracker < 2) { gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; - if (gSideTimer[sideBank].mistTimer && --gSideTimer[sideBank].mistTimer == 0) + if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; b_call_bc_move_exec(BattleScript_SideStatusWoreOff); @@ -476,7 +476,7 @@ u8 UpdateTurnCounters(void) gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) { - if (--gSideTimer[sideBank].safeguardTimer == 0) + if (--gSideTimers[sideBank].safeguardTimer == 0) { gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; b_call_bc_move_exec(BattleScript_SafeguardEnds); @@ -1363,14 +1363,14 @@ bool8 sub_8018018(u8 bank, u8 r1, u8 r2) { if (GetBankSide(bank) == 1) { - r7 = GetBankByPlayerAI(1); - r6 = GetBankByPlayerAI(3); + r7 = GetBankByIdentity(1); + r6 = GetBankByIdentity(3); party = gEnemyParty; } else { - r7 = GetBankByPlayerAI(0); - r6 = GetBankByPlayerAI(2); + r7 = GetBankByIdentity(0); + r6 = GetBankByIdentity(2); party = gPlayerParty; } if (r1 == 6) @@ -2053,15 +2053,15 @@ u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) { u8 target2; side = (GetBankIdentity(i) ^ 1) & 1; - target1 = GetBankByPlayerAI(side); - target2 = GetBankByPlayerAI(side + 2); + target1 = GetBankByIdentity(side); + target2 = GetBankByIdentity(side + 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) { //_080199AE - gActiveBank = GetBankByPlayerAI(((Random() & 1) * 2) | side); + gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); gBattleMons[i].ability = gBattleMons[gActiveBank].ability; gLastUsedAbility = gBattleMons[gActiveBank].ability; effect++; @@ -2256,7 +2256,7 @@ void b_call_bc_move_exec(u8* BS_ptr) gBattlescriptCurrInstr = BS_ptr; B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; gBattleMainFunc = sub_8013F54; - gFightStateTracker = 0; + gCurrentActionFuncId = 0; } void b_push_move_exec(u8* BS_ptr) @@ -3028,14 +3028,14 @@ void unref_sub_801B40C(void) { if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2]) { - gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); - gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); + gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; } if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank]) { - gSideTimer[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); - gSideTimer[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); + gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; } bank++; @@ -3067,8 +3067,8 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target { case 0: side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp) - targetBank = gSideTimer[side].followmeTarget; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; else { side = GetBankSide(gBankAttacker); @@ -3090,35 +3090,35 @@ u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target case 8: case 32: case 64: - targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= 2; break; case 4: side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp) - targetBank = gSideTimer[side].followmeTarget; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4) { if (GetBankSide(gBankAttacker) == 0) { if (Random() & 1) - targetBank = GetBankByPlayerAI(1); + targetBank = GetBankByIdentity(1); else - targetBank = GetBankByPlayerAI(3); + targetBank = GetBankByIdentity(3); } else { if (Random() & 1) - targetBank = GetBankByPlayerAI(0); + targetBank = GetBankByIdentity(0); else - targetBank = GetBankByPlayerAI(2); + targetBank = GetBankByIdentity(2); } if (gAbsentBankFlags & gBitTable[targetBank]) targetBank ^= 2; } else - targetBank = GetBankByPlayerAI((GetBankIdentity(gBankAttacker) & 1) ^ 1); + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); break; case 2: case 16: diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 0c147e471..d9789f76d 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -58,7 +58,7 @@ extern u8 gBankAttacker; extern u8 gBankTarget; extern u8* gBattlescriptCurrInstr; extern u8 gCurrMovePos; -extern u8 gFightStateTracker; +extern u8 gCurrentActionFuncId; extern u32 gHitMarker; extern u8 gBattleMoveFlags; extern u8 gBattleCommunication[]; @@ -94,7 +94,7 @@ extern u8 gActionForBanks[4]; extern u16 gUnknown_02024C2C[4]; //last used moves 2, used by sketch extern u16 gUnknown_030041B0; extern u16 gUnknown_02024C4C[4]; //last used moves by banks, another one -extern u8 gCurrentMoveTurn; +extern u8 gCurrentTurnActionNumber; extern u16 gTrappingMoves[]; //extern functions @@ -129,7 +129,7 @@ u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID); u16 SpeciesToNationalPokedexNum(u16 species); u8 sub_803FC34(u8 bank); u16 sub_803FBFC(u8 a); -u8 GetBankByPlayerAI(u8 ID); +u8 GetBankByIdentity(u8 ID); void sub_8012258(u8); void sub_80157C4(u8 bank); //update sent pokes in battle //MonTryLearningNewMove teach poke a move @@ -1028,7 +1028,7 @@ static void atk00_attackcanceler(void) int i; if (gBattleOutcome) { - gFightStateTracker = 0xC; + gCurrentActionFuncId = 0xC; return; } if (gBattleMons[gBankAttacker].hp == 0 && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) @@ -2518,7 +2518,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } else { - if (BankGetTurnOrder(gEffectBank) > gCurrentMoveTurn) + if (BankGetTurnOrder(gEffectBank) > gCurrentTurnActionNumber) gBattleMons[gEffectBank].status2 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr++; return; } @@ -3861,7 +3861,7 @@ _0801ED14: .4byte BattleScript_FlinchPrevention\n\ _0801ED18:\n\ adds r0, r2, 0\n\ bl BankGetTurnOrder\n\ - ldr r1, _0801ED54 @ =gCurrentMoveTurn\n\ + ldr r1, _0801ED54 @ =gCurrentTurnActionNumber\n\ lsls r0, 24\n\ lsrs r0, 24\n\ ldrb r1, [r1]\n\ @@ -3887,7 +3887,7 @@ _0801ED2E:\n\ str r1, [r2]\n\ bl _0801F5DC\n\ .align 2, 0\n\ -_0801ED54: .4byte gCurrentMoveTurn\n\ +_0801ED54: .4byte gCurrentTurnActionNumber\n\ _0801ED58: .4byte gStatusFlagsForMoveEffects\n\ _0801ED5C: .4byte gBattleCommunication\n\ _0801ED60:\n\ @@ -7290,14 +7290,14 @@ static void atk3D_end(void) { gBattleMoveFlags = 0; gActiveBank = 0; - gFightStateTracker = 0xB; + gCurrentActionFuncId = 0xB; } static void atk3E_end2(void) { //not much difference between this and 3D. It's more apparent in Emerald gActiveBank = 0; - gFightStateTracker = 0xB; + gCurrentActionFuncId = 0xB; } static void atk3F_end3(void) //pops the main function stack @@ -7467,7 +7467,7 @@ static void atk48_playstatchangeanimation(void) if (!(T2_READ_8(gBattlescriptCurrInstr + 3))) { u8 ability; - if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer) + if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer) continue; ability = gBattleMons[gActiveBank].ability; if (ability == ABILITY_CLEAR_BODY || ability == ABILITY_WHITE_SMOKE || (ability == ABILITY_KEEN_EYE && curr_stat == 6) || (ability == ABILITY_HYPER_CUTTER && curr_stat == 1)) @@ -7602,7 +7602,7 @@ _0802167C:\n\ lsls r0, r1, 1\n\ adds r0, r1\n\ lsls r0, 2\n\ - ldr r1, _08021704 @ =gSideTimer\n\ + ldr r1, _08021704 @ =gSideTimers\n\ adds r0, r1\n\ ldrb r0, [r0, 0x2]\n\ ldr r3, [sp]\n\ @@ -7665,7 +7665,7 @@ _080216E4:\n\ b _08021770\n\ .align 2, 0\n\ _08021700: .4byte gActiveBank\n\ -_08021704: .4byte gSideTimer\n\ +_08021704: .4byte gSideTimers\n\ _08021708: .4byte gBattleMons\n\ _0802170C: .4byte gBattlescriptCurrInstr\n\ _08021710:\n\ @@ -9154,7 +9154,7 @@ _080221C0:\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ lsls r0, 24\n\ lsrs r2, r0, 24\n\ ldr r1, _080222CC @ =gBattleMons\n\ @@ -9457,18 +9457,18 @@ static void atk4F_jumpifcantswitch(void) { if (GetBankSide(gActiveBank) == 1) { - r7 = GetBankByPlayerAI(1); + r7 = GetBankByIdentity(1); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByPlayerAI(3); + to_cmp = GetBankByIdentity(3); else to_cmp = r7; party = gEnemyParty; } else { - r7 = GetBankByPlayerAI(0); + r7 = GetBankByIdentity(0); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - to_cmp = GetBankByPlayerAI(2); + to_cmp = GetBankByIdentity(2); else to_cmp = r7; party = gPlayerParty; @@ -10528,7 +10528,7 @@ _080232C4:\n\ eors r0, r1\n\ lsls r0, 24\n\ lsrs r0, 24\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ ldr r4, _08023310 @ =gActiveBank\n\ strb r0, [r4]\n\ ldr r0, _08023314 @ =gAbsentBankFlags\n\ @@ -10632,7 +10632,7 @@ static void atk52_switchineffects(void) gSideAffecting[GetBankSide(gActiveBank)] |= SIDE_STATUS_SPIKES_DAMAGED; - spikesDmg = (5 - gSideTimer[GetBankSide(gActiveBank)].spikesAmount) * 2; + spikesDmg = (5 - gSideTimers[GetBankSide(gActiveBank)].spikesAmount) * 2; gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / (spikesDmg); if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -10690,9 +10690,9 @@ static void atk52_switchineffects(void) static void atk53_trainerslidein(void) { if (!T2_READ_8(gBattlescriptCurrInstr + 1)) - gActiveBank = GetBankByPlayerAI(0); + gActiveBank = GetBankByIdentity(0); else - gActiveBank = GetBankByPlayerAI(1); + gActiveBank = GetBankByIdentity(1); EmitTrainerSlide(0); MarkBufferBankForExecution(gActiveBank); @@ -10725,7 +10725,7 @@ static void atk56_playfaintcry(void) static void atk57(void) { - gActiveBank = GetBankByPlayerAI(0); + gActiveBank = GetBankByIdentity(0); Emitcmd55(0, gBattleOutcome); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 1; @@ -10758,12 +10758,12 @@ void atk59_handlelearnnewmove(void) } else { - gActiveBank = GetBankByPlayerAI(0); + gActiveBank = GetBankByIdentity(0); if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) //what is else if { - gActiveBank = GetBankByPlayerAI(2); + gActiveBank = GetBankByIdentity(2); if (gBattlePartyID[gActiveBank] == BATTLE_STRUCT->expGetterID && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) GiveMoveToBattleMon(&gBattleMons[gActiveBank], ret); } @@ -11907,7 +11907,7 @@ static void atk6D_resetsentmonsvalue(void) static void atk6E_setatktoplayer0(void) { - gBankAttacker = GetBankByPlayerAI(0); + gBankAttacker = GetBankByIdentity(0); gBattlescriptCurrInstr++; } @@ -12020,8 +12020,8 @@ static void atk76_various(void) u8 side; gBankAttacker = gBankTarget; side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimer[side].followmeTimer && gBattleMons[gSideTimer[side].followmeTarget].hp) - gBankTarget = gSideTimer[side].followmeTarget; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + gBankTarget = gSideTimers[side].followmeTarget; else gBankTarget = gActiveBank; } @@ -12080,7 +12080,7 @@ static void atk77_setprotectlike(void) //protect and endure if (last_move != MOVE_PROTECT && last_move != MOVE_DETECT && last_move != MOVE_ENDURE) gDisableStructs[gBankAttacker].protectUses = 0; - if (gCurrentMoveTurn == (gNoOfAllBanks - 1)) + if (gCurrentTurnActionNumber == (gNoOfAllBanks - 1)) not_last_turn = 0; if (sProtectSuccessRates[gDisableStructs[gBankAttacker].protectUses] > Random() && not_last_turn) @@ -12266,7 +12266,7 @@ static void atk7E_setreflect(void) else { gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_REFLECT; - gSideTimer[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5; + gSideTimers[GetBankIdentity(gBankAttacker) & 1].reflectTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else @@ -12502,7 +12502,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr) if ((statchanger << 0x18) < 0) //stat decrease { - if (gSideTimer[GetBankIdentity(gActiveBank) & 1].mistTimer && !r9 && gCurrentMove != MOVE_CURSE) + if (gSideTimers[GetBankIdentity(gActiveBank) & 1].mistTimer && !r9 && gCurrentMove != MOVE_CURSE) { if (flags == 1) { @@ -12728,7 +12728,7 @@ _08025E88:\n\ blt _08025EAC\n\ b _080261B0\n\ _08025EAC:\n\ - ldr r4, _08025F04 @ =gSideTimer\n\ + ldr r4, _08025F04 @ =gSideTimers\n\ ldr r1, _08025EF8 @ =gActiveBank\n\ ldrb r0, [r1]\n\ bl GetBankIdentity\n\ @@ -12769,7 +12769,7 @@ _08025EAC:\n\ _08025EF8: .4byte gActiveBank\n\ _08025EFC: .4byte gBankTarget\n\ _08025F00: .4byte gBattleTextBuff1\n\ -_08025F04: .4byte gSideTimer\n\ +_08025F04: .4byte gSideTimers\n\ _08025F08: .4byte gCurrentMove\n\ _08025F0C: .4byte gSpecialStatuses\n\ _08025F10: .4byte gBattlescriptCurrInstr\n\ @@ -13488,7 +13488,7 @@ static void atk92_setlightscreen(void) else { gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_LIGHTSCREEN; - gSideTimer[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5; + gSideTimers[GetBankIdentity(gBankAttacker) & 1].lightscreenTimer = 5; if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && CountAliveMons(1) == 2) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else @@ -14034,7 +14034,7 @@ static void atk98_updatestatusicon(void) } if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (!(gAbsentBankFlags & gBitTable[gActiveBank])) { EmitStatusIconUpdate(0, gBattleMons[gActiveBank].status1, gBattleMons[gActiveBank].status2); @@ -14047,14 +14047,14 @@ static void atk98_updatestatusicon(void) static void atk99_setmist(void) { - if (gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer) + if (gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer) { gBattleMoveFlags |= MOVESTATUS_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = 1; } else { - gSideTimer[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5; + gSideTimers[GetBankIdentity(gBankAttacker) & 1].mistTimer = 5; gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_MIST; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } @@ -14315,8 +14315,8 @@ static void atkA1_counterdamagecalculator(void) if (gProtectStructs[gBankAttacker].physicalDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].physicalBank].hp) { gBattleMoveDamage = gProtectStructs[gBankAttacker].physicalDmg * 2; - if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp) - gBankTarget = gSideTimer[def_side].followmeTarget; + if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) + gBankTarget = gSideTimers[def_side].followmeTarget; else gBankTarget = gProtectStructs[gBankAttacker].physicalBank; gBattlescriptCurrInstr += 5; @@ -14335,8 +14335,8 @@ static void atkA2_mirrorcoatdamagecalculator(void) //a copy of atkA1 with the ph if (gProtectStructs[gBankAttacker].specialDmg && atk_side != def_side && gBattleMons[gProtectStructs[gBankAttacker].specialBank].hp) { gBattleMoveDamage = gProtectStructs[gBankAttacker].specialDmg * 2; - if (gSideTimer[def_side].followmeTimer && gBattleMons[gSideTimer[def_side].followmeTarget].hp) - gBankTarget = gSideTimer[def_side].followmeTarget; + if (gSideTimers[def_side].followmeTimer && gBattleMons[gSideTimers[def_side].followmeTarget].hp) + gBankTarget = gSideTimers[def_side].followmeTarget; else gBankTarget = gProtectStructs[gBankAttacker].specialBank; gBattlescriptCurrInstr += 5; @@ -14948,7 +14948,7 @@ static void atkAE_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] |= 1; } - gActiveBank = BATTLE_STRUCT->scriptingActive = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = BATTLE_STRUCT->scriptingActive = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) { if (gBattleMons[gActiveBank].ability != ABILITY_SOUNDPROOF) @@ -14986,7 +14986,7 @@ static void atkAE_healpartystatus(void) to_heal = 0x3F; gBattleMons[gBankAttacker].status1 = zero2; - gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank])) gBattleMons[gActiveBank].status1 = 0; @@ -15018,7 +15018,7 @@ static void atkAF_cursetarget(void) static void atkB0_trysetspikes(void) { u8 side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimer[side].spikesAmount == 3) + if (gSideTimers[side].spikesAmount == 3) { gSpecialStatuses[gBankAttacker].flag20 = 1; gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); @@ -15026,7 +15026,7 @@ static void atkB0_trysetspikes(void) else { gSideAffecting[side] |= SIDE_STATUS_SPIKES; - gSideTimer[side].spikesAmount++; + gSideTimers[side].spikesAmount++; gBattlescriptCurrInstr += 5; } } @@ -15167,7 +15167,7 @@ static void atkB8_setsafeguard(void) else { gSideAffecting[GetBankIdentity(gBankAttacker) & 1] |= SIDE_STATUS_SAFEGUARD; - gSideTimer[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5; + gSideTimers[GetBankIdentity(gBankAttacker) & 1].safeguardTimer = 5; gBattleCommunication[MULTISTRING_CHOOSER] = 5; } gBattlescriptCurrInstr++; @@ -15234,16 +15234,16 @@ static void atkBA_jumpifnopursuitswitchdmg(void) if (gMultiHitCounter == 1) { if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByPlayerAI(1); + gBankTarget = GetBankByIdentity(1); else - gBankTarget = GetBankByPlayerAI(0); + gBankTarget = GetBankByIdentity(0); } else { if (GetBankSide(gBankAttacker) == 0) - gBankTarget = GetBankByPlayerAI(3); + gBankTarget = GetBankByIdentity(3); else - gBankTarget = GetBankByPlayerAI(2); + gBankTarget = GetBankByIdentity(2); } if (gActionForBanks[gBankTarget] == 0 && gBankAttacker == ewram16010arr(gBankTarget) && !(gBattleMons[gBankTarget].status1 & (STATUS_SLEEP | STATUS_FREEZE)) @@ -15334,7 +15334,7 @@ static void atkBE_rapidspinfree(void) //rapid spin else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) { gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); - gSideTimer[GetBankSide(gBankAttacker)].spikesAmount = 0; + gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; b_movescr_stack_push_cursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } @@ -15935,8 +15935,8 @@ static void atkC9_jumpifattackandspecialattackcannotfall(void) //memento static void atkCA_setforcedtarget(void) //follow me { - gSideTimer[GetBankSide(gBankAttacker)].followmeTimer = 1; - gSideTimer[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker; + gSideTimers[GetBankSide(gBankAttacker)].followmeTimer = 1; + gSideTimers[GetBankSide(gBankAttacker)].followmeTarget = gBankAttacker; gBattlescriptCurrInstr++; } @@ -16004,7 +16004,7 @@ static void atkD0_settaunt(void) static void atkD1_trysethelpinghand(void) { - gBankTarget = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2); + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gBankTarget]) && !gProtectStructs[gBankAttacker].helpingHand && !gProtectStructs[gBankTarget].helpingHand) { @@ -16774,7 +16774,7 @@ static void atkDF_trysetmagiccoat(void) { gBankTarget = gBankAttacker; gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn + if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -16786,7 +16786,7 @@ static void atkDF_trysetmagiccoat(void) static void atkE0_trysetsnatch(void) { gSpecialStatuses[gBankAttacker].flag20 = 1; - if (gCurrentMoveTurn == gNoOfAllBanks - 1) //last turn + if (gCurrentTurnActionNumber == gNoOfAllBanks - 1) //last turn gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else { @@ -17011,7 +17011,7 @@ static void atkEB_settypetoterrain(void) static void atkEC_pursuitrelated(void) { - gActiveBank = GetBankByPlayerAI(GetBankIdentity(gBankAttacker) ^ 2); + gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) && gActionForBanks[gActiveBank] == 0 && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT) { gUnknown_02024A76[gActiveBank] = 11; @@ -17039,12 +17039,12 @@ static void atkED_snatchsetbanks(void) static void atkEE_removelightscreenreflect(void) //brick break { u8 side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimer[side].reflectTimer || gSideTimer[side].lightscreenTimer) + if (gSideTimers[side].reflectTimer || gSideTimers[side].lightscreenTimer) { gSideAffecting[side] &= ~(SIDE_STATUS_REFLECT); gSideAffecting[side] &= ~(SIDE_STATUS_LIGHTSCREEN); - gSideTimer[side].reflectTimer = 0; - gSideTimer[side].lightscreenTimer = 0; + gSideTimers[side].reflectTimer = 0; + gSideTimers[side].lightscreenTimer = 0; BATTLE_STRUCT->animTurn = 1; BATTLE_STRUCT->animTargetsHit = 1; } @@ -17428,11 +17428,11 @@ static void atkF5_removeattackerstatus1(void) static void atkF6_finishaction(void) { - gFightStateTracker = 0xC; + gCurrentActionFuncId = 0xC; } static void atkF7_finishturn(void) { - gFightStateTracker = 0xC; - gCurrentMoveTurn = gNoOfAllBanks; + gCurrentActionFuncId = 0xC; + gCurrentTurnActionNumber = gNoOfAllBanks; } diff --git a/src/battle/battle_7.c b/src/battle/battle_7.c index e11971606..1c79d7ebf 100644 --- a/src/battle/battle_7.c +++ b/src/battle/battle_7.c @@ -795,7 +795,7 @@ void sub_80324F8(struct Pokemon *pkmn, u8 b) void BattleMusicStop(void) { - u8 r4 = GetBankByPlayerAI(0); + u8 r4 = GetBankByIdentity(0); ewram17800[r4].unk0_1 = 0; if (IsDoubleBattle()) @@ -815,8 +815,8 @@ void sub_8032638(void) { if (gMain.inBattle) { - u8 r8 = GetBankByPlayerAI(0); - u8 r9 = GetBankByPlayerAI(2); + u8 r8 = GetBankByIdentity(0); + u8 r9 = GetBankByIdentity(2); u8 r4 = pokemon_order_func(gBattlePartyID[r8]); u8 r5 = pokemon_order_func(gBattlePartyID[r9]); @@ -857,12 +857,12 @@ void sub_80327CC(void) u8 r5; LoadCompressedObjectPic(&gUnknown_081FAF24); - r5 = GetBankByPlayerAI(1); + r5 = GetBankByIdentity(1); ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; if (IsDoubleBattle()) { - r5 = GetBankByPlayerAI(3); + r5 = GetBankByIdentity(3); ewram17810[r5].unk7 = CreateSprite(&gSpriteTemplate_81FAF34, GetBankPosition(r5, 0), GetBankPosition(r5, 1) + 32, 0xC8); gSprites[ewram17810[r5].unk7].data[0] = r5; } diff --git a/src/battle/battle_ai.c b/src/battle/battle_ai.c index 6b892ea7a..977e91f5c 100644 --- a/src/battle/battle_ai.c +++ b/src/battle/battle_ai.c @@ -1321,7 +1321,7 @@ static void BattleAICmd_count_alive_pokemon(void) u32 status; var = gBattlePartyID[index]; status = GetBankIdentity(index) ^ 2; - var2 = gBattlePartyID[GetBankByPlayerAI(status)]; + var2 = gBattlePartyID[GetBankByIdentity(status)]; } else { diff --git a/src/battle/battle_anim_80A7E7C.c b/src/battle/battle_anim_80A7E7C.c index 3097f1a0e..c35434df0 100644 --- a/src/battle/battle_anim_80A7E7C.c +++ b/src/battle/battle_anim_80A7E7C.c @@ -108,17 +108,17 @@ void sub_80A7FA0(u8 taskId) switch (gBattleAnimArgs[0]) { case 4: - side = GetBankByPlayerAI(0); + side = GetBankByIdentity(0); break; case 5: - side = GetBankByPlayerAI(2); + side = GetBankByIdentity(2); break; case 6: - side = GetBankByPlayerAI(1); + side = GetBankByIdentity(1); break; case 7: default: - side = GetBankByPlayerAI(3); + side = GetBankByIdentity(3); break; } if (IsAnimBankSpriteVisible(side) == FALSE) diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 54bb9d7f9..477b600ac 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -98,7 +98,7 @@ extern void sub_80324BC(); extern void BufferStringBattle(); extern void sub_80331D0(void); extern void sub_8036B0C(void); -extern u8 GetBankByPlayerAI(u8); +extern u8 GetBankByIdentity(u8); extern u8 sub_8036CD4(void); extern void sub_80330C8(void); extern void sub_8043D84(); @@ -1451,9 +1451,9 @@ void OpponentHandlecmd20(void) gBankTarget = gActiveBank; if (gBattleMoves[r5->moves[r4]].target & 8) { - gBankTarget = GetBankByPlayerAI(0); + gBankTarget = GetBankByIdentity(0); if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetBankByPlayerAI(2); + gBankTarget = GetBankByIdentity(2); } r4 |= gBankTarget << 8; Emitcmd33(1, 10, r4); @@ -1479,13 +1479,13 @@ void OpponentHandlecmd20(void) } else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) { - u16 r2 = GetBankByPlayerAI(Random() & 2) << 8; + u16 r2 = GetBankByIdentity(Random() & 2) << 8; Emitcmd33(1, 10, r4 | r2); } else { - u16 r2 = GetBankByPlayerAI(0) << 8; + u16 r2 = GetBankByIdentity(0) << 8; Emitcmd33(1, 10, r4 | r2); } @@ -1561,7 +1561,7 @@ _08035494:\n\ cmp r0, 0\n\ beq _080354CE\n\ movs r0, 0\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ ldr r5, _080354EC @ =gBankTarget\n\ strb r0, [r5]\n\ ldr r0, _080354F0 @ =gAbsentBankFlags\n\ @@ -1575,7 +1575,7 @@ _08035494:\n\ cmp r1, 0\n\ beq _080354CE\n\ movs r0, 0x2\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ strb r0, [r5]\n\ _080354CE:\n\ ldr r0, _080354EC @ =gBankTarget\n\ @@ -1640,7 +1640,7 @@ _0803553C:\n\ lsls r1, 24\n\ lsrs r1, 24\n\ adds r0, r1, 0\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -1653,7 +1653,7 @@ _0803553C:\n\ _0803556C: .4byte gBattleTypeFlags\n\ _08035570:\n\ movs r0, 0\n\ - bl GetBankByPlayerAI\n\ + bl GetBankByIdentity\n\ adds r2, r0, 0\n\ lsls r2, 24\n\ lsrs r2, 16\n\ @@ -1692,13 +1692,13 @@ void OpponentHandlecmd22(void) { if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) { - r5 = GetBankByPlayerAI(1); + r5 = GetBankByIdentity(1); r6 = r5; } else { - r6 = GetBankByPlayerAI(1); - r5 = GetBankByPlayerAI(3); + r6 = GetBankByIdentity(1); + r5 = GetBankByIdentity(3); } for (r4 = 0; r4 < 6; r4++) { diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 70773473d..62a38311a 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -118,7 +118,7 @@ extern void sub_8031F24(void); extern void sub_80324BC(); extern u8 sub_8031720(); extern void bx_wait_t1(void); -extern u8 GetBankByPlayerAI(u8); +extern u8 GetBankByIdentity(u8); extern void sub_802DE10(void); extern void sub_80105EC(struct Sprite *); extern void sub_802D274(void); @@ -167,7 +167,7 @@ extern const u8 BattleText_LinkStandby[]; extern void dp11b_obj_instanciate(u8, u8, s8, s8); extern u8 GetBankIdentity(u8); -extern u8 GetBankByPlayerAI(u8); +extern u8 GetBankByIdentity(u8); extern void dp11b_obj_free(u8, u8); extern void sub_8010520(struct Sprite *); extern void sub_8010574(struct Sprite *); @@ -445,7 +445,7 @@ void sub_802C098(void) { if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) && GetBankIdentity(gActiveBank) == 2 - && !(gAbsentBankFlags & gBitTable[GetBankByPlayerAI(0)]) + && !(gAbsentBankFlags & gBitTable[GetBankByIdentity(0)]) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { if (gBattleBufferA[gActiveBank][1] == 1) @@ -529,7 +529,7 @@ void sub_802C2EC(void) i--; if (i < 0) i = 3; - gUnknown_03004344 = GetBankByPlayerAI(arr[i]); + gUnknown_03004344 = GetBankByIdentity(arr[i]); } while(gUnknown_03004344 == gNoOfAllBanks); i = 0; switch (GetBankIdentity(gUnknown_03004344)) @@ -576,7 +576,7 @@ void sub_802C2EC(void) i++; if (i > 3) i = 0; - gUnknown_03004344 = GetBankByPlayerAI(arr[i]); + gUnknown_03004344 = GetBankByIdentity(arr[i]); } while (gUnknown_03004344 == gNoOfAllBanks); i = 0; switch (GetBankIdentity(gUnknown_03004344)) @@ -636,7 +636,7 @@ void sub_802C68C(void) if (r4 & 0x10) gUnknown_03004344 = gActiveBank; else - gUnknown_03004344 = GetBankByPlayerAI((GetBankIdentity(gActiveBank) & 1) ^ 1); + gUnknown_03004344 = GetBankByIdentity((GetBankIdentity(gActiveBank) & 1) ^ 1); if (gBattleBufferA[gActiveBank][1] == 0) { @@ -668,10 +668,10 @@ void sub_802C68C(void) gBattleBankFunc[gActiveBank] = sub_802C2EC; if (r4 & 0x12) gUnknown_03004344 = gActiveBank; - else if (gAbsentBankFlags & gBitTable[GetBankByPlayerAI(1)]) - gUnknown_03004344 = GetBankByPlayerAI(3); + else if (gAbsentBankFlags & gBitTable[GetBankByIdentity(1)]) + gUnknown_03004344 = GetBankByIdentity(3); else - gUnknown_03004344 = GetBankByPlayerAI(1); + gUnknown_03004344 = GetBankByIdentity(1); gSprites[gObjectBankIDs[gUnknown_03004344]].callback = sub_8010520; } } @@ -2458,7 +2458,7 @@ void PlayerHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3); gBattleBankFunc[gActiveBank] = bx_wait_t1; } @@ -2468,7 +2468,7 @@ void PlayerHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 3); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 3); gBattleBankFunc[gActiveBank] = bx_wait_t1; } diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 6f6286945..37c58f951 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -40,7 +40,7 @@ extern u16 gUnknown_02024DE8; extern u8 gBattleOutcome; extern u8 GetBankSide(u8); -extern u8 GetBankByPlayerAI(u8); +extern u8 GetBankByIdentity(u8); extern u8 GetBankIdentity(u8); extern void LoadPlayerTrainerBankSprite(); extern u8 sub_8079E90(); @@ -423,7 +423,7 @@ void SafariHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); gBattleBankFunc[gActiveBank] = bx_wait_t6; } @@ -433,7 +433,7 @@ void SafariHandleBallThrow(void) ewram17840.unk8 = var; gDoingBattleAnim = 1; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); gBattleBankFunc[gActiveBank] = bx_wait_t6; } diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index 8ace11fc1..be40f968c 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -75,7 +75,7 @@ extern void PlayerHandlecmd1(void); extern void LoadPlayerTrainerBankSprite(); extern u8 GetBankIdentity(u8); extern void sub_80313A0(struct Sprite *); -extern u8 GetBankByPlayerAI(u8); +extern u8 GetBankByIdentity(u8); extern u8 sub_8031720(); extern void DoMoveAnim(); extern void sub_80326EC(); @@ -1149,7 +1149,7 @@ void WallyHandlecmd12(void) { ewram17840.unk8 = 4; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); gBattleBankFunc[gActiveBank] = bx_wait_t5; } @@ -1159,7 +1159,7 @@ void WallyHandleBallThrow(void) ewram17840.unk8 = val; gDoingBattleAnim = TRUE; - move_anim_start_t4(gActiveBank, gActiveBank, GetBankByPlayerAI(1), 4); + move_anim_start_t4(gActiveBank, gActiveBank, GetBankByIdentity(1), 4); gBattleBankFunc[gActiveBank] = bx_wait_t5; } diff --git a/src/battle/battle_message.c b/src/battle/battle_message.c index 4ac8c7a6f..d8efc09c5 100644 --- a/src/battle/battle_message.c +++ b/src/battle/battle_message.c @@ -199,7 +199,7 @@ s32 sub_803FC34(u16); void get_trainer_name(u8* dst); u8 get_trainer_class_name_index(void); u8 GetMultiplayerId(void); -u8 GetBankByPlayerAI(u8 ID); +u8 GetBankByIdentity(u8 ID); u8 GetBankSide(u8 bank); u8 GetBankIdentity(u8 bank); #ifdef GERMAN @@ -572,22 +572,22 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = gBattleTextBuff3; break; case 2: // first player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(0)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(0)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 3: // first enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(1)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(1)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 4: // second player poke name - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(2)]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(2)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; case 5: // second enemy poke name - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(3)]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(3)]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; break; @@ -612,13 +612,13 @@ u32 StrCpyDecodeBattle(const u8* src, u8* dst) toCpy = text; break; case 10: // attacker name with prefix, only bank 0/1 - HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1)]) + HANDLE_NICKNAME_STRING_CASE(gBankAttacker, gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1)]) break; case 11: // attacker partner name, only bank 0/1 if (GetBankSide(gBankAttacker) == 0) - GetMonData(&gPlayerParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gPlayerParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); else - GetMonData(&gEnemyParty[gBattlePartyID[GetBankByPlayerAI(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); + GetMonData(&gEnemyParty[gBattlePartyID[GetBankByIdentity(GetBankIdentity(gBankAttacker) & 1) + 2]], MON_DATA_NICKNAME, text); StringGetEnd10(text); toCpy = text; diff --git a/src/battle/battle_party_menu.c b/src/battle/battle_party_menu.c index d4dcae0ca..7bce00d82 100644 --- a/src/battle/battle_party_menu.c +++ b/src/battle/battle_party_menu.c @@ -122,7 +122,7 @@ static void sub_8094998(u8 arg[3], u8 player_number) if (!IsDoubleBattle()) { pos = 1; - *temp = gBattlePartyID[GetBankByPlayerAI(0)]; + *temp = gBattlePartyID[GetBankByIdentity(0)]; for (i = 0; i <= 5; i++) if (i != *temp) temp[pos++] = i; @@ -130,8 +130,8 @@ static void sub_8094998(u8 arg[3], u8 player_number) else { pos = 2; - *temp = gBattlePartyID[GetBankByPlayerAI(0)]; - temp[1] = gBattlePartyID[GetBankByPlayerAI(2)]; + *temp = gBattlePartyID[GetBankByIdentity(0)]; + temp[1] = gBattlePartyID[GetBankByIdentity(2)]; for (i = 0; i <= 5; i++) if ((i != *temp) && (i != temp[1])) temp[pos++] = i; @@ -147,13 +147,13 @@ static void sub_8094A74(u8 arg[3], u8 player_number, u32 arg3) u8 temp[6]; if (!GetBankSide(arg3)) { - i = GetBankByPlayerAI(0); - j = GetBankByPlayerAI(2); + i = GetBankByIdentity(0); + j = GetBankByIdentity(2); } else { - i = GetBankByPlayerAI(1); - j = GetBankByPlayerAI(3); + i = GetBankByIdentity(1); + j = GetBankByIdentity(3); } if (IsLinkDoubleBattle() == TRUE) { diff --git a/src/battle/pokeball.c b/src/battle/pokeball.c index bcaaebcda..6f27469ce 100644 --- a/src/battle/pokeball.c +++ b/src/battle/pokeball.c @@ -383,7 +383,7 @@ static void sub_8046464(u8 taskId) gSprites[spriteId].callback = sub_8047254; break; default: - gBankTarget = GetBankByPlayerAI(1); + gBankTarget = GetBankByIdentity(1); sp0 = TRUE; break; } @@ -722,7 +722,7 @@ static void sub_8046C78(struct Sprite *sprite) r8 = -25; } species = GetMonData(pkmn, MON_DATA_SPECIES); - if ((r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1)) + if ((r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) && IsDoubleBattle() && ewram17840.unk9_0) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) @@ -737,7 +737,7 @@ static void sub_8046C78(struct Sprite *sprite) } if (!IsDoubleBattle() || !ewram17840.unk9_0) r4_2 = 0; - else if (r5 == GetBankByPlayerAI(0) || r5 == GetBankByPlayerAI(1)) + else if (r5 == GetBankByIdentity(0) || r5 == GetBankByIdentity(1)) r4_2 = 1; else r4_2 = 2; @@ -885,7 +885,7 @@ static void sub_80470C4(struct Sprite *sprite) sprite->data[6] = sprite->oam.affineParam & 0xFF; sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByPlayerAI(2)) + && sprite->data[6] == GetBankByIdentity(2)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; @@ -910,7 +910,7 @@ static void sub_8047254(struct Sprite *sprite) { sprite->data[0] = 0; if (IsDoubleBattle() && ewram17840.unk9_0 - && sprite->data[6] == GetBankByPlayerAI(3)) + && sprite->data[6] == GetBankByIdentity(3)) sprite->callback = sub_8047230; else sprite->callback = sub_8046C78; diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c index 49b0854cc..a7646e78b 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/battle/reshow_battle_screen.c @@ -171,13 +171,13 @@ static void CB2_ReshowBattleScreenAfterMenu(void) sub_80327CC(); - opponentBank = GetBankByPlayerAI(1); + opponentBank = GetBankByIdentity(1); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); if (IsDoubleBattle()) { - opponentBank = GetBankByPlayerAI(3); + opponentBank = GetBankByIdentity(3); species = GetMonData(&gEnemyParty[gBattlePartyID[opponentBank]], MON_DATA_SPECIES); sub_8032984(opponentBank, species); } diff --git a/src/data/battle_tower/trainers.h b/src/data/battle_tower/trainers.h index b5eb3da7a..ae204f8ea 100644 --- a/src/data/battle_tower/trainers.h +++ b/src/data/battle_tower/trainers.h @@ -1,7 +1,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = { { - .trainerClass = TRAINER_CLASS_YOUNGSTER, + .trainerClass = FACILITY_CLASS_YOUNGSTER, .name = _("ALVIN"), .teamFlags = 0x01, .greeting = { @@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BIRD_KEEPER, + .trainerClass = FACILITY_CLASS_BIRD_KEEPER, .name = _("DIRK"), .teamFlags = 0x01, .greeting = { @@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LADY, + .trainerClass = FACILITY_CLASS_LADY, .name = _("CYBIL"), .teamFlags = 0x02, .greeting = { @@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BLACK_BELT, + .trainerClass = FACILITY_CLASS_BLACK_BELT, .name = _("CHEN"), .teamFlags = 0x05, .greeting = { @@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_NINJA_BOY, + .trainerClass = FACILITY_CLASS_NINJA_BOY, .name = _("YOSHI"), .teamFlags = 0x05, .greeting = { @@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_F, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_F, .name = _("TINA"), .teamFlags = 0x0A, .greeting = { @@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("COREY"), .teamFlags = 0x41, .greeting = { @@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_FISHERMAN, + .trainerClass = FACILITY_CLASS_FISHERMAN, .name = _("GORDON"), .teamFlags = 0x01, .greeting = { @@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_TUBER_F, + .trainerClass = FACILITY_CLASS_TUBER_F, .name = _("ANN"), .teamFlags = 0x02, .greeting = { @@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_F, + .trainerClass = FACILITY_CLASS_POKEFAN_F, .name = _("JULIA"), .teamFlags = 0x42, .greeting = { @@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("GREGORY"), .teamFlags = 0x01, .greeting = { @@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CAMPER, + .trainerClass = FACILITY_CLASS_CAMPER, .name = _("KEITH"), .teamFlags = 0x01, .greeting = { @@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .name = _("KENDRA"), .teamFlags = 0x0A, .greeting = { @@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HIKER, + .trainerClass = FACILITY_CLASS_HIKER, .name = _("DEV"), .teamFlags = 0x01, .greeting = { @@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("CASSIE"), .teamFlags = 0x0A, .greeting = { @@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_M, + .trainerClass = FACILITY_CLASS_PSYCHIC_M, .name = _("JULIAN"), .teamFlags = 0x05, .greeting = { @@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LASS, + .trainerClass = FACILITY_CLASS_LASS, .name = _("JOYCE"), .teamFlags = 0x02, .greeting = { @@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("LES"), .teamFlags = 0x01, .greeting = { @@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RICH_BOY, + .trainerClass = FACILITY_CLASS_RICH_BOY, .name = _("CLINTON"), .teamFlags = 0x01, .greeting = { @@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_CATCHER, + .trainerClass = FACILITY_CLASS_BUG_CATCHER, .name = _("LEWIS"), .teamFlags = 0x01, .greeting = { @@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PICNICKER, + .trainerClass = FACILITY_CLASS_PICNICKER, .name = _("RACHAEL"), .teamFlags = 0x02, .greeting = { @@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("HAROLD"), .teamFlags = 0x09, .greeting = { @@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_TUBER_M, + .trainerClass = FACILITY_CLASS_TUBER_M, .name = _("KIPP"), .teamFlags = 0x01, .greeting = { @@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_KINDLER, + .trainerClass = FACILITY_CLASS_KINDLER, .name = _("IRWIN"), .teamFlags = 0x05, .greeting = { @@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_F, + .trainerClass = FACILITY_CLASS_PSYCHIC_F, .name = _("EILEEN"), .teamFlags = 0x0A, .greeting = { @@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_F, + .trainerClass = FACILITY_CLASS_SWIMMER_F, .name = _("ANNE"), .teamFlags = 0x02, .greeting = { @@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .name = _("RUTH"), .teamFlags = 0x06, .greeting = { @@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMANIAC, + .trainerClass = FACILITY_CLASS_POKEMANIAC, .name = _("JEREMY"), .teamFlags = 0x40, .greeting = { @@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SAILOR, + .trainerClass = FACILITY_CLASS_SAILOR, .name = _("TREVOR"), .teamFlags = 0x09, .greeting = { @@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F, .name = _("COLETTE"), .teamFlags = 0x06, .greeting = { @@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HEX_MANIAC, + .trainerClass = FACILITY_CLASS_HEX_MANIAC, .name = _("PAULA"), .teamFlags = 0x42, .greeting = { @@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUIN_MANIAC, + .trainerClass = FACILITY_CLASS_RUIN_MANIAC, .name = _("STANLY"), .teamFlags = 0x41, .greeting = { @@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("TROY"), .teamFlags = 0x09, .greeting = { @@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_M, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_M, .name = _("ED"), .teamFlags = 0x08, .greeting = { @@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F, .name = _("ELLEN"), .teamFlags = 0x04, .greeting = { @@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_M, + .trainerClass = FACILITY_CLASS_SWIMMER_M, .name = _("ARNIE"), .teamFlags = 0x09, .greeting = { @@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .name = _("HAL"), .teamFlags = 0x09, .greeting = { @@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("LAUREN"), .teamFlags = 0x06, .greeting = { @@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_AROMA_LADY, + .trainerClass = FACILITY_CLASS_AROMA_LADY, .name = _("STACY"), .teamFlags = 0x06, .greeting = { @@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("DARYL"), .teamFlags = 0x81, .greeting = { @@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .name = _("KATHY"), .teamFlags = 0x04, .greeting = { @@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M, .name = _("HARRIS"), .teamFlags = 0x0C, .greeting = { @@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_M, + .trainerClass = FACILITY_CLASS_POKEFAN_M, .name = _("GLENN"), .teamFlags = 0x80, .greeting = { @@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .name = _("NICO"), .teamFlags = 0x04, .greeting = { @@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M, .name = _("BAILEY"), .teamFlags = 0x41, .greeting = { @@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PARASOL_LADY, + .trainerClass = FACILITY_CLASS_PARASOL_LADY, .name = _("ABBIE"), .teamFlags = 0x08, .greeting = { @@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CAMPER, + .trainerClass = FACILITY_CLASS_CAMPER, .name = _("AL"), .teamFlags = 0x0C, .greeting = { @@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_F, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_F, .name = _("PEGGY"), .teamFlags = 0x42, .greeting = { @@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("NAOMI"), .teamFlags = 0x04, .greeting = { @@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_NINJA_BOY, + .trainerClass = FACILITY_CLASS_NINJA_BOY, .name = _("KENJI"), .teamFlags = 0x0C, .greeting = { @@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .name = _("ROSS"), .teamFlags = 0x01, .greeting = { @@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F, .name = _("EDNA"), .teamFlags = 0x02, .greeting = { @@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUIN_MANIAC, + .trainerClass = FACILITY_CLASS_RUIN_MANIAC, .name = _("ANTON"), .teamFlags = 0x41, .greeting = { @@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_M, + .trainerClass = FACILITY_CLASS_SWIMMER_M, .name = _("MITCH"), .teamFlags = 0x81, .greeting = { @@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HEX_MANIAC, + .trainerClass = FACILITY_CLASS_HEX_MANIAC, .name = _("ROD"), .teamFlags = 0x42, .greeting = { @@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .name = _("RICH"), .teamFlags = 0x01, .greeting = { @@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_M, + .trainerClass = FACILITY_CLASS_POKEFAN_M, .name = _("DANIEL"), .teamFlags = 0x80, .greeting = { @@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_F, + .trainerClass = FACILITY_CLASS_PSYCHIC_F, .name = _("GLORIA"), .teamFlags = 0x82, .greeting = { @@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("NELSON"), .teamFlags = 0x01, .greeting = { @@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_KINDLER, + .trainerClass = FACILITY_CLASS_KINDLER, .name = _("FERRIS"), .teamFlags = 0x41, .greeting = { @@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_AROMA_LADY, + .trainerClass = FACILITY_CLASS_AROMA_LADY, .name = _("AMANDA"), .teamFlags = 0x82, .greeting = { @@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("MASON"), .teamFlags = 0x10, .greeting = { @@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_DRAGON_TAMER, + .trainerClass = FACILITY_CLASS_DRAGON_TAMER, .name = _("NATE"), .teamFlags = 0x10, .greeting = { @@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LASS, + .trainerClass = FACILITY_CLASS_LASS, .name = _("MIRIAM"), .teamFlags = 0x82, .greeting = { @@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMANIAC, + .trainerClass = FACILITY_CLASS_POKEMANIAC, .name = _("THEO"), .teamFlags = 0x40, .greeting = { @@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .name = _("PAMELA"), .teamFlags = 0x10, .greeting = { @@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_F, + .trainerClass = FACILITY_CLASS_POKEFAN_F, .name = _("ALISSA"), .teamFlags = 0x20, .greeting = { @@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("ARTHUR"), .teamFlags = 0x20, .greeting = { @@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_F, + .trainerClass = FACILITY_CLASS_SWIMMER_F, .name = _("MARCY"), .teamFlags = 0x82, .greeting = { @@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_M, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_M, .name = _("MILLER"), .teamFlags = 0x10, .greeting = { @@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BIRD_KEEPER, + .trainerClass = FACILITY_CLASS_BIRD_KEEPER, .name = _("OLIVER"), .teamFlags = 0x11, .greeting = { @@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .name = _("MOLLY"), .teamFlags = 0x12, .greeting = { @@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("JASON"), .teamFlags = 0x40, .greeting = { @@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("AVA"), .teamFlags = 0x20, .greeting = { @@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_FISHERMAN, + .trainerClass = FACILITY_CLASS_FISHERMAN, .name = _("HANK"), .teamFlags = 0x10, .greeting = { @@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SAILOR, + .trainerClass = FACILITY_CLASS_SAILOR, .name = _("PETER"), .teamFlags = 0x20, .greeting = { @@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_F, + .trainerClass = FACILITY_CLASS_EXPERT_F, .name = _("MINDY"), .teamFlags = 0x20, .greeting = { @@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("DWIGHT"), .teamFlags = 0x11, .greeting = { @@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F, .name = _("REENA"), .teamFlags = 0x12, .greeting = { @@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PARASOL_LADY, + .trainerClass = FACILITY_CLASS_PARASOL_LADY, .name = _("MEGAN"), .teamFlags = 0x10, .greeting = { @@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .name = _("SIERRA"), .teamFlags = 0x04, .greeting = { @@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M, .name = _("ARNOLD"), .teamFlags = 0x08, .greeting = { @@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BLACK_BELT, + .trainerClass = FACILITY_CLASS_BLACK_BELT, .name = _("XIN"), .teamFlags = 0x04, .greeting = { @@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_F, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_F, .name = _("KELLY"), .teamFlags = 0x02, .greeting = { @@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("VANCE"), .teamFlags = 0x80, .greeting = { @@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("TOBY"), .teamFlags = 0x01, .greeting = { @@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("NORTON"), .teamFlags = 0x20, .greeting = { @@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("ZOE"), .teamFlags = 0x02, .greeting = { @@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("EMMA"), .teamFlags = 0x20, .greeting = { @@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HIKER, + .trainerClass = FACILITY_CLASS_HIKER, .name = _("VINCE"), .teamFlags = 0x04, .greeting = { @@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_M, + .trainerClass = FACILITY_CLASS_EXPERT_M, .name = _("MARV"), .teamFlags = 0x10, .greeting = { @@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M, .name = _("TODD"), .teamFlags = 0x40, .greeting = { @@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("GAVIN"), .teamFlags = 0x01, .greeting = { @@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_M, + .trainerClass = FACILITY_CLASS_PSYCHIC_M, .name = _("QUINN"), .teamFlags = 0x08, .greeting = { @@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_F, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_F, .name = _("JENN"), .teamFlags = 0x02, .greeting = { @@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_M, + .trainerClass = FACILITY_CLASS_EXPERT_M, .name = _("JOEL"), .teamFlags = 0x10, .greeting = { @@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_DRAGON_TAMER, + .trainerClass = FACILITY_CLASS_DRAGON_TAMER, .name = _("KYLE"), .teamFlags = 0x0C, .greeting = { @@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_M, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_M, .name = _("BRET"), .teamFlags = 0x01, .greeting = { @@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_F, + .trainerClass = FACILITY_CLASS_EXPERT_F, .name = _("CARRIE"), .teamFlags = 0x10, .greeting = { @@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LADY, + .trainerClass = FACILITY_CLASS_LADY, .name = _("GILLIAN"), .teamFlags = 0x02, .greeting = { diff --git a/src/data/battle_tower/trainers_de.h b/src/data/battle_tower/trainers_de.h index 86182da9d..db226c6a6 100644 --- a/src/data/battle_tower/trainers_de.h +++ b/src/data/battle_tower/trainers_de.h @@ -1,7 +1,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = { { - .trainerClass = TRAINER_CLASS_YOUNGSTER, + .trainerClass = FACILITY_CLASS_YOUNGSTER, .name = _("ALWIN"), .teamFlags = 0x01, .greeting = { @@ -16,7 +16,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BIRD_KEEPER, + .trainerClass = FACILITY_CLASS_BIRD_KEEPER, .name = _("DIRK"), .teamFlags = 0x01, .greeting = { @@ -31,7 +31,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LADY, + .trainerClass = FACILITY_CLASS_LADY, .name = _("SIBILLE"), .teamFlags = 0x02, .greeting = { @@ -46,7 +46,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BLACK_BELT, + .trainerClass = FACILITY_CLASS_BLACK_BELT, .name = _("OLAF"), .teamFlags = 0x05, .greeting = { @@ -61,7 +61,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_NINJA_BOY, + .trainerClass = FACILITY_CLASS_NINJA_BOY, .name = _("JOST"), .teamFlags = 0x05, .greeting = { @@ -76,7 +76,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_F, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_F, .name = _("TINA"), .teamFlags = 0x0A, .greeting = { @@ -91,7 +91,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("HAJO"), .teamFlags = 0x41, .greeting = { @@ -106,7 +106,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_FISHERMAN, + .trainerClass = FACILITY_CLASS_FISHERMAN, .name = _("GEORG"), .teamFlags = 0x01, .greeting = { @@ -121,7 +121,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_TUBER_F, + .trainerClass = FACILITY_CLASS_TUBER_F, .name = _("ANNE"), .teamFlags = 0x02, .greeting = { @@ -136,7 +136,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_F, + .trainerClass = FACILITY_CLASS_POKEFAN_F, .name = _("JULIA"), .teamFlags = 0x42, .greeting = { @@ -151,7 +151,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("JOHANN"), .teamFlags = 0x01, .greeting = { @@ -166,7 +166,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CAMPER, + .trainerClass = FACILITY_CLASS_CAMPER, .name = _("KARL"), .teamFlags = 0x01, .greeting = { @@ -181,7 +181,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .name = _("KENDRA"), .teamFlags = 0x0A, .greeting = { @@ -196,7 +196,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HIKER, + .trainerClass = FACILITY_CLASS_HIKER, .name = _("DAVID"), .teamFlags = 0x01, .greeting = { @@ -211,7 +211,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("KEA"), .teamFlags = 0x0A, .greeting = { @@ -226,7 +226,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_M, + .trainerClass = FACILITY_CLASS_PSYCHIC_M, .name = _("JULIAN"), .teamFlags = 0x05, .greeting = { @@ -241,7 +241,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LASS, + .trainerClass = FACILITY_CLASS_LASS, .name = _("JOSI"), .teamFlags = 0x02, .greeting = { @@ -256,7 +256,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("LEIF"), .teamFlags = 0x01, .greeting = { @@ -271,7 +271,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RICH_BOY, + .trainerClass = FACILITY_CLASS_RICH_BOY, .name = _("INGO"), .teamFlags = 0x01, .greeting = { @@ -286,7 +286,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_CATCHER, + .trainerClass = FACILITY_CLASS_BUG_CATCHER, .name = _("LUDWIG"), .teamFlags = 0x01, .greeting = { @@ -301,7 +301,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PICNICKER, + .trainerClass = FACILITY_CLASS_PICNICKER, .name = _("RAJA"), .teamFlags = 0x02, .greeting = { @@ -316,7 +316,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("HARALD"), .teamFlags = 0x09, .greeting = { @@ -331,7 +331,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_TUBER_M, + .trainerClass = FACILITY_CLASS_TUBER_M, .name = _("KIM"), .teamFlags = 0x01, .greeting = { @@ -346,7 +346,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_KINDLER, + .trainerClass = FACILITY_CLASS_KINDLER, .name = _("ERWIN"), .teamFlags = 0x05, .greeting = { @@ -361,7 +361,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_F, + .trainerClass = FACILITY_CLASS_PSYCHIC_F, .name = _("EIKA"), .teamFlags = 0x0A, .greeting = { @@ -376,7 +376,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_F, + .trainerClass = FACILITY_CLASS_SWIMMER_F, .name = _("ANNINA"), .teamFlags = 0x02, .greeting = { @@ -391,7 +391,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .name = _("RUTH"), .teamFlags = 0x06, .greeting = { @@ -406,7 +406,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMANIAC, + .trainerClass = FACILITY_CLASS_POKEMANIAC, .name = _("JENS"), .teamFlags = 0x40, .greeting = { @@ -421,7 +421,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SAILOR, + .trainerClass = FACILITY_CLASS_SAILOR, .name = _("TITUS"), .teamFlags = 0x09, .greeting = { @@ -436,7 +436,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F, .name = _("NICOLA"), .teamFlags = 0x06, .greeting = { @@ -451,7 +451,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HEX_MANIAC, + .trainerClass = FACILITY_CLASS_HEX_MANIAC, .name = _("PAULA"), .teamFlags = 0x42, .greeting = { @@ -466,7 +466,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUIN_MANIAC, + .trainerClass = FACILITY_CLASS_RUIN_MANIAC, .name = _("SÖREN"), .teamFlags = 0x41, .greeting = { @@ -481,7 +481,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("RAINER"), .teamFlags = 0x09, .greeting = { @@ -496,7 +496,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_M, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_M, .name = _("FABIAN"), .teamFlags = 0x08, .greeting = { @@ -511,7 +511,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F, .name = _("ELLEN"), .teamFlags = 0x04, .greeting = { @@ -526,7 +526,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_M, + .trainerClass = FACILITY_CLASS_SWIMMER_M, .name = _("ARNIE"), .teamFlags = 0x09, .greeting = { @@ -541,7 +541,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .name = _("HARDI"), .teamFlags = 0x09, .greeting = { @@ -556,7 +556,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("LINA"), .teamFlags = 0x06, .greeting = { @@ -571,7 +571,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_AROMA_LADY, + .trainerClass = FACILITY_CLASS_AROMA_LADY, .name = _("SELINA"), .teamFlags = 0x06, .greeting = { @@ -586,7 +586,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("DANTE"), .teamFlags = 0x81, .greeting = { @@ -601,7 +601,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .name = _("KATJA"), .teamFlags = 0x04, .greeting = { @@ -616,7 +616,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M, .name = _("HORST"), .teamFlags = 0x0C, .greeting = { @@ -631,7 +631,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_M, + .trainerClass = FACILITY_CLASS_POKEFAN_M, .name = _("GERRIT"), .teamFlags = 0x80, .greeting = { @@ -646,7 +646,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .name = _("NIKO"), .teamFlags = 0x04, .greeting = { @@ -661,7 +661,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M, .name = _("BALDO"), .teamFlags = 0x41, .greeting = { @@ -676,7 +676,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PARASOL_LADY, + .trainerClass = FACILITY_CLASS_PARASOL_LADY, .name = _("ALMA"), .teamFlags = 0x08, .greeting = { @@ -691,7 +691,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CAMPER, + .trainerClass = FACILITY_CLASS_CAMPER, .name = _("ADAM"), .teamFlags = 0x0C, .greeting = { @@ -706,7 +706,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SCHOOL_KID_F, + .trainerClass = FACILITY_CLASS_SCHOOL_KID_F, .name = _("GRETE"), .teamFlags = 0x42, .greeting = { @@ -721,7 +721,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("NAOMI"), .teamFlags = 0x04, .greeting = { @@ -736,7 +736,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_NINJA_BOY, + .trainerClass = FACILITY_CLASS_NINJA_BOY, .name = _("KENO"), .teamFlags = 0x0C, .greeting = { @@ -751,7 +751,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_M, .name = _("REMUS"), .teamFlags = 0x01, .greeting = { @@ -766,7 +766,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_F, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_F, .name = _("EDITH"), .teamFlags = 0x02, .greeting = { @@ -781,7 +781,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUIN_MANIAC, + .trainerClass = FACILITY_CLASS_RUIN_MANIAC, .name = _("ANTON"), .teamFlags = 0x41, .greeting = { @@ -796,7 +796,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_M, + .trainerClass = FACILITY_CLASS_SWIMMER_M, .name = _("MALTE"), .teamFlags = 0x81, .greeting = { @@ -811,7 +811,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HEX_MANIAC, + .trainerClass = FACILITY_CLASS_HEX_MANIAC, .name = _("RAOUL"), .teamFlags = 0x42, .greeting = { @@ -826,7 +826,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M, .name = _("RICK"), .teamFlags = 0x01, .greeting = { @@ -841,7 +841,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_M, + .trainerClass = FACILITY_CLASS_POKEFAN_M, .name = _("DENNIS"), .teamFlags = 0x80, .greeting = { @@ -856,7 +856,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_F, + .trainerClass = FACILITY_CLASS_PSYCHIC_F, .name = _("GLORIA"), .teamFlags = 0x82, .greeting = { @@ -871,7 +871,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("NINO"), .teamFlags = 0x01, .greeting = { @@ -886,7 +886,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_KINDLER, + .trainerClass = FACILITY_CLASS_KINDLER, .name = _("FIETE"), .teamFlags = 0x41, .greeting = { @@ -901,7 +901,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_AROMA_LADY, + .trainerClass = FACILITY_CLASS_AROMA_LADY, .name = _("AMANDA"), .teamFlags = 0x82, .greeting = { @@ -916,7 +916,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("MAREK"), .teamFlags = 0x10, .greeting = { @@ -931,7 +931,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_DRAGON_TAMER, + .trainerClass = FACILITY_CLASS_DRAGON_TAMER, .name = _("NATHAN"), .teamFlags = 0x10, .greeting = { @@ -946,7 +946,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LASS, + .trainerClass = FACILITY_CLASS_LASS, .name = _("MIRIAM"), .teamFlags = 0x82, .greeting = { @@ -961,7 +961,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMANIAC, + .trainerClass = FACILITY_CLASS_POKEMANIAC, .name = _("THEO"), .teamFlags = 0x40, .greeting = { @@ -976,7 +976,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_F, .name = _("PIA"), .teamFlags = 0x10, .greeting = { @@ -991,7 +991,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEFAN_F, + .trainerClass = FACILITY_CLASS_POKEFAN_F, .name = _("ALISSA"), .teamFlags = 0x20, .greeting = { @@ -1006,7 +1006,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("ARTUR"), .teamFlags = 0x20, .greeting = { @@ -1021,7 +1021,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMER_F, + .trainerClass = FACILITY_CLASS_SWIMMER_F, .name = _("MAJA"), .teamFlags = 0x82, .greeting = { @@ -1036,7 +1036,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_M, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_M, .name = _("MARIUS"), .teamFlags = 0x10, .greeting = { @@ -1051,7 +1051,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BIRD_KEEPER, + .trainerClass = FACILITY_CLASS_BIRD_KEEPER, .name = _("OLIVER"), .teamFlags = 0x11, .greeting = { @@ -1066,7 +1066,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_CYCLING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_CYCLING_TRIATHLETE_F, .name = _("MOLLY"), .teamFlags = 0x12, .greeting = { @@ -1081,7 +1081,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("JÖRG"), .teamFlags = 0x40, .greeting = { @@ -1096,7 +1096,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("ANKE"), .teamFlags = 0x20, .greeting = { @@ -1111,7 +1111,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_FISHERMAN, + .trainerClass = FACILITY_CLASS_FISHERMAN, .name = _("HANS"), .teamFlags = 0x10, .greeting = { @@ -1126,7 +1126,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SAILOR, + .trainerClass = FACILITY_CLASS_SAILOR, .name = _("PETER"), .teamFlags = 0x20, .greeting = { @@ -1141,7 +1141,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_F, + .trainerClass = FACILITY_CLASS_EXPERT_F, .name = _("MARA"), .teamFlags = 0x20, .greeting = { @@ -1156,7 +1156,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BUG_MANIAC, + .trainerClass = FACILITY_CLASS_BUG_MANIAC, .name = _("DARIUS"), .teamFlags = 0x11, .greeting = { @@ -1171,7 +1171,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_F, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_F, .name = _("REGINA"), .teamFlags = 0x12, .greeting = { @@ -1186,7 +1186,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PARASOL_LADY, + .trainerClass = FACILITY_CLASS_PARASOL_LADY, .name = _("MAIKE"), .teamFlags = 0x10, .greeting = { @@ -1201,7 +1201,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_RUNNING_TRIATHLETE_F, + .trainerClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F, .name = _("SANDRA"), .teamFlags = 0x04, .greeting = { @@ -1216,7 +1216,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_RANGER_M, + .trainerClass = FACILITY_CLASS_POKEMON_RANGER_M, .name = _("ARNOLD"), .teamFlags = 0x08, .greeting = { @@ -1231,7 +1231,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BLACK_BELT, + .trainerClass = FACILITY_CLASS_BLACK_BELT, .name = _("XENO"), .teamFlags = 0x04, .greeting = { @@ -1246,7 +1246,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_F, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_F, .name = _("KARLA"), .teamFlags = 0x02, .greeting = { @@ -1261,7 +1261,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COLLECTOR, + .trainerClass = FACILITY_CLASS_COLLECTOR, .name = _("VOLKER"), .teamFlags = 0x80, .greeting = { @@ -1276,7 +1276,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_SWIMMING_TRIATHLETE_M, + .trainerClass = FACILITY_CLASS_SWIMMING_TRIATHLETE_M, .name = _("TOBIAS"), .teamFlags = 0x01, .greeting = { @@ -1291,7 +1291,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GENTLEMAN, + .trainerClass = FACILITY_CLASS_GENTLEMAN, .name = _("NORBERT"), .teamFlags = 0x20, .greeting = { @@ -1306,7 +1306,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BATTLE_GIRL, + .trainerClass = FACILITY_CLASS_BATTLE_GIRL, .name = _("ZITA"), .teamFlags = 0x02, .greeting = { @@ -1321,7 +1321,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_BEAUTY, + .trainerClass = FACILITY_CLASS_BEAUTY, .name = _("ELKE"), .teamFlags = 0x20, .greeting = { @@ -1336,7 +1336,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_HIKER, + .trainerClass = FACILITY_CLASS_HIKER, .name = _("VITUS"), .teamFlags = 0x04, .greeting = { @@ -1351,7 +1351,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_M, + .trainerClass = FACILITY_CLASS_EXPERT_M, .name = _("MALTE"), .teamFlags = 0x10, .greeting = { @@ -1366,7 +1366,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_POKEMON_BREEDER_M, + .trainerClass = FACILITY_CLASS_POKEMON_BREEDER_M, .name = _("TIM"), .teamFlags = 0x40, .greeting = { @@ -1381,7 +1381,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_GUITARIST, + .trainerClass = FACILITY_CLASS_GUITARIST, .name = _("GAVIN"), .teamFlags = 0x01, .greeting = { @@ -1396,7 +1396,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_PSYCHIC_M, + .trainerClass = FACILITY_CLASS_PSYCHIC_M, .name = _("RALF"), .teamFlags = 0x08, .greeting = { @@ -1411,7 +1411,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_F, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_F, .name = _("JENNY"), .teamFlags = 0x02, .greeting = { @@ -1426,7 +1426,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_M, + .trainerClass = FACILITY_CLASS_EXPERT_M, .name = _("JOEL"), .teamFlags = 0x10, .greeting = { @@ -1441,7 +1441,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_DRAGON_TAMER, + .trainerClass = FACILITY_CLASS_DRAGON_TAMER, .name = _("KOLJA"), .teamFlags = 0x0C, .greeting = { @@ -1456,7 +1456,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_COOL_TRAINER_M, + .trainerClass = FACILITY_CLASS_COOL_TRAINER_M, .name = _("BILL"), .teamFlags = 0x01, .greeting = { @@ -1471,7 +1471,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_EXPERT_F, + .trainerClass = FACILITY_CLASS_EXPERT_F, .name = _("CALLA"), .teamFlags = 0x10, .greeting = { @@ -1486,7 +1486,7 @@ const struct BattleTowerTrainer gBattleTowerTrainers[] = }, }, { - .trainerClass = TRAINER_CLASS_LADY, + .trainerClass = FACILITY_CLASS_LADY, .name = _("GESA"), .teamFlags = 0x02, .greeting = { diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index c86e795c4..d03038674 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -2,8 +2,8 @@ // -#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H -#define POKERUBY_TRAINER_CLASS_LOOKUPS_H +#ifndef POKERUBY_FACILITY_CLASS_LOOKUPS_H +#define POKERUBY_FACILITY_CLASS_LOOKUPS_H const u8 gTrainerClassToPicIndex[] = { TRAINER_PIC_ARCHIE, // AQUA_LEADER @@ -86,83 +86,83 @@ const u8 gTrainerClassToPicIndex[] = { }; const u8 gTrainerClassToNameIndex[] = { - TRAINER_CLASS_NAME_AQUA_LEADER, // AQUA_LEADER - TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_M - TRAINER_CLASS_NAME_TEAM_AQUA, // TEAM_AQUA_F - TRAINER_CLASS_NAME_AROMA_LADY, // AROMA_LADY - TRAINER_CLASS_NAME_RUIN_MANIAC, // RUIN_MANIAC - TRAINER_CLASS_NAME_INTERVIEWER, // INTERVIEWER - TRAINER_CLASS_NAME_TUBER_F, // TUBER_F - TRAINER_CLASS_NAME_TUBER_M, // TUBER_M - TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_M - TRAINER_CLASS_NAME_COOL_TRAINER, // COOL_TRAINER_F - TRAINER_CLASS_NAME_HEX_MANIAC, // HEX_MANIAC - TRAINER_CLASS_NAME_LADY, // LADY - TRAINER_CLASS_NAME_BEAUTY, // BEAUTY - TRAINER_CLASS_NAME_RICH_BOY, // RICH_BOY - TRAINER_CLASS_NAME_POKEMANIAC, // POKEMANIAC - TRAINER_CLASS_NAME_SWIMMER_M, // SWIMMER_M - TRAINER_CLASS_NAME_BLACK_BELT, // BLACK_BELT - TRAINER_CLASS_NAME_GUITARIST, // GUITARIST - TRAINER_CLASS_NAME_KINDLER, // KINDLER - TRAINER_CLASS_NAME_CAMPER, // CAMPER - TRAINER_CLASS_NAME_BUG_MANIAC, // BUG_MANIAC - TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_M - TRAINER_CLASS_NAME_PSYCHIC, // PSYCHIC_F - TRAINER_CLASS_NAME_GENTLEMAN, // GENTLEMAN - TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_M - TRAINER_CLASS_NAME_ELITE_FOUR, // ELITE_FOUR_F - TRAINER_CLASS_NAME_LEADER, // LEADER_F - TRAINER_CLASS_NAME_LEADER, // LEADER_M - TRAINER_CLASS_NAME_LEADER, // LEADER_MF - TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_M - TRAINER_CLASS_NAME_SCHOOL_KID, // SCHOOL_KID_F - TRAINER_CLASS_NAME_SR_AND_JR, // SR_AND_JR - TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_M - TRAINER_CLASS_NAME_POKEFAN, // POKEFAN_F - TRAINER_CLASS_NAME_EXPERT, // EXPERT_M - TRAINER_CLASS_NAME_EXPERT, // EXPERT_F - TRAINER_CLASS_NAME_YOUNGSTER, // YOUNGSTER - TRAINER_CLASS_NAME_CHAMPION, // CHAMPION - TRAINER_CLASS_NAME_FISHERMAN, // FISHERMAN - TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // CYCLING_TRIATHLETE_F - TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // RUNNING_TRIATHLETE_F - TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_M - TRAINER_CLASS_NAME_TRIATHLETE, // SWIMMING_TRIATHLETE_F - TRAINER_CLASS_NAME_DRAGON_TAMER, // DRAGON_TAMER - TRAINER_CLASS_NAME_BIRD_KEEPER, // BIRD_KEEPER - TRAINER_CLASS_NAME_NINJA_BOY, // NINJA_BOY - TRAINER_CLASS_NAME_BATTLE_GIRL, // BATTLE_GIRL - TRAINER_CLASS_NAME_PARASOL_LADY, // PARASOL_LADY - TRAINER_CLASS_NAME_SWIMMER_F, // SWIMMER_F - TRAINER_CLASS_NAME_PICNICKER, // PICNICKER - TRAINER_CLASS_NAME_TWINS, // TWINS - TRAINER_CLASS_NAME_SAILOR, // SAILOR - TRAINER_CLASS_NAME_BOARDER, // BOARDER_1 - TRAINER_CLASS_NAME_BOARDER, // BOARDER_2 - TRAINER_CLASS_NAME_COLLECTOR, // COLLECTOR - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // WALLY - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_1 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_2 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // BRENDAN_3 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_1 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_2 - TRAINER_CLASS_NAME_POKEMON_TRAINER_3, // MAY_3 - TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_M - TRAINER_CLASS_NAME_POKEMON_BREEDER, // POKEMON_BREEDER_F - TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_M - TRAINER_CLASS_NAME_POKEMON_RANGER, // POKEMON_RANGER_F - TRAINER_CLASS_NAME_MAGMA_LEADER, // MAGMA_LEADER - TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_M - TRAINER_CLASS_NAME_TEAM_MAGMA, // TEAM_MAGMA_F - TRAINER_CLASS_NAME_LASS, // LASS - TRAINER_CLASS_NAME_BUG_CATCHER, // BUG_CATCHER - TRAINER_CLASS_NAME_HIKER, // HIKER - TRAINER_CLASS_NAME_YOUNG_COUPLE, // YOUNG_COUPLE - TRAINER_CLASS_NAME_OLD_COUPLE, // OLD_COUPLE - TRAINER_CLASS_NAME_SIS_AND_BRO // SIS_AND_BRO + TRAINER_CLASS_AQUA_LEADER, // AQUA_LEADER + TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_M + TRAINER_CLASS_TEAM_AQUA, // TEAM_AQUA_F + TRAINER_CLASS_AROMA_LADY, // AROMA_LADY + TRAINER_CLASS_RUIN_MANIAC, // RUIN_MANIAC + TRAINER_CLASS_INTERVIEWER, // INTERVIEWER + TRAINER_CLASS_TUBER_F, // TUBER_F + TRAINER_CLASS_TUBER_M, // TUBER_M + TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_M + TRAINER_CLASS_COOL_TRAINER, // COOL_TRAINER_F + TRAINER_CLASS_HEX_MANIAC, // HEX_MANIAC + TRAINER_CLASS_LADY, // LADY + TRAINER_CLASS_BEAUTY, // BEAUTY + TRAINER_CLASS_RICH_BOY, // RICH_BOY + TRAINER_CLASS_POKEMANIAC, // POKEMANIAC + TRAINER_CLASS_SWIMMER_M, // SWIMMER_M + TRAINER_CLASS_BLACK_BELT, // BLACK_BELT + TRAINER_CLASS_GUITARIST, // GUITARIST + TRAINER_CLASS_KINDLER, // KINDLER + TRAINER_CLASS_CAMPER, // CAMPER + TRAINER_CLASS_BUG_MANIAC, // BUG_MANIAC + TRAINER_CLASS_PSYCHIC, // PSYCHIC_M + TRAINER_CLASS_PSYCHIC, // PSYCHIC_F + TRAINER_CLASS_GENTLEMAN, // GENTLEMAN + TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_M + TRAINER_CLASS_ELITE_FOUR, // ELITE_FOUR_F + TRAINER_CLASS_LEADER, // LEADER_F + TRAINER_CLASS_LEADER, // LEADER_M + TRAINER_CLASS_LEADER, // LEADER_MF + TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_M + TRAINER_CLASS_SCHOOL_KID, // SCHOOL_KID_F + TRAINER_CLASS_SR_AND_JR, // SR_AND_JR + TRAINER_CLASS_POKEFAN, // POKEFAN_M + TRAINER_CLASS_POKEFAN, // POKEFAN_F + TRAINER_CLASS_EXPERT, // EXPERT_M + TRAINER_CLASS_EXPERT, // EXPERT_F + TRAINER_CLASS_YOUNGSTER, // YOUNGSTER + TRAINER_CLASS_CHAMPION, // CHAMPION + TRAINER_CLASS_FISHERMAN, // FISHERMAN + TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_M + TRAINER_CLASS_TRIATHLETE, // CYCLING_TRIATHLETE_F + TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_M + TRAINER_CLASS_TRIATHLETE, // RUNNING_TRIATHLETE_F + TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_M + TRAINER_CLASS_TRIATHLETE, // SWIMMING_TRIATHLETE_F + TRAINER_CLASS_DRAGON_TAMER, // DRAGON_TAMER + TRAINER_CLASS_BIRD_KEEPER, // BIRD_KEEPER + TRAINER_CLASS_NINJA_BOY, // NINJA_BOY + TRAINER_CLASS_BATTLE_GIRL, // BATTLE_GIRL + TRAINER_CLASS_PARASOL_LADY, // PARASOL_LADY + TRAINER_CLASS_SWIMMER_F, // SWIMMER_F + TRAINER_CLASS_PICNICKER, // PICNICKER + TRAINER_CLASS_TWINS, // TWINS + TRAINER_CLASS_SAILOR, // SAILOR + TRAINER_CLASS_BOARDER, // BOARDER_1 + TRAINER_CLASS_BOARDER, // BOARDER_2 + TRAINER_CLASS_COLLECTOR, // COLLECTOR + TRAINER_CLASS_POKEMON_TRAINER_3, // WALLY + TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_1 + TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_2 + TRAINER_CLASS_POKEMON_TRAINER_3, // BRENDAN_3 + TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_1 + TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_2 + TRAINER_CLASS_POKEMON_TRAINER_3, // MAY_3 + TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_M + TRAINER_CLASS_POKEMON_BREEDER, // POKEMON_BREEDER_F + TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_M + TRAINER_CLASS_POKEMON_RANGER, // POKEMON_RANGER_F + TRAINER_CLASS_MAGMA_LEADER, // MAGMA_LEADER + TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_M + TRAINER_CLASS_TEAM_MAGMA, // TEAM_MAGMA_F + TRAINER_CLASS_LASS, // LASS + TRAINER_CLASS_BUG_CATCHER, // BUG_CATCHER + TRAINER_CLASS_HIKER, // HIKER + TRAINER_CLASS_YOUNG_COUPLE, // YOUNG_COUPLE + TRAINER_CLASS_OLD_COUPLE, // OLD_COUPLE + TRAINER_CLASS_SIS_AND_BRO // SIS_AND_BRO }; -#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H +#endif //POKERUBY_FACILITY_CLASS_LOOKUPS_H diff --git a/src/de_rom_8040FE0.c b/src/de_rom_8040FE0.c index ad1cbf473..c93ef74cd 100644 --- a/src/de_rom_8040FE0.c +++ b/src/de_rom_8040FE0.c @@ -13,7 +13,7 @@ u8 *de_sub_8040FE0(u8 gender) { if (gender) gender++; - gender = TRAINER_CLASS_NAME_SCHOOL_KID; + gender = TRAINER_CLASS_SCHOOL_KID; return gTrainerClassNames[gender]; } @@ -21,7 +21,7 @@ u8 *de_sub_8040FF4(u8 gender) { if (gender) gender++; - gender = TRAINER_CLASS_NAME_POKEMON_TRAINER_3; + gender = TRAINER_CLASS_POKEMON_TRAINER_3; return gTrainerClassNames[gender]; } @@ -29,7 +29,7 @@ u8 *de_sub_804100C(u8 gender) { if (gender) gender++; - gender = TRAINER_CLASS_NAME_LEADER; + gender = TRAINER_CLASS_LEADER; return gTrainerClassNames[gender]; } @@ -50,34 +50,34 @@ u8 *de_sub_8041024(s32 arg0, u32 arg1) case 0x400: nameIndex = GetSecretBaseTrainerNameIndex(); gender = eSecretBaseRecord.gender; - if (nameIndex == TRAINER_CLASS_NAME_SCHOOL_KID) + if (nameIndex == TRAINER_CLASS_SCHOOL_KID) return de_sub_8040FE0(gender); return gTrainerClassNames[nameIndex]; case 0x100: trainerClass = de_sub_81364AC(); nameIndex = get_trainer_class_name_index(); - if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F) + if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F) return de_sub_8040FE0(FEMALE); - if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3) + if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3) return de_sub_8040FF4(FEMALE); return gTrainerClassNames[nameIndex]; case 0x800: trainerClass = de_sub_81364F8(); nameIndex = GetEReaderTrainerClassNameIndex(); - if (trainerClass == TRAINER_CLASS_SCHOOL_KID_F) + if (trainerClass == FACILITY_CLASS_SCHOOL_KID_F) return de_sub_8040FE0(FEMALE); - if (trainerClass == TRAINER_CLASS_MAY_1 || trainerClass == TRAINER_CLASS_MAY_2 || trainerClass == TRAINER_CLASS_MAY_3) + if (trainerClass == FACILITY_CLASS_MAY_1 || trainerClass == FACILITY_CLASS_MAY_2 || trainerClass == FACILITY_CLASS_MAY_3) return de_sub_8040FF4(FEMALE); return gTrainerClassNames[nameIndex]; default: trainer = &gTrainers[arg1]; trainerClass = trainer->trainerClass; local2 = sub_803FC58(arg1); - if (trainerClass == TRAINER_CLASS_LEADER_F) + if (trainerClass == FACILITY_CLASS_LEADER_F) return de_sub_8040FE0(local2); - if (trainerClass == TRAINER_CLASS_BIRD_KEEPER && local2 == FEMALE) + if (trainerClass == FACILITY_CLASS_BIRD_KEEPER && local2 == FEMALE) return de_sub_8040FF4(FEMALE); - if (trainerClass == TRAINER_CLASS_ELITE_FOUR_F) + if (trainerClass == FACILITY_CLASS_ELITE_FOUR_F) { if (gTrainers[arg1].doubleBattle == TRUE) return de_sub_804100C(FEMALE); diff --git a/src/field/battle_tower.c b/src/field/battle_tower.c index 88115d28a..11c05e478 100644 --- a/src/field/battle_tower.c +++ b/src/field/battle_tower.c @@ -103,59 +103,59 @@ static const u16 sBattleTowerHeldItems[] = { #include "../data/battle_tower/level_100_mons.h" static const u8 sMaleTrainerClasses[] = { - TRAINER_CLASS_RUIN_MANIAC, - TRAINER_CLASS_TUBER_M, - TRAINER_CLASS_COOL_TRAINER_M, - TRAINER_CLASS_RICH_BOY, - TRAINER_CLASS_POKEMANIAC, - TRAINER_CLASS_SWIMMER_M, - TRAINER_CLASS_BLACK_BELT, - TRAINER_CLASS_GUITARIST, - TRAINER_CLASS_KINDLER, - TRAINER_CLASS_CAMPER, - TRAINER_CLASS_BUG_MANIAC, - TRAINER_CLASS_PSYCHIC_M, - TRAINER_CLASS_GENTLEMAN, - TRAINER_CLASS_SCHOOL_KID_M, - TRAINER_CLASS_POKEFAN_M, - TRAINER_CLASS_EXPERT_M, - TRAINER_CLASS_YOUNGSTER, - TRAINER_CLASS_FISHERMAN, - TRAINER_CLASS_CYCLING_TRIATHLETE_M, - TRAINER_CLASS_RUNNING_TRIATHLETE_M, - TRAINER_CLASS_SWIMMING_TRIATHLETE_M, - TRAINER_CLASS_DRAGON_TAMER, - TRAINER_CLASS_BIRD_KEEPER, - TRAINER_CLASS_NINJA_BOY, - TRAINER_CLASS_SAILOR, - TRAINER_CLASS_COLLECTOR, - TRAINER_CLASS_POKEMON_BREEDER_M, - TRAINER_CLASS_POKEMON_RANGER_M, - TRAINER_CLASS_BUG_CATCHER, - TRAINER_CLASS_HIKER, + FACILITY_CLASS_RUIN_MANIAC, + FACILITY_CLASS_TUBER_M, + FACILITY_CLASS_COOL_TRAINER_M, + FACILITY_CLASS_RICH_BOY, + FACILITY_CLASS_POKEMANIAC, + FACILITY_CLASS_SWIMMER_M, + FACILITY_CLASS_BLACK_BELT, + FACILITY_CLASS_GUITARIST, + FACILITY_CLASS_KINDLER, + FACILITY_CLASS_CAMPER, + FACILITY_CLASS_BUG_MANIAC, + FACILITY_CLASS_PSYCHIC_M, + FACILITY_CLASS_GENTLEMAN, + FACILITY_CLASS_SCHOOL_KID_M, + FACILITY_CLASS_POKEFAN_M, + FACILITY_CLASS_EXPERT_M, + FACILITY_CLASS_YOUNGSTER, + FACILITY_CLASS_FISHERMAN, + FACILITY_CLASS_CYCLING_TRIATHLETE_M, + FACILITY_CLASS_RUNNING_TRIATHLETE_M, + FACILITY_CLASS_SWIMMING_TRIATHLETE_M, + FACILITY_CLASS_DRAGON_TAMER, + FACILITY_CLASS_BIRD_KEEPER, + FACILITY_CLASS_NINJA_BOY, + FACILITY_CLASS_SAILOR, + FACILITY_CLASS_COLLECTOR, + FACILITY_CLASS_POKEMON_BREEDER_M, + FACILITY_CLASS_POKEMON_RANGER_M, + FACILITY_CLASS_BUG_CATCHER, + FACILITY_CLASS_HIKER, }; static const u8 sFemaleTrainerClasses[] = { - TRAINER_CLASS_AROMA_LADY, - TRAINER_CLASS_TUBER_F, - TRAINER_CLASS_COOL_TRAINER_F, - TRAINER_CLASS_HEX_MANIAC, - TRAINER_CLASS_LADY, - TRAINER_CLASS_BEAUTY, - TRAINER_CLASS_PSYCHIC_F, - TRAINER_CLASS_SCHOOL_KID_F, - TRAINER_CLASS_POKEFAN_F, - TRAINER_CLASS_EXPERT_F, - TRAINER_CLASS_CYCLING_TRIATHLETE_F, - TRAINER_CLASS_RUNNING_TRIATHLETE_F, - TRAINER_CLASS_SWIMMING_TRIATHLETE_F, - TRAINER_CLASS_BATTLE_GIRL, - TRAINER_CLASS_PARASOL_LADY, - TRAINER_CLASS_SWIMMER_F, - TRAINER_CLASS_PICNICKER, - TRAINER_CLASS_POKEMON_BREEDER_F, - TRAINER_CLASS_POKEMON_RANGER_F, - TRAINER_CLASS_LASS, + FACILITY_CLASS_AROMA_LADY, + FACILITY_CLASS_TUBER_F, + FACILITY_CLASS_COOL_TRAINER_F, + FACILITY_CLASS_HEX_MANIAC, + FACILITY_CLASS_LADY, + FACILITY_CLASS_BEAUTY, + FACILITY_CLASS_PSYCHIC_F, + FACILITY_CLASS_SCHOOL_KID_F, + FACILITY_CLASS_POKEFAN_F, + FACILITY_CLASS_EXPERT_F, + FACILITY_CLASS_CYCLING_TRIATHLETE_F, + FACILITY_CLASS_RUNNING_TRIATHLETE_F, + FACILITY_CLASS_SWIMMING_TRIATHLETE_F, + FACILITY_CLASS_BATTLE_GIRL, + FACILITY_CLASS_PARASOL_LADY, + FACILITY_CLASS_SWIMMER_F, + FACILITY_CLASS_PICNICKER, + FACILITY_CLASS_POKEMON_BREEDER_F, + FACILITY_CLASS_POKEMON_RANGER_F, + FACILITY_CLASS_LASS, }; static const u8 sMaleTrainerGfxIds[] = { diff --git a/src/pokemon/pokemon_2.c b/src/pokemon/pokemon_2.c index 37bc2e0ad..1b00ad96e 100644 --- a/src/pokemon/pokemon_2.c +++ b/src/pokemon/pokemon_2.c @@ -84,7 +84,7 @@ u8 sub_803C434(u8 a1) status ^= 1; if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return GetBankByPlayerAI(status); + return GetBankByIdentity(status); if (CountAliveMons(0) > 1) { u8 val; @@ -93,14 +93,14 @@ u8 sub_803C434(u8 a1) val = status ^ 2; else val = status; - return GetBankByPlayerAI(val); + return GetBankByIdentity(val); } else { if ((gAbsentBankFlags & gBitTable[status])) - return GetBankByPlayerAI(status ^ 2); + return GetBankByIdentity(status ^ 2); else - return GetBankByPlayerAI(status); + return GetBankByIdentity(status); } } diff --git a/src/pokemon/pokemon_data.c b/src/pokemon/pokemon_data.c index 82e452158..031f2ea24 100644 --- a/src/pokemon/pokemon_data.c +++ b/src/pokemon/pokemon_data.c @@ -84,9 +84,9 @@ const struct SpriteTemplate gSpriteTemplate_8208288[] = { const u8 gSecretBaseTrainerClasses[][5] = { // male - {TRAINER_CLASS_YOUNGSTER, TRAINER_CLASS_BUG_CATCHER, TRAINER_CLASS_RICH_BOY, TRAINER_CLASS_CAMPER, TRAINER_CLASS_COOL_TRAINER_M}, + {FACILITY_CLASS_YOUNGSTER, FACILITY_CLASS_BUG_CATCHER, FACILITY_CLASS_RICH_BOY, FACILITY_CLASS_CAMPER, FACILITY_CLASS_COOL_TRAINER_M}, // female - {TRAINER_CLASS_LASS, TRAINER_CLASS_SCHOOL_KID_F, TRAINER_CLASS_LADY, TRAINER_CLASS_PICNICKER, TRAINER_CLASS_COOL_TRAINER_F} + {FACILITY_CLASS_LASS, FACILITY_CLASS_SCHOOL_KID_F, FACILITY_CLASS_LADY, FACILITY_CLASS_PICNICKER, FACILITY_CLASS_COOL_TRAINER_F} }; const u8 gUnknown_082082F2[] = { diff --git a/src/rom_8077ABC.c b/src/rom_8077ABC.c index 001cd85f6..2691da859 100644 --- a/src/rom_8077ABC.c +++ b/src/rom_8077ABC.c @@ -823,7 +823,7 @@ u8 GetBankIdentity(u8 slot) return gBanksBySide[slot]; } -u8 GetBankByPlayerAI(u8 slot) +u8 GetBankByIdentity(u8 slot) { u8 i; @@ -1329,35 +1329,27 @@ u32 sub_80792C0(u8 a1, u8 a2, u8 a3, u8 a4) var |= 1 << 18; return var; } - } - else - { - if (a1) - { - if (IsAnimBankSpriteVisible(GetBankByPlayerAI(0))) - var |= 1 << (GetBankByPlayerAI(0) + 16); + } else { + if (a1) { + if (IsAnimBankSpriteVisible(GetBankByIdentity(0))) { + var |= 1 << (GetBankByIdentity(0) + 16); + } } - if (a2) - { - if (IsAnimBankSpriteVisible(GetBankByPlayerAI(2))) - { - shift = GetBankByPlayerAI(2) + 16; + if (a2) { + if (IsAnimBankSpriteVisible(GetBankByIdentity(2))) { + shift = GetBankByIdentity(2) + 16; var |= 1 << shift; } } - if (a3) - { - if (IsAnimBankSpriteVisible(GetBankByPlayerAI(1))) - { - shift = GetBankByPlayerAI(1) + 16; + if (a3) { + if (IsAnimBankSpriteVisible(GetBankByIdentity(1))) { + shift = GetBankByIdentity(1) + 16; var |= 1 << shift; } } - if (a4) - { - if (IsAnimBankSpriteVisible(GetBankByPlayerAI(3))) - { - shift = GetBankByPlayerAI(3) + 16; + if (a4) { + if (IsAnimBankSpriteVisible(GetBankByIdentity(3))) { + shift = GetBankByIdentity(3) + 16; var |= 1 << shift; } } @@ -1372,7 +1364,7 @@ u8 sub_80793A8(u8 a1) u8 unref_sub_80793B0(u8 a1) { - return GetBankByPlayerAI(a1); + return GetBankByIdentity(a1); } void sub_80793C4(struct Sprite *sprite) diff --git a/sym_ewram.txt b/sym_ewram.txt index cffa8396d..bb5d56686 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -71,10 +71,10 @@ gUnknown_02024A76: @ 2024A76 gTurnOrder: @ 2024A7A .space 0x4 -gCurrentMoveTurn: @ 2024A7E +gCurrentTurnActionNumber: @ 2024A7E .space 0x1 -gFightStateTracker: @ 2024A7F +gCurrentActionFuncId: @ 2024A7F .space 0x1 gBattleMons: @ 2024A80 @@ -206,7 +206,7 @@ gUnknown_02024C78: @ 2024C78 gSideAffecting: @ 2024C7A .space 0x6 -gSideTimer: @ 2024C80 +gSideTimers: @ 2024C80 .space 0x18 gStatuses3: @ 2024C98 -- cgit v1.2.3 From 82ab732d673946af609f896dc51639030eb1bd19 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 7 Jan 2018 14:59:16 -0800 Subject: Finish decompiling battle_2 --- asm/battle_2.s | 2619 --------------------------- asm/contest_link_80C2020.s | 16 +- data/battle_scripts_1.s | 4 +- data/data2a.s | 40 +- include/battle.h | 15 +- include/battle_ai.h | 1 + include/battle_message.h | 137 ++ include/constants/battle_constants.h | 37 + include/ewram.h | 5 + include/pokemon.h | 12 + include/roamer.h | 2 + include/tv.h | 1 + src/battle/battle_2.c | 1214 ++++++++++++- src/battle/battle_3.c | 24 +- src/battle/battle_4.c | 69 +- src/battle/battle_controller_linkopponent.c | 8 +- src/battle/battle_controller_linkpartner.c | 8 +- src/battle/battle_controller_opponent.c | 8 +- src/battle/battle_controller_player.c | 34 +- src/battle/battle_controller_safari.c | 14 +- src/battle/battle_controller_wally.c | 14 +- src/battle/reshow_battle_screen.c | 10 +- src/contest.c | 24 +- src/debug/matsuda_debug_menu.c | 12 +- src/field/tv.c | 2 +- src/scene/evolution_scene.c | 24 +- src/unknown_task.c | 8 +- sym_common.txt | 4 +- sym_ewram.txt | 6 +- 29 files changed, 1534 insertions(+), 2838 deletions(-) diff --git a/asm/battle_2.s b/asm/battle_2.s index f985f570b..8a1bd902f 100644 --- a/asm/battle_2.s +++ b/asm/battle_2.s @@ -5,2625 +5,6 @@ .text - thumb_func_start sub_8013B64 -sub_8013B64: @ 8013B64 - push {r4,lr} - ldr r1, _08013B9C @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r0, _08013BA0 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08013BB8 - ldr r1, _08013BA4 @ =gBattleTextBuff1 - ldr r4, _08013BA8 @ =gBattleOutcome - ldrb r0, [r4] - strb r0, [r1] - movs r0, 0 - bl GetBankByIdentity - ldr r1, _08013BAC @ =gBankAttacker - strb r0, [r1] - ldr r1, _08013BB0 @ =gBattlescriptCurrInstr - ldr r0, _08013BB4 @ =gUnknown_081D8E02 - str r0, [r1] - ldrb r1, [r4] - movs r0, 0x7F - ands r0, r1 - strb r0, [r4] - b _08013BBE - .align 2, 0 -_08013B9C: .4byte gCurrentActionFuncId -_08013BA0: .4byte gBattleTypeFlags -_08013BA4: .4byte gBattleTextBuff1 -_08013BA8: .4byte gBattleOutcome -_08013BAC: .4byte gBankAttacker -_08013BB0: .4byte gBattlescriptCurrInstr -_08013BB4: .4byte gUnknown_081D8E02 -_08013BB8: - ldr r1, _08013BCC @ =gBattlescriptCurrInstr - ldr r0, _08013BD0 @ =BattleScript_LocalBattleLost - str r0, [r1] -_08013BBE: - ldr r1, _08013BD4 @ =gBattleMainFunc - ldr r0, _08013BD8 @ =sub_8013C9C - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08013BCC: .4byte gBattlescriptCurrInstr -_08013BD0: .4byte BattleScript_LocalBattleLost -_08013BD4: .4byte gBattleMainFunc -_08013BD8: .4byte sub_8013C9C - thumb_func_end sub_8013B64 - - thumb_func_start sub_8013BDC -sub_8013BDC: @ 8013BDC - push {lr} - ldr r1, _08013C04 @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C08 @ =gProtectStructs - ldr r0, _08013C0C @ =gBankAttacker - ldrb r0, [r0] - lsls r0, 4 - adds r0, r1 - ldrb r0, [r0, 0x1] - lsls r0, 27 - lsrs r0, 30 - cmp r0, 0x1 - beq _08013C18 - cmp r0, 0x2 - beq _08013C28 - ldr r1, _08013C10 @ =gBattlescriptCurrInstr - ldr r0, _08013C14 @ =BattleScript_GotAwaySafely - b _08013C2C - .align 2, 0 -_08013C04: .4byte gCurrentActionFuncId -_08013C08: .4byte gProtectStructs -_08013C0C: .4byte gBankAttacker -_08013C10: .4byte gBattlescriptCurrInstr -_08013C14: .4byte BattleScript_GotAwaySafely -_08013C18: - ldr r1, _08013C20 @ =gBattlescriptCurrInstr - ldr r0, _08013C24 @ =BattleScript_SmokeBallEscape - b _08013C2C - .align 2, 0 -_08013C20: .4byte gBattlescriptCurrInstr -_08013C24: .4byte BattleScript_SmokeBallEscape -_08013C28: - ldr r1, _08013C38 @ =gBattlescriptCurrInstr - ldr r0, _08013C3C @ =BattleScript_RanAwayUsingMonAbility -_08013C2C: - str r0, [r1] - ldr r1, _08013C40 @ =gBattleMainFunc - ldr r0, _08013C44 @ =sub_8013C9C - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08013C38: .4byte gBattlescriptCurrInstr -_08013C3C: .4byte BattleScript_RanAwayUsingMonAbility -_08013C40: .4byte gBattleMainFunc -_08013C44: .4byte sub_8013C9C - thumb_func_end sub_8013BDC - - thumb_func_start sub_8013C48 -sub_8013C48: @ 8013C48 - ldr r1, _08013C7C @ =gCurrentActionFuncId - movs r0, 0 - strb r0, [r1] - ldr r1, _08013C80 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - ldr r2, _08013C84 @ =gBankAttacker - ldrb r0, [r2] - strb r0, [r1, 0x2] - ldr r3, _08013C88 @ =gBattlePartyID - ldrb r0, [r2] - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08013C8C @ =gBattlescriptCurrInstr - ldr r0, _08013C90 @ =BattleScript_WildMonFled - str r0, [r1] - ldr r1, _08013C94 @ =gBattleMainFunc - ldr r0, _08013C98 @ =sub_8013C9C - str r0, [r1] - bx lr - .align 2, 0 -_08013C7C: .4byte gCurrentActionFuncId -_08013C80: .4byte gBattleTextBuff1 -_08013C84: .4byte gBankAttacker -_08013C88: .4byte gBattlePartyID -_08013C8C: .4byte gBattlescriptCurrInstr -_08013C90: .4byte BattleScript_WildMonFled -_08013C94: .4byte gBattleMainFunc -_08013C98: .4byte sub_8013C9C - thumb_func_end sub_8013C48 - - thumb_func_start sub_8013C9C -sub_8013C9C: @ 8013C9C - push {r4-r7,lr} - ldr r0, _08013D00 @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013D7C - ldr r0, _08013D04 @ =gBattleTypeFlags - ldrh r0, [r0] - ldr r1, _08013D08 @ =0x00000b92 - ands r1, r0 - cmp r1, 0 - bne _08013D4C - ldr r2, _08013D0C @ =gActiveBank - strb r1, [r2] - ldr r0, _08013D10 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r1, r0 - bcs _08013D48 - adds r4, r2, 0 - ldr r6, _08013D14 @ =gBattleMons - movs r5, 0x58 - adds r7, r6, 0 - adds r7, 0x30 -_08013CCE: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08013D36 - ldr r2, _08013D18 @ =gBattleResults - ldrh r0, [r2, 0x6] - cmp r0, 0 - bne _08013D1C - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x6] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x8 - bl StringCopy - b _08013D36 - .align 2, 0 -_08013D00: .4byte gCurrentActionFuncId -_08013D04: .4byte gBattleTypeFlags -_08013D08: .4byte 0x00000b92 -_08013D0C: .4byte gActiveBank -_08013D10: .4byte gNoOfAllBanks -_08013D14: .4byte gBattleMons -_08013D18: .4byte gBattleResults -_08013D1C: - ldrb r0, [r4] - muls r0, r5 - adds r0, r6 - ldrh r0, [r0] - strh r0, [r2, 0x26] - ldrb r0, [r4] - adds r1, r0, 0 - muls r1, r5 - adds r1, r7 - adds r0, r2, 0 - adds r0, 0x14 - bl StringCopy -_08013D36: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08013D68 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08013CCE -_08013D48: - bl sub_80BDEC8 -_08013D4C: - movs r0, 0x3 - bl BeginFastPaletteFade - movs r0, 0x5 - bl FadeOutMapMusic - ldr r1, _08013D6C @ =gBattleMainFunc - ldr r0, _08013D70 @ =sub_8013DA8 - str r0, [r1] - ldr r1, _08013D74 @ =gCB2_AfterEvolution - ldr r0, _08013D78 @ =sub_800F808 - str r0, [r1] - b _08013D96 - .align 2, 0 -_08013D68: .4byte gNoOfAllBanks -_08013D6C: .4byte gBattleMainFunc -_08013D70: .4byte sub_8013DA8 -_08013D74: .4byte gCB2_AfterEvolution -_08013D78: .4byte sub_800F808 -_08013D7C: - ldr r0, _08013D9C @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013D96 - ldr r1, _08013DA0 @ =gBattleScriptingCommandsTable - ldr r0, _08013DA4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013D96: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08013D9C: .4byte gBattleExecBuffer -_08013DA0: .4byte gBattleScriptingCommandsTable -_08013DA4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013C9C - - thumb_func_start sub_8013DA8 -sub_8013DA8: @ 8013DA8 - push {lr} - ldr r0, _08013DD0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08013DEA - bl ResetSpriteData - ldr r0, _08013DD4 @ =gLeveledUpInBattle - ldrb r0, [r0] - cmp r0, 0 - beq _08013DCA - ldr r0, _08013DD8 @ =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - beq _08013DE4 -_08013DCA: - ldr r1, _08013DDC @ =gBattleMainFunc - ldr r0, _08013DE0 @ =c4_overworld - b _08013DE8 - .align 2, 0 -_08013DD0: .4byte gPaletteFade -_08013DD4: .4byte gLeveledUpInBattle -_08013DD8: .4byte gBattleOutcome -_08013DDC: .4byte gBattleMainFunc -_08013DE0: .4byte c4_overworld -_08013DE4: - ldr r1, _08013DF0 @ =gBattleMainFunc - ldr r0, _08013DF4 @ =bc_evolution_cutscene -_08013DE8: - str r0, [r1] -_08013DEA: - pop {r0} - bx r0 - .align 2, 0 -_08013DF0: .4byte gBattleMainFunc -_08013DF4: .4byte bc_evolution_cutscene - thumb_func_end sub_8013DA8 - - thumb_func_start bc_evolution_cutscene -bc_evolution_cutscene: @ 8013DF8 - push {r4,r5,lr} - ldr r0, _08013E4C @ =gLeveledUpInBattle - ldrb r1, [r0] - adds r3, r0, 0 - cmp r1, 0 - beq _08013E6E -_08013E04: - movs r5, 0 -_08013E06: - ldrb r2, [r3] - ldr r0, _08013E50 @ =gBitTable - lsls r1, r5, 2 - adds r1, r0 - ldr r1, [r1] - adds r0, r2, 0 - ands r0, r1 - cmp r0, 0 - beq _08013E60 - bics r2, r1 - strb r2, [r3] - movs r0, 0x64 - adds r1, r5, 0 - muls r1, r0 - ldr r0, _08013E54 @ =gPlayerParty - adds r4, r1, r0 - adds r0, r4, 0 - movs r1, 0 - bl GetEvolutionTargetSpecies - lsls r0, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _08013E60 - ldr r0, _08013E58 @ =gBattleMainFunc - ldr r1, _08013E5C @ =sub_8013E88 - str r1, [r0] - lsls r3, r5, 24 - lsrs r3, 24 - adds r0, r4, 0 - adds r1, r2, 0 - movs r2, 0x81 - bl EvolutionScene - b _08013E74 - .align 2, 0 -_08013E4C: .4byte gLeveledUpInBattle -_08013E50: .4byte gBitTable -_08013E54: .4byte gPlayerParty -_08013E58: .4byte gBattleMainFunc -_08013E5C: .4byte sub_8013E88 -_08013E60: - adds r5, 0x1 - ldr r3, _08013E7C @ =gLeveledUpInBattle - cmp r5, 0x5 - ble _08013E06 - ldrb r0, [r3] - cmp r0, 0 - bne _08013E04 -_08013E6E: - ldr r1, _08013E80 @ =gBattleMainFunc - ldr r0, _08013E84 @ =c4_overworld - str r0, [r1] -_08013E74: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08013E7C: .4byte gLeveledUpInBattle -_08013E80: .4byte gBattleMainFunc -_08013E84: .4byte c4_overworld - thumb_func_end bc_evolution_cutscene - - thumb_func_start sub_8013E88 -sub_8013E88: @ 8013E88 - push {lr} - ldr r0, _08013EA0 @ =gMain - ldr r1, [r0, 0x4] - ldr r0, _08013EA4 @ =sub_800F808 - cmp r1, r0 - bne _08013E9A - ldr r1, _08013EA8 @ =gBattleMainFunc - ldr r0, _08013EAC @ =bc_evolution_cutscene - str r0, [r1] -_08013E9A: - pop {r0} - bx r0 - .align 2, 0 -_08013EA0: .4byte gMain -_08013EA4: .4byte sub_800F808 -_08013EA8: .4byte gBattleMainFunc -_08013EAC: .4byte bc_evolution_cutscene - thumb_func_end sub_8013E88 - - thumb_func_start c4_overworld -c4_overworld: @ 8013EB0 - push {r4-r6,lr} - ldr r5, _08013F30 @ =gBattleTypeFlags - ldrh r1, [r5] - movs r6, 0x2 - adds r0, r6, 0 - ands r0, r1 - cmp r0, 0 - bne _08013ECE - ldr r4, _08013F34 @ =gPlayerParty - adds r0, r4, 0 - bl RandomlyGivePartyPokerus - adds r0, r4, 0 - bl PartySpreadPokerus -_08013ECE: - ldrh r4, [r5] - adds r0, r6, 0 - ands r0, r4 - cmp r0, 0 - beq _08013EE0 - ldr r0, _08013F38 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _08013F2A -_08013EE0: - ldr r1, _08013F3C @ =gSpecialVar_Result - ldr r5, _08013F40 @ =gBattleOutcome - ldrb r0, [r5] - strh r0, [r1] - ldr r3, _08013F44 @ =gMain - ldr r0, _08013F48 @ =0x0000043d - adds r2, r3, r0 - ldrb r1, [r2] - movs r0, 0x3 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - ldr r0, _08013F4C @ =gPreBattleCallback1 - ldr r0, [r0] - str r0, [r3] - movs r0, 0x80 - lsls r0, 3 - ands r0, r4 - cmp r0, 0 - beq _08013F1C - ldr r0, _08013F50 @ =gEnemyParty - bl UpdateRoamerHPStatus - ldrb r0, [r5] - cmp r0, 0x1 - beq _08013F18 - cmp r0, 0x7 - bne _08013F1C -_08013F18: - bl SetRoamerInactive -_08013F1C: - movs r0, 0x5A - bl m4aSongNumStop - ldr r0, _08013F44 @ =gMain - ldr r0, [r0, 0x8] - bl SetMainCallback2 -_08013F2A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08013F30: .4byte gBattleTypeFlags -_08013F34: .4byte gPlayerParty -_08013F38: .4byte gReceivedRemoteLinkPlayers -_08013F3C: .4byte gSpecialVar_Result -_08013F40: .4byte gBattleOutcome -_08013F44: .4byte gMain -_08013F48: .4byte 0x0000043d -_08013F4C: .4byte gPreBattleCallback1 -_08013F50: .4byte gEnemyParty - thumb_func_end c4_overworld - - thumb_func_start sub_8013F54 -sub_8013F54: @ 8013F54 - push {lr} - ldr r0, _08013F84 @ =gCurrentActionFuncId - ldrb r0, [r0] - subs r0, 0xB - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _08013F90 - ldr r2, _08013F88 @ =gSharedMem + 0x17140 - adds r1, r2, 0 - adds r1, 0x20 - ldrb r0, [r1] - cmp r0, 0 - beq _08013F74 - subs r0, 0x1 - strb r0, [r1] -_08013F74: - ldr r0, _08013F8C @ =gBattleMainFunc - ldrb r1, [r1] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - str r1, [r0] - b _08013FAA - .align 2, 0 -_08013F84: .4byte gCurrentActionFuncId -_08013F88: .4byte gSharedMem + 0x17140 -_08013F8C: .4byte gBattleMainFunc -_08013F90: - ldr r0, _08013FB0 @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FAA - ldr r1, _08013FB4 @ =gBattleScriptingCommandsTable - ldr r0, _08013FB8 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FAA: - pop {r0} - bx r0 - .align 2, 0 -_08013FB0: .4byte gBattleExecBuffer -_08013FB4: .4byte gBattleScriptingCommandsTable -_08013FB8: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013F54 - - thumb_func_start sub_8013FBC -sub_8013FBC: @ 8013FBC - push {lr} - ldr r0, _08013FDC @ =gBattleExecBuffer - ldr r0, [r0] - cmp r0, 0 - bne _08013FD8 - ldr r1, _08013FE0 @ =gBattleScriptingCommandsTable - ldr r0, _08013FE4 @ =gBattlescriptCurrInstr - ldr r0, [r0] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 -_08013FD8: - pop {r0} - bx r0 - .align 2, 0 -_08013FDC: .4byte gBattleExecBuffer -_08013FE0: .4byte gBattleScriptingCommandsTable -_08013FE4: .4byte gBattlescriptCurrInstr - thumb_func_end sub_8013FBC - - thumb_func_start sub_8013FE8 -sub_8013FE8: @ 8013FE8 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - movs r0, 0x4 - str r0, [sp] - ldr r7, _08014028 @ =gBankAttacker - ldr r1, _0801402C @ =gTurnOrder - ldr r0, _08014030 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r7] - ldr r1, _08014034 @ =gSharedMem - mov r10, r1 - ldr r0, _08014038 @ =0x000160a6 - add r0, r10 - ldrb r2, [r0] - ldr r1, _0801403C @ =gBitTable - ldrb r0, [r7] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - ands r2, r0 - cmp r2, 0 - beq _08014044 - ldr r1, _08014040 @ =gCurrentActionFuncId - movs r0, 0xC - b _080146CC - .align 2, 0 -_08014028: .4byte gBankAttacker -_0801402C: .4byte gTurnOrder -_08014030: .4byte gCurrentTurnActionNumber -_08014034: .4byte gSharedMem -_08014038: .4byte 0x000160a6 -_0801403C: .4byte gBitTable -_08014040: .4byte gCurrentActionFuncId -_08014044: - ldr r1, _080140B8 @ =gCritMultiplier - movs r0, 0x1 - strb r0, [r1] - ldr r1, _080140BC @ =0x0001601f - add r1, r10 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _080140C0 @ =0x000160e7 - add r0, r10 - strb r2, [r0] - ldr r0, _080140C4 @ =gBattleMoveFlags - strb r2, [r0] - ldr r0, _080140C8 @ =gMultiHitCounter - strb r2, [r0] - ldr r0, _080140CC @ =gBattleCommunication - strb r2, [r0, 0x6] - ldr r3, _080140D0 @ =gCurrMovePos - ldrb r0, [r7] - ldr r2, _080140D4 @ =0x0001608c - adds r0, r2 - add r0, r10 - ldrb r0, [r0] - ldr r4, _080140D8 @ =gUnknown_02024BE5 - strb r0, [r4] - strb r0, [r3] - ldr r1, _080140DC @ =gProtectStructs - ldrb r2, [r7] - lsls r0, r2, 4 - adds r5, r0, r1 - ldrb r1, [r5] - lsls r0, r1, 29 - adds r4, r2, 0 - mov r8, r3 - cmp r0, 0 - bge _080140F0 - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r5] - ldr r2, _080140E0 @ =gCurrentMove - ldr r1, _080140E4 @ =gChosenMove - movs r0, 0xA5 - strh r0, [r1] - strh r0, [r2] - ldr r2, _080140E8 @ =gHitMarker - ldr r0, [r2] - movs r1, 0x80 - lsls r1, 4 - orrs r0, r1 - str r0, [r2] - movs r0, 0xA5 - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r2, _080140EC @ =0x00016010 - adds r1, r2 - b _08014200 - .align 2, 0 -_080140B8: .4byte gCritMultiplier -_080140BC: .4byte 0x0001601f -_080140C0: .4byte 0x000160e7 -_080140C4: .4byte gBattleMoveFlags -_080140C8: .4byte gMultiHitCounter -_080140CC: .4byte gBattleCommunication -_080140D0: .4byte gCurrMovePos -_080140D4: .4byte 0x0001608c -_080140D8: .4byte gUnknown_02024BE5 -_080140DC: .4byte gProtectStructs -_080140E0: .4byte gCurrentMove -_080140E4: .4byte gChosenMove -_080140E8: .4byte gHitMarker -_080140EC: .4byte 0x00016010 -_080140F0: - ldr r1, _08014128 @ =gBattleMons - movs r0, 0x58 - adds r5, r4, 0 - muls r5, r0 - adds r0, r1, 0 - adds r0, 0x50 - adds r0, r5, r0 - ldr r2, [r0] - movs r0, 0x80 - lsls r0, 5 - ands r0, r2 - cmp r0, 0 - bne _08014114 - movs r6, 0x80 - lsls r6, 15 - ands r6, r2 - cmp r6, 0 - beq _08014138 -_08014114: - ldr r3, _0801412C @ =gCurrentMove - ldr r2, _08014130 @ =gChosenMove - ldr r1, _08014134 @ =gLockedMove - lsls r0, r4, 1 - adds r0, r1 - ldrh r0, [r0] - strh r0, [r2] - strh r0, [r3] - b _08014280 - .align 2, 0 -_08014128: .4byte gBattleMons -_0801412C: .4byte gCurrentMove -_08014130: .4byte gChosenMove -_08014134: .4byte gLockedMove -_08014138: - ldr r3, _08014188 @ =gDisableStructs - mov r12, r3 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r2, r0, r3 - ldrh r4, [r2, 0x6] - adds r1, r4, 0 - cmp r1, 0 - beq _08014218 - ldrb r3, [r2, 0xC] - lsls r0, r3, 1 - adds r0, r5 - str r0, [sp, 0x8] - ldr r0, _0801418C @ =gBattleMons - adds r0, 0xC - mov r9, r0 - ldr r0, [sp, 0x8] - add r0, r9 - ldrh r0, [r0] - cmp r1, r0 - bne _080141A0 - ldr r1, _08014190 @ =gCurrentMove - ldr r0, _08014194 @ =gChosenMove - strh r4, [r0] - strh r4, [r1] - ldrb r0, [r2, 0xC] - ldr r2, _08014198 @ =gUnknown_02024BE5 - strb r0, [r2] - mov r3, r8 - strb r0, [r3] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r4, _0801419C @ =0x00016010 - adds r1, r4 - b _08014200 - .align 2, 0 -_08014188: .4byte gDisableStructs -_0801418C: .4byte gBattleMons -_08014190: .4byte gCurrentMove -_08014194: .4byte gChosenMove -_08014198: .4byte gUnknown_02024BE5 -_0801419C: .4byte 0x00016010 -_080141A0: - cmp r1, 0 - beq _08014218 - cmp r1, r0 - beq _08014218 - ldr r0, _08014208 @ =gUnknown_02024BE5 - strb r3, [r0] - mov r1, r8 - strb r3, [r1] - ldr r3, _0801420C @ =gCurrentMove - ldr r1, _08014210 @ =gChosenMove - mov r2, r8 - ldrb r0, [r2] - lsls r0, 1 - adds r0, r5 - add r0, r9 - ldrh r0, [r0] - strh r0, [r1] - strh r0, [r3] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - movs r2, 0 - strh r6, [r0, 0x6] - ldrb r1, [r7] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - add r0, r12 - strb r2, [r0, 0xC] - ldrb r0, [r7] - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - add r1, r12 - ldrb r2, [r1, 0xE] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0xE] - ldrh r0, [r3] - movs r1, 0 - bl GetMoveTarget - ldrb r1, [r7] - ldr r3, _08014214 @ =0x00016010 - adds r1, r3 -_08014200: - add r1, r10 - strb r0, [r1] - b _08014280 - .align 2, 0 -_08014208: .4byte gUnknown_02024BE5 -_0801420C: .4byte gCurrentMove -_08014210: .4byte gChosenMove -_08014214: .4byte 0x00016010 -_08014218: - mov r4, r8 - ldrb r0, [r4] - lsls r0, 1 - ldr r4, _0801425C @ =gBankAttacker - ldrb r2, [r4] - movs r1, 0x58 - muls r1, r2 - adds r0, r1 - ldr r1, _08014260 @ =gBattleMons - adds r1, 0xC - adds r0, r1 - ldr r1, _08014264 @ =gChosenMovesByBanks - lsls r2, 1 - adds r2, r1 - ldrh r3, [r0] - ldrh r2, [r2] - cmp r3, r2 - beq _08014278 - ldr r1, _08014268 @ =gCurrentMove - ldr r0, _0801426C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] - ldrh r0, [r1] - movs r1, 0 - bl GetMoveTarget - ldr r2, _08014270 @ =gSharedMem - ldrb r1, [r4] - ldr r3, _08014274 @ =0x00016010 - adds r1, r3 - adds r1, r2 - strb r0, [r1] - b _08014280 - .align 2, 0 -_0801425C: .4byte gBankAttacker -_08014260: .4byte gBattleMons -_08014264: .4byte gChosenMovesByBanks -_08014268: .4byte gCurrentMove -_0801426C: .4byte gChosenMove -_08014270: .4byte gSharedMem -_08014274: .4byte 0x00016010 -_08014278: - ldr r1, _08014298 @ =gCurrentMove - ldr r0, _0801429C @ =gChosenMove - strh r3, [r0] - strh r3, [r1] -_08014280: - ldr r0, _080142A0 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080142A8 - ldr r0, _080142A4 @ =gBattleResults - ldr r1, _08014298 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x22] - b _080142B0 - .align 2, 0 -_08014298: .4byte gCurrentMove -_0801429C: .4byte gChosenMove -_080142A0: .4byte gBankAttacker -_080142A4: .4byte gBattleResults -_080142A8: - ldr r0, _08014314 @ =gBattleResults - ldr r1, _08014318 @ =gCurrentMove - ldrh r1, [r1] - strh r1, [r0, 0x24] -_080142B0: - ldr r4, _0801431C @ =gBankAttacker - ldrb r0, [r4] - bl GetBankSide - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014320 @ =gSideTimers - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r5, r0, r1 - ldrb r0, [r5, 0x8] - adds r3, r4, 0 - cmp r0, 0 - beq _08014330 - ldr r2, _08014324 @ =gBattleMoves - ldr r0, _08014318 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - cmp r0, 0 - bne _08014330 - ldrb r0, [r3] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5, 0x9] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014330 - ldr r1, _08014328 @ =gBattleMons - ldrb r2, [r5, 0x9] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - ldrh r0, [r0, 0x28] - cmp r0, 0 - beq _08014330 - ldr r0, _0801432C @ =gBankTarget - strb r2, [r0] - b _080146AC - .align 2, 0 -_08014314: .4byte gBattleResults -_08014318: .4byte gCurrentMove -_0801431C: .4byte gBankAttacker -_08014320: .4byte gSideTimers -_08014324: .4byte gBattleMoves -_08014328: .4byte gBattleMons -_0801432C: .4byte gBankTarget -_08014330: - ldr r2, _08014454 @ =gBattleTypeFlags - ldrh r1, [r2] - movs r0, 0x1 - ands r0, r1 - ldr r3, _08014458 @ =gBankAttacker - mov r9, r2 - cmp r0, 0 - bne _08014342 - b _0801461C -_08014342: - ldr r1, _0801445C @ =gSideTimers - lsls r0, r6, 1 - adds r0, r6 - lsls r0, 2 - adds r0, r1 - ldrb r7, [r0, 0x8] - cmp r7, 0 - beq _08014354 - b _08014570 -_08014354: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _08014464 @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r4, r0, r2 - ldrb r0, [r4, 0x1] - cmp r0, 0 - bne _08014370 - ldrb r0, [r4, 0x6] - cmp r0, 0x10 - bne _08014370 - b _08014570 -_08014370: - ldr r3, _08014468 @ =gBattleMons - ldr r0, _0801446C @ =gSharedMem - mov r8, r0 - ldr r2, _08014458 @ =gBankAttacker - ldrb r5, [r2] - ldr r1, _08014470 @ =0x00016010 - adds r0, r5, r1 - add r0, r8 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r3 - adds r0, 0x20 - ldrb r0, [r0] - adds r3, r2, 0 - cmp r0, 0x1F - bne _08014394 - b _08014570 -_08014394: - ldrb r0, [r4, 0x2] - cmp r0, 0xD - beq _0801439C - b _08014570 -_0801439C: - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, _08014474 @ =gActiveBank - strb r7, [r1] - ldr r0, _08014478 @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r7, r0 - bcs _08014416 - adds r4, r1, 0 - mov r5, r8 -_080143B6: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r6, r0 - beq _08014404 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - ldr r2, _08014470 @ =0x00016010 - adds r0, r2 - adds r0, r5 - ldrb r0, [r0] - ldrb r3, [r4] - cmp r0, r3 - beq _08014404 - ldr r1, _08014468 @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - cmp r0, 0x1F - bne _08014404 - adds r0, r2, 0 - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - ldr r1, [sp] - cmp r0, r1 - bcs _08014404 - ldrb r0, [r4] - bl BankGetTurnOrder - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] -_08014404: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014478 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _080143B6 -_08014416: - ldr r2, [sp] - cmp r2, 0x4 - beq _0801441E - b _08014522 -_0801441E: - ldr r2, _08014460 @ =gBattleMoves - ldr r0, _0801447C @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x6] - ldr r3, [sp] - ands r3, r0 - cmp r3, 0 - beq _080144A4 - ldr r0, _08014458 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014484 - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014480 - movs r0, 0x1 - b _08014496 - .align 2, 0 -_08014454: .4byte gBattleTypeFlags -_08014458: .4byte gBankAttacker -_0801445C: .4byte gSideTimers -_08014460: .4byte gBattleMoves -_08014464: .4byte gCurrentMove -_08014468: .4byte gBattleMons -_0801446C: .4byte gSharedMem -_08014470: .4byte 0x00016010 -_08014474: .4byte gActiveBank -_08014478: .4byte gNoOfAllBanks -_0801447C: .4byte gChosenMove -_08014480: - movs r0, 0x3 - b _08014496 -_08014484: - bl Random - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014494 - movs r0, 0 - b _08014496 -_08014494: - movs r0, 0x2 -_08014496: - bl GetBankByIdentity - ldr r1, _080144A0 @ =gBankTarget - strb r0, [r1] - b _080144B6 - .align 2, 0 -_080144A0: .4byte gBankTarget -_080144A4: - ldr r2, _080144EC @ =gBankTarget - ldr r1, _080144F0 @ =gSharedMem - ldr r0, _080144F4 @ =gBankAttacker - ldrb r0, [r0] - ldr r4, _080144F8 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] -_080144B6: - ldr r7, _080144FC @ =gAbsentBankFlags - ldrb r0, [r7] - ldr r1, _08014500 @ =gBitTable - mov r8, r1 - ldr r5, _080144EC @ =gBankTarget - ldrb r1, [r5] - lsls r1, 2 - add r1, r8 - ldr r1, [r1] - ands r0, r1 - cmp r0, 0 - bne _080144D0 - b _080146AC -_080144D0: - ldr r6, _080144F4 @ =gBankAttacker - ldrb r0, [r6] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _08014504 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_080144EC: .4byte gBankTarget -_080144F0: .4byte gSharedMem -_080144F4: .4byte gBankAttacker -_080144F8: .4byte 0x00016010 -_080144FC: .4byte gAbsentBankFlags -_08014500: .4byte gBitTable -_08014504: - ldrb r0, [r6] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] - ldrb r1, [r7] - ldrb r2, [r5] - lsls r0, r2, 2 - add r0, r8 - b _08014690 -_08014522: - ldr r4, _0801455C @ =gActiveBank - ldr r0, _08014560 @ =gTurnOrder - ldr r2, [sp] - adds r0, r2, r0 - ldrb r0, [r0] - strb r0, [r4] - ldrb r0, [r4] - ldr r2, _08014564 @ =gBattleMons - movs r1, 0x58 - muls r1, r0 - adds r1, r2 - adds r1, 0x20 - ldrb r1, [r1] - bl RecordAbilityBattle - ldr r2, _08014568 @ =gSpecialStatuses - ldrb r1, [r4] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r0] - ldr r1, _0801456C @ =gBankTarget - ldrb r0, [r4] - strb r0, [r1] - b _080146AC - .align 2, 0 -_0801455C: .4byte gActiveBank -_08014560: .4byte gTurnOrder -_08014564: .4byte gBattleMons -_08014568: .4byte gSpecialStatuses -_0801456C: .4byte gBankTarget -_08014570: - mov r4, r9 - ldrh r1, [r4] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldr r2, _080145B4 @ =gBattleMoves - ldr r0, _080145B8 @ =gChosenMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x6] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0801461C - ldrb r0, [r3] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _080145C0 - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145BC - movs r0, 0x1 - b _080145D2 - .align 2, 0 -_080145B4: .4byte gBattleMoves -_080145B8: .4byte gChosenMove -_080145BC: - movs r0, 0x3 - b _080145D2 -_080145C0: - bl Random - adds r1, r4, 0 - ands r1, r0 - cmp r1, 0 - beq _080145D0 - movs r0, 0 - b _080145D2 -_080145D0: - movs r0, 0x2 -_080145D2: - bl GetBankByIdentity - ldr r1, _0801460C @ =gBankTarget - strb r0, [r1] - ldr r0, _08014610 @ =gAbsentBankFlags - ldrb r1, [r0] - ldr r2, _08014614 @ =gBitTable - ldr r5, _0801460C @ =gBankTarget - ldrb r0, [r5] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldr r0, _08014618 @ =gBankAttacker - ldrb r0, [r0] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080146AC - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_0801460C: .4byte gBankTarget -_08014610: .4byte gAbsentBankFlags -_08014614: .4byte gBitTable -_08014618: .4byte gBankAttacker -_0801461C: - ldr r5, _08014660 @ =gBankTarget - ldr r1, _08014664 @ =gSharedMem - adds r2, r3, 0 - ldrb r0, [r2] - ldr r4, _08014668 @ =0x00016010 - adds r0, r4 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r5] - ldr r6, _0801466C @ =gAbsentBankFlags - ldrb r1, [r6] - ldr r7, _08014670 @ =gBitTable - ldrb r0, [r5] - lsls r0, 2 - adds r0, r7 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - ldrb r0, [r2] - str r3, [sp, 0x4] - bl GetBankSide - adds r4, r0, 0 - ldrb r0, [r5] - bl GetBankSide - lsls r4, 24 - lsls r0, 24 - ldr r3, [sp, 0x4] - cmp r4, r0 - beq _08014674 - ldrb r0, [r5] - b _0801469A - .align 2, 0 -_08014660: .4byte gBankTarget -_08014664: .4byte gSharedMem -_08014668: .4byte 0x00016010 -_0801466C: .4byte gAbsentBankFlags -_08014670: .4byte gBitTable -_08014674: - ldrb r0, [r3] - bl GetBankIdentity - movs r1, 0x1 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] - ldrb r1, [r6] - ldrb r2, [r5] - lsls r0, r2, 2 - adds r0, r7 -_08014690: - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - beq _080146AC - adds r0, r2, 0 -_0801469A: - bl GetBankIdentity - movs r1, 0x2 - eors r0, r1 - lsls r0, 24 - lsrs r0, 24 - bl GetBankByIdentity - strb r0, [r5] -_080146AC: - ldr r4, _080146E0 @ =gBattlescriptCurrInstr - ldr r3, _080146E4 @ =gBattleScriptsForMoveEffects - ldr r2, _080146E8 @ =gBattleMoves - ldr r0, _080146EC @ =gCurrentMove - ldrh r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r3 - ldr r0, [r0] - str r0, [r4] - ldr r1, _080146F0 @ =gCurrentActionFuncId - movs r0, 0xA -_080146CC: - strb r0, [r1] - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080146E0: .4byte gBattlescriptCurrInstr -_080146E4: .4byte gBattleScriptsForMoveEffects -_080146E8: .4byte gBattleMoves -_080146EC: .4byte gCurrentMove -_080146F0: .4byte gCurrentActionFuncId - thumb_func_end sub_8013FE8 - - thumb_func_start sub_80146F4 -sub_80146F4: @ 80146F4 - push {r4,lr} - ldr r3, _08014764 @ =gBankAttacker - ldr r1, _08014768 @ =gTurnOrder - ldr r0, _0801476C @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014770 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014774 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r1, _08014778 @ =gActionSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r1, _0801477C @ =gMoveSelectionCursor - ldrb r0, [r3] - adds r0, r1 - strb r2, [r0] - ldr r2, _08014780 @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r2] - movs r0, 0x7 - strb r0, [r2, 0x1] - ldrb r4, [r3] - strb r4, [r2, 0x2] - ldr r1, _08014784 @ =gSharedMem - ldrb r0, [r3] - ldr r3, _08014788 @ =0x00016064 - adds r0, r3 - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2, 0x3] - movs r0, 0xFF - strb r0, [r2, 0x4] - ldr r0, _0801478C @ =0x00016003 - adds r1, r0 - strb r4, [r1] - ldr r1, _08014790 @ =gBattlescriptCurrInstr - ldr r0, _08014794 @ =BattleScript_ActionSwitch - str r0, [r1] - ldr r1, _08014798 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _0801479C @ =gBattleResults - ldrb r0, [r1, 0x2] - cmp r0, 0xFE - bhi _0801475C - adds r0, 0x1 - strb r0, [r1, 0x2] -_0801475C: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014764: .4byte gBankAttacker -_08014768: .4byte gTurnOrder -_0801476C: .4byte gCurrentTurnActionNumber -_08014770: .4byte gUnknown_030042A4 -_08014774: .4byte gUnknown_030042A0 -_08014778: .4byte gActionSelectionCursor -_0801477C: .4byte gMoveSelectionCursor -_08014780: .4byte gBattleTextBuff1 -_08014784: .4byte gSharedMem -_08014788: .4byte 0x00016064 -_0801478C: .4byte 0x00016003 -_08014790: .4byte gBattlescriptCurrInstr -_08014794: .4byte BattleScript_ActionSwitch -_08014798: .4byte gCurrentActionFuncId -_0801479C: .4byte gBattleResults - thumb_func_end sub_80146F4 - - thumb_func_start sub_80147A0 -sub_80147A0: @ 80147A0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r4, _08014804 @ =gBankAttacker - ldr r2, _08014808 @ =gBankTarget - ldr r1, _0801480C @ =gTurnOrder - ldr r0, _08014810 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - strb r0, [r4] - ldr r0, _08014814 @ =gUnknown_030042A4 - movs r2, 0 - strh r2, [r0] - ldr r0, _08014818 @ =gUnknown_030042A0 - strh r2, [r0] - ldr r3, _0801481C @ =gDisableStructs - ldrb r1, [r4] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 2 - adds r0, r3 - strb r2, [r0, 0x10] - ldr r5, _08014820 @ =gLastUsedItem - ldr r2, _08014824 @ =gBattleBufferB - ldrb r1, [r4] - lsls r1, 9 - adds r0, r2, 0x1 - adds r0, r1, r0 - ldrb r3, [r0] - adds r2, 0x2 - adds r1, r2 - ldrb r0, [r1] - lsls r0, 8 - orrs r3, r0 - strh r3, [r5] - cmp r3, 0xC - bhi _08014830 - ldr r2, _08014828 @ =gBattlescriptCurrInstr - ldr r1, _0801482C @ =gBattlescriptsForBallThrow - ldrh r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - str r0, [r2] - b _08014A8C - .align 2, 0 -_08014804: .4byte gBankAttacker -_08014808: .4byte gBankTarget -_0801480C: .4byte gTurnOrder -_08014810: .4byte gCurrentTurnActionNumber -_08014814: .4byte gUnknown_030042A4 -_08014818: .4byte gUnknown_030042A0 -_0801481C: .4byte gDisableStructs -_08014820: .4byte gLastUsedItem -_08014824: .4byte gBattleBufferB -_08014828: .4byte gBattlescriptCurrInstr -_0801482C: .4byte gBattlescriptsForBallThrow -_08014830: - adds r0, r3, 0 - subs r0, 0x50 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _0801484C - ldr r0, _08014844 @ =gBattlescriptCurrInstr - ldr r1, _08014848 @ =gBattlescriptsForRunningByItem - b _0801485C - .align 2, 0 -_08014844: .4byte gBattlescriptCurrInstr -_08014848: .4byte gBattlescriptsForRunningByItem -_0801484C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _0801486C - ldr r0, _08014864 @ =gBattlescriptCurrInstr - ldr r1, _08014868 @ =gBattlescriptsForUsingItem -_0801485C: - ldr r1, [r1] - str r1, [r0] - b _08014A8C - .align 2, 0 -_08014864: .4byte gBattlescriptCurrInstr -_08014868: .4byte gBattlescriptsForUsingItem -_0801486C: - ldr r2, _080148A0 @ =gSharedMem - ldrb r0, [r4] - ldr r3, _080148A4 @ =0x00016003 - adds r1, r2, r3 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 25 - ldr r1, _080148A8 @ =0x000160d8 - adds r0, r1 - adds r0, r2 - ldrb r0, [r0] - subs r0, 0x1 - mov r8, r4 - ldr r3, _080148AC @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _080148B0 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r7, r2, 0 - cmp r0, 0x4 - bls _08014896 - b _08014A74 -_08014896: - lsls r0, 2 - ldr r1, _080148B4 @ =_080148B8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_080148A0: .4byte gSharedMem -_080148A4: .4byte 0x00016003 -_080148A8: .4byte 0x000160d8 -_080148AC: .4byte gBattlescriptCurrInstr -_080148B0: .4byte gBattlescriptsForUsingItem -_080148B4: .4byte _080148B8 - .align 2, 0 -_080148B8: - .4byte _08014A74 - .4byte _08014A74 - .4byte _080148CC - .4byte _08014958 - .4byte _08014A30 -_080148CC: - ldr r2, _08014904 @ =gBattleCommunication - movs r0, 0 - strb r0, [r2, 0x5] - ldr r1, _08014908 @ =gBankAttacker - ldrb r0, [r1] - lsrs r0, 1 - ldr r6, _0801490C @ =0x000160da - adds r0, r6 - adds r0, r7 - ldrb r3, [r0] - movs r0, 0x1 - ands r0, r3 - mov r8, r1 - cmp r0, 0 - beq _08014918 - movs r0, 0x3E - ands r0, r3 - ldr r3, _08014910 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r1, _08014914 @ =gBattlescriptsForUsingItem - mov r10, r1 - cmp r0, 0 - bne _080148FC - b _08014A74 -_080148FC: - movs r0, 0x5 - strb r0, [r2, 0x5] - b _08014A74 - .align 2, 0 -_08014904: .4byte gBattleCommunication -_08014908: .4byte gBankAttacker -_0801490C: .4byte 0x000160da -_08014910: .4byte gBattlescriptCurrInstr -_08014914: .4byte gBattlescriptsForUsingItem -_08014918: - ldr r3, _08014950 @ =gBattlescriptCurrInstr - mov r9, r3 - ldr r0, _08014954 @ =gBattlescriptsForUsingItem - mov r10, r0 - adds r5, r7, 0 - mov r4, r8 - adds r3, r6, 0 -_08014926: - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x5] - adds r0, 0x1 - strb r0, [r2, 0x5] - ldrb r0, [r4] - lsrs r0, 1 - adds r0, r3 - adds r0, r5 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08014926 - b _08014A74 - .align 2, 0 -_08014950: .4byte gBattlescriptCurrInstr -_08014954: .4byte gBattlescriptsForUsingItem -_08014958: - ldr r3, _0801498C @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r3, 0x5] - ldr r2, _08014990 @ =gBankAttacker - ldrb r0, [r2] - lsrs r0, 1 - ldr r1, _08014994 @ =0x000160da - mov r12, r1 - add r0, r12 - adds r6, r0, r7 - ldrb r1, [r6] - movs r0, 0x80 - ands r0, r1 - lsls r0, 24 - lsrs r5, r0, 24 - mov r8, r2 - cmp r5, 0 - beq _080149A0 - movs r0, 0x5 - strb r0, [r3, 0x5] - ldr r2, _08014998 @ =gBattlescriptCurrInstr - mov r9, r2 - ldr r3, _0801499C @ =gBattlescriptsForUsingItem - mov r10, r3 - b _08014A74 - .align 2, 0 -_0801498C: .4byte gBattleCommunication -_08014990: .4byte gBankAttacker -_08014994: .4byte 0x000160da -_08014998: .4byte gBattlescriptCurrInstr -_0801499C: .4byte gBattlescriptsForUsingItem -_080149A0: - ldr r3, _08014A18 @ =gBattleTextBuff1 - movs r4, 0xFD - strb r4, [r3] - movs r0, 0x5 - strb r0, [r3, 0x1] - movs r2, 0x1 - strb r2, [r3, 0x2] - movs r0, 0xFF - strb r0, [r3, 0x3] - ldr r1, _08014A1C @ =gBattleTextBuff2 - strb r4, [r1] - strb r5, [r1, 0x1] - movs r0, 0xD2 - strb r0, [r1, 0x2] - strb r5, [r1, 0x3] - subs r0, 0xD3 - strb r0, [r1, 0x4] - ldrb r0, [r6] - ands r2, r0 - ldr r0, _08014A20 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014A24 @ =gBattlescriptsForUsingItem - mov r10, r1 - adds r6, r3, 0 - cmp r2, 0 - bne _08014A02 - adds r3, r7, 0 - mov r5, r8 - mov r4, r12 - adds r2, r6, 0 -_080149DC: - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - lsrs r1, 1 - strb r1, [r0] - ldrb r0, [r2, 0x2] - adds r0, 0x1 - strb r0, [r2, 0x2] - ldrb r0, [r5] - lsrs r0, 1 - adds r0, r4 - adds r0, r3 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080149DC -_08014A02: - ldrb r0, [r6, 0x2] - adds r0, 0xE - ldr r2, _08014A28 @ =0x000160a4 - adds r1, r7, r2 - movs r2, 0 - strb r0, [r1] - ldr r3, _08014A2C @ =0x000160a5 - adds r0, r7, r3 - strb r2, [r0] - b _08014A74 - .align 2, 0 -_08014A18: .4byte gBattleTextBuff1 -_08014A1C: .4byte gBattleTextBuff2 -_08014A20: .4byte gBattlescriptCurrInstr -_08014A24: .4byte gBattlescriptsForUsingItem -_08014A28: .4byte 0x000160a4 -_08014A2C: .4byte 0x000160a5 -_08014A30: - ldr r0, _08014A50 @ =gBattleTypeFlags - ldrh r0, [r0] - movs r1, 0x1 - ands r1, r0 - cmp r1, 0 - beq _08014A64 - ldr r1, _08014A54 @ =gBattleCommunication - movs r0, 0x2 - strb r0, [r1, 0x5] - ldr r0, _08014A58 @ =gBankAttacker - mov r8, r0 - ldr r1, _08014A5C @ =gBattlescriptCurrInstr - mov r9, r1 - ldr r2, _08014A60 @ =gBattlescriptsForUsingItem - mov r10, r2 - b _08014A74 - .align 2, 0 -_08014A50: .4byte gBattleTypeFlags -_08014A54: .4byte gBattleCommunication -_08014A58: .4byte gBankAttacker -_08014A5C: .4byte gBattlescriptCurrInstr -_08014A60: .4byte gBattlescriptsForUsingItem -_08014A64: - ldr r0, _08014AA0 @ =gBattleCommunication - strb r1, [r0, 0x5] - ldr r3, _08014AA4 @ =gBankAttacker - mov r8, r3 - ldr r0, _08014AA8 @ =gBattlescriptCurrInstr - mov r9, r0 - ldr r1, _08014AAC @ =gBattlescriptsForUsingItem - mov r10, r1 -_08014A74: - mov r2, r8 - ldrb r0, [r2] - lsrs r0, 1 - ldr r3, _08014AB0 @ =0x000160d8 - adds r0, r3 - adds r0, r7 - ldrb r0, [r0] - lsls r0, 2 - add r0, r10 - ldr r0, [r0] - mov r1, r9 - str r0, [r1] -_08014A8C: - movs r0, 0xA - ldr r2, _08014AB4 @ =gCurrentActionFuncId - strb r0, [r2] - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08014AA0: .4byte gBattleCommunication -_08014AA4: .4byte gBankAttacker -_08014AA8: .4byte gBattlescriptCurrInstr -_08014AAC: .4byte gBattlescriptsForUsingItem -_08014AB0: .4byte 0x000160d8 -_08014AB4: .4byte gCurrentActionFuncId - thumb_func_end sub_80147A0 - - thumb_func_start sub_8014AB8 -sub_8014AB8: @ 8014AB8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - movs r5, 0 - ldr r1, _08014ADC @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r1, r0, r1 - ldrh r0, [r1, 0x2E] - cmp r0, 0xAF - bne _08014AE4 - ldr r1, _08014AE0 @ =gEnigmaBerries - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x7] - b _08014AEE - .align 2, 0 -_08014ADC: .4byte gBattleMons -_08014AE0: .4byte gEnigmaBerries -_08014AE4: - ldrh r0, [r1, 0x2E] - bl ItemId_GetHoldEffect - lsls r0, 24 - lsrs r1, r0, 24 -_08014AEE: - ldr r0, _08014B18 @ =gStringBank - strb r4, [r0] - cmp r1, 0x25 - bne _08014B28 - ldr r2, _08014B1C @ =gLastUsedItem - ldr r1, _08014B20 @ =gBattleMons - movs r0, 0x58 - muls r0, r4 - adds r0, r1 - ldrh r0, [r0, 0x2E] - strh r0, [r2] - ldr r0, _08014B24 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x8 - b _08014B50 - .align 2, 0 -_08014B18: .4byte gStringBank -_08014B1C: .4byte gLastUsedItem -_08014B20: .4byte gBattleMons -_08014B24: .4byte gProtectStructs -_08014B28: - ldr r6, _08014B5C @ =gBattleMons - movs r2, 0x58 - adds r0, r4, 0 - muls r0, r2 - adds r3, r0, r6 - adds r0, r3, 0 - adds r0, 0x20 - ldrb r1, [r0] - cmp r1, 0x32 - bne _08014B68 - ldr r0, _08014B60 @ =gLastUsedAbility - strb r1, [r0] - ldr r0, _08014B64 @ =gProtectStructs - lsls r2, r4, 4 - adds r2, r0 - ldrb r1, [r2, 0x1] - movs r0, 0x19 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 -_08014B50: - orrs r0, r1 - strb r0, [r2, 0x1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - b _08014BC2 - .align 2, 0 -_08014B5C: .4byte gBattleMons -_08014B60: .4byte gLastUsedAbility -_08014B64: .4byte gProtectStructs -_08014B68: - ldr r0, _08014BDC @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _08014BB6 - movs r1, 0x1 - adds r0, r4, 0 - eors r0, r1 - muls r0, r2 - adds r2, r0, r6 - ldrh r0, [r3, 0x6] - ldrh r1, [r2, 0x6] - cmp r0, r1 - bcs _08014BB0 - lsls r0, 7 - ldrh r1, [r2, 0x6] - bl __divsi3 - adds r4, r0, 0 - ldr r0, _08014BE0 @ =gSharedMem - ldr r1, _08014BE4 @ =0x00016078 - adds r0, r1 - ldrb r1, [r0] - lsls r0, r1, 4 - subs r0, r1 - lsls r0, 1 - adds r4, r0 - lsls r4, 24 - lsrs r4, 24 - bl Random - movs r1, 0xFF - ands r1, r0 - cmp r4, r1 - bls _08014BB6 -_08014BB0: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_08014BB6: - ldr r1, _08014BE0 @ =gSharedMem - ldr r0, _08014BE4 @ =0x00016078 - adds r1, r0 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] -_08014BC2: - cmp r5, 0 - beq _08014BD4 - ldr r1, _08014BE8 @ =gCurrentTurnActionNumber - ldr r0, _08014BEC @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r1] - ldr r1, _08014BF0 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] -_08014BD4: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08014BDC: .4byte gBattleTypeFlags -_08014BE0: .4byte gSharedMem -_08014BE4: .4byte 0x00016078 -_08014BE8: .4byte gCurrentTurnActionNumber -_08014BEC: .4byte gNoOfAllBanks -_08014BF0: .4byte gBattleOutcome - thumb_func_end sub_8014AB8 - - thumb_func_start sub_8014BF4 -sub_8014BF4: @ 8014BF4 - push {r4-r6,lr} - ldr r4, _08014C44 @ =gBankAttacker - ldr r1, _08014C48 @ =gTurnOrder - ldr r5, _08014C4C @ =gCurrentTurnActionNumber - ldrb r0, [r5] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r4] - ldr r0, _08014C50 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08014C9C - ldr r0, _08014C54 @ =gNoOfAllBanks - ldrb r1, [r0] - strb r1, [r5] - ldr r2, _08014C58 @ =gActiveBank - movs r0, 0 - strb r0, [r2] - lsls r1, 24 - cmp r1, 0 - beq _08014C88 - adds r4, r2, 0 - ldr r6, _08014C5C @ =gActionForBanks - ldr r5, _08014C60 @ =gBattleOutcome -_08014C28: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014C64 - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x2 - b _08014C72 - .align 2, 0 -_08014C44: .4byte gBankAttacker -_08014C48: .4byte gTurnOrder -_08014C4C: .4byte gCurrentTurnActionNumber -_08014C50: .4byte gBattleTypeFlags -_08014C54: .4byte gNoOfAllBanks -_08014C58: .4byte gActiveBank -_08014C5C: .4byte gActionForBanks -_08014C60: .4byte gBattleOutcome -_08014C64: - ldrb r0, [r4] - adds r0, r6 - ldrb r0, [r0] - cmp r0, 0x3 - bne _08014C76 - ldrb r0, [r5] - movs r1, 0x1 -_08014C72: - orrs r0, r1 - strb r0, [r5] -_08014C76: - ldrb r0, [r4] - adds r0, 0x1 - strb r0, [r4] - ldr r1, _08014C94 @ =gNoOfAllBanks - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bcc _08014C28 -_08014C88: - ldr r0, _08014C98 @ =gBattleOutcome - ldrb r1, [r0] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0] - b _08014D40 - .align 2, 0 -_08014C94: .4byte gNoOfAllBanks -_08014C98: .4byte gBattleOutcome -_08014C9C: - ldrb r0, [r4] - bl GetBankSide - lsls r0, 24 - cmp r0, 0 - bne _08014CF4 - ldrb r0, [r4] - bl sub_8014AB8 - lsls r0, 24 - cmp r0, 0 - bne _08014D40 - ldr r1, _08014CDC @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r2, r0 - adds r1, 0x50 - adds r2, r1 - ldr r0, [r2] - ldr r1, _08014CE0 @ =0xfdffffff - ands r0, r1 - str r0, [r2] - ldr r1, _08014CE4 @ =gBattleCommunication - movs r0, 0x3 - strb r0, [r1, 0x5] - ldr r1, _08014CE8 @ =gBattlescriptCurrInstr - ldr r0, _08014CEC @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014CF0 @ =gCurrentActionFuncId - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014CDC: .4byte gBattleMons -_08014CE0: .4byte 0xfdffffff -_08014CE4: .4byte gBattleCommunication -_08014CE8: .4byte gBattlescriptCurrInstr -_08014CEC: .4byte BattleScript_PrintFailedToRunString -_08014CF0: .4byte gCurrentActionFuncId -_08014CF4: - ldr r1, _08014D1C @ =gBattleMons - ldrb r2, [r4] - movs r0, 0x58 - muls r0, r2 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - ldr r1, _08014D20 @ =0x0400e000 - ands r0, r1 - cmp r0, 0 - beq _08014D34 - ldr r1, _08014D24 @ =gBattleCommunication - movs r0, 0x4 - strb r0, [r1, 0x5] - ldr r1, _08014D28 @ =gBattlescriptCurrInstr - ldr r0, _08014D2C @ =BattleScript_PrintFailedToRunString - str r0, [r1] - ldr r1, _08014D30 @ =gCurrentActionFuncId - movs r0, 0xA - b _08014D3E - .align 2, 0 -_08014D1C: .4byte gBattleMons -_08014D20: .4byte 0x0400e000 -_08014D24: .4byte gBattleCommunication -_08014D28: .4byte gBattlescriptCurrInstr -_08014D2C: .4byte BattleScript_PrintFailedToRunString -_08014D30: .4byte gCurrentActionFuncId -_08014D34: - ldr r0, _08014D48 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r5] - ldr r1, _08014D4C @ =gBattleOutcome - movs r0, 0x6 -_08014D3E: - strb r0, [r1] -_08014D40: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014D48: .4byte gNoOfAllBanks -_08014D4C: .4byte gBattleOutcome - thumb_func_end sub_8014BF4 - - thumb_func_start sub_8014D50 -sub_8014D50: @ 8014D50 - ldr r2, _08014D78 @ =gBankAttacker - ldr r1, _08014D7C @ =gTurnOrder - ldr r0, _08014D80 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014D84 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014D88 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014D8C @ =gBattlescriptCurrInstr - ldr r0, _08014D90 @ =gBattlescriptsForSafariActions - ldr r0, [r0] - str r0, [r1] - ldr r1, _08014D94 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014D78: .4byte gBankAttacker -_08014D7C: .4byte gTurnOrder -_08014D80: .4byte gCurrentTurnActionNumber -_08014D84: .4byte gUnknown_030042A4 -_08014D88: .4byte gUnknown_030042A0 -_08014D8C: .4byte gBattlescriptCurrInstr -_08014D90: .4byte gBattlescriptsForSafariActions -_08014D94: .4byte gCurrentActionFuncId - thumb_func_end sub_8014D50 - - thumb_func_start sub_8014D98 -sub_8014D98: @ 8014D98 - ldr r2, _08014DD0 @ =gBankAttacker - ldr r1, _08014DD4 @ =gTurnOrder - ldr r0, _08014DD8 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014DDC @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014DE0 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _08014DE4 @ =gNumSafariBalls - ldrb r0, [r1] - subs r0, 0x1 - strb r0, [r1] - ldr r1, _08014DE8 @ =gLastUsedItem - movs r0, 0x5 - strh r0, [r1] - ldr r1, _08014DEC @ =gBattlescriptCurrInstr - ldr r0, _08014DF0 @ =gBattlescriptsForBallThrow - ldr r0, [r0, 0x14] - str r0, [r1] - ldr r1, _08014DF4 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - bx lr - .align 2, 0 -_08014DD0: .4byte gBankAttacker -_08014DD4: .4byte gTurnOrder -_08014DD8: .4byte gCurrentTurnActionNumber -_08014DDC: .4byte gUnknown_030042A4 -_08014DE0: .4byte gUnknown_030042A0 -_08014DE4: .4byte gNumSafariBalls -_08014DE8: .4byte gLastUsedItem -_08014DEC: .4byte gBattlescriptCurrInstr -_08014DF0: .4byte gBattlescriptsForBallThrow -_08014DF4: .4byte gCurrentActionFuncId - thumb_func_end sub_8014D98 - - thumb_func_start sub_8014DF8 -sub_8014DF8: @ 8014DF8 - push {r4-r6,lr} - ldr r3, _08014E68 @ =gBankAttacker - ldr r1, _08014E6C @ =gTurnOrder - ldr r0, _08014E70 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r3] - ldr r0, _08014E74 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08014E78 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r6, _08014E7C @ =gBattleCommunication - ldr r2, _08014E80 @ =gBattleBufferB - ldrb r0, [r3] - lsls r0, 9 - adds r1, r2, 0x1 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x1 - strb r0, [r6, 0x5] - ldr r1, _08014E84 @ =gLastUsedItem - ldrb r0, [r3] - lsls r0, 9 - adds r2, 0x2 - adds r0, r2 - ldrb r0, [r0] - strh r0, [r1] - ldr r2, _08014E88 @ =gSharedMem - ldr r0, _08014E8C @ =0x00016087 - adds r1, r2, r0 - ldrb r0, [r1] - cmp r0, 0x2 - bhi _08014E42 - adds r0, 0x1 - strb r0, [r1] -_08014E42: - ldr r0, _08014E90 @ =0x00016088 - adds r4, r2, r0 - ldrb r5, [r4] - adds r3, r5, 0 - cmp r3, 0x1 - bls _08014E9C - ldr r2, _08014E94 @ =gUnknown_081FA70C - ldrb r1, [r1] - lsls r0, r1, 1 - adds r0, r1 - ldrb r6, [r6, 0x5] - adds r0, r6 - adds r0, r2 - ldrb r0, [r0] - cmp r3, r0 - bcs _08014E98 - movs r0, 0x1 - b _08014E9A - .align 2, 0 -_08014E68: .4byte gBankAttacker -_08014E6C: .4byte gTurnOrder -_08014E70: .4byte gCurrentTurnActionNumber -_08014E74: .4byte gUnknown_030042A4 -_08014E78: .4byte gUnknown_030042A0 -_08014E7C: .4byte gBattleCommunication -_08014E80: .4byte gBattleBufferB -_08014E84: .4byte gLastUsedItem -_08014E88: .4byte gSharedMem -_08014E8C: .4byte 0x00016087 -_08014E90: .4byte 0x00016088 -_08014E94: .4byte gUnknown_081FA70C -_08014E98: - subs r0, r5, r0 -_08014E9A: - strb r0, [r4] -_08014E9C: - ldr r1, _08014EB0 @ =gBattlescriptCurrInstr - ldr r0, _08014EB4 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x8] - str r0, [r1] - ldr r1, _08014EB8 @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08014EB0: .4byte gBattlescriptCurrInstr -_08014EB4: .4byte gBattlescriptsForSafariActions -_08014EB8: .4byte gCurrentActionFuncId - thumb_func_end sub_8014DF8 - - thumb_func_start sub_8014EBC -sub_8014EBC: @ 8014EBC - push {r4,r5,lr} - ldr r2, _08014F28 @ =gBankAttacker - ldr r1, _08014F2C @ =gTurnOrder - ldr r0, _08014F30 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - ldr r0, _08014F34 @ =gUnknown_030042A4 - movs r5, 0 - strh r5, [r0] - ldr r0, _08014F38 @ =gUnknown_030042A0 - strh r5, [r0] - ldr r3, _08014F3C @ =gSharedMem - ldr r0, _08014F40 @ =0x00016089 - adds r2, r3, r0 - ldr r1, _08014F44 @ =gUnknown_081FA71B - subs r0, 0x3 - adds r4, r3, r0 - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014EFA - movs r0, 0x14 - strb r0, [r2] -_08014EFA: - ldr r0, _08014F48 @ =0x00016088 - adds r2, r3, r0 - ldr r1, _08014F4C @ =gUnknown_081FA71F - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - ldrb r1, [r2] - adds r0, r1 - strb r0, [r2] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x14 - bls _08014F18 - movs r0, 0x14 - strb r0, [r2] -_08014F18: - ldrb r0, [r4] - cmp r0, 0x2 - bhi _08014F54 - adds r0, 0x1 - strb r0, [r4] - ldr r0, _08014F50 @ =gBattleCommunication - strb r5, [r0, 0x5] - b _08014F5A - .align 2, 0 -_08014F28: .4byte gBankAttacker -_08014F2C: .4byte gTurnOrder -_08014F30: .4byte gCurrentTurnActionNumber -_08014F34: .4byte gUnknown_030042A4 -_08014F38: .4byte gUnknown_030042A0 -_08014F3C: .4byte gSharedMem -_08014F40: .4byte 0x00016089 -_08014F44: .4byte gUnknown_081FA71B -_08014F48: .4byte 0x00016088 -_08014F4C: .4byte gUnknown_081FA71F -_08014F50: .4byte gBattleCommunication -_08014F54: - ldr r1, _08014F70 @ =gBattleCommunication - movs r0, 0x1 - strb r0, [r1, 0x5] -_08014F5A: - ldr r1, _08014F74 @ =gBattlescriptCurrInstr - ldr r0, _08014F78 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0x4] - str r0, [r1] - ldr r1, _08014F7C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08014F70: .4byte gBattleCommunication -_08014F74: .4byte gBattlescriptCurrInstr -_08014F78: .4byte gBattlescriptsForSafariActions -_08014F7C: .4byte gCurrentActionFuncId - thumb_func_end sub_8014EBC - - thumb_func_start bs8_exit_by_flight -bs8_exit_by_flight: @ 8014F80 - push {r4,lr} - ldr r2, _08014FA8 @ =gBankAttacker - ldr r1, _08014FAC @ =gTurnOrder - ldr r4, _08014FB0 @ =gCurrentTurnActionNumber - ldrb r0, [r4] - adds r0, r1 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0x11 - bl PlaySE - ldr r0, _08014FB4 @ =gNoOfAllBanks - ldrb r0, [r0] - strb r0, [r4] - ldr r1, _08014FB8 @ =gBattleOutcome - movs r0, 0x4 - strb r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08014FA8: .4byte gBankAttacker -_08014FAC: .4byte gTurnOrder -_08014FB0: .4byte gCurrentTurnActionNumber -_08014FB4: .4byte gNoOfAllBanks -_08014FB8: .4byte gBattleOutcome - thumb_func_end bs8_exit_by_flight - - thumb_func_start sub_8014FBC -sub_8014FBC: @ 8014FBC - ldr r3, _08015008 @ =gBankAttacker - ldr r1, _0801500C @ =gTurnOrder - ldr r0, _08015010 @ =gCurrentTurnActionNumber - ldrb r0, [r0] - adds r0, r1 - ldrb r2, [r0] - strb r2, [r3] - ldr r0, _08015014 @ =gUnknown_030042A4 - movs r1, 0 - strh r1, [r0] - ldr r0, _08015018 @ =gUnknown_030042A0 - strh r1, [r0] - ldr r1, _0801501C @ =gBattleTextBuff1 - movs r0, 0xFD - strb r0, [r1] - movs r0, 0x7 - strb r0, [r1, 0x1] - strb r2, [r1, 0x2] - ldr r2, _08015020 @ =gBattlePartyID - ldrb r0, [r3] - lsls r0, 1 - adds r0, r2 - ldrh r0, [r0] - strb r0, [r1, 0x3] - movs r0, 0xFF - strb r0, [r1, 0x4] - ldr r1, _08015024 @ =gBattlescriptCurrInstr - ldr r0, _08015028 @ =gBattlescriptsForSafariActions - ldr r0, [r0, 0xC] - str r0, [r1] - ldr r1, _0801502C @ =gCurrentActionFuncId - movs r0, 0xA - strb r0, [r1] - ldr r1, _08015030 @ =gUnknown_02024A76 - movs r0, 0xC - strb r0, [r1, 0x1] - bx lr - .align 2, 0 -_08015008: .4byte gBankAttacker -_0801500C: .4byte gTurnOrder -_08015010: .4byte gCurrentTurnActionNumber -_08015014: .4byte gUnknown_030042A4 -_08015018: .4byte gUnknown_030042A0 -_0801501C: .4byte gBattleTextBuff1 -_08015020: .4byte gBattlePartyID -_08015024: .4byte gBattlescriptCurrInstr -_08015028: .4byte gBattlescriptsForSafariActions -_0801502C: .4byte gCurrentActionFuncId -_08015030: .4byte gUnknown_02024A76 - thumb_func_end sub_8014FBC - - thumb_func_start bsB_exit_by_move -bsB_exit_by_move: @ 8015034 - push {lr} - bl sub_80173A4 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _08015050 - ldr r0, _08015054 @ =gSharedMem - ldr r2, _08015058 @ =0x00016059 - adds r0, r2 - strb r1, [r0] - ldr r1, _0801505C @ =gCurrentActionFuncId - movs r0, 0xC - strb r0, [r1] -_08015050: - pop {r0} - bx r0 - .align 2, 0 -_08015054: .4byte gSharedMem -_08015058: .4byte 0x00016059 -_0801505C: .4byte gCurrentActionFuncId - thumb_func_end bsB_exit_by_move - - thumb_func_start sub_8015060 -sub_8015060: @ 8015060 - ldr r1, _08015080 @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015084 @ =gCurrentActionFuncId - ldr r2, _08015088 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - ldr r2, _0801508C @ =gHitMarker - ldr r0, [r2] - ldr r1, _08015090 @ =0xf1e892af - ands r0, r1 - str r0, [r2] - bx lr - .align 2, 0 -_08015080: .4byte gCurrentTurnActionNumber -_08015084: .4byte gCurrentActionFuncId -_08015088: .4byte gUnknown_02024A76 -_0801508C: .4byte gHitMarker -_08015090: .4byte 0xf1e892af - thumb_func_end sub_8015060 - - thumb_func_start bsC_8016D70 -bsC_8016D70: @ 8015094 - push {r4,r5,lr} - ldr r1, _0801510C @ =gCurrentTurnActionNumber - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - ldr r3, _08015110 @ =gCurrentActionFuncId - ldr r2, _08015114 @ =gUnknown_02024A76 - ldrb r0, [r1] - adds r0, r2 - ldrb r0, [r0] - strb r0, [r3] - bl SpecialStatusesClear - ldr r2, _08015118 @ =gHitMarker - ldr r0, [r2] - ldr r1, _0801511C @ =0xf1e892af - ands r0, r1 - str r0, [r2] - ldr r0, _08015120 @ =gBattleMoveDamage - movs r4, 0 - str r4, [r0] - ldr r1, _08015124 @ =gSharedMem - ldr r2, _08015128 @ =0x00016002 - adds r0, r1, r2 - strb r4, [r0] - ldr r3, _0801512C @ =0x000160a1 - adds r0, r1, r3 - strb r4, [r0] - ldr r2, _08015130 @ =gMoveHitWith - ldr r5, _08015134 @ =gBankAttacker - ldrb r0, [r5] - lsls r0, 1 - adds r0, r2 - movs r2, 0 - strh r4, [r0] - ldr r3, _08015138 @ =gUnknown_02024C44 - ldrb r0, [r5] - lsls r0, 1 - adds r0, r3 - strh r4, [r0] - ldr r3, _0801513C @ =0x0001601c - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015140 @ =gDynamicBasePower - strh r4, [r0] - subs r3, 0x10 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _08015144 @ =gBattleCommunication - strb r2, [r0, 0x3] - strb r2, [r0, 0x4] - ldr r3, _08015148 @ =0x00016112 - adds r0, r1, r3 - strb r2, [r0] - ldr r0, _0801514C @ =0x00017130 - adds r1, r0 - strb r2, [r1] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0801510C: .4byte gCurrentTurnActionNumber -_08015110: .4byte gCurrentActionFuncId -_08015114: .4byte gUnknown_02024A76 -_08015118: .4byte gHitMarker -_0801511C: .4byte 0xf1e892af -_08015120: .4byte gBattleMoveDamage -_08015124: .4byte gSharedMem -_08015128: .4byte 0x00016002 -_0801512C: .4byte 0x000160a1 -_08015130: .4byte gMoveHitWith -_08015134: .4byte gBankAttacker -_08015138: .4byte gUnknown_02024C44 -_0801513C: .4byte 0x0001601c -_08015140: .4byte gDynamicBasePower -_08015144: .4byte gBattleCommunication -_08015148: .4byte 0x00016112 -_0801514C: .4byte 0x00017130 - thumb_func_end bsC_8016D70 - thumb_func_start GetBattleBank GetBattleBank: @ 8015150 push {lr} diff --git a/asm/contest_link_80C2020.s b/asm/contest_link_80C2020.s index 6bd98cc8a..608daba87 100644 --- a/asm/contest_link_80C2020.s +++ b/asm/contest_link_80C2020.s @@ -82,9 +82,9 @@ sub_80C2020: @ 80C2020 adds r1, r3, 0 orrs r0, r1 strh r0, [r5] - ldr r0, _080C2114 @ =gUnknown_030042A4 + ldr r0, _080C2114 @ =gBattle_BG0_X strh r2, [r0] - ldr r0, _080C2118 @ =gUnknown_030042A0 + ldr r0, _080C2118 @ =gBattle_BG0_Y strh r2, [r0] ldr r0, _080C211C @ =gBattle_BG1_X strh r2, [r0] @@ -119,8 +119,8 @@ _080C2104: .4byte 0x00003a03 _080C2108: .4byte REG_MOSAIC _080C210C: .4byte 0x00003f3f _080C2110: .4byte REG_WIN0H -_080C2114: .4byte gUnknown_030042A4 -_080C2118: .4byte gUnknown_030042A0 +_080C2114: .4byte gBattle_BG0_X +_080C2118: .4byte gBattle_BG0_Y _080C211C: .4byte gBattle_BG1_X _080C2120: .4byte gBattle_BG1_Y _080C2124: .4byte gBattle_BG2_X @@ -482,11 +482,11 @@ sub_80C2430: @ 80C2430 sub_80C2448: @ 80C2448 push {lr} ldr r1, _080C24C0 @ =REG_BG0HOFS - ldr r0, _080C24C4 @ =gUnknown_030042A4 + ldr r0, _080C24C4 @ =gBattle_BG0_X ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 - ldr r0, _080C24C8 @ =gUnknown_030042A0 + ldr r0, _080C24C8 @ =gBattle_BG0_Y ldrh r0, [r0] strh r0, [r1] adds r1, 0x2 @@ -537,8 +537,8 @@ sub_80C2448: @ 80C2448 bx r0 .align 2, 0 _080C24C0: .4byte REG_BG0HOFS -_080C24C4: .4byte gUnknown_030042A4 -_080C24C8: .4byte gUnknown_030042A0 +_080C24C4: .4byte gBattle_BG0_X +_080C24C8: .4byte gBattle_BG0_Y _080C24CC: .4byte gBattle_BG1_X _080C24D0: .4byte gBattle_BG1_Y _080C24D4: .4byte gBattle_BG2_X diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 3c255b461..41edcb514 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -3065,7 +3065,7 @@ BattleScript_LocalBattleLost:: @ 81D8DD1 BattleScript_LocalBattleLostEnd: @ 81D8E01 end2 -gUnknown_081D8E02:: @ 81D8E02 +BattleScript_LinkBattleWonOrLost:: @ 81D8E02 printstring 5 waitmessage 64 atk57 @@ -3248,7 +3248,7 @@ BattleScript_DamagingWeatherContinues:: @ 81D8F7D setbyte gBattleCommunication, 0 BattleScript_DamagingWeatherLoop: @ 81D8F95 - copyarraywithindex gBankAttacker, gTurnOrder, gBattleCommunication, 1 + copyarraywithindex gBankAttacker, gBanksByTurnOrder, gBattleCommunication, 1 weatherdamage jumpifword EQUAL, gBattleMoveDamage, 0x0, BattleScript_DamagingWeatherLoopIncrement printfromtable gSandStormHailDmgStringIds diff --git a/data/data2a.s b/data/data2a.s index 3bd3f6ebd..bd455ce29 100644 --- a/data/data2a.s +++ b/data/data2a.s @@ -946,32 +946,32 @@ gSpriteAffineAnimTable_81F971C:: @ 81F971C .align 2 gUnknown_081FA640:: @ 81FA640 - .4byte sub_8013FE8 - .4byte sub_80147A0 - .4byte sub_80146F4 - .4byte sub_8014BF4 - .4byte sub_8014D50 - .4byte sub_8014D98 - .4byte sub_8014DF8 - .4byte sub_8014EBC - .4byte bs8_exit_by_flight - .4byte sub_8014FBC + .4byte HandleAction_UseMove + .4byte HandleAction_UseItem + .4byte HandleAction_Switch + .4byte HandleAction_Run + .4byte HandleAction_WatchesCarefully + .4byte HandleAction_SafariZoneBallThrow + .4byte HandleAction_ThrowPokeblock + .4byte HandleAction_GoNear + .4byte HandleAction_SafriZoneRun + .4byte HandleAction_Action9 .4byte sub_801B594 - .4byte bsB_exit_by_move - .4byte bsC_8016D70 - .4byte sub_8015060 + .4byte HandleAction_Action11 + .4byte HandleAction_ActionFinished + .4byte HandleAction_NothingIsFainted .align 2 gUnknown_081FA678:: @ 81FA678 .4byte bc_8013B1C .4byte HandleEndTurn_BattleWon - .4byte sub_8013B64 - .4byte sub_8013B64 - .4byte sub_8013BDC - .4byte sub_8013C9C - .4byte sub_8013C48 - .4byte sub_8013C9C - .4byte sub_8013C9C + .4byte HandleEndTurn_BattleLost + .4byte HandleEndTurn_BattleLost + .4byte HandleEndTurn_RanFromBattle + .4byte HandleEndTurn_FinishBattle + .4byte HandleEndTurn_MonFled + .4byte HandleEndTurn_FinishBattle + .4byte HandleEndTurn_FinishBattle gStatusConditionString_PoisonJpn:: @ 81FA69C .string "どく$$$$$$" diff --git a/include/battle.h b/include/battle.h index dd35cc303..4bcdfa6a9 100644 --- a/include/battle.h +++ b/include/battle.h @@ -227,10 +227,8 @@ struct BattleStruct /* 0x2000000 */ /*0x160D5*/ u8 unk160D5; /*0x160D6*/ u8 unk160D6; /*0x160D7*/ u8 unk160D7; - /*0x160D8*/ u8 unk160D8; - /*0x160D9*/ u8 unk160D9; - /*0x160DA*/ u8 unk160DA; - /*0x160DB*/ u8 unk160DB; + /*0x160D8*/ u8 unk160D8[2]; + /*0x160DA*/ u8 unk160DA[2]; /*0x160DC*/ u8 unk160DC; /*0x160DD*/ u8 intimidateBank; /*0x160DE*/ u8 unk160DE; @@ -606,7 +604,7 @@ void InitBattle(void); void sub_800EC9C(void); void sub_800F104(void); void sub_800F298(void); -void sub_800F808(void); +void BattleMainCB2(void); void sub_800F838(struct Sprite *); u8 CreateNPCTrainerParty(struct Pokemon *, u16); void sub_800FCFC(void); @@ -638,6 +636,9 @@ void sub_8011970(void); void sub_80119B4(void); void BattleBeginFirstTurn(void); void BattleTurnPassed(void); +void RunBattleScriptCommands_PopCallbacksStack(void); +void RunBattleScriptCommands(void); +bool8 TryRunFromBattle(u8 bank); // asm/battle_2.o void sub_8012324(void); @@ -654,14 +655,16 @@ u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); u8 sub_80170DC(); -u8 sub_80173A4(); +u8 HandleFaintedMonActions(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); void b_clear_atk_up_if_hit_flag_unless_enraged(void); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); // asm/battle_4.o void AI_CalcDmg(u8, u8); u8 TypeCalc(u16 move, u8 bank_atk, u8 bank_def); +u8 BankGetTurnOrder(u8 bank); // asm/battle_5.o void nullsub_91(void); diff --git a/include/battle_ai.h b/include/battle_ai.h index 60ca5d000..c22ca8633 100644 --- a/include/battle_ai.h +++ b/include/battle_ai.h @@ -24,5 +24,6 @@ void sub_810745C(void); void AIStackPushVar(u8 *); u8 AIStackPop(void); void BattleAI_HandleItemUseBeforeAISetup(void); +void RecordAbilityBattle(u8 a, u8 b); #endif diff --git a/include/battle_message.h b/include/battle_message.h index 3e37a1ccd..9c27994ee 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -16,6 +16,143 @@ struct StringInfoBattle u8 textBuffs[3][0x10]; }; +// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 + +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 + +#define B_BUFF_PLACEHOLDER_BEGIN 0xFD +#define B_BUFF_EOS 0xFF + +#define PREPARE_FLAVOR_BUFFER(textVar, flavorId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NEGATIVE_FLAVOR; \ + textVar[2] = flavorId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_STAT_BUFFER(textVar, statId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STAT; \ + textVar[2] = statId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_ABILITY_BUFFER(textVar, abilityId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ABILITY; \ + textVar[2] = abilityId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_TYPE_BUFFER(textVar, typeId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_TYPE; \ + textVar[2] = typeId; \ + textVar[3] = B_BUFF_EOS; \ +} + +#define PREPARE_BYTE_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 1; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = B_BUFF_EOS; \ +} + +#define PREPARE_HWORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 2; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = B_BUFF_EOS; \ +} + +#define PREPARE_WORD_NUMBER_BUFFER(textVar, maxDigits, number) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_NUMBER; \ + textVar[2] = 4; \ + textVar[3] = maxDigits; \ + textVar[4] = (number); \ + textVar[5] = (number & 0x0000FF00) >> 8; \ + textVar[6] = (number & 0x00FF0000) >> 16; \ + textVar[7] = (number & 0xFF000000) >> 24; \ + textVar[8] = B_BUFF_EOS; \ +} + +#define PREPARE_STRING_BUFFER(textVar, stringId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_STRING; \ + textVar[2] = stringId; \ + textVar[3] = (stringId & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MOVE_BUFFER(textVar, move) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MOVE; \ + textVar[2] = move; \ + textVar[3] = (move & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_ITEM_BUFFER(textVar, item) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_ITEM; \ + textVar[2] = item; \ + textVar[3] = (item & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_SPECIES_BUFFER(textVar, species) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_SPECIES; \ + textVar[2] = species; \ + textVar[3] = (species & 0xFF00) >> 8; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_WITH_PREFIX_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + +#define PREPARE_MON_NICK_BUFFER(textVar, bank, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK; \ + textVar[2] = bank; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + void BufferStringBattle(u16 stringID); u32 StrCpyDecodeToDisplayedStringBattle(const u8* src); u32 StrCpyDecodeBattle(const u8* src, u8* dst); diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index 892b3e7f6..2b973b4d9 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -1,6 +1,13 @@ #ifndef GUARD_CONSTANTS_BATTLE_CONSTANTS_H #define GUARD_CONSTANTS_BATTLE_CONSTANTS_H +// Bank sides +#define SIDE_PLAYER 0x0 +#define SIDE_OPPONENT 0x1 + +#define BIT_SIDE 0x1 +#define BIT_MON 0x2 + #define STATUS_SLEEP 0x7 #define STATUS_POISON 0x8 #define STATUS_BURN 0x10 @@ -76,6 +83,7 @@ #define HITMARKER_x800000 0x00800000 #define HITMARKER_GRUDGE 0x01000000 #define HITMARKER_OBEYS 0x02000000 +#define HITMARKER_x4000000 0x04000000 #define HITMARKER_x8000000 0x08000000 #define HITMARKER_FAINTED(bank) ((gBitTable[bank] << 0x1C)) #define HITMARKER_UNK(bank) ((0x10000000 << bank)) @@ -216,6 +224,27 @@ #define WEATHER_SUN_ANY ((WEATHER_SUN_TEMPORARY | WEATHER_SUN_PERMANENT)) #define WEATHER_HAIL (1 << 7) +#define MOVE_TARGET_SELECTED 0x0 +#define MOVE_TARGET_DEPENDS 0x1 +#define MOVE_TARGET_USER 0x2 +#define MOVE_TARGET_RANDOM 0x4 +#define MOVE_TARGET_x10 0x10 +#define MOVE_TARGET_BOTH 0x8 +#define MOVE_TARGET_FOES_AND_ALLY 0x20 +#define MOVE_TARGET_OPPONENTS_FIELD 0x40 + +// array entries for battle communication +#define MULTIUSE_STATE 0x0 +#define CURSOR_POSITION 0x1 +#define TASK_ID 0x1 // task Id and cursor position share the same field +#define SPRITES_INIT_STATE1 0x1 // shares the Id as well +#define SPRITES_INIT_STATE2 0x2 +#define MOVE_EFFECT_BYTE 0x3 +#define ACTIONS_CONFIRMED_COUNT 0x4 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 +#define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 + // status animation table #define B_ANIM_STATUS_PSN 0x0 #define B_ANIM_STATUS_CONFUSION 0x1 @@ -262,4 +291,12 @@ #define B_ANIM_SUBSTITUTE_TO_MON 0x5 #define B_ANIM_MON_TO_SUBSTITUTE 0x6 +// AI switch items +#define AI_ITEM_FULL_RESTORE 1 +#define AI_ITEM_HEAL_HP 2 +#define AI_ITEM_CURE_CONDITION 3 +#define AI_ITEM_X_STAT 4 +#define AI_ITEM_GUARD_SPECS 5 +#define AI_ITEM_NOT_RECOGNIZABLE 6 + #endif // GUARD_CONSTANTS_BATTLE_CONSTANTS_H diff --git a/include/ewram.h b/include/ewram.h index d5e53393b..17ca3508a 100755 --- a/include/ewram.h +++ b/include/ewram.h @@ -134,6 +134,8 @@ extern u8 gSharedMem[]; #define ewram1608Carr(bank) (gSharedMem[0x1608C + bank]) #define EWRAM_1609D (gSharedMem[0x1609D]) #define ewram160A1 (gSharedMem[0x160A1]) +#define ewram160A4 (gSharedMem[0x160A4]) +#define ewram160A5 (gSharedMem[0x160A5]) #define ewram160A6 (gSharedMem[0x160A6]) #define ewram160A8 (gSharedMem[0x160A8]) #define ewram160A9 (gSharedMem[0x160A9]) @@ -156,9 +158,12 @@ extern u8 gSharedMem[]; #define USED_HELD_ITEM(bank) ((((u16*)(&gSharedMem[0x160CC + bank * 2])))) #define USED_HELD_ITEMS(bank) (*(u16 *)&gSharedMem[0x160CC + 2 * (bank)]) #define ewram160D4(bank) (gSharedMem[0x160D4 + (bank / 2) * 2]) +#define ewram160D8(bank) (gSharedMem[0x160D8 + (bank / 2)]) +#define ewram160DA(bank) (gSharedMem[0x160DA + (bank / 2)]) #define ewram160DD (gSharedMem[0x160DD]) #define ewram160E0(i) (gSharedMem[0x160E0 + i]) #define ewram160E6 (gSharedMem[0x160E6]) +#define ewram160E7 (gSharedMem[0x160E7]) #define CHOICED_MOVE(bank) (((u16*)(&gSharedMem[0x160E8 + bank * 2]))) #define ewram160E8 ((u8 *)(gSharedMem + 0x160E8)) #define ewram160E8arr(i) (gSharedMem[0x160E8 + i]) diff --git a/include/pokemon.h b/include/pokemon.h index b6c6e0030..71b35e65c 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -363,6 +363,16 @@ enum STAT_STAGE_EVASION, // 7 }; +enum +{ + STAT_HP, // 0 + STAT_ATK, // 1 + STAT_DEF, // 2 + STAT_SPD, // 3 + STAT_SPATK, // 4 + STAT_SPDEF, // 5 +}; + struct BaseStats { /*0x00*/ u8 baseHP; @@ -613,6 +623,8 @@ bool8 IsPokeSpriteNotFlipped(u16); u8 GetLevelUpMovesBySpecies(u16, u16 *); u8 TryIncrementMonLevel(struct Pokemon *); bool8 IsShiny(struct Pokemon *mon); +void RandomlyGivePartyPokerus(struct Pokemon *party); +void PartySpreadPokerus(struct Pokemon *party); struct Sprite *sub_80F7920(u16, u16, const u16 *); diff --git a/include/roamer.h b/include/roamer.h index 9d5f3c4ed..86908bd00 100644 --- a/include/roamer.h +++ b/include/roamer.h @@ -7,5 +7,7 @@ void UpdateLocationHistoryForRoamer(void); void RoamerMoveToOtherLocationSet(void); void RoamerMove(); u8 TryStartRoamerEncounter(void); +void UpdateRoamerHPStatus(struct Pokemon *mon); +void SetRoamerInactive(void); #endif diff --git a/include/tv.h b/include/tv.h index 91b871f71..2edccb365 100644 --- a/include/tv.h +++ b/include/tv.h @@ -107,5 +107,6 @@ void UpdateTVShowsPerDay(u16); void sub_80C045C(); void sub_80BF088(u8, s32); void sub_80BFD20(void); +void PutPokemonTodayCaughtOnAir(void); #endif // GUARD_TV_H diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index 92e9e3e1d..a30245081 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -1,13 +1,17 @@ #include "global.h" #include "constants/abilities.h" #include "battle.h" +#include "battle_ai.h" #include "battle_interface.h" +#include "battle_message.h" #include "battle_setup.h" #include "data2.h" #include "event_data.h" +#include "evolution_scene.h" #include "item.h" #include "link.h" #include "main.h" +#include "m4a.h" #include "name_string_util.h" #include "palette.h" #include "party_menu.h" @@ -15,6 +19,7 @@ #include "pokedex.h" #include "pokemon.h" #include "random.h" +#include "roamer.h" #include "rom3.h" #include "rom_8077ABC.h" #include "rom_8094928.h" @@ -22,10 +27,12 @@ #include "sound.h" #include "constants/species.h" #include "sprite.h" +#include "string_util.h" #include "task.h" #include "text.h" #include "trainer.h" #include "trig.h" +#include "tv.h" #include "unknown_task.h" #include "util.h" #include "constants/battle_move_effects.h" @@ -60,7 +67,7 @@ extern const u16 gUnknown_08D004E0[]; extern const struct MonCoords gCastformFrontSpriteCoords[]; extern u8 gStatStageRatios[][2]; -extern u8 gUnknown_02024A76[4]; +extern u8 gActionsByTurnOrder[4]; extern struct UnknownPokemonStruct2 gUnknown_02023A00[]; extern u8 gBattleBufferB[][0x200]; extern u8 gActiveBank; @@ -68,7 +75,7 @@ extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; extern u8 gCurrentActionFuncId; -extern u8 gTurnOrder[]; +extern u8 gBanksByTurnOrder[]; extern struct UnknownStruct12 gUnknown_02024AD0[]; extern u8 gObjectBankIDs[]; extern u16 gCurrentMove; @@ -82,7 +89,7 @@ extern u16 gLastUsedMove[]; extern u16 gMoveHitWith[]; extern u16 gUnknown_02024C44[]; extern u16 gUnknown_02024C4C[]; -extern u16 gLockedMove[]; +extern u16 gLockedMoves[]; extern u8 gUnknown_02024C5C[]; extern u16 gChosenMovesByBanks[]; extern u32 gHitMarker; @@ -112,8 +119,8 @@ extern u16 gBattle_WIN0V; extern u16 gBattle_BG2_Y; extern u32 gUnknown_03004284; extern u16 gBattle_BG2_X; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u16 gBattle_WIN0H; extern MainCallback gPreBattleCallback1; @@ -140,10 +147,33 @@ extern u8 gCurrentTurnActionNumber; extern void (* const gUnknown_081FA640[])(void); extern void (* const gUnknown_081FA678[])(void); extern u8* gBattlescriptCurrInstr; -extern u8 gUnknown_081D8E02[]; +extern u8 BattleScript_LinkBattleWonOrLost[]; extern u8 BattleScript_PayDayMoneyAndPickUpItems[]; extern u8 gUnknown_081D8E0D[]; extern u8 BattleScript_LocalTrainerBattleWon[]; +extern u8 BattleScript_LocalBattleLost[]; +extern u8 BattleScript_GotAwaySafely[]; +extern u8 BattleScript_SmokeBallEscape[]; +extern u8 BattleScript_RanAwayUsingMonAbility[]; +extern u8 BattleScript_WildMonFled[]; +extern u8 BattleScript_ActionSwitch[]; +extern u8 BattleScript_PrintFailedToRunString[]; +extern const BattleCmdFunc gBattleScriptingCommandsTable[]; +extern u8 gCritMultiplier; +extern u8 gCurrMovePos; +extern u8 gUnknown_02024BE5; +extern u16 gChosenMove; +extern u8* gBattleScriptsForMoveEffects[]; +extern u16 gLastUsedItem; +extern u8 * const gBattlescriptsForBallThrow[]; +extern u8 * const gBattlescriptsForRunningByItem[]; +extern u8 * const gBattlescriptsForUsingItem[]; +extern u8 * const gBattlescriptsForSafariActions[]; +extern u8 gBattleTextBuff2[]; +extern u8 gNumSafariBalls; +extern u8 gUnknown_081FA70C[][3]; +extern u8 gUnknown_081FA71B[]; +extern u8 gUnknown_081FA71F[]; void b_call_bc_move_exec(const u8* BS_ptr); @@ -153,7 +183,11 @@ void SetActionsAndBanksTurnOrder(void); static void TurnValuesCleanUp(u8); void SpecialStatusesClear(void); static void RunTurnActionsFunctions(void); -void sub_8013C9C(); +void HandleEndTurn_FinishBattle(); +static void FreeResetData_ReturnToOvOrDoEvolutions(void); +void TryEvolvePokemon(void); +static void ReturnFromBattleToOverworld(void); +static void WaitForEvoSceneToFinish(void); void sub_800E7C4(void) { @@ -202,8 +236,8 @@ void InitBattle(void) sub_80895F8(gUnknown_081F9674); SetUpWindowConfig(&gWindowConfig_81E6C58); ResetPaletteFade(); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -491,7 +525,7 @@ void sub_800EC9C(void) { gPreBattleCallback1 = gMain.callback1; gMain.callback1 = sub_8010824; - SetMainCallback2(sub_800F808); + SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gTrainerBattleOpponent = 0x800; @@ -849,7 +883,7 @@ void sub_800F298(void) { gPreBattleCallback1 = gMain.callback1; gMain.callback1 = sub_8010824; - SetMainCallback2(sub_800F808); + SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { gTrainerBattleOpponent = 0x800; @@ -860,7 +894,7 @@ void sub_800F298(void) } } -void sub_800F808(void) +void BattleMainCB2(void) { AnimateSprites(); BuildOamBuffer(); @@ -1024,8 +1058,8 @@ void sub_800FCD4(void) void sub_800FCFC(void) { Random(); // unused return value - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; REG_BG2HOFS = gBattle_BG2_X; @@ -1178,8 +1212,8 @@ void c2_8011A1C(void) } SetUpWindowConfig(&gWindowConfig_81E6C58); ResetPaletteFade(); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -1549,7 +1583,7 @@ void sub_8010874(void) gUnknown_02024C44[i] = 0; gUnknown_02024C4C[i] = 0; gUnknown_02024C5C[i] = 0xFF; - gLockedMove[i] = 0; + gLockedMoves[i] = 0; gUnknown_02024C2C[i] = 0; eFlashFireArr.arr[i] = 0; } @@ -2098,12 +2132,12 @@ void BattleBeginFirstTurn(void) if (ewram16058 == 0) { for (i = 0; i < gNoOfAllBanks; i++) - gTurnOrder[i] = i; + gBanksByTurnOrder[i] = i; for (i = 0; i < gNoOfAllBanks - 1; i++) { for (j = i + 1; j < gNoOfAllBanks; j++) { - if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 1) != 0) + if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 1) != 0) SwapTurnOrder(i, j); } } @@ -2115,7 +2149,7 @@ void BattleBeginFirstTurn(void) } while (ewram16058 < gNoOfAllBanks) { - if (AbilityBattleEffects(0, gTurnOrder[ewram16058], 0, 0, 0) != 0) + if (AbilityBattleEffects(0, gBanksByTurnOrder[ewram16058], 0, 0, 0) != 0) r9++; ewram16058++; if (r9 != 0) @@ -2127,7 +2161,7 @@ void BattleBeginFirstTurn(void) return; while (ewram160F9 < gNoOfAllBanks) { - if (ItemBattleEffects(0, gTurnOrder[ewram160F9], 0) != 0) + if (ItemBattleEffects(0, gBanksByTurnOrder[ewram160F9], 0) != 0) r9++; ewram160F9++; if (r9 != 0) @@ -2199,7 +2233,7 @@ void BattleTurnPassed(void) if (TurnBasedEffects() != 0) return; } - if (sub_80173A4() != 0) + if (HandleFaintedMonActions() != 0) return; ewram16059 = 0; if (sub_80170DC() != 0) @@ -3861,13 +3895,13 @@ void SwapTurnOrder(u8 a, u8 b) { int temp; - temp = gUnknown_02024A76[a]; - gUnknown_02024A76[a] = gUnknown_02024A76[b]; - gUnknown_02024A76[b] = temp; + temp = gActionsByTurnOrder[a]; + gActionsByTurnOrder[a] = gActionsByTurnOrder[b]; + gActionsByTurnOrder[b] = temp; - temp = gTurnOrder[a]; - gTurnOrder[a] = gTurnOrder[b]; - gTurnOrder[b] = temp; + temp = gBanksByTurnOrder[a]; + gBanksByTurnOrder[a] = gBanksByTurnOrder[b]; + gBanksByTurnOrder[b] = temp; } // Determines which of the two given mons will strike first in a battle. @@ -4024,8 +4058,8 @@ void SetActionsAndBanksTurnOrder(void) { for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) { - gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; - gTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; var++; } } @@ -4053,15 +4087,15 @@ void SetActionsAndBanksTurnOrder(void) if (var == 5) { - gUnknown_02024A76[0] = gActionForBanks[gActiveBank]; - gTurnOrder[0] = gActiveBank; + gActionsByTurnOrder[0] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[0] = gActiveBank; var = 1; for (i = 0; i < gNoOfAllBanks; i++) { if (i != gActiveBank) { - gUnknown_02024A76[var] = gActionForBanks[i]; - gTurnOrder[var] = i; + gActionsByTurnOrder[var] = gActionForBanks[i]; + gBanksByTurnOrder[var] = i; var++; } } @@ -4075,8 +4109,8 @@ void SetActionsAndBanksTurnOrder(void) { if (gActionForBanks[gActiveBank] == ACTION_USE_ITEM || gActionForBanks[gActiveBank] == ACTION_SWITCH) { - gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; - gTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; var++; } } @@ -4084,8 +4118,8 @@ void SetActionsAndBanksTurnOrder(void) { if (gActionForBanks[gActiveBank] != ACTION_USE_ITEM && gActionForBanks[gActiveBank] != ACTION_SWITCH) { - gUnknown_02024A76[var] = gActionForBanks[gActiveBank]; - gTurnOrder[var] = gActiveBank; + gActionsByTurnOrder[var] = gActionForBanks[gActiveBank]; + gBanksByTurnOrder[var] = gActiveBank; var++; } } @@ -4093,12 +4127,12 @@ void SetActionsAndBanksTurnOrder(void) { for (j = i + 1; j < gNoOfAllBanks; j++) { - u8 bank1 = gTurnOrder[i]; - u8 bank2 = gTurnOrder[j]; - if (gUnknown_02024A76[i] != ACTION_USE_ITEM - && gUnknown_02024A76[j] != ACTION_USE_ITEM - && gUnknown_02024A76[i] != ACTION_SWITCH - && gUnknown_02024A76[j] != ACTION_SWITCH) + u8 bank1 = gBanksByTurnOrder[i]; + u8 bank2 = gBanksByTurnOrder[j]; + if (gActionsByTurnOrder[i] != ACTION_USE_ITEM + && gActionsByTurnOrder[j] != ACTION_USE_ITEM + && gActionsByTurnOrder[i] != ACTION_SWITCH + && gActionsByTurnOrder[j] != ACTION_SWITCH) { if (GetWhoStrikesFirst(bank1, bank2, FALSE)) SwapTurnOrder(i, j); @@ -4184,7 +4218,7 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) { // something stupid needed to match u8 zero; - gCurrentActionFuncId = gUnknown_02024A76[(zero = 0)]; + gCurrentActionFuncId = gActionsByTurnOrder[(zero = 0)]; } gDynamicBasePower = 0; @@ -4227,7 +4261,7 @@ void HandleEndTurn_BattleWon(void) { gBattleTextBuff1[0] = gBattleOutcome; gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); - gBattlescriptCurrInstr = gUnknown_081D8E02; + gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); } else if (gBattleTypeFlags & (BATTLE_TYPE_BATTLE_TOWER | BATTLE_TYPE_EREADER_TRAINER)) @@ -4266,5 +4300,1091 @@ void HandleEndTurn_BattleWon(void) gBattlescriptCurrInstr = BattleScript_PayDayMoneyAndPickUpItems; } - gBattleMainFunc = sub_8013C9C; + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +void HandleEndTurn_BattleLost(void) +{ + gCurrentActionFuncId = 0; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleTextBuff1[0] = gBattleOutcome; + gBankAttacker = GetBankByIdentity(IDENTITY_PLAYER_MON1); + gBattlescriptCurrInstr = BattleScript_LinkBattleWonOrLost; + gBattleOutcome &= ~(OUTCOME_LINK_BATTLE_RUN); + } + else + { + gBattlescriptCurrInstr = BattleScript_LocalBattleLost; + } + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +void HandleEndTurn_RanFromBattle(void) +{ + gCurrentActionFuncId = 0; + + switch (gProtectStructs[gBankAttacker].fleeFlag) + { + default: + gBattlescriptCurrInstr = BattleScript_GotAwaySafely; + break; + case 1: + gBattlescriptCurrInstr = BattleScript_SmokeBallEscape; + break; + case 2: + gBattlescriptCurrInstr = BattleScript_RanAwayUsingMonAbility; + break; + } + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +void HandleEndTurn_MonFled(void) +{ + gCurrentActionFuncId = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]); + gBattlescriptCurrInstr = BattleScript_WildMonFled; + + gBattleMainFunc = HandleEndTurn_FinishBattle; +} + +void HandleEndTurn_FinishBattle(void) +{ + if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) + { + if (!(gBattleTypeFlags & (BATTLE_TYPE_LINK + | BATTLE_TYPE_FIRST_BATTLE + | BATTLE_TYPE_SAFARI + | BATTLE_TYPE_EREADER_TRAINER + | BATTLE_TYPE_WALLY_TUTORIAL + | BATTLE_TYPE_BATTLE_TOWER))) + { + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gBattleResults.poke1Species == SPECIES_NONE) + { + gBattleResults.poke1Species = gBattleMons[gActiveBank].species; + StringCopy(gBattleResults.pokeString1, gBattleMons[gActiveBank].nickname); + } + else + { + gBattleResults.opponentSpecies = gBattleMons[gActiveBank].species; + StringCopy(gBattleResults.pokeString2, gBattleMons[gActiveBank].nickname); + } + } + } + PutPokemonTodayCaughtOnAir(); + } + + BeginFastPaletteFade(3); + FadeOutMapMusic(5); + gBattleMainFunc = FreeResetData_ReturnToOvOrDoEvolutions; + gCB2_AfterEvolution = BattleMainCB2; + } + else + { + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } +} + +static void FreeResetData_ReturnToOvOrDoEvolutions(void) +{ + if (!gPaletteFade.active) + { + ResetSpriteData(); + if (gLeveledUpInBattle == 0 || gBattleOutcome != BATTLE_WON) + { + gBattleMainFunc = ReturnFromBattleToOverworld; + return; + } + else + { + gBattleMainFunc = TryEvolvePokemon; + } + } +} + +void TryEvolvePokemon(void) +{ + s32 i; + + while (gLeveledUpInBattle != 0) + { + for (i = 0; i < 6; i++) + { + if (gLeveledUpInBattle & gBitTable[i]) + { + u16 species; + u8 levelUpBits = gLeveledUpInBattle; + + levelUpBits &= ~(gBitTable[i]); + gLeveledUpInBattle = levelUpBits; + + species = GetEvolutionTargetSpecies(&gPlayerParty[i], 0, levelUpBits); + if (species != SPECIES_NONE) + { + gBattleMainFunc = WaitForEvoSceneToFinish; + EvolutionScene(&gPlayerParty[i], species, 0x81, i); + return; + } + } + } + } + + gBattleMainFunc = ReturnFromBattleToOverworld; +} + +static void WaitForEvoSceneToFinish(void) +{ + if (gMain.callback2 == BattleMainCB2) + gBattleMainFunc = TryEvolvePokemon; +} + +static void ReturnFromBattleToOverworld(void) +{ + if (!(gBattleTypeFlags & BATTLE_TYPE_LINK)) + { + RandomlyGivePartyPokerus(gPlayerParty); + PartySpreadPokerus(gPlayerParty); + } + + if (gBattleTypeFlags & BATTLE_TYPE_LINK && gReceivedRemoteLinkPlayers != 0) + return; + + gSpecialVar_Result = gBattleOutcome; + gMain.inBattle = 0; + gMain.callback1 = gPreBattleCallback1; + + if (gBattleTypeFlags & BATTLE_TYPE_ROAMER) + { + UpdateRoamerHPStatus(&gEnemyParty[0]); + if (gBattleOutcome == BATTLE_WON || gBattleOutcome == BATTLE_CAUGHT) + SetRoamerInactive(); + } + + m4aSongNumStop(0x5A); + SetMainCallback2(gMain.savedCallback); +} + +void RunBattleScriptCommands_PopCallbacksStack(void) +{ + if (gCurrentActionFuncId == 0xB || gCurrentActionFuncId == 0xC) + { + if (B_FUNCTION_STACK->size != 0) + B_FUNCTION_STACK->size--; + gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size]; + } + else + { + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); + } +} + +void RunBattleScriptCommands(void) +{ + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[gBattlescriptCurrInstr[0]](); +} + +void HandleAction_UseMove(void) +{ + u8 side; + u8 var = 4; + + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + + if (ewram160A6 & gBitTable[gBankAttacker]) + { + gCurrentActionFuncId = ACTION_FINISHED; + return; + } + + gCritMultiplier = 1; + eDmgMultiplier = 1; + ewram160E7 = 0; + gBattleMoveFlags = 0; + gMultiHitCounter = 0; + gBattleCommunication[6] = 0; + gCurrMovePos = gUnknown_02024BE5 = ewram1608Carr(gBankAttacker); + + // choose move + if (gProtectStructs[gBankAttacker].onlyStruggle) + { + gProtectStructs[gBankAttacker].onlyStruggle = 0; + gCurrentMove = gChosenMove = MOVE_STRUGGLE; + gHitMarker |= HITMARKER_NO_PPDEDUCT; + ewram16010arr(gBankAttacker) = GetMoveTarget(MOVE_STRUGGLE, 0); + } + else if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS || gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + { + gCurrentMove = gChosenMove = gLockedMoves[gBankAttacker]; + } + // encore forces you to use the same move + else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBankAttacker].encoredMove == gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + { + gCurrentMove = gChosenMove = gDisableStructs[gBankAttacker].encoredMove; + gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos; + ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + // check if the encored move wasn't overwritten + else if (gDisableStructs[gBankAttacker].encoredMove != MOVE_NONE + && gDisableStructs[gBankAttacker].encoredMove != gBattleMons[gBankAttacker].moves[gDisableStructs[gBankAttacker].encoredMovePos]) + { + gCurrMovePos = gUnknown_02024BE5 = gDisableStructs[gBankAttacker].encoredMovePos; + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gDisableStructs[gBankAttacker].encoredMove = MOVE_NONE; + gDisableStructs[gBankAttacker].encoredMovePos = 0; + gDisableStructs[gBankAttacker].encoreTimer1 = 0; + ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + else if (gBattleMons[gBankAttacker].moves[gCurrMovePos] != gChosenMovesByBanks[gBankAttacker]) + { + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + ewram16010arr(gBankAttacker) = GetMoveTarget(gCurrentMove, 0); + } + else + { + gCurrentMove = gChosenMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + } + + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + gBattleResults.lastUsedMove = gCurrentMove; + else + gBattleResults.opponentMove = gCurrentMove; + + // choose target + side = GetBankSide(gBankAttacker) ^ BIT_SIDE; + if (gSideTimers[side].followmeTimer != 0 + && gBattleMoves[gCurrentMove].target == MOVE_TARGET_SELECTED + && GetBankSide(gBankAttacker) != GetBankSide(gSideTimers[side].followmeTarget) + && gBattleMons[gSideTimers[side].followmeTarget].hp != 0) + { + gBankTarget = gSideTimers[side].followmeTarget; + } + else if ((gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + && gSideTimers[side].followmeTimer == 0 + && (gBattleMoves[gCurrentMove].power != 0 + || gBattleMoves[gCurrentMove].target != MOVE_TARGET_x10) + && gBattleMons[ewram16010arr(gBankAttacker)].ability != ABILITY_LIGHTNING_ROD + && gBattleMoves[gCurrentMove].type == TYPE_ELECTRIC) + { + side = GetBankSide(gBankAttacker); + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (side != GetBankSide(gActiveBank) + && ewram16010arr(gBankAttacker) != gActiveBank + && gBattleMons[gActiveBank].ability == ABILITY_LIGHTNING_ROD + && BankGetTurnOrder(gActiveBank) < var) + { + var = BankGetTurnOrder(gActiveBank); + } + } + if (var == 4) + { + if (gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (Random() & 1) + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + else + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + } + else + { + if (Random() & 1) + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + else + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + } + } + else + { + gBankTarget = ewram16010arr(gBankAttacker); + } + + if (gAbsentBankFlags & gBitTable[gBankTarget]) + { + if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + { + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + } + else + { + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + } + } + } + else + { + gActiveBank = gBanksByTurnOrder[var]; + RecordAbilityBattle(gActiveBank, gBattleMons[gActiveBank].ability); + gSpecialStatuses[gActiveBank].lightningRodRedirected = 1; + gBankTarget = gActiveBank; + } + } + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE + && gBattleMoves[gChosenMove].target & MOVE_TARGET_RANDOM) + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (Random() & 1) + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON1); + else + gBankTarget = GetBankByIdentity(IDENTITY_OPPONENT_MON2); + } + else + { + if (Random() & 1) + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON1); + else + gBankTarget = GetBankByIdentity(IDENTITY_PLAYER_MON2); + } + + if (gAbsentBankFlags & gBitTable[gBankTarget] + && GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + { + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + } + } + else + { + gBankTarget = ewram16010arr(gBankAttacker); + if (gAbsentBankFlags & gBitTable[gBankTarget]) + { + if (GetBankSide(gBankAttacker) != GetBankSide(gBankTarget)) + { + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + } + else + { + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ BIT_SIDE); + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetBankByIdentity(GetBankIdentity(gBankTarget) ^ BIT_MON); + } + } + } + + gBattlescriptCurrInstr = gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +void HandleAction_Switch(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gActionSelectionCursor[gBankAttacker] = 0; + gMoveSelectionCursor[gBankAttacker] = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, ewram16064arr(gBankAttacker)) + + ewram16003 = gBankAttacker; + gBattlescriptCurrInstr = BattleScript_ActionSwitch; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + + if (gBattleResults.unk2 < 255) + gBattleResults.unk2++; +} + +#ifdef NONMATCHING +void HandleAction_UseItem(void) +{ + gBankAttacker = gBankTarget = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gDisableStructs[gBankAttacker].furyCutterCounter = 0; + gLastUsedItem = gBattleBufferB[gBankAttacker][1] | (gBattleBufferB[gBankAttacker][2] << 8); + + if (gLastUsedItem <= ITEM_PREMIER_BALL) // is ball + { + gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem]; + } + else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL) + { + gBattlescriptCurrInstr = gBattlescriptsForRunningByItem[0]; + } + else if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[0]; + } + else + { + ewram16003 = gBankAttacker; + + switch (ewram160D8(gBankAttacker)) + { + case AI_ITEM_FULL_RESTORE: + case AI_ITEM_HEAL_HP: + break; + case AI_ITEM_CURE_CONDITION: + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + if (ewram160DA(gBankAttacker) & 1) + { + if (ewram160DA(gBankAttacker) & 0x3E) + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + } + else + { + while (!(ewram160DA(gBankAttacker) & 1)) + { + ewram160DA(gBankAttacker) /= 2; + gBattleCommunication[MULTISTRING_CHOOSER]++; + } + } + break; + case AI_ITEM_X_STAT: + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + if (ewram160DA(gBankAttacker) & 0x80) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 5; + } + else + { + PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK) + PREPARE_STRING_BUFFER(gBattleTextBuff2, 0xD2) + + while (!(ewram160DA(gBankAttacker) & 1)) + { + ewram160DA(gBankAttacker) /= 2; + gBattleTextBuff1[2]++; + } + + ewram160A4 = gBattleTextBuff1[2] + 14; + ewram160A5 = 0; + } + break; + case AI_ITEM_GUARD_SPECS: + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + break; + } + + gBattlescriptCurrInstr = gBattlescriptsForUsingItem[ewram160D8(gBankAttacker)]; + } + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} +#else +__attribute__((naked)) +void HandleAction_UseItem(void) +{ + asm(".syntax unified\n\ + push {r4-r7,lr}\n\ + mov r7, r10\n\ + mov r6, r9\n\ + mov r5, r8\n\ + push {r5-r7}\n\ + ldr r4, _08014804 @ =gBankAttacker\n\ + ldr r2, _08014808 @ =gBankTarget\n\ + ldr r1, _0801480C @ =gBanksByTurnOrder\n\ + ldr r0, _08014810 @ =gCurrentTurnActionNumber\n\ + ldrb r0, [r0]\n\ + adds r0, r1\n\ + ldrb r0, [r0]\n\ + strb r0, [r2]\n\ + strb r0, [r4]\n\ + ldr r0, _08014814 @ =gBattle_BG0_X\n\ + movs r2, 0\n\ + strh r2, [r0]\n\ + ldr r0, _08014818 @ =gBattle_BG0_Y\n\ + strh r2, [r0]\n\ + ldr r3, _0801481C @ =gDisableStructs\n\ + ldrb r1, [r4]\n\ + lsls r0, r1, 3\n\ + subs r0, r1\n\ + lsls r0, 2\n\ + adds r0, r3\n\ + strb r2, [r0, 0x10]\n\ + ldr r5, _08014820 @ =gLastUsedItem\n\ + ldr r2, _08014824 @ =gBattleBufferB\n\ + ldrb r1, [r4]\n\ + lsls r1, 9\n\ + adds r0, r2, 0x1\n\ + adds r0, r1, r0\n\ + ldrb r3, [r0]\n\ + adds r2, 0x2\n\ + adds r1, r2\n\ + ldrb r0, [r1]\n\ + lsls r0, 8\n\ + orrs r3, r0\n\ + strh r3, [r5]\n\ + cmp r3, 0xC\n\ + bhi _08014830\n\ + ldr r2, _08014828 @ =gBattlescriptCurrInstr\n\ + ldr r1, _0801482C @ =gBattlescriptsForBallThrow\n\ + ldrh r0, [r5]\n\ + lsls r0, 2\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + str r0, [r2]\n\ + b _08014A8C\n\ + .align 2, 0\n\ +_08014804: .4byte gBankAttacker\n\ +_08014808: .4byte gBankTarget\n\ +_0801480C: .4byte gBanksByTurnOrder\n\ +_08014810: .4byte gCurrentTurnActionNumber\n\ +_08014814: .4byte gBattle_BG0_X\n\ +_08014818: .4byte gBattle_BG0_Y\n\ +_0801481C: .4byte gDisableStructs\n\ +_08014820: .4byte gLastUsedItem\n\ +_08014824: .4byte gBattleBufferB\n\ +_08014828: .4byte gBattlescriptCurrInstr\n\ +_0801482C: .4byte gBattlescriptsForBallThrow\n\ +_08014830:\n\ + adds r0, r3, 0\n\ + subs r0, 0x50\n\ + lsls r0, 16\n\ + lsrs r0, 16\n\ + cmp r0, 0x1\n\ + bhi _0801484C\n\ + ldr r0, _08014844 @ =gBattlescriptCurrInstr\n\ + ldr r1, _08014848 @ =gBattlescriptsForRunningByItem\n\ + b _0801485C\n\ + .align 2, 0\n\ +_08014844: .4byte gBattlescriptCurrInstr\n\ +_08014848: .4byte gBattlescriptsForRunningByItem\n\ +_0801484C:\n\ + ldrb r0, [r4]\n\ + bl GetBankSide\n\ + lsls r0, 24\n\ + cmp r0, 0\n\ + bne _0801486C\n\ + ldr r0, _08014864 @ =gBattlescriptCurrInstr\n\ + ldr r1, _08014868 @ =gBattlescriptsForUsingItem\n\ +_0801485C:\n\ + ldr r1, [r1]\n\ + str r1, [r0]\n\ + b _08014A8C\n\ + .align 2, 0\n\ +_08014864: .4byte gBattlescriptCurrInstr\n\ +_08014868: .4byte gBattlescriptsForUsingItem\n\ +_0801486C:\n\ + ldr r2, _080148A0 @ =gSharedMem\n\ + ldrb r0, [r4]\n\ + ldr r3, _080148A4 @ =0x00016003\n\ + adds r1, r2, r3\n\ + strb r0, [r1]\n\ + lsls r0, 24\n\ + lsrs r0, 25\n\ + ldr r1, _080148A8 @ =0x000160d8\n\ + adds r0, r1\n\ + adds r0, r2\n\ + ldrb r0, [r0]\n\ + subs r0, 0x1\n\ + mov r8, r4\n\ + ldr r3, _080148AC @ =gBattlescriptCurrInstr\n\ + mov r9, r3\n\ + ldr r1, _080148B0 @ =gBattlescriptsForUsingItem\n\ + mov r10, r1\n\ + adds r7, r2, 0\n\ + cmp r0, 0x4\n\ + bls _08014896\n\ + b _08014A74\n\ +_08014896:\n\ + lsls r0, 2\n\ + ldr r1, _080148B4 @ =_080148B8\n\ + adds r0, r1\n\ + ldr r0, [r0]\n\ + mov pc, r0\n\ + .align 2, 0\n\ +_080148A0: .4byte gSharedMem\n\ +_080148A4: .4byte 0x00016003\n\ +_080148A8: .4byte 0x000160d8\n\ +_080148AC: .4byte gBattlescriptCurrInstr\n\ +_080148B0: .4byte gBattlescriptsForUsingItem\n\ +_080148B4: .4byte _080148B8\n\ + .align 2, 0\n\ +_080148B8:\n\ + .4byte _08014A74\n\ + .4byte _08014A74\n\ + .4byte _080148CC\n\ + .4byte _08014958\n\ + .4byte _08014A30\n\ +_080148CC:\n\ + ldr r2, _08014904 @ =gBattleCommunication\n\ + movs r0, 0\n\ + strb r0, [r2, 0x5]\n\ + ldr r1, _08014908 @ =gBankAttacker\n\ + ldrb r0, [r1]\n\ + lsrs r0, 1\n\ + ldr r6, _0801490C @ =0x000160da\n\ + adds r0, r6\n\ + adds r0, r7\n\ + ldrb r3, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r3\n\ + mov r8, r1\n\ + cmp r0, 0\n\ + beq _08014918\n\ + movs r0, 0x3E\n\ + ands r0, r3\n\ + ldr r3, _08014910 @ =gBattlescriptCurrInstr\n\ + mov r9, r3\n\ + ldr r1, _08014914 @ =gBattlescriptsForUsingItem\n\ + mov r10, r1\n\ + cmp r0, 0\n\ + bne _080148FC\n\ + b _08014A74\n\ +_080148FC:\n\ + movs r0, 0x5\n\ + strb r0, [r2, 0x5]\n\ + b _08014A74\n\ + .align 2, 0\n\ +_08014904: .4byte gBattleCommunication\n\ +_08014908: .4byte gBankAttacker\n\ +_0801490C: .4byte 0x000160da\n\ +_08014910: .4byte gBattlescriptCurrInstr\n\ +_08014914: .4byte gBattlescriptsForUsingItem\n\ +_08014918:\n\ + ldr r3, _08014950 @ =gBattlescriptCurrInstr\n\ + mov r9, r3\n\ + ldr r0, _08014954 @ =gBattlescriptsForUsingItem\n\ + mov r10, r0\n\ + adds r5, r7, 0\n\ + mov r4, r8\n\ + adds r3, r6, 0\n\ +_08014926:\n\ + ldrb r0, [r4]\n\ + lsrs r0, 1\n\ + adds r0, r3\n\ + adds r0, r5\n\ + ldrb r1, [r0]\n\ + lsrs r1, 1\n\ + strb r1, [r0]\n\ + ldrb r0, [r2, 0x5]\n\ + adds r0, 0x1\n\ + strb r0, [r2, 0x5]\n\ + ldrb r0, [r4]\n\ + lsrs r0, 1\n\ + adds r0, r3\n\ + adds r0, r5\n\ + ldrb r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _08014926\n\ + b _08014A74\n\ + .align 2, 0\n\ +_08014950: .4byte gBattlescriptCurrInstr\n\ +_08014954: .4byte gBattlescriptsForUsingItem\n\ +_08014958:\n\ + ldr r3, _0801498C @ =gBattleCommunication\n\ + movs r0, 0x4\n\ + strb r0, [r3, 0x5]\n\ + ldr r2, _08014990 @ =gBankAttacker\n\ + ldrb r0, [r2]\n\ + lsrs r0, 1\n\ + ldr r1, _08014994 @ =0x000160da\n\ + mov r12, r1\n\ + add r0, r12\n\ + adds r6, r0, r7\n\ + ldrb r1, [r6]\n\ + movs r0, 0x80\n\ + ands r0, r1\n\ + lsls r0, 24\n\ + lsrs r5, r0, 24\n\ + mov r8, r2\n\ + cmp r5, 0\n\ + beq _080149A0\n\ + movs r0, 0x5\n\ + strb r0, [r3, 0x5]\n\ + ldr r2, _08014998 @ =gBattlescriptCurrInstr\n\ + mov r9, r2\n\ + ldr r3, _0801499C @ =gBattlescriptsForUsingItem\n\ + mov r10, r3\n\ + b _08014A74\n\ + .align 2, 0\n\ +_0801498C: .4byte gBattleCommunication\n\ +_08014990: .4byte gBankAttacker\n\ +_08014994: .4byte 0x000160da\n\ +_08014998: .4byte gBattlescriptCurrInstr\n\ +_0801499C: .4byte gBattlescriptsForUsingItem\n\ +_080149A0:\n\ + ldr r3, _08014A18 @ =gBattleTextBuff1\n\ + movs r4, 0xFD\n\ + strb r4, [r3]\n\ + movs r0, 0x5\n\ + strb r0, [r3, 0x1]\n\ + movs r2, 0x1\n\ + strb r2, [r3, 0x2]\n\ + movs r0, 0xFF\n\ + strb r0, [r3, 0x3]\n\ + ldr r1, _08014A1C @ =gBattleTextBuff2\n\ + strb r4, [r1]\n\ + strb r5, [r1, 0x1]\n\ + movs r0, 0xD2\n\ + strb r0, [r1, 0x2]\n\ + strb r5, [r1, 0x3]\n\ + subs r0, 0xD3\n\ + strb r0, [r1, 0x4]\n\ + ldrb r0, [r6]\n\ + ands r2, r0\n\ + ldr r0, _08014A20 @ =gBattlescriptCurrInstr\n\ + mov r9, r0\n\ + ldr r1, _08014A24 @ =gBattlescriptsForUsingItem\n\ + mov r10, r1\n\ + adds r6, r3, 0\n\ + cmp r2, 0\n\ + bne _08014A02\n\ + adds r3, r7, 0\n\ + mov r5, r8\n\ + mov r4, r12\n\ + adds r2, r6, 0\n\ +_080149DC:\n\ + ldrb r0, [r5]\n\ + lsrs r0, 1\n\ + adds r0, r4\n\ + adds r0, r3\n\ + ldrb r1, [r0]\n\ + lsrs r1, 1\n\ + strb r1, [r0]\n\ + ldrb r0, [r2, 0x2]\n\ + adds r0, 0x1\n\ + strb r0, [r2, 0x2]\n\ + ldrb r0, [r5]\n\ + lsrs r0, 1\n\ + adds r0, r4\n\ + adds r0, r3\n\ + ldrb r1, [r0]\n\ + movs r0, 0x1\n\ + ands r0, r1\n\ + cmp r0, 0\n\ + beq _080149DC\n\ +_08014A02:\n\ + ldrb r0, [r6, 0x2]\n\ + adds r0, 0xE\n\ + ldr r2, _08014A28 @ =0x000160a4\n\ + adds r1, r7, r2\n\ + movs r2, 0\n\ + strb r0, [r1]\n\ + ldr r3, _08014A2C @ =0x000160a5\n\ + adds r0, r7, r3\n\ + strb r2, [r0]\n\ + b _08014A74\n\ + .align 2, 0\n\ +_08014A18: .4byte gBattleTextBuff1\n\ +_08014A1C: .4byte gBattleTextBuff2\n\ +_08014A20: .4byte gBattlescriptCurrInstr\n\ +_08014A24: .4byte gBattlescriptsForUsingItem\n\ +_08014A28: .4byte 0x000160a4\n\ +_08014A2C: .4byte 0x000160a5\n\ +_08014A30:\n\ + ldr r0, _08014A50 @ =gBattleTypeFlags\n\ + ldrh r0, [r0]\n\ + movs r1, 0x1\n\ + ands r1, r0\n\ + cmp r1, 0\n\ + beq _08014A64\n\ + ldr r1, _08014A54 @ =gBattleCommunication\n\ + movs r0, 0x2\n\ + strb r0, [r1, 0x5]\n\ + ldr r0, _08014A58 @ =gBankAttacker\n\ + mov r8, r0\n\ + ldr r1, _08014A5C @ =gBattlescriptCurrInstr\n\ + mov r9, r1\n\ + ldr r2, _08014A60 @ =gBattlescriptsForUsingItem\n\ + mov r10, r2\n\ + b _08014A74\n\ + .align 2, 0\n\ +_08014A50: .4byte gBattleTypeFlags\n\ +_08014A54: .4byte gBattleCommunication\n\ +_08014A58: .4byte gBankAttacker\n\ +_08014A5C: .4byte gBattlescriptCurrInstr\n\ +_08014A60: .4byte gBattlescriptsForUsingItem\n\ +_08014A64:\n\ + ldr r0, _08014AA0 @ =gBattleCommunication\n\ + strb r1, [r0, 0x5]\n\ + ldr r3, _08014AA4 @ =gBankAttacker\n\ + mov r8, r3\n\ + ldr r0, _08014AA8 @ =gBattlescriptCurrInstr\n\ + mov r9, r0\n\ + ldr r1, _08014AAC @ =gBattlescriptsForUsingItem\n\ + mov r10, r1\n\ +_08014A74:\n\ + mov r2, r8\n\ + ldrb r0, [r2]\n\ + lsrs r0, 1\n\ + ldr r3, _08014AB0 @ =0x000160d8\n\ + adds r0, r3\n\ + adds r0, r7\n\ + ldrb r0, [r0]\n\ + lsls r0, 2\n\ + add r0, r10\n\ + ldr r0, [r0]\n\ + mov r1, r9\n\ + str r0, [r1]\n\ +_08014A8C:\n\ + movs r0, 0xA\n\ + ldr r2, _08014AB4 @ =gCurrentActionFuncId\n\ + strb r0, [r2]\n\ + pop {r3-r5}\n\ + mov r8, r3\n\ + mov r9, r4\n\ + mov r10, r5\n\ + pop {r4-r7}\n\ + pop {r0}\n\ + bx r0\n\ + .align 2, 0\n\ +_08014AA0: .4byte gBattleCommunication\n\ +_08014AA4: .4byte gBankAttacker\n\ +_08014AA8: .4byte gBattlescriptCurrInstr\n\ +_08014AAC: .4byte gBattlescriptsForUsingItem\n\ +_08014AB0: .4byte 0x000160d8\n\ +_08014AB4: .4byte gCurrentActionFuncId\n\ + .syntax divided\n"); +} +#endif // NONMATCHING + +bool8 TryRunFromBattle(u8 bank) +{ + bool8 effect = FALSE; + u8 holdEffect; + u8 speedVar; + + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[bank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); + + gStringBank = bank; + + if (holdEffect == HOLD_EFFECT_CAN_ALWAYS_RUN) + { + gLastUsedItem = gBattleMons[bank].item ; + gProtectStructs[bank].fleeFlag = 1; + effect++; + } + else if (gBattleMons[bank].ability == ABILITY_RUN_AWAY) + { + gLastUsedAbility = ABILITY_RUN_AWAY; + gProtectStructs[bank].fleeFlag = 2; + effect++; + } + else + { + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + { + if (gBattleMons[bank].speed < gBattleMons[bank ^ BIT_SIDE].speed) + { + speedVar = (gBattleMons[bank].speed * 128) / (gBattleMons[bank ^ BIT_SIDE].speed) + (ewram16078 * 30); + if (speedVar > (Random() & 0xFF)) + effect++; + } + else // same speed or faster + { + effect++; + } + } + + ewram16078++; + } + + if (effect) + { + gCurrentTurnActionNumber = gNoOfAllBanks; + gBattleOutcome = BATTLE_RAN; + } + + return effect; +} + +void HandleAction_Run(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gCurrentTurnActionNumber = gNoOfAllBanks; + + for (gActiveBank = 0; gActiveBank < gNoOfAllBanks; gActiveBank++) + { + if (GetBankSide(gActiveBank) == SIDE_PLAYER) + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + gBattleOutcome |= BATTLE_LOST; + } + else + { + if (gActionForBanks[gActiveBank] == ACTION_RUN) + gBattleOutcome |= BATTLE_WON; + } + } + + gBattleOutcome |= OUTCOME_LINK_BATTLE_RUN; + } + else + { + if (GetBankSide(gBankAttacker) == SIDE_PLAYER) + { + if (!TryRunFromBattle(gBankAttacker)) // failed to run away + { + gBattleMons[gBankAttacker].status2 &= ~STATUS2_DESTINY_BOND; + gBattleCommunication[MULTISTRING_CHOOSER] = 3; + gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + } + } + else + { + if (gBattleMons[gBankAttacker].status2 & (STATUS2_WRAPPED | STATUS2_ESCAPE_PREVENTION)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 4; + gBattlescriptCurrInstr = BattleScript_PrintFailedToRunString; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + } + else + { + gCurrentTurnActionNumber = gNoOfAllBanks; + gBattleOutcome = BATTLE_POKE_FLED; + } + } + } +} + +void HandleAction_WatchesCarefully(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[0]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +void HandleAction_SafariZoneBallThrow(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gNumSafariBalls--; + gLastUsedItem = ITEM_SAFARI_BALL; + gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +void HandleAction_ThrowPokeblock(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + gBattleCommunication[MULTISTRING_CHOOSER] = gBattleBufferB[gBankAttacker][1] - 1; + gLastUsedItem = gBattleBufferB[gBankAttacker][2]; + + if (ewram16087 < 3) + ewram16087++; + if (ewram16088 > 1) + { + if (ewram16088 < gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]]) + ewram16088 = 1; + else + ewram16088 -= gUnknown_081FA70C[ewram16087][gBattleCommunication[MULTISTRING_CHOOSER]]; + } + + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +void HandleAction_GoNear(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + + ewram16089 += gUnknown_081FA71B[ewram16086]; + if (ewram16089 > 20) + ewram16089 = 20; + + ewram16088 += gUnknown_081FA71F[ewram16086]; + if (ewram16088 > 20) + ewram16088 = 20; + + if (ewram16086 < 3) + { + ewram16086++; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; +} + +void HandleAction_SafriZoneRun(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + PlaySE(SE_NIGERU); + gCurrentTurnActionNumber = gNoOfAllBanks; + gBattleOutcome = BATTLE_RAN; +} + +void HandleAction_Action9(void) +{ + gBankAttacker = gBanksByTurnOrder[gCurrentTurnActionNumber]; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; + + PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, gBankAttacker, gBattlePartyID[gBankAttacker]) + + gBattlescriptCurrInstr = gBattlescriptsForSafariActions[3]; + gCurrentActionFuncId = ACTION_RUN_BATTLESCRIPT; + gActionsByTurnOrder[1] = ACTION_FINISHED; +} + +void HandleAction_Action11(void) +{ + if (!HandleFaintedMonActions()) + { + ewram16059 = 0; + gCurrentActionFuncId = ACTION_FINISHED; + } +} + +void HandleAction_NothingIsFainted(void) +{ + gCurrentTurnActionNumber++; + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; + gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED + | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR + | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 + | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT + | HITMARKER_x8000000 | HITMARKER_x4000000); +} + +void HandleAction_ActionFinished(void) +{ + gCurrentTurnActionNumber++; + gCurrentActionFuncId = gActionsByTurnOrder[gCurrentTurnActionNumber]; + SpecialStatusesClear(); + gHitMarker &= ~(HITMARKER_DESTINYBOND | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_ATTACKSTRING_PRINTED + | HITMARKER_NO_PPDEDUCT | HITMARKER_IGNORE_SAFEGUARD | HITMARKER_IGNORE_ON_AIR + | HITMARKER_IGNORE_UNDERGROUND | HITMARKER_IGNORE_UNDERWATER | HITMARKER_x100000 + | HITMARKER_OBEYS | HITMARKER_x10 | HITMARKER_SYNCHRONISE_EFFECT + | HITMARKER_x8000000 | HITMARKER_x4000000); + + gBattleMoveDamage = 0; + ewram16002 = 0; + ewram160A1 = 0; + gMoveHitWith[gBankAttacker] = 0; + gUnknown_02024C44[gBankAttacker] = 0; + eDynamicMoveType = 0; + gDynamicBasePower = 0; + ewram1600C = 0; + gBattleCommunication[3] = 0; + gBattleCommunication[4] = 0; + eMultihitMoveEffect = 0; + ewram17130 = 0; } diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c index cfa188fa4..92e0404cc 100644 --- a/src/battle/battle_3.c +++ b/src/battle/battle_3.c @@ -33,7 +33,7 @@ extern u8 gNoOfAllBanks; extern u32 gStatuses3[4]; extern u8 gBankAttacker; extern u8 gBankTarget; -extern u8 gTurnOrder[4]; +extern u8 gBanksByTurnOrder[4]; extern u16 gSideAffecting[2]; extern u16 gBattleWeather; extern void (*gBattleMainFunc)(void); @@ -87,8 +87,6 @@ u8 weather_get_current(void); void b_push_move_exec(u8* BS_ptr); void RecordAbilityBattle(u8 bank, u8 ability); void RecordItemBattle(u8 bank, u8 holdEffect); -void sub_8013F54(void); -void sub_8013FBC(void); s8 GetPokeFlavourRelation(u32 pid, u8 flavor); extern u8 BattleScript_MoveSelectionDisabledMove[]; @@ -372,14 +370,14 @@ u8 UpdateTurnCounters(void) case 0: for (i = 0; i < gNoOfAllBanks; i++) { - gTurnOrder[i] = i; + gBanksByTurnOrder[i] = i; } for (i = 0; i < gNoOfAllBanks - 1; i++) { s32 j; for (j = i + 1; j < gNoOfAllBanks; j++) { - if (GetWhoStrikesFirst(gTurnOrder[i], gTurnOrder[j], 0)) + if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) SwapTurnOrder(i, j); } } @@ -496,7 +494,7 @@ u8 UpdateTurnCounters(void) case 5: while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks) { - gActiveBank = gTurnOrder[BATTLE_STRUCT->turnSideTracker]; + gActiveBank = gBanksByTurnOrder[BATTLE_STRUCT->turnSideTracker]; if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) { gBankTarget = gActiveBank; @@ -606,7 +604,7 @@ u8 TurnBasedEffects(void) gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE) { - gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->turnEffectsBank]; + gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->turnEffectsBank]; if (gAbsentBankFlags & gBitTable[gActiveBank]) { BATTLE_STRUCT->turnEffectsBank++; @@ -948,7 +946,7 @@ bool8 sub_80170DC(void) // handle future sight and perish song case 1: // perish song while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks) { - gActiveBank = gBankAttacker = gTurnOrder[BATTLE_STRUCT->sub80170DC_Bank]; + gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->sub80170DC_Bank]; if (gAbsentBankFlags & gBitTable[gActiveBank]) BATTLE_STRUCT->sub80170DC_Bank++; else @@ -984,9 +982,9 @@ bool8 sub_80170DC(void) // handle future sight and perish song return 0; } -#define sub_80173A4_MAX_CASE 7 +#define HandleFaintedMonActions_MAX_CASE 7 -bool8 sub_80173A4(void) +bool8 HandleFaintedMonActions(void) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) return 0; @@ -1053,7 +1051,7 @@ bool8 sub_80173A4(void) case 7: break; } - } while (BATTLE_STRUCT->sub80173A4_Tracker != sub_80173A4_MAX_CASE); + } while (BATTLE_STRUCT->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE); return 0; } @@ -2255,7 +2253,7 @@ void b_call_bc_move_exec(u8* BS_ptr) { gBattlescriptCurrInstr = BS_ptr; B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; - gBattleMainFunc = sub_8013F54; + gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack; gCurrentActionFuncId = 0; } @@ -2264,7 +2262,7 @@ void b_push_move_exec(u8* BS_ptr) b_movescr_stack_push_cursor(); gBattlescriptCurrInstr = BS_ptr; B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; - gBattleMainFunc = sub_8013FBC; + gBattleMainFunc = RunBattleScriptCommands; } enum diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index d9789f76d..3b1092e45 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -35,8 +35,8 @@ extern u8 gActiveBank; extern u32 gBattleExecBuffer; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[4]; -extern u8 gTurnOrder[4]; -extern u8 gUnknown_02024A76[4]; +extern u8 gBanksByTurnOrder[4]; +extern u8 gActionsByTurnOrder[4]; extern u16 gCurrentMove; extern u8 gLastUsedAbility; extern u16 gBattleWeather; @@ -45,7 +45,7 @@ extern u8 gEffectBank; extern u8 gAbsentBankFlags; extern u8 gMultiHitCounter; extern u16 gLastUsedMove[4]; -extern u16 gLockedMove[4]; +extern u16 gLockedMoves[4]; extern u16 gChosenMovesByBanks[4]; extern u16 gSideAffecting[2]; extern u16 gPauseCounterBattle; @@ -145,10 +145,9 @@ bool32 IsHMMove2(u16 move); void sub_802BBD4(u8 r0, u8 r1, u8 r2, u8 r3, u8 sp0); void nullsub_6(void); void ReshowBattleScreenAfterMenu(void); -void sub_800F808(void); +void BattleMainCB2(void); void AddMoney(u32* moneySaveblock, u32 to_give); void sub_80156DC(void); //set sentpokes value -bool8 sub_8014AB8(u8 bank); //can run from battle u8 CountAliveMons(u8 caseID); void sub_803E1B0(struct Pokemon*, u16 item, u8 partyID, u8 r3, u8 sp); u8 CanRunFromBattle(void); @@ -1074,11 +1073,11 @@ static void atk00_attackcanceler(void) } for (i = 0; i < gNoOfAllBanks; i++) { - if ((gProtectStructs[gTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) + if ((gProtectStructs[gBanksByTurnOrder[i]].stealMove) && gBattleMoves[gCurrentMove].flags & FLAG_SNATCH_AFFECTED) { - PressurePPLose(gBankAttacker, gTurnOrder[i], MOVE_SNATCH); - gProtectStructs[gTurnOrder[i]].stealMove = 0; - BATTLE_STRUCT->scriptingActive = gTurnOrder[i]; + PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); + gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; + BATTLE_STRUCT->scriptingActive = gBanksByTurnOrder[i]; b_movescr_stack_push_cursor(); gBattlescriptCurrInstr = BattleScript_SnatchedMove; return; @@ -2253,7 +2252,7 @@ u8 BankGetTurnOrder(u8 bank) int i; for (i = 0; i < gNoOfAllBanks; i++) { - if (gTurnOrder[i] == bank) + if (gBanksByTurnOrder[i] == bank) break; } return i; @@ -2527,7 +2526,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (gBattleMons[gEffectBank].status2 & STATUS2_UPROAR) {gBattlescriptCurrInstr++; return;} gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMove[gEffectBank] = gCurrentMove; + gLockedMoves[gEffectBank] = gCurrentMove; gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4; b_movescr_stack_push(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; @@ -2551,7 +2550,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) break; case 12: //charging move gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMove[gEffectBank] = gCurrentMove; + gLockedMoves[gEffectBank] = gCurrentMove; gProtectStructs[gEffectBank].chargingTurn = 1; gBattlescriptCurrInstr++; break; @@ -2619,7 +2618,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) case 29: //recharge gBattleMons[gEffectBank].status2 |= STATUS2_RECHARGE; gDisableStructs[gEffectBank].rechargeCounter = 2; - gLockedMove[gEffectBank] = gCurrentMove; + gLockedMoves[gEffectBank] = gCurrentMove; gBattlescriptCurrInstr++; break; case 30: //rage @@ -2711,7 +2710,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (!(gBattleMons[gEffectBank].status2 & STATUS2_LOCK_CONFUSE)) { gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; - gLockedMove[gEffectBank] = gCurrentMove; + gLockedMoves[gEffectBank] = gCurrentMove; gBattleMons[gEffectBank].status2 |= (((Random() & 1) + 2) << 0xA); } else @@ -3909,7 +3908,7 @@ _0801ED7C:\n\ lsls r0, 5\n\ orrs r1, r0\n\ str r1, [r2]\n\ - ldr r1, _0801EDC8 @ =gLockedMove\n\ + ldr r1, _0801EDC8 @ =gLockedMoves\n\ ldrb r0, [r3]\n\ lsls r0, 1\n\ adds r0, r1\n\ @@ -3941,7 +3940,7 @@ _0801ED7C:\n\ ldr r0, [r0]\n\ bl _0801F5F8\n\ .align 2, 0\n\ -_0801EDC8: .4byte gLockedMove\n\ +_0801EDC8: .4byte gLockedMoves\n\ _0801EDCC: .4byte gCurrentMove\n\ _0801EDD0: .4byte gBattlescriptCurrInstr\n\ _0801EDD4: .4byte gMoveEffectBS_Ptrs\n\ @@ -4035,7 +4034,7 @@ _0801EE84:\n\ lsls r1, 5\n\ orrs r0, r1\n\ str r0, [r2]\n\ - ldr r1, _0801EEC0 @ =gLockedMove\n\ + ldr r1, _0801EEC0 @ =gLockedMoves\n\ mov r2, r8\n\ ldrb r0, [r2]\n\ lsls r0, 1\n\ @@ -4053,7 +4052,7 @@ _0801EE84:\n\ strb r0, [r1, 0x1]\n\ b _0801F5DC\n\ .align 2, 0\n\ -_0801EEC0: .4byte gLockedMove\n\ +_0801EEC0: .4byte gLockedMoves\n\ _0801EEC4: .4byte gCurrentMove\n\ _0801EEC8: .4byte gProtectStructs\n\ _0801EECC:\n\ @@ -4365,7 +4364,7 @@ _0801F13C:\n\ adds r0, r2\n\ movs r1, 0x2\n\ strb r1, [r0, 0x19]\n\ - ldr r1, _0801F17C @ =gLockedMove\n\ + ldr r1, _0801F17C @ =gLockedMoves\n\ ldrb r0, [r3]\n\ lsls r0, 1\n\ adds r0, r1\n\ @@ -4375,7 +4374,7 @@ _0801F13C:\n\ b _0801F5DC\n\ .align 2, 0\n\ _0801F178: .4byte gDisableStructs\n\ -_0801F17C: .4byte gLockedMove\n\ +_0801F17C: .4byte gLockedMoves\n\ _0801F180: .4byte gCurrentMove\n\ _0801F184:\n\ ldr r0, _0801F1A0 @ =gBankAttacker\n\ @@ -4764,7 +4763,7 @@ _0801F4C4:\n\ lsls r0, 5\n\ orrs r1, r0\n\ str r1, [r2]\n\ - ldr r1, _0801F4F8 @ =gLockedMove\n\ + ldr r1, _0801F4F8 @ =gLockedMoves\n\ ldrb r0, [r3]\n\ lsls r0, 1\n\ adds r0, r1\n\ @@ -4787,7 +4786,7 @@ _0801F4F2:\n\ str r0, [r2]\n\ b _0801F5FA\n\ .align 2, 0\n\ -_0801F4F8: .4byte gLockedMove\n\ +_0801F4F8: .4byte gLockedMoves\n\ _0801F4FC: .4byte gCurrentMove\n\ _0801F500:\n\ mov r5, r8\n\ @@ -10660,8 +10659,8 @@ static void atk52_switchineffects(void) for (i = 0; i < gNoOfAllBanks; i++) { - if (gTurnOrder[i] == gActiveBank) - gUnknown_02024A76[i] = 0xC; + if (gBanksByTurnOrder[i] == gActiveBank) + gActionsByTurnOrder[i] = 0xC; } for (i = 0; i < gNoOfAllBanks; i++) @@ -10838,7 +10837,7 @@ static void atk5A_yesnoboxlearnmove(void) } break; case 3: - if (!gPaletteFade.active && gMain.callback2 == sub_800F808) + if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2) { u8 move_pos = sub_809FA30(); if (move_pos == 4) @@ -11404,7 +11403,7 @@ static void atk68_cancelallactions(void) int i; for (i = 0; i < gNoOfAllBanks; i++) { - gUnknown_02024A76[i] = 0xC; + gActionsByTurnOrder[i] = 0xC; } gBattlescriptCurrInstr++; } @@ -11943,7 +11942,7 @@ static void atk71_buffermovetolearn(void) static void atk72_jumpifplayerran(void) { - if (sub_8014AB8(gBank1)) + if (TryRunFromBattle(gBank1)) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else gBattlescriptCurrInstr += 5; @@ -13251,7 +13250,7 @@ static void atk8A_normalisebuffs(void) //haze static void atk8B_setbide(void) { gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMove[gBankAttacker] = gCurrentMove; + gLockedMoves[gBankAttacker] = gCurrentMove; gTakenDmg[gBankAttacker] = 0; gBattleMons[gBankAttacker].status2 |= (STATUS2_BIDE - 0x100); //2 turns gBattlescriptCurrInstr++; @@ -15075,7 +15074,7 @@ static void atkB3_rolloutdamagecalculation(void) gDisableStructs[gBankAttacker].rolloutTimer1 = 5; gDisableStructs[gBankAttacker].rolloutTimer2 = 5; gBattleMons[gBankAttacker].status2 |= STATUS2_MULTIPLETURNS; - gLockedMove[gBankAttacker] = gCurrentMove; + gLockedMoves[gBankAttacker] = gCurrentMove; } if (--gDisableStructs[gBankAttacker].rolloutTimer1 == 0) gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); @@ -15252,8 +15251,8 @@ static void atkBA_jumpifnopursuitswitchdmg(void) int i; for (i = 0; i < gNoOfAllBanks; i++) { - if (gTurnOrder[i] == gBankTarget) - gUnknown_02024A76[i] = 11; + if (gBanksByTurnOrder[i] == gBankTarget) + gActionsByTurnOrder[i] = 11; } gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; @@ -17014,7 +17013,7 @@ static void atkEC_pursuitrelated(void) gActiveBank = GetBankByIdentity(GetBankIdentity(gBankAttacker) ^ 2); if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && !(gAbsentBankFlags & gBitTable[gActiveBank]) && gActionForBanks[gActiveBank] == 0 && gChosenMovesByBanks[gActiveBank] == MOVE_PURSUIT) { - gUnknown_02024A76[gActiveBank] = 11; + gActionsByTurnOrder[gActiveBank] = 11; gCurrentMove = MOVE_PURSUIT; gBattlescriptCurrInstr += 5; BATTLE_STRUCT->animTurn = 1; @@ -17230,7 +17229,7 @@ static void atkF2_displaydexinfo(void) } break; case 2: - if (!gPaletteFade.active && gMain.callback2 == sub_800F808 && !gTasks[gBattleCommunication[1]].isActive) + if (!gPaletteFade.active && gMain.callback2 == BattleMainCB2 && !gTasks[gBattleCommunication[1]].isActive) { LZDecompressVram(gBattleTerrainTiles_Building, (void*)(0x06008000)); LZDecompressVram(gBattleTerrainTilemap_Building, (void*)(0x0600d000)); @@ -17394,12 +17393,12 @@ static void atkF3_trygivecaughtmonnick(void) if (!gPaletteFade.active) { GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick); - DoNamingScreen(2, BATTLE_STRUCT->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), sub_800F808); + DoNamingScreen(2, BATTLE_STRUCT->caughtNick, GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_SPECIES), GetMonGender(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]]), GetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_PERSONALITY, 0), BattleMainCB2); gBattleCommunication[0]++; } break; case 3: - if (gMain.callback2 == sub_800F808 && !gPaletteFade.active ) + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active ) { SetMonData(&gEnemyParty[gBattlePartyID[gBankAttacker ^ 1]], MON_DATA_NICKNAME, BATTLE_STRUCT->caughtNick); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); diff --git a/src/battle/battle_controller_linkopponent.c b/src/battle/battle_controller_linkopponent.c index 35d8f33c8..54181bc21 100644 --- a/src/battle/battle_controller_linkopponent.c +++ b/src/battle/battle_controller_linkopponent.c @@ -48,8 +48,8 @@ extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; extern struct Window gUnknown_03004210; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u8 gUnknown_0300434C[]; extern u32 gBattleExecBuffer; extern MainCallback gPreBattleCallback1; @@ -1410,8 +1410,8 @@ void sub_8039B64(void) void LinkOpponentHandlePrintString(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gBattleBankFunc[gActiveBank] = sub_8037C2C; diff --git a/src/battle/battle_controller_linkpartner.c b/src/battle/battle_controller_linkpartner.c index adc3c1c85..2c78d4a82 100644 --- a/src/battle/battle_controller_linkpartner.c +++ b/src/battle/battle_controller_linkpartner.c @@ -48,8 +48,8 @@ extern u8 gAnimFriendship; extern u16 gWeatherMoveAnim; extern u8 gAnimMoveTurn; extern struct Window gUnknown_03004210; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern MainCallback gPreBattleCallback1; extern void (*gBattleBankFunc[])(void); extern u8 gHealthboxIDs[]; @@ -1355,8 +1355,8 @@ void sub_811FF30(void) void LinkPartnerHandlePrintString(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gBattleBankFunc[gActiveBank] = sub_811DFA0; diff --git a/src/battle/battle_controller_opponent.c b/src/battle/battle_controller_opponent.c index 477b600ac..ab7b6944b 100644 --- a/src/battle/battle_controller_opponent.c +++ b/src/battle/battle_controller_opponent.c @@ -50,8 +50,8 @@ extern u8 gAnimMoveTurn; extern u8 gAnimScriptActive; extern void (*gAnimScriptCallback)(void); extern struct Window gUnknown_03004210; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u8 gDisplayedStringBattle[]; extern u8 gBankTarget; extern u8 gAbsentBankFlags; @@ -1404,8 +1404,8 @@ void sub_8035238(void) void OpponentHandlePrintString(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gBattleBankFunc[gActiveBank] = sub_80331D0; diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 62a38311a..f992e3e51 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -35,8 +35,8 @@ struct MovePpInfo #define SUB_803037C_TILE_DATA_OFFSET 444 #endif -extern u16 gUnknown_030042A4; -extern u16 gUnknown_030042A0; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; extern struct Window gUnknown_03004210; @@ -72,7 +72,7 @@ extern u16 gBattle_BG1_Y; extern u16 gUnknown_030041B8; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG2_X; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u8 gUnknown_03004344; extern u8 gUnknown_0300434C[]; @@ -148,8 +148,8 @@ extern u8 gAbsentBankFlags; extern u8 gUnknown_03004344; extern u8 gNoOfAllBanks; extern u16 gBattlePartyID[]; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern struct Window gUnknown_03004210; extern const u8 BattleText_SwitchWhich[]; extern u8 gUnknown_03004348; @@ -679,8 +679,8 @@ void sub_802C68C(void) { DestroyMenuCursor(); PlaySE(SE_SELECT); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 320; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 320; Emitcmd33(1, 10, 0xFFFF); PlayerBufferExecCompleted(); } @@ -1495,7 +1495,7 @@ void sub_802DF30(void) void sub_802DF88(void) { - if (gMain.callback2 == sub_800F808 && !gPaletteFade.active) + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { if (gUnknown_0202E8F4 == 1) Emitcmd34(1, gUnknown_0202E8F5, gUnknown_02038470); @@ -1519,7 +1519,7 @@ void sub_802E004(void) void sub_802E03C(void) { - if (gMain.callback2 == sub_800F808 && !gPaletteFade.active) + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { Emitcmd35(1, gSpecialVar_ItemId); PlayerBufferExecCompleted(); @@ -1695,8 +1695,8 @@ void b_link_standby_message(void) { if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; sub_8002EB0(&gUnknown_03004210, BattleText_LinkStandby, 0x90, 2, 15); } } @@ -2559,8 +2559,8 @@ void sub_8030190(void) void PlayerHandlePrintString(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 0x90, 2, 15); gBattleBankFunc[gActiveBank] = sub_802DF18; @@ -2578,8 +2578,8 @@ void PlayerHandlecmd18(void) { int r4; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 160; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 160; FillWindowRect(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect(&gUnknown_03004210, 10, 2, 35, 16, 38); @@ -2612,8 +2612,8 @@ void PlayerHandlecmd20(void) void sub_80304A8(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 320; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 320; sub_802E1B0(); gUnknown_03004344 = 0xFF; sub_802E3B4(gMoveSelectionCursor[gActiveBank], 0); diff --git a/src/battle/battle_controller_safari.c b/src/battle/battle_controller_safari.c index 37c58f951..0a629ba4d 100644 --- a/src/battle/battle_controller_safari.c +++ b/src/battle/battle_controller_safari.c @@ -23,8 +23,8 @@ extern u8 gActiveBank; extern const u8 BattleText_MenuOptionsSafari[]; extern void *gBattleBankFunc[]; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u8 gBattleBufferA[][0x200]; extern bool8 gDoingBattleAnim; extern u8 gObjectBankIDs[]; @@ -313,7 +313,7 @@ void sub_812B724(void) void sub_812B758(void) { - if (gMain.callback2 == sub_800F808 && !gPaletteFade.active) + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { Emitcmd35(1, gSpecialVar_ItemId); SafariBufferExecCompleted(); @@ -450,8 +450,8 @@ void SafariHandleMoveAnimation(void) void SafariHandlePrintString(void) { - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; BufferStringBattle(*(u16 *)&gBattleBufferA[gActiveBank][2]); sub_8002EB0(&gUnknown_03004210, gDisplayedStringBattle, 144, 2, 15); gBattleBankFunc[gActiveBank] = sub_812B694; @@ -469,8 +469,8 @@ void SafariHandlecmd18(void) { int i; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 160; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 160; gUnknown_03004210.paletteNum = 0; FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); diff --git a/src/battle/battle_controller_wally.c b/src/battle/battle_controller_wally.c index be40f968c..bd2b4a45b 100644 --- a/src/battle/battle_controller_wally.c +++ b/src/battle/battle_controller_wally.c @@ -53,8 +53,8 @@ extern u8 gUnknown_02024E68[]; extern struct SpriteTemplate gUnknown_02024E8C; extern u8 gAnimMoveTurn; extern struct Window gUnknown_03004210; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u8 gUnknown_0300434C[]; extern const u8 BattleText_WallyMenu[]; extern const u8 BattleText_MenuOptions[]; @@ -363,7 +363,7 @@ void sub_81374C4(void) void sub_81374FC(void) { - if (gMain.callback2 == sub_800F808 + if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active) { Emitcmd35(1, gSpecialVar_ItemId); @@ -1240,8 +1240,8 @@ void WallyHandlePrintString(void) { u16 *ptr; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; ptr = (u16 *)&gBattleBufferA[gActiveBank][2]; if (*ptr == 2) DestroyMenuCursor(); @@ -1262,8 +1262,8 @@ void WallyHandlecmd18(void) { s32 i; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 160; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 160; gUnknown_03004210.paletteNum = 0; FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 15, 27, 18); FillWindowRect_DefaultPalette(&gUnknown_03004210, 10, 2, 35, 16, 36); diff --git a/src/battle/reshow_battle_screen.c b/src/battle/reshow_battle_screen.c index a7646e78b..6a6d7a137 100644 --- a/src/battle/reshow_battle_screen.c +++ b/src/battle/reshow_battle_screen.c @@ -13,12 +13,12 @@ extern struct SpriteTemplate gUnknown_02024E8C; extern struct Window gUnknown_03004210; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG2_X; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u16 gUnknown_030041B0; extern u16 gBattle_BG1_Y; extern u16 gUnknown_030041B8; -extern u16 gUnknown_030042A0; +extern u16 gBattle_BG0_Y; extern u8 gReservedSpritePaletteCount; extern u8 gActionSelectionCursor[4]; extern u8 gBankInMenu; @@ -81,8 +81,8 @@ static void CB2_ReshowBattleScreenAfterMenu(void) SetUpWindowConfig(&gWindowConfig_81E6C58); ResetPaletteFade(); InitWindowFromConfig(&gUnknown_03004210, &gWindowConfig_81E6C58); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -190,7 +190,7 @@ static void CB2_ReshowBattleScreenAfterMenu(void) sub_807B06C(); BeginHardwarePaletteFade(0xFF, 0, 0x10, 0, 1); gPaletteFade.bufferTransferDisabled = 0; - SetMainCallback2(sub_800F808); + SetMainCallback2(BattleMainCB2); break; } gReshowState++; diff --git a/src/contest.c b/src/contest.c index 365f92538..c32719648 100644 --- a/src/contest.c +++ b/src/contest.c @@ -60,8 +60,8 @@ extern u16 gBattle_WIN0V; extern u16 gBattle_WIN1V; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG2_X; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u16 gBattle_WIN0H; extern u32 gUnknown_03005D28; // saved RNG value @@ -324,8 +324,8 @@ void ResetContestGpuRegs(void) REG_WINOUT = 0x3F3F; REG_DISPCNT |= 0x7F00; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -620,8 +620,8 @@ void ContestMainCallback2(void) void ContestVBlankCallback(void) { - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; REG_BG2HOFS = gBattle_BG2_X; @@ -640,7 +640,7 @@ void ContestVBlankCallback(void) void sub_80ABB70(u8 taskId) { - gUnknown_030042A0 = 0; + gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; sub_80B0D7C(); DmaCopy32Defvars(3, gPlttBufferUnfaded, shared18000.unk18204, 0x400); @@ -684,7 +684,7 @@ void sub_80ABCDC(u8 taskId) u8 i; u8 sp8[32]; - gUnknown_030042A0 = 0xA0; + gBattle_BG0_Y = 0xA0; gBattle_BG2_Y = 0xA0; FillWindowRect_DefaultPalette( &gUnknown_03004210, @@ -772,7 +772,7 @@ void sub_80ABEA0(u8 taskId) sub_80AF138(); StringExpandPlaceholders(gStringVar4, gDisplayedStringBattle); sub_8003460(&gMenuWindow, gStringVar4, 776, 1, 15); - gUnknown_030042A0 = 0; + gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; gTasks[taskId].func = sub_80ABC70; break; @@ -846,7 +846,7 @@ void sub_80AC15C(u8 taskId) void sub_80AC188(u8 taskId) { sub_80AF138(); - gUnknown_030042A0 = 0; + gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; sub_80AFFE0(FALSE); DmaCopy32Defvars(3, gPlttBufferFaded, shared18000.unk18604, 0x400); @@ -1804,7 +1804,7 @@ void sub_80ADDA4(u8 taskId) { s32 i; - gUnknown_030042A0 = 0; + gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; for (i = 0; i < 4; i++) gUnknown_02038680[i] = sContestantStatus[i].unk4; @@ -2950,7 +2950,7 @@ bool8 sub_80AF828(s32 a, s32 b, struct UnknownContestStruct6 *c) void sub_80AF860(void) { - gUnknown_030042A0 = 0; + gBattle_BG0_Y = 0; gBattle_BG2_Y = 0; sub_80AF138(); sub_8003460(&gMenuWindow, gUnknownText_LinkStandbyAndWinner, 776, 1, 15); diff --git a/src/debug/matsuda_debug_menu.c b/src/debug/matsuda_debug_menu.c index bb80de6fe..49fe6864b 100644 --- a/src/debug/matsuda_debug_menu.c +++ b/src/debug/matsuda_debug_menu.c @@ -29,8 +29,8 @@ extern u8 gContestPlayerMonIndex; extern u16 gSpecialVar_ContestCategory; extern u16 gSpecialVar_ContestRank; -extern u16 gUnknown_030042A4; -extern u16 gUnknown_030042A0; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -457,8 +457,8 @@ static void sub_80A9F50(void) REG_BLDY = 0; REG_BG0HOFS = 0; REG_BG0VOFS = 0; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -505,8 +505,8 @@ static void sub_80AA064(void) static void sub_80AA090(void) { - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; REG_BG2HOFS = gBattle_BG2_X; diff --git a/src/field/tv.c b/src/field/tv.c index d7a75a709..e88e3c72b 100644 --- a/src/field/tv.c +++ b/src/field/tv.c @@ -811,7 +811,7 @@ u8 sub_80BDEAC(u8 *a0) return lang; } -void sub_80BDEC8(void) +void PutPokemonTodayCaughtOnAir(void) { u8 i; u16 total; diff --git a/src/scene/evolution_scene.c b/src/scene/evolution_scene.c index f307f5979..4ee601360 100644 --- a/src/scene/evolution_scene.c +++ b/src/scene/evolution_scene.c @@ -65,8 +65,8 @@ void nullsub_6(void); bool32 IsHMMove2(u16 move); extern struct Window gUnknown_03004210; -extern u16 gUnknown_030042A4; -extern u16 gUnknown_030042A0; +extern u16 gBattle_BG0_X; +extern u16 gBattle_BG0_Y; extern u16 gBattle_BG1_X; extern u16 gBattle_BG1_Y; extern u16 gBattle_BG2_X; @@ -200,8 +200,8 @@ void EvolutionScene(struct Pokemon* mon, u16 speciesToEvolve, bool8 canStopEvo, SetUpWindowConfig(&gWindowConfig_81E6C58); ResetPaletteFade(); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -308,8 +308,8 @@ static void CB2_EvolutionSceneLoadGraphics(void) REG_WINOUT = 0; SetUpWindowConfig(&gWindowConfig_81E6C58); ResetPaletteFade(); - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -362,8 +362,8 @@ static void CB2_TradeEvolutionSceneLoadGraphics(void) ResetSpriteData(); FreeAllSpritePalettes(); gReservedSpritePaletteCount = 4; - gUnknown_030042A4 = 0; - gUnknown_030042A0 = 0; + gBattle_BG0_X = 0; + gBattle_BG0_Y = 0; gBattle_BG1_X = 0; gBattle_BG1_Y = 0; gBattle_BG2_X = 0; @@ -3923,8 +3923,8 @@ static void EvoDummyFunc(void) static void VBlankCB_EvolutionScene(void) { REG_BG0CNT = BGCNT_SCREENBASE(24) | BGCNT_16COLOR | BGCNT_TXT256x256 | BGCNT_AFF512x512 | BGCNT_PRIORITY(3); // 0x9803 - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; REG_BG2HOFS = gBattle_BG2_X; @@ -3939,8 +3939,8 @@ static void VBlankCB_EvolutionScene(void) static void VBlankCB_TradeEvolutionScene(void) { - REG_BG0HOFS = gUnknown_030042A4; - REG_BG0VOFS = gUnknown_030042A0; + REG_BG0HOFS = gBattle_BG0_X; + REG_BG0VOFS = gBattle_BG0_Y; REG_BG1HOFS = gBattle_BG1_X; REG_BG1VOFS = gBattle_BG1_Y; REG_BG2HOFS = gBattle_BG2_X; diff --git a/src/unknown_task.c b/src/unknown_task.c index 62245502a..2c71bfb08 100644 --- a/src/unknown_task.c +++ b/src/unknown_task.c @@ -12,8 +12,8 @@ extern u16 gBattle_BG1_Y; extern u16 gUnknown_030041B8; extern u16 gBattle_BG2_Y; extern u16 gBattle_BG2_X; -extern u16 gUnknown_030042A0; -extern u16 gUnknown_030042A4; +extern u16 gBattle_BG0_Y; +extern u16 gBattle_BG0_X; extern u16 gBattle_BG1_X; extern u8 gUnknown_0202FFA4; @@ -120,10 +120,10 @@ static void task00_for_dp12(u8 taskId) switch (gTasks[taskId].data[6]) { case 0x0: - value = gUnknown_030042A4; + value = gBattle_BG0_X; break; case 0x2: - value = gUnknown_030042A0; + value = gBattle_BG0_Y; break; case 0x4: value = gBattle_BG1_X; diff --git a/sym_common.txt b/sym_common.txt index 87b411ff4..f620e9e49 100644 --- a/sym_common.txt +++ b/sym_common.txt @@ -53,10 +53,10 @@ gBattleTerrain: @ 300428C gBattleTextBuff2: @ 3004290 .space 0x10 -gUnknown_030042A0: @ 30042A0 +gBattle_BG0_Y: @ 30042A0 .space 0x4 -gUnknown_030042A4: @ 30042A4 +gBattle_BG0_X: @ 30042A4 .space 0xC gBattleTextBuff3: @ 30042B0 diff --git a/sym_ewram.txt b/sym_ewram.txt index bb5d56686..fc4ea94ef 100644 --- a/sym_ewram.txt +++ b/sym_ewram.txt @@ -65,10 +65,10 @@ gBattlePartyID: @ 2024A6A gBanksBySide: @ 2024A72 .space 0x4 -gUnknown_02024A76: @ 2024A76 +gActionsByTurnOrder: @ 2024A76 .space 0x4 -gTurnOrder: @ 2024A7A +gBanksByTurnOrder: @ 2024A7A .space 0x4 gCurrentTurnActionNumber: @ 2024A7E @@ -179,7 +179,7 @@ gUnknown_02024C44: @ 2024C44 gUnknown_02024C4C: @ 2024C4C .space 0x8 -gLockedMove: @ 2024C54 +gLockedMoves: @ 2024C54 .space 0x8 gUnknown_02024C5C: @ 2024C5C -- cgit v1.2.3 From be36c506387648a11afe51b0f4209386947feb37 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Sun, 7 Jan 2018 17:57:46 -0800 Subject: Finish battle_2.c and battle_util.c decompilation --- asm/battle_2.s | 912 -------- include/battle.h | 9 +- include/battle_util.h | 29 + include/constants/battle_constants.h | 13 + ld_script.txt | 5 +- src/battle/battle_2.c | 16 +- src/battle/battle_3.c | 3229 --------------------------- src/battle/battle_4.c | 258 ++- src/battle/battle_util.c | 3479 ++++++++++++++++++++++++++++++ src/data/pokemon/trainer_class_lookups.h | 10 +- src/pokemon/pokemon_2.c | 1 + src/rom3.c | 3 +- 12 files changed, 3664 insertions(+), 4300 deletions(-) delete mode 100644 asm/battle_2.s create mode 100644 include/battle_util.h delete mode 100644 src/battle/battle_3.c create mode 100644 src/battle/battle_util.c diff --git a/asm/battle_2.s b/asm/battle_2.s deleted file mode 100644 index 8a1bd902f..000000000 --- a/asm/battle_2.s +++ /dev/null @@ -1,912 +0,0 @@ - .include "constants/gba_constants.inc" - .include "asm/macros.inc" - - .syntax unified - - .text - - thumb_func_start GetBattleBank -GetBattleBank: @ 8015150 - push {lr} - lsls r0, 24 - lsrs r0, 24 - movs r2, 0 - cmp r0, 0xA - bhi _080151C8 - lsls r0, 2 - ldr r1, _08015168 @ =_0801516C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08015168: .4byte _0801516C - .align 2, 0 -_0801516C: - .4byte _08015198 - .4byte _080151A0 - .4byte _080151A8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151C4 - .4byte _080151C8 - .4byte _080151B0 - .4byte _080151C8 - .4byte _080151C8 - .4byte _080151B4 -_08015198: - ldr r0, _0801519C @ =gBankTarget - b _080151C6 - .align 2, 0 -_0801519C: .4byte gBankTarget -_080151A0: - ldr r0, _080151A4 @ =gBankAttacker - b _080151C6 - .align 2, 0 -_080151A4: .4byte gBankAttacker -_080151A8: - ldr r0, _080151AC @ =gEffectBank - b _080151C6 - .align 2, 0 -_080151AC: .4byte gEffectBank -_080151B0: - movs r2, 0 - b _080151C8 -_080151B4: - ldr r0, _080151BC @ =gSharedMem - ldr r1, _080151C0 @ =0x00016003 - adds r0, r1 - b _080151C6 - .align 2, 0 -_080151BC: .4byte gSharedMem -_080151C0: .4byte 0x00016003 -_080151C4: - ldr r0, _080151D0 @ =gBank1 -_080151C6: - ldrb r2, [r0] -_080151C8: - adds r0, r2, 0 - pop {r1} - bx r1 - .align 2, 0 -_080151D0: .4byte gBank1 - thumb_func_end GetBattleBank - - thumb_func_start PressurePPLose -PressurePPLose: @ 80151D4 - push {r4-r7,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 16 - lsrs r2, 16 - ldr r1, _08015204 @ =gBattleMons - movs r4, 0x58 - muls r0, r4 - adds r0, r1 - adds r0, 0x20 - ldrb r0, [r0] - mov r12, r1 - cmp r0, 0x2E - bne _08015286 - movs r3, 0 - adds r0, r5, 0 - muls r0, r4 - adds r1, 0xC - adds r1, r0, r1 - b _08015210 - .align 2, 0 -_08015204: .4byte gBattleMons -_08015208: - adds r1, 0x2 - adds r3, 0x1 - cmp r3, 0x3 - bgt _08015216 -_08015210: - ldrh r0, [r1] - cmp r0, r2 - bne _08015208 -_08015216: - cmp r3, 0x4 - beq _08015286 - movs r7, 0x58 - adds r2, r5, 0 - muls r2, r7 - adds r0, r3, r2 - mov r6, r12 - adds r6, 0x24 - adds r1, r0, r6 - ldrb r0, [r1] - cmp r0, 0 - beq _08015232 - subs r0, 0x1 - strb r0, [r1] -_08015232: - mov r0, r12 - adds r0, 0x50 - adds r0, r2, r0 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _08015286 - ldr r1, _08015290 @ =gDisableStructs - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _08015294 @ =gBitTable - lsls r0, r3, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _08015286 - ldr r4, _08015298 @ =gActiveBank - strb r5, [r4] - adds r1, r3, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r7 - adds r0, r6 - adds r0, r3 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_08015286: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08015290: .4byte gDisableStructs -_08015294: .4byte gBitTable -_08015298: .4byte gActiveBank - thumb_func_end PressurePPLose - - thumb_func_start sub_801529C -sub_801529C: @ 801529C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - movs r0, 0x4 - mov r8, r0 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - movs r4, 0 - ldr r0, _080153BC @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - bge _08015344 - ldr r1, _080153C0 @ =gBattleMons - movs r0, 0x58 - adds r7, r5, 0 - muls r7, r0 - adds r1, 0xC - mov r10, r1 -_080152D2: - lsls r0, r4, 24 - lsrs r0, 24 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - adds r6, r4, 0x1 - cmp r9, r0 - beq _0801533A - ldr r0, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r1, r4, 0 - muls r1, r3 - adds r1, r0 - adds r1, 0x20 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0x2E - bne _0801533A - movs r2, 0 - adds r0, r5, 0 - muls r0, r3 - adds r1, r4, 0 - adds r1, 0xC - adds r0, r1 - ldrh r0, [r0] - movs r1, 0x8F - lsls r1, 1 - cmp r0, r1 - beq _08015322 - adds r3, r1, 0 - mov r0, r10 - adds r1, r7, r0 -_08015314: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015322 - ldrh r0, [r1] - cmp r0, r3 - bne _08015314 -_08015322: - cmp r2, 0x4 - beq _0801533A - mov r8, r2 - adds r1, r2, r7 - adds r0, r4, 0 - adds r0, 0x24 - adds r1, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0801533A - subs r0, 0x1 - strb r0, [r1] -_0801533A: - adds r4, r6, 0 - ldr r0, _080153BC @ =gNoOfAllBanks - ldrb r0, [r0] - cmp r4, r0 - blt _080152D2 -_08015344: - mov r1, r8 - cmp r1, 0x4 - beq _080153AC - ldr r6, _080153C0 @ =gBattleMons - movs r3, 0x58 - adds r0, r5, 0 - muls r0, r3 - adds r1, r6, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080153AC - ldr r1, _080153C4 @ =gDisableStructs - lsls r0, r5, 3 - subs r0, r5 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080153C8 @ =gBitTable - mov r4, r8 - lsls r0, r4, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080153AC - ldr r4, _080153CC @ =gActiveBank - strb r5, [r4] - mov r1, r8 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r3 - adds r2, r6, 0 - adds r2, 0x24 - adds r0, r2 - add r0, r8 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_080153AC: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080153BC: .4byte gNoOfAllBanks -_080153C0: .4byte gBattleMons -_080153C4: .4byte gDisableStructs -_080153C8: .4byte gBitTable -_080153CC: .4byte gActiveBank - thumb_func_end sub_801529C - - thumb_func_start sub_80153D0 -sub_80153D0: @ 80153D0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r3, r0, 24 - movs r6, 0x4 - movs r1, 0 - ldr r0, _080154C8 @ =gNoOfAllBanks - mov r8, r0 - ldrb r0, [r0] - cmp r1, r0 - bge _08015452 - ldr r7, _080154CC @ =gBattleMons - movs r2, 0x58 - mov r12, r2 - mov r5, r12 - muls r5, r3 - adds r0, r7, 0 - adds r0, 0xC - adds r2, r5, r0 - mov r10, r2 - mov r9, r5 -_08015402: - mov r0, r12 - muls r0, r1 - adds r0, r7 - adds r0, 0x20 - ldrb r0, [r0] - adds r4, r1, 0x1 - cmp r0, 0x2E - bne _08015448 - cmp r1, r3 - beq _08015448 - movs r2, 0 - mov r1, r10 - ldrh r0, [r1] - cmp r0, 0xC3 - beq _08015432 - ldr r1, _080154D0 @ =gUnknown_02024A8C - add r1, r9 -_08015424: - adds r1, 0x2 - adds r2, 0x1 - cmp r2, 0x3 - bgt _08015432 - ldrh r0, [r1] - cmp r0, 0xC3 - bne _08015424 -_08015432: - cmp r2, 0x4 - beq _08015448 - adds r6, r2, 0 - adds r0, r6, r5 - ldr r2, _080154D4 @ =gUnknown_02024AA4 - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0 - beq _08015448 - subs r0, 0x1 - strb r0, [r1] -_08015448: - adds r1, r4, 0 - mov r0, r8 - ldrb r0, [r0] - cmp r1, r0 - blt _08015402 -_08015452: - cmp r6, 0x4 - beq _080154B6 - ldr r7, _080154CC @ =gBattleMons - movs r5, 0x58 - adds r0, r3, 0 - muls r0, r5 - adds r1, r7, 0 - adds r1, 0x50 - adds r0, r1 - ldr r0, [r0] - movs r1, 0x80 - lsls r1, 14 - ands r0, r1 - cmp r0, 0 - bne _080154B6 - ldr r1, _080154D8 @ =gDisableStructs - lsls r0, r3, 3 - subs r0, r3 - lsls r0, 2 - adds r0, r1 - ldrb r1, [r0, 0x18] - lsrs r1, 4 - ldr r2, _080154DC @ =gBitTable - lsls r0, r6, 2 - adds r0, r2 - ldr r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080154B6 - ldr r4, _080154E0 @ =gActiveBank - strb r3, [r4] - adds r1, r6, 0 - adds r1, 0x9 - lsls r1, 24 - lsrs r1, 24 - ldrb r0, [r4] - muls r0, r5 - adds r2, r7, 0 - adds r2, 0x24 - adds r0, r2 - adds r0, r6 - str r0, [sp] - movs r0, 0 - movs r2, 0 - movs r3, 0x1 - bl EmitSetAttributes - ldrb r0, [r4] - bl MarkBufferBankForExecution -_080154B6: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080154C8: .4byte gNoOfAllBanks -_080154CC: .4byte gBattleMons -_080154D0: .4byte gUnknown_02024A8C -_080154D4: .4byte gUnknown_02024AA4 -_080154D8: .4byte gDisableStructs -_080154DC: .4byte gBitTable -_080154E0: .4byte gActiveBank - thumb_func_end sub_80153D0 - - thumb_func_start unref_sub_80154E4 -unref_sub_80154E4: @ 80154E4 - push {r4,r5,lr} - ldr r0, _08015514 @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015524 - movs r2, 0 - ldr r4, _08015518 @ =gNoOfAllBanks - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801551C @ =gBattleExecBuffer - ldr r5, _08015520 @ =gBitTable -_08015500: - ldm r5!, {r1} - lsls r1, 28 - ldr r0, [r3] - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015500 - b _08015542 - .align 2, 0 -_08015514: .4byte gBattleTypeFlags -_08015518: .4byte gNoOfAllBanks -_0801551C: .4byte gBattleExecBuffer -_08015520: .4byte gBitTable -_08015524: - movs r2, 0 - ldr r4, _08015548 @ =gNoOfAllBanks - ldrb r0, [r4] - cmp r2, r0 - bge _08015542 - ldr r3, _0801554C @ =gBattleExecBuffer - ldr r5, _08015550 @ =gBitTable -_08015532: - ldr r0, [r3] - ldm r5!, {r1} - orrs r0, r1 - str r0, [r3] - adds r2, 0x1 - ldrb r0, [r4] - cmp r2, r0 - blt _08015532 -_08015542: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08015548: .4byte gNoOfAllBanks -_0801554C: .4byte gBattleExecBuffer -_08015550: .4byte gBitTable - thumb_func_end unref_sub_80154E4 - - thumb_func_start MarkBufferBankForExecution -MarkBufferBankForExecution: @ 8015554 - push {lr} - lsls r0, 24 - lsrs r3, r0, 24 - ldr r0, _0801557C @ =gBattleTypeFlags - ldrh r1, [r0] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _08015588 - ldr r2, _08015580 @ =gBattleExecBuffer - ldr r1, _08015584 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r0] - lsls r1, 28 - ldr r0, [r2] - orrs r0, r1 - str r0, [r2] - b _08015598 - .align 2, 0 -_0801557C: .4byte gBattleTypeFlags -_08015580: .4byte gBattleExecBuffer -_08015584: .4byte gBitTable -_08015588: - ldr r2, _0801559C @ =gBattleExecBuffer - ldr r1, _080155A0 @ =gBitTable - lsls r0, r3, 2 - adds r0, r1 - ldr r1, [r2] - ldr r0, [r0] - orrs r1, r0 - str r1, [r2] -_08015598: - pop {r0} - bx r0 - .align 2, 0 -_0801559C: .4byte gBattleExecBuffer -_080155A0: .4byte gBitTable - thumb_func_end MarkBufferBankForExecution - - thumb_func_start sub_80155A4 -sub_80155A4: @ 80155A4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0 - ldr r5, _080155B8 @ =gBattleExecBuffer - ldr r1, _080155BC @ =gBitTable - lsls r0, r7, 2 - adds r6, r0, r1 - b _080155CE - .align 2, 0 -_080155B8: .4byte gBattleExecBuffer -_080155BC: .4byte gBitTable -_080155C0: - lsls r0, r4, 2 - ldr r1, [r6] - lsls r1, r0 - ldr r0, [r5] - orrs r0, r1 - str r0, [r5] - adds r4, 0x1 -_080155CE: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080155C0 - ldr r2, _080155F0 @ =gBattleExecBuffer - movs r1, 0x80 - lsls r1, 21 - lsls r1, r7 - ldr r0, [r2] - bics r0, r1 - str r0, [r2] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080155F0: .4byte gBattleExecBuffer - thumb_func_end sub_80155A4 - - thumb_func_start CancelMultiTurnMoves -CancelMultiTurnMoves: @ 80155F4 - lsls r0, 24 - lsrs r0, 24 - ldr r1, _08015644 @ =gBattleMons - movs r2, 0x58 - adds r3, r0, 0 - muls r3, r2 - adds r1, 0x50 - adds r3, r1 - ldr r1, [r3] - ldr r2, _08015648 @ =0xffffefff - ands r1, r2 - ldr r2, _0801564C @ =0xfffff3ff - ands r1, r2 - movs r2, 0x71 - negs r2, r2 - ands r1, r2 - ldr r2, _08015650 @ =0xfffffcff - ands r1, r2 - str r1, [r3] - ldr r1, _08015654 @ =gStatuses3 - lsls r2, r0, 2 - adds r2, r1 - ldr r1, [r2] - ldr r3, _08015658 @ =0xfffbff3f - ands r1, r3 - str r1, [r2] - ldr r2, _0801565C @ =gDisableStructs - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x11] - movs r0, 0x10 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x11] - movs r0, 0 - strb r0, [r1, 0x10] - bx lr - .align 2, 0 -_08015644: .4byte gBattleMons -_08015648: .4byte 0xffffefff -_0801564C: .4byte 0xfffff3ff -_08015650: .4byte 0xfffffcff -_08015654: .4byte gStatuses3 -_08015658: .4byte 0xfffbff3f -_0801565C: .4byte gDisableStructs - thumb_func_end CancelMultiTurnMoves - - thumb_func_start sub_8015660 -sub_8015660: @ 8015660 - push {lr} - lsls r0, 24 - ldr r1, _080156AC @ =gProtectStructs - lsrs r0, 20 - adds r1, r0, r1 - ldrb r0, [r1] - lsrs r0, 7 - cmp r0, 0 - bne _080156A6 - ldrb r2, [r1, 0x1] - lsls r0, r2, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 26 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 25 - cmp r0, 0 - blt _080156A6 - lsrs r0, r2, 7 - cmp r0, 0 - bne _080156A6 - ldrb r1, [r1, 0x2] - lsls r0, r1, 31 - cmp r0, 0 - bne _080156A6 - lsls r0, r1, 30 - cmp r0, 0 - blt _080156A6 - lsls r0, r1, 29 - cmp r0, 0 - blt _080156A6 - lsls r0, r2, 31 - cmp r0, 0 - beq _080156B0 -_080156A6: - movs r0, 0x1 - b _080156B2 - .align 2, 0 -_080156AC: .4byte gProtectStructs -_080156B0: - movs r0, 0 -_080156B2: - pop {r1} - bx r1 - thumb_func_end sub_8015660 - - thumb_func_start PrepareStringBattle -PrepareStringBattle: @ 80156B8 - push {r4,lr} - adds r2, r0, 0 - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080156D8 @ =gActiveBank - strb r1, [r4] - movs r0, 0 - adds r1, r2, 0 - bl EmitPrintString - ldrb r0, [r4] - bl MarkBufferBankForExecution - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080156D8: .4byte gActiveBank - thumb_func_end PrepareStringBattle - - thumb_func_start sub_80156DC -sub_80156DC: @ 80156DC - push {r4-r6,lr} - movs r3, 0 - ldr r0, _08015730 @ =gSentPokesToOpponent - strb r3, [r0] - strb r3, [r0, 0x1] - movs r1, 0 - ldr r0, _08015734 @ =gNoOfAllBanks - ldrb r2, [r0] - adds r6, r0, 0 - cmp r1, r2 - bge _0801570A - ldr r5, _08015738 @ =gBitTable - adds r4, r2, 0 - ldr r2, _0801573C @ =gBattlePartyID -_080156F8: - ldrh r0, [r2] - lsls r0, 2 - adds r0, r5 - ldr r0, [r0] - orrs r3, r0 - adds r2, 0x4 - adds r1, 0x2 - cmp r1, r4 - blt _080156F8 -_0801570A: - movs r1, 0x1 - adds r2, r6, 0 - ldrb r0, [r2] - cmp r1, r0 - bge _0801572A - ldr r5, _08015730 @ =gSentPokesToOpponent - movs r4, 0x2 -_08015718: - adds r0, r1, 0 - ands r0, r4 - asrs r0, 1 - adds r0, r5 - strb r3, [r0] - adds r1, 0x2 - ldrb r0, [r2] - cmp r1, r0 - blt _08015718 -_0801572A: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08015730: .4byte gSentPokesToOpponent -_08015734: .4byte gNoOfAllBanks -_08015738: .4byte gBitTable -_0801573C: .4byte gBattlePartyID - thumb_func_end sub_80156DC - - thumb_func_start sub_8015740 -sub_8015740: @ 8015740 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - adds r0, r5, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157A4 - movs r0, 0x2 - ands r0, r5 - lsls r0, 24 - lsrs r0, 25 - mov r12, r0 - ldr r1, _080157B0 @ =gSentPokesToOpponent - adds r0, r1 - strb r4, [r0] - adds r5, r4, 0 - ldr r0, _080157B4 @ =gNoOfAllBanks - ldrb r2, [r0] - mov r8, r1 - cmp r4, r2 - bge _0801579E - ldr r0, _080157B8 @ =gAbsentBankFlags - ldrb r7, [r0] - ldr r1, _080157BC @ =gBitTable - adds r6, r2, 0 - ldr r3, _080157C0 @ =gBattlePartyID - adds r2, r1, 0 -_08015782: - ldr r0, [r2] - ands r0, r7 - cmp r0, 0 - bne _08015794 - ldrh r0, [r3] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - orrs r4, r0 -_08015794: - adds r3, 0x4 - adds r2, 0x8 - adds r5, 0x2 - cmp r5, r6 - blt _08015782 -_0801579E: - mov r0, r12 - add r0, r8 - strb r4, [r0] -_080157A4: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080157B0: .4byte gSentPokesToOpponent -_080157B4: .4byte gNoOfAllBanks -_080157B8: .4byte gAbsentBankFlags -_080157BC: .4byte gBitTable -_080157C0: .4byte gBattlePartyID - thumb_func_end sub_8015740 - - thumb_func_start sub_80157C4 -sub_80157C4: @ 80157C4 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetBankSide - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080157E0 - adds r0, r4, 0 - bl sub_8015740 - b _08015816 -_080157E0: - movs r3, 0x1 - ldr r5, _0801581C @ =gNoOfAllBanks - ldrb r0, [r5] - cmp r3, r0 - bge _08015816 - ldr r0, _08015820 @ =gSentPokesToOpponent - mov r12, r0 - movs r7, 0x2 - ldr r6, _08015824 @ =gBitTable - ldr r1, _08015828 @ =gBattlePartyID - lsls r0, r4, 1 - adds r4, r0, r1 -_080157F8: - adds r2, r3, 0 - ands r2, r7 - asrs r2, 1 - add r2, r12 - ldrh r0, [r4] - lsls r0, 2 - adds r0, r6 - ldr r0, [r0] - ldrb r1, [r2] - orrs r0, r1 - strb r0, [r2] - adds r3, 0x1 - ldrb r0, [r5] - cmp r3, r0 - blt _080157F8 -_08015816: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801581C: .4byte gNoOfAllBanks -_08015820: .4byte gSentPokesToOpponent -_08015824: .4byte gBitTable -_08015828: .4byte gBattlePartyID - thumb_func_end sub_80157C4 - - .align 2, 0 @ Don't pad with nop. diff --git a/include/battle.h b/include/battle.h index 4bcdfa6a9..27ed57045 100644 --- a/include/battle.h +++ b/include/battle.h @@ -549,7 +549,7 @@ extern u8 gBattleTextBuff1[]; //function declarations of buffer emits void EmitGetAttributes(u8 buffID, u8 request, u8 c); //0x0 void Emitcmd1(u8 a, u8 b, u8 c); //0x1 -void EmitSetAttributes(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 +void EmitSetMonData(u8 a, u8 request, u8 c, u8 bytes, void *data); //0x2 void EmitSendOutPoke(u8 a, u8 b, u8 c); //0x5 void EmitReturnPokeToBall(u8 a, u8 b); //0x6 void EmitTrainerSlide(u8 a); //0x8 @@ -644,21 +644,14 @@ bool8 TryRunFromBattle(u8 bank); void sub_8012324(void); void SwapTurnOrder(u8, u8); u8 GetWhoStrikesFirst(u8, u8, u8); -void sub_80155A4(); -void CancelMultiTurnMoves(u8 bank); -void PrepareStringBattle(); -void sub_80156DC(); -void sub_80157C4(u8 index); // asm/battle_3.o u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check); u8 UpdateTurnCounters(void); u8 TurnBasedEffects(void); -u8 sub_80170DC(); u8 HandleFaintedMonActions(); u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 move); u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn); -void b_clear_atk_up_if_hit_flag_unless_enraged(void); u8 GetMoveTarget(u16 move, u8 useMoveTarget); // asm/battle_4.o diff --git a/include/battle_util.h b/include/battle_util.h new file mode 100644 index 000000000..f47b00b2c --- /dev/null +++ b/include/battle_util.h @@ -0,0 +1,29 @@ +#ifndef GUARD_BATTLE_UTIL_H +#define GUARD_BATTLE_UTIL_H + +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_PLAYER1 11 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + +void TryClearRageStatuses(void); +void BattleScriptPush(u8* BS_ptr); +void PressurePPLoseOnUsingImprision(u8 bankAtk); +void PressurePPLoseOnUsingPerishSong(u8 bankAtk); +void sub_80155A4(u8); +void CancelMultiTurnMoves(u8 bank); +bool8 WasUnableToUseMove(u8 bank); +void PrepareStringBattle(u16 stringId, u8 bank); +void ResetSentPokesToOpponentValue(void); +void sub_8015740(u8 bank); +void sub_80157C4(u8 bank); +bool8 HandleWishPerishSongOnTurnEnd(void); +void BattleScriptExecute(u8* BS_ptr); +void BattleScriptPushCursorAndCallback(u8* BS_ptr); +u8 IsMonDisobedient(void); + +#endif // GUARD_BATTLE_UTIL_H diff --git a/include/constants/battle_constants.h b/include/constants/battle_constants.h index 2b973b4d9..49768f33e 100644 --- a/include/constants/battle_constants.h +++ b/include/constants/battle_constants.h @@ -245,6 +245,19 @@ #define MSG_DISPLAY 0x7 #define BATTLE_COMMUNICATION_ENTRIES_COUNT 0x8 +#define BS_GET_TARGET 0 +#define BS_GET_ATTACKER 1 +#define BS_GET_EFFECT_BANK 2 +#define BS_GET_gBank1 3 +#define BS_GET_BANK_0 7 +#define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update +#define BS_GET_ATTACKER_SIDE 8 // for atk1E_jumpifability +#define BS_GET_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability +#define BS_GET_SCRIPTING_BANK 10 +#define BS_GET_OPPONENT1 12 +#define BS_GET_PLAYER2 13 +#define BS_GET_OPPONENT2 14 + // status animation table #define B_ANIM_STATUS_PSN 0x0 #define B_ANIM_STATUS_CONFUSION 0x1 diff --git a/ld_script.txt b/ld_script.txt index 9a2cbe4e5..68466c1a0 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -50,8 +50,7 @@ SECTIONS { src/rom_800D42C.o(.text); asm/battle_1.o(.text_800DC24); src/battle/battle_2.o(.text); - asm/battle_2.o(.text); - src/battle/battle_3.o(.text); + src/battle/battle_util.o(.text); src/battle/battle_4.o(.text); src/battle/battle_controller_player.o(.text); src/battle/battle_7.o(.text); @@ -453,7 +452,7 @@ SECTIONS { src/battle/battle_controller_opponent.o(.rodata); src/battle/battle_controller_linkopponent.o(.rodata); data/battle_moves.o(.rodata); - src/battle/battle_3.o(.rodata); + src/battle/battle_util.o(.rodata); src/pokemon/pokemon_data.o(.rodata); . = ALIGN(4); src/engine/trig.o(.rodata); diff --git a/src/battle/battle_2.c b/src/battle/battle_2.c index a30245081..ae84e5585 100644 --- a/src/battle/battle_2.c +++ b/src/battle/battle_2.c @@ -5,6 +5,7 @@ #include "battle_interface.h" #include "battle_message.h" #include "battle_setup.h" +#include "battle_util.h" #include "data2.h" #include "event_data.h" #include "evolution_scene.h" @@ -141,7 +142,7 @@ extern u16 gBattleWeather; extern u32 gBattleMoveDamage; extern struct BattlePokemon gBattleMons[]; extern u8 gBattleMoveFlags; -extern const u8 BattleScript_FocusPunchSetUp[]; +extern u8 BattleScript_FocusPunchSetUp[]; extern u16 gDynamicBasePower; extern u8 gCurrentTurnActionNumber; extern void (* const gUnknown_081FA640[])(void); @@ -175,7 +176,6 @@ extern u8 gUnknown_081FA70C[][3]; extern u8 gUnknown_081FA71B[]; extern u8 gUnknown_081FA71F[]; -void b_call_bc_move_exec(const u8* BS_ptr); static void BattlePrepIntroSlide(void); void CheckFocusPunch_ClearVarsBeforeTurnStarts(void); @@ -2180,7 +2180,7 @@ void BattleBeginFirstTurn(void) SpecialStatusesClear(); ewram160A6 = gAbsentBankFlags; gBattleMainFunc = sub_8012324; - sub_80156DC(); + ResetSentPokesToOpponentValue(); for (i = 0; i < 8; i++) gBattleCommunication[i] = 0; for (i = 0; i < gNoOfAllBanks; i++) @@ -2236,7 +2236,7 @@ void BattleTurnPassed(void) if (HandleFaintedMonActions() != 0) return; ewram16059 = 0; - if (sub_80170DC() != 0) + if (HandleWishPerishSongOnTurnEnd() != 0) return; TurnValuesCleanUp(0); gHitMarker &= ~HITMARKER_NO_ATTACKSTRING; @@ -3154,7 +3154,7 @@ _08012968:\n\ cmp r0, 0x3\n\ bne _080129A8\n\ ldr r0, _080129A0 @ =BattleScript_PrintCantRunFromTrainer\n\ - bl b_call_bc_move_exec\n\ + bl BattleScriptExecute\n\ ldr r1, _080129A4 @ =gBattleCommunication\n\ ldrb r0, [r4]\n\ adds r0, r1\n\ @@ -3318,7 +3318,7 @@ _08012ACC:\n\ _08012AF4: .4byte 0x0000ffff\n\ _08012AF8: .4byte gBattleCommunication\n\ _08012AFC:\n\ - bl sub_8015894\n\ + bl TrySetCantSelectMoveBattleScript\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08012B48\n\ @@ -4207,13 +4207,13 @@ void CheckFocusPunch_ClearVarsBeforeTurnStarts(void) && !(gDisableStructs[gBankAttacker].truantCounter) && !(gProtectStructs[gActiveBank].onlyStruggle)) { - b_call_bc_move_exec(BattleScript_FocusPunchSetUp); + BattleScriptExecute(BattleScript_FocusPunchSetUp); return; } } } - b_clear_atk_up_if_hit_flag_unless_enraged(); + TryClearRageStatuses(); gCurrentTurnActionNumber = 0; { // something stupid needed to match diff --git a/src/battle/battle_3.c b/src/battle/battle_3.c deleted file mode 100644 index 92e0404cc..000000000 --- a/src/battle/battle_3.c +++ /dev/null @@ -1,3229 +0,0 @@ -#include "global.h" -#include "constants/abilities.h" -#include "battle.h" -#include "constants/moves.h" -#include "item.h" -#include "constants/items.h" -#include "event_data.h" -#include "constants/hold_effects.h" -#include "constants/species.h" -#include "constants/weather.h" -#include "pokemon.h" -#include "data2.h" -#include "random.h" -#include "text.h" -#include "constants/battle_move_effects.h" -#include "string_util.h" -#include "constants/flags.h" -#include "ewram.h" - -extern u8* gBattlescriptCurrInstr; -extern u8 gActiveBank; -extern u8 gBattleBufferB[4][0x200]; -extern u8* gUnknown_02024C1C[4]; //battlescript location when you try to choose a move you're not allowed to -extern u16 gLastUsedMove[4]; -extern struct BattlePokemon gBattleMons[4]; -extern struct BattleEnigmaBerry gEnigmaBerries[4]; -extern u8 gStringBank; -extern u16 gLastUsedItem; -extern u16 gCurrentMove; -extern const u32 gBitTable[]; -extern u16 gBattleTypeFlags; -extern u8 gNoOfAllBanks; -extern u32 gStatuses3[4]; -extern u8 gBankAttacker; -extern u8 gBankTarget; -extern u8 gBanksByTurnOrder[4]; -extern u16 gSideAffecting[2]; -extern u16 gBattleWeather; -extern void (*gBattleMainFunc)(void); -extern u8 gAbsentBankFlags; -extern u8 gBattleCommunication[]; -extern u32 gHitMarker; -extern u8 gEffectBank; -extern u8 gBank1; -extern s32 gBattleMoveDamage; -extern u16 gBattlePartyID[4]; -extern u16 gChosenMovesByBanks[4]; -extern s32 gTakenDmg[4]; -extern u8 gTakenDmgBanks[4]; -extern u8 gBattleMoveFlags; -extern u8 gLastUsedAbility; -extern u8 gBattleTextBuff2[]; -extern u8 gCurrentActionFuncId; -extern struct BattleEnigmaBerry gEnigmaBerries[4]; -extern u8 gUnknown_02024BE5; -extern u8 gCurrMovePos; -extern u16 gRandomMove; -extern s32 gBattleMoveDamage; -extern u16 gDynamicBasePower; -extern u32 gBattleExecBuffer; -extern const u16 gSoundMovesTable[]; -extern const u8 gStatusConditionString_PoisonJpn[]; -extern const u8 gStatusConditionString_SleepJpn[]; -extern const u8 gStatusConditionString_ParalysisJpn[]; -extern const u8 gStatusConditionString_BurnJpn[]; -extern const u8 gStatusConditionString_IceJpn[]; -extern const u8 gStatusConditionString_ConfusionJpn[]; -extern const u8 gStatusConditionString_LoveJpn[]; -extern const BattleCmdFunc gBattleScriptingCommandsTable[]; - -u8 IsImprisoned(u8 bank, u16 move); -u8 GetBankByIdentity(u8 ID); -u8 GetBankIdentity(u8 bank); -u8 GetBankSide(u8 bank); -void b_call_bc_move_exec(u8* BS_ptr); -bool8 sub_8015660(u8 bank); //check if a move failed -void SetMoveEffect(bool8 primary, u8 certainArg); -bool8 UproarWakeUpCheck(u8 bank); -bool8 sub_8018018(u8 bank, u8, u8); -void sub_8015740(u8 bank); -s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def); -u8 CountTrailingZeroBits(u32 a); -u8 GetMoveTarget(u16 move, u8 useMoveTarget); -u8 sub_803FC34(u8 bank); -u16 sub_803FBFC(u8 a); -u8 weather_get_current(void); -void b_push_move_exec(u8* BS_ptr); -void RecordAbilityBattle(u8 bank, u8 ability); -void RecordItemBattle(u8 bank, u8 holdEffect); -s8 GetPokeFlavourRelation(u32 pid, u8 flavor); - -extern u8 BattleScript_MoveSelectionDisabledMove[]; -extern u8 BattleScript_MoveSelectionTormented[]; -extern u8 BattleScript_MoveSelectionTaunted[]; -extern u8 BattleScript_MoveSelectionImprisoned[]; -extern u8 BattleScript_MoveSelectionChoiceBanded[]; -extern u8 BattleScript_MoveSelectionNoPP[]; -extern u8 BattleScript_NoMovesLeft[]; -extern u8 BattleScript_WishComesTrue[]; -extern u8 BattleScript_IngrainTurnHeal[]; -extern u8 BattleScript_LeechSeedTurnDrain[]; -extern u8 BattleScript_PoisonTurnDmg[]; -extern u8 BattleScript_BurnTurnDmg[]; -extern u8 BattleScript_NightmareTurnDmg[]; -extern u8 BattleScript_CurseTurnDmg[]; -extern u8 BattleScript_WrapTurnDmg[]; -extern u8 BattleScript_WrapEnds[]; -extern u8 BattleScript_DisabledNoMore[]; -extern u8 BattleScript_EncoredNoMore[]; - -extern u8 BattleScript_SideStatusWoreOff[]; -extern u8 BattleScript_RainContinuesOrEnds[]; -extern u8 BattleScript_SandStormHailEnds[]; -extern u8 BattleScript_DamagingWeatherContinues[]; -extern u8 BattleScript_SunlightFaded[]; -extern u8 BattleScript_SunlightContinues[]; -extern u8 BattleScript_SafeguardEnds[]; -extern u8 BattleScript_MonWokeUpInUproar[]; //uproar wakeup BS -extern u8 BattleScript_PrintUproarOverTurns[]; //uproar BS -extern u8 BattleScript_ThrashConfuses[]; -extern u8 BattleScript_YawnMakesAsleep[]; -extern u8 BattleScript_MonTookFutureAttack[]; -extern u8 BattleScript_PerishSongHits[]; -extern u8 BattleScript_PerishSongTimerGoesDown[]; -extern u8 BattleScript_GiveExp[]; -extern u8 BattleScript_HandleFaintedMon[]; - -extern u8 BattleScript_MoveUsedIsAsleep[]; -extern u8 BattleScript_MoveUsedWokeUp[]; -extern u8 BattleScript_MoveUsedIsFrozen[]; -extern u8 BattleScript_MoveUsedUnfroze[]; -extern u8 BattleScript_MoveUsedLoafingAround[]; -extern u8 BattleScript_MoveUsedMustRecharge[]; -extern u8 BattleScript_MoveUsedFlinched[]; -extern u8 BattleScript_MoveUsedIsDisabled[]; -extern u8 BattleScript_MoveUsedIsTaunted[]; -extern u8 BattleScript_MoveUsedIsImprisoned[]; -extern u8 BattleScript_MoveUsedIsConfused[]; -extern u8 BattleScript_MoveUsedIsConfusedNoMore[]; -extern u8 BattleScript_MoveUsedIsParalyzed[]; -extern u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; -extern u8 BattleScript_MoveUsedIsInLove[]; -extern u8 BattleScript_BideStoringEnergy[]; -extern u8 BattleScript_BideAttack[]; -extern u8 BattleScript_BideNoEnergyToAttack[]; - -extern u8 BattleScript_OverworldWeatherStarts[]; //load weather from overworld -extern u8 BattleScript_DrizzleActivates[]; -extern u8 BattleScript_SandstreamActivates[]; -extern u8 BattleScript_DroughtActivates[]; -extern u8 BattleScript_CastformChange[]; -extern u8 BattleScript_RainDishActivates[]; -extern u8 BattleScript_ShedSkinActivates[]; -extern u8 BattleScript_SpeedBoostActivates[]; -extern u8 BattleScript_SoundproofProtected[]; -extern u8 BattleScript_MoveHPDrain[]; -extern u8 BattleScript_MoveHPDrain_PPLoss[]; -extern u8 BattleScript_FlashFireBoost[]; -extern u8 BattleScript_FlashFireBoost_PPLoss[]; -extern u8 BattleScript_MoveHPDrain_FullHP[]; -extern u8 BattleScript_MoveHPDrain_FullHP_PPLoss[]; -extern u8 BattleScript_ColorChangeActivates[]; -extern u8 BattleScript_RoughSkinActivates[]; -extern u8 BattleScript_ApplySecondaryEffect[]; -extern u8 BattleScript_CuteCharmActivates[]; -extern u8 BattleScript_AbilityCuredStatus[]; //ability status clear -extern u8 BattleScript_SynchronizeActivates[]; -extern u8 gUnknown_081D978C[]; //intimidate1 -extern u8 gUnknown_081D9795[]; //intimidate2 -extern u8 BattleScript_TraceActivates[]; - -extern u8 BattleScript_WhiteHerbEnd2[]; -extern u8 BattleScript_WhiteHerbRet[]; -extern u8 BattleScript_ItemHealHP_RemoveItem[]; -extern u8 BattleScript_BerryPPHealEnd2[]; -extern u8 BattleScript_ItemHealHP_End2[]; -extern u8 BattleScript_BerryConfuseHealEnd2[]; -extern u8 BattleScript_BerryStatRaiseEnd2[]; -extern u8 BattleScript_BerryFocusEnergyEnd2[]; -extern u8 BattleScript_BerryCurePrlzEnd2[]; -extern u8 BattleScript_BerryCurePsnEnd2[]; -extern u8 BattleScript_BerryCureBrnEnd2[]; -extern u8 BattleScript_BerryCureFrzEnd2[]; -extern u8 BattleScript_BerryCureSlpEnd2[]; -extern u8 BattleScript_BerryCureConfusionEnd2[]; -extern u8 BattleScript_BerryCureChosenStatusEnd2[]; //berry cure any status end2 -extern u8 BattleScript_BerryCureParRet[]; -extern u8 BattleScript_BerryCurePsnRet[]; -extern u8 BattleScript_BerryCureBrnRet[]; -extern u8 BattleScript_BerryCureFrzRet[]; -extern u8 BattleScript_BerryCureSlpRet[]; -extern u8 BattleScript_BerryCureConfusionRet[]; -extern u8 BattleScript_BerryCureChosenStatusRet[]; //berry cure any status return - -extern u8 BattleScript_ItemHealHP_Ret[]; - -extern u8 gUnknown_081D995F[]; //disobedient while asleep -extern u8 BattleScript_IgnoresAndUsesRandomMove[]; //disobedient, uses a random move -extern u8 BattleScript_IgnoresAndFallsAsleep[]; //disobedient, went to sleep -extern u8 gUnknown_081D99A0[]; //disobedient, hits itself - -//array entries for battle communication -#define MOVE_EFFECT_BYTE 0x3 -#define MULTISTRING_CHOOSER 0x5 -#define MSG_DISPLAY 0x7 - -void b_movescr_stack_push(u8* BS_ptr) -{ - B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = BS_ptr; -} - -void b_movescr_stack_push_cursor(void) -{ - B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr; -} - -void b_movescr_stack_pop_cursor(void) -{ - gBattlescriptCurrInstr = B_BATTLESCRIPTS_STACK->ptr[--B_BATTLESCRIPTS_STACK->size]; -} - -u8 sub_8015894(void) //msg can't select a move -{ - u8 limitations = 0; - u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]]; - u8 holdEffect; - u16* choicedMove = CHOICED_MOVE(gActiveBank); - if (gDisableStructs[gActiveBank].disabledMove == move && move) - { - BATTLE_STRUCT->scriptingActive = gActiveBank; - gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionDisabledMove; - limitations++; - } - if (move == gLastUsedMove[gActiveBank] && move != MOVE_STRUGGLE && gBattleMons[gActiveBank].status2 & STATUS2_TORMENT) - { - CancelMultiTurnMoves(gActiveBank); - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTormented; - limitations++; - } - if (gDisableStructs[gActiveBank].tauntTimer1 && gBattleMoves[move].power == 0) - { - gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTaunted; - limitations++; - } - if (IsImprisoned(gActiveBank, move)) - { - gCurrentMove = move; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionImprisoned; - limitations++; - } - if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[gActiveBank].holdEffect; - else - holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); - gStringBank = gActiveBank; - if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) - { - gCurrentMove = *choicedMove; - gLastUsedItem = gBattleMons[gActiveBank].item; - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionChoiceBanded; - limitations++; - } - if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0) - { - gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionNoPP; - limitations++; - } - return limitations; -} - -#define MOVE_LIMITATION_ZEROMOVE (1 << 0) -#define MOVE_LIMITATION_PP (1 << 1) -#define MOVE_LIMITATION_DISABLED (1 << 2) -#define MOVE_LIMITATION_TORMENTED (1 << 3) -#define MOVE_LIMITATION_TAUNT (1 << 4) -#define MOVE_LIMITATION_IMPRISION (1 << 5) - -u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) -{ - u8 holdEffect; - u16* choicedMove = CHOICED_MOVE(bank); - s32 i; - if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) - holdEffect = gEnigmaBerries[bank].holdEffect; - else - holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); - gStringBank = bank; - for (i = 0; i < 4; i++) - { - if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) - unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].pp[i] == 0 && check & MOVE_LIMITATION_PP) - unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) - unusableMoves |= gBitTable[i]; - if (gBattleMons[bank].moves[i] == gLastUsedMove[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) - unusableMoves |= gBitTable[i]; - if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) - unusableMoves |= gBitTable[i]; - if (IsImprisoned(bank, gBattleMons[bank].moves[i]) && check & MOVE_LIMITATION_IMPRISION) - unusableMoves |= gBitTable[i]; - if (gDisableStructs[bank].encoreTimer1 && gDisableStructs[bank].encoredMove != gBattleMons[bank].moves[i]) - unusableMoves |= gBitTable[i]; - if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[bank].moves[i]) - unusableMoves |= gBitTable[i]; - } - return unusableMoves; -} - -bool8 AreAllMovesUnusable(void) -{ - u8 unusable; - unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF); - if (unusable == 0xF) //all moves are unusable - { - gProtectStructs[gActiveBank].onlyStruggle = 1; - gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft; - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2)); - else - gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1); - } - else - gProtectStructs[gActiveBank].onlyStruggle = 0; - return (unusable == 0xF); -} - -u8 IsImprisoned(u8 bank, u16 move) -{ - u8 imprisionedMoves = 0; - u8 bankSide = GetBankSide(bank); - s32 i; - for (i = 0; i < gNoOfAllBanks; i++) - { - if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISIONED) - { - s32 j; - for (j = 0; j < 4; j++) - { - if (move == gBattleMons[i].moves[j]) - break; - } - if (j < 4) - imprisionedMoves++; - } - } - return imprisionedMoves; -} - -u8 UpdateTurnCounters(void) -{ - u8 effect = 0; - s32 i; - - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) - { - } - for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) - { - } - - do - { - u8 sideBank; - - switch (BATTLE_STRUCT->turncountersTracker) - { - case 0: - for (i = 0; i < gNoOfAllBanks; i++) - { - gBanksByTurnOrder[i] = i; - } - for (i = 0; i < gNoOfAllBanks - 1; i++) - { - s32 j; - for (j = i + 1; j < gNoOfAllBanks; j++) - { - if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) - SwapTurnOrder(i, j); - } - } - BATTLE_STRUCT->turncountersTracker++; - BATTLE_STRUCT->turnSideTracker = 0; - case 1: - while (BATTLE_STRUCT->turnSideTracker < 2) - { - gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; - - if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) - { - if (--gSideTimers[sideBank].reflectTimer == 0) - { - - gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; - b_call_bc_move_exec(BattleScript_SideStatusWoreOff); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_REFLECT; - gBattleTextBuff1[3] = MOVE_REFLECT >> 8; - gBattleTextBuff1[4] = EOS; - effect++; - } - } - BATTLE_STRUCT->turnSideTracker++; - if (effect) - break; - } - if (!effect) - { - BATTLE_STRUCT->turncountersTracker++; - BATTLE_STRUCT->turnSideTracker = 0; - } - break; - case 2: - while (BATTLE_STRUCT->turnSideTracker < 2) - { - gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; - if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) - { - if (--gSideTimers[sideBank].lightscreenTimer == 0) - { - gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; - b_call_bc_move_exec(BattleScript_SideStatusWoreOff); - gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; - gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8; - gBattleTextBuff1[4] = EOS; - effect++; - } - } - BATTLE_STRUCT->turnSideTracker++; - if (effect) - break; - } - if (!effect) - { - BATTLE_STRUCT->turncountersTracker++; - BATTLE_STRUCT->turnSideTracker = 0; - } - break; - case 3: - while (BATTLE_STRUCT->turnSideTracker < 2) - { - gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; - if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0) - { - gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; - b_call_bc_move_exec(BattleScript_SideStatusWoreOff); - gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = MOVE_MIST; - gBattleTextBuff1[3] = MOVE_MIST >> 8; - gBattleTextBuff1[4] = EOS; - effect++; - } - BATTLE_STRUCT->turnSideTracker++; - if (effect) - break; - } - if (!effect) - { - BATTLE_STRUCT->turncountersTracker++; - BATTLE_STRUCT->turnSideTracker = 0; - } - break; - case 4: - while (BATTLE_STRUCT->turnSideTracker < 2) - { - gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; - if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) - { - if (--gSideTimers[sideBank].safeguardTimer == 0) - { - gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; - b_call_bc_move_exec(BattleScript_SafeguardEnds); - effect++; - } - } - BATTLE_STRUCT->turnSideTracker++; - if (effect) - break; - } - if (!effect) - { - BATTLE_STRUCT->turncountersTracker++; - BATTLE_STRUCT->turnSideTracker = 0; - } - break; - case 5: - while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks) - { - gActiveBank = gBanksByTurnOrder[BATTLE_STRUCT->turnSideTracker]; - if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) - { - gBankTarget = gActiveBank; - b_call_bc_move_exec(BattleScript_WishComesTrue); - effect++; - } - BATTLE_STRUCT->turnSideTracker++; - if (effect) - break; - } - if (!effect) - { - BATTLE_STRUCT->turncountersTracker++; - } - break; - case 6: - if (gBattleWeather & WEATHER_RAIN_ANY) - { - if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) - { - if (--gWishFutureKnock.weatherDuration == 0) - { - gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; - gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; - gBattleCommunication[MULTISTRING_CHOOSER] = 2; - } - else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - } - else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - else - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - b_call_bc_move_exec(BattleScript_RainContinuesOrEnds); - effect++; - } - BATTLE_STRUCT->turncountersTracker++; - break; - case 7: - if (gBattleWeather & WEATHER_SANDSTORM_ANY) - { - if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) - { - gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; - gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; - } - else - gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; - - BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; - } - BATTLE_STRUCT->turncountersTracker++; - break; - case 8: - if (gBattleWeather & WEATHER_SUN_ANY) - { - if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) - { - gBattleWeather &= ~WEATHER_SUN_TEMPORARY; - gBattlescriptCurrInstr = BattleScript_SunlightFaded; - } - else - gBattlescriptCurrInstr = BattleScript_SunlightContinues; - - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; - } - BATTLE_STRUCT->turncountersTracker++; - break; - case 9: - if (gBattleWeather & WEATHER_HAIL) - { - if (--gWishFutureKnock.weatherDuration == 0) - { - gBattleWeather &= ~WEATHER_HAIL; - gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; - } - else - gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; - - BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; - } - BATTLE_STRUCT->turncountersTracker++; - break; - case 10: - effect++; - break; - } - } while (effect == 0); - return (gBattleMainFunc != BattleTurnPassed); -} - -#define TURNBASED_MAX_CASE 19 - -u8 TurnBasedEffects(void) -{ - u8 effect = 0; - - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE) - { - gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->turnEffectsBank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) - { - BATTLE_STRUCT->turnEffectsBank++; - } - else - { - switch (BATTLE_STRUCT->turnEffectsTracker) - { - case 0: // ingrain - if ((gStatuses3[gActiveBank] & STATUS3_ROOTED) - && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP - && gBattleMons[gActiveBank].hp != 0) - { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; - b_call_bc_move_exec(BattleScript_IngrainTurnHeal); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 1: // end turn abilities - if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) - effect++; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 2: // item effects - if (ItemBattleEffects(1, gActiveBank, 0)) - effect++; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 18: // item effects again - if (ItemBattleEffects(1, gActiveBank, 1)) - effect++; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 3: // leech seed - if (gStatuses3[gActiveBank] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBank].hp != 0) - { - gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - BATTLE_STRUCT->animArg1 = gBankTarget; - BATTLE_STRUCT->animArg2 = gBankAttacker; - b_call_bc_move_exec(BattleScript_LeechSeedTurnDrain); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 4: // poison - if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0) - { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - b_call_bc_move_exec(BattleScript_PoisonTurnDmg); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 5: // toxic poison - if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) - { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns - gBattleMons[gActiveBank].status1 += 0x100; - gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; - b_call_bc_move_exec(BattleScript_PoisonTurnDmg); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 6: // burn - if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0) - { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - b_call_bc_move_exec(BattleScript_BurnTurnDmg); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 7: // spooky nightmares - if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0) - { - // missing sleep check - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - b_call_bc_move_exec(BattleScript_NightmareTurnDmg); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 8: // curse - if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0) - { - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - b_call_bc_move_exec(BattleScript_CurseTurnDmg); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 9: // wrap - if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0) - { - gBattleMons[gActiveBank].status2 -= 0x2000; - if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap - { - BATTLE_STRUCT->animArg1 = ewram16004arr(0, gActiveBank); - BATTLE_STRUCT->animArg2 = ewram16004arr(1, gActiveBank); - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); - gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); - gBattleTextBuff1[4] = EOS; - gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; - gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - } - else // broke free - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); - gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); - gBattleTextBuff1[4] = EOS; - gBattlescriptCurrInstr = BattleScript_WrapEnds; - } - b_call_bc_move_exec(gBattlescriptCurrInstr); - effect++; - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 10: // uproar - if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) - { - for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) - { - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) - && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) - { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - b_call_bc_move_exec(BattleScript_MonWokeUpInUproar); - gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - break; - } - } - if (gBankAttacker != gNoOfAllBanks) - { - effect = 2; // a pokemon was awaken - break; - } - else - { - gBankAttacker = gActiveBank; - gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down - if (sub_8015660(gActiveBank)) - { - CancelMultiTurnMoves(gActiveBank); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - } - else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; - } - else - { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - CancelMultiTurnMoves(gActiveBank); - } - b_call_bc_move_exec(BattleScript_PrintUproarOverTurns); - effect = 1; - } - } - if (effect != 2) - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 11: // thrash - if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) - { - gBattleMons[gActiveBank].status2 -= 0x400; - if (sub_8015660(gActiveBank)) - CancelMultiTurnMoves(gActiveBank); - else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) - && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS)) - { - gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); - if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; - SetMoveEffect(1, 0); - if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) - b_call_bc_move_exec(BattleScript_ThrashConfuses); - effect++; - } - } - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 12: // disable - if (gDisableStructs[gActiveBank].disableTimer1 != 0) - { - int i; - for (i = 0; i < 4; i++) - { - if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) - break; - } - if (i == 4) // pokemon does not have the disabled move anymore - { - gDisableStructs[gActiveBank].disabledMove = 0; - gDisableStructs[gActiveBank].disableTimer1 = 0; - } - else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends - { - gDisableStructs[gActiveBank].disabledMove = 0; - b_call_bc_move_exec(BattleScript_DisabledNoMore); - effect++; - } - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 13: // encore - if (gDisableStructs[gActiveBank].encoreTimer1 != 0) - { - if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore - { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; - } - else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 - || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) - { - gDisableStructs[gActiveBank].encoredMove = 0; - gDisableStructs[gActiveBank].encoreTimer1 = 0; - b_call_bc_move_exec(BattleScript_EncoredNoMore); - effect++; - } - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 14: // lock-on decrement - if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) - gStatuses3[gActiveBank] -= 0x8; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 15: // charge - if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) - gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 16: // taunt - if (gDisableStructs[gActiveBank].tauntTimer1) - gDisableStructs[gActiveBank].tauntTimer1--; - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 17: // yawn - if (gStatuses3[gActiveBank] & STATUS3_YAWN) - { - gStatuses3[gActiveBank] -= 0x800; - if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY) - && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT - && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) - { - CancelMultiTurnMoves(gActiveBank); - gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - gEffectBank = gActiveBank; - b_call_bc_move_exec(BattleScript_YawnMakesAsleep); - effect++; - } - } - BATTLE_STRUCT->turnEffectsTracker++; - break; - case 19: // done - BATTLE_STRUCT->turnEffectsTracker = 0; - BATTLE_STRUCT->turnEffectsBank++; - break; - } - if (effect != 0) - return effect; - } - } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); - return 0; -} - -bool8 sub_80170DC(void) // handle future sight and perish song -{ - gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); - switch (BATTLE_STRUCT->sub80170DC_Tracker) - { - case 0: // future sight - while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks) - { - gActiveBank = BATTLE_STRUCT->sub80170DC_Bank; - if (gAbsentBankFlags & gBitTable[gActiveBank]) - BATTLE_STRUCT->sub80170DC_Bank++; - else - { - BATTLE_STRUCT->sub80170DC_Bank++; - if (gWishFutureKnock.futureSightCounter[gActiveBank] && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) - { - if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - else //Doom Desire - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; - gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; - gBattleTextBuff1[4] = 0xFF; - gBankTarget = gActiveBank; - gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; - gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; - b_call_bc_move_exec(BattleScript_MonTookFutureAttack); - return 1; - } - } - } - BATTLE_STRUCT->sub80170DC_Tracker = 1; - BATTLE_STRUCT->sub80170DC_Bank = 0; - case 1: // perish song - while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks) - { - gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->sub80170DC_Bank]; - if (gAbsentBankFlags & gBitTable[gActiveBank]) - BATTLE_STRUCT->sub80170DC_Bank++; - else - { - BATTLE_STRUCT->sub80170DC_Bank++; - if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 1; - gBattleTextBuff1[2] = 1; - gBattleTextBuff1[3] = 1; - gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSong1; - gBattleTextBuff1[5] = 0xFF; - if (gDisableStructs[gActiveBank].perishSong1 == 0) - { - gStatuses3[gActiveBank] &= ~(STATUS3_PERISH_SONG); - gBattleMoveDamage = gBattleMons[gActiveBank].hp; - gBattlescriptCurrInstr = BattleScript_PerishSongHits; - } - else - { - gDisableStructs[gActiveBank].perishSong1--; - gBattlescriptCurrInstr = BattleScript_PerishSongTimerGoesDown; - } - b_call_bc_move_exec(gBattlescriptCurrInstr); - return 1; - } - } - } - break; - } - gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); - return 0; -} - -#define HandleFaintedMonActions_MAX_CASE 7 - -bool8 HandleFaintedMonActions(void) -{ - if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - return 0; - do - { - int i; - switch (BATTLE_STRUCT->sub80173A4_Tracker) - { - case 0: - BATTLE_STRUCT->unk1605A = 0; - BATTLE_STRUCT->sub80173A4_Tracker++; - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gAbsentBankFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) - gAbsentBankFlags &= ~(gBitTable[i]); - } - case 1: - do - { - gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; - if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(BATTLE_STRUCT->unk16113 & gBitTable[gBattlePartyID[BATTLE_STRUCT->unk1605A]]) && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) - { - b_call_bc_move_exec(BattleScript_GiveExp); - BATTLE_STRUCT->sub80173A4_Tracker = 2; - return 1; - } - } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks); - BATTLE_STRUCT->sub80173A4_Tracker = 3; - break; - case 2: - sub_8015740(gBank1); - if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks) - BATTLE_STRUCT->sub80173A4_Tracker = 3; - else - BATTLE_STRUCT->sub80173A4_Tracker = 1; - break; - case 3: - BATTLE_STRUCT->unk1605A = 0; - BATTLE_STRUCT->sub80173A4_Tracker++; - case 4: - do - { - gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; //or should banks be switched? - if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) - { - b_call_bc_move_exec(BattleScript_HandleFaintedMon); - BATTLE_STRUCT->sub80173A4_Tracker = 5; - return 1; - } - } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks); - BATTLE_STRUCT->sub80173A4_Tracker = 6; - break; - case 5: - if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks) - BATTLE_STRUCT->sub80173A4_Tracker = 6; - else - BATTLE_STRUCT->sub80173A4_Tracker = 4; - break; - case 6: - if (AbilityBattleEffects(9, 0, 0, 0, 0) || AbilityBattleEffects(0xB, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(6, 0, 0, 0, 0)) - return 1; - BATTLE_STRUCT->sub80173A4_Tracker++; - break; - case 7: - break; - } - } while (BATTLE_STRUCT->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE); - return 0; -} - -void b_clear_atk_up_if_hit_flag_unless_enraged(void) -{ - int i; - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].status2 & STATUS2_RAGE && gChosenMovesByBanks[i] != MOVE_RAGE) - gBattleMons[i].status2 &= ~(STATUS2_RAGE); - } -} - -#define ATKCANCELLER_MAX_CASE 14 - -u8 AtkCanceller_UnableToUseMove(void) -{ - u8 effect = 0; - s32* bideDmg = &BATTLE_STRUCT->bideDmg; - do - { - switch (BATTLE_STRUCT->atkCancellerTracker) - { - case 0: // flags clear - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND); - gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE); - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 1: // check being asleep - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) - { - if (UproarWakeUpCheck(gBankAttacker)) - { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - b_movescr_stack_push_cursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; - effect = 2; - } - else - { - u8 toSub; - if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD) - toSub = 2; - else - toSub = 1; - if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub) - gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); - else - gBattleMons[gBankAttacker].status1 -= toSub; - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) - { - if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) - { - gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 2; - } - } - else - { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); - b_movescr_stack_push_cursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; - effect = 2; - } - } - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 2: // check being frozen - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) - { - if (Random() % 5) - { - if (gBattleMoves[gCurrentMove].effect != EFFECT_THAW_HIT) // unfreezing via a move effect happens in case 13 - { - gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; - gHitMarker |= HITMARKER_NO_ATTACKSTRING; - } - else - { - BATTLE_STRUCT->atkCancellerTracker++; - break; - } - } - else // unfreeze - { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - } - effect = 2; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 3: // truant - if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter) - { - CancelMultiTurnMoves(gBankAttacker); - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - gBattleMoveFlags |= MOVESTATUS_MISSED; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 4: // recharge - if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) - { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE); - gDisableStructs[gBankAttacker].rechargeCounter = 0; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 5: // flinch - if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED) - { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED); - gProtectStructs[gBankAttacker].flinchImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 6: // disabled move - if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0) - { - gProtectStructs[gBankAttacker].usedDisabledMove = 1; - BATTLE_STRUCT->scriptingActive = gBankAttacker; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 7: // taunt - if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) - { - gProtectStructs[gBankAttacker].usedTauntedMove = 1; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 8: // imprisoned - if (IsImprisoned(gBankAttacker, gCurrentMove)) - { - gProtectStructs[gBankAttacker].usedImprisionedMove = 1; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 9: // confusion - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) - { - gBattleMons[gBankAttacker].status2--; - if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) - { - if (Random() & 1) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - b_movescr_stack_push_cursor(); - } - else // confusion dmg - { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBankTarget = gBankAttacker; - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gProtectStructs[gBankAttacker].confusionSelfDmg = 1; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - } - gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; - } - else // snapped out of confusion - { - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfusedNoMore; - } - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 10: // paralysis - if (gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS && (Random() % 4) == 0) - { - gProtectStructs[gBankAttacker].prlzImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); - gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 11: // infatuation - if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) - { - BATTLE_STRUCT->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10); - if (Random() & 1) - b_movescr_stack_push_cursor(); - else - { - b_movescr_stack_push(BattleScript_MoveUsedIsParalyzedCantAttack); - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gProtectStructs[gBankAttacker].loveImmobility = 1; - CancelMultiTurnMoves(gBankAttacker); - } - gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 12: // bide - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) - { - gBattleMons[gBankAttacker].status2 -= 0x100; - if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) - gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; - else - { - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); - if (gTakenDmg[gBankAttacker]) - { - gCurrentMove = MOVE_BIDE; - *bideDmg = gTakenDmg[gBankAttacker] * 2; - gBankTarget = gTakenDmgBanks[gBankAttacker]; - if (gAbsentBankFlags & gBitTable[gBankTarget]) - gBankTarget = GetMoveTarget(MOVE_BIDE, 1); - gBattlescriptCurrInstr = BattleScript_BideAttack; - } - else - gBattlescriptCurrInstr = BattleScript_BideNoEnergyToAttack; - } - effect = 1; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 13: // move thawing - if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) - { - if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) - { - gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - } - effect = 2; - } - BATTLE_STRUCT->atkCancellerTracker++; - break; - case 14: // last case - break; - } - - } while (BATTLE_STRUCT->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0); - - if (effect == 2) - { - gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - } - return effect; -} - -bool8 sub_8018018(u8 bank, u8 r1, u8 r2) -{ - struct Pokemon* party; - u8 r7; - u8 r6; - s32 i; - if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) - return 0; - if (gBattleTypeFlags & BATTLE_TYPE_MULTI) - { - r7 = sub_803FC34(bank); - if (GetBankSide(bank) == 0) - party = gPlayerParty; - else - party = gEnemyParty; - r6 = sub_803FBFC(r7); - for (i = r6 * 3; i < r6 * 3 + 3; i++) - { - if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) - break; - } - return (i == r6 * 3 + 3); - } - else - { - if (GetBankSide(bank) == 1) - { - r7 = GetBankByIdentity(1); - r6 = GetBankByIdentity(3); - party = gEnemyParty; - } - else - { - r7 = GetBankByIdentity(0); - r6 = GetBankByIdentity(2); - party = gPlayerParty; - } - if (r1 == 6) - r1 = gBattlePartyID[r7]; - if (r2 == 6) - r2 = gBattlePartyID[r6]; - for (i = 0; i < 6; i++) - { - if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6)) - break; - } - return (i == 6); - } -} - -enum -{ - CASTFORM_NO_CHANGE, //0 - CASTFORM_TO_NORMAL, //1 - CASTFORM_TO_FIRE, //2 - CASTFORM_TO_WATER, //3 - CASTFORM_TO_ICE, //4 -}; - -u8 CastformDataTypeChange(u8 bank) -{ - u8 formChange = 0; - if (gBattleMons[bank].species != SPECIES_CASTFORM || gBattleMons[bank].ability != ABILITY_FORECAST || gBattleMons[bank].hp == 0) - return CASTFORM_NO_CHANGE; - if (!WEATHER_HAS_EFFECT && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) - { - gBattleMons[bank].type1 = TYPE_NORMAL; - gBattleMons[bank].type2 = TYPE_NORMAL; - return CASTFORM_TO_NORMAL; - } - if (!WEATHER_HAS_EFFECT) - return CASTFORM_NO_CHANGE; - if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) - { - gBattleMons[bank].type1 = TYPE_NORMAL; - gBattleMons[bank].type2 = TYPE_NORMAL; - formChange = CASTFORM_TO_NORMAL; - } - if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[bank].type1 != TYPE_FIRE && gBattleMons[bank].type2 != TYPE_FIRE) - { - gBattleMons[bank].type1 = TYPE_FIRE; - gBattleMons[bank].type2 = TYPE_FIRE; - formChange = CASTFORM_TO_FIRE; - } - if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[bank].type1 != TYPE_WATER && gBattleMons[bank].type2 != TYPE_WATER) - { - gBattleMons[bank].type1 = TYPE_WATER; - gBattleMons[bank].type2 = TYPE_WATER; - formChange = CASTFORM_TO_WATER; - } - if (gBattleWeather & WEATHER_HAIL && gBattleMons[bank].type1 != TYPE_ICE && gBattleMons[bank].type2 != TYPE_ICE) - { - gBattleMons[bank].type1 = TYPE_ICE; - gBattleMons[bank].type2 = TYPE_ICE; - formChange = CASTFORM_TO_ICE; - } - return formChange; -} - -u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) -{ - u8 effect = 0; - struct Pokemon* pokeAtk; - struct Pokemon* pokeDef; - u16 speciesAtk; - u16 speciesDef; - u32 pidAtk; - u32 pidDef; - - if (gBankAttacker >= gNoOfAllBanks) - gBankAttacker = bank; - if (GetBankSide(gBankAttacker) == 0) - pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; - else - pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; - - if (gBankTarget >= gNoOfAllBanks) - gBankTarget = bank; - if (GetBankSide(gBankTarget) == 0) - pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; - else - pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; - - speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); - pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); - - speciesDef = GetMonData(pokeDef, MON_DATA_SPECIES); - pidDef = GetMonData(pokeDef, MON_DATA_PERSONALITY); - - if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning? - { - u8 moveType; - s32 i; - u16 move; - u8 side; - u8 target1; - - if (special) - gLastUsedAbility = special; - else - gLastUsedAbility = gBattleMons[bank].ability; - - if (moveArg) - move = moveArg; - else - move = gCurrentMove; - - if (BATTLE_STRUCT->dynamicMoveType) - moveType = BATTLE_STRUCT->dynamicMoveType & 0x3F; - else - moveType = gBattleMoves[move].type; - - //_080184AC - switch (caseID) - { - case ABILITYEFFECT_ON_SWITCHIN: // 0 - //_08018518 - if (gBankAttacker >= gNoOfAllBanks) - gBankAttacker = bank; - switch (gLastUsedAbility) - { - case 0xFF: //weather from overworld - //_08018586 - switch (weather_get_current()) - { - case WEATHER_RAIN_LIGHT: - case WEATHER_RAIN_MED: - case WEATHER_RAIN_HEAVY: - if (!(gBattleWeather & WEATHER_RAIN_ANY)) - { - gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); - BATTLE_STRUCT->animArg1 = B_ANIM_RAIN_CONTINUES; - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case WEATHER_SANDSTORM: - if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) - { - gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); - BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES; - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case WEATHER_DROUGHT: - if (!(gBattleWeather & WEATHER_SUN_ANY)) - { - gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); - BATTLE_STRUCT->animArg1 = B_ANIM_SUN_CONTINUES; - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - } - if (effect) - { - gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); - b_push_move_exec(BattleScript_OverworldWeatherStarts); - } - break; - case ABILITY_DRIZZLE: - //_08018680 - if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) - { - gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); - b_push_move_exec(BattleScript_DrizzleActivates); - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case ABILITY_SAND_STREAM: - //_080186B8 - if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) - { - gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); - b_push_move_exec(BattleScript_SandstreamActivates); - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case ABILITY_DROUGHT: - //_080186F0 - if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) - { - gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); - b_push_move_exec(BattleScript_DroughtActivates); - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case ABILITY_INTIMIDATE: - //_08018728 - if (!(gSpecialStatuses[bank].intimidatedPoke)) - { - gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; - gSpecialStatuses[bank].intimidatedPoke = 1; - } - break; - case ABILITY_FORECAST: - //_0801875C - effect = CastformDataTypeChange(bank); - if (effect != 0) - { - b_push_move_exec(BattleScript_CastformChange); - BATTLE_STRUCT->scriptingActive = bank; - BATTLE_STRUCT->castformToChangeInto = effect - 1; - } - break; - case ABILITY_TRACE: - //_080187A0 - if (!(gSpecialStatuses[bank].traced)) - { - gStatuses3[bank] |= STATUS3_TRACE; - gSpecialStatuses[bank].traced = 1; - } - break; - case ABILITY_CLOUD_NINE: - case ABILITY_AIR_LOCK: - //_080187DC - { - // that's a weird choice for a variable, why not use i or bank? - for (target1 = 0; target1 < gNoOfAllBanks; target1++) - { - effect = CastformDataTypeChange(target1); - if (effect != 0) - { - b_push_move_exec(BattleScript_CastformChange); - BATTLE_STRUCT->scriptingActive = target1; - BATTLE_STRUCT->castformToChangeInto = effect - 1; - break; - } - } - } - break; - } - break; - case ABILITYEFFECT_ENDTURN: // 1 - //_08018814 - if (gBattleMons[bank].hp != 0) - { - gBankAttacker = bank; - switch (gLastUsedAbility) - { - case ABILITY_RAIN_DISH: - if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) - && gBattleMons[bank].maxHP > gBattleMons[bank].hp) - { - gLastUsedAbility = ABILITY_RAIN_DISH; // why - b_push_move_exec(BattleScript_RainDishActivates); - gBattleMoveDamage = gBattleMons[bank].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; - effect++; - } - break; - case ABILITY_SHED_SKIN: - if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0) - { - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON)) - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - if (gBattleMons[bank].status1 & STATUS_SLEEP) - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - if (gBattleMons[bank].status1 & STATUS_BURN) - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - if (gBattleMons[bank].status1 & STATUS_FREEZE) - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - gBattleMons[bank].status1 = 0; - // BUG: The nightmare status does not get cleared here. This was fixed in Emerald. - //gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - BATTLE_STRUCT->scriptingActive = gActiveBank = bank; - b_push_move_exec(BattleScript_ShedSkinActivates); - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); - effect++; - } - break; - case ABILITY_SPEED_BOOST: - if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2) - { - gBattleMons[bank].statStages[STAT_STAGE_SPEED]++; - BATTLE_STRUCT->animArg1 = 0x11; - BATTLE_STRUCT->animArg2 = 0; - b_push_move_exec(BattleScript_SpeedBoostActivates); - BATTLE_STRUCT->scriptingActive = bank; - effect++; - } - break; - case ABILITY_TRUANT: - gDisableStructs[gBankAttacker].truantCounter ^= 1; - break; - } - } - break; - case ABILITYEFFECT_MOVES_BLOCK: // 2 - //_08018A40 - if (gLastUsedAbility == ABILITY_SOUNDPROOF) - { - for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++) - { - if (gSoundMovesTable[i] == move) - break; - } - if (gSoundMovesTable[i] != 0xFFFF) - { - if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS) - gHitMarker |= HITMARKER_NO_PPDEDUCT; - gBattlescriptCurrInstr = BattleScript_SoundproofProtected; - effect = 1; - } - } - break; - case ABILITYEFFECT_ABSORBING: // 3 - //_08018AD8 - if (move) - { - switch (gLastUsedAbility) - { - case ABILITY_VOLT_ABSORB: - if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) - { - if (gProtectStructs[gBankAttacker].notFirstStrike) - gBattlescriptCurrInstr = BattleScript_MoveHPDrain; - else - gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; - effect = 1; - } - break; - case ABILITY_WATER_ABSORB: - if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) - { - if (gProtectStructs[gBankAttacker].notFirstStrike) - gBattlescriptCurrInstr = BattleScript_MoveHPDrain; - else - gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; - effect = 1; - } - break; - case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) - { - if (!(eFlashFireArr.arr[bank] & 1)) - { - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - if (gProtectStructs[gBankAttacker].notFirstStrike) - gBattlescriptCurrInstr = BattleScript_FlashFireBoost; - else - gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - eFlashFireArr.arr[bank] |= 1; - effect = 2; - } - else - { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gProtectStructs[gBankAttacker].notFirstStrike) - gBattlescriptCurrInstr = BattleScript_FlashFireBoost; - else - gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; - effect = 2; - } - } - break; - } - if (effect == 1) - { - if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) - { - if ((gProtectStructs[gBankAttacker].notFirstStrike)) - gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP; - else - gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP_PPLoss; - } - else - { - gBattleMoveDamage = gBattleMons[bank].maxHP / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; - } - } - } - break; - case ABILITYEFFECT_CONTACT: // 4 - //_08018CF0 - switch (gLastUsedAbility) - { - case ABILITY_COLOR_CHANGE: - //_08018DCC - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && move != MOVE_STRUGGLE - && gBattleMoves[move].power != 0 - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[bank].type1 != moveType - && gBattleMons[bank].type2 != moveType - && gBattleMons[bank].hp != 0) - { - gBattleMons[bank].type1 = moveType; - gBattleMons[bank].type2 = moveType; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 3; - gBattleTextBuff1[2] = moveType; - gBattleTextBuff1[3] = 0xFF; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; - effect++; - } - break; - case ABILITY_ROUGH_SKIN: - //_08018E94 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) - { - gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_RoughSkinActivates; - effect++; - } - break; - case ABILITY_EFFECT_SPORE: - //_08018F54 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 10) == 0) - { - do - { - gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; - } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); - if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) - gBattleCommunication[MOVE_EFFECT_BYTE] += 2; - gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITY_POISON_POINT: - //_0801904C - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITY_STATIC: - //_08019128 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITY_FLAME_BODY: - //_08019204 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (Random() % 3) == 0) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITY_CUTE_CHARM: - //_080192E0 - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gBattleMons[gBankAttacker].hp != 0 - && !gProtectStructs[gBankAttacker].confusionSelfDmg - && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && gBattleMons[gBankTarget].hp != 0 - && (Random() % 3) == 0 - && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) - && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) - && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF - && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) - { - gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; - effect++; - } - break; - } - break; - case ABILITYEFFECT_IMMUNITY: // 5 - //_08019448 - { - for (bank = 0; bank < gNoOfAllBanks; bank++) - { - switch (gBattleMons[bank].ability) - { - case ABILITY_IMMUNITY: - if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00? - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - effect = 1; - } - break; - case ABILITY_OWN_TEMPO: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - effect = 2; - } - break; - case ABILITY_LIMBER: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - effect = 1; - } - break; - case ABILITY_INSOMNIA: - case ABILITY_VITAL_SPIRIT: - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - effect = 1; - } - break; - case ABILITY_WATER_VEIL: - if (gBattleMons[bank].status1 & STATUS_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - effect = 1; - } - break; - case ABILITY_MAGMA_ARMOR: - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - effect = 1; - } - break; - case ABILITY_OBLIVIOUS: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - effect = 3; - } - break; - } - if (effect) - { - switch (effect) - { - case 1: // status cleared - gBattleMons[bank].status1 = 0; - break; - case 2: // get rid of confusion - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - break; - case 3: // get rid of infatuation - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); - break; - } - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; - BATTLE_STRUCT->scriptingActive = bank; - gActiveBank = bank; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - return effect; - } - } - } - break; - case ABILITYEFFECT_FORECAST: // 6 - //_080197B4 - { - for (bank = 0; bank < gNoOfAllBanks; bank++) - { - if (gBattleMons[bank].ability == ABILITY_FORECAST) - { - effect = CastformDataTypeChange(bank); - if (effect) - { - b_push_move_exec(BattleScript_CastformChange); - BATTLE_STRUCT->scriptingActive = bank; - BATTLE_STRUCT->castformToChangeInto = effect - 1; - return effect; - } - } - } - } - break; - case ABILITYEFFECT_SYNCHRONIZE: // 7 - //_08019804 - if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) - { - gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); - BATTLE_STRUCT->synchroniseEffect &= 0x3F; - if (BATTLE_STRUCT->synchroniseEffect == 6) - BATTLE_STRUCT->synchroniseEffect = 2; - gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect + 0x40; - BATTLE_STRUCT->scriptingActive = gBankTarget; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 - //_08019880 - if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) - { - gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); - BATTLE_STRUCT->synchroniseEffect &= 0x3F; - if (BATTLE_STRUCT->synchroniseEffect == 6) - BATTLE_STRUCT->synchroniseEffect = 2; - gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect; - BATTLE_STRUCT->scriptingActive = gBankAttacker; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; - gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; - effect++; - } - break; - case ABILITYEFFECT_INTIMIDATE1: // 9 - //_080198FC - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) - { - gLastUsedAbility = ABILITY_INTIMIDATE; - gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - b_push_move_exec(gUnknown_081D978C); - BATTLE_STRUCT->intimidateBank = i; - effect++; - break; - } - } - break; - case ABILITYEFFECT_TRACE: // 11 - //_08019940 - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) - { - u8 target2; - side = (GetBankIdentity(i) ^ 1) & 1; - target1 = GetBankByIdentity(side); - target2 = GetBankByIdentity(side + 2); - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 - && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) - { - //_080199AE - gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - effect++; - } - else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) - { - //_08019A34 - gActiveBank = target1; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - effect++; - } - else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) - { - //_08019A78 - gActiveBank = target2; - gBattleMons[i].ability = gBattleMons[gActiveBank].ability; - gLastUsedAbility = gBattleMons[gActiveBank].ability; - effect++; - } - } - else - //_08019ABC - { - gActiveBank = target1; - if (gBattleMons[target1].ability && gBattleMons[target1].hp) - { - gBattleMons[i].ability = gBattleMons[target1].ability; - gLastUsedAbility = gBattleMons[target1].ability; - effect++; - } - } - if (effect) - { - b_push_move_exec(BattleScript_TraceActivates); - gStatuses3[i] &= ~(STATUS3_TRACE); - BATTLE_STRUCT->scriptingActive = i; - - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 4; - gBattleTextBuff1[2] = gActiveBank; - gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; - gBattleTextBuff1[4] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 9; - gBattleTextBuff2[2] = gLastUsedAbility; - gBattleTextBuff2[3] = EOS; - break; - } - } - } - break; - case ABILITYEFFECT_INTIMIDATE2: // 10 - //_08019B1C - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) - { - gLastUsedAbility = ABILITY_INTIMIDATE; - gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = gUnknown_081D9795; - BATTLE_STRUCT->intimidateBank = i; - effect++; - break; - } - } - break; - case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 - //_08019B60 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) - { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) - { - gLastUsedAbility = ability; - effect = i + 1; - } - } - break; - case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 - //_08019BBC - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) - { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) - { - gLastUsedAbility = ability; - effect = i + 1; - } - } - break; - case ABILITYEFFECT_FIELD_SPORT: // 14 - //_08019C18 - switch (gLastUsedAbility) - { - case 0xFD: - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gStatuses3[i] & STATUS3_MUDSPORT) - effect = i + 1; - } - break; - case 0xFE: - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gStatuses3[i] & STATUS3_WATERSPORT) - effect = i + 1; - } - break; - default: - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ability) - { - gLastUsedAbility = ability; - effect = i + 1; - } - } - break; - } - break; - case ABILITYEFFECT_CHECK_ON_FIELD: // 19 - //_08019CD4 - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) - { - gLastUsedAbility = ability; - effect = i + 1; - } - } - break; - case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 - //_08019D18 - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ability && i != bank) - { - gLastUsedAbility = ability; - effect = i + 1; - } - } - break; - case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16 - //_08019D5C - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) - { - if (GetBankSide(i) != side && gBattleMons[i].ability == ability) - { - gLastUsedAbility = ability; - effect++; - } - } - break; - case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 - //_08019DB8 - side = GetBankSide(bank); - for (i = 0; i < gNoOfAllBanks; i++) - { - if (GetBankSide(i) == side && gBattleMons[i].ability == ability) - { - gLastUsedAbility = ability; - effect++; - } - } - break; - case ABILITYEFFECT_COUNT_ON_FIELD: // 18 - //_08019F44 - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].ability == ability && i != bank) - { - gLastUsedAbility = ability; - effect++; - } - } - break; - } - //_08019F76 - if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) - RecordAbilityBattle(bank, gLastUsedAbility); - } - - return effect; -} - -void b_call_bc_move_exec(u8* BS_ptr) -{ - gBattlescriptCurrInstr = BS_ptr; - B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; - gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack; - gCurrentActionFuncId = 0; -} - -void b_push_move_exec(u8* BS_ptr) -{ - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BS_ptr; - B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; - gBattleMainFunc = RunBattleScriptCommands; -} - -enum -{ - ITEM_NO_EFFECT, // 0 - ITEM_STATUS_CHANGE, // 1 - ITEM_EFFECT_OTHER, // 2 - ITEM_PP_CHANGE, // 3 - ITEM_HP_CHANGE, // 4 - ITEM_STATS_CHANGE, // 5 -}; - -enum -{ - FLAVOR_SPICY, // 0 - FLAVOR_DRY, // 1 - FLAVOR_SWEET, // 2 - FLAVOR_BITTER, // 3 - FLAVOR_SOUR, // 4 -}; - -u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) -{ - int i = 0; - u8 effect = ITEM_NO_EFFECT; - u8 changedPP = 0; - u8 bankHoldEffect, atkHoldEffect, defHoldEffect; - u8 bankQuality, atkQuality, defQuality; - u16 atkItem, defItem; - - gLastUsedItem = gBattleMons[bank].item; - if (gLastUsedItem == ITEM_ENIGMA_BERRY) - { - bankHoldEffect = gEnigmaBerries[bank].holdEffect; - bankQuality = gEnigmaBerries[bank].holdEffectParam; - } - else - { - bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); - bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); - } - - atkItem = gBattleMons[gBankAttacker].item; - if (atkItem == ITEM_ENIGMA_BERRY) - { - atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect; - atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam; - } - else - { - atkHoldEffect = ItemId_GetHoldEffect(atkItem); - atkQuality = ItemId_GetHoldEffectParam(atkItem); - } - - // def variables are unused - defItem = gBattleMons[gBankTarget].item; - if (defItem == ITEM_ENIGMA_BERRY) - { - defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect; - defQuality = gEnigmaBerries[gBankTarget].holdEffectParam; - } - else - { - defHoldEffect = ItemId_GetHoldEffect(defItem); - defQuality = ItemId_GetHoldEffectParam(defItem); - } - - switch (caseID) - { - case 0: - switch (bankHoldEffect) - { - case HOLD_EFFECT_DOUBLE_PRIZE: - BATTLE_STRUCT->moneyMultiplier = 2; - break; - case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) - { - if (gBattleMons[bank].statStages[i] < 6) - { - gBattleMons[bank].statStages[i] = 6; - effect = ITEM_STATS_CHANGE; - } - } - if (effect) - { - BATTLE_STRUCT->scriptingActive = bank; - gStringBank = bank; - gActiveBank = gBankAttacker = bank; - b_call_bc_move_exec(BattleScript_WhiteHerbEnd2); - } - break; - } - break; - case 1: - if (gBattleMons[bank].hp) - { - switch (bankHoldEffect) - { - case HOLD_EFFECT_RESTORE_HP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleMoveDamage = bankQuality; - if (gBattleMons[bank].hp + bankQuality > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = 4; - } - break; - case HOLD_EFFECT_RESTORE_PP: - if (!moveTurn) - { - struct Pokemon* poke; - u8 ppBonuses; - u16 move; - - if (GetBankSide(bank) == 0) - poke = &gPlayerParty[gBattlePartyID[bank]]; - else - poke = &gEnemyParty[gBattlePartyID[bank]]; - for (i = 0; i < 4; i++) - { - move = GetMonData(poke, MON_DATA_MOVE1 + i); - changedPP = GetMonData(poke, MON_DATA_PP1 + i); - ppBonuses = GetMonData(poke, MON_DATA_PP_BONUSES); - if (move && changedPP == 0) - break; - } - if (i != 4) - { - u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); - if (changedPP + bankQuality > maxPP) - changedPP = maxPP; - else - changedPP = changedPP + bankQuality; - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 2; - gBattleTextBuff1[2] = move; - gBattleTextBuff1[3] = move >> 8; - gBattleTextBuff1[4] = 0xFF; - b_call_bc_move_exec(BattleScript_BerryPPHealEnd2); - EmitSetAttributes(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); - MarkBufferBankForExecution(gActiveBank); - effect = ITEM_PP_CHANGE; - } - } - break; - case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) - { - if (gBattleMons[bank].statStages[i] < 6) - { - gBattleMons[bank].statStages[i] = 6; - effect = ITEM_STATS_CHANGE; - } - } - if (effect) - { - BATTLE_STRUCT->scriptingActive = bank; - gStringBank = bank; - gActiveBank = gBankAttacker = bank; - b_call_bc_move_exec(BattleScript_WhiteHerbEnd2); - } - break; - case HOLD_EFFECT_LEFTOVERS: - if (gBattleMons[bank].hp < gBattleMons[bank].maxHP && !moveTurn) - { - gBattleMoveDamage = gBattleMons[bank].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - b_call_bc_move_exec(BattleScript_ItemHealHP_End2); - effect = ITEM_HP_CHANGE; - RecordItemBattle(bank, bankHoldEffect); - } - break; - // nice copy/paste there gamefreak, making a function for confuse berries was too much eh? - case HOLD_EFFECT_CONFUSE_SPICY: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SPICY; - gBattleTextBuff1[3] = EOS; - gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SPICY) < 0) - b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2); - else - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } - break; - case HOLD_EFFECT_CONFUSE_DRY: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_DRY; - gBattleTextBuff1[3] = EOS; - gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_DRY) < 0) - b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2); - else - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } - break; - case HOLD_EFFECT_CONFUSE_SWEET: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SWEET; - gBattleTextBuff1[3] = EOS; - gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SWEET) < 0) - b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2); - else - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } - break; - case HOLD_EFFECT_CONFUSE_BITTER: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_BITTER; - gBattleTextBuff1[3] = EOS; - gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_BITTER) < 0) - b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2); - else - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } - break; - case HOLD_EFFECT_CONFUSE_SOUR: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 8; - gBattleTextBuff1[2] = FLAVOR_SOUR; - gBattleTextBuff1[3] = EOS; - gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) - gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; - gBattleMoveDamage *= -1; - if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SOUR) < 0) - b_call_bc_move_exec(BattleScript_BerryConfuseHealEnd2); - else - b_call_bc_move_exec(BattleScript_ItemHealHP_RemoveItem); - effect = ITEM_HP_CHANGE; - } - break; - // copy/paste again, smh - case HOLD_EFFECT_ATTACK_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_ATK] < 0xC) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_ATK; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD2; - gBattleTextBuff2[3] = 0xD2 >> 8; - gBattleTextBuff2[4] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_ATK; - BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_ATK; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - break; - case HOLD_EFFECT_DEFENSE_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_DEF] < 0xC) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_DEF; - gBattleTextBuff1[3] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_DEF; - BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_DEF; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - break; - case HOLD_EFFECT_SPEED_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPEED; - gBattleTextBuff1[3] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPEED; - BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPEED; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - break; - case HOLD_EFFECT_SP_ATTACK_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPATK] < 0xC) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPATK; - gBattleTextBuff1[3] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPATK; - BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPATK; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - break; - case HOLD_EFFECT_SP_DEFENSE_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPDEF] < 0xC) - { - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = STAT_STAGE_SPDEF; - gBattleTextBuff1[3] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPDEF; - BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPDEF; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - break; - case HOLD_EFFECT_CRITICAL_UP: - if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && !(gBattleMons[bank].status2 & STATUS2_FOCUS_ENERGY)) - { - gBattleMons[bank].status2 |= STATUS2_FOCUS_ENERGY; - b_call_bc_move_exec(BattleScript_BerryFocusEnergyEnd2); - effect = ITEM_EFFECT_OTHER; - } - break; - case HOLD_EFFECT_RANDOM_STAT_UP: - if (!moveTurn && gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality) - { - for (i = 0; i < 5; i++) - { - if (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] < 0xC) - break; - } - if (i != 5) - { - do - { - i = Random() % 5; - } while (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] == 0xC); - - gBattleTextBuff1[0] = 0xFD; - gBattleTextBuff1[1] = 5; - gBattleTextBuff1[2] = i + 1; - gBattleTextBuff1[3] = EOS; - - gBattleTextBuff2[0] = 0xFD; - gBattleTextBuff2[1] = 0; - gBattleTextBuff2[2] = 0xD1; - gBattleTextBuff2[3] = 0xD1 >> 8; - gBattleTextBuff2[4] = 0; - gBattleTextBuff2[5] = 0xD2; - gBattleTextBuff2[6] = 0xD2 >> 8; - gBattleTextBuff2[7] = EOS; - - gEffectBank = bank; - BATTLE_STRUCT->statChanger = 0x21 + i; - BATTLE_STRUCT->animArg1 = 0x21 + i + 6; - BATTLE_STRUCT->animArg2 = 0; - b_call_bc_move_exec(BattleScript_BerryStatRaiseEnd2); - effect = ITEM_STATS_CHANGE; - } - } - break; - case HOLD_EFFECT_CURE_PAR: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); - b_call_bc_move_exec(BattleScript_BerryCurePrlzEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_PSN: - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) - { - gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); - b_call_bc_move_exec(BattleScript_BerryCurePsnEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_BRN: - if (gBattleMons[bank].status1 & STATUS_BURN) - { - gBattleMons[bank].status1 &= ~(STATUS_BURN); - b_call_bc_move_exec(BattleScript_BerryCureBrnEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_FRZ: - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - gBattleMons[bank].status1 &= ~(STATUS_FREEZE); - b_call_bc_move_exec(BattleScript_BerryCureFrzEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_SLP: - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - b_call_bc_move_exec(BattleScript_BerryCureSlpEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_CONFUSION: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - b_call_bc_move_exec(BattleScript_BerryCureConfusionEnd2); - effect = ITEM_EFFECT_OTHER; - } - break; - case HOLD_EFFECT_CURE_STATUS: - if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - i = 0; - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - i++; - } - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - i++; - } - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - i++; - } - if (gBattleMons[bank].status1 & STATUS_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - i++; - } - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - i++; - } - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - i++; - } - if (!(i > 1)) - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - else - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - gBattleMons[bank].status1 = 0; - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2); - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_ATTRACT: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) - { - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - b_call_bc_move_exec(BattleScript_BerryCureChosenStatusEnd2); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - effect = ITEM_EFFECT_OTHER; - } - break; - } - if (effect) - { - BATTLE_STRUCT->scriptingActive = bank; - gStringBank = bank; - gActiveBank = gBankAttacker = bank; - switch (effect) - { - case ITEM_STATUS_CHANGE: - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); - MarkBufferBankForExecution(gActiveBank); - break; - case ITEM_PP_CHANGE: - if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) - gBattleMons[bank].pp[i] = changedPP; - break; - } - } - } - break; - case 2: - break; - case 3: - for (bank = 0; bank < gNoOfAllBanks; bank++) - { - gLastUsedItem = gBattleMons[bank].item; - if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) - { - bankHoldEffect = gEnigmaBerries[bank].holdEffect; - bankQuality = gEnigmaBerries[bank].holdEffectParam; - } - else - { - bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); - bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); - } - switch (bankHoldEffect) - { - case HOLD_EFFECT_CURE_PAR: - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCureParRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_PSN: - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) - { - gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_BRN: - if (gBattleMons[bank].status1 & STATUS_BURN) - { - gBattleMons[bank].status1 &= ~(STATUS_BURN); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_FRZ: - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - gBattleMons[bank].status1 &= ~(STATUS_FREEZE); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_SLP: - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status1 &= ~(STATUS_SLEEP); - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_CURE_CONFUSION: - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet; - effect = ITEM_EFFECT_OTHER; - } - break; - case HOLD_EFFECT_CURE_ATTRACT: - if (gBattleMons[bank].status2 & STATUS2_INFATUATION) - { - gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); - StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); - b_movescr_stack_push_cursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; - effect = ITEM_EFFECT_OTHER; - } - break; - case HOLD_EFFECT_CURE_STATUS: - if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - if (gBattleMons[bank].status1 & STATUS_PSN_ANY) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - } - if (gBattleMons[bank].status1 & STATUS_SLEEP) - { - gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - } - if (gBattleMons[bank].status1 & STATUS_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - } - if (gBattleMons[bank].status1 & STATUS_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - } - if (gBattleMons[bank].status1 & STATUS_FREEZE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - } - if (gBattleMons[bank].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - } - gBattleMons[bank].status1 = 0; - gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); - b_movescr_stack_push_cursor(); - gBattleCommunication[MULTISTRING_CHOOSER] = 0; - gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; - effect = ITEM_STATUS_CHANGE; - } - break; - case HOLD_EFFECT_RESTORE_STATS: - for (i = 0; i < 8; i++) - { - if (gBattleMons[bank].statStages[i] < 6) - { - gBattleMons[bank].statStages[i] = 6; - effect = ITEM_STATS_CHANGE; - } - } - if (effect) - { - BATTLE_STRUCT->scriptingActive = bank; - gStringBank = bank; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; - return effect; // unnecessary return - } - break; - } - if (effect) - { - BATTLE_STRUCT->scriptingActive = bank; - gStringBank = bank; - gActiveBank = bank; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); - MarkBufferBankForExecution(gActiveBank); - break; - } - } - break; - case 4: - if (gBattleMoveDamage) - { - switch (atkHoldEffect) - { - case HOLD_EFFECT_FLINCH: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) - && (Random() % 100) < bankQuality - && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED - && gBattleMons[gBankTarget].hp) - { - gBattleCommunication[MOVE_EFFECT_BYTE] = 8; - b_movescr_stack_push_cursor(); - SetMoveEffect(0, 0); - b_movescr_stack_pop_cursor(); - } - break; - case HOLD_EFFECT_SHELL_BELL: - if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 - && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF - && gBankAttacker != gBankTarget - && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP - && gBattleMons[gBankAttacker].hp != 0) - { - gLastUsedItem = atkItem; - gStringBank = gBankAttacker; - BATTLE_STRUCT->scriptingActive = gBankAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; - gSpecialStatuses[gBankTarget].moveturnLostHP = 0; - b_movescr_stack_push_cursor(); - gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; - effect++; - } - break; - } - } - break; - } - - return effect; -} - -struct CombinedMove -{ - u16 move1; - u16 move2; - u16 newMove; -}; - -static const struct CombinedMove sCombinedMoves[2] = -{ - {MOVE_EMBER, MOVE_GUST, MOVE_HEAT_WAVE}, - {0xFFFF, 0xFFFF, 0xFFFF} -}; - -void unref_sub_801B40C(void) -{ - int i = 0; - if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) - { - do - { - u8 bank = 0; - do - { - u8 absent = gAbsentBankFlags; - if (gBitTable[bank] & absent || absent & gBitTable[bank + 2]) - bank++; - else - { - if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2]) - { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; - } - if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank]) - { - gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); - gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; - gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; - } - bank++; - } - } while (bank < 2); - i++; - } while (sCombinedMoves[i].move1 != 0xFFFF); - } -} - -void sub_801B594(void) -{ - if (gBattleExecBuffer == 0) - gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); -} - -u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target -{ - u8 targetBank = 0; - u8 moveTarget; - u8 side; - - if (useMoveTarget) - moveTarget = useMoveTarget - 1; - else - moveTarget = gBattleMoves[move].target; - - switch (moveTarget) - { - case 0: - side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - targetBank = gSideTimers[side].followmeTarget; - else - { - side = GetBankSide(gBankAttacker); - do - { - targetBank = Random() % gNoOfAllBanks; - } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); - if (gBattleMoves[move].type == TYPE_ELECTRIC - && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) - && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) - { - targetBank ^= 2; - RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); - gSpecialStatuses[targetBank].lightningRodRedirected = 1; - } - } - break; - case 1: - case 8: - case 32: - case 64: - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); - if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; - break; - case 4: - side = GetBankSide(gBankAttacker) ^ 1; - if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - targetBank = gSideTimers[side].followmeTarget; - else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4) - { - if (GetBankSide(gBankAttacker) == 0) - { - if (Random() & 1) - targetBank = GetBankByIdentity(1); - else - targetBank = GetBankByIdentity(3); - } - else - { - if (Random() & 1) - targetBank = GetBankByIdentity(0); - else - targetBank = GetBankByIdentity(2); - } - if (gAbsentBankFlags & gBitTable[targetBank]) - targetBank ^= 2; - } - else - targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); - break; - case 2: - case 16: - targetBank = gBankAttacker; - break; - } - ewram16010arr(gBankAttacker) = targetBank; - return targetBank; -} - -u8 IsPokeDisobedient(void) -{ - u8 obedienceLevel; - s32 rnd; - s32 calc; - - if (gBattleTypeFlags & BATTLE_TYPE_LINK - || GetBankSide(gBankAttacker) == 1 - || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName) - || FlagGet(FLAG_BADGE08_GET)) - return 0; - - obedienceLevel = 10; - if (FlagGet(FLAG_BADGE02_GET)) - obedienceLevel = 30; - if (FlagGet(FLAG_BADGE04_GET)) - obedienceLevel = 50; - if (FlagGet(FLAG_BADGE06_GET)) - obedienceLevel = 70; - - if (gBattleMons[gBankAttacker].level <= obedienceLevel) - return 0; - rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; - if (calc < obedienceLevel) - return 0; - - // is not obedient - if (gCurrentMove == MOVE_RAGE) - gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); - if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) - { - gBattlescriptCurrInstr = gUnknown_081D995F; - return 1; - } - - rnd = (Random() & 255); - calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; - if (calc < obedienceLevel) - { - calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF); - if (calc == 0xF) // all moves cannot be used - { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; - gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - return 1; - } - else // use a random move - { - do - { - gCurrMovePos = gUnknown_02024BE5 = Random() & 3; - } while (gBitTable[gCurrMovePos] & calc); - gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; - gBattleCommunication[3] = 0; - gDynamicBasePower = 0; - BATTLE_STRUCT->dynamicMoveType = 0; - gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBankTarget = GetMoveTarget(gRandomMove, 0); - gHitMarker |= HITMARKER_x200000; - return 2; - } - } - else - { - obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; - - calc = (Random() & 255); - if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) - { - // try putting asleep - int i; - for (i = 0; i < gNoOfAllBanks; i++) - { - if (gBattleMons[i].status2 & STATUS2_UPROAR) - break; - } - if (i == gNoOfAllBanks) - { - gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; - return 1; - } - } - calc -= obedienceLevel; - if (calc < obedienceLevel) - { - gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); - gBankTarget = gBankAttacker; - gBattlescriptCurrInstr = gUnknown_081D99A0; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - return 2; - } - else - { - gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; - gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - return 1; - } - } -} diff --git a/src/battle/battle_4.c b/src/battle/battle_4.c index 3b1092e45..5a20a8324 100644 --- a/src/battle/battle_4.c +++ b/src/battle/battle_4.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_util.h" #include "constants/battle_move_effects.h" #include "constants/moves.h" #include "constants/abilities.h" @@ -101,11 +102,10 @@ extern u16 gTrappingMoves[]; u8 AtkCanceller_UnableToUseMove(void); void PressurePPLose(u8 bank_atk, u8 bank_def, u16 move); void CancelMultiTurnMoves(u8 bank); -void b_movescr_stack_push(u8* BS_ptr); -void b_movescr_stack_push_cursor(void); +void BattleScriptPush(u8* BS_ptr); +void BattleScriptPushCursor(void); void RecordAbilityBattle(u8 bank, u8 ability); void RecordItemBattle(u8 bank, u8 holdEffect); -int IsPokeDisobedient(void); static bool8 IsTwoTurnsMove(u16 move); static void DestinyBondFlagUpdate(void); static void b_wonderguard_and_levitate(void); @@ -122,7 +122,7 @@ extern u8 gBattleBufferB[4][0x200]; void sub_80324F8(struct Pokemon*, u8 bank); void AdjustFriendship(struct Pokemon*, u8 value); bool8 IsTradedMon(struct Pokemon*); -void b_movescr_stack_pop_cursor(void); +void BattleScriptPop(void); void SwitchInClearStructs(void); u8* ConvertIntToDecimalStringN(u8*, s32, u8, u8); u8 GetSetPokedexFlag(u16 nationalNum, u8 caseID); @@ -131,7 +131,6 @@ u8 sub_803FC34(u8 bank); u16 sub_803FBFC(u8 a); u8 GetBankByIdentity(u8 ID); void sub_8012258(u8); -void sub_80157C4(u8 bank); //update sent pokes in battle //MonTryLearningNewMove teach poke a move u16 GiveMoveToBattleMon(struct BattlePokemon *mon, u16 move); void IncrementGameStat(u8 index); @@ -147,21 +146,17 @@ void nullsub_6(void); void ReshowBattleScreenAfterMenu(void); void BattleMainCB2(void); void AddMoney(u32* moneySaveblock, u32 to_give); -void sub_80156DC(void); //set sentpokes value u8 CountAliveMons(u8 caseID); void sub_803E1B0(struct Pokemon*, u16 item, u8 partyID, u8 r3, u8 sp); u8 CanRunFromBattle(void); u8 GetMoveTarget(u16 move, u8 targetbyte); //get target of move -void sub_80153D0(u8 atk); //pressure perish song pp decrement u8 CastformDataTypeChange(u8 bank); -void b_push_move_exec(u8* bs_ptr); u8 Overworld_GetMapTypeOfSaveblockLocation(void); u8 CalculatePlayerPartyCount(void); u16 Sqrt(u32 num); u8 sub_809070C(u16 nationalNum, u32 TiD, u32 PiD); //task prepare poke dex display void sub_814A880(u8 a1, u8 a2); u8 CheckMoveLimitations(u8 bank, u8 unusable_moves, u8 flags); -void sub_801529C(u8 bank); bool8 IsLinkDoubleBattle(void); void sub_8094B6C(u8 bank, u8 partyID, u8 r2); @@ -1050,7 +1045,7 @@ static void atk00_attackcanceler(void) gHitMarker &= ~(HITMARKER_x800000); if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS)) { - u8 disobedient = IsPokeDisobedient(); + u8 disobedient = IsMonDisobedient(); asm("":::"r0"); //It's impossible to match asm("":::"r1"); if ((disobedient)) @@ -1067,7 +1062,7 @@ static void atk00_attackcanceler(void) { PressurePPLose(gBankAttacker, gBankTarget, MOVE_MAGIC_COAT); gProtectStructs[gBankTarget].bounceMove = 0; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; return; } @@ -1078,7 +1073,7 @@ static void atk00_attackcanceler(void) PressurePPLose(gBankAttacker, gBanksByTurnOrder[i], MOVE_SNATCH); gProtectStructs[gBanksByTurnOrder[i]].stealMove = 0; BATTLE_STRUCT->scriptingActive = gBanksByTurnOrder[i]; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SnatchedMove; return; } @@ -1087,7 +1082,7 @@ static void atk00_attackcanceler(void) { gSpecialStatuses[gBankTarget].lightningRodRedirected = 0; gLastUsedAbility = ABILITY_LIGHTNING_ROD; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_TookAttack; RecordAbilityBattle(gBankTarget, gLastUsedAbility); } @@ -1325,7 +1320,7 @@ static void atk03_ppreduce(void) && !((gDisableStructs[gBankAttacker].unk18_b) & gBitTable[gCurrMovePos])) { gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + gCurrMovePos, 0, 1, &gBattleMons[gBankAttacker].pp[gCurrMovePos]); MarkBufferBankForExecution(gBankAttacker); } } @@ -1844,7 +1839,7 @@ static void atk09_attackanimation(void) if ((gHitMarker & HITMARKER_NO_ANIMATIONS) && (gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE)) { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_Pausex20; BATTLE_STRUCT->animTurn += 1; BATTLE_STRUCT->animTargetsHit += 1; @@ -1868,7 +1863,7 @@ static void atk09_attackanimation(void) } else { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_Pausex20; } } @@ -1947,7 +1942,7 @@ static void atk0C_datahpupdate(void) if (gDisableStructs[gActiveBank].substituteHP == 0) { gBattlescriptCurrInstr += 2; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SubstituteFade; return; } @@ -2023,7 +2018,7 @@ static void atk0C_datahpupdate(void) } } gHitMarker &= ~(HITMARKER_x100000); - EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); MarkBufferBankForExecution(gActiveBank); } } @@ -2132,7 +2127,7 @@ static void atk0F_resultmessage(void) gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; default: @@ -2144,14 +2139,14 @@ static void atk0F_resultmessage(void) gBattleMoveFlags &= ~(MOVESTATUS_ONEHITKO); gBattleMoveFlags &= ~(MOVESTATUS_SUPEREFFECTIVE); gBattleMoveFlags &= ~(MOVESTATUS_NOTVERYEFFECTIVE); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; return; } else if (gBattleMoveFlags & MOVESTATUS_ENDURED) { gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_EnduredMsg; return; } @@ -2160,7 +2155,7 @@ static void atk0F_resultmessage(void) gLastUsedItem = gBattleMons[gBankTarget].item; gStringBank = gBankTarget; gBattleMoveFlags &= ~(MOVESTATUS_ENDURED | MOVESTATUS_HUNGON); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; } @@ -2321,7 +2316,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { gLastUsedAbility = ABILITY_IMMUNITY; RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2336,7 +2331,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; @@ -2355,7 +2350,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { gLastUsedAbility = ABILITY_WATER_VEIL; RecordAbilityBattle(gEffectBank, ABILITY_WATER_VEIL); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_BRNPrevention; if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2370,7 +2365,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if ((gBattleMons[gEffectBank].type1 == TYPE_FIRE || gBattleMons[gEffectBank].type2 == TYPE_FIRE) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_BRNPrevention; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; @@ -2399,7 +2394,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { gLastUsedAbility = ABILITY_LIMBER; RecordAbilityBattle(gEffectBank, ABILITY_LIMBER); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PRLZPrevention; if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2421,7 +2416,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { gLastUsedAbility = ABILITY_IMMUNITY; RecordAbilityBattle(gEffectBank, ABILITY_IMMUNITY); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); //_0801E664: gBattlescriptCurrInstr = BattleScript_PSNPrevention; if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) @@ -2436,7 +2431,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if ((gBattleMons[gEffectBank].type1 == TYPE_POISON || gBattleMons[gEffectBank].type2 == TYPE_POISON || gBattleMons[gEffectBank].type1 == TYPE_STEEL || gBattleMons[gEffectBank].type2 == TYPE_STEEL) && !(gHitMarker & HITMARKER_IGNORE_SAFEGUARD) && (primary == 1 || certain == 0x80)) { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PSNPrevention; gBattleCommunication[MULTISTRING_CHOOSER] = 2; return; @@ -2458,14 +2453,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) } if (StatusChanged == 1) { - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); if (gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]] == STATUS_SLEEP) gBattleMons[gEffectBank].status1 |= ((Random() & 3) + 2); else gBattleMons[gEffectBank].status1 |= gStatusFlagsForMoveEffects[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; gActiveBank = gEffectBank; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gEffectBank].status1); MarkBufferBankForExecution(gActiveBank); if (gHitMarker & HITMARKER_IGNORE_SAFEGUARD) { @@ -2499,7 +2494,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (gBattleMons[gEffectBank].status2 & STATUS2_CONFUSION) {gBattlescriptCurrInstr++; return;} gBattleMons[gEffectBank].status2 |= (((Random()) % 0x4)) + 2; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 8: //flinch @@ -2528,7 +2523,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleMons[gEffectBank].status2 |= STATUS2_MULTIPLETURNS; gLockedMoves[gEffectBank] = gCurrentMove; gBattleMons[gEffectBank].status2 |= ((Random() & 3) + 2) << 4; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 11: //pay day @@ -2539,7 +2534,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) if (PayDay > gPaydayMoney) gPaydayMoney = 0xFFFF; } - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 9: //tri attack @@ -2561,7 +2556,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) BATTLE_STRUCT->wrappedMove[gEffectBank*2] = (u8)gCurrentMove; (1 + BATTLE_STRUCT->wrappedMove)[gEffectBank*2] = gCurrentMove >> 8; //don't ask. BATTLE_STRUCT->wrappedBy[gEffectBank] = gBankAttacker; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; gBattleCommunication[MULTISTRING_CHOOSER] = 0; while (gBattleCommunication[MULTISTRING_CHOOSER] <= 4 @@ -2572,7 +2567,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleMoveDamage = (gHP_dealt) / 4; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 15 ... 21: //stat + 1 @@ -2581,7 +2576,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; //TODO: the arg ptr is wrong by one BATTLE_STRUCT->animArg2 = 0; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_StatUp; } break; @@ -2591,7 +2586,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; BATTLE_STRUCT->animArg2 = 0; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_StatDown; } break; @@ -2601,7 +2596,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; BATTLE_STRUCT->animArg2 = 0; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_StatUp; } break; @@ -2611,7 +2606,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { BATTLE_STRUCT->animArg1 = gBattleCommunication[MOVE_EFFECT_BYTE] & 0x3F; BATTLE_STRUCT->animArg2 = 0; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_StatDown; } break; @@ -2634,7 +2629,7 @@ void SetMoveEffect(bool8 primary, u8 certainArg) {gBattlescriptCurrInstr++; return;} if (gBattleMons[gBankTarget].item && gBattleMons[gBankTarget].ability == ABILITY_STICKY_HOLD) { - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_NoItemSteal; gLastUsedAbility = gBattleMons[gBankTarget].ability; RecordAbilityBattle(gBankTarget, gLastUsedAbility); @@ -2652,14 +2647,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattleMons[gBankTarget].item = 0; gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gLastUsedItem); MarkBufferBankForExecution(gBankAttacker); gActiveBank = gBankTarget; - EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gBankTarget].item); MarkBufferBankForExecution(gBankTarget); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_ItemSteal; CHOICED_MOVE(gBankTarget) = 0; @@ -2675,11 +2670,11 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gBattlescriptCurrInstr++; break; case 34: //ancientpower - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_AllStatsUp; return; case 35: //break free rapidspin - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_RapidSpinAway; return; case 36: //paralysis removal @@ -2687,23 +2682,23 @@ void SetMoveEffect(bool8 primary, u8 certainArg) { gBattleMons[gBankTarget].status1 &= ~(STATUS_PARALYSIS); gActiveBank = gBankTarget; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); MarkBufferBankForExecution(gActiveBank); - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; } else {gBattlescriptCurrInstr++; return;} break; case 37: //superpower - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_AtkDefDown; return; case 38: //33% recoil gBattleMoveDamage = gHP_dealt / 3; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = gMoveEffectBS_Ptrs[gBattleCommunication[MOVE_EFFECT_BYTE]]; break; case 53: //thrash @@ -2734,14 +2729,14 @@ void SetMoveEffect(bool8 primary, u8 certainArg) gLastUsedItem = gBattleMons[gEffectBank].item; gBattleMons[gEffectBank].item = 0; gWishFutureKnock.knockedOffPokes[side] |= gBitTable[gBattlePartyID[gEffectBank]]; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_KnockedOff; CHOICED_MOVE(gEffectBank) = 0; } break; case 59: //overheat - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_SAtkDown2; return; } @@ -3065,7 +3060,7 @@ _0801E64A:\n\ ldr r4, _0801E67C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E680 @ =BattleScript_PSNPrevention\n\ _0801E664:\n\ str r0, [r4]\n\ @@ -3188,7 +3183,7 @@ _0801E72E:\n\ ldr r4, _0801E750 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E754 @ =BattleScript_BRNPrevention\n\ b _0801E664\n\ .align 2, 0\n\ @@ -3228,7 +3223,7 @@ _0801E78E:\n\ ldr r4, _0801E7A0 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E7A4 @ =BattleScript_BRNPrevention\n\ b _0801E998\n\ .align 2, 0\n\ @@ -3379,7 +3374,7 @@ _0801E8A6:\n\ ldr r4, _0801E8C8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E8CC @ =BattleScript_PRLZPrevention\n\ b _0801E664\n\ .align 2, 0\n\ @@ -3422,7 +3417,7 @@ _0801E8FE:\n\ ldr r4, _0801E93C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E940 @ =BattleScript_PSNPrevention\n\ str r0, [r4]\n\ ldr r2, _0801E944 @ =gHitMarker\n\ @@ -3483,7 +3478,7 @@ _0801E98C:\n\ ldr r4, _0801E9A8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801E9AC @ =BattleScript_PSNPrevention\n\ _0801E998:\n\ str r0, [r4]\n\ @@ -3556,7 +3551,7 @@ _0801EA1C:\n\ ldr r0, _0801EA5C @ =gBattlescriptCurrInstr\n\ ldr r0, [r0]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801EA60 @ =gStatusFlagsForMoveEffects\n\ ldr r0, _0801EA64 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -3621,7 +3616,7 @@ _0801EA84:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldrb r0, [r4]\n\ bl MarkBufferBankForExecution\n\ ldr r2, _0801EAF0 @ =gHitMarker\n\ @@ -3814,7 +3809,7 @@ _0801EC8E:\n\ ldr r4, _0801ECC8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801ECCC @ =gMoveEffectBS_Ptrs\n\ ldr r0, _0801ECD0 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -3931,7 +3926,7 @@ _0801ED7C:\n\ ldr r4, _0801EDD0 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801EDD4 @ =gMoveEffectBS_Ptrs\n\ ldr r0, _0801EDD8 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -3977,7 +3972,7 @@ _0801EE14:\n\ ldr r4, _0801EE40 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801EE44 @ =gMoveEffectBS_Ptrs\n\ ldr r0, _0801EE48 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -4112,7 +4107,7 @@ _0801EEE8:\n\ ldr r4, _0801EF98 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801EF9C @ =gMoveEffectBS_Ptrs\n\ ldr r2, _0801EFA0 @ =gBattleCommunication\n\ ldrb r0, [r2, 0x3]\n\ @@ -4177,7 +4172,7 @@ _0801EFC0:\n\ ldr r4, _0801EFE0 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801EFE4 @ =gMoveEffectBS_Ptrs\n\ ldr r0, _0801EFE8 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -4219,7 +4214,7 @@ _0801F008:\n\ ldr r4, _0801F038 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F03C @ =BattleScript_StatUp\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4257,7 +4252,7 @@ _0801F05E:\n\ ldr r4, _0801F08C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F090 @ =BattleScript_StatDown\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4294,7 +4289,7 @@ _0801F0B0:\n\ ldr r4, _0801F0E0 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F0E4 @ =BattleScript_StatUp\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4332,7 +4327,7 @@ _0801F106:\n\ ldr r4, _0801F134 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F138 @ =BattleScript_StatDown\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4545,7 +4540,7 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ mov r3, r10\n\ ldrb r0, [r3]\n\ bl MarkBufferBankForExecution\n\ @@ -4563,13 +4558,13 @@ _0801F2B6:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldrb r0, [r7]\n\ bl MarkBufferBankForExecution\n\ ldr r4, _0801F350 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F354 @ =BattleScript_ItemSteal\n\ str r0, [r4]\n\ ldr r0, _0801F358 @ =0xfffe9f10\n\ @@ -4644,7 +4639,7 @@ _0801F3BC:\n\ ldr r4, _0801F3CC @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F3D0 @ =BattleScript_AllStatsUp\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4654,7 +4649,7 @@ _0801F3D4:\n\ ldr r4, _0801F3E4 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F3E8 @ =BattleScript_RapidSpinAway\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4690,13 +4685,13 @@ _0801F406:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldrb r0, [r4]\n\ bl MarkBufferBankForExecution\n\ ldr r4, _0801F444 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F448 @ =BattleScript_TargetPRLZHeal\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4708,7 +4703,7 @@ _0801F44C:\n\ ldr r4, _0801F45C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F460 @ =BattleScript_AtkDefDown\n\ b _0801F5F8\n\ .align 2, 0\n\ @@ -4729,7 +4724,7 @@ _0801F47A:\n\ ldr r4, _0801F49C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _0801F4A0 @ =gMoveEffectBS_Ptrs\n\ ldr r0, _0801F4A4 @ =gBattleCommunication\n\ ldrb r0, [r0, 0x3]\n\ @@ -4857,7 +4852,7 @@ _0801F540:\n\ ldr r4, _0801F5C8 @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F5CC @ =BattleScript_KnockedOff\n\ str r0, [r4]\n\ ldr r1, _0801F5D0 @ =gSharedMem\n\ @@ -4897,7 +4892,7 @@ _0801F5EC:\n\ ldr r4, _0801F60C @ =gBattlescriptCurrInstr\n\ ldr r0, [r4]\n\ adds r0, 0x1\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _0801F610 @ =BattleScript_SAtkDown2\n\ _0801F5F8:\n\ str r0, [r4]\n\ @@ -4977,7 +4972,7 @@ static void atk19_tryfaintmon(void) { r4 = T1_READ_PTR(gBattlescriptCurrInstr + 3); - b_movescr_stack_pop_cursor(); + BattleScriptPop(); gBattlescriptCurrInstr = r4; gSideAffecting[GetBankSide(gActiveBank)] &= ~SIDE_STATUS_SPIKES_DAMAGED; } @@ -5013,7 +5008,7 @@ static void atk19_tryfaintmon(void) ewram16100arr2(3, bank) = 0; gHitMarker |= HITMARKER_FAINTED(gActiveBank); - b_movescr_stack_push(gBattlescriptCurrInstr + 7); + BattleScriptPush(gBattlescriptCurrInstr + 7); gBattlescriptCurrInstr = r4; if (GetBankSide(gActiveBank) == 0) { @@ -5036,7 +5031,7 @@ static void atk19_tryfaintmon(void) } if ((gHitMarker & HITMARKER_DESTINYBOND) && gBattleMons[gBankAttacker].hp != 0) { - b_movescr_stack_push(gBattlescriptCurrInstr); + BattleScriptPush(gBattlescriptCurrInstr); gBattleMoveDamage = gBattleMons[bank].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } @@ -5049,10 +5044,10 @@ static void atk19_tryfaintmon(void) u8 moveIndex = ewram1608Carr(gBankAttacker); gBattleMons[gBankAttacker].pp[moveIndex] = 0; - b_movescr_stack_push(gBattlescriptCurrInstr); + BattleScriptPush(gBattlescriptCurrInstr); gBattlescriptCurrInstr = BattleScript_SelectingImprisionedMoveInPalace; gActiveBank = gBankAttacker; - EmitSetAttributes(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); + EmitSetMonData(0, moveIndex + 9, 0, 1, &gBattleMons[gActiveBank].pp[moveIndex]); MarkBufferBankForExecution(gActiveBank); gBattleTextBuff1[0] = 0xFD; @@ -5087,7 +5082,7 @@ static void atk1B_cleareffectsonfaint(void) { gActiveBank = GetBattleBank(T2_READ_8(gBattlescriptCurrInstr + 1)); gBattleMons[gActiveBank].status1 = 0; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 0x4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); UndoEffectsAfterFainting(); gBattlescriptCurrInstr += 2; @@ -5476,7 +5471,7 @@ static void atk23_getexp(void) gBattleTextBuff2[4] = GetMonData(&gPlayerParty[BATTLE_STRUCT->expGetterID], MON_DATA_LEVEL); gBattleTextBuff2[5] = 0xFF; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gLeveledUpInBattle |= gBitTable[BATTLE_STRUCT->expGetterID]; gBattlescriptCurrInstr = BattleScript_LevelUp; gBattleMoveDamage = (gBattleBufferB[gActiveBank][2] | (gBattleBufferB[gActiveBank][3] << 8)); @@ -6353,7 +6348,7 @@ _080206A8:\n\ movs r0, 0x1\n\ negs r0, r0\n\ strb r0, [r4, 0x5]\n\ - bl b_movescr_stack_push_cursor\n\ + bl BattleScriptPushCursor\n\ ldr r2, _080208D8 @ =gLeveledUpInBattle\n\ ldr r1, _080208DC @ =gBitTable\n\ ldrb r0, [r6]\n\ @@ -7282,7 +7277,7 @@ static void atk3B_healthbar_update(void) static void atk3C_return(void) { - b_movescr_stack_pop_cursor(); + BattleScriptPop(); } static void atk3D_end(void) @@ -7301,7 +7296,7 @@ static void atk3E_end2(void) static void atk3F_end3(void) //pops the main function stack { - b_movescr_stack_pop_cursor(); + BattleScriptPop(); if (B_FUNCTION_STACK->size) B_FUNCTION_STACK->size--; gBattleMainFunc = B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size]; @@ -7309,7 +7304,7 @@ static void atk3F_end3(void) //pops the main function stack static void atk41_call(void) { - b_movescr_stack_push(gBattlescriptCurrInstr + 5); + BattleScriptPush(gBattlescriptCurrInstr + 5); gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); } @@ -7353,7 +7348,7 @@ static void atk45_playanimation(void) } else if (gHitMarker & HITMARKER_NO_ANIMATIONS) { - b_movescr_stack_push(gBattlescriptCurrInstr + 7); + BattleScriptPush(gBattlescriptCurrInstr + 7); gBattlescriptCurrInstr = BattleScript_Pausex20; } else if (gBattlescriptCurrInstr[2] == B_ANIM_RAIN_CONTINUES @@ -7829,7 +7824,7 @@ static void atk49_moveend(void) && gBattleMoves[gCurrentMove].power && gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK] <= 0xB) { gBattleMons[gBankTarget].statStages[STAT_STAGE_ATK]++; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RageIsBuilding; effect = 1; } @@ -7843,9 +7838,9 @@ static void atk49_moveend(void) { gBattleMons[gBankTarget].status1 &= ~(STATUS_FREEZE); gActiveBank = gBankTarget; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gBankTarget].status1); MarkBufferBankForExecution(gActiveBank); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_DefrostedViaFireMove; effect = 1; } @@ -7903,10 +7898,9 @@ static void atk49_moveend(void) } BATTLE_STRUCT->cmd49StateTracker++; break; - //sub_8015660 CheckIfMoveFailed case 9: //semi-invlurneable attacker make visible if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankAttacker] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) - || sub_8015660(gBankAttacker)) + || WasUnableToUseMove(gBankAttacker)) { gActiveBank = gBankAttacker; EmitSpriteInvisibility(0, 0); @@ -7918,7 +7912,7 @@ static void atk49_moveend(void) break; case 10: //semi-invlurneable target make visible if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) || !(gStatuses3[gBankTarget] & (STATUS3_ON_AIR | STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) - || sub_8015660(gBankTarget)) + || WasUnableToUseMove(gBankTarget)) { gActiveBank = gBankTarget; EmitSpriteInvisibility(0, 0); @@ -8018,7 +8012,7 @@ _08021874:\n\ lsls r0, 2\n\ adds r0, r2\n\ ldr r0, [r0]\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r1, _080218B8 @ =gBattlescriptCurrInstr\n\ ldr r0, _080218BC @ =gUnknown_081D9B2D\n\ bl _0802229C\n\ @@ -8163,7 +8157,7 @@ _080219C8:\n\ bgt _080219FE\n\ adds r0, r2, 0x1\n\ strb r0, [r1, 0x19]\n\ - bl b_movescr_stack_push_cursor\n\ + bl BattleScriptPushCursor\n\ ldr r1, _08021A24 @ =gBattlescriptCurrInstr\n\ ldr r0, _08021A28 @ =BattleScript_RageIsBuilding\n\ str r0, [r1]\n\ @@ -8258,10 +8252,10 @@ _08021A92:\n\ movs r1, 0x28\n\ movs r2, 0\n\ movs r3, 0x4\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldrb r0, [r4]\n\ bl MarkBufferBankForExecution\n\ - bl b_movescr_stack_push_cursor\n\ + bl BattleScriptPushCursor\n\ ldr r1, _08021AE8 @ =gBattlescriptCurrInstr\n\ ldr r0, _08021AEC @ =BattleScript_DefrostedViaFireMove\n\ str r0, [r1]\n\ @@ -8571,7 +8565,7 @@ _08021D18:\n\ cmp r0, 0\n\ beq _08021D44\n\ adds r0, r2, 0\n\ - bl sub_8015660\n\ + bl WasUnableToUseMove\n\ lsls r0, 24\n\ cmp r0, 0\n\ beq _08021D7E\n\ @@ -10637,7 +10631,7 @@ static void atk52_switchineffects(void) gBattleMoveDamage = 1; BATTLE_STRUCT->scriptingActive = gActiveBank; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); if (T2_READ_8(gBattlescriptCurrInstr + 1) == 0) gBattlescriptCurrInstr = BattleScript_SpikesOnTarget; @@ -11457,7 +11451,7 @@ void atk6A_removeitem(void) USED_HELD_ITEMS(gActiveBank) = gBattleMons[gActiveBank].item; gBattleMons[gActiveBank].item = 0; - EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 2; } @@ -11900,7 +11894,7 @@ _08024C48: .4byte gBattlescriptCurrInstr\n\ static void atk6D_resetsentmonsvalue(void) { - sub_80156DC(); + ResetSentPokesToOpponentValue(); gBattlescriptCurrInstr++; } @@ -12148,7 +12142,7 @@ static void atk79_setatkhptozero(void) gActiveBank = gBankAttacker; gBattleMons[gActiveBank].hp = 0; - EmitSetAttributes(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); + EmitSetMonData(0, REQUEST_HP_BATTLE, 0, 2, &gBattleMons[gActiveBank].hp); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr++; @@ -12333,7 +12327,7 @@ static void atk81_trysetrest(void) gBattleCommunication[MULTISTRING_CHOOSER] = 0; gBattleMons[gBankTarget].status1 = 3; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; } @@ -12509,7 +12503,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr) gBattlescriptCurrInstr = bs_ptr; else { - b_movescr_stack_push(bs_ptr); + BattleScriptPush(bs_ptr); BATTLE_STRUCT->scriptingActive = gActiveBank; gBattlescriptCurrInstr = BattleScript_MistProtected; gSpecialStatuses[gActiveBank].statloweringflag = 1; @@ -12530,7 +12524,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr) gBattlescriptCurrInstr = bs_ptr; else { - b_movescr_stack_push(bs_ptr); + BattleScriptPush(bs_ptr); BATTLE_STRUCT->scriptingActive = gActiveBank; gBattlescriptCurrInstr = BattleScript_AbilityNoStatLoss; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -12544,7 +12538,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr) { if (flags == 1) { - b_movescr_stack_push(bs_ptr); + BattleScriptPush(bs_ptr); BATTLE_STRUCT->scriptingActive = gActiveBank; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -12556,7 +12550,7 @@ u8 ChangeStatBuffs(s8 statchanger, u8 stat, u8 flags, u8* bs_ptr) { if (flags == 1) { - b_movescr_stack_push(bs_ptr); + BattleScriptPush(bs_ptr); BATTLE_STRUCT->scriptingActive = gActiveBank; gBattlescriptCurrInstr = BattleScript_AbilityNoSpecificStatLoss; gLastUsedAbility = gBattleMons[gActiveBank].ability; @@ -12774,7 +12768,7 @@ _08025F0C: .4byte gSpecialStatuses\n\ _08025F10: .4byte gBattlescriptCurrInstr\n\ _08025F14:\n\ mov r0, r8\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _08025F40 @ =gSharedMem\n\ ldr r6, _08025F44 @ =gActiveBank\n\ ldrb r1, [r6]\n\ @@ -12869,7 +12863,7 @@ _08025FD8: .4byte gSpecialStatuses\n\ _08025FDC: .4byte gBattlescriptCurrInstr\n\ _08025FE0:\n\ mov r0, r8\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _08026028 @ =gSharedMem\n\ ldr r2, _0802602C @ =gActiveBank\n\ ldrb r1, [r2]\n\ @@ -12926,7 +12920,7 @@ _08026040:\n\ cmp r5, 0x1\n\ bne _08025F74\n\ mov r0, r8\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _08026094 @ =gSharedMem\n\ ldr r3, _08026090 @ =gActiveBank\n\ ldrb r1, [r3]\n\ @@ -12974,7 +12968,7 @@ _080260A8:\n\ b _08025F74\n\ _080260CA:\n\ mov r0, r8\n\ - bl b_movescr_stack_push\n\ + bl BattleScriptPush\n\ ldr r0, _08026100 @ =gSharedMem\n\ ldr r3, _080260FC @ =gActiveBank\n\ ldrb r1, [r3]\n\ @@ -13470,7 +13464,7 @@ static void atk91_givepaydaymoney(void) gBattleTextBuff1[4] = gPaydayMoney; gBattleTextBuff1[5] = uBYTE1_16(gPaydayMoney); gBattleTextBuff1[6] = 0xFF; - b_movescr_stack_push(gBattlescriptCurrInstr + 1); + BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_PrintPayDayMoneyString; } else @@ -14766,7 +14760,7 @@ static void atkA8_copymovepermanently(void) moves_data.pp[i] = gBattleMons[gBankAttacker].pp[i]; } moves_data.ppBonuses = gBattleMons[gBankAttacker].ppBonuses; - EmitSetAttributes(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); + EmitSetMonData(0, REQUEST_MOVES_PP_BATTLE, 0, sizeof(struct move_pp), &moves_data); MarkBufferBankForExecution(gActiveBank); gBattleTextBuff1[0] = 0xFD; gBattleTextBuff1[1] = 2; @@ -14909,7 +14903,7 @@ static void atkAD_tryspiteppreduce(void) if (!(gDisableStructs[gActiveBank].unk18_b & gBitTable[i]) && !(gBattleMons[gActiveBank].status2 & STATUS2_TRANSFORMED)) { - EmitSetAttributes(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); MarkBufferBankForExecution(gActiveBank); } gBattlescriptCurrInstr += 5; @@ -14992,7 +14986,7 @@ static void atkAE_healpartystatus(void) } //missing check? gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, to_heal, 4, &zero); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr++; @@ -15052,7 +15046,7 @@ static void atkB2_trysetperishsong(void) } } - sub_80153D0(gBankAttacker); + PressurePPLoseOnUsingPerishSong(gBankAttacker); if (not_affected_pokes == gNoOfAllBanks) gBattlescriptCurrInstr = T1_READ_PTR(gBattlescriptCurrInstr + 1); else @@ -15320,21 +15314,21 @@ static void atkBE_rapidspinfree(void) //rapid spin gBattleTextBuff1[2] = ewram16004arr(0, gBankAttacker); gBattleTextBuff1[3] = ewram16004arr(1, gBankAttacker); gBattleTextBuff1[4] = 0xFF; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_WrapFree; } else if (gStatuses3[gBankAttacker] & STATUS3_LEECHSEED) { gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED); gStatuses3[gBankAttacker] &= ~(STATUS3_LEECHSEED_BANK); - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } else if (gSideAffecting[GetBankSide(gBankAttacker)] & SIDE_STATUS_SPIKES) { gSideAffecting[GetBankSide(gBankAttacker)] &= ~(SIDE_STATUS_SPIKES); gSideTimers[GetBankSide(gBankAttacker)].spikesAmount = 0; - b_movescr_stack_push_cursor(); + BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikesFree; } else @@ -15952,7 +15946,7 @@ static void atkCC_callterrainattack(void) //nature power gHitMarker &= ~(HITMARKER_ATTACKSTRING_PRINTED); gCurrentMove = sNaturePowerMoves[gBattleTerrain]; gBankTarget = GetMoveTarget(gCurrentMove, 0); - b_movescr_stack_push(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); + BattleScriptPush(gBattleScriptsForMoveEffects[gBattleMoves[gCurrentMove].effect]); gBattlescriptCurrInstr++; } @@ -15963,7 +15957,7 @@ static void atkCD_cureifburnedparalysedorpoisoned(void) //refresh gBattleMons[gBankAttacker].status1 = 0; gBattlescriptCurrInstr += 5; gActiveBank = gBankAttacker; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); } else @@ -16222,7 +16216,7 @@ _0802A36C:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldr r2, _0802A45C @ =gBankAttacker\n\ ldrb r0, [r2]\n\ bl MarkBufferBankForExecution\n\ @@ -16240,7 +16234,7 @@ _0802A36C:\n\ movs r1, 0x2\n\ movs r2, 0\n\ movs r3, 0x2\n\ - bl EmitSetAttributes\n\ + bl EmitSetMonData\n\ ldrb r0, [r7]\n\ bl MarkBufferBankForExecution\n\ ldr r0, _0802A464 @ =0xfffe9f10\n\ @@ -16471,7 +16465,7 @@ static void atkDB_tryimprision(void) else { u8 bank; - sub_801529C(gBankAttacker); + PressurePPLoseOnUsingImprision(gBankAttacker); for (bank = 0; bank < gNoOfAllBanks; bank++) { if (r8 != GetBankSide(bank)) @@ -16826,7 +16820,7 @@ static void atkE2_switchoutabilities(void) { case ABILITY_NATURAL_CURE: gBattleMons[gActiveBank].status1 = 0; - EmitSetAttributes(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, gBitTable[ewram16064arr(gActiveBank)], 4, &gBattleMons[gActiveBank].status1); MarkBufferBankForExecution(gActiveBank); break; } @@ -16922,7 +16916,7 @@ static void atkE7_trycastformdatachange(void) form = CastformDataTypeChange(BATTLE_STRUCT->scriptingActive); if (form) { - b_push_move_exec(BattleScript_CastformChange); + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); BATTLE_STRUCT->castformToChangeInto = form - 1; } } @@ -16984,7 +16978,7 @@ static void atkEA_tryrecycleitem(void) gLastUsedItem = *used_item; *used_item = 0; gBattleMons[gActiveBank].item = gLastUsedItem; - EmitSetAttributes(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); + EmitSetMonData(0, REQUEST_HELDITEM_BATTLE, 0, 2, &gBattleMons[gActiveBank].item); MarkBufferBankForExecution(gActiveBank); gBattlescriptCurrInstr += 5; } diff --git a/src/battle/battle_util.c b/src/battle/battle_util.c new file mode 100644 index 000000000..9dc030a1a --- /dev/null +++ b/src/battle/battle_util.c @@ -0,0 +1,3479 @@ +#include "global.h" +#include "battle.h" +#include "battle_util.h" +#include "data2.h" +#include "event_data.h" +#include "ewram.h" +#include "item.h" +#include "link.h" +#include "pokemon.h" +#include "random.h" +#include "rom_8077ABC.h" +#include "string_util.h" +#include "text.h" +#include "util.h" +#include "constants/abilities.h" +#include "constants/battle_move_effects.h" +#include "constants/flags.h" +#include "constants/hold_effects.h" +#include "constants/items.h" +#include "constants/moves.h" +#include "constants/species.h" +#include "constants/weather.h" + +extern u8* gBattlescriptCurrInstr; +extern u8 gActiveBank; +extern u8 gBattleBufferB[4][0x200]; +extern u8* gUnknown_02024C1C[4]; //battlescript location when you try to choose a move you're not allowed to +extern u16 gLastUsedMove[4]; +extern struct BattlePokemon gBattleMons[4]; +extern struct BattleEnigmaBerry gEnigmaBerries[4]; +extern u8 gStringBank; +extern u16 gLastUsedItem; +extern u16 gCurrentMove; +extern const u32 gBitTable[]; +extern u16 gBattleTypeFlags; +extern u8 gNoOfAllBanks; +extern u32 gStatuses3[4]; +extern u8 gBankAttacker; +extern u8 gBankTarget; +extern u8 gBanksByTurnOrder[4]; +extern u16 gSideAffecting[2]; +extern u16 gBattleWeather; +extern void (*gBattleMainFunc)(void); +extern u8 gAbsentBankFlags; +extern u8 gBattleCommunication[]; +extern u32 gHitMarker; +extern u8 gEffectBank; +extern u8 gBank1; +extern s32 gBattleMoveDamage; +extern u16 gBattlePartyID[4]; +extern u16 gChosenMovesByBanks[4]; +extern s32 gTakenDmg[4]; +extern u8 gTakenDmgBanks[4]; +extern u8 gBattleMoveFlags; +extern u8 gLastUsedAbility; +extern u8 gBattleTextBuff2[]; +extern u8 gCurrentActionFuncId; +extern struct BattleEnigmaBerry gEnigmaBerries[4]; +extern u8 gUnknown_02024BE5; +extern u8 gCurrMovePos; +extern u16 gRandomMove; +extern s32 gBattleMoveDamage; +extern u16 gDynamicBasePower; +extern u32 gBattleExecBuffer; +extern u8 gSentPokesToOpponent[2]; +extern const u16 gSoundMovesTable[]; +extern const u8 gStatusConditionString_PoisonJpn[]; +extern const u8 gStatusConditionString_SleepJpn[]; +extern const u8 gStatusConditionString_ParalysisJpn[]; +extern const u8 gStatusConditionString_BurnJpn[]; +extern const u8 gStatusConditionString_IceJpn[]; +extern const u8 gStatusConditionString_ConfusionJpn[]; +extern const u8 gStatusConditionString_LoveJpn[]; +extern const BattleCmdFunc gBattleScriptingCommandsTable[]; + +u8 IsImprisoned(u8 bank, u16 move); +u8 GetBankByIdentity(u8 ID); +u8 GetBankIdentity(u8 bank); +u8 GetBankSide(u8 bank); +void SetMoveEffect(bool8 primary, u8 certainArg); +bool8 UproarWakeUpCheck(u8 bank); +bool8 sub_8018018(u8 bank, u8, u8); +s32 CalculateBaseDamage(struct BattlePokemon *attacker, struct BattlePokemon *defender, u32 move, u16 a4, u16 powerOverride, u8 typeOverride, u8 bank_atk, u8 bank_def); +u8 CountTrailingZeroBits(u32 a); +u8 GetMoveTarget(u16 move, u8 useMoveTarget); +u8 sub_803FC34(u8 bank); +u16 sub_803FBFC(u8 a); +u8 weather_get_current(void); +void RecordAbilityBattle(u8 bank, u8 ability); +void RecordItemBattle(u8 bank, u8 holdEffect); +s8 GetPokeFlavourRelation(u32 pid, u8 flavor); + +extern u8 BattleScript_MoveSelectionDisabledMove[]; +extern u8 BattleScript_MoveSelectionTormented[]; +extern u8 BattleScript_MoveSelectionTaunted[]; +extern u8 BattleScript_MoveSelectionImprisoned[]; +extern u8 BattleScript_MoveSelectionChoiceBanded[]; +extern u8 BattleScript_MoveSelectionNoPP[]; +extern u8 BattleScript_NoMovesLeft[]; +extern u8 BattleScript_WishComesTrue[]; +extern u8 BattleScript_IngrainTurnHeal[]; +extern u8 BattleScript_LeechSeedTurnDrain[]; +extern u8 BattleScript_PoisonTurnDmg[]; +extern u8 BattleScript_BurnTurnDmg[]; +extern u8 BattleScript_NightmareTurnDmg[]; +extern u8 BattleScript_CurseTurnDmg[]; +extern u8 BattleScript_WrapTurnDmg[]; +extern u8 BattleScript_WrapEnds[]; +extern u8 BattleScript_DisabledNoMore[]; +extern u8 BattleScript_EncoredNoMore[]; + +extern u8 BattleScript_SideStatusWoreOff[]; +extern u8 BattleScript_RainContinuesOrEnds[]; +extern u8 BattleScript_SandStormHailEnds[]; +extern u8 BattleScript_DamagingWeatherContinues[]; +extern u8 BattleScript_SunlightFaded[]; +extern u8 BattleScript_SunlightContinues[]; +extern u8 BattleScript_SafeguardEnds[]; +extern u8 BattleScript_MonWokeUpInUproar[]; //uproar wakeup BS +extern u8 BattleScript_PrintUproarOverTurns[]; //uproar BS +extern u8 BattleScript_ThrashConfuses[]; +extern u8 BattleScript_YawnMakesAsleep[]; +extern u8 BattleScript_MonTookFutureAttack[]; +extern u8 BattleScript_PerishSongHits[]; +extern u8 BattleScript_PerishSongTimerGoesDown[]; +extern u8 BattleScript_GiveExp[]; +extern u8 BattleScript_HandleFaintedMon[]; + +extern u8 BattleScript_MoveUsedIsAsleep[]; +extern u8 BattleScript_MoveUsedWokeUp[]; +extern u8 BattleScript_MoveUsedIsFrozen[]; +extern u8 BattleScript_MoveUsedUnfroze[]; +extern u8 BattleScript_MoveUsedLoafingAround[]; +extern u8 BattleScript_MoveUsedMustRecharge[]; +extern u8 BattleScript_MoveUsedFlinched[]; +extern u8 BattleScript_MoveUsedIsDisabled[]; +extern u8 BattleScript_MoveUsedIsTaunted[]; +extern u8 BattleScript_MoveUsedIsImprisoned[]; +extern u8 BattleScript_MoveUsedIsConfused[]; +extern u8 BattleScript_MoveUsedIsConfusedNoMore[]; +extern u8 BattleScript_MoveUsedIsParalyzed[]; +extern u8 BattleScript_MoveUsedIsParalyzedCantAttack[]; +extern u8 BattleScript_MoveUsedIsInLove[]; +extern u8 BattleScript_BideStoringEnergy[]; +extern u8 BattleScript_BideAttack[]; +extern u8 BattleScript_BideNoEnergyToAttack[]; + +extern u8 BattleScript_OverworldWeatherStarts[]; //load weather from overworld +extern u8 BattleScript_DrizzleActivates[]; +extern u8 BattleScript_SandstreamActivates[]; +extern u8 BattleScript_DroughtActivates[]; +extern u8 BattleScript_CastformChange[]; +extern u8 BattleScript_RainDishActivates[]; +extern u8 BattleScript_ShedSkinActivates[]; +extern u8 BattleScript_SpeedBoostActivates[]; +extern u8 BattleScript_SoundproofProtected[]; +extern u8 BattleScript_MoveHPDrain[]; +extern u8 BattleScript_MoveHPDrain_PPLoss[]; +extern u8 BattleScript_FlashFireBoost[]; +extern u8 BattleScript_FlashFireBoost_PPLoss[]; +extern u8 BattleScript_MoveHPDrain_FullHP[]; +extern u8 BattleScript_MoveHPDrain_FullHP_PPLoss[]; +extern u8 BattleScript_ColorChangeActivates[]; +extern u8 BattleScript_RoughSkinActivates[]; +extern u8 BattleScript_ApplySecondaryEffect[]; +extern u8 BattleScript_CuteCharmActivates[]; +extern u8 BattleScript_AbilityCuredStatus[]; //ability status clear +extern u8 BattleScript_SynchronizeActivates[]; +extern u8 gUnknown_081D978C[]; //intimidate1 +extern u8 gUnknown_081D9795[]; //intimidate2 +extern u8 BattleScript_TraceActivates[]; + +extern u8 BattleScript_WhiteHerbEnd2[]; +extern u8 BattleScript_WhiteHerbRet[]; +extern u8 BattleScript_ItemHealHP_RemoveItem[]; +extern u8 BattleScript_BerryPPHealEnd2[]; +extern u8 BattleScript_ItemHealHP_End2[]; +extern u8 BattleScript_BerryConfuseHealEnd2[]; +extern u8 BattleScript_BerryStatRaiseEnd2[]; +extern u8 BattleScript_BerryFocusEnergyEnd2[]; +extern u8 BattleScript_BerryCurePrlzEnd2[]; +extern u8 BattleScript_BerryCurePsnEnd2[]; +extern u8 BattleScript_BerryCureBrnEnd2[]; +extern u8 BattleScript_BerryCureFrzEnd2[]; +extern u8 BattleScript_BerryCureSlpEnd2[]; +extern u8 BattleScript_BerryCureConfusionEnd2[]; +extern u8 BattleScript_BerryCureChosenStatusEnd2[]; //berry cure any status end2 +extern u8 BattleScript_BerryCureParRet[]; +extern u8 BattleScript_BerryCurePsnRet[]; +extern u8 BattleScript_BerryCureBrnRet[]; +extern u8 BattleScript_BerryCureFrzRet[]; +extern u8 BattleScript_BerryCureSlpRet[]; +extern u8 BattleScript_BerryCureConfusionRet[]; +extern u8 BattleScript_BerryCureChosenStatusRet[]; //berry cure any status return + +extern u8 BattleScript_ItemHealHP_Ret[]; + +extern u8 gUnknown_081D995F[]; //disobedient while asleep +extern u8 BattleScript_IgnoresAndUsesRandomMove[]; //disobedient, uses a random move +extern u8 BattleScript_IgnoresAndFallsAsleep[]; //disobedient, went to sleep +extern u8 gUnknown_081D99A0[]; //disobedient, hits itself + +//array entries for battle communication +#define MOVE_EFFECT_BYTE 0x3 +#define MULTISTRING_CHOOSER 0x5 +#define MSG_DISPLAY 0x7 + +u8 GetBattleBank(u8 caseId) +{ + u8 ret = 0; + switch (caseId) + { + case BS_GET_TARGET: + ret = gBankTarget; + break; + case BS_GET_ATTACKER: + ret = gBankAttacker; + break; + case BS_GET_EFFECT_BANK: + ret = gEffectBank; + break; + case BS_GET_BANK_0: + ret = 0; + break; + case BS_GET_SCRIPTING_BANK: + ret = ewram16003; + break; + case BS_GET_gBank1: + ret = gBank1; + break; + case 5: + ret = gBank1; + break; + } + return ret; +} + +void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move) +{ + s32 i; + + if (gBattleMons[bankDef].ability != ABILITY_PRESSURE) + return; + + for (i = 0; i < 4; i++) + { + if (gBattleMons[bankAtk].moves[i] == move) + break; + } + + if (i == 4) // mons don't share any moves + return; + + if (gBattleMons[bankAtk].pp[i] != 0) + gBattleMons[bankAtk].pp[i]--; + + if (!(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[bankAtk].unk18_b & gBitTable[i])) + { + gActiveBank = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + i, 0, 1, &gBattleMons[gActiveBank].pp[i]); + MarkBufferBankForExecution(gActiveBank); + } +} + +void PressurePPLoseOnUsingImprision(u8 bankAtk) +{ + s32 i, j; + s32 imprisionPos = 4; + u8 atkSide = GetBankSide(bankAtk); + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (atkSide != GetBankSide(i) && gBattleMons[i].ability == ABILITY_PRESSURE) + { + for (j = 0; j < 4; j++) + { + if (gBattleMons[bankAtk].moves[j] == MOVE_IMPRISON) + break; + } + if (j != 4) + { + imprisionPos = j; + if (gBattleMons[bankAtk].pp[j] != 0) + gBattleMons[bankAtk].pp[j]--; + } + } + } + + if (imprisionPos != 4 + && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[bankAtk].unk18_b & gBitTable[imprisionPos])) + { + gActiveBank = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + imprisionPos, 0, 1, &gBattleMons[gActiveBank].pp[imprisionPos]); + MarkBufferBankForExecution(gActiveBank); + } +} + +void PressurePPLoseOnUsingPerishSong(u8 bankAtk) +{ + s32 i, j; + s32 perishSongPos = 4; + + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_PRESSURE && i != bankAtk) + { + for (j = 0; j < 4; j++) + { + if (gBattleMons[bankAtk].moves[j] == MOVE_PERISH_SONG) + break; + } + if (j != 4) + { + perishSongPos = j; + if (gBattleMons[bankAtk].pp[j] != 0) + gBattleMons[bankAtk].pp[j]--; + } + } + } + + if (perishSongPos != 4 + && !(gBattleMons[bankAtk].status2 & STATUS2_TRANSFORMED) + && !(gDisableStructs[bankAtk].unk18_b & gBitTable[perishSongPos])) + { + gActiveBank = bankAtk; + EmitSetMonData(0, REQUEST_PPMOVE1_BATTLE + perishSongPos, 0, 1, &gBattleMons[gActiveBank].pp[perishSongPos]); + MarkBufferBankForExecution(gActiveBank); + } +} + + +void MarkAllBufferBanksForExecution(void) // unused +{ + s32 i; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + for (i = 0; i < gNoOfAllBanks; i++) + gBattleExecBuffer |= gBitTable[i] << 0x1C; + } + else + { + for (i = 0; i < gNoOfAllBanks; i++) + gBattleExecBuffer |= gBitTable[i]; + } +} + +void MarkBufferBankForExecution(u8 bank) +{ + if (gBattleTypeFlags & BATTLE_TYPE_LINK) + { + gBattleExecBuffer |= gBitTable[bank] << 0x1C; + } + else + { + gBattleExecBuffer |= gBitTable[bank]; + } +} + +void sub_80155A4(u8 arg0) +{ + s32 i; + + for (i = 0; i < GetLinkPlayerCount(); i++) + gBattleExecBuffer |= gBitTable[arg0] << (i << 2); + + gBattleExecBuffer &= ~(0x10000000 << arg0); +} + +void CancelMultiTurnMoves(u8 bank) +{ + gBattleMons[bank].status2 &= ~(STATUS2_MULTIPLETURNS); + gBattleMons[bank].status2 &= ~(STATUS2_LOCK_CONFUSE); + gBattleMons[bank].status2 &= ~(STATUS2_UPROAR); + gBattleMons[bank].status2 &= ~(STATUS2_BIDE); + + gStatuses3[bank] &= ~(STATUS3_SEMI_INVULNERABLE); + + gDisableStructs[bank].rolloutTimer1 = 0; + gDisableStructs[bank].furyCutterCounter = 0; +} + +bool8 WasUnableToUseMove(u8 bank) +{ + if (gProtectStructs[bank].prlzImmobility + || gProtectStructs[bank].notEffective + || gProtectStructs[bank].usedImprisionedMove + || gProtectStructs[bank].loveImmobility + || gProtectStructs[bank].usedDisabledMove + || gProtectStructs[bank].usedTauntedMove + || gProtectStructs[bank].flag2Unknown + || gProtectStructs[bank].flinchImmobility + || gProtectStructs[bank].confusionSelfDmg) + return TRUE; + else + return FALSE; +} + +void PrepareStringBattle(u16 stringId, u8 bank) +{ + gActiveBank = bank; + EmitPrintString(0, stringId); + MarkBufferBankForExecution(gActiveBank); +} + +void ResetSentPokesToOpponentValue(void) +{ + s32 i; + u32 bits = 0; + + gSentPokesToOpponent[0] = 0; + gSentPokesToOpponent[1] = 0; + + for (i = 0; i < gNoOfAllBanks; i += 2) + bits |= gBitTable[gBattlePartyID[i]]; + + for (i = 1; i < gNoOfAllBanks; i += 2) + gSentPokesToOpponent[(i & BIT_MON) >> 1] = bits; +} + +void sub_8015740(u8 bank) +{ + s32 i = 0; + u32 bits = 0; + + if (GetBankSide(bank) == SIDE_OPPONENT) + { + u8 id = ((bank & BIT_MON) >> 1); + gSentPokesToOpponent[id] = 0; + + for (i = 0; i < gNoOfAllBanks; i += 2) + { + if (!(gAbsentBankFlags & gBitTable[i])) + bits |= gBitTable[gBattlePartyID[i]]; + } + + gSentPokesToOpponent[id] = bits; + } +} + +void sub_80157C4(u8 bank) +{ + if (GetBankSide(bank) == SIDE_OPPONENT) + { + sub_8015740(bank); + } + else + { + s32 i; + for (i = 1; i < gNoOfAllBanks; i++) + gSentPokesToOpponent[(i & BIT_MON) >> 1] |= gBitTable[gBattlePartyID[bank]]; + } +} + +void BattleScriptPush(u8* BS_ptr) +{ + B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = BS_ptr; +} + +void BattleScriptPushCursor(void) +{ + B_BATTLESCRIPTS_STACK->ptr[B_BATTLESCRIPTS_STACK->size++] = gBattlescriptCurrInstr; +} + +void BattleScriptPop(void) +{ + gBattlescriptCurrInstr = B_BATTLESCRIPTS_STACK->ptr[--B_BATTLESCRIPTS_STACK->size]; +} + +u8 TrySetCantSelectMoveBattleScript(void) //msg can't select a move +{ + u8 limitations = 0; + u16 move = gBattleMons[gActiveBank].moves[gBattleBufferB[gActiveBank][2]]; + u8 holdEffect; + u16* choicedMove = CHOICED_MOVE(gActiveBank); + if (gDisableStructs[gActiveBank].disabledMove == move && move) + { + BATTLE_STRUCT->scriptingActive = gActiveBank; + gCurrentMove = move; + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionDisabledMove; + limitations++; + } + if (move == gLastUsedMove[gActiveBank] && move != MOVE_STRUGGLE && gBattleMons[gActiveBank].status2 & STATUS2_TORMENT) + { + CancelMultiTurnMoves(gActiveBank); + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTormented; + limitations++; + } + if (gDisableStructs[gActiveBank].tauntTimer1 && gBattleMoves[move].power == 0) + { + gCurrentMove = move; + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionTaunted; + limitations++; + } + if (IsImprisoned(gActiveBank, move)) + { + gCurrentMove = move; + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionImprisoned; + limitations++; + } + if (gBattleMons[gActiveBank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[gActiveBank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBank].item); + gStringBank = gActiveBank; + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != move) + { + gCurrentMove = *choicedMove; + gLastUsedItem = gBattleMons[gActiveBank].item; + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionChoiceBanded; + limitations++; + } + if (gBattleMons[gActiveBank].pp[gBattleBufferB[gActiveBank][2]] == 0) + { + gUnknown_02024C1C[gActiveBank] = BattleScript_MoveSelectionNoPP; + limitations++; + } + return limitations; +} + +#define MOVE_LIMITATION_ZEROMOVE (1 << 0) +#define MOVE_LIMITATION_PP (1 << 1) +#define MOVE_LIMITATION_DISABLED (1 << 2) +#define MOVE_LIMITATION_TORMENTED (1 << 3) +#define MOVE_LIMITATION_TAUNT (1 << 4) +#define MOVE_LIMITATION_IMPRISION (1 << 5) + +u8 CheckMoveLimitations(u8 bank, u8 unusableMoves, u8 check) +{ + u8 holdEffect; + u16* choicedMove = CHOICED_MOVE(bank); + s32 i; + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + holdEffect = gEnigmaBerries[bank].holdEffect; + else + holdEffect = ItemId_GetHoldEffect(gBattleMons[bank].item); + gStringBank = bank; + for (i = 0; i < 4; i++) + { + if (gBattleMons[bank].moves[i] == 0 && check & MOVE_LIMITATION_ZEROMOVE) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].pp[i] == 0 && check & MOVE_LIMITATION_PP) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].moves[i] == gDisableStructs[bank].disabledMove && check & MOVE_LIMITATION_DISABLED) + unusableMoves |= gBitTable[i]; + if (gBattleMons[bank].moves[i] == gLastUsedMove[bank] && check & MOVE_LIMITATION_TORMENTED && gBattleMons[bank].status2 & STATUS2_TORMENT) + unusableMoves |= gBitTable[i]; + if (gDisableStructs[bank].tauntTimer1 && check & MOVE_LIMITATION_TAUNT && gBattleMoves[gBattleMons[bank].moves[i]].power == 0) + unusableMoves |= gBitTable[i]; + if (IsImprisoned(bank, gBattleMons[bank].moves[i]) && check & MOVE_LIMITATION_IMPRISION) + unusableMoves |= gBitTable[i]; + if (gDisableStructs[bank].encoreTimer1 && gDisableStructs[bank].encoredMove != gBattleMons[bank].moves[i]) + unusableMoves |= gBitTable[i]; + if (holdEffect == HOLD_EFFECT_CHOICE_BAND && *choicedMove != 0 && *choicedMove != 0xFFFF && *choicedMove != gBattleMons[bank].moves[i]) + unusableMoves |= gBitTable[i]; + } + return unusableMoves; +} + +bool8 AreAllMovesUnusable(void) +{ + u8 unusable; + unusable = CheckMoveLimitations(gActiveBank, 0, 0xFF); + if (unusable == 0xF) //all moves are unusable + { + gProtectStructs[gActiveBank].onlyStruggle = 1; + gUnknown_02024C1C[gActiveBank] = BattleScript_NoMovesLeft; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + gBattleBufferB[gActiveBank][3] = GetBankByIdentity((GetBankIdentity(gActiveBank) ^ 1) | (Random() & 2)); + else + gBattleBufferB[gActiveBank][3] = GetBankByIdentity(GetBankIdentity(gActiveBank) ^ 1); + } + else + gProtectStructs[gActiveBank].onlyStruggle = 0; + return (unusable == 0xF); +} + +u8 IsImprisoned(u8 bank, u16 move) +{ + u8 imprisionedMoves = 0; + u8 bankSide = GetBankSide(bank); + s32 i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (bankSide != GetBankSide(i) && gStatuses3[i] & STATUS3_IMPRISIONED) + { + s32 j; + for (j = 0; j < 4; j++) + { + if (move == gBattleMons[i].moves[j]) + break; + } + if (j < 4) + imprisionedMoves++; + } + } + return imprisionedMoves; +} + +u8 UpdateTurnCounters(void) +{ + u8 effect = 0; + s32 i; + + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankAttacker]; gBankAttacker++) + { + } + for (gBankTarget = 0; gBankTarget < gNoOfAllBanks && gAbsentBankFlags & gBitTable[gBankTarget]; gBankTarget++) + { + } + + do + { + u8 sideBank; + + switch (BATTLE_STRUCT->turncountersTracker) + { + case 0: + for (i = 0; i < gNoOfAllBanks; i++) + { + gBanksByTurnOrder[i] = i; + } + for (i = 0; i < gNoOfAllBanks - 1; i++) + { + s32 j; + for (j = i + 1; j < gNoOfAllBanks; j++) + { + if (GetWhoStrikesFirst(gBanksByTurnOrder[i], gBanksByTurnOrder[j], 0)) + SwapTurnOrder(i, j); + } + } + BATTLE_STRUCT->turncountersTracker++; + BATTLE_STRUCT->turnSideTracker = 0; + case 1: + while (BATTLE_STRUCT->turnSideTracker < 2) + { + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + + if (gSideAffecting[sideBank] & SIDE_STATUS_REFLECT) + { + if (--gSideTimers[sideBank].reflectTimer == 0) + { + + gSideAffecting[sideBank] &= ~SIDE_STATUS_REFLECT; + BattleScriptExecute(BattleScript_SideStatusWoreOff); + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_REFLECT; + gBattleTextBuff1[3] = MOVE_REFLECT >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + } + BATTLE_STRUCT->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + BATTLE_STRUCT->turncountersTracker++; + BATTLE_STRUCT->turnSideTracker = 0; + } + break; + case 2: + while (BATTLE_STRUCT->turnSideTracker < 2) + { + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideAffecting[sideBank] & SIDE_STATUS_LIGHTSCREEN) + { + if (--gSideTimers[sideBank].lightscreenTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; + BattleScriptExecute(BattleScript_SideStatusWoreOff); + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_LIGHT_SCREEN; + gBattleTextBuff1[3] = MOVE_LIGHT_SCREEN >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + } + BATTLE_STRUCT->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + BATTLE_STRUCT->turncountersTracker++; + BATTLE_STRUCT->turnSideTracker = 0; + } + break; + case 3: + while (BATTLE_STRUCT->turnSideTracker < 2) + { + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideTimers[sideBank].mistTimer && --gSideTimers[sideBank].mistTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_MIST; + BattleScriptExecute(BattleScript_SideStatusWoreOff); + gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = MOVE_MIST; + gBattleTextBuff1[3] = MOVE_MIST >> 8; + gBattleTextBuff1[4] = EOS; + effect++; + } + BATTLE_STRUCT->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + BATTLE_STRUCT->turncountersTracker++; + BATTLE_STRUCT->turnSideTracker = 0; + } + break; + case 4: + while (BATTLE_STRUCT->turnSideTracker < 2) + { + gActiveBank = gBankAttacker = sideBank = BATTLE_STRUCT->turnSideTracker; + if (gSideAffecting[sideBank] & SIDE_STATUS_SAFEGUARD) + { + if (--gSideTimers[sideBank].safeguardTimer == 0) + { + gSideAffecting[sideBank] &= ~SIDE_STATUS_SAFEGUARD; + BattleScriptExecute(BattleScript_SafeguardEnds); + effect++; + } + } + BATTLE_STRUCT->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + BATTLE_STRUCT->turncountersTracker++; + BATTLE_STRUCT->turnSideTracker = 0; + } + break; + case 5: + while (BATTLE_STRUCT->turnSideTracker < gNoOfAllBanks) + { + gActiveBank = gBanksByTurnOrder[BATTLE_STRUCT->turnSideTracker]; + if (gWishFutureKnock.wishCounter[gActiveBank] && --gWishFutureKnock.wishCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) + { + gBankTarget = gActiveBank; + BattleScriptExecute(BattleScript_WishComesTrue); + effect++; + } + BATTLE_STRUCT->turnSideTracker++; + if (effect) + break; + } + if (!effect) + { + BATTLE_STRUCT->turncountersTracker++; + } + break; + case 6: + if (gBattleWeather & WEATHER_RAIN_ANY) + { + if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) + { + if (--gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_RAIN_TEMPORARY; + gBattleWeather &= ~WEATHER_RAIN_DOWNPOUR; + gBattleCommunication[MULTISTRING_CHOOSER] = 2; + } + else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + else if (gBattleWeather & WEATHER_RAIN_DOWNPOUR) + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptExecute(BattleScript_RainContinuesOrEnds); + effect++; + } + BATTLE_STRUCT->turncountersTracker++; + break; + case 7: + if (gBattleWeather & WEATHER_SANDSTORM_ANY) + { + if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_SANDSTORM_TEMPORARY; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; + } + else + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; + + BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + BATTLE_STRUCT->turncountersTracker++; + break; + case 8: + if (gBattleWeather & WEATHER_SUN_ANY) + { + if (!(gBattleWeather & WEATHER_SUN_PERMANENT) && --gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_SUN_TEMPORARY; + gBattlescriptCurrInstr = BattleScript_SunlightFaded; + } + else + gBattlescriptCurrInstr = BattleScript_SunlightContinues; + + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + BATTLE_STRUCT->turncountersTracker++; + break; + case 9: + if (gBattleWeather & WEATHER_HAIL) + { + if (--gWishFutureKnock.weatherDuration == 0) + { + gBattleWeather &= ~WEATHER_HAIL; + gBattlescriptCurrInstr = BattleScript_SandStormHailEnds; + } + else + gBattlescriptCurrInstr = BattleScript_DamagingWeatherContinues; + + BATTLE_STRUCT->animArg1 = B_ANIM_HAIL_CONTINUES; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + BATTLE_STRUCT->turncountersTracker++; + break; + case 10: + effect++; + break; + } + } while (effect == 0); + return (gBattleMainFunc != BattleTurnPassed); +} + +#define TURNBASED_MAX_CASE 19 + +u8 TurnBasedEffects(void) +{ + u8 effect = 0; + + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); + while (BATTLE_STRUCT->turnEffectsBank < gNoOfAllBanks && BATTLE_STRUCT->turnEffectsTracker <= TURNBASED_MAX_CASE) + { + gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->turnEffectsBank]; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + { + BATTLE_STRUCT->turnEffectsBank++; + } + else + { + switch (BATTLE_STRUCT->turnEffectsTracker) + { + case 0: // ingrain + if ((gStatuses3[gActiveBank] & STATUS3_ROOTED) + && gBattleMons[gActiveBank].hp != gBattleMons[gActiveBank].maxHP + && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_IngrainTurnHeal); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 1: // end turn abilities + if (AbilityBattleEffects(ABILITYEFFECT_ENDTURN, gActiveBank, 0, 0, 0)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 2: // item effects + if (ItemBattleEffects(1, gActiveBank, 0)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 18: // item effects again + if (ItemBattleEffects(1, gActiveBank, 1)) + effect++; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 3: // leech seed + if (gStatuses3[gActiveBank] & STATUS3_LEECHSEED && gBattleMons[gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK].hp != 0 && gBattleMons[gActiveBank].hp != 0) + { + gBankTarget = gStatuses3[gActiveBank] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the bank that receives HP + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BATTLE_STRUCT->animArg1 = gBankTarget; + BATTLE_STRUCT->animArg2 = gBankAttacker; + BattleScriptExecute(BattleScript_LeechSeedTurnDrain); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 4: // poison + if ((gBattleMons[gActiveBank].status1 & STATUS_POISON) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_PoisonTurnDmg); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 5: // toxic poison + if ((gBattleMons[gActiveBank].status1 & STATUS_TOXIC_POISON) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if ((gBattleMons[gActiveBank].status1 & 0xF00) != 0xF00) //not 16 turns + gBattleMons[gActiveBank].status1 += 0x100; + gBattleMoveDamage *= (gBattleMons[gActiveBank].status1 & 0xF00) >> 8; + BattleScriptExecute(BattleScript_PoisonTurnDmg); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 6: // burn + if ((gBattleMons[gActiveBank].status1 & STATUS_BURN) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 8; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_BurnTurnDmg); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 7: // spooky nightmares + if ((gBattleMons[gActiveBank].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBank].hp != 0) + { + // missing sleep check + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_NightmareTurnDmg); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 8: // curse + if ((gBattleMons[gActiveBank].status2 & STATUS2_CURSED) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptExecute(BattleScript_CurseTurnDmg); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 9: // wrap + if ((gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) && gBattleMons[gActiveBank].hp != 0) + { + gBattleMons[gActiveBank].status2 -= 0x2000; + if (gBattleMons[gActiveBank].status2 & STATUS2_WRAPPED) // damaged by wrap + { + BATTLE_STRUCT->animArg1 = ewram16004arr(0, gActiveBank); + BATTLE_STRUCT->animArg2 = ewram16004arr(1, gActiveBank); + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); + gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); + gBattleTextBuff1[4] = EOS; + gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; + gBattleMoveDamage = gBattleMons[gActiveBank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + } + else // broke free + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = ewram16004arr(0, gActiveBank); + gBattleTextBuff1[3] = ewram16004arr(1, gActiveBank); + gBattleTextBuff1[4] = EOS; + gBattlescriptCurrInstr = BattleScript_WrapEnds; + } + BattleScriptExecute(gBattlescriptCurrInstr); + effect++; + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 10: // uproar + if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + for (gBankAttacker = 0; gBankAttacker < gNoOfAllBanks; gBankAttacker++) + { + if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + && gBattleMons[gBankAttacker].ability != ABILITY_SOUNDPROOF) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + BattleScriptExecute(BattleScript_MonWokeUpInUproar); + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + } + if (gBankAttacker != gNoOfAllBanks) + { + effect = 2; // a pokemon was awaken + break; + } + else + { + gBankAttacker = gActiveBank; + gBattleMons[gActiveBank].status2 -= 0x10; // uproar timer goes down + if (WasUnableToUseMove(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + else if (gBattleMons[gActiveBank].status2 & STATUS2_UPROAR) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattleMons[gActiveBank].status2 |= STATUS2_MULTIPLETURNS; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + CancelMultiTurnMoves(gActiveBank); + } + BattleScriptExecute(BattleScript_PrintUproarOverTurns); + effect = 1; + } + } + if (effect != 2) + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 11: // thrash + if (gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + { + gBattleMons[gActiveBank].status2 -= 0x400; + if (WasUnableToUseMove(gActiveBank)) + CancelMultiTurnMoves(gActiveBank); + else if (!(gBattleMons[gActiveBank].status2 & STATUS2_LOCK_CONFUSE) + && (gBattleMons[gActiveBank].status2 & STATUS2_MULTIPLETURNS)) + { + gBattleMons[gActiveBank].status2 &= ~(STATUS2_MULTIPLETURNS); + if (!(gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION)) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x47; + SetMoveEffect(1, 0); + if (gBattleMons[gActiveBank].status2 & STATUS2_CONFUSION) + BattleScriptExecute(BattleScript_ThrashConfuses); + effect++; + } + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 12: // disable + if (gDisableStructs[gActiveBank].disableTimer1 != 0) + { + int i; + for (i = 0; i < 4; i++) + { + if (gDisableStructs[gActiveBank].disabledMove == gBattleMons[gActiveBank].moves[i]) + break; + } + if (i == 4) // pokemon does not have the disabled move anymore + { + gDisableStructs[gActiveBank].disabledMove = 0; + gDisableStructs[gActiveBank].disableTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].disableTimer1 == 0) // disable ends + { + gDisableStructs[gActiveBank].disabledMove = 0; + BattleScriptExecute(BattleScript_DisabledNoMore); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 13: // encore + if (gDisableStructs[gActiveBank].encoreTimer1 != 0) + { + if (gBattleMons[gActiveBank].moves[gDisableStructs[gActiveBank].encoredMovePos] != gDisableStructs[gActiveBank].encoredMove) // pokemon does not have the encored move anymore + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + } + else if (--gDisableStructs[gActiveBank].encoreTimer1 == 0 + || gBattleMons[gActiveBank].pp[gDisableStructs[gActiveBank].encoredMovePos] == 0) + { + gDisableStructs[gActiveBank].encoredMove = 0; + gDisableStructs[gActiveBank].encoreTimer1 = 0; + BattleScriptExecute(BattleScript_EncoredNoMore); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 14: // lock-on decrement + if (gStatuses3[gActiveBank] & STATUS3_ALWAYS_HITS) + gStatuses3[gActiveBank] -= 0x8; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 15: // charge + if (gDisableStructs[gActiveBank].chargeTimer1 && --gDisableStructs[gActiveBank].chargeTimer1 == 0) + gStatuses3[gActiveBank] &= ~STATUS3_CHARGED_UP; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 16: // taunt + if (gDisableStructs[gActiveBank].tauntTimer1) + gDisableStructs[gActiveBank].tauntTimer1--; + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 17: // yawn + if (gStatuses3[gActiveBank] & STATUS3_YAWN) + { + gStatuses3[gActiveBank] -= 0x800; + if (!(gStatuses3[gActiveBank] & STATUS3_YAWN) && !(gBattleMons[gActiveBank].status1 & STATUS_ANY) + && gBattleMons[gActiveBank].ability != ABILITY_VITAL_SPIRIT + && gBattleMons[gActiveBank].ability != ABILITY_INSOMNIA && !UproarWakeUpCheck(gActiveBank)) + { + CancelMultiTurnMoves(gActiveBank); + gBattleMons[gActiveBank].status1 |= (Random() & 3) + 2; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + gEffectBank = gActiveBank; + BattleScriptExecute(BattleScript_YawnMakesAsleep); + effect++; + } + } + BATTLE_STRUCT->turnEffectsTracker++; + break; + case 19: // done + BATTLE_STRUCT->turnEffectsTracker = 0; + BATTLE_STRUCT->turnEffectsBank++; + break; + } + if (effect != 0) + return effect; + } + } + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); + return 0; +} + +bool8 HandleWishPerishSongOnTurnEnd(void) +{ + gHitMarker |= (HITMARKER_GRUDGE | HITMARKER_x20); + switch (BATTLE_STRUCT->sub80170DC_Tracker) + { + case 0: // future sight + while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks) + { + gActiveBank = BATTLE_STRUCT->sub80170DC_Bank; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + BATTLE_STRUCT->sub80170DC_Bank++; + else + { + BATTLE_STRUCT->sub80170DC_Bank++; + if (gWishFutureKnock.futureSightCounter[gActiveBank] && --gWishFutureKnock.futureSightCounter[gActiveBank] == 0 && gBattleMons[gActiveBank].hp) + { + if (gWishFutureKnock.futureSightMove[gActiveBank] == MOVE_FUTURE_SIGHT) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else //Doom Desire + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = gWishFutureKnock.futureSightMove[gActiveBank]; + gBattleTextBuff1[3] = gWishFutureKnock.futureSightMove[gActiveBank] >> 8; + gBattleTextBuff1[4] = 0xFF; + gBankTarget = gActiveBank; + gBankAttacker = gWishFutureKnock.futureSightAttacker[gActiveBank]; + gBattleMoveDamage = gWishFutureKnock.futureSightDmg[gActiveBank]; + gSpecialStatuses[gBankTarget].moveturnLostHP = 0xFFFF; + BattleScriptExecute(BattleScript_MonTookFutureAttack); + return 1; + } + } + } + BATTLE_STRUCT->sub80170DC_Tracker = 1; + BATTLE_STRUCT->sub80170DC_Bank = 0; + case 1: // perish song + while (BATTLE_STRUCT->sub80170DC_Bank < gNoOfAllBanks) + { + gActiveBank = gBankAttacker = gBanksByTurnOrder[BATTLE_STRUCT->sub80170DC_Bank]; + if (gAbsentBankFlags & gBitTable[gActiveBank]) + BATTLE_STRUCT->sub80170DC_Bank++; + else + { + BATTLE_STRUCT->sub80170DC_Bank++; + if (gStatuses3[gActiveBank] & STATUS3_PERISH_SONG) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 1; + gBattleTextBuff1[2] = 1; + gBattleTextBuff1[3] = 1; + gBattleTextBuff1[4] = gDisableStructs[gActiveBank].perishSong1; + gBattleTextBuff1[5] = 0xFF; + if (gDisableStructs[gActiveBank].perishSong1 == 0) + { + gStatuses3[gActiveBank] &= ~(STATUS3_PERISH_SONG); + gBattleMoveDamage = gBattleMons[gActiveBank].hp; + gBattlescriptCurrInstr = BattleScript_PerishSongHits; + } + else + { + gDisableStructs[gActiveBank].perishSong1--; + gBattlescriptCurrInstr = BattleScript_PerishSongTimerGoesDown; + } + BattleScriptExecute(gBattlescriptCurrInstr); + return 1; + } + } + } + break; + } + gHitMarker &= ~(HITMARKER_GRUDGE | HITMARKER_x20); + return 0; +} + +#define HandleFaintedMonActions_MAX_CASE 7 + +bool8 HandleFaintedMonActions(void) +{ + if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) + return 0; + do + { + int i; + switch (BATTLE_STRUCT->sub80173A4_Tracker) + { + case 0: + BATTLE_STRUCT->unk1605A = 0; + BATTLE_STRUCT->sub80173A4_Tracker++; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gAbsentBankFlags & gBitTable[i] && !sub_8018018(i, 6, 6)) + gAbsentBankFlags &= ~(gBitTable[i]); + } + case 1: + do + { + gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; + if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(BATTLE_STRUCT->unk16113 & gBitTable[gBattlePartyID[BATTLE_STRUCT->unk1605A]]) && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) + { + BattleScriptExecute(BattleScript_GiveExp); + BATTLE_STRUCT->sub80173A4_Tracker = 2; + return 1; + } + } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks); + BATTLE_STRUCT->sub80173A4_Tracker = 3; + break; + case 2: + sub_8015740(gBank1); + if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks) + BATTLE_STRUCT->sub80173A4_Tracker = 3; + else + BATTLE_STRUCT->sub80173A4_Tracker = 1; + break; + case 3: + BATTLE_STRUCT->unk1605A = 0; + BATTLE_STRUCT->sub80173A4_Tracker++; + case 4: + do + { + gBank1 = gBankTarget = BATTLE_STRUCT->unk1605A; //or should banks be switched? + if (gBattleMons[BATTLE_STRUCT->unk1605A].hp == 0 && !(gAbsentBankFlags & gBitTable[BATTLE_STRUCT->unk1605A])) + { + BattleScriptExecute(BattleScript_HandleFaintedMon); + BATTLE_STRUCT->sub80173A4_Tracker = 5; + return 1; + } + } while (++BATTLE_STRUCT->unk1605A != gNoOfAllBanks); + BATTLE_STRUCT->sub80173A4_Tracker = 6; + break; + case 5: + if (++BATTLE_STRUCT->unk1605A == gNoOfAllBanks) + BATTLE_STRUCT->sub80173A4_Tracker = 6; + else + BATTLE_STRUCT->sub80173A4_Tracker = 4; + break; + case 6: + if (AbilityBattleEffects(9, 0, 0, 0, 0) || AbilityBattleEffects(0xB, 0, 0, 0, 0) || ItemBattleEffects(1, 0, 1) || AbilityBattleEffects(6, 0, 0, 0, 0)) + return 1; + BATTLE_STRUCT->sub80173A4_Tracker++; + break; + case 7: + break; + } + } while (BATTLE_STRUCT->sub80173A4_Tracker != HandleFaintedMonActions_MAX_CASE); + return 0; +} + +void TryClearRageStatuses(void) +{ + int i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].status2 & STATUS2_RAGE && gChosenMovesByBanks[i] != MOVE_RAGE) + gBattleMons[i].status2 &= ~(STATUS2_RAGE); + } +} + +#define ATKCANCELLER_MAX_CASE 14 + +u8 AtkCanceller_UnableToUseMove(void) +{ + u8 effect = 0; + s32* bideDmg = &BATTLE_STRUCT->bideDmg; + do + { + switch (BATTLE_STRUCT->atkCancellerTracker) + { + case 0: // flags clear + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_DESTINY_BOND); + gStatuses3[gBankAttacker] &= ~(STATUS3_GRUDGE); + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 1: // check being asleep + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + { + if (UproarWakeUpCheck(gBankAttacker)) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; + effect = 2; + } + else + { + u8 toSub; + if (gBattleMons[gBankAttacker].ability == ABILITY_EARLY_BIRD) + toSub = 2; + else + toSub = 1; + if ((gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) < toSub) + gBattleMons[gBankAttacker].status1 &= ~(STATUS_SLEEP); + else + gBattleMons[gBankAttacker].status1 -= toSub; + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP) + { + if (gCurrentMove != MOVE_SNORE && gCurrentMove != MOVE_SLEEP_TALK) + { + gBattlescriptCurrInstr = BattleScript_MoveUsedIsAsleep; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 2; + } + } + else + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_MoveUsedWokeUp; + effect = 2; + } + } + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 2: // check being frozen + if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + { + if (Random() % 5) + { + if (gBattleMoves[gCurrentMove].effect != EFFECT_THAW_HIT) // unfreezing via a move effect happens in case 13 + { + gBattlescriptCurrInstr = BattleScript_MoveUsedIsFrozen; + gHitMarker |= HITMARKER_NO_ATTACKSTRING; + } + else + { + BATTLE_STRUCT->atkCancellerTracker++; + break; + } + } + else // unfreeze + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + } + effect = 2; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 3: // truant + if (gBattleMons[gBankAttacker].ability == ABILITY_TRUANT && gDisableStructs[gBankAttacker].truantCounter) + { + CancelMultiTurnMoves(gBankAttacker); + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + gBattleMoveFlags |= MOVESTATUS_MISSED; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 4: // recharge + if (gBattleMons[gBankAttacker].status2 & STATUS2_RECHARGE) + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RECHARGE); + gDisableStructs[gBankAttacker].rechargeCounter = 0; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedMustRecharge; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 5: // flinch + if (gBattleMons[gBankAttacker].status2 & STATUS2_FLINCHED) + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_FLINCHED); + gProtectStructs[gBankAttacker].flinchImmobility = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedFlinched; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 6: // disabled move + if (gDisableStructs[gBankAttacker].disabledMove == gCurrentMove && gDisableStructs[gBankAttacker].disabledMove != 0) + { + gProtectStructs[gBankAttacker].usedDisabledMove = 1; + BATTLE_STRUCT->scriptingActive = gBankAttacker; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsDisabled; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 7: // taunt + if (gDisableStructs[gBankAttacker].tauntTimer1 && gBattleMoves[gCurrentMove].power == 0) + { + gProtectStructs[gBankAttacker].usedTauntedMove = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsTaunted; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 8: // imprisoned + if (IsImprisoned(gBankAttacker, gCurrentMove)) + { + gProtectStructs[gBankAttacker].usedImprisionedMove = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsImprisoned; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 9: // confusion + if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + { + gBattleMons[gBankAttacker].status2--; + if (gBattleMons[gBankAttacker].status2 & STATUS2_CONFUSION) + { + if (Random() & 1) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + BattleScriptPushCursor(); + } + else // confusion dmg + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBankTarget = gBankAttacker; + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); + gProtectStructs[gBankAttacker].confusionSelfDmg = 1; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + } + gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfused; + } + else // snapped out of confusion + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsConfusedNoMore; + } + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 10: // paralysis + if (gBattleMons[gBankAttacker].status1 & STATUS_PARALYSIS && (Random() % 4) == 0) + { + gProtectStructs[gBankAttacker].prlzImmobility = 1; + CancelMultiTurnMoves(gBankAttacker); + gBattlescriptCurrInstr = BattleScript_MoveUsedIsParalyzed; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 11: // infatuation + if (gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + { + BATTLE_STRUCT->scriptingActive = CountTrailingZeroBits((gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) >> 0x10); + if (Random() & 1) + BattleScriptPushCursor(); + else + { + BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gProtectStructs[gBankAttacker].loveImmobility = 1; + CancelMultiTurnMoves(gBankAttacker); + } + gBattlescriptCurrInstr = BattleScript_MoveUsedIsInLove; + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 12: // bide + if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + { + gBattleMons[gBankAttacker].status2 -= 0x100; + if (gBattleMons[gBankAttacker].status2 & STATUS2_BIDE) + gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; + else + { + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_MULTIPLETURNS); + if (gTakenDmg[gBankAttacker]) + { + gCurrentMove = MOVE_BIDE; + *bideDmg = gTakenDmg[gBankAttacker] * 2; + gBankTarget = gTakenDmgBanks[gBankAttacker]; + if (gAbsentBankFlags & gBitTable[gBankTarget]) + gBankTarget = GetMoveTarget(MOVE_BIDE, 1); + gBattlescriptCurrInstr = BattleScript_BideAttack; + } + else + gBattlescriptCurrInstr = BattleScript_BideNoEnergyToAttack; + } + effect = 1; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 13: // move thawing + if (gBattleMons[gBankAttacker].status1 & STATUS_FREEZE) + { + if (gBattleMoves[gCurrentMove].effect == EFFECT_THAW_HIT) + { + gBattleMons[gBankAttacker].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MoveUsedUnfroze; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + } + effect = 2; + } + BATTLE_STRUCT->atkCancellerTracker++; + break; + case 14: // last case + break; + } + + } while (BATTLE_STRUCT->atkCancellerTracker != ATKCANCELLER_MAX_CASE && effect == 0); + + if (effect == 2) + { + gActiveBank = gBankAttacker; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + } + return effect; +} + +bool8 sub_8018018(u8 bank, u8 r1, u8 r2) +{ + struct Pokemon* party; + u8 r7; + u8 r6; + s32 i; + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) + return 0; + if (gBattleTypeFlags & BATTLE_TYPE_MULTI) + { + r7 = sub_803FC34(bank); + if (GetBankSide(bank) == 0) + party = gPlayerParty; + else + party = gEnemyParty; + r6 = sub_803FBFC(r7); + for (i = r6 * 3; i < r6 * 3 + 3; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) + break; + } + return (i == r6 * 3 + 3); + } + else + { + if (GetBankSide(bank) == 1) + { + r7 = GetBankByIdentity(1); + r6 = GetBankByIdentity(3); + party = gEnemyParty; + } + else + { + r7 = GetBankByIdentity(0); + r6 = GetBankByIdentity(2); + party = gPlayerParty; + } + if (r1 == 6) + r1 = gBattlePartyID[r7]; + if (r2 == 6) + r2 = gBattlePartyID[r6]; + for (i = 0; i < 6; i++) + { + if (GetMonData(&party[i], MON_DATA_HP) && GetMonData(&party[i], MON_DATA_SPECIES2) && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG && i != r1 && i != r2 && i != ewram16068arr(r7) && i != ewram16068arr(r6)) + break; + } + return (i == 6); + } +} + +enum +{ + CASTFORM_NO_CHANGE, //0 + CASTFORM_TO_NORMAL, //1 + CASTFORM_TO_FIRE, //2 + CASTFORM_TO_WATER, //3 + CASTFORM_TO_ICE, //4 +}; + +u8 CastformDataTypeChange(u8 bank) +{ + u8 formChange = 0; + if (gBattleMons[bank].species != SPECIES_CASTFORM || gBattleMons[bank].ability != ABILITY_FORECAST || gBattleMons[bank].hp == 0) + return CASTFORM_NO_CHANGE; + if (!WEATHER_HAS_EFFECT && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + { + gBattleMons[bank].type1 = TYPE_NORMAL; + gBattleMons[bank].type2 = TYPE_NORMAL; + return CASTFORM_TO_NORMAL; + } + if (!WEATHER_HAS_EFFECT) + return CASTFORM_NO_CHANGE; + if (!(gBattleWeather & (WEATHER_RAIN_ANY | WEATHER_SUN_ANY | WEATHER_HAIL)) && gBattleMons[bank].type1 != TYPE_NORMAL && gBattleMons[bank].type2 != TYPE_NORMAL) + { + gBattleMons[bank].type1 = TYPE_NORMAL; + gBattleMons[bank].type2 = TYPE_NORMAL; + formChange = CASTFORM_TO_NORMAL; + } + if (gBattleWeather & WEATHER_SUN_ANY && gBattleMons[bank].type1 != TYPE_FIRE && gBattleMons[bank].type2 != TYPE_FIRE) + { + gBattleMons[bank].type1 = TYPE_FIRE; + gBattleMons[bank].type2 = TYPE_FIRE; + formChange = CASTFORM_TO_FIRE; + } + if (gBattleWeather & WEATHER_RAIN_ANY && gBattleMons[bank].type1 != TYPE_WATER && gBattleMons[bank].type2 != TYPE_WATER) + { + gBattleMons[bank].type1 = TYPE_WATER; + gBattleMons[bank].type2 = TYPE_WATER; + formChange = CASTFORM_TO_WATER; + } + if (gBattleWeather & WEATHER_HAIL && gBattleMons[bank].type1 != TYPE_ICE && gBattleMons[bank].type2 != TYPE_ICE) + { + gBattleMons[bank].type1 = TYPE_ICE; + gBattleMons[bank].type2 = TYPE_ICE; + formChange = CASTFORM_TO_ICE; + } + return formChange; +} + +u8 AbilityBattleEffects(u8 caseID, u8 bank, u8 ability, u8 special, u16 moveArg) +{ + u8 effect = 0; + struct Pokemon* pokeAtk; + struct Pokemon* pokeDef; + u16 speciesAtk; + u16 speciesDef; + u32 pidAtk; + u32 pidDef; + + if (gBankAttacker >= gNoOfAllBanks) + gBankAttacker = bank; + if (GetBankSide(gBankAttacker) == 0) + pokeAtk = &gPlayerParty[gBattlePartyID[gBankAttacker]]; + else + pokeAtk = &gEnemyParty[gBattlePartyID[gBankAttacker]]; + + if (gBankTarget >= gNoOfAllBanks) + gBankTarget = bank; + if (GetBankSide(gBankTarget) == 0) + pokeDef = &gPlayerParty[gBattlePartyID[gBankTarget]]; + else + pokeDef = &gEnemyParty[gBattlePartyID[gBankTarget]]; + + speciesAtk = GetMonData(pokeAtk, MON_DATA_SPECIES); + pidAtk = GetMonData(pokeAtk, MON_DATA_PERSONALITY); + + speciesDef = GetMonData(pokeDef, MON_DATA_SPECIES); + pidDef = GetMonData(pokeDef, MON_DATA_PERSONALITY); + + if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // why isn't that check done at the beginning? + { + u8 moveType; + s32 i; + u16 move; + u8 side; + u8 target1; + + if (special) + gLastUsedAbility = special; + else + gLastUsedAbility = gBattleMons[bank].ability; + + if (moveArg) + move = moveArg; + else + move = gCurrentMove; + + if (BATTLE_STRUCT->dynamicMoveType) + moveType = BATTLE_STRUCT->dynamicMoveType & 0x3F; + else + moveType = gBattleMoves[move].type; + + //_080184AC + switch (caseID) + { + case ABILITYEFFECT_ON_SWITCHIN: // 0 + //_08018518 + if (gBankAttacker >= gNoOfAllBanks) + gBankAttacker = bank; + switch (gLastUsedAbility) + { + case 0xFF: //weather from overworld + //_08018586 + switch (weather_get_current()) + { + case WEATHER_RAIN_LIGHT: + case WEATHER_RAIN_MED: + case WEATHER_RAIN_HEAVY: + if (!(gBattleWeather & WEATHER_RAIN_ANY)) + { + gBattleWeather = (WEATHER_RAIN_TEMPORARY | WEATHER_RAIN_PERMANENT); + BATTLE_STRUCT->animArg1 = B_ANIM_RAIN_CONTINUES; + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case WEATHER_SANDSTORM: + if (!(gBattleWeather & WEATHER_SANDSTORM_ANY)) + { + gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); + BATTLE_STRUCT->animArg1 = B_ANIM_SANDSTORM_CONTINUES; + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case WEATHER_DROUGHT: + if (!(gBattleWeather & WEATHER_SUN_ANY)) + { + gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); + BATTLE_STRUCT->animArg1 = B_ANIM_SUN_CONTINUES; + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + } + if (effect) + { + gBattleCommunication[MULTISTRING_CHOOSER] = weather_get_current(); + BattleScriptPushCursorAndCallback(BattleScript_OverworldWeatherStarts); + } + break; + case ABILITY_DRIZZLE: + //_08018680 + if (!(gBattleWeather & WEATHER_RAIN_PERMANENT)) + { + gBattleWeather = (WEATHER_RAIN_PERMANENT | WEATHER_RAIN_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_DrizzleActivates); + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case ABILITY_SAND_STREAM: + //_080186B8 + if (!(gBattleWeather & WEATHER_SANDSTORM_PERMANENT)) + { + gBattleWeather = (WEATHER_SANDSTORM_PERMANENT | WEATHER_SANDSTORM_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_SandstreamActivates); + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case ABILITY_DROUGHT: + //_080186F0 + if (!(gBattleWeather & WEATHER_SUN_PERMANENT)) + { + gBattleWeather = (WEATHER_SUN_PERMANENT | WEATHER_SUN_TEMPORARY); + BattleScriptPushCursorAndCallback(BattleScript_DroughtActivates); + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case ABILITY_INTIMIDATE: + //_08018728 + if (!(gSpecialStatuses[bank].intimidatedPoke)) + { + gStatuses3[bank] |= STATUS3_INTIMIDATE_POKES; + gSpecialStatuses[bank].intimidatedPoke = 1; + } + break; + case ABILITY_FORECAST: + //_0801875C + effect = CastformDataTypeChange(bank); + if (effect != 0) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + BATTLE_STRUCT->scriptingActive = bank; + BATTLE_STRUCT->castformToChangeInto = effect - 1; + } + break; + case ABILITY_TRACE: + //_080187A0 + if (!(gSpecialStatuses[bank].traced)) + { + gStatuses3[bank] |= STATUS3_TRACE; + gSpecialStatuses[bank].traced = 1; + } + break; + case ABILITY_CLOUD_NINE: + case ABILITY_AIR_LOCK: + //_080187DC + { + // that's a weird choice for a variable, why not use i or bank? + for (target1 = 0; target1 < gNoOfAllBanks; target1++) + { + effect = CastformDataTypeChange(target1); + if (effect != 0) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + BATTLE_STRUCT->scriptingActive = target1; + BATTLE_STRUCT->castformToChangeInto = effect - 1; + break; + } + } + } + break; + } + break; + case ABILITYEFFECT_ENDTURN: // 1 + //_08018814 + if (gBattleMons[bank].hp != 0) + { + gBankAttacker = bank; + switch (gLastUsedAbility) + { + case ABILITY_RAIN_DISH: + if (WEATHER_HAS_EFFECT && (gBattleWeather & WEATHER_RAIN_ANY) + && gBattleMons[bank].maxHP > gBattleMons[bank].hp) + { + gLastUsedAbility = ABILITY_RAIN_DISH; // why + BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates); + gBattleMoveDamage = gBattleMons[bank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + effect++; + } + break; + case ABILITY_SHED_SKIN: + if ((gBattleMons[bank].status1 & STATUS_ANY) && (Random() % 3) == 0) + { + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON)) + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + if (gBattleMons[bank].status1 & STATUS_SLEEP) + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + if (gBattleMons[bank].status1 & STATUS_BURN) + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + if (gBattleMons[bank].status1 & STATUS_FREEZE) + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + gBattleMons[bank].status1 = 0; + // BUG: The nightmare status does not get cleared here. This was fixed in Emerald. + //gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + BATTLE_STRUCT->scriptingActive = gActiveBank = bank; + BattleScriptPushCursorAndCallback(BattleScript_ShedSkinActivates); + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBufferBankForExecution(gActiveBank); + effect++; + } + break; + case ABILITY_SPEED_BOOST: + if (gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC && gDisableStructs[bank].isFirstTurn != 2) + { + gBattleMons[bank].statStages[STAT_STAGE_SPEED]++; + BATTLE_STRUCT->animArg1 = 0x11; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptPushCursorAndCallback(BattleScript_SpeedBoostActivates); + BATTLE_STRUCT->scriptingActive = bank; + effect++; + } + break; + case ABILITY_TRUANT: + gDisableStructs[gBankAttacker].truantCounter ^= 1; + break; + } + } + break; + case ABILITYEFFECT_MOVES_BLOCK: // 2 + //_08018A40 + if (gLastUsedAbility == ABILITY_SOUNDPROOF) + { + for (i = 0; gSoundMovesTable[i] != 0xFFFF; i++) + { + if (gSoundMovesTable[i] == move) + break; + } + if (gSoundMovesTable[i] != 0xFFFF) + { + if (gBattleMons[gBankAttacker].status2 & STATUS2_MULTIPLETURNS) + gHitMarker |= HITMARKER_NO_PPDEDUCT; + gBattlescriptCurrInstr = BattleScript_SoundproofProtected; + effect = 1; + } + } + break; + case ABILITYEFFECT_ABSORBING: // 3 + //_08018AD8 + if (move) + { + switch (gLastUsedAbility) + { + case ABILITY_VOLT_ABSORB: + if (moveType == TYPE_ELECTRIC && gBattleMoves[move].power != 0) + { + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; + } + break; + case ABILITY_WATER_ABSORB: + if (moveType == TYPE_WATER && gBattleMoves[move].power != 0) + { + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; + effect = 1; + } + break; + case ABILITY_FLASH_FIRE: + if (moveType == TYPE_FIRE && !(gBattleMons[bank].status1 & STATUS_FREEZE)) + { + if (!(eFlashFireArr.arr[bank] & 1)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_FlashFireBoost; + else + gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + eFlashFireArr.arr[bank] |= 1; + effect = 2; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + if (gProtectStructs[gBankAttacker].notFirstStrike) + gBattlescriptCurrInstr = BattleScript_FlashFireBoost; + else + gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; + effect = 2; + } + } + break; + } + if (effect == 1) + { + if (gBattleMons[bank].maxHP == gBattleMons[bank].hp) + { + if ((gProtectStructs[gBankAttacker].notFirstStrike)) + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP; + else + gBattlescriptCurrInstr = BattleScript_MoveHPDrain_FullHP_PPLoss; + } + else + { + gBattleMoveDamage = gBattleMons[bank].maxHP / 4; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + gBattleMoveDamage *= -1; + } + } + } + break; + case ABILITYEFFECT_CONTACT: // 4 + //_08018CF0 + switch (gLastUsedAbility) + { + case ABILITY_COLOR_CHANGE: + //_08018DCC + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && move != MOVE_STRUGGLE + && gBattleMoves[move].power != 0 + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[bank].type1 != moveType + && gBattleMons[bank].type2 != moveType + && gBattleMons[bank].hp != 0) + { + gBattleMons[bank].type1 = moveType; + gBattleMons[bank].type2 = moveType; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 3; + gBattleTextBuff1[2] = moveType; + gBattleTextBuff1[3] = 0xFF; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ColorChangeActivates; + effect++; + } + break; + case ABILITY_ROUGH_SKIN: + //_08018E94 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT)) + { + gBattleMoveDamage = gBattleMons[gBankAttacker].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_RoughSkinActivates; + effect++; + } + break; + case ABILITY_EFFECT_SPORE: + //_08018F54 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 10) == 0) + { + do + { + gBattleCommunication[MOVE_EFFECT_BYTE] = Random() & 3; + } while (gBattleCommunication[MOVE_EFFECT_BYTE] == 0); + if (gBattleCommunication[MOVE_EFFECT_BYTE] == 3) + gBattleCommunication[MOVE_EFFECT_BYTE] += 2; + gBattleCommunication[MOVE_EFFECT_BYTE] += 0x40; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_POISON_POINT: + //_0801904C + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x42; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_STATIC: + //_08019128 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x45; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_FLAME_BODY: + //_08019204 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 3) == 0) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 0x43; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ApplySecondaryEffect; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITY_CUTE_CHARM: + //_080192E0 + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gBattleMons[gBankAttacker].hp != 0 + && !gProtectStructs[gBankAttacker].confusionSelfDmg + && (gBattleMoves[move].flags & FLAG_MAKES_CONTACT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && gBattleMons[gBankTarget].hp != 0 + && (Random() % 3) == 0 + && gBattleMons[gBankAttacker].ability != ABILITY_OBLIVIOUS + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) + && !(gBattleMons[gBankAttacker].status2 & STATUS2_INFATUATION) + && GetGenderFromSpeciesAndPersonality(speciesAtk, pidAtk) != 0xFF + && GetGenderFromSpeciesAndPersonality(speciesDef, pidDef) != 0xFF) + { + gBattleMons[gBankAttacker].status2 |= (gBitTable[gBankTarget] << 0x10); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_CuteCharmActivates; + effect++; + } + break; + } + break; + case ABILITYEFFECT_IMMUNITY: // 5 + //_08019448 + { + for (bank = 0; bank < gNoOfAllBanks; bank++) + { + switch (gBattleMons[bank].ability) + { + case ABILITY_IMMUNITY: + if (gBattleMons[bank].status1 & (STATUS_POISON | STATUS_TOXIC_POISON | 0xF00)) // TODO: what is 0xF00? + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + effect = 1; + } + break; + case ABILITY_OWN_TEMPO: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + effect = 2; + } + break; + case ABILITY_LIMBER: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + effect = 1; + } + break; + case ABILITY_INSOMNIA: + case ABILITY_VITAL_SPIRIT: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + effect = 1; + } + break; + case ABILITY_WATER_VEIL: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + effect = 1; + } + break; + case ABILITY_MAGMA_ARMOR: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + effect = 1; + } + break; + case ABILITY_OBLIVIOUS: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + effect = 3; + } + break; + } + if (effect) + { + switch (effect) + { + case 1: // status cleared + gBattleMons[bank].status1 = 0; + break; + case 2: // get rid of confusion + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + break; + case 3: // get rid of infatuation + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + break; + } + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AbilityCuredStatus; + BATTLE_STRUCT->scriptingActive = bank; + gActiveBank = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + return effect; + } + } + } + break; + case ABILITYEFFECT_FORECAST: // 6 + //_080197B4 + { + for (bank = 0; bank < gNoOfAllBanks; bank++) + { + if (gBattleMons[bank].ability == ABILITY_FORECAST) + { + effect = CastformDataTypeChange(bank); + if (effect) + { + BattleScriptPushCursorAndCallback(BattleScript_CastformChange); + BATTLE_STRUCT->scriptingActive = bank; + BATTLE_STRUCT->castformToChangeInto = effect - 1; + return effect; + } + } + } + } + break; + case ABILITYEFFECT_SYNCHRONIZE: // 7 + //_08019804 + if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) + { + gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + BATTLE_STRUCT->synchroniseEffect &= 0x3F; + if (BATTLE_STRUCT->synchroniseEffect == 6) + BATTLE_STRUCT->synchroniseEffect = 2; + gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect + 0x40; + BATTLE_STRUCT->scriptingActive = gBankTarget; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITYEFFECT_ATK_SYNCHRONIZE: // 8 + //_08019880 + if (gLastUsedAbility == ABILITY_SYNCHRONIZE && (gHitMarker & HITMARKER_SYNCHRONISE_EFFECT)) + { + gHitMarker &= ~(HITMARKER_SYNCHRONISE_EFFECT); + BATTLE_STRUCT->synchroniseEffect &= 0x3F; + if (BATTLE_STRUCT->synchroniseEffect == 6) + BATTLE_STRUCT->synchroniseEffect = 2; + gBattleCommunication[MOVE_EFFECT_BYTE] = BATTLE_STRUCT->synchroniseEffect; + BATTLE_STRUCT->scriptingActive = gBankAttacker; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_SynchronizeActivates; + gHitMarker |= HITMARKER_IGNORE_SAFEGUARD; + effect++; + } + break; + case ABILITYEFFECT_INTIMIDATE1: // 9 + //_080198FC + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_INTIMIDATE && gStatuses3[i] & STATUS3_INTIMIDATE_POKES) + { + gLastUsedAbility = ABILITY_INTIMIDATE; + gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + BattleScriptPushCursorAndCallback(gUnknown_081D978C); + BATTLE_STRUCT->intimidateBank = i; + effect++; + break; + } + } + break; + case ABILITYEFFECT_TRACE: // 11 + //_08019940 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_TRACE && (gStatuses3[i] & STATUS3_TRACE)) + { + u8 target2; + side = (GetBankIdentity(i) ^ 1) & 1; + target1 = GetBankByIdentity(side); + target2 = GetBankByIdentity(side + 2); + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0 + && gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + { + //_080199AE + gActiveBank = GetBankByIdentity(((Random() & 1) * 2) | side); + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + else if (gBattleMons[target1].ability != 0 && gBattleMons[target1].hp != 0) + { + //_08019A34 + gActiveBank = target1; + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + else if (gBattleMons[target2].ability != 0 && gBattleMons[target2].hp != 0) + { + //_08019A78 + gActiveBank = target2; + gBattleMons[i].ability = gBattleMons[gActiveBank].ability; + gLastUsedAbility = gBattleMons[gActiveBank].ability; + effect++; + } + } + else + //_08019ABC + { + gActiveBank = target1; + if (gBattleMons[target1].ability && gBattleMons[target1].hp) + { + gBattleMons[i].ability = gBattleMons[target1].ability; + gLastUsedAbility = gBattleMons[target1].ability; + effect++; + } + } + if (effect) + { + BattleScriptPushCursorAndCallback(BattleScript_TraceActivates); + gStatuses3[i] &= ~(STATUS3_TRACE); + BATTLE_STRUCT->scriptingActive = i; + + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 4; + gBattleTextBuff1[2] = gActiveBank; + gBattleTextBuff1[3] = gBattlePartyID[gActiveBank]; + gBattleTextBuff1[4] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 9; + gBattleTextBuff2[2] = gLastUsedAbility; + gBattleTextBuff2[3] = EOS; + break; + } + } + } + break; + case ABILITYEFFECT_INTIMIDATE2: // 10 + //_08019B1C + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ABILITY_INTIMIDATE && (gStatuses3[i] & STATUS3_INTIMIDATE_POKES)) + { + gLastUsedAbility = ABILITY_INTIMIDATE; + gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = gUnknown_081D9795; + BATTLE_STRUCT->intimidateBank = i; + effect++; + break; + } + } + break; + case ABILITYEFFECT_CHECK_OTHER_SIDE: // 12 + //_08019B60 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 + //_08019BBC + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_FIELD_SPORT: // 14 + //_08019C18 + switch (gLastUsedAbility) + { + case 0xFD: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gStatuses3[i] & STATUS3_MUDSPORT) + effect = i + 1; + } + break; + case 0xFE: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gStatuses3[i] & STATUS3_WATERSPORT) + effect = i + 1; + } + break; + default: + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + } + break; + case ABILITYEFFECT_CHECK_ON_FIELD: // 19 + //_08019CD4 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && gBattleMons[i].hp != 0) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 + //_08019D18 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && i != bank) + { + gLastUsedAbility = ability; + effect = i + 1; + } + } + break; + case ABILITYEFFECT_COUNT_OTHER_SIZE: // 16 + //_08019D5C + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) != side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 + //_08019DB8 + side = GetBankSide(bank); + for (i = 0; i < gNoOfAllBanks; i++) + { + if (GetBankSide(i) == side && gBattleMons[i].ability == ability) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + case ABILITYEFFECT_COUNT_ON_FIELD: // 18 + //_08019F44 + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].ability == ability && i != bank) + { + gLastUsedAbility = ability; + effect++; + } + } + break; + } + //_08019F76 + if (effect && caseID < 0xC && gLastUsedAbility != 0xFF) + RecordAbilityBattle(bank, gLastUsedAbility); + } + + return effect; +} + +void BattleScriptExecute(u8* BS_ptr) +{ + gBattlescriptCurrInstr = BS_ptr; + B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; + gBattleMainFunc = RunBattleScriptCommands_PopCallbacksStack; + gCurrentActionFuncId = 0; +} + +void BattleScriptPushCursorAndCallback(u8* BS_ptr) +{ + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BS_ptr; + B_FUNCTION_STACK->ptr[B_FUNCTION_STACK->size++] = gBattleMainFunc; + gBattleMainFunc = RunBattleScriptCommands; +} + +enum +{ + ITEM_NO_EFFECT, // 0 + ITEM_STATUS_CHANGE, // 1 + ITEM_EFFECT_OTHER, // 2 + ITEM_PP_CHANGE, // 3 + ITEM_HP_CHANGE, // 4 + ITEM_STATS_CHANGE, // 5 +}; + +enum +{ + FLAVOR_SPICY, // 0 + FLAVOR_DRY, // 1 + FLAVOR_SWEET, // 2 + FLAVOR_BITTER, // 3 + FLAVOR_SOUR, // 4 +}; + +u8 ItemBattleEffects(u8 caseID, u8 bank, bool8 moveTurn) +{ + int i = 0; + u8 effect = ITEM_NO_EFFECT; + u8 changedPP = 0; + u8 bankHoldEffect, atkHoldEffect, defHoldEffect; + u8 bankQuality, atkQuality, defQuality; + u16 atkItem, defItem; + + gLastUsedItem = gBattleMons[bank].item; + if (gLastUsedItem == ITEM_ENIGMA_BERRY) + { + bankHoldEffect = gEnigmaBerries[bank].holdEffect; + bankQuality = gEnigmaBerries[bank].holdEffectParam; + } + else + { + bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + } + + atkItem = gBattleMons[gBankAttacker].item; + if (atkItem == ITEM_ENIGMA_BERRY) + { + atkHoldEffect = gEnigmaBerries[gBankAttacker].holdEffect; + atkQuality = gEnigmaBerries[gBankAttacker].holdEffectParam; + } + else + { + atkHoldEffect = ItemId_GetHoldEffect(atkItem); + atkQuality = ItemId_GetHoldEffectParam(atkItem); + } + + // def variables are unused + defItem = gBattleMons[gBankTarget].item; + if (defItem == ITEM_ENIGMA_BERRY) + { + defHoldEffect = gEnigmaBerries[gBankTarget].holdEffect; + defQuality = gEnigmaBerries[gBankTarget].holdEffectParam; + } + else + { + defHoldEffect = ItemId_GetHoldEffect(defItem); + defQuality = ItemId_GetHoldEffectParam(defItem); + } + + switch (caseID) + { + case 0: + switch (bankHoldEffect) + { + case HOLD_EFFECT_DOUBLE_PRIZE: + BATTLE_STRUCT->moneyMultiplier = 2; + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + BATTLE_STRUCT->scriptingActive = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + BattleScriptExecute(BattleScript_WhiteHerbEnd2); + } + break; + } + break; + case 1: + if (gBattleMons[bank].hp) + { + switch (bankHoldEffect) + { + case HOLD_EFFECT_RESTORE_HP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleMoveDamage = bankQuality; + if (gBattleMons[bank].hp + bankQuality > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = 4; + } + break; + case HOLD_EFFECT_RESTORE_PP: + if (!moveTurn) + { + struct Pokemon* poke; + u8 ppBonuses; + u16 move; + + if (GetBankSide(bank) == 0) + poke = &gPlayerParty[gBattlePartyID[bank]]; + else + poke = &gEnemyParty[gBattlePartyID[bank]]; + for (i = 0; i < 4; i++) + { + move = GetMonData(poke, MON_DATA_MOVE1 + i); + changedPP = GetMonData(poke, MON_DATA_PP1 + i); + ppBonuses = GetMonData(poke, MON_DATA_PP_BONUSES); + if (move && changedPP == 0) + break; + } + if (i != 4) + { + u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); + if (changedPP + bankQuality > maxPP) + changedPP = maxPP; + else + changedPP = changedPP + bankQuality; + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 2; + gBattleTextBuff1[2] = move; + gBattleTextBuff1[3] = move >> 8; + gBattleTextBuff1[4] = 0xFF; + BattleScriptExecute(BattleScript_BerryPPHealEnd2); + EmitSetMonData(0, i + REQUEST_PPMOVE1_BATTLE, 0, 1, &changedPP); + MarkBufferBankForExecution(gActiveBank); + effect = ITEM_PP_CHANGE; + } + } + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + BATTLE_STRUCT->scriptingActive = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + BattleScriptExecute(BattleScript_WhiteHerbEnd2); + } + break; + case HOLD_EFFECT_LEFTOVERS: + if (gBattleMons[bank].hp < gBattleMons[bank].maxHP && !moveTurn) + { + gBattleMoveDamage = gBattleMons[bank].maxHP / 16; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + BattleScriptExecute(BattleScript_ItemHealHP_End2); + effect = ITEM_HP_CHANGE; + RecordItemBattle(bank, bankHoldEffect); + } + break; + // nice copy/paste there gamefreak, making a function for confuse berries was too much eh? + case HOLD_EFFECT_CONFUSE_SPICY: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SPICY; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SPICY) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_DRY: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_DRY; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_DRY) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_SWEET: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SWEET; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SWEET) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_BITTER: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_BITTER; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_BITTER) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + case HOLD_EFFECT_CONFUSE_SOUR: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / 2 && !moveTurn) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 8; + gBattleTextBuff1[2] = FLAVOR_SOUR; + gBattleTextBuff1[3] = EOS; + gBattleMoveDamage = gBattleMons[bank].maxHP / bankQuality; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = 1; + if (gBattleMons[bank].hp + gBattleMoveDamage > gBattleMons[bank].maxHP) + gBattleMoveDamage = gBattleMons[bank].maxHP - gBattleMons[bank].hp; + gBattleMoveDamage *= -1; + if (GetPokeFlavourRelation(gBattleMons[bank].personality, FLAVOR_SOUR) < 0) + BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); + else + BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); + effect = ITEM_HP_CHANGE; + } + break; + // copy/paste again, smh + case HOLD_EFFECT_ATTACK_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_ATK] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_ATK; + gBattleTextBuff1[3] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 0; + gBattleTextBuff2[2] = 0xD2; + gBattleTextBuff2[3] = 0xD2 >> 8; + gBattleTextBuff2[4] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_ATK; + BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_ATK; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_DEFENSE_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_DEF] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_DEF; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_DEF; + BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_DEF; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SPEED_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPEED] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPEED; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPEED; + BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPEED; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SP_ATTACK_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPATK] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPATK; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPATK; + BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPATK; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_SP_DEFENSE_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && gBattleMons[bank].statStages[STAT_STAGE_SPDEF] < 0xC) + { + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = STAT_STAGE_SPDEF; + gBattleTextBuff1[3] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x10 + STAT_STAGE_SPDEF; + BATTLE_STRUCT->animArg1 = 0xE + STAT_STAGE_SPDEF; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + break; + case HOLD_EFFECT_CRITICAL_UP: + if (gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality && !moveTurn && !(gBattleMons[bank].status2 & STATUS2_FOCUS_ENERGY)) + { + gBattleMons[bank].status2 |= STATUS2_FOCUS_ENERGY; + BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_RANDOM_STAT_UP: + if (!moveTurn && gBattleMons[bank].hp <= gBattleMons[bank].maxHP / bankQuality) + { + for (i = 0; i < 5; i++) + { + if (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] < 0xC) + break; + } + if (i != 5) + { + do + { + i = Random() % 5; + } while (gBattleMons[bank].statStages[STAT_STAGE_ATK + i] == 0xC); + + gBattleTextBuff1[0] = 0xFD; + gBattleTextBuff1[1] = 5; + gBattleTextBuff1[2] = i + 1; + gBattleTextBuff1[3] = EOS; + + gBattleTextBuff2[0] = 0xFD; + gBattleTextBuff2[1] = 0; + gBattleTextBuff2[2] = 0xD1; + gBattleTextBuff2[3] = 0xD1 >> 8; + gBattleTextBuff2[4] = 0; + gBattleTextBuff2[5] = 0xD2; + gBattleTextBuff2[6] = 0xD2 >> 8; + gBattleTextBuff2[7] = EOS; + + gEffectBank = bank; + BATTLE_STRUCT->statChanger = 0x21 + i; + BATTLE_STRUCT->animArg1 = 0x21 + i + 6; + BATTLE_STRUCT->animArg2 = 0; + BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); + effect = ITEM_STATS_CHANGE; + } + } + break; + case HOLD_EFFECT_CURE_PAR: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + BattleScriptExecute(BattleScript_BerryCurePrlzEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_PSN: + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + BattleScriptExecute(BattleScript_BerryCurePsnEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_BRN: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + gBattleMons[bank].status1 &= ~(STATUS_BURN); + BattleScriptExecute(BattleScript_BerryCureBrnEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_FRZ: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + BattleScriptExecute(BattleScript_BerryCureFrzEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_SLP: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptExecute(BattleScript_BerryCureSlpEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_CONFUSION: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptExecute(BattleScript_BerryCureConfusionEnd2); + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_STATUS: + if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + i = 0; + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + i++; + } + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + i++; + } + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + i++; + } + if (!(i > 1)) + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + else + gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleMons[bank].status1 = 0; + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_ATTRACT: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + effect = ITEM_EFFECT_OTHER; + } + break; + } + if (effect) + { + BATTLE_STRUCT->scriptingActive = bank; + gStringBank = bank; + gActiveBank = gBankAttacker = bank; + switch (effect) + { + case ITEM_STATUS_CHANGE: + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[bank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + case ITEM_PP_CHANGE: + if (!(gBattleMons[bank].status2 & STATUS2_TRANSFORMED) && !(gDisableStructs[bank].unk18_b & gBitTable[i])) + gBattleMons[bank].pp[i] = changedPP; + break; + } + } + } + break; + case 2: + break; + case 3: + for (bank = 0; bank < gNoOfAllBanks; bank++) + { + gLastUsedItem = gBattleMons[bank].item; + if (gBattleMons[bank].item == ITEM_ENIGMA_BERRY) + { + bankHoldEffect = gEnigmaBerries[bank].holdEffect; + bankQuality = gEnigmaBerries[bank].holdEffectParam; + } + else + { + bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + } + switch (bankHoldEffect) + { + case HOLD_EFFECT_CURE_PAR: + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + gBattleMons[bank].status1 &= ~(STATUS_PARALYSIS); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureParRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_PSN: + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + gBattleMons[bank].status1 &= ~(STATUS_PSN_ANY | STATUS_TOXIC_COUNTER); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCurePsnRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_BRN: + if (gBattleMons[bank].status1 & STATUS_BURN) + { + gBattleMons[bank].status1 &= ~(STATUS_BURN); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureBrnRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_FRZ: + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + gBattleMons[bank].status1 &= ~(STATUS_FREEZE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureFrzRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_SLP: + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status1 &= ~(STATUS_SLEEP); + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_CURE_CONFUSION: + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureConfusionRet; + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_ATTRACT: + if (gBattleMons[bank].status2 & STATUS2_INFATUATION) + { + gBattleMons[bank].status2 &= ~(STATUS2_INFATUATION); + StringCopy(gBattleTextBuff1, gStatusConditionString_LoveJpn); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; + effect = ITEM_EFFECT_OTHER; + } + break; + case HOLD_EFFECT_CURE_STATUS: + if (gBattleMons[bank].status1 & STATUS_ANY || gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + if (gBattleMons[bank].status1 & STATUS_PSN_ANY) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + } + if (gBattleMons[bank].status1 & STATUS_SLEEP) + { + gBattleMons[bank].status2 &= ~(STATUS2_NIGHTMARE); + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + } + if (gBattleMons[bank].status1 & STATUS_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + } + if (gBattleMons[bank].status1 & STATUS_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + } + if (gBattleMons[bank].status1 & STATUS_FREEZE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + } + if (gBattleMons[bank].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + } + gBattleMons[bank].status1 = 0; + gBattleMons[bank].status2 &= ~(STATUS2_CONFUSION); + BattleScriptPushCursor(); + gBattleCommunication[MULTISTRING_CHOOSER] = 0; + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; + effect = ITEM_STATUS_CHANGE; + } + break; + case HOLD_EFFECT_RESTORE_STATS: + for (i = 0; i < 8; i++) + { + if (gBattleMons[bank].statStages[i] < 6) + { + gBattleMons[bank].statStages[i] = 6; + effect = ITEM_STATS_CHANGE; + } + } + if (effect) + { + BATTLE_STRUCT->scriptingActive = bank; + gStringBank = bank; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_WhiteHerbRet; + return effect; // unnecessary return + } + break; + } + if (effect) + { + BATTLE_STRUCT->scriptingActive = bank; + gStringBank = bank; + gActiveBank = bank; + EmitSetMonData(0, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[gActiveBank].status1); + MarkBufferBankForExecution(gActiveBank); + break; + } + } + break; + case 4: + if (gBattleMoveDamage) + { + switch (atkHoldEffect) + { + case HOLD_EFFECT_FLINCH: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && (gSpecialStatuses[gBankTarget].moveturnLostHP_physical || gSpecialStatuses[gBankTarget].moveturnLostHP_special) + && (Random() % 100) < bankQuality + && gBattleMoves[gCurrentMove].flags & FLAG_KINGSROCK_AFFECTED + && gBattleMons[gBankTarget].hp) + { + gBattleCommunication[MOVE_EFFECT_BYTE] = 8; + BattleScriptPushCursor(); + SetMoveEffect(0, 0); + BattleScriptPop(); + } + break; + case HOLD_EFFECT_SHELL_BELL: + if (!(gBattleMoveFlags & MOVESTATUS_NOEFFECT) + && gSpecialStatuses[gBankTarget].moveturnLostHP != 0 + && gSpecialStatuses[gBankTarget].moveturnLostHP != 0xFFFF + && gBankAttacker != gBankTarget + && gBattleMons[gBankAttacker].hp != gBattleMons[gBankAttacker].maxHP + && gBattleMons[gBankAttacker].hp != 0) + { + gLastUsedItem = atkItem; + gStringBank = gBankAttacker; + BATTLE_STRUCT->scriptingActive = gBankAttacker; + gBattleMoveDamage = (gSpecialStatuses[gBankTarget].moveturnLostHP / atkQuality) * -1; + if (gBattleMoveDamage == 0) + gBattleMoveDamage = -1; + gSpecialStatuses[gBankTarget].moveturnLostHP = 0; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; + effect++; + } + break; + } + } + break; + } + + return effect; +} + +struct CombinedMove +{ + u16 move1; + u16 move2; + u16 newMove; +}; + +static const struct CombinedMove sCombinedMoves[2] = +{ + {MOVE_EMBER, MOVE_GUST, MOVE_HEAT_WAVE}, + {0xFFFF, 0xFFFF, 0xFFFF} +}; + +void unref_sub_801B40C(void) +{ + int i = 0; + if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE) + { + do + { + u8 bank = 0; + do + { + u8 absent = gAbsentBankFlags; + if (gBitTable[bank] & absent || absent & gBitTable[bank + 2]) + bank++; + else + { + if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank + 2]) + { + gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank) | ((bank + 2) << 4); + gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + } + if (sCombinedMoves[i].move1 == gChosenMovesByBanks[bank + 2] && sCombinedMoves[i].move2 == gChosenMovesByBanks[bank]) + { + gSideTimers[GetBankIdentity(bank) & 1].field3 = (bank + 2) | ((bank) << 4); + gSideTimers[GetBankIdentity(bank) & 1].field4 = sCombinedMoves[i].newMove; + gSideAffecting[GetBankIdentity(bank) & 1] |= SIDE_STATUS_X4; + } + bank++; + } + } while (bank < 2); + i++; + } while (sCombinedMoves[i].move1 != 0xFFFF); + } +} + +void sub_801B594(void) +{ + if (gBattleExecBuffer == 0) + gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); +} + +u8 GetMoveTarget(u16 move, u8 useMoveTarget) //get move target +{ + u8 targetBank = 0; + u8 moveTarget; + u8 side; + + if (useMoveTarget) + moveTarget = useMoveTarget - 1; + else + moveTarget = gBattleMoves[move].target; + + switch (moveTarget) + { + case 0: + side = GetBankSide(gBankAttacker) ^ 1; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; + else + { + side = GetBankSide(gBankAttacker); + do + { + targetBank = Random() % gNoOfAllBanks; + } while (targetBank == gBankAttacker || side == GetBankSide(targetBank) || gAbsentBankFlags & gBitTable[targetBank]); + if (gBattleMoves[move].type == TYPE_ELECTRIC + && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIZE, gBankAttacker, ABILITY_LIGHTNING_ROD, 0, 0) + && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) + { + targetBank ^= 2; + RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); + gSpecialStatuses[targetBank].lightningRodRedirected = 1; + } + } + break; + case 1: + case 8: + case 32: + case 64: + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank ^= 2; + break; + case 4: + side = GetBankSide(gBankAttacker) ^ 1; + if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) + targetBank = gSideTimers[side].followmeTarget; + else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & 4) + { + if (GetBankSide(gBankAttacker) == 0) + { + if (Random() & 1) + targetBank = GetBankByIdentity(1); + else + targetBank = GetBankByIdentity(3); + } + else + { + if (Random() & 1) + targetBank = GetBankByIdentity(0); + else + targetBank = GetBankByIdentity(2); + } + if (gAbsentBankFlags & gBitTable[targetBank]) + targetBank ^= 2; + } + else + targetBank = GetBankByIdentity((GetBankIdentity(gBankAttacker) & 1) ^ 1); + break; + case 2: + case 16: + targetBank = gBankAttacker; + break; + } + ewram16010arr(gBankAttacker) = targetBank; + return targetBank; +} + +u8 IsMonDisobedient(void) +{ + u8 obedienceLevel; + s32 rnd; + s32 calc; + + if (gBattleTypeFlags & BATTLE_TYPE_LINK + || GetBankSide(gBankAttacker) == 1 + || !IsOtherTrainer(gBattleMons[gBankAttacker].otId, gBattleMons[gBankAttacker].otName) + || FlagGet(FLAG_BADGE08_GET)) + return 0; + + obedienceLevel = 10; + if (FlagGet(FLAG_BADGE02_GET)) + obedienceLevel = 30; + if (FlagGet(FLAG_BADGE04_GET)) + obedienceLevel = 50; + if (FlagGet(FLAG_BADGE06_GET)) + obedienceLevel = 70; + + if (gBattleMons[gBankAttacker].level <= obedienceLevel) + return 0; + rnd = (Random() & 255); + calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + if (calc < obedienceLevel) + return 0; + + // is not obedient + if (gCurrentMove == MOVE_RAGE) + gBattleMons[gBankAttacker].status2 &= ~(STATUS2_RAGE); + if (gBattleMons[gBankAttacker].status1 & STATUS_SLEEP && (gCurrentMove == MOVE_SNORE || gCurrentMove == MOVE_SLEEP_TALK)) + { + gBattlescriptCurrInstr = gUnknown_081D995F; + return 1; + } + + rnd = (Random() & 255); + calc = (gBattleMons[gBankAttacker].level + obedienceLevel) * rnd >> 8; + if (calc < obedienceLevel) + { + calc = CheckMoveLimitations(gBankAttacker, gBitTable[gCurrMovePos], 0xFF); + if (calc == 0xF) // all moves cannot be used + { + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + return 1; + } + else // use a random move + { + do + { + gCurrMovePos = gUnknown_02024BE5 = Random() & 3; + } while (gBitTable[gCurrMovePos] & calc); + gRandomMove = gBattleMons[gBankAttacker].moves[gCurrMovePos]; + gBattleCommunication[3] = 0; + gDynamicBasePower = 0; + BATTLE_STRUCT->dynamicMoveType = 0; + gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; + gBankTarget = GetMoveTarget(gRandomMove, 0); + gHitMarker |= HITMARKER_x200000; + return 2; + } + } + else + { + obedienceLevel = gBattleMons[gBankAttacker].level - obedienceLevel; + + calc = (Random() & 255); + if (calc < obedienceLevel && !(gBattleMons[gBankAttacker].status1 & STATUS_ANY) && gBattleMons[gBankAttacker].ability != ABILITY_VITAL_SPIRIT && gBattleMons[gBankAttacker].ability != ABILITY_INSOMNIA) + { + // try putting asleep + int i; + for (i = 0; i < gNoOfAllBanks; i++) + { + if (gBattleMons[i].status2 & STATUS2_UPROAR) + break; + } + if (i == gNoOfAllBanks) + { + gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; + return 1; + } + } + calc -= obedienceLevel; + if (calc < obedienceLevel) + { + gBattleMoveDamage = CalculateBaseDamage(&gBattleMons[gBankAttacker], &gBattleMons[gBankAttacker], MOVE_POUND, 0, 40, 0, gBankAttacker, gBankAttacker); + gBankTarget = gBankAttacker; + gBattlescriptCurrInstr = gUnknown_081D99A0; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + return 2; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = Random() & 3; + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + return 1; + } + } +} diff --git a/src/data/pokemon/trainer_class_lookups.h b/src/data/pokemon/trainer_class_lookups.h index d03038674..9cffca632 100644 --- a/src/data/pokemon/trainer_class_lookups.h +++ b/src/data/pokemon/trainer_class_lookups.h @@ -1,9 +1,5 @@ -// - -// - -#ifndef POKERUBY_FACILITY_CLASS_LOOKUPS_H -#define POKERUBY_FACILITY_CLASS_LOOKUPS_H +#ifndef POKERUBY_TRAINER_CLASS_LOOKUPS_H +#define POKERUBY_TRAINER_CLASS_LOOKUPS_H const u8 gTrainerClassToPicIndex[] = { TRAINER_PIC_ARCHIE, // AQUA_LEADER @@ -165,4 +161,4 @@ const u8 gTrainerClassToNameIndex[] = { TRAINER_CLASS_SIS_AND_BRO // SIS_AND_BRO }; -#endif //POKERUBY_FACILITY_CLASS_LOOKUPS_H +#endif //POKERUBY_TRAINER_CLASS_LOOKUPS_H diff --git a/src/pokemon/pokemon_2.c b/src/pokemon/pokemon_2.c index 1b00ad96e..eb56974cd 100644 --- a/src/pokemon/pokemon_2.c +++ b/src/pokemon/pokemon_2.c @@ -1,5 +1,6 @@ #include "global.h" #include "battle.h" +#include "battle_util.h" #include "data2.h" #include "event_data.h" #include "main.h" diff --git a/src/rom3.c b/src/rom3.c index cdc66989c..11239a681 100644 --- a/src/rom3.c +++ b/src/rom3.c @@ -5,6 +5,7 @@ #include "battle_anim.h" #include "battle_anim_81258BC.h" #include "battle_anim_8137220.h" +#include "battle_util.h" #include "cable_club.h" #include "constants/items.h" #include "link.h" @@ -582,7 +583,7 @@ void Emitcmd1(u8 a, u8 b, u8 c) PrepareBufferDataTransfer(a, gBattleBuffersTransferData, 4); } -void EmitSetAttributes(u8 a, u8 b, u8 c, u8 d, void *e) +void EmitSetMonData(u8 a, u8 b, u8 c, u8 d, void *e) { int i; -- cgit v1.2.3