From d2e47323fe988e430af782c2c10b8e41e7a131b3 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Sun, 1 Jul 2018 11:15:42 +0200 Subject: [PATCH] document frontier related --- asm/battle_frontier_2.s | 6 +- asm/battle_tower.s | 2 +- data/battle_ai_scripts.s | 6 +- data/data2b.s | 4 - include/battle.h | 30 +-- include/battle_util.h | 53 ++-- include/constants/abilities.h | 2 + include/constants/battle.h | 2 +- include/constants/battle_frontier.h | 13 + include/constants/battle_script_commands.h | 2 +- include/constants/moves.h | 2 +- include/constants/trainers.h | 18 +- include/data/battle_moves.h | 2 +- include/data/text/abilities.h | 4 +- include/pokemon.h | 2 +- include/recorded_battle.h | 2 +- src/battle_ai_script_commands.c | 2 +- src/battle_controller_link_partner.c | 9 +- src/battle_controller_opponent.c | 7 +- src/battle_controller_recorded_opponent.c | 1 + src/battle_controllers.c | 14 +- src/battle_gfx_sfx_util.c | 77 +++--- src/battle_interface.c | 6 +- src/battle_main.c | 50 ++-- src/battle_message.c | 3 +- src/battle_script_commands.c | 30 +-- src/battle_tv.c | 8 +- src/battle_util.c | 283 +++++++++++---------- src/pokemon.c | 22 +- src/recorded_battle.c | 116 ++++----- 30 files changed, 402 insertions(+), 376 deletions(-) create mode 100644 include/constants/battle_frontier.h diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index e377c1b2b..586cc8f05 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -19871,8 +19871,8 @@ _081A4C84: .pool thumb_func_end sub_81A4C30 - thumb_func_start sub_81A4CB0 -sub_81A4CB0: @ 81A4CB0 + thumb_func_start GetFrontierBrainTrainerPicIndex +GetFrontierBrainTrainerPicIndex: @ 81A4CB0 push {lr} ldr r0, =gBattleTypeFlags ldr r0, [r0] @@ -19905,7 +19905,7 @@ _081A4CDA: pop {r1} bx r1 .pool - thumb_func_end sub_81A4CB0 + thumb_func_end GetFrontierBrainTrainerPicIndex thumb_func_start GetFrontierBrainTrainerClass GetFrontierBrainTrainerClass: @ 81A4D00 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index c3b82a836..1e07bdb9c 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -1353,7 +1353,7 @@ _08162AD0: ldr r0, =0x000003fe cmp r4, r0 bne _08162AE4 - bl sub_81A4CB0 + bl GetFrontierBrainTrainerPicIndex lsls r0, 24 lsrs r0, 24 b _08162BCA diff --git a/data/battle_ai_scripts.s b/data/battle_ai_scripts.s index 1b4863046..2db1c5728 100644 --- a/data/battle_ai_scripts.s +++ b/data/battle_ai_scripts.s @@ -3382,11 +3382,11 @@ AI_Safari_Flee: flee AI_FirstBattle: - if_hp_equal AI_TARGET, 20, BattleAIScript_82DE34D - if_hp_less_than AI_TARGET, 20, BattleAIScript_82DE34D + if_hp_equal AI_TARGET, 20, AI_FirstBattle_Flee + if_hp_less_than AI_TARGET, 20, AI_FirstBattle_Flee end -BattleAIScript_82DE34D: +AI_FirstBattle_Flee: flee AI_Ret: diff --git a/data/data2b.s b/data/data2b.s index 17a44ecbc..de32e9775 100644 --- a/data/data2b.s +++ b/data/data2b.s @@ -4862,7 +4862,3 @@ gUnknown_0831ACC4:: @ 831ACC4 .align 2 gUnknown_0831ACDC:: @ 831ACDC .4byte gUnknown_0831ACC4 - - .align 2 -gUnknown_0831ACE0:: @ 831ACE0 - .byte 0xe0, 0xf0, 0xf0, 0xe0, 0xe0, 0x00, 0x00, 0x00 diff --git a/include/battle.h b/include/battle.h index 0169dde7c..6e941191f 100644 --- a/include/battle.h +++ b/include/battle.h @@ -16,12 +16,6 @@ #define GET_BATTLER_SIDE(battler) (GetBattlerPosition(battler) & BIT_SIDE) #define GET_BATTLER_SIDE2(battler) (GET_BATTLER_POSITION(battler) & BIT_SIDE) -#define TRAINER_OPPONENT_3FE 0x3FE -#define TRAINER_OPPONENT_C00 0xC00 -#define TRAINER_OPPONENT_800 0x800 -#define STEVEN_PARTNER_ID 0xC03 -#define SECRET_BASE_OPPONENT 0x400 - // Battle Actions // These determine what each battler will do in a turn #define B_ACTION_USE_MOVE 0 @@ -429,7 +423,7 @@ struct BattleTv_Mon struct BattleTv { - struct BattleTv_Mon mon[2][6]; // [side][partyId] + struct BattleTv_Mon mon[2][PARTY_SIZE]; // [side][partyId] struct BattleTv_Position pos[2][2]; // [side][flank] struct BattleTv_Side side[2]; // [side] }; @@ -479,10 +473,10 @@ struct BattleStruct u8 runTries; u8 caughtMonNick[11]; u8 field_78; - u8 field_79; - u8 field_7A; - u8 field_7B; - u8 field_7C; + u8 safariGoNearCounter; + u8 safariPkblThrowCounter; + u8 safariEscapeFactor; + u8 safariCatchFactor; u8 field_7D; u8 field_7E; u8 formToChangeInto; @@ -526,7 +520,7 @@ struct BattleStruct u8 AI_itemFlags[2]; u16 choicedMove[MAX_BATTLERS_COUNT]; u16 changedItems[MAX_BATTLERS_COUNT]; - u8 intimidateBank; + u8 intimidateBattler; u8 switchInItemsCounter; u8 field_DA; u8 turnSideTracker; @@ -611,18 +605,6 @@ struct BattleScripting u8 multiplayerId; }; -enum -{ - BACK_PIC_BRENDAN, - BACK_PIC_MAY, - BACK_PIC_RED, - BACK_PIC_LEAF, - BACK_PIC_RS_BRENDAN, - BACK_PIC_RS_MAY, - BACK_PIC_WALLY, - BACK_PIC_STEVEN -}; - // rom_80A5C6C u8 GetBattlerSide(u8 battler); u8 GetBattlerPosition(u8 bank); diff --git a/include/battle_util.h b/include/battle_util.h index 0b5590011..0531966df 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -8,27 +8,27 @@ #define MOVE_LIMITATION_TAUNT (1 << 4) #define MOVE_LIMITATION_IMPRISION (1 << 5) -#define ABILITYEFFECT_ON_SWITCHIN 0x0 -#define ABILITYEFFECT_ENDTURN 0x1 -#define ABILITYEFFECT_MOVES_BLOCK 0x2 -#define ABILITYEFFECT_ABSORBING 0x3 -#define ABILITYEFFECT_CONTACT 0x4 -#define ABILITYEFFECT_IMMUNITY 0x5 -#define ABILITYEFFECT_FORECAST 0x6 -#define ABILITYEFFECT_SYNCHRONIZE 0x7 -#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 -#define ABILITYEFFECT_INTIMIDATE1 0x9 -#define ABILITYEFFECT_INTIMIDATE2 0xA -#define ABILITYEFFECT_TRACE 0xB -#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC -#define ABILITYEFFECT_CHECK_BANK_SIDE 0xD -#define ABILITYEFFECT_FIELD_SPORT 0xE -#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK 0xF -#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 -#define ABILITYEFFECT_COUNT_BANK_SIDE 0x11 -#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 -#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 -#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF +#define ABILITYEFFECT_ON_SWITCHIN 0x0 +#define ABILITYEFFECT_ENDTURN 0x1 +#define ABILITYEFFECT_MOVES_BLOCK 0x2 +#define ABILITYEFFECT_ABSORBING 0x3 +#define ABILITYEFFECT_CONTACT 0x4 +#define ABILITYEFFECT_IMMUNITY 0x5 +#define ABILITYEFFECT_FORECAST 0x6 +#define ABILITYEFFECT_SYNCHRONIZE 0x7 +#define ABILITYEFFECT_ATK_SYNCHRONIZE 0x8 +#define ABILITYEFFECT_INTIMIDATE1 0x9 +#define ABILITYEFFECT_INTIMIDATE2 0xA +#define ABILITYEFFECT_TRACE 0xB +#define ABILITYEFFECT_CHECK_OTHER_SIDE 0xC +#define ABILITYEFFECT_CHECK_BATTLER_SIDE 0xD +#define ABILITYEFFECT_FIELD_SPORT 0xE +#define ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER 0xF +#define ABILITYEFFECT_COUNT_OTHER_SIDE 0x10 +#define ABILITYEFFECT_COUNT_BATTLER_SIDE 0x11 +#define ABILITYEFFECT_COUNT_ON_FIELD 0x12 +#define ABILITYEFFECT_CHECK_ON_FIELD 0x13 +#define ABILITYEFFECT_SWITCH_IN_WEATHER 0xFF #define ABILITY_ON_OPPOSING_FIELD(battlerId, abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_OTHER_SIDE, battlerId, abilityId, 0, 0)) #define ABILITY_ON_FIELD(abilityId)(AbilityBattleEffects(ABILITYEFFECT_CHECK_ON_FIELD, 0, abilityId, 0, 0)) @@ -39,15 +39,6 @@ #define WEATHER_HAS_EFFECT ((!ABILITY_ON_FIELD(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD(ABILITY_AIR_LOCK))) #define WEATHER_HAS_EFFECT2 ((!ABILITY_ON_FIELD2(ABILITY_CLOUD_NINE) && !ABILITY_ON_FIELD2(ABILITY_AIR_LOCK))) -#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 - u8 GetBattlerForBattleScript(u8 caseId); void PressurePPLose(u8 bankDef, u8 bankAtk, u16 move); void PressurePPLoseOnUsingPerishSong(u8 bankAtk); @@ -74,7 +65,7 @@ bool8 HandleWishPerishSongOnTurnEnd(void); bool8 HandleFaintedMonActions(void); void TryClearRageStatuses(void); u8 AtkCanceller_UnableToUseMove(void); -bool8 sub_80423F4(u8 battlerId, u8 r1, u8 r2); +bool8 HasNoMonsToSwitch(u8 battlerId, u8 r1, u8 r2); u8 CastformDataTypeChange(u8 battlerId); u8 AbilityBattleEffects(u8 caseID, u8 battlerId, u8 ability, u8 special, u16 moveArg); void BattleScriptExecute(const u8* BS_ptr); diff --git a/include/constants/abilities.h b/include/constants/abilities.h index 4e2c4056c..4ad54c86f 100644 --- a/include/constants/abilities.h +++ b/include/constants/abilities.h @@ -80,4 +80,6 @@ #define ABILITY_CACOPHONY 76 #define ABILITY_AIR_LOCK 77 +#define ABILITIES_COUNT 78 + #endif // GUARD_CONSTANTS_ABILITIES_H diff --git a/include/constants/battle.h b/include/constants/battle.h index 5a09067ad..b3f9d919a 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -130,7 +130,7 @@ #define STATUS2_TORMENT 0x80000000 // Seems like per-battler statuses. Not quite sure how to categorize these -#define STATUS3_LEECHSEED_BANK 0x3 +#define STATUS3_LEECHSEED_BATTLER 0x3 #define STATUS3_LEECHSEED 0x4 #define STATUS3_ALWAYS_HITS 0x18 // two bits #define STATUS3_PERISH_SONG 0x20 diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h new file mode 100644 index 000000000..4145805c4 --- /dev/null +++ b/include/constants/battle_frontier.h @@ -0,0 +1,13 @@ +#ifndef GUARD_CONSTANTS_BATTLE_FRONTIER_H +#define GUARD_CONSTANTS_BATTLE_FRONTIER_H + +// Battle Frontier facility ids. +#define FRONTIER_FACILITY_TOWER 0 +#define FRONTIER_FACILITY_DOME 1 +#define FRONTIER_FACILITY_PALACE 2 +#define FRONTIER_FACILITY_ARENA 3 +#define FRONTIER_FACILITY_FACTORY 4 +#define FRONTIER_FACILITY_PIKE 5 +#define FRONTIER_FACILITY_PYRAMID 6 + +#endif // GUARD_CONSTANTS_BATTLE_FRONTIER_H diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index a1a4ed50a..c820a1114 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -37,7 +37,7 @@ #define BS_ATTACKER 1 #define BS_EFFECT_BATTLER 2 #define BS_FAINTED 3 -#define BS_BANK_0 7 +#define BS_BATTLER_0 7 #define BS_ATTACKER_WITH_PARTNER 4 // for atk98_status_icon_update #define BS_ATTACKER_SIDE 8 // for atk1E_jumpifability #define BS_NOT_ATTACKER_SIDE 9 // for atk1E_jumpifability diff --git a/include/constants/moves.h b/include/constants/moves.h index f3a3acb90..85c02e3da 100644 --- a/include/constants/moves.h +++ b/include/constants/moves.h @@ -357,6 +357,6 @@ #define MOVE_DOOM_DESIRE 353 #define MOVE_PSYCHO_BOOST 354 -#define LAST_MOVE_INDEX MOVE_PSYCHO_BOOST +#define MOVES_COUNT 355 #endif // GUARD_CONSTANTS_MOVES_H diff --git a/include/constants/trainers.h b/include/constants/trainers.h index a017b6975..eb695e4ab 100644 --- a/include/constants/trainers.h +++ b/include/constants/trainers.h @@ -857,7 +857,14 @@ #define TRAINER_BRENDAN_16 853 #define TRAINER_MAY_16 854 -#define NO_OF_TRAINERS 854 +#define TRAINERS_COUNT 855 + +// Special Trainer Ids. +#define TRAINER_FRONTIER_BRAIN 1022 +#define TRAINER_SECRET_BASE 1024 +#define TRAINER_LINK_OPPONENT 0x800 +#define TRAINER_OPPONENT_C00 0xC00 +#define TRAINER_STEVEN_PARTNER 0xC03 #define TRAINER_PIC_HIKER 0 #define TRAINER_PIC_AQUA_GRUNT_M 1 @@ -953,6 +960,15 @@ #define TRAINER_PIC_RUBY_SAPPHIRE_BRENDAN 91 #define TRAINER_PIC_RUBY_SAPPHIRE_MAY 92 +#define TRAINER_BACK_PIC_BRENDAN 0 +#define TRAINER_BACK_PIC_MAY 1 +#define TRAINER_BACK_PIC_RED 2 +#define TRAINER_BACK_PIC_LEAF 3 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN 4 +#define TRAINER_BACK_PIC_RUBY_SAPPHIRE_MAY 5 +#define TRAINER_BACK_PIC_WALLY 6 +#define TRAINER_BACK_PIC_STEVEN 7 + #define FACILITY_CLASS_HIKER 0x0 #define FACILITY_CLASS_TEAM_AQUA_1 0x1 #define FACILITY_CLASS_PKMN_BREEDER_1 0x2 diff --git a/include/data/battle_moves.h b/include/data/battle_moves.h index 6489fe07f..00a6f7fdb 100644 --- a/include/data/battle_moves.h +++ b/include/data/battle_moves.h @@ -1,7 +1,7 @@ #ifndef GUARD_DATA_BATTLE_MOVES #define GUARD_DATA_BATTLE_MOVES -const struct BattleMove gBattleMoves[LAST_MOVE_INDEX + 1] = +const struct BattleMove gBattleMoves[MOVES_COUNT] = { { // MOVE_NONE .effect = EFFECT_HIT, diff --git a/include/data/text/abilities.h b/include/data/text/abilities.h index 2efd76afc..3a1e989d2 100644 --- a/include/data/text/abilities.h +++ b/include/data/text/abilities.h @@ -80,7 +80,7 @@ static const u8 gShellArmorAbilityDescription[] = _("Blocks critical hits."); static const u8 gCacophonyAbilityDescription[] = _("Avoids sound-based moves."); static const u8 gAirLockAbilityDescription[] = _("Negates weather effects."); -const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1] = +const u8 gAbilityNames[ABILITIES_COUNT][ABILITY_NAME_LENGTH + 1] = { _("-------"), _("STENCH"), @@ -162,7 +162,7 @@ const u8 gAbilityNames[][ABILITY_NAME_LENGTH + 1] = _("AIR LOCK"), }; -const u8 *const gAbilityDescriptionPointers[] = +const u8 *const gAbilityDescriptionPointers[ABILITIES_COUNT] = { gNoneAbilityDescription, gStenchAbilityDescription, diff --git a/include/pokemon.h b/include/pokemon.h index 37028821a..f928243d0 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -556,7 +556,7 @@ void sub_806D544(u16 species, u32 personality, u8 *dest); void DrawSpindaSpots(u16 species, u32 personality, u8 *dest, u8 a4); void EvolutionRenameMon(struct Pokemon *mon, u16 oldSpecies, u16 newSpecies); bool8 sub_806D7EC(void); -bool16 sub_806D82C(u8 id); +bool16 GetLinkTrainerFlankId(u8 id); s32 GetBattlerMultiplayerId(u16 a1); u8 GetTrainerEncounterMusicId(u16 trainerOpponentId); u16 ModifyStatByNature(u8 nature, u16 n, u8 statIndex); diff --git a/include/recorded_battle.h b/include/recorded_battle.h index 8b1fa258d..81c88a15e 100644 --- a/include/recorded_battle.h +++ b/include/recorded_battle.h @@ -16,7 +16,7 @@ void sub_81851A8(u8 *arg0); bool32 CanCopyRecordedBattleSaveData(void); u32 MoveRecordedBattleToSaveData(void); void PlayRecordedBattle(void (*CB2_After)(void)); -u8 sub_8185EA0(void); +u8 GetRecordedBattleFrontierFacility(void); u8 sub_8185EAC(void); void RecordedBattle_SaveParties(void); u8 GetActiveBattlerLinkPlayerGender(void); diff --git a/src/battle_ai_script_commands.c b/src/battle_ai_script_commands.c index 131598985..e82d22576 100644 --- a/src/battle_ai_script_commands.c +++ b/src/battle_ai_script_commands.c @@ -1969,7 +1969,7 @@ static void BattleAICmd_flee(void) static void BattleAICmd_if_random_safari_flee(void) { - u8 safariFleeRate = gBattleStruct->field_7B * 5; // Safari flee rate, from 0-20. + u8 safariFleeRate = gBattleStruct->safariEscapeFactor * 5; // Safari flee rate, from 0-20. if ((u8)(Random() % 100) < safariFleeRate) gAIScriptPtr = T1_READ_PTR(gAIScriptPtr + 1); diff --git a/src/battle_controller_link_partner.c b/src/battle_controller_link_partner.c index be9609e62..a88c4a076 100644 --- a/src/battle_controller_link_partner.c +++ b/src/battle_controller_link_partner.c @@ -12,6 +12,7 @@ #include "util.h" #include "main.h" #include "constants/songs.h" +#include "constants/trainers.h" #include "sound.h" #include "window.h" #include "m4a.h" @@ -1133,12 +1134,12 @@ static void LinkPartnerHandleDrawTrainerPic(void) if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RED; } else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; } else { @@ -1545,12 +1546,12 @@ static void LinkPartnerHandleIntroTrainerBallThrow(void) if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_FIRE_RED || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_LEAF_GREEN) { - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RED; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RED; } else if ((gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_RUBY || (gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].version & 0xFF) == VERSION_SAPPHIRE) { - trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + BACK_PIC_RS_BRENDAN; + trainerPicId = gLinkPlayers[GetBattlerMultiplayerId(gActiveBattler)].gender + TRAINER_BACK_PIC_RUBY_SAPPHIRE_BRENDAN; } else { diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index c37423a72..2af17d32e 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -16,6 +16,7 @@ #include "constants/songs.h" #include "sound.h" #include "constants/moves.h" +#include "constants/trainers.h" #include "window.h" #include "m4a.h" #include "palette.h" @@ -39,7 +40,7 @@ extern const struct CompressedSpritePalette gTrainerFrontPicPaletteTable[]; extern void sub_8172EF0(u8 battlerId, struct Pokemon *mon); extern void sub_806A068(u16, u8); extern void sub_81A57E4(u8 battlerId, u16 stringId); -extern u8 sub_81A4CB0(void); +extern u8 GetFrontierBrainTrainerPicIndex(void); extern u8 sub_81D5588(u16 trainerId); extern u8 GetFrontierTrainerFrontSpriteId(u16 trainerId); extern u8 GetEreaderTrainerFrontSpriteId(void); @@ -1234,7 +1235,7 @@ static void OpponentHandleDrawTrainerPic(void) } else if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) { - trainerPicId = sub_81A4CB0(); + trainerPicId = GetFrontierBrainTrainerPicIndex(); } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { @@ -1318,7 +1319,7 @@ static void OpponentHandleTrainerSlide(void) } else if (gTrainerBattleOpponent_A == TRAINER_FRONTIER_BRAIN) { - trainerPicId = sub_81A4CB0(); + trainerPicId = GetFrontierBrainTrainerPicIndex(); } else if (gBattleTypeFlags & BATTLE_TYPE_x4000000) { diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index 4b44116dd..1fd1deebf 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -13,6 +13,7 @@ #include "util.h" #include "main.h" #include "constants/songs.h" +#include "constants/trainers.h" #include "sound.h" #include "window.h" #include "m4a.h" diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 4da941ab0..01ad750db 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -1082,14 +1082,14 @@ void BtlController_EmitMoveAnimation(u8 bufferId, u16 move, u8 turnOfMove, u16 m void BtlController_EmitPrintString(u8 bufferId, u16 stringID) { s32 i; - struct StringInfoBattle* stringInfo; + struct BattleMsgData* stringInfo; sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRING; sBattleBuffersTransferData[1] = gBattleOutcome; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; - stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]); + stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; @@ -1097,7 +1097,7 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->scrActive = gBattleScripting.battler; stringInfo->unk1605E = gBattleStruct->field_52; stringInfo->hpScale = gBattleStruct->hpScale; - stringInfo->StringBank = gPotentialItemEffectBattler; + stringInfo->itemEffectBattler = gPotentialItemEffectBattler; stringInfo->moveType = gBattleMoves[gCurrentMove].type; for (i = 0; i < MAX_BATTLERS_COUNT; i++) @@ -1108,20 +1108,20 @@ void BtlController_EmitPrintString(u8 bufferId, u16 stringID) stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; } - PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); + PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4); } void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) { s32 i; - struct StringInfoBattle *stringInfo; + struct BattleMsgData *stringInfo; sBattleBuffersTransferData[0] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[1] = CONTROLLER_PRINTSTRINGPLAYERONLY; sBattleBuffersTransferData[2] = stringID; sBattleBuffersTransferData[3] = (stringID & 0xFF00) >> 8; - stringInfo = (struct StringInfoBattle*)(&sBattleBuffersTransferData[4]); + stringInfo = (struct BattleMsgData*)(&sBattleBuffersTransferData[4]); stringInfo->currentMove = gCurrentMove; stringInfo->originallyUsedMove = gChosenMove; stringInfo->lastItem = gLastUsedItem; @@ -1137,7 +1137,7 @@ void BtlController_EmitPrintSelectionString(u8 bufferId, u16 stringID) stringInfo->textBuffs[1][i] = gBattleTextBuff2[i]; stringInfo->textBuffs[2][i] = gBattleTextBuff3[i]; } - PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct StringInfoBattle) + 4); + PrepareBufferDataTransfer(bufferId, sBattleBuffersTransferData, sizeof(struct BattleMsgData) + 4); } void BtlController_EmitChooseAction(u8 bufferId, u8 arg1, u16 arg2) diff --git a/src/battle_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index 47af1b9dd..8f17d488e 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -70,45 +70,45 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId); static void ClearSpritesBattlerHealthboxAnimData(void); // const rom data -static const struct CompressedSpriteSheet gUnknown_0832C0D0 = +static const struct CompressedSpriteSheet sSpriteSheet_SinglesPlayerHealthbox = { gUnknown_08C1F1C8, 0x1000, TAG_HEALTHBOX_PLAYER1_TILE }; -static const struct CompressedSpriteSheet gUnknown_0832C0D8 = +static const struct CompressedSpriteSheet sSpriteSheet_SinglesOpponentHealthbox = { gUnknown_08C1F46C, 0x1000, TAG_HEALTHBOX_OPPONENT1_TILE }; -static const struct CompressedSpriteSheet gUnknown_0832C0E0[2] = +static const struct CompressedSpriteSheet sSpriteSheets_DoublesPlayerHealthbox[2] = { {gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER1_TILE}, {gUnknown_08C1F5E8, 0x800, TAG_HEALTHBOX_PLAYER2_TILE} }; -static const struct CompressedSpriteSheet gUnknown_0832C0F0[2] = +static const struct CompressedSpriteSheet sSpriteSheets_DoublesOpponentHealthbox[2] = { {gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT1_TILE}, {gUnknown_08C1F76C, 0x800, TAG_HEALTHBOX_OPPONENT2_TILE} }; -static const struct CompressedSpriteSheet gUnknown_0832C100 = +static const struct CompressedSpriteSheet sSpriteSheet_SafariHealthbox = { gUnknown_08C1F8E8, 0x1000, TAG_HEALTHBOX_SAFARI_TILE }; -static const struct CompressedSpriteSheet gUnknown_0832C108[MAX_BATTLERS_COUNT] = +static const struct CompressedSpriteSheet sSpriteSheets_HealthBar[MAX_BATTLERS_COUNT] = { - {gBlankGfxCompressed, 0x0100, 0xd704}, - {gBlankGfxCompressed, 0x0120, 0xd705}, - {gBlankGfxCompressed, 0x0100, 0xd706}, - {gBlankGfxCompressed, 0x0120, 0xd707} + {gBlankGfxCompressed, 0x0100, TAG_HEALTHBAR_PLAYER1_TILE}, + {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT1_TILE}, + {gBlankGfxCompressed, 0x0100, TAG_HEALTHBAR_PLAYER2_TILE}, + {gBlankGfxCompressed, 0x0120, TAG_HEALTHBAR_OPPONENT2_TILE} }; -static const struct SpritePalette gUnknown_0832C128[2] = +static const struct SpritePalette sSpritePalettes_HealthBoxHealthBar[2] = { {gBattleInterface_BallStatusBarPal, TAG_HEALTHBOX_PAL}, - {gBattleInterface_BallDisplayPal, 0xd704} + {gBattleInterface_BallDisplayPal, TAG_HEALTHBAR_PAL} }; // code @@ -499,7 +499,7 @@ static void Task_ClearBitWhenSpecialAnimDone(u8 taskId) #undef tBattlerId -// great function to include newly added moves that don't have animation yet +// Great function to include newly added moves that don't have animation yet. bool8 IsMoveWithoutAnimation(u16 moveId, u8 animationTurn) { return FALSE; @@ -679,29 +679,30 @@ void FreeTrainerFrontPicPalette(u16 frontPicId) FreeSpritePaletteByTag(gTrainerFrontPicPaletteTable[frontPicId].tag); } -void sub_805DFFC(void) +// Unused. +void BattleLoadAllHealthBoxesGfxAtOnce(void) { u8 numberOfBattlers = 0; u8 i; - LoadSpritePalette(&gUnknown_0832C128[0]); - LoadSpritePalette(&gUnknown_0832C128[1]); + LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); + LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]); if (!IsDoubleBattle()) { - LoadCompressedObjectPic(&gUnknown_0832C0D0); - LoadCompressedObjectPic(&gUnknown_0832C0D8); + LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox); + LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox); numberOfBattlers = 2; } else { - LoadCompressedObjectPic(&gUnknown_0832C0E0[0]); - LoadCompressedObjectPic(&gUnknown_0832C0E0[1]); - LoadCompressedObjectPic(&gUnknown_0832C0F0[0]); - LoadCompressedObjectPic(&gUnknown_0832C0F0[1]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]); numberOfBattlers = 4; } for (i = 0; i < numberOfBattlers; i++) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[i]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[i]]); } bool8 BattleLoadAllHealthBoxesGfx(u8 state) @@ -712,45 +713,45 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state) { if (state == 1) { - LoadSpritePalette(&gUnknown_0832C128[0]); - LoadSpritePalette(&gUnknown_0832C128[1]); + LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]); + LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]); } else if (!IsDoubleBattle()) { if (state == 2) { if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) - LoadCompressedObjectPic(&gUnknown_0832C100); + LoadCompressedObjectPic(&sSpriteSheet_SafariHealthbox); else - LoadCompressedObjectPic(&gUnknown_0832C0D0); + LoadCompressedObjectPic(&sSpriteSheet_SinglesPlayerHealthbox); } else if (state == 3) - LoadCompressedObjectPic(&gUnknown_0832C0D8); + LoadCompressedObjectPic(&sSpriteSheet_SinglesOpponentHealthbox); else if (state == 4) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]); else if (state == 5) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]); else retVal = TRUE; } else { if (state == 2) - LoadCompressedObjectPic(&gUnknown_0832C0E0[0]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[0]); else if (state == 3) - LoadCompressedObjectPic(&gUnknown_0832C0E0[1]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesPlayerHealthbox[1]); else if (state == 4) - LoadCompressedObjectPic(&gUnknown_0832C0F0[0]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[0]); else if (state == 5) - LoadCompressedObjectPic(&gUnknown_0832C0F0[1]); + LoadCompressedObjectPic(&sSpriteSheets_DoublesOpponentHealthbox[1]); else if (state == 6) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[0]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[0]]); else if (state == 7) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[1]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[1]]); else if (state == 8) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[2]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[2]]); else if (state == 9) - LoadCompressedObjectPic(&gUnknown_0832C108[gBattlerPositions[3]]); + LoadCompressedObjectPic(&sSpriteSheets_HealthBar[gBattlerPositions[3]]); else retVal = TRUE; } diff --git a/src/battle_interface.c b/src/battle_interface.c index 6a30ed487..a6032adc3 100644 --- a/src/battle_interface.c +++ b/src/battle_interface.c @@ -1350,7 +1350,7 @@ static void UpdateHpTextInHealthboxInDoubles(u8 healthboxSpriteId, s16 value, u8 } } -// Prints mon's nature and flee rate. Probably used to test pokeblock feeders. +// Prints mon's nature, catch and flee rate. Probably used to test pokeblock-related features. static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon) { u8 text[20]; @@ -1391,8 +1391,8 @@ static void PrintSafariMonInfo(u8 healthboxSpriteId, struct Pokemon *mon) } healthBarSpriteId = gSprites[healthboxSpriteId].hMain_HealthBarSpriteId; - ConvertIntToDecimalStringN(text + 6, gBattleStruct->field_7C, STR_CONV_MODE_RIGHT_ALIGN, 2); - ConvertIntToDecimalStringN(text + 9, gBattleStruct->field_7B, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(text + 6, gBattleStruct->safariCatchFactor, STR_CONV_MODE_RIGHT_ALIGN, 2); + ConvertIntToDecimalStringN(text + 9, gBattleStruct->safariEscapeFactor, STR_CONV_MODE_RIGHT_ALIGN, 2); text[5] = CHAR_SPACE; text[8] = CHAR_SLASH; RenderTextFont9(gMonSpritesGfxPtr->barFontGfx, 9, text); diff --git a/src/battle_main.c b/src/battle_main.c index dfe99e003..34558ab38 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -85,7 +85,6 @@ extern u8 gUnknown_0203CF00[]; extern const u16 gBattleTextboxPalette[]; extern const struct BgTemplate gBattleBgTemplates[]; extern const struct WindowTemplate *const gBattleWindowTemplates[]; -extern const u8 gUnknown_0831ACE0[]; extern const u8 *const gBattleScriptsForMoveEffects[]; extern const u8 *const gBattlescriptsForBallThrow[]; extern const u8 *const gBattlescriptsForRunningByItem[]; @@ -308,6 +307,9 @@ u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT]; // 10 is ×1.0 TYPE_MUL_NORMAL // 05 is ×0.5 TYPE_MUL_NOT_EFFECTIVE // 00 is ×0.0 TYPE_MUL_NO_EFFECT + +static const s8 gUnknown_0831ACE0[] ={-32, -16, -16, -32, -32, 0, 0, 0}; + const u8 gTypeEffectiveness[336] = { TYPE_NORMAL, TYPE_ROCK, TYPE_MUL_NOT_EFFECTIVE, @@ -561,9 +563,9 @@ const u8 * const gStatusConditionStringsTable[7][2] = {gStatusConditionString_LoveJpn, gText_Love} }; -static const u8 sUnknown_0831BCE0[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; -static const u8 sUnknown_0831BCEF[] = {4, 3, 2, 1}; -static const u8 sUnknown_0831BCF3[] = {4, 4, 4, 4}; +static const u8 sPkblToEscapeFactor[][3] = {{0, 0, 0}, {3, 5, 0}, {2, 3, 0}, {1, 2, 0}, {1, 1, 0}}; +static const u8 sGoNearCounterToCatchFactor[] = {4, 3, 2, 1}; +static const u8 sGoNearCounterToEscapeFactor[] = {4, 4, 4, 4}; // code void CB2_InitBattle(void) @@ -1805,7 +1807,7 @@ static void CB2_HandleStartMultiBattle(void) SetMainCallback2(BattleMainCB2); if (gBattleTypeFlags & BATTLE_TYPE_LINK) { - gTrainerBattleOpponent_A = TRAINER_OPPONENT_800; + gTrainerBattleOpponent_A = TRAINER_LINK_OPPONENT; gBattleTypeFlags |= BATTLE_TYPE_20; } } @@ -3051,10 +3053,10 @@ static void BattleStartClearSetData(void) gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; gBattleStruct->runTries = 0; - gBattleStruct->field_79 = 0; - gBattleStruct->field_7A = 0; - *(&gBattleStruct->field_7C) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; - gBattleStruct->field_7B = 3; + gBattleStruct->safariGoNearCounter = 0; + gBattleStruct->safariPkblThrowCounter = 0; + *(&gBattleStruct->safariCatchFactor) = gBaseStats[GetMonData(&gEnemyParty[0], MON_DATA_SPECIES)].catchRate * 100 / 1275; + gBattleStruct->safariEscapeFactor = 3; gBattleStruct->wildVictorySong = 0; gBattleStruct->moneyMultiplier = 1; @@ -5746,14 +5748,14 @@ static void HandleAction_ThrowPokeblock(void) if (gBattleResults.pokeblockThrows < 0xFF) gBattleResults.pokeblockThrows++; - if (gBattleStruct->field_7A < 3) - gBattleStruct->field_7A++; - if (gBattleStruct->field_7B > 1) + if (gBattleStruct->safariPkblThrowCounter < 3) + gBattleStruct->safariPkblThrowCounter++; + if (gBattleStruct->safariEscapeFactor > 1) { - if (gBattleStruct->field_7B < sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]) - gBattleStruct->field_7B = 1; + if (gBattleStruct->safariEscapeFactor < sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]]) + gBattleStruct->safariEscapeFactor = 1; else - gBattleStruct->field_7B -= sUnknown_0831BCE0[gBattleStruct->field_7A][gBattleCommunication[MULTISTRING_CHOOSER]]; + gBattleStruct->safariEscapeFactor -= sPkblToEscapeFactor[gBattleStruct->safariPkblThrowCounter][gBattleCommunication[MULTISTRING_CHOOSER]]; } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[2]; @@ -5766,22 +5768,22 @@ static void HandleAction_GoNear(void) gBattle_BG0_X = 0; gBattle_BG0_Y = 0; - gBattleStruct->field_7C += sUnknown_0831BCEF[gBattleStruct->field_79]; - if (gBattleStruct->field_7C > 20) - gBattleStruct->field_7C = 20; + gBattleStruct->safariCatchFactor += sGoNearCounterToCatchFactor[gBattleStruct->safariGoNearCounter]; + if (gBattleStruct->safariCatchFactor > 20) + gBattleStruct->safariCatchFactor = 20; - gBattleStruct->field_7B +=sUnknown_0831BCF3[gBattleStruct->field_79]; - if (gBattleStruct->field_7B > 20) - gBattleStruct->field_7B = 20; + gBattleStruct->safariEscapeFactor += sGoNearCounterToEscapeFactor[gBattleStruct->safariGoNearCounter]; + if (gBattleStruct->safariEscapeFactor > 20) + gBattleStruct->safariEscapeFactor = 20; - if (gBattleStruct->field_79 < 3) + if (gBattleStruct->safariGoNearCounter < 3) { - gBattleStruct->field_79++; + gBattleStruct->safariGoNearCounter++; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; + gBattleCommunication[MULTISTRING_CHOOSER] = 1; // Can't get closer. } gBattlescriptCurrInstr = gBattlescriptsForSafariActions[1]; gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT; diff --git a/src/battle_message.c b/src/battle_message.c index d2ac6da8c..7d442ea98 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -6,6 +6,7 @@ #include "text.h" #include "string_util.h" #include "constants/items.h" +#include "constants/trainers.h" #include "event_data.h" #include "link.h" #include "item.h" @@ -2074,7 +2075,7 @@ void BufferStringBattle(u16 stringID) } else { - if (gTrainerBattleOpponent_A == TRAINER_OPPONENT_800 || gBattleTypeFlags & BATTLE_TYPE_x2000000) + if (gTrainerBattleOpponent_A == TRAINER_LINK_OPPONENT || gBattleTypeFlags & BATTLE_TYPE_x2000000) { if (gBattleTypeFlags & BATTLE_TYPE_MULTI) stringPtr = sText_LinkTrainer2WithdrewPkmn; diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 9c48b083c..bacaf2bac 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -3111,7 +3111,7 @@ static void atk1E_jumpifability(void) if (gBattlescriptCurrInstr[1] == BS_ATTACKER_SIDE) { - battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BANK_SIDE, gBattlerAttacker, ability, 0, 0); + battlerId = AbilityBattleEffects(ABILITYEFFECT_CHECK_BATTLER_SIDE, gBattlerAttacker, ability, 0, 0); if (battlerId) { gLastUsedAbility = ability; @@ -5033,7 +5033,7 @@ static void atk4F_jumpifcantswitch(void) party = gPlayerParty; i = 0; - if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) + if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) i = 3; } else @@ -5054,7 +5054,7 @@ static void atk4F_jumpifcantswitch(void) party = gPlayerParty; i = 0; - if (sub_806D82C(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) + if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gActiveBattler)) == TRUE) i = 3; } @@ -5166,7 +5166,7 @@ static void atk50_openpartyscreen(void) { if (gHitMarker & HITMARKER_FAINTED(gActiveBattler)) { - if (sub_80423F4(gActiveBattler, 6, 6)) + if (HasNoMonsToSwitch(gActiveBattler, 6, 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5195,7 +5195,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[0] & hitmarkerFaintBits) { gActiveBattler = 0; - if (sub_80423F4(0, 6, 6)) + if (HasNoMonsToSwitch(0, 6, 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5217,7 +5217,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[2] & hitmarkerFaintBits && !(gBitTable[0] & hitmarkerFaintBits)) { gActiveBattler = 2; - if (sub_80423F4(2, 6, 6)) + if (HasNoMonsToSwitch(2, 6, 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5238,7 +5238,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[1] & hitmarkerFaintBits) { gActiveBattler = 1; - if (sub_80423F4(1, 6, 6)) + if (HasNoMonsToSwitch(1, 6, 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5260,7 +5260,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[3] & hitmarkerFaintBits && !(gBitTable[1] & hitmarkerFaintBits)) { gActiveBattler = 3; - if (sub_80423F4(3, 6, 6)) + if (HasNoMonsToSwitch(3, 6, 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5323,7 +5323,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[2] & hitmarkerFaintBits && gBitTable[0] & hitmarkerFaintBits) { gActiveBattler = 2; - if (sub_80423F4(2, gBattleBufferB[0][1], 6)) + if (HasNoMonsToSwitch(2, gBattleBufferB[0][1], 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5339,7 +5339,7 @@ static void atk50_openpartyscreen(void) if (gBitTable[3] & hitmarkerFaintBits && hitmarkerFaintBits & gBitTable[1]) { gActiveBattler = 3; - if (sub_80423F4(3, gBattleBufferB[1][1], 6)) + if (HasNoMonsToSwitch(3, gBattleBufferB[1][1], 6)) { gAbsentBattlerFlags |= gBitTable[gActiveBattler]; gHitMarker &= ~(HITMARKER_FAINTED(gActiveBattler)); @@ -5391,7 +5391,7 @@ static void atk50_openpartyscreen(void) { gBattlescriptCurrInstr += 6; } - else if (sub_80423F4(battlerId, 6, 6)) + else if (HasNoMonsToSwitch(battlerId, 6, 6)) { gActiveBattler = battlerId; gAbsentBattlerFlags |= gBitTable[gActiveBattler]; @@ -7506,7 +7506,7 @@ static void atk8F_forcerandomswitch(void) else if ((gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_LINK) || (gBattleTypeFlags & BATTLE_TYPE_MULTI && gBattleTypeFlags & BATTLE_TYPE_x2000000)) { - if (sub_806D82C(GetBattlerMultiplayerId(gBattlerTarget)) == 1) + if (GetLinkTrainerFlankId(GetBattlerMultiplayerId(gBattlerTarget)) == 1) { firstMonId = 3; lastMonId = 6; @@ -9044,7 +9044,7 @@ static void atkBE_rapidspinfree(void) else if (gStatuses3[gBattlerAttacker] & STATUS3_LEECHSEED) { gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED); - gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BANK); + gStatuses3[gBattlerAttacker] &= ~(STATUS3_LEECHSEED_BATTLER); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_LeechSeedFree; } @@ -9760,7 +9760,7 @@ static void atkE1_trygetintimidatetarget(void) { u8 side; - gBattleScripting.battler = gBattleStruct->intimidateBank; + gBattleScripting.battler = gBattleStruct->intimidateBattler; side = GetBattlerSide(gBattleScripting.battler); PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gBattleMons[gBattleScripting.battler].ability) @@ -10115,7 +10115,7 @@ static void atkEF_handleballthrow(void) u8 catchRate; if (gLastUsedItem == ITEM_SAFARI_BALL) - catchRate = gBattleStruct->field_7C * 1275 / 100; + catchRate = gBattleStruct->safariCatchFactor * 1275 / 100; else catchRate = gBaseStats[gBattleMons[gBattlerTarget].species].catchRate; diff --git a/src/battle_tv.c b/src/battle_tv.c index cd0490a1b..6f9ee414e 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -796,8 +796,8 @@ void TryPutLinkBattleTvShowOnAir(void) if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { - if ((playerBestMonId < 3 && !sub_806D82C(gBattleScripting.multiplayerId)) - || (playerBestMonId >= 3 && sub_806D82C(gBattleScripting.multiplayerId))) + if ((playerBestMonId < 3 && !GetLinkTrainerFlankId(gBattleScripting.multiplayerId)) + || (playerBestMonId >= 3 && GetLinkTrainerFlankId(gBattleScripting.multiplayerId))) { j = (opponentBestMonId < 3) ? 0 : 1; PutBattleUpdateOnTheAir(sub_806EF84(j, gBattleScripting.multiplayerId), moveId, playerBestSpecies, opponentBestSpecies); @@ -1078,7 +1078,7 @@ _0817E5C8:\n\ ldr r0, =gBattleScripting\n\ adds r0, 0x25\n\ ldrb r0, [r0]\n\ - bl sub_806D82C\n\ + bl GetLinkTrainerFlankId\n\ lsls r0, 16\n\ cmp r0, 0\n\ beq _0817E630\n\ @@ -1088,7 +1088,7 @@ _0817E620:\n\ ldr r0, =gBattleScripting\n\ adds r0, 0x25\n\ ldrb r0, [r0]\n\ - bl sub_806D82C\n\ + bl GetLinkTrainerFlankId\n\ lsls r0, 16\n\ cmp r0, 0\n\ beq _0817E670\n\ diff --git a/src/battle_util.c b/src/battle_util.c index b9a7f546a..5d2ec62a9 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -46,7 +46,7 @@ u8 GetBattlerForBattleScript(u8 caseId) case BS_EFFECT_BATTLER: ret = gEffectBattler; break; - case BS_BANK_0: + case BS_BATTLER_0: ret = 0; break; case BS_SCRIPTING: @@ -292,7 +292,7 @@ void sub_803FA70(u8 battler) } } -void BattleScriptPush(const u8* bsPtr) +void BattleScriptPush(const u8 *bsPtr) { gBattleResources->battleScriptsStack->ptr[gBattleResources->battleScriptsStack->size++] = bsPtr; } @@ -453,7 +453,7 @@ bool8 AreAllMovesUnusable(void) u8 unusable; unusable = CheckMoveLimitations(gActiveBattler, 0, 0xFF); - if (unusable == 0xF) // all moves are unusable + if (unusable == 0xF) // All moves are unusable. { gProtectStructs[gActiveBattler].onlyStruggle = 1; gSelectionBattleScripts[gActiveBattler] = BattleScript_NoMovesLeft; @@ -470,11 +470,11 @@ u8 GetImprisonedMovesCount(u8 battlerId, u16 move) { s32 i; u8 imprisionedMoves = 0; - u8 bankSide = GetBattlerSide(battlerId); + u8 BattlerSide = GetBattlerSide(battlerId); for (i = 0; i < gBattlersCount; i++) { - if (bankSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) + if (BattlerSide != GetBattlerSide(i) && gStatuses3[i] & STATUS3_IMPRISONED_OTHERS) { s32 j; for (j = 0; j < 4; j++) @@ -504,7 +504,7 @@ u8 UpdateTurnCounters(void) do { - u8 sideBank; + u8 side; switch (gBattleStruct->turnCountersTracker) { @@ -533,13 +533,13 @@ u8 UpdateTurnCounters(void) case 1: while (gBattleStruct->turnSideTracker < 2) { - sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].reflectBattlerId; - if (gSideStatuses[sideBank] & SIDE_STATUS_REFLECT) + side = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = gSideTimers[side].reflectBattlerId; + if (gSideStatuses[side] & SIDE_STATUS_REFLECT) { - if (--gSideTimers[sideBank].reflectTimer == 0) + if (--gSideTimers[side].reflectTimer == 0) { - gSideStatuses[sideBank] &= ~SIDE_STATUS_REFLECT; + gSideStatuses[side] &= ~SIDE_STATUS_REFLECT; BattleScriptExecute(BattleScript_SideStatusWoreOff); PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_REFLECT); effect++; @@ -558,15 +558,15 @@ u8 UpdateTurnCounters(void) case 2: while (gBattleStruct->turnSideTracker < 2) { - sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].lightscreenBattlerId; - if (gSideStatuses[sideBank] & SIDE_STATUS_LIGHTSCREEN) + side = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = gSideTimers[side].lightscreenBattlerId; + if (gSideStatuses[side] & SIDE_STATUS_LIGHTSCREEN) { - if (--gSideTimers[sideBank].lightscreenTimer == 0) + if (--gSideTimers[side].lightscreenTimer == 0) { - gSideStatuses[sideBank] &= ~SIDE_STATUS_LIGHTSCREEN; + gSideStatuses[side] &= ~SIDE_STATUS_LIGHTSCREEN; BattleScriptExecute(BattleScript_SideStatusWoreOff); - gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleCommunication[MULTISTRING_CHOOSER] = side; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_LIGHT_SCREEN); effect++; } @@ -584,14 +584,14 @@ u8 UpdateTurnCounters(void) case 3: while (gBattleStruct->turnSideTracker < 2) { - sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].mistBattlerId; - if (gSideTimers[sideBank].mistTimer != 0 - && --gSideTimers[sideBank].mistTimer == 0) + side = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = gSideTimers[side].mistBattlerId; + if (gSideTimers[side].mistTimer != 0 + && --gSideTimers[side].mistTimer == 0) { - gSideStatuses[sideBank] &= ~SIDE_STATUS_MIST; + gSideStatuses[side] &= ~SIDE_STATUS_MIST; BattleScriptExecute(BattleScript_SideStatusWoreOff); - gBattleCommunication[MULTISTRING_CHOOSER] = sideBank; + gBattleCommunication[MULTISTRING_CHOOSER] = side; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_MIST); effect++; } @@ -608,13 +608,13 @@ u8 UpdateTurnCounters(void) case 4: while (gBattleStruct->turnSideTracker < 2) { - sideBank = gBattleStruct->turnSideTracker; - gActiveBattler = gBattlerAttacker = gSideTimers[sideBank].safeguardBattlerId; - if (gSideStatuses[sideBank] & SIDE_STATUS_SAFEGUARD) + side = gBattleStruct->turnSideTracker; + gActiveBattler = gBattlerAttacker = gSideTimers[side].safeguardBattlerId; + if (gSideStatuses[side] & SIDE_STATUS_SAFEGUARD) { - if (--gSideTimers[sideBank].safeguardTimer == 0) + if (--gSideTimers[side].safeguardTimer == 0) { - gSideStatuses[sideBank] &= ~SIDE_STATUS_SAFEGUARD; + gSideStatuses[side] &= ~SIDE_STATUS_SAFEGUARD; BattleScriptExecute(BattleScript_SafeguardEnds); effect++; } @@ -795,10 +795,10 @@ u8 TurnBasedEffects(void) break; case 3: // leech seed if ((gStatuses3[gActiveBattler] & STATUS3_LEECHSEED) - && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK].hp != 0 + && gBattleMons[gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER].hp != 0 && gBattleMons[gActiveBattler].hp != 0) { - gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BANK; //funny how the 'target' is actually the battlerId that receives HP + gBattlerTarget = gStatuses3[gActiveBattler] & STATUS3_LEECHSEED_BATTLER; // Notice gBattlerTarget is actually the HP receiver. gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 8; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; @@ -848,8 +848,8 @@ u8 TurnBasedEffects(void) case 7: // spooky nightmares if ((gBattleMons[gActiveBattler].status2 & STATUS2_NIGHTMARE) && gBattleMons[gActiveBattler].hp != 0) { - // R/S does not perform this sleep check, which causes the nighmare effect to - // persist even after the affected Pokemon has been awakened by Shed Skin + // R/S does not perform this sleep check, which causes the nightmare effect to + // persist even after the affected Pokemon has been awakened by Shed Skin. if (gBattleMons[gActiveBattler].status1 & STATUS1_SLEEP) { gBattleMoveDamage = gBattleMons[gActiveBattler].maxHP / 4; @@ -983,7 +983,7 @@ u8 TurnBasedEffects(void) case 12: // disable if (gDisableStructs[gActiveBattler].disableTimer1 != 0) { - int i; + s32 i; for (i = 0; i < 4; i++) { if (gDisableStructs[gActiveBattler].disabledMove == gBattleMons[gActiveBattler].moves[i]) @@ -1184,7 +1184,7 @@ bool8 HandleFaintedMonActions(void) return FALSE; do { - int i; + s32 i; switch (gBattleStruct->faintedActionsState) { case 0: @@ -1192,7 +1192,7 @@ bool8 HandleFaintedMonActions(void) gBattleStruct->faintedActionsState++; for (i = 0; i < gBattlersCount; i++) { - if (gAbsentBattlerFlags & gBitTable[i] && !sub_80423F4(i, 6, 6)) + if (gAbsentBattlerFlags & gBitTable[i] && !HasNoMonsToSwitch(i, 6, 6)) gAbsentBattlerFlags &= ~(gBitTable[i]); } // fall through @@ -1256,7 +1256,7 @@ bool8 HandleFaintedMonActions(void) void TryClearRageStatuses(void) { - int i; + s32 i; for (i = 0; i < gBattlersCount; i++) { if ((gBattleMons[i].status2 & STATUS2_RAGE) && gChosenMoveByBattler[i] != MOVE_RAGE) @@ -1467,7 +1467,9 @@ u8 AtkCanceller_UnableToUseMove(void) { gBattleScripting.battler = CountTrailingZeroBits((gBattleMons[gBattlerAttacker].status2 & STATUS2_INFATUATION) >> 0x10); if (Random() & 1) + { BattleScriptPushCursor(); + } else { BattleScriptPush(BattleScript_MoveUsedIsParalyzedCantAttack); @@ -1485,7 +1487,9 @@ u8 AtkCanceller_UnableToUseMove(void) { gBattleMons[gBattlerAttacker].status2 -= 0x100; if (gBattleMons[gBattlerAttacker].status2 & STATUS2_BIDE) + { gBattlescriptCurrInstr = BattleScript_BideStoringEnergy; + } else { // This is removed in Emerald for some reason @@ -1500,7 +1504,9 @@ u8 AtkCanceller_UnableToUseMove(void) gBattlescriptCurrInstr = BattleScript_BideAttack; } else + { gBattlescriptCurrInstr = BattleScript_BideNoEnergyToAttack; + } } effect = 1; } @@ -1535,29 +1541,31 @@ u8 AtkCanceller_UnableToUseMove(void) return effect; } -bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) +bool8 HasNoMonsToSwitch(u8 battler, u8 partyIdBattlerOn1, u8 partyIdBattlerOn2) { - struct Pokemon* party; - u8 r7; - u8 r6; + struct Pokemon *party; + u8 id1, id2; s32 i; + if (!(gBattleTypeFlags & BATTLE_TYPE_DOUBLE)) return FALSE; + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) { if (GetBattlerSide(battler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - r6 = ((battler & 2) / 2); - for (i = r6 * 3; i < r6 * 3 + 3; i++) + + id1 = ((battler & BIT_FLANK) / 2); + for (i = id1 * 3; i < id1 * 3 + 3; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) break; } - return (i == r6 * 3 + 3); + return (i == id1 * 3 + 3); } else if (gBattleTypeFlags & BATTLE_TYPE_MULTI) { @@ -1566,86 +1574,95 @@ bool8 sub_80423F4(u8 battler, u8 r1, u8 r2) if (GetBattlerSide(battler) == B_SIDE_PLAYER) { party = gPlayerParty; - r7 = GetBattlerMultiplayerId(battler); - r6 = sub_806D82C(r7); + id2 = GetBattlerMultiplayerId(battler); + id1 = GetLinkTrainerFlankId(id2); } else { - // FIXME: Compiler insists on moving r4 into r1 before doing the eor + // FIXME: Compiler insists on moving r4 into r1 before doing the eor. #ifndef NONMATCHING - register u32 var asm("r1"); + register u32 var asm("r1"); #else - u32 var; + u32 var; #endif // NONMATCHING party = gEnemyParty; - var = battler ^ 1; - r6 = (var != 0) ? 1 : 0; + var = battler ^ BIT_SIDE; + if (var == 0) + id1 = 0; + else + id1 = 1; } } else { - r7 = GetBattlerMultiplayerId(battler); + id2 = GetBattlerMultiplayerId(battler); + if (GetBattlerSide(battler) == B_SIDE_PLAYER) party = gPlayerParty; else party = gEnemyParty; - r6 = sub_806D82C(r7); + + id1 = GetLinkTrainerFlankId(id2); } - for (i = r6 * 3; i < r6 * 3 + 3; i++) + + for (i = id1 * 3; i < id1 * 3 + 3; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) break; } - return (i == r6 * 3 + 3); + return (i == id1 * 3 + 3); } else if ((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) && GetBattlerSide(battler) == B_SIDE_OPPONENT) { party = gEnemyParty; if (battler == 1) - r6 = 0; + id1 = 0; else - r6 = 3; - for (i = r6; i < r6 + 3; i++) + id1 = 3; + + for (i = id1; i < id1 + 3; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG) break; } - return (i == r6 + 3); + return (i == id1 + 3); } else { if (GetBattlerSide(battler) == B_SIDE_OPPONENT) { - r7 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - r6 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + id2 = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + id1 = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); party = gEnemyParty; } else { - r7 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - r6 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + id2 = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + id1 = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); party = gPlayerParty; } - if (r1 == 6) - r1 = gBattlerPartyIndexes[r7]; - if (r2 == 6) - r2 = gBattlerPartyIndexes[r6]; - for (i = 0; i < 6; i++) + + if (partyIdBattlerOn1 == PARTY_SIZE) + partyIdBattlerOn1 = gBattlerPartyIndexes[id2]; + if (partyIdBattlerOn2 == PARTY_SIZE) + partyIdBattlerOn2 = gBattlerPartyIndexes[id1]; + + for (i = 0; i < PARTY_SIZE; i++) { if (GetMonData(&party[i], MON_DATA_HP) != 0 - && GetMonData(&party[i], MON_DATA_SPECIES2) != 0 + && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_NONE && GetMonData(&party[i], MON_DATA_SPECIES2) != SPECIES_EGG - // FIXME: Using index[array] instead of array[index] is BAD! - && i != r1 && i != r2 && i != r7[gBattleStruct->monToSwitchIntoId] && i != r6[gBattleStruct->monToSwitchIntoId]) + && i != partyIdBattlerOn1 && i != partyIdBattlerOn2 + && i != *(gBattleStruct->monToSwitchIntoId + id2) && i != id1[gBattleStruct->monToSwitchIntoId]) break; } - return (i == 6); + return (i == PARTY_SIZE); } } @@ -1706,6 +1723,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (gBattlerAttacker >= gBattlersCount) gBattlerAttacker = battler; + if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) pokeAtk = &gPlayerParty[gBattlerPartyIndexes[gBattlerAttacker]]; else @@ -1713,6 +1731,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA if (gBattlerTarget >= gBattlersCount) gBattlerTarget = battler; + if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) pokeDef = &gPlayerParty[gBattlerPartyIndexes[gBattlerTarget]]; else @@ -1724,7 +1743,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA 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? + if (!(gBattleTypeFlags & BATTLE_TYPE_SAFARI)) // Why isn't that check done at the beginning? { u8 moveType; s32 i; @@ -2271,7 +2290,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gLastUsedAbility = ABILITY_INTIMIDATE; gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursorAndCallback(BattleScript_82DB4B8); - gBattleStruct->intimidateBank = i; + gBattleStruct->intimidateBattler = i; effect++; break; } @@ -2343,7 +2362,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA gStatuses3[i] &= ~(STATUS3_INTIMIDATE_POKES); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_82DB4C1; - gBattleStruct->intimidateBank = i; + gBattleStruct->intimidateBattler = i; effect++; break; } @@ -2360,7 +2379,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } } break; - case ABILITYEFFECT_CHECK_BANK_SIDE: // 13 + case ABILITYEFFECT_CHECK_BATTLER_SIDE: // 13 side = GetBattlerSide(battler); for (i = 0; i < gBattlersCount; i++) { @@ -2410,7 +2429,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } } break; - case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BANK: // 15 + case ABILITYEFFECT_CHECK_FIELD_EXCEPT_BATTLER: // 15 for (i = 0; i < gBattlersCount; i++) { if (gBattleMons[i].ability == ability && i != battler) @@ -2431,7 +2450,7 @@ u8 AbilityBattleEffects(u8 caseID, u8 battler, u8 ability, u8 special, u16 moveA } } break; - case ABILITYEFFECT_COUNT_BANK_SIDE: // 17 + case ABILITYEFFECT_COUNT_BATTLER_SIDE: // 17 side = GetBattlerSide(battler); for (i = 0; i < gBattlersCount; i++) { @@ -2492,20 +2511,20 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) int i = 0; u8 effect = ITEM_NO_EFFECT; u8 changedPP = 0; - u8 bankHoldEffect, atkHoldEffect, defHoldEffect; - u8 bankQuality, atkQuality, defQuality; + u8 BattlerHoldEffect, atkHoldEffect, defHoldEffect; + u8 BattlerQuality, atkQuality, defQuality; u16 atkItem, defItem; gLastUsedItem = gBattleMons[battlerId].item; if (gLastUsedItem == ITEM_ENIGMA_BERRY) { - bankHoldEffect = gEnigmaBerries[battlerId].holdEffect; - bankQuality = gEnigmaBerries[battlerId].holdEffectParam; + BattlerHoldEffect = gEnigmaBerries[battlerId].holdEffect; + BattlerQuality = gEnigmaBerries[battlerId].holdEffectParam; } else { - bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); - bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + BattlerHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + BattlerQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } atkItem = gBattleMons[gBattlerAttacker].item; @@ -2536,7 +2555,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) switch (caseID) { case ITEMEFFECT_ON_SWITCH_IN: - switch (bankHoldEffect) + switch (BattlerHoldEffect) { case HOLD_EFFECT_DOUBLE_PRIZE: if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) @@ -2564,13 +2583,13 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) case 1: if (gBattleMons[battlerId].hp) { - switch (bankHoldEffect) + switch (BattlerHoldEffect) { case HOLD_EFFECT_RESTORE_HP: if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / 2 && !moveTurn) { - gBattleMoveDamage = bankQuality; - if (gBattleMons[battlerId].hp + bankQuality > gBattleMons[battlerId].maxHP) + gBattleMoveDamage = BattlerQuality; + if (gBattleMons[battlerId].hp + BattlerQuality > gBattleMons[battlerId].maxHP) gBattleMoveDamage = gBattleMons[battlerId].maxHP - gBattleMons[battlerId].hp; gBattleMoveDamage *= -1; BattleScriptExecute(BattleScript_ItemHealHP_RemoveItem); @@ -2599,10 +2618,10 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) if (i != 4) { u8 maxPP = CalculatePPWithBonus(move, ppBonuses, i); - if (changedPP + bankQuality > maxPP) + if (changedPP + BattlerQuality > maxPP) changedPP = maxPP; else - changedPP = changedPP + bankQuality; + changedPP = changedPP + BattlerQuality; PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); @@ -2641,7 +2660,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gBattleMoveDamage *= -1; BattleScriptExecute(BattleScript_ItemHealHP_End2); effect = ITEM_HP_CHANGE; - RecordItemEffectBattle(battlerId, bankHoldEffect); + RecordItemEffectBattle(battlerId, BattlerHoldEffect); } break; // nice copy/paste there gamefreak, making a function for confuse berries was too much eh? @@ -2650,7 +2669,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SPICY); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality; + gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) @@ -2668,7 +2687,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_DRY); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality; + gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) @@ -2686,7 +2705,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SWEET); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality; + gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) @@ -2704,7 +2723,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_BITTER); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality; + gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) @@ -2722,7 +2741,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, FLAVOR_SOUR); - gBattleMoveDamage = gBattleMons[battlerId].maxHP / bankQuality; + gBattleMoveDamage = gBattleMons[battlerId].maxHP / BattlerQuality; if (gBattleMoveDamage == 0) gBattleMoveDamage = 1; if (gBattleMons[battlerId].hp + gBattleMoveDamage > gBattleMons[battlerId].maxHP) @@ -2737,7 +2756,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) break; // copy/paste again, smh case HOLD_EFFECT_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_ATK] < 0xC) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_ATK); PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_STATROSE); @@ -2751,7 +2770,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_DEF] < 0xC) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_DEF); @@ -2764,7 +2783,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SPEED_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPEED] < 0xC) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPEED); @@ -2777,7 +2796,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_ATTACK_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPATK] < 0xC) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPATK); @@ -2790,7 +2809,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_SP_DEFENSE_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && gBattleMons[battlerId].statStages[STAT_SPDEF] < 0xC) { PREPARE_STAT_BUFFER(gBattleTextBuff1, STAT_SPDEF); @@ -2803,7 +2822,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_CRITICAL_UP: - if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) + if (gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality && !moveTurn && !(gBattleMons[battlerId].status2 & STATUS2_FOCUS_ENERGY)) { gBattleMons[battlerId].status2 |= STATUS2_FOCUS_ENERGY; BattleScriptExecute(BattleScript_BerryFocusEnergyEnd2); @@ -2811,7 +2830,7 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) } break; case HOLD_EFFECT_RANDOM_STAT_UP: - if (!moveTurn && gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / bankQuality) + if (!moveTurn && gBattleMons[battlerId].hp <= gBattleMons[battlerId].maxHP / BattlerQuality) { for (i = 0; i < 5; i++) { @@ -2977,15 +2996,15 @@ u8 ItemBattleEffects(u8 caseID, u8 battlerId, bool8 moveTurn) gLastUsedItem = gBattleMons[battlerId].item; if (gBattleMons[battlerId].item == ITEM_ENIGMA_BERRY) { - bankHoldEffect = gEnigmaBerries[battlerId].holdEffect; - bankQuality = gEnigmaBerries[battlerId].holdEffectParam; + BattlerHoldEffect = gEnigmaBerries[battlerId].holdEffect; + BattlerQuality = gEnigmaBerries[battlerId].holdEffectParam; } else { - bankHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); - bankQuality = ItemId_GetHoldEffectParam(gLastUsedItem); + BattlerHoldEffect = ItemId_GetHoldEffect(gLastUsedItem); + BattlerQuality = ItemId_GetHoldEffectParam(gLastUsedItem); } - switch (bankHoldEffect) + switch (BattlerHoldEffect) { case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battlerId].status1 & STATUS1_PARALYSIS) @@ -3180,7 +3199,7 @@ void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands u8 GetMoveTarget(u16 move, u8 setTarget) { - u8 targetBank = 0; + u8 targetBattler = 0; u8 moveTarget; u8 side; @@ -3194,21 +3213,21 @@ u8 GetMoveTarget(u16 move, u8 setTarget) case MOVE_TARGET_SELECTED: side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - targetBank = gSideTimers[side].followmeTarget; + targetBattler = gSideTimers[side].followmeTarget; else { side = GetBattlerSide(gBattlerAttacker); do { - targetBank = Random() % gBattlersCount; - } while (targetBank == gBattlerAttacker || side == GetBattlerSide(targetBank) || gAbsentBattlerFlags & gBitTable[targetBank]); + targetBattler = Random() % gBattlersCount; + } while (targetBattler == gBattlerAttacker || side == GetBattlerSide(targetBattler) || gAbsentBattlerFlags & gBitTable[targetBattler]); if (gBattleMoves[move].type == TYPE_ELECTRIC && AbilityBattleEffects(ABILITYEFFECT_COUNT_OTHER_SIDE, gBattlerAttacker, ABILITY_LIGHTNING_ROD, 0, 0) - && gBattleMons[targetBank].ability != ABILITY_LIGHTNING_ROD) + && gBattleMons[targetBattler].ability != ABILITY_LIGHTNING_ROD) { - targetBank ^= BIT_FLANK; - RecordAbilityBattle(targetBank, gBattleMons[targetBank].ability); - gSpecialStatuses[targetBank].lightningRodRedirected = 1; + targetBattler ^= BIT_FLANK; + RecordAbilityBattle(targetBattler, gBattleMons[targetBattler].ability); + gSpecialStatuses[targetBattler].lightningRodRedirected = 1; } } break; @@ -3216,45 +3235,45 @@ u8 GetMoveTarget(u16 move, u8 setTarget) case MOVE_TARGET_BOTH: case MOVE_TARGET_FOES_AND_ALLY: case MOVE_TARGET_OPPONENTS_FIELD: - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); - if (gAbsentBattlerFlags & gBitTable[targetBank]) - targetBank ^= BIT_FLANK; + targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); + if (gAbsentBattlerFlags & gBitTable[targetBattler]) + targetBattler ^= BIT_FLANK; break; case MOVE_TARGET_RANDOM: side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (gSideTimers[side].followmeTimer && gBattleMons[gSideTimers[side].followmeTarget].hp) - targetBank = gSideTimers[side].followmeTarget; + targetBattler = gSideTimers[side].followmeTarget; else if (gBattleTypeFlags & BATTLE_TYPE_DOUBLE && moveTarget & MOVE_TARGET_RANDOM) { if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) { if (Random() & 1) - targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + targetBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); else - targetBank = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + targetBattler = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); } else { if (Random() & 1) - targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); + targetBattler = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); else - targetBank = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); + targetBattler = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); } - if (gAbsentBattlerFlags & gBitTable[targetBank]) - targetBank ^= BIT_FLANK; + if (gAbsentBattlerFlags & gBitTable[targetBattler]) + targetBattler ^= BIT_FLANK; } else - targetBank = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); + targetBattler = GetBattlerAtPosition((GetBattlerPosition(gBattlerAttacker) & BIT_SIDE) ^ BIT_SIDE); break; case MOVE_TARGET_USER_OR_SELECTED: case MOVE_TARGET_USER: - targetBank = gBattlerAttacker; + targetBattler = gBattlerAttacker; break; } - *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBank; + *(gBattleStruct->moveTarget + gBattlerAttacker) = targetBattler; - return targetBank; + return targetBattler; } static bool32 HasObedientBitSet(u8 battlerId) diff --git a/src/pokemon.c b/src/pokemon.c index a4d62feca..7d685062f 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -1964,11 +1964,11 @@ void CalculateMonStats(struct Pokemon *mon) SetMonData(mon, MON_DATA_MAX_HP, &newMaxHP); - CALC_STAT(baseAttack, attackIV, attackEV, 1, MON_DATA_ATK) - CALC_STAT(baseDefense, defenseIV, defenseEV, 2, MON_DATA_DEF) - CALC_STAT(baseSpeed, speedIV, speedEV, 3, MON_DATA_SPEED) - CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, 4, MON_DATA_SPATK) - CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, 5, MON_DATA_SPDEF) + CALC_STAT(baseAttack, attackIV, attackEV, STAT_ATK, MON_DATA_ATK) + CALC_STAT(baseDefense, defenseIV, defenseEV, STAT_DEF, MON_DATA_DEF) + CALC_STAT(baseSpeed, speedIV, speedEV, STAT_SPEED, MON_DATA_SPEED) + CALC_STAT(baseSpAttack, spAttackIV, spAttackEV, STAT_SPATK, MON_DATA_SPATK) + CALC_STAT(baseSpDefense, spDefenseIV, spDefenseEV, STAT_SPDEF, MON_DATA_SPDEF) if (species == SPECIES_SHEDINJA) { @@ -4819,21 +4819,21 @@ bool8 sub_806D7EC(void) return retVal; } -bool16 sub_806D82C(u8 id) +u16 GetLinkTrainerFlankId(u8 linkPlayerId) { - bool16 retVal = FALSE; - switch (gLinkPlayers[id].lp_field_18) + u16 flankId = 0; + switch (gLinkPlayers[linkPlayerId].lp_field_18) { case 0: case 3: - retVal = FALSE; + flankId = 0; break; case 1: case 2: - retVal = TRUE; + flankId = 1; break; } - return retVal; + return flankId; } s32 GetBattlerMultiplayerId(u16 a1) diff --git a/src/recorded_battle.c b/src/recorded_battle.c index 3a4265895..e36716feb 100644 --- a/src/recorded_battle.c +++ b/src/recorded_battle.c @@ -58,8 +58,8 @@ struct RecordedBattleSave u8 field_4FC; u8 field_4FD; u8 field_4FE; - u8 battleStyle : 1; - u8 textSpeed : 3; + u8 battleStyle:1; + u8 textSpeed:3; u32 AI_scripts; u8 field_504[8]; u8 field_50C; @@ -79,19 +79,19 @@ EWRAM_DATA static u16 sUnknown_0203C79C[4] = {0}; EWRAM_DATA static u16 sUnknown_0203C7A4[4] = {0}; EWRAM_DATA static u8 sUnknown_0203C7AC = 0; EWRAM_DATA static u8 sUnknown_0203C7AD = 0; -EWRAM_DATA static u8 sRecordedBattle_FrontierFacility = 0; +EWRAM_DATA static u8 sFrontierFacility = 0; EWRAM_DATA static u8 sUnknown_0203C7AF = 0; EWRAM_DATA static MainCallback sCallback2_AfterRecordedBattle = NULL; EWRAM_DATA u8 gUnknown_0203C7B4 = 0; EWRAM_DATA static u8 sUnknown_0203C7B5 = 0; -EWRAM_DATA static u8 sRecordedBattle_BattleStyle = 0; -EWRAM_DATA static u8 sRecordedBattle_TextSpeed = 0; -EWRAM_DATA static u32 sRecordedBattle_BattleFlags = 0; -EWRAM_DATA static u32 sRecordedBattle_AI_Scripts = 0; +EWRAM_DATA static u8 sBattleStyle = 0; +EWRAM_DATA static u8 sTextSpeed = 0; +EWRAM_DATA static u32 sBattleFlags = 0; +EWRAM_DATA static u32 sAI_Scripts = 0; EWRAM_DATA static struct Pokemon sSavedPlayerParty[PARTY_SIZE] = {0}; EWRAM_DATA static struct Pokemon sSavedOpponentParty[PARTY_SIZE] = {0}; -EWRAM_DATA static u16 sRecordedBattle_PlayerMonMoves[2][4] = {0}; -EWRAM_DATA static struct PlayerInfo sRecordedBattle_Players[MAX_BATTLERS_COUNT] = {0}; +EWRAM_DATA static u16 sPlayerMonMoves[2][4] = {0}; +EWRAM_DATA static struct PlayerInfo sPlayers[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD0 = 0; EWRAM_DATA static u8 sUnknown_0203CCD1[8] = {0}; EWRAM_DATA static u8 sUnknown_0203CCD9 = 0; @@ -126,8 +126,8 @@ void sub_8184DA4(u8 arg0) { sBattleRecords[i][j] |= 0xFF; } - sRecordedBattle_BattleFlags = gBattleTypeFlags; - sRecordedBattle_AI_Scripts = gBattleResources->ai->aiFlags; + sBattleFlags = gBattleTypeFlags; + sAI_Scripts = gBattleResources->ai->aiFlags; } } } @@ -139,7 +139,7 @@ void sub_8184E58(void) if (sUnknown_0203C7AC == 1) { gRecordedBattleRngSeed = gRngValue; - sRecordedBattle_FrontierFacility = VarGet(VAR_FRONTIER_FACILITY); + sFrontierFacility = VarGet(VAR_FRONTIER_FACILITY); sUnknown_0203C7AF = sub_81A513C(); } else if (sUnknown_0203C7AC == 2) @@ -157,37 +157,37 @@ void sub_8184E58(void) for (i = 0; i < MAX_BATTLERS_COUNT; i++) { - sRecordedBattle_Players[i].trainerId = gLinkPlayers[i].trainerId; - sRecordedBattle_Players[i].gender = gLinkPlayers[i].gender; - sRecordedBattle_Players[i].battlerId = gLinkPlayers[i].lp_field_18; - sRecordedBattle_Players[i].language = gLinkPlayers[i].language; + sPlayers[i].trainerId = gLinkPlayers[i].trainerId; + sPlayers[i].gender = gLinkPlayers[i].gender; + sPlayers[i].battlerId = gLinkPlayers[i].lp_field_18; + sPlayers[i].language = gLinkPlayers[i].language; if (i < linkPlayersCount) { StringCopy(text, gLinkPlayers[i].name); StripExtCtrlCodes(text); - StringCopy(sRecordedBattle_Players[i].name, text); + StringCopy(sPlayers[i].name, text); } else { for (j = 0; j < PLAYER_NAME_LENGTH; j++) - sRecordedBattle_Players[i].name[j] = gLinkPlayers[i].name[j]; + sPlayers[i].name[j] = gLinkPlayers[i].name[j]; } } } else { - sRecordedBattle_Players[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) + sPlayers[0].trainerId = (gSaveBlock2Ptr->playerTrainerId[0]) | (gSaveBlock2Ptr->playerTrainerId[1] << 8) | (gSaveBlock2Ptr->playerTrainerId[2] << 16) | (gSaveBlock2Ptr->playerTrainerId[3] << 24); - sRecordedBattle_Players[0].gender = gSaveBlock2Ptr->playerGender; - sRecordedBattle_Players[0].battlerId = 0; - sRecordedBattle_Players[0].language = gGameLanguage; + sPlayers[0].gender = gSaveBlock2Ptr->playerGender; + sPlayers[0].battlerId = 0; + sPlayers[0].language = gGameLanguage; for (i = 0; i < PLAYER_NAME_LENGTH; i++) - sRecordedBattle_Players[0].name[i] = gSaveBlock2Ptr->playerName[i]; + sPlayers[0].name[i] = gSaveBlock2Ptr->playerName[i]; } } @@ -214,7 +214,7 @@ void RecordedBattle_ClearBattlerAction(u8 battlerId, u8 bytesToClear) u8 RecordedBattle_GetBattlerAction(u8 battlerId) { - // trying to read past array or invalid action byte, battle is over + // Trying to read past array or invalid action byte, battle is over. if (sRecordedBytesNo[battlerId] >= BATTLER_RECORD_SIZE || sBattleRecords[battlerId][sRecordedBytesNo[battlerId]] == 0xFF) { gSpecialVar_Result = gBattleOutcome = B_OUTCOME_PLAYER_TELEPORTED; // hah @@ -345,37 +345,37 @@ u32 MoveRecordedBattleToSaveData(void) { for (j = 0; j < PLAYER_NAME_LENGTH; j++) { - battleSave->playersName[i][j] = sRecordedBattle_Players[i].name[j]; + battleSave->playersName[i][j] = sPlayers[i].name[j]; } - battleSave->playersGender[i] = sRecordedBattle_Players[i].gender; - battleSave->playersLanguage[i] = sRecordedBattle_Players[i].language; - battleSave->playersBattlers[i] = sRecordedBattle_Players[i].battlerId; - battleSave->playersTrainerId[i] = sRecordedBattle_Players[i].trainerId; + battleSave->playersGender[i] = sPlayers[i].gender; + battleSave->playersLanguage[i] = sPlayers[i].language; + battleSave->playersBattlers[i] = sPlayers[i].battlerId; + battleSave->playersTrainerId[i] = sPlayers[i].trainerId; } battleSave->rngSeed = gRecordedBattleRngSeed; - if (sRecordedBattle_BattleFlags & BATTLE_TYPE_LINK) + if (sBattleFlags & BATTLE_TYPE_LINK) { - battleSave->battleFlags = (sRecordedBattle_BattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)); + battleSave->battleFlags = (sBattleFlags & ~(BATTLE_TYPE_LINK | BATTLE_TYPE_20)); battleSave->battleFlags |= BATTLE_TYPE_x2000000; - if (sRecordedBattle_BattleFlags & BATTLE_TYPE_WILD) + if (sBattleFlags & BATTLE_TYPE_WILD) { battleSave->battleFlags |= BATTLE_TYPE_x80000000; } - else if (sRecordedBattle_BattleFlags & BATTLE_TYPE_MULTI) + else if (sBattleFlags & BATTLE_TYPE_MULTI) { - switch (sRecordedBattle_Players[0].battlerId) + switch (sPlayers[0].battlerId) { case 0: case 2: - if (!(sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1)) + if (!(sPlayers[gUnknown_0203C7B4].battlerId & 1)) battleSave->battleFlags |= BATTLE_TYPE_x80000000; break; case 1: case 3: - if ((sRecordedBattle_Players[gUnknown_0203C7B4].battlerId & 1)) + if ((sPlayers[gUnknown_0203C7B4].battlerId & 1)) battleSave->battleFlags |= BATTLE_TYPE_x80000000; break; } @@ -383,7 +383,7 @@ u32 MoveRecordedBattleToSaveData(void) } else { - battleSave->battleFlags = sRecordedBattle_BattleFlags; + battleSave->battleFlags = sBattleFlags; } battleSave->opponentA = gTrainerBattleOpponent_A; @@ -391,11 +391,11 @@ u32 MoveRecordedBattleToSaveData(void) battleSave->partnerId = gPartnerTrainerId; battleSave->field_4FA = gUnknown_0203C7B4; battleSave->field_4FC = gSaveBlock2Ptr->field_CA9_b; - battleSave->field_4FD = sRecordedBattle_FrontierFacility; + battleSave->field_4FD = sFrontierFacility; battleSave->field_4FE = sUnknown_0203C7AF; battleSave->battleStyle = gSaveBlock2Ptr->optionsBattleStyle; battleSave->textSpeed = gSaveBlock2Ptr->optionsTextSpeed; - battleSave->AI_scripts = sRecordedBattle_AI_Scripts; + battleSave->AI_scripts = sAI_Scripts; /* Can't match it without proper knowledge of the Saveblock 2. if (gTrainerBattleOpponent_A >= 300 && gTrainerBattleOpponent_A <= 399) @@ -525,7 +525,7 @@ _0818535E:\n\ lsls r3, 3\n\ adds r3, r7, r3\n\ str r3, [sp, 0x8]\n\ - ldr r5, =sRecordedBattle_Players\n\ + ldr r5, =sPlayers\n\ mov r8, r6\n\ mov r12, r6\n\ movs r4, 0x96\n\ @@ -536,7 +536,7 @@ _0818535E:\n\ adds r4, r7, r0\n\ _081853AC:\n\ lsls r1, r6, 3\n\ - ldr r0, =sRecordedBattle_Players\n\ + ldr r0, =sPlayers\n\ adds r0, 0x4\n\ mov r3, r8\n\ adds r2, r3, r0\n\ @@ -578,7 +578,7 @@ _081853BA:\n\ ldr r5, =gRecordedBattleRngSeed\n\ ldr r0, [r5]\n\ str r0, [r1]\n\ - ldr r0, =sRecordedBattle_BattleFlags\n\ + ldr r0, =sBattleFlags\n\ ldr r2, [r0]\n\ movs r0, 0x2\n\ ands r0, r2\n\ @@ -608,7 +608,7 @@ _08185454:\n\ ands r2, r0\n\ cmp r2, 0\n\ beq _081854E2\n\ - ldr r2, =sRecordedBattle_Players\n\ + ldr r2, =sPlayers\n\ ldrh r0, [r2, 0xE]\n\ cmp r0, 0x1\n\ beq _081854A8\n\ @@ -630,7 +630,7 @@ _0818547E:\n\ lsls r0, r1, 2\n\ adds r0, r1\n\ lsls r0, 2\n\ - ldr r4, =sRecordedBattle_Players\n\ + ldr r4, =sPlayers\n\ adds r0, r4\n\ ldrh r1, [r0, 0xE]\n\ movs r0, 0x1\n\ @@ -647,7 +647,7 @@ _081854A8:\n\ lsls r0, r1, 2\n\ adds r0, r1\n\ lsls r0, 2\n\ - ldr r1, =sRecordedBattle_Players\n\ + ldr r1, =sPlayers\n\ adds r0, r1\n\ ldrh r1, [r0, 0xE]\n\ movs r0, 0x1\n\ @@ -700,7 +700,7 @@ _081854E2:\n\ ldr r5, =0x000004fc\n\ adds r1, r7, r5\n\ strb r0, [r1]\n\ - ldr r0, =sRecordedBattle_FrontierFacility\n\ + ldr r0, =sFrontierFacility\n\ ldrb r1, [r0]\n\ adds r2, 0x3\n\ adds r0, r7, r2\n\ @@ -735,7 +735,7 @@ _081854E2:\n\ movs r2, 0xA0\n\ lsls r2, 3\n\ adds r1, r7, r2\n\ - ldr r3, =sRecordedBattle_AI_Scripts\n\ + ldr r3, =sAI_Scripts\n\ ldr r0, [r3]\n\ str r0, [r1]\n\ ldr r4, =0xfffffed4\n\ @@ -1354,11 +1354,11 @@ static void SetRecordedBattleVarsFromSave(struct RecordedBattleSave *src) gPartnerTrainerId = src->partnerId; gUnknown_0203C7B4 = src->field_4FA; sUnknown_0203C7AD = gSaveBlock2Ptr->frontierChosenLvl; - sRecordedBattle_FrontierFacility = src->field_4FD; + sFrontierFacility = src->field_4FD; sUnknown_0203C7AF = src->field_4FE; - sRecordedBattle_BattleStyle = src->battleStyle; - sRecordedBattle_TextSpeed = src->textSpeed; - sRecordedBattle_AI_Scripts = src->AI_scripts; + sBattleStyle = src->battleStyle; + sTextSpeed = src->textSpeed; + sAI_Scripts = src->AI_scripts; for (i = 0; i < 8; i++) { @@ -1417,7 +1417,7 @@ static void CB2_RecordedBattle(void) u8 GetRecordedBattleFrontierFacility(void) { - return sRecordedBattle_FrontierFacility; + return sFrontierFacility; } u8 sub_8185EAC(void) @@ -1480,12 +1480,12 @@ u8 sub_8185FAC(void) u8 GetBattleStyleInRecordedBattle(void) { - return sRecordedBattle_BattleStyle; + return sBattleStyle; } u8 GetTextSpeedInRecordedBattle(void) { - return sRecordedBattle_TextSpeed; + return sTextSpeed; } void RecordedBattle_CopyBattlerMoves(void) @@ -1501,7 +1501,7 @@ void RecordedBattle_CopyBattlerMoves(void) for (i = 0; i < 4; i++) { - sRecordedBattle_PlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i]; + sPlayerMonMoves[gActiveBattler / 2][i] = gBattleMons[gActiveBattler].moves[i]; } } @@ -1522,7 +1522,7 @@ void sub_818603C(u8 arg0) { for (j = 0; j < 4; j++) { - if (gBattleMons[battlerId].moves[j] != sRecordedBattle_PlayerMonMoves[battlerId / 2][j]) + if (gBattleMons[battlerId].moves[j] != sPlayerMonMoves[battlerId / 2][j]) break; } if (j != 4) // player's mon's move has been changed @@ -1532,7 +1532,7 @@ void sub_818603C(u8 arg0) { for (k = 0; k < 4; k++) { - if (gBattleMons[battlerId].moves[j] == sRecordedBattle_PlayerMonMoves[battlerId / 2][k]) + if (gBattleMons[battlerId].moves[j] == sPlayerMonMoves[battlerId / 2][k]) { RecordedBattle_SetBattlerAction(battlerId, k); break; @@ -1612,7 +1612,7 @@ void sub_818603C(u8 arg0) u32 GetAiScriptsInRecordedBattle(void) { - return sRecordedBattle_AI_Scripts; + return sAI_Scripts; } void sub_8186444(void)