From 5acc7f53e1e0e7e73a37f8eeb6a54dbf5bc6b905 Mon Sep 17 00:00:00 2001 From: Viperio Date: Wed, 4 Feb 2026 10:31:57 +0100 Subject: [PATCH] document BattleSystem struct and battle_system.c --- include/battle/battle_display.h | 2 +- include/battle/battle_lib.h | 2 +- .../{ov16_0223DF00.h => battle_system.h} | 178 +- include/battle/struct_ov16_0225CBB8.h | 2 +- include/battle/struct_ov16_0225D1C4.h | 2 +- include/battle/struct_ov16_0225D360.h | 2 +- include/battle/struct_ov16_0225D3CC.h | 2 +- include/battle/struct_ov16_0225D5B8.h | 2 +- include/battle/struct_ov16_0225D698.h | 2 +- include/battle/struct_ov16_0225D708.h | 2 +- include/battle/struct_ov16_0225D794.h | 2 +- include/battle/struct_ov16_0225D840.h | 2 +- include/battle/struct_ov16_0225D8AC.h | 2 +- include/battle/struct_ov16_0225D9A8.h | 2 +- include/battle/struct_ov16_0225DA44.h | 2 +- include/battle/struct_ov16_0225DB74.h | 2 +- include/battle/struct_ov16_0225DC7C.h | 2 +- include/battle/struct_ov16_0225DCB0.h | 2 +- include/battle/struct_ov16_0225DF34.h | 2 +- include/battle/struct_ov16_0225DF6C.h | 2 +- include/battle/struct_ov16_0225E0BC.h | 2 +- include/battle/struct_ov16_0225E0F4.h | 2 +- include/battle/struct_ov16_0225E2C8.h | 2 +- include/battle/struct_ov16_0225E300.h | 2 +- include/battle/struct_ov16_0225E4E8.h | 2 +- include/battle/struct_ov16_0225EA80.h | 2 +- include/battle/struct_ov16_0225F764.h | 2 +- include/battle/struct_ov16_02260384.h | 2 +- include/battle/struct_ov16_02264650_1.h | 2 +- include/battle_sub_menus/battle_bag.h | 2 +- include/battle_sub_menus/battle_party.h | 2 +- include/math_util.h | 1 + include/struct_defs/battle_system.h | 82 +- include/struct_defs/struct_0207ACB4.h | 2 +- include/struct_defs/struct_0207AD40.h | 2 +- platinum.us/main.lsf | 2 +- src/battle/battle_controller.c | 136 +- src/battle/battle_controller_player.c | 193 +- src/battle/battle_cursor.c | 146 +- src/battle/battle_display.c | 1030 ++++---- src/battle/battle_io_command.c | 54 +- src/battle/battle_lib.c | 218 +- src/battle/battle_script.c | 580 ++-- src/battle/battle_system.c | 2324 +++++++++++++++++ src/battle/healthbar.c | 30 +- src/battle/ov16_0223B140.c | 396 ++- src/battle/ov16_0223DF00.c | 2319 ---------------- src/battle/ov16_02264798.c | 4 +- src/battle/ov16_02268520.c | 8 +- src/battle/ov16_0226E148.c | 12 +- src/battle/party_gauge.c | 2 +- src/battle/trainer_ai/trainer_ai.c | 118 +- src/battle_anim/battle_anim_system.c | 18 +- src/battle_sub_menus/battle_bag.c | 36 +- src/battle_sub_menus/battle_bag_sprites.c | 16 +- src/battle_sub_menus/battle_bag_text.c | 4 +- src/battle_sub_menus/battle_party.c | 40 +- src/battle_sub_menus/battle_party_sprites.c | 24 +- src/battle_sub_menus/battle_party_text.c | 8 +- src/meson.build | 2 +- src/pokemon_sprite.c | 2 +- src/unk_0207A6DC.c | 56 +- src/unk_020933F8.c | 2 +- 63 files changed, 4054 insertions(+), 4051 deletions(-) rename include/battle/{ov16_0223DF00.h => battle_system.h} (58%) create mode 100644 src/battle/battle_system.c delete mode 100644 src/battle/ov16_0223DF00.c diff --git a/include/battle/battle_display.h b/include/battle/battle_display.h index 91b200b86b..11693dd54d 100644 --- a/include/battle/battle_display.h +++ b/include/battle/battle_display.h @@ -124,7 +124,7 @@ void ov16_02263730(BattleSystem *battleSys, BattlerData *param1); u8 Battler_Type(BattlerData *param0); u8 Battler_BootState(BattlerData *param0); PokemonSprite *ov16_02263AFC(BattlerData *param0); -Healthbar *ov16_02263B08(BattlerData *param0); +Healthbar *BattlerData_GetHealthbar(BattlerData *param0); UnkStruct_ov16_0226C378 *ov16_02263B0C(BattlerData *param0); void ov16_02263B10(BattlerData *param0); void ov16_02263B20(BattlerData *param0, int param1); diff --git a/include/battle/battle_lib.h b/include/battle/battle_lib.h index daf379dbe0..37a4eb225d 100644 --- a/include/battle/battle_lib.h +++ b/include/battle/battle_lib.h @@ -1416,7 +1416,7 @@ void BattleSystem_DecPPForPressure(BattleContext *battleCtx, int attacker, int d * @param battleCtx * @return TRUE if the recording has stopped, FALSE otherwise. */ -BOOL Battle_RecordingStopped(BattleSystem *battleSys, BattleContext *battleCtx); +BOOL BattleSystem_IsRecordingStopped(BattleSystem *battleSys, BattleContext *battleCtx); /** * @brief Get an accessible field from the BattleContext struct. diff --git a/include/battle/ov16_0223DF00.h b/include/battle/battle_system.h similarity index 58% rename from include/battle/ov16_0223DF00.h rename to include/battle/battle_system.h index 97e2bd769f..f482b18d0b 100644 --- a/include/battle/ov16_0223DF00.h +++ b/include/battle/battle_system.h @@ -1,5 +1,5 @@ -#ifndef POKEPLATINUM_OV16_0223DF00_H -#define POKEPLATINUM_OV16_0223DF00_H +#ifndef POKEPLATINUM_BATTLE_SYSTEM_H +#define POKEPLATINUM_BATTLE_SYSTEM_H #include "constants/rtc.h" #include "generated/trainer_message_types.h" @@ -41,7 +41,7 @@ #define ENEMY_IN_SLOT_RIGHT 0 #define ENEMY_IN_SLOT_LEFT 2 -BgConfig *BattleSystem_BGL(BattleSystem *battleSys); +BgConfig *BattleSystem_GetBgConfig(BattleSystem *battleSys); /** * @brief Get one of the allocated windows for the battle display. @@ -50,12 +50,12 @@ BgConfig *BattleSystem_BGL(BattleSystem *battleSys); * @param idx * @return */ -Window *BattleSystem_Window(BattleSystem *battleSys, int idx); -u32 BattleSystem_BattleType(BattleSystem *battleSys); -BattleContext *BattleSystem_Context(BattleSystem *battleSys); -BattlerData *BattleSystem_BattlerData(BattleSystem *battleSys, int param1); -int BattleSystem_MaxBattlers(BattleSystem *battleSys); -Party *BattleSystem_Party(BattleSystem *battleSys, int param1); +Window *BattleSystem_GetWindow(BattleSystem *battleSys, int idx); +u32 BattleSystem_GetBattleType(BattleSystem *battleSys); +BattleContext *BattleSystem_GetBattleContext(BattleSystem *battleSys); +BattlerData *BattleSystem_GetBattlerData(BattleSystem *battleSys, int battler); +int BattleSystem_GetMaxBattlers(BattleSystem *battleSys); +Party *BattleSystem_GetParty(BattleSystem *battleSys, int battler); /** * @brief Get the party count for a particular battler. @@ -73,7 +73,7 @@ Party *BattleSystem_Party(BattleSystem *battleSys, int param1); * @param battler The battler party to count. * @return Number of Pokemon in the requested battler's party. */ -int BattleSystem_PartyCount(BattleSystem *battleSys, int battler); +int BattleSystem_GetPartyCount(BattleSystem *battleSys, int battler); /** * @brief Get a Pokemon from the given battler's party, choosing it from the @@ -84,31 +84,31 @@ int BattleSystem_PartyCount(BattleSystem *battleSys, int battler); * @param slot Index of the Pokemon in the party to retrieve. * @return Pointer to the Pokemon struct in that battler's party slot. */ -Pokemon *BattleSystem_PartyPokemon(BattleSystem *battleSys, int battler, int slot); +Pokemon *BattleSystem_GetPartyPokemon(BattleSystem *battleSys, int battler, int slot); PokemonSpriteManager *BattleSystem_GetPokemonSpriteManager(BattleSystem *battleSys); -BattleAnimSystem *ov16_0223E008(BattleSystem *battleSys); +BattleAnimSystem *BattleSystem_GetBattleAnimSystem(BattleSystem *battleSys); SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSys); SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSys); UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSys, int param1); UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSys); -PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide param1); -void BattleSystem_SetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide param1, PartyGauge *param2); -FontSpecialCharsContext *ov16_0223E04C(BattleSystem *battleSys); -FontSpecialCharsContext *ov16_0223E054(BattleSystem *battleSys); +PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide partyGaugeSide); +void BattleSystem_SetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide partyGaugeSide, PartyGauge *partyGauge); +FontSpecialCharsContext *BattleSystem_GetSpecialCharsHP(BattleSystem *battleSys); +FontSpecialCharsContext *BattleSystem_GetSpecialCharsLevel(BattleSystem *battleSys); MessageLoader *BattleSystem_GetMessageLoader(BattleSystem *battleSys); -MessageLoader *ov16_0223E060(BattleSystem *battleSys); -PaletteData *BattleSystem_PaletteSys(BattleSystem *battleSys); +MessageLoader *BattleSystem_GetAttackMessageLoader(BattleSystem *battleSys); +PaletteData *BattleSystem_GetPaletteData(BattleSystem *battleSys); Pokedex *BattleSystem_GetPokedex(BattleSystem *battleSys); -u8 *ov16_0223E06C(BattleSystem *battleSys); -u8 *ov16_0223E074(BattleSystem *battleSys); -u16 *ov16_0223E080(BattleSystem *battleSys); -u16 *ov16_0223E08C(BattleSystem *battleSys); -u16 *ov16_0223E098(BattleSystem *battleSys); -u16 *ov16_0223E0A4(BattleSystem *battleSys); -u16 *ov16_0223E0B0(BattleSystem *battleSys); -u16 *ov16_0223E0BC(BattleSystem *battleSys); -PokemonSpriteData *ov16_0223E0C8(BattleSystem *battleSys); -StringTemplate *BattleSystem_StringTemplate(BattleSystem *battleSys); +u8 *BattleSystem_GetServerMessage(BattleSystem *battleSys); +u8 *BattleSystem_GetClientMessage(BattleSystem *battleSys); +u16 *BattleSystem_GetServerReadIndex(BattleSystem *battleSys); +u16 *BattleSystem_GetServerWriteIndex(BattleSystem *battleSys); +u16 *BattleSystem_GetServerEndIndex(BattleSystem *battleSys); +u16 *BattleSystem_GetClientReadIndex(BattleSystem *battleSys); +u16 *BattleSystem_GetClientWriteIndex(BattleSystem *battleSys); +u16 *BattleSystem_GetClientEndIndex(BattleSystem *battleSys); +PokemonSpriteData *BattleSystem_GetPokemonSpriteData(BattleSystem *battleSys); +StringTemplate *BattleSystem_GetStringTemplate(BattleSystem *battleSys); String *BattleSystem_GetMsgBuffer(BattleSystem *battleSys); /** @@ -118,8 +118,8 @@ String *BattleSystem_GetMsgBuffer(BattleSystem *battleSys); * @param battler * @return The battler's trainer ID */ -u16 Battler_TrainerID(BattleSystem *battleSys, int battler); -Trainer *BattleSystem_GetTrainer(BattleSystem *battleSys, int param1); +u16 Battler_GetTrainerID(BattleSystem *battleSys, int battler); +Trainer *BattleSystem_GetTrainer(BattleSystem *battleSys, int battler); /** * @brief Get the trainer info for a particular battler. @@ -128,9 +128,9 @@ Trainer *BattleSystem_GetTrainer(BattleSystem *battleSys, int param1); * @param battler * @return The trainer info for the requested battler. */ -TrainerInfo *BattleSystem_TrainerInfo(BattleSystem *battleSys, int battler); -Bag *BattleSystem_Bag(BattleSystem *battleSys); -BagCursor *BattleSystem_BagCursor(BattleSystem *battleSys); +TrainerInfo *BattleSystem_GetTrainerInfo(BattleSystem *battleSys, int battler); +Bag *BattleSystem_GetBag(BattleSystem *battleSys); +BagCursor *BattleSystem_GetBagCursor(BattleSystem *battleSys); u32 BattleSystem_GetTrainerGender(BattleSystem *battleSys, int battler); /** @@ -140,11 +140,11 @@ u32 BattleSystem_GetTrainerGender(BattleSystem *battleSys, int battler); * @param type The type of battler. * @return ID of the battler of the given type. */ -int BattleSystem_BattlerOfType(BattleSystem *battleSys, int type); -u8 BattleSystem_BattlerSlot(BattleSystem *battleSys, int param1); -u8 Battler_Side(BattleSystem *battleSys, int param1); +int BattleSystem_GetBattlerOfType(BattleSystem *battleSys, int type); +u8 BattleSystem_GetBattlerType(BattleSystem *battleSys, int battler); +u8 BattleSystem_GetBattlerSide(BattleSystem *battleSys, int battler); UnkStruct_020157E4 *ov16_0223E220(BattleSystem *battleSys); -PCBoxes *BattleSystem_PCBoxes(BattleSystem *battleSys); +PCBoxes *BattleSystem_GetPCBoxes(BattleSystem *battleSys); /** * @brief Get the terrain type for the battle. @@ -152,10 +152,10 @@ PCBoxes *BattleSystem_PCBoxes(BattleSystem *battleSys); * @param battleSys * @return The battle's terrain. */ -enum BattleTerrain BattleSystem_Terrain(BattleSystem *battleSys); -enum BattleBackground BattleSystem_Background(BattleSystem *battleSys); -int BattleSystem_MapHeader(BattleSystem *battleSys); -int BattleSystem_Partner(BattleSystem *battleSys, int param1); +enum BattleTerrain BattleSystem_GetTerrain(BattleSystem *battleSys); +enum BattleBackground BattleSystem_GetBackground(BattleSystem *battleSys); +int BattleSystem_GetMapHeader(BattleSystem *battleSys); +int BattleSystem_GetPartner(BattleSystem *battleSys, int battler); /** * @brief Get the battler who is an enemy of the input attacker and occupies @@ -169,7 +169,7 @@ int BattleSystem_Partner(BattleSystem *battleSys, int param1); * @param slot * @return Battler who is an enemy and in the given slot on the enemy team. */ -int BattleSystem_EnemyInSlot(BattleSystem *battleSys, int attacker, int slot); +int BattleSystem_GetEnemyInSlot(BattleSystem *battleSys, int attacker, int slot); /** * @brief Use an item from the bag on the given battler. @@ -182,7 +182,7 @@ int BattleSystem_EnemyInSlot(BattleSystem *battleSys, int attacker, int slot); * @return TRUE if the item has an effect; FALSE otherwise */ BOOL BattleSystem_UseBagItem(BattleSystem *battleSys, int battler, int partySlot, int moveSlot, int item); -u32 BattleSystem_BattleStatus(BattleSystem *battleSys); +u32 BattleSystem_GetBattleStatusMask(BattleSystem *battleSys); /** * @brief Get the time of day. @@ -190,14 +190,14 @@ u32 BattleSystem_BattleStatus(BattleSystem *battleSys); * @param battleSys * @return The time of day (e.g., morning, day, night) */ -enum TimeOfDay BattleSystem_Time(BattleSystem *battleSys); -int ov16_0223EC04(BattleSystem *battleSys); -u8 ov16_0223EC58(BattleSystem *battleSys, int param1, u8 param2); -u16 Battle_FindEvolvingPartyMember(FieldBattleDTO *param0, int *param1, int *param2); +enum TimeOfDay BattleSystem_GetTime(BattleSystem *battleSys); +int BattleSystem_GetBackgroundTimeOffset(BattleSystem *battleSys); +u8 ov16_0223EC58(BattleSystem *battleSys, int battler, u8 param2); +u16 Battle_FindEvolvingPartyMember(FieldBattleDTO *dto, int *outPartySlot, int *outEvoType); u8 ov16_0223ED60(BattleSystem *battleSys); -u8 ov16_0223ED6C(BattleSystem *battleSys); -int BattleSystem_NumSafariBalls(BattleSystem *battleSys); -void BattleSystem_SetSafariBalls(BattleSystem *battleSys, int param1); +u8 BattleSystem_GetSafariEscapeCount(BattleSystem *battleSys); +int BattleSystem_GetNumSafariBalls(BattleSystem *battleSys); +void BattleSystem_SetNumSafariBalls(BattleSystem *battleSys, int value); Options *BattleSystem_GetOptions(BattleSystem *battleSys); /** @@ -206,73 +206,73 @@ Options *BattleSystem_GetOptions(BattleSystem *battleSys); * @param battleSys * @return TRUE if battle animations are enabled, FALSE if not. */ -BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys); -int ov16_0223EDE0(BattleSystem *battleSys); -u8 BattleSystem_TextSpeed(BattleSystem *battleSys); -int BattleSystem_Ruleset(BattleSystem *battleSys); +BOOL BattleSystem_AreAnimationsOn(BattleSystem *battleSys); +int BattleSystem_GetOptionsFrame(BattleSystem *battleSys); +u8 BattleSystem_GetTextSpeed(BattleSystem *battleSys); +int BattleSystem_GetBattleStyle(BattleSystem *battleSys); PokemonAnimManager *BattleSystem_GetPokemonAnimManager(BattleSystem *battleSys); -ChatotCry *BattleSystem_ChatotVoice(BattleSystem *battleSys, int param1); +ChatotCry *BattleSystem_GetChatotCry(BattleSystem *battleSys, int battler); void BattleSystem_SetBurmyForm(BattleSystem *battleSys); void ov16_0223EF2C(BattleSystem *battleSys, int param1, int param2); -void ov16_0223EF48(BattleSystem *battleSys, Pokemon *param1); -void ov16_0223EF68(BattleSystem *battleSys, Pokemon *param1); +void BattleSystem_EnqueuePokemonHistory(BattleSystem *battleSys, Pokemon *mon); +void BattleSystem_InitCaptureAttempt(BattleSystem *battleSys, Pokemon *mon); void ov16_0223EF8C(BattleSystem *battleSys); u8 *ov16_0223F1E8(BattleSystem *battleSys); u16 *ov16_0223F1F0(BattleSystem *battleSys); -int ov16_0223F1F8(BattleSystem *battleSys); +int BattleSystem_GetVisistedContestHall(BattleSystem *battleSys); u16 *ov16_0223F204(BattleSystem *battleSys); u16 *ov16_0223F210(BattleSystem *battleSys); -int BattleSystem_FieldWeather(BattleSystem *battleSys); -u8 ov16_0223F228(BattleSystem *battleSys); -void ov16_0223F234(BattleSystem *battleSys, u8 param1); +int BattleSystem_GetFieldWeather(BattleSystem *battleSys); +u8 BattleSystem_GetCatchingTutorialLowHP(BattleSystem *battleSys); +void BattleSystem_SetCatchingTutorialLowHP(BattleSystem *battleSys, u8 value); int BattleSystem_GetMetBebe(BattleSystem *battleSys); void BattleSystem_TryIncrementRecordValue(BattleSystem *battleSys, int id); void BattleSystem_TryIncrementTrainerScoreCaughtSpecies(BattleSystem *battleSys); void BattleSystem_SetCommandSelectionFlags(BattleSystem *battleSys, int flags); void ov16_0223F290(BattleSystem *battleSys, int param1); -WaitDial *Battle_GetWaitDial(BattleSystem *battleSys); -void Battle_SetWaitDial(BattleSystem *battleSys, WaitDial *waitDial); -PokemonSpriteData *ov16_0223F2AC(BattleSystem *battleSys, int param1); -u8 *ov16_0223F2B8(PokemonSpriteData *pokemonSpriteData, int param1); -void PokemonSpriteData_SetNarcID(PokemonSpriteData *pokemonSpriteData, int param1, int param2); -void PokemonSpriteData_SetPalette(PokemonSpriteData *pokemonSpriteData, int param1, int param2); -void PokemonSpriteData_SetYOffset(PokemonSpriteData *pokemonSpriteData, int param1, int param2); +WaitDial *BattleSystem_GetWaitDial(BattleSystem *battleSys); +void BattleSystem_SetWaitDial(BattleSystem *battleSys, WaitDial *waitDial); +PokemonSpriteData *BattleSystem_GetPokemonSpriteDataByIndex(BattleSystem *battleSys, int battler); +u8 *PokemonSpriteData_GetTiles(PokemonSpriteData *pokemonSpriteData, int idx); +void PokemonSpriteData_SetNarcID(PokemonSpriteData *pokemonSpriteData, int idx, int value); +void PokemonSpriteData_SetPalette(PokemonSpriteData *pokemonSpriteData, int idx, int value); +void PokemonSpriteData_SetYOffset(PokemonSpriteData *pokemonSpriteData, int idx, int value); void ov16_0223F314(BattleSystem *battleSys, int param1); void ov16_0223F320(BattleSystem *battleSys, u8 *param1); void ov16_0223F32C(BattleSystem *battleSys, u8 *param1); void ov16_0223F338(BattleSystem *battleSys, u8 param1); void ov16_0223F344(BattleSystem *battleSys, u8 param1); -void ov16_0223F350(BattleSystem *battleSys, u8 param1); -void *ov16_0223F35C(BattleSystem *battleSys, int param1); +void BattleSystem_SetCommandIsEndWait(BattleSystem *battleSys, u8 value); +void *BattleSystem_GetHealthbar(BattleSystem *battleSys, int battler); void ov16_0223F36C(BattleSystem *battleSys); void ov16_0223F3BC(BattleSystem *battleSys); void ov16_0223F3EC(BattleSystem *battleSys); void ov16_0223F414(BattleSystem *battleSys); -u8 BattleSystem_ResultMask(BattleSystem *battleSys); -void BattleSystem_SetResultFlag(BattleSystem *battleSys, u8 param1); -u8 ov16_0223F450(BattleSystem *battleSys); -void BattleSystem_SetRedHPSoundFlag(BattleSystem *battleSys, u8 param1); -u8 ov16_0223F47C(BattleSystem *battleSys); -void ov16_0223F48C(BattleSystem *battleSys, u8 param1); +u8 BattleSystem_GetResultMask(BattleSystem *battleSys); +void BattleSystem_SetResultMask(BattleSystem *battleSys, u8 value); +u8 BattleSystem_GetRedHPSoundFlag(BattleSystem *battleSys); +void BattleSystem_SetRedHPSoundFlag(BattleSystem *battleSys, u8 value); +u8 BattleSystem_GetRedHPSoundEffectDelay(BattleSystem *battleSys); +void BattleSystem_SetRedHPSoundEffectDelay(BattleSystem *battleSys, u8 value); void BattleSystem_SetCaughtBattlerIndex(BattleSystem *battleSys, int value); u16 BattleSystem_RandNext(BattleSystem *battleSys); -u32 ov16_0223F4E8(BattleSystem *battleSys); -void ov16_0223F4F4(BattleSystem *battleSys, u32 param1); +u32 BattleSystem_GetSeedDTO(BattleSystem *battleSys); +void BattleSystem_SetSeedDTO(BattleSystem *battleSys, u32 value); void BattleSystem_Record(BattleSystem *battleSys, int param1, u8 param2); BOOL ov16_0223F530(BattleSystem *battleSys, int param1, u8 *param2); u8 ov16_0223F58C(BattleSystem *battleSys, u8 *param1); void ov16_0223F638(BattleSystem *battleSys, u16 param1, u8 *param2); -u16 ov16_0223F6E4(BattleSystem *battleSys); -int ov16_0223F6F0(BattleSystem *battleSys, u16 param1); -u16 BattleSystem_TrainerItems(BattleSystem *battleSys, int param1, int param2); -u32 BattleSystem_RecordingStopped(BattleSystem *battleSys); +u16 BattleSystem_GetNetworkID(BattleSystem *battleSys); +int ov16_0223F6F0(BattleSystem *battleSys, u16 battler); +u16 BattleSystem_GetTrainerItem(BattleSystem *battleSys, int battler, int param2); +u32 BattleSystem_GetRecordingStopped(BattleSystem *battleSys); void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag); BOOL ov16_0223F7A4(BattleSystem *battleSys); void BattleSystem_ShowStopPlaybackButton(BattleSystem *battleSys); -u8 BattleSystem_RecordedChatter(BattleSystem *battleSys, int param1); +u8 BattleSystem_GetRecordedChatter(BattleSystem *battleSys, int battler); void ov16_0223F858(BattleSystem *battleSys, u8 *param1); void ov16_0223F87C(BattleSystem *battleSys, u8 *param1); -void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **param1); +void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **monSprites); void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1); /** @@ -285,7 +285,7 @@ void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1); * @return The total amount of money to be deducted from the player */ u32 BattleSystem_CalcMoneyPenalty(Party *party, TrainerInfo *trainerInfo); -void BattleSystem_DexFlagSeen(BattleSystem *battleSys, int param1); +void BattleSystem_DexFlagSeen(BattleSystem *battleSys, int battler); void BattleSystem_DexFlagCaught(BattleSystem *battleSys, int battler); /** @@ -296,9 +296,9 @@ void BattleSystem_DexFlagCaught(BattleSystem *battleSys, int battler); * @return TRUE if the player has previously caught a member of the given species, * FALSE if not. */ -BOOL BattleSystem_CaughtSpecies(BattleSystem *battleSys, int species); +BOOL BattleSystem_HasCaughtSpecies(BattleSystem *battleSys, int species); void Battle_SetDefaultBlend(void); -u8 ov16_0223F9FC(BattleSystem *battleSys, int trainerID, int param2, enum TrainerMessageType msgType, int param4); +u8 BattleMessage_PrintTrainerMessage(BattleSystem *battleSys, int trainerID, int battler, enum TrainerMessageType msgType, int renderDelay); /** * @brief Print a BattleMessage to the main text display window. @@ -310,6 +310,6 @@ u8 ov16_0223F9FC(BattleSystem *battleSys, int trainerID, int param2, enum Traine * @return */ u8 BattleMessage_Print(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg, int renderDelay); -u8 BattleMessage_PrintToWindow(BattleSystem *battleSys, Window *param1, MessageLoader *param2, BattleMessage *param3, int param4, int param5, int param6, int param7, int param8); +u8 BattleMessage_PrintToWindow(BattleSystem *battleSys, Window *window, MessageLoader *msgLoader, BattleMessage *battleMsg, int xOffset, int yOffset, int param6, int param7, int renderDelay); -#endif // POKEPLATINUM_OV16_0223DF00_H +#endif // POKEPLATINUM_BATTLE_SYSTEM_H diff --git a/include/battle/struct_ov16_0225CBB8.h b/include/battle/struct_ov16_0225CBB8.h index 2a9096215c..6d4c7c4dc5 100644 --- a/include/battle/struct_ov16_0225CBB8.h +++ b/include/battle/struct_ov16_0225CBB8.h @@ -7,7 +7,7 @@ #include "battle_anim/struct_ov12_02238004_decl.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; UnkStruct_ov12_02237F98 *unk_04; UnkStruct_ov12_02238004 *unk_08[3]; u8 unk_14; diff --git a/include/battle/struct_ov16_0225D1C4.h b/include/battle/struct_ov16_0225D1C4.h index 7de6087041..16aed7d76e 100644 --- a/include/battle/struct_ov16_0225D1C4.h +++ b/include/battle/struct_ov16_0225D1C4.h @@ -6,7 +6,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; PokemonSprite *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225D360.h b/include/battle/struct_ov16_0225D360.h index b3d7b8a4be..c0f0ded2b5 100644 --- a/include/battle/struct_ov16_0225D360.h +++ b/include/battle/struct_ov16_0225D360.h @@ -6,7 +6,7 @@ #include "battle/struct_ov16_0225BFFC_decl.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225D3CC.h b/include/battle/struct_ov16_0225D3CC.h index b21fe6e32f..f7087ac5fd 100644 --- a/include/battle/struct_ov16_0225D3CC.h +++ b/include/battle/struct_ov16_0225D3CC.h @@ -6,7 +6,7 @@ #include "battle/struct_ov16_0225BFFC_decl.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225D5B8.h b/include/battle/struct_ov16_0225D5B8.h index 015f06560a..f6fd95ff7c 100644 --- a/include/battle/struct_ov16_0225D5B8.h +++ b/include/battle/struct_ov16_0225D5B8.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; void *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225D698.h b/include/battle/struct_ov16_0225D698.h index df46ddfec9..4048218df6 100644 --- a/include/battle/struct_ov16_0225D698.h +++ b/include/battle/struct_ov16_0225D698.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; void *unk_04; int unk_08; u16 unk_0C[4]; diff --git a/include/battle/struct_ov16_0225D708.h b/include/battle/struct_ov16_0225D708.h index 4ebdb083a0..3d9c7f075f 100644 --- a/include/battle/struct_ov16_0225D708.h +++ b/include/battle/struct_ov16_0225D708.h @@ -6,7 +6,7 @@ #include "battle/struct_ov16_0225C29C_sub1.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; void *unk_04; int unk_08; u8 unk_0C; diff --git a/include/battle/struct_ov16_0225D794.h b/include/battle/struct_ov16_0225D794.h index aaa874fefe..b3323f379b 100644 --- a/include/battle/struct_ov16_0225D794.h +++ b/include/battle/struct_ov16_0225D794.h @@ -5,7 +5,7 @@ #include "battle_sub_menus/battle_bag.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattleBagContext *unk_04; UnkStruct_ov16_0225D840 *unk_08; u8 unk_0C; diff --git a/include/battle/struct_ov16_0225D840.h b/include/battle/struct_ov16_0225D840.h index 1cf027ad2f..a75224c3c5 100644 --- a/include/battle/struct_ov16_0225D840.h +++ b/include/battle/struct_ov16_0225D840.h @@ -4,7 +4,7 @@ #include "battle_sub_menus/battle_party.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlePartyContext *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225D8AC.h b/include/battle/struct_ov16_0225D8AC.h index b73fd927d8..f1f0d75438 100644 --- a/include/battle/struct_ov16_0225D8AC.h +++ b/include/battle/struct_ov16_0225D8AC.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; void *unk_04; int unk_08; u8 unk_0C; diff --git a/include/battle/struct_ov16_0225D9A8.h b/include/battle/struct_ov16_0225D9A8.h index faf96eb9b4..3b14c16c34 100644 --- a/include/battle/struct_ov16_0225D9A8.h +++ b/include/battle/struct_ov16_0225D9A8.h @@ -10,7 +10,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; BattleAnimSystem *unk_0C; diff --git a/include/battle/struct_ov16_0225DA44.h b/include/battle/struct_ov16_0225DA44.h index 0e01892855..9f00bd6231 100644 --- a/include/battle/struct_ov16_0225DA44.h +++ b/include/battle/struct_ov16_0225DA44.h @@ -6,7 +6,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; PokemonSprite *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225DB74.h b/include/battle/struct_ov16_0225DB74.h index a55366fd74..5ddae9fbc9 100644 --- a/include/battle/struct_ov16_0225DB74.h +++ b/include/battle/struct_ov16_0225DB74.h @@ -9,7 +9,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; MoveAnimation unk_0C; diff --git a/include/battle/struct_ov16_0225DC7C.h b/include/battle/struct_ov16_0225DC7C.h index fe26f0d00d..f022a35f21 100644 --- a/include/battle/struct_ov16_0225DC7C.h +++ b/include/battle/struct_ov16_0225DC7C.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; u8 unk_04; u8 unk_05; u8 unk_06; diff --git a/include/battle/struct_ov16_0225DCB0.h b/include/battle/struct_ov16_0225DCB0.h index 584aaae5fd..67812214d0 100644 --- a/include/battle/struct_ov16_0225DCB0.h +++ b/include/battle/struct_ov16_0225DCB0.h @@ -7,7 +7,7 @@ #include "battle/struct_ov16_02265BBC.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; MoveAnimation unk_08; u8 unk_60; diff --git a/include/battle/struct_ov16_0225DF34.h b/include/battle/struct_ov16_0225DF34.h index d71a0aa760..6cb9235e77 100644 --- a/include/battle/struct_ov16_0225DF34.h +++ b/include/battle/struct_ov16_0225DF34.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; void *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225DF6C.h b/include/battle/struct_ov16_0225DF6C.h index 52a4680c52..856dcf08d8 100644 --- a/include/battle/struct_ov16_0225DF6C.h +++ b/include/battle/struct_ov16_0225DF6C.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; u8 unk_04; u8 unk_05; u8 unk_06; diff --git a/include/battle/struct_ov16_0225E0BC.h b/include/battle/struct_ov16_0225E0BC.h index 74079bfd0a..40d05c5f53 100644 --- a/include/battle/struct_ov16_0225E0BC.h +++ b/include/battle/struct_ov16_0225E0BC.h @@ -4,7 +4,7 @@ #include "battle_sub_menus/battle_party.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlePartyContext *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225E0F4.h b/include/battle/struct_ov16_0225E0F4.h index d5e5c286c8..10e2ca07e0 100644 --- a/include/battle/struct_ov16_0225E0F4.h +++ b/include/battle/struct_ov16_0225E0F4.h @@ -6,7 +6,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; PokemonSprite *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_0225E2C8.h b/include/battle/struct_ov16_0225E2C8.h index e6a283ef28..616912c0e1 100644 --- a/include/battle/struct_ov16_0225E2C8.h +++ b/include/battle/struct_ov16_0225E2C8.h @@ -8,7 +8,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; u8 unk_0C; diff --git a/include/battle/struct_ov16_0225E300.h b/include/battle/struct_ov16_0225E300.h index fd9068fcb6..b713c80a35 100644 --- a/include/battle/struct_ov16_0225E300.h +++ b/include/battle/struct_ov16_0225E300.h @@ -8,7 +8,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; u8 unk_0C; diff --git a/include/battle/struct_ov16_0225E4E8.h b/include/battle/struct_ov16_0225E4E8.h index e3dac275bc..17c78fc0da 100644 --- a/include/battle/struct_ov16_0225E4E8.h +++ b/include/battle/struct_ov16_0225E4E8.h @@ -9,7 +9,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; UnkStruct_ov16_02268520 *unk_0C; diff --git a/include/battle/struct_ov16_0225EA80.h b/include/battle/struct_ov16_0225EA80.h index b21c9067b7..8135cb65c7 100644 --- a/include/battle/struct_ov16_0225EA80.h +++ b/include/battle/struct_ov16_0225EA80.h @@ -11,7 +11,7 @@ #include "battle_anim/struct_ov12_02235FE0_decl.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; UnkStruct_ov12_02235FE0 *unk_08; BallRotation *unk_0C; diff --git a/include/battle/struct_ov16_0225F764.h b/include/battle/struct_ov16_0225F764.h index 66bc11c853..34030d9965 100644 --- a/include/battle/struct_ov16_0225F764.h +++ b/include/battle/struct_ov16_0225F764.h @@ -10,7 +10,7 @@ #include "pokemon_sprite.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; BattlerData *unk_04; PokemonSprite *unk_08; BallRotation *unk_0C; diff --git a/include/battle/struct_ov16_02260384.h b/include/battle/struct_ov16_02260384.h index 81d1613f12..b4d4527632 100644 --- a/include/battle/struct_ov16_02260384.h +++ b/include/battle/struct_ov16_02260384.h @@ -6,7 +6,7 @@ #include "sprite_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; ManagedSprite *unk_04; u8 unk_08; u8 unk_09; diff --git a/include/battle/struct_ov16_02264650_1.h b/include/battle/struct_ov16_02264650_1.h index 52dfae4c1d..b8b0d59fd7 100644 --- a/include/battle/struct_ov16_02264650_1.h +++ b/include/battle/struct_ov16_02264650_1.h @@ -8,7 +8,7 @@ #include "sprite_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; UnkStruct_ov16_02268520 *unk_04; ManagedSprite *unk_08; u8 unk_0C; diff --git a/include/battle_sub_menus/battle_bag.h b/include/battle_sub_menus/battle_bag.h index ef58aad153..3e2cc02966 100644 --- a/include/battle_sub_menus/battle_bag.h +++ b/include/battle_sub_menus/battle_bag.h @@ -62,7 +62,7 @@ enum BattleBagUseItemScreenButton { #define MENU_POCKET_ICON_SIZE_TILES (MENU_POCKET_ICON_WIDTH_TILES * MENU_POCKET_ICON_HEIGHT_TILES) typedef struct BattleBagContext { - BattleSystem *battleSystem; + BattleSystem *battleSys; TrainerInfo *trainerInfo; Bag *bag; enum HeapID heapID; diff --git a/include/battle_sub_menus/battle_party.h b/include/battle_sub_menus/battle_party.h index c2026bc72c..b773ddf4e2 100644 --- a/include/battle_sub_menus/battle_party.h +++ b/include/battle_sub_menus/battle_party.h @@ -173,7 +173,7 @@ typedef struct BattlePartyPokemon { typedef struct BattlePartyContext { Party *party; void *unused1; - BattleSystem *battleSystem; + BattleSystem *battleSys; enum HeapID heapID; u8 unused2; u8 selectedPartyIndex; diff --git a/include/math_util.h b/include/math_util.h index f94c103ea1..b061c1087f 100644 --- a/include/math_util.h +++ b/include/math_util.h @@ -7,6 +7,7 @@ #define LCRNG_MULTIPLIER 1103515245L #define LCRNG_INCREMENT 24691 +#define LCRNG_DIVISOR 65536L // Does almost the same as FX_DEG_TO_IDX but takes integers as input instead of fx32 // Use if FX_DEG_TO_IDX(FX32_CONST(degrees)) doesn't match diff --git a/include/struct_defs/battle_system.h b/include/struct_defs/battle_system.h index dd0853a7e7..1b9090100c 100644 --- a/include/struct_defs/battle_system.h +++ b/include/struct_defs/battle_system.h @@ -1,5 +1,5 @@ -#ifndef POKEPLATINUM_STRUCT_BATTLE_SYSTEM_T_H -#define POKEPLATINUM_STRUCT_BATTLE_SYSTEM_T_H +#ifndef POKEPLATINUM_STRUCT_BATTLE_SYSTEM_H +#define POKEPLATINUM_STRUCT_BATTLE_SYSTEM_H #include @@ -40,17 +40,17 @@ #include "unk_0201567C.h" struct BattleSystem { - G3DPipelineBuffers *unk_00; - BgConfig *unk_04; + G3DPipelineBuffers *pipelineBuffers; + BgConfig *bgConfig; Window *windows; - MessageLoader *unk_0C; - MessageLoader *unk_10; + MessageLoader *msgLoader; + MessageLoader *attackMsgLoader; StringTemplate *strFormatter; String *msgBuffer; - SysTask *unk_1C; - SysTask *unk_20; - SysTask *unk_24; - PaletteData *paletteSys; + SysTask *task_1C; + SysTask *task_20; + SysTask *task_24; + PaletteData *paletteData; u32 battleType; BattleContext *battleCtx; BattlerData *battlers[MAX_BATTLERS]; @@ -61,9 +61,9 @@ struct BattleSystem { Pokedex *pokedex; PCBoxes *pcBoxes; Party *parties[MAX_BATTLERS]; - ChatotCry *unk_78[MAX_BATTLERS]; - PokemonSpriteManager *unk_88; - BattleAnimSystem *unk_8C; + ChatotCry *chatotCries[MAX_BATTLERS]; + PokemonSpriteManager *monSpriteMan; + BattleAnimSystem *battleAnimSys; SpriteSystem *spriteSys; SpriteManager *spriteMan; Poketch *poketch; @@ -74,13 +74,13 @@ struct BattleSystem { UnkStruct_ov16_02268520 unk_17C[2]; UnkStruct_ov16_02268A14 *unk_198; PartyGauge *partyGauges[2]; - FontSpecialCharsContext *unk_1A4; - FontSpecialCharsContext *unk_1A8; + FontSpecialCharsContext *specialCharsHP; + FontSpecialCharsContext *specialCharsLevel; UnkStruct_020157E4 *unk_1AC; Options *options; PalPad *palPad; WaitDial *waitDial; - u8 *unk_1BC; + u8 *subscreenCursorOn; UnkStruct_ov10_0221F800 *unk_1C0; PokemonAnimManager *monAnimMan; NNSG2dCellTransferState *cellTransferState; @@ -89,26 +89,26 @@ struct BattleSystem { GameRecords *records; u8 *unk_21C; u16 *unk_220; - u8 unk_224[4096]; - u8 unk_1224[4096]; + u8 serverMessage[4096]; + u8 clientMessage[4096]; u16 unk_2224[112]; u16 unk_2304[112]; - u16 unk_23E4; - u16 unk_23E6; - u16 unk_23E8; - u16 unk_23EA; - u16 unk_23EC; - u16 unk_23EE; + u16 serverReadIndex; + u16 serverWriteIndex; + u16 serverEndIndex; + u16 clientReadIndex; + u16 clientWriteIndex; + u16 clientEndIndex; u8 *unk_23F0; u8 *unk_23F4; u8 unk_23F8; u8 unk_23F9; - u8 unk_23FA; + u8 commandIsEndWait; u8 unk_23FB_0 : 1; u8 unk_23FB_1 : 1; u8 unk_23FB_2 : 1; - u8 unk_23FB_3 : 2; - u8 unk_23FB_5 : 3; + u8 redHPSoundFlag : 2; + u8 redHPSoundEffectDelay : 3; enum BattleTerrain terrain; enum BattleBackground background; int mapHeader; @@ -116,31 +116,31 @@ struct BattleSystem { enum TimeOfDay time; int safariBalls; u8 unk_2414[4]; - u32 unk_2418; + u32 rulesetMask; u8 resultMask; - u8 unk_241D; + u8 catchingTutorialLowHP; u16 ballsThrown; enum EvolutionMethod mapEvolutionMethod; - int unk_2424; + int visitedContestHall; int fieldWeather; int metBebe; - u32 unk_2430; - int unk_2434; + u32 seedLCRNG; + int yOffset; int caughtBattlerIdx; int commandSelectionFlags; u8 unk_2440; u8 overlayFlags; - u16 unk_2442; - u32 unk_2444; - u32 unk_2448; - u16 unk_244C[4]; + u16 networkID; + u32 seedRandNext; + u32 seedDTO; + u16 unk_244C[MAX_BATTLERS]; u16 unk_2454[4]; - u16 unk_245C[4]; - int unk_2464[4]; + u16 unk_245C[MAX_BATTLERS]; + int unk_2464[MAX_BATTLERS]; u32 recordingStopped : 1; - u32 unk_2474_1 : 31; + u32 padding_2474_1 : 31; SysTask *playbackStopButton; - u8 unk_247C[4]; + u8 recordedChatter[MAX_BATTLERS]; }; -#endif // POKEPLATINUM_STRUCT_BATTLE_SYSTEM_T_H +#endif // POKEPLATINUM_STRUCT_BATTLE_SYSTEM_H diff --git a/include/struct_defs/struct_0207ACB4.h b/include/struct_defs/struct_0207ACB4.h index 35caa61388..f0ac43614f 100644 --- a/include/struct_defs/struct_0207ACB4.h +++ b/include/struct_defs/struct_0207ACB4.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; u8 unk_04; } UnkStruct_0207ACB4; diff --git a/include/struct_defs/struct_0207AD40.h b/include/struct_defs/struct_0207AD40.h index 8b56ee3cde..e334076147 100644 --- a/include/struct_defs/struct_0207AD40.h +++ b/include/struct_defs/struct_0207AD40.h @@ -4,7 +4,7 @@ #include "struct_decls/battle_system.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; u8 unk_04; } UnkStruct_0207AD40; diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index 3c32279b2e..2b71f83ea7 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -690,7 +690,7 @@ Overlay battle { After battle_anim Object main.nef.p/src_battle_ov16_0223B140.c.o - Object main.nef.p/src_battle_ov16_0223DF00.c.o + Object main.nef.p/src_battle_battle_system.c.o Object main.nef.p/src_battle_battle_script.c.o Object main.nef.p/src_battle_battle_controller_player.c.o Object main.nef.p/src_battle_battle_lib.c.o diff --git a/src/battle/battle_controller.c b/src/battle/battle_controller.c index ce6bc2ad0f..3503698ed5 100644 --- a/src/battle/battle_controller.c +++ b/src/battle/battle_controller.c @@ -14,9 +14,9 @@ #include "battle/battle_controller.h" #include "battle/battle_lib.h" #include "battle/battle_message.h" +#include "battle/battle_system.h" #include "battle/common.h" #include "battle/message_defs.h" -#include "battle/ov16_0223DF00.h" #include "battle/struct_ov16_0224DDA8.h" #include "battle/struct_ov16_0225BFFC_t.h" #include "battle/struct_ov16_02265BBC.h" @@ -52,13 +52,13 @@ static void BattleController_SendLocalMessage(BattleSystem *battleSys, int recip u16 *endIndex; if (recipient == COMM_RECIPIENT_CLIENT) { - dest = ov16_0223E074(battleSys); - writeIndex = ov16_0223E0B0(battleSys); - endIndex = ov16_0223E0BC(battleSys); + dest = BattleSystem_GetClientMessage(battleSys); + writeIndex = BattleSystem_GetClientWriteIndex(battleSys); + endIndex = BattleSystem_GetClientEndIndex(battleSys); } else { - dest = ov16_0223E06C(battleSys); - writeIndex = ov16_0223E08C(battleSys); - endIndex = ov16_0223E098(battleSys); + dest = BattleSystem_GetServerMessage(battleSys); + writeIndex = BattleSystem_GetServerWriteIndex(battleSys); + endIndex = BattleSystem_GetServerEndIndex(battleSys); } if (writeIndex[0] + sizeof(BattleMessageInfo) + size + 1 > 0x1000) { @@ -153,15 +153,15 @@ void BattleController_TryRecvLocalMessage(BattleSystem *battleSys, int recipient int size; if (recipient == COMM_RECIPIENT_CLIENT) { - src = ov16_0223E074(battleSys); - readIndex = ov16_0223E0A4(battleSys); - writeIndex = ov16_0223E0B0(battleSys); - endIndex = ov16_0223E0BC(battleSys); + src = BattleSystem_GetClientMessage(battleSys); + readIndex = BattleSystem_GetClientReadIndex(battleSys); + writeIndex = BattleSystem_GetClientWriteIndex(battleSys); + endIndex = BattleSystem_GetClientEndIndex(battleSys); } else { - src = ov16_0223E06C(battleSys); - readIndex = ov16_0223E080(battleSys); - writeIndex = ov16_0223E08C(battleSys); - endIndex = ov16_0223E098(battleSys); + src = BattleSystem_GetServerMessage(battleSys); + readIndex = BattleSystem_GetServerReadIndex(battleSys); + writeIndex = BattleSystem_GetServerWriteIndex(battleSys); + endIndex = BattleSystem_GetServerEndIndex(battleSys); } if (readIndex[0] == writeIndex[0]) { @@ -224,7 +224,7 @@ void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battlerId) UISetupMessage message; message.command = BATTLE_COMMAND_SETUP_UI; - message.unk_04 = ov16_0223F4E8(battleSys); + message.unk_04 = BattleSystem_GetSeedDTO(battleSys); SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(UISetupMessage)); } @@ -245,7 +245,7 @@ void BattleController_EmitSetEncounter(BattleSystem *battleSys, int battlerId) message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; message.species = battleSys->battleCtx->battleMons[battlerId].species; message.personality = battleSys->battleCtx->battleMons[battlerId].personality; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_BattlerSlot(battleSys, battlerId), 1); + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 1); message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; for (i = 0; i < LEARNED_MOVES_MAX; i++) { @@ -274,11 +274,11 @@ void BattleController_EmitShowEncounter(BattleSystem *battleSys, int battlerId) message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; message.species = battleSys->battleCtx->battleMons[battlerId].species; message.personality = battleSys->battleCtx->battleMons[battlerId].personality; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_BattlerSlot(battleSys, battlerId), 1); + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 1); message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battlerId]; message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; message.capturedBall = battleSys->battleCtx->battleMons[battlerId].capturedBall; - message.partnerPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battlerId)]; + message.partnerPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battlerId)]; ov16_0223EF2C(battleSys, battlerId, message.selectedPartySlot); @@ -317,7 +317,7 @@ void BattleController_EmitShowPokemon(BattleSystem *battleSys, int battlerId, in message.isShiny = battleSys->battleCtx->battleMons[battlerId].isShiny; message.species = battleSys->battleCtx->battleMons[battlerId].species; - message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_BattlerSlot(battleSys, battlerId), 0); + message.cryModulation = Battler_CryModulation(battleSys->battleCtx, battlerId, BattleSystem_GetBattlerType(battleSys, battlerId), 0); message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[battlerId]; message.formNum = battleSys->battleCtx->battleMons[battlerId].formNum; @@ -480,7 +480,7 @@ void BattleController_EmitThrowTrainerBall(BattleSystem *battleSys, int battlerI message.command = BATTLE_COMMAND_THROW_TRAINER_BALL; message.ballTypeIn = ballTypeIn; - message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battlerId)]; + message.selectedPartySlot = battleSys->battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battlerId)]; SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battlerId, &message, sizeof(TrainerThrowBallMessage)); } @@ -529,7 +529,7 @@ void BattleController_EmitSlideHealthbarIn(BattleSystem *battleSys, BattleContex { HealthbarData healthbar; - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); int species = Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL); int level = Pokemon_GetValue(mon, MON_DATA_LEVEL, NULL); @@ -549,8 +549,8 @@ void BattleController_EmitSlideHealthbarIn(BattleSystem *battleSys, BattleContex healthbar.expFromLastLevel = battleCtx->battleMons[battler].exp - Pokemon_GetSpeciesBaseExpAt(species, level); healthbar.expToNextLevel = Pokemon_GetSpeciesBaseExpAt(species, level + 1) - Pokemon_GetSpeciesBaseExpAt(species, level); - healthbar.speciesCaught = BattleSystem_CaughtSpecies(battleSys, battleCtx->battleMons[battler].species); - healthbar.numSafariBalls = BattleSystem_NumSafariBalls(battleSys); + healthbar.speciesCaught = BattleSystem_HasCaughtSpecies(battleSys, battleCtx->battleMons[battler].species); + healthbar.numSafariBalls = BattleSystem_GetNumSafariBalls(battleSys); healthbar.delay = delay; SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &healthbar, sizeof(HealthbarData)); @@ -589,11 +589,11 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon int battlersCanPickCommandMask; MI_CpuClearFast(&message, sizeof(CommandSetMessage)); - BattleIO_ClearBuffer(BattleSystem_Context(battleSys), battler); + BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battler); battlersCanPickCommandMask = 0; - for (i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { if (Battler_CanPickCommand(battleCtx, i) == 0) { battlersCanPickCommandMask |= FlagIndex(i); } @@ -603,7 +603,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon message.partySlot = partySlot; message.unk_29 = battleCtx->battlersSwitchingMask | battlersCanPickCommandMask; - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); if ((battleType & BATTLE_TYPE_DOUBLES) && ((battleType & BATTLE_TYPE_2vs2) == 0)) { battlerType = battler & BATTLER_THEM; @@ -611,7 +611,7 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon battlerType = battler; } - party = BattleSystem_Party(battleSys, battlerType); + party = BattleSystem_GetParty(battleSys, battlerType); cnt = 0; for (i = 0; i < Party_GetCurrentCount(party); i++) { @@ -643,13 +643,13 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon || (battleType & BATTLE_TYPE_TAG) || (battleType == (BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI)) || (battleType == ((BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) | BATTLE_TYPE_FRONTIER))) { - if (Battler_Side(battleSys, battler)) { - battlerType = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + if (BattleSystem_GetBattlerSide(battleSys, battler)) { + battlerType = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); } else { - battlerType = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + battlerType = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); } - party = BattleSystem_Party(battleSys, battlerType); + party = BattleSystem_GetParty(battleSys, battlerType); cnt = 0; for (i = 0; i < Party_GetCurrentCount(party); i++) { @@ -671,13 +671,13 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon } } - if (Battler_Side(battleSys, battler)) { - battlerType = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + if (BattleSystem_GetBattlerSide(battleSys, battler)) { + battlerType = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); } else { - battlerType = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + battlerType = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); } - party = BattleSystem_Party(battleSys, battlerType); + party = BattleSystem_GetParty(battleSys, battlerType); cnt = 3; for (i = 0; i < Party_GetCurrentCount(party); i++) { @@ -699,8 +699,8 @@ void BattleController_EmitSetCommandSelection(BattleSystem *battleSys, BattleCon } } } else { - battlerType = BattleSystem_EnemyInSlot(battleSys, battler, 2); - party = BattleSystem_Party(battleSys, battlerType); + battlerType = BattleSystem_GetEnemyInSlot(battleSys, battler, 2); + party = BattleSystem_GetParty(battleSys, battlerType); cnt = 0; for (i = 0; i < Party_GetCurrentCount(party); i++) { @@ -759,7 +759,7 @@ void ov16_022656D4(BattleSystem *battleSys, int battlerId, int command) */ void BattleController_EmitShowMoveSelectMenu(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { - BattleIO_ClearBuffer(BattleSystem_Context(battleSys), battler); + BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battler); MoveSelectMenuMessage message; message.command = BATTLE_COMMAND_SHOW_MOVE_SELECT_MENU; @@ -797,7 +797,7 @@ void BattleCommand_EmitShowTargetSelectMenu(BattleSystem *battleSys, BattleConte BattleIO_ClearBuffer(battleCtx, battler); - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); message.command = BATTLE_COMMAND_SHOW_TARGET_SELECT_MENU; message.range = range; @@ -867,7 +867,7 @@ void BattleController_EmitShowBagMenu(BattleSystem *battleSys, BattleContext *ba message.embargoTurns[i] = battleCtx->battleMons[i].moveEffectsData.embargoTurns; } - if (BattleSystem_BattleType(battleSys) == BATTLE_TYPE_AI_PARTNER) { + if (BattleSystem_GetBattleType(battleSys) == BATTLE_TYPE_AI_PARTNER) { if (((battleCtx->battlersSwitchingMask & FlagIndex(1)) == 0) && ((battleCtx->battlersSwitchingMask & FlagIndex(3)) == 0)) { message.unk_01 = 1; message.semiInvulnerable = 0; @@ -899,7 +899,7 @@ void BattleController_EmitShowBagMenu(BattleSystem *battleSys, BattleContext *ba message.substitute = 0; } } - } else if (BattleSystem_BattleType(battleSys) == (BATTLE_TYPE_SINGLES | BATTLE_TYPE_WILD_MON)) { // Was (0x0 | 0x0). Is this what they intended? + } else if (BattleSystem_GetBattleType(battleSys) == (BATTLE_TYPE_SINGLES | BATTLE_TYPE_WILD_MON)) { // Was (0x0 | 0x0). Is this what they intended? message.unk_01 = 0; if (battleCtx->battleMons[1].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) { @@ -1077,7 +1077,7 @@ void BattleController_EmitFlickerBattlerSprite(BattleSystem *battleSys, int batt void BattleController_EmitUpdateHPGauge(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { HPGaugeUpdateMessage message; - Pokemon *pokemon = BattleSystem_PartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); + Pokemon *pokemon = BattleSystem_GetPartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); int species = Pokemon_GetValue(pokemon, MON_DATA_SPECIES, NULL); int level = Pokemon_GetValue(pokemon, MON_DATA_LEVEL, NULL); @@ -1110,7 +1110,7 @@ void BattleController_EmitUpdateHPGauge(BattleSystem *battleSys, BattleContext * void BattleController_EmitUpdateExpGauge(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int curExp) { ExpGaugeUpdateMessage message; - Pokemon *pokemon = BattleSystem_PartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); + Pokemon *pokemon = BattleSystem_GetPartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); int species = Pokemon_GetValue(pokemon, MON_DATA_SPECIES, NULL); int level = Pokemon_GetValue(pokemon, MON_DATA_LEVEL, NULL); @@ -1367,7 +1367,7 @@ void BattleController_EmitLeadMonMessage(BattleSystem *battleSys, BattleContext message.command = BATTLE_COMMAND_PRINT_LEAD_MON_MESSAGE; - for (i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { message.partySlot[i] = battleCtx->selectedPartySlot[i]; } @@ -1396,7 +1396,7 @@ void BattleController_EmitPlayLevelUpAnimation(BattleSystem *battleSys, int batt */ void BattleController_EmitSetAlertMessage(BattleSystem *battleSys, int battler, BattleMessage msg) { - BattleIO_ClearBuffer(BattleSystem_Context(battleSys), battler); + BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battler); AlertMsgMessage message; message.command = BATTLE_COMMAND_SET_ALERT_MESSAGE; @@ -1425,7 +1425,7 @@ void BattleController_EmitRefreshHPGauge(BattleSystem *battleSys, BattleContext int species; int level; - pokemon = BattleSystem_PartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); + pokemon = BattleSystem_GetPartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); species = Pokemon_GetValue(pokemon, MON_DATA_SPECIES, NULL); level = Pokemon_GetValue(pokemon, MON_DATA_LEVEL, NULL); @@ -1444,8 +1444,8 @@ void BattleController_EmitRefreshHPGauge(BattleSystem *battleSys, BattleContext message.curExp = battleCtx->battleMons[battler].exp - Pokemon_GetSpeciesBaseExpAt(species, level); message.maxExp = Pokemon_GetSpeciesBaseExpAt(species, level + 1) - Pokemon_GetSpeciesBaseExpAt(species, level); - message.caughtSpecies = BattleSystem_CaughtSpecies(battleSys, battleCtx->battleMons[battler].species); - message.numSafariBalls = BattleSystem_NumSafariBalls(battleSys); + message.caughtSpecies = BattleSystem_HasCaughtSpecies(battleSys, battleCtx->battleMons[battler].species); + message.numSafariBalls = BattleSystem_GetNumSafariBalls(battleSys); SendMessage(battleSys, COMM_RECIPIENT_CLIENT, battler, &message, sizeof(RefreshHPGaugeMessage)); } @@ -1467,7 +1467,7 @@ void BattleController_EmitUpdatePartyMon(BattleSystem *battleSys, BattleContext message.mimickedMoveSlot = battleCtx->battleMons[battler].moveEffectsData.mimickedMoveSlot; message.curHP = battleCtx->battleMons[battler].curHP; message.heldItem = battleCtx->battleMons[battler].heldItem; - message.knockedOffItemsMask = battleCtx->sideConditions[Battler_Side(battleSys, battler)].knockedOffItemsMask; + message.knockedOffItemsMask = battleCtx->sideConditions[BattleSystem_GetBattlerSide(battleSys, battler)].knockedOffItemsMask; message.formNum = battleCtx->battleMons[battler].formNum; message.ability = battleCtx->battleMons[battler].ability; @@ -1551,7 +1551,7 @@ void BattleController_EmitForgetMove(BattleSystem *battleSys, int battlerId, int { ForgetMoveMessage message; - BattleIO_ClearBuffer(BattleSystem_Context(battleSys), battlerId); + BattleIO_ClearBuffer(BattleSystem_GetBattleContext(battleSys), battlerId); message.command = BATTLE_COMMAND_FORGET_MOVE; message.move = move; @@ -1732,7 +1732,7 @@ void BattleController_EmitIncrementRecord(BattleSystem *battleSys, int battlerId void BattleController_EmitLinkWaitMessage(BattleSystem *battleSys, int battler) { LinkWaitMsgMessage message; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); message.command = BATTLE_COMMAND_LINK_WAIT_MESSAGE; message.unk_02 = 0; @@ -1820,13 +1820,13 @@ void BattleController_EmitEscapeMessage(BattleSystem *battleSys, BattleContext * { EscapeMsgMessage message; int i; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); message.command = BATTLE_COMMAND_ESCAPE_MESSAGE; message.unk_01 = 0; message.unk_02 = 0; - for (i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { if (battleCtx->battlerActions[i][0] == 16) { message.unk_01 |= FlagIndex(i); } @@ -1848,7 +1848,7 @@ void BattleController_EmitEscapeMessage(BattleSystem *battleSys, BattleContext * void BattleController_EmitForfeitMessage(BattleSystem *battleSys) { ForfeitMsgMessage message; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); message.command = BATTLE_COMMAND_FORFEIT_MESSAGE; message.unk_02 = 0; @@ -1941,10 +1941,10 @@ void BattleController_EmitPlayMusic(BattleSystem *battleSys, int battlerId, int void BattleController_EmitSubmitResult(BattleSystem *battleSys) { ResultSubmitMessage message; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); message.command = BATTLE_COMMAND_SUBMIT_RESULT; - message.resultMask = BattleSystem_ResultMask(battleSys); + message.resultMask = BattleSystem_GetResultMask(battleSys); message.unk_02 = 0; if ((battleType & BATTLE_TYPE_LINK) && (sub_0202F250() == 1) && ((battleSys->battleStatusMask & 0x10) == 0)) { @@ -2054,7 +2054,7 @@ void BattleController_SetMoveAnimation(BattleSystem *battleSys, BattleContext *b animation->defender = defender; animation->unk_4C = param3; animation->unk_50 = param4; - animation->terrain = BattleSystem_Terrain(battleSys); + animation->terrain = BattleSystem_GetTerrain(battleSys); if (battleCtx != NULL) { animation->damage = battleCtx->damage; @@ -2119,7 +2119,7 @@ static inline void PartyGaugeData_Fill(BattleContext *battleCtx, PartyGaugeData static void PartyGaugeData_New(BattleSystem *battleSys, BattleContext *battleCtx, PartyGaugeData *partyGauge, int command, int battler) { MI_CpuClearFast(partyGauge, sizeof(PartyGaugeData)); - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); partyGauge->command = command; // must make declarations here to match @@ -2127,22 +2127,22 @@ static void PartyGaugeData_New(BattleSystem *battleSys, BattleContext *battleCtx Party *party; if ((battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) == (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2) // 2vs2 link battle - || ((battleType & BATTLE_TYPE_TAG) && Battler_Side(battleSys, battler)) // either of the two opponents on the enemy side - || ((battleType == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER) && Battler_Side(battleSys, battler)) // either of the two opponents on the enemy side + || ((battleType & BATTLE_TYPE_TAG) && BattleSystem_GetBattlerSide(battleSys, battler)) // either of the two opponents on the enemy side + || ((battleType == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER) && BattleSystem_GetBattlerSide(battleSys, battler)) // either of the two opponents on the enemy side || battleType == BATTLE_TYPE_FRONTIER_WITH_AI_PARTNER) { // frontier, AI partner - if (BattleSystem_BattlerSlot(battleSys, battler) == BATTLER_PLAYER_2 - || BattleSystem_BattlerSlot(battleSys, battler) == BATTLER_ENEMY_2) { + if (BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_PLAYER_2 + || BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_ENEMY_2) { battler1 = battler; - battler2 = BattleSystem_Partner(battleSys, battler); + battler2 = BattleSystem_GetPartner(battleSys, battler); } else { - battler1 = BattleSystem_Partner(battleSys, battler); + battler1 = BattleSystem_GetPartner(battleSys, battler); battler2 = battler; } - party = BattleSystem_Party(battleSys, battler1); + party = BattleSystem_GetParty(battleSys, battler1); PartyGaugeData_Fill(battleCtx, partyGauge, party, battler1, 0); - party = BattleSystem_Party(battleSys, battler2); + party = BattleSystem_GetParty(battleSys, battler2); PartyGaugeData_Fill(battleCtx, partyGauge, party, battler2, 3); } else { if ((battleType & BATTLE_TYPE_DOUBLES) && (battleType & BATTLE_TYPE_2vs2) == FALSE) { @@ -2151,7 +2151,7 @@ static void PartyGaugeData_New(BattleSystem *battleSys, BattleContext *battleCtx battler = battler; } - party = BattleSystem_Party(battleSys, battler); + party = BattleSystem_GetParty(battleSys, battler); PartyGaugeData_Fill(battleCtx, partyGauge, party, battler, 0); } } diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index ec16304fe0..530111ef5d 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -5,6 +5,7 @@ #include #include "constants/battle.h" +#include "constants/game_options.h" #include "constants/heap.h" #include "constants/items.h" #include "constants/moves.h" @@ -25,9 +26,9 @@ #include "battle/battle_lib.h" #include "battle/battle_message.h" #include "battle/battle_script.h" +#include "battle/battle_system.h" #include "battle/common.h" #include "battle/ov16_0223B140.h" -#include "battle/ov16_0223DF00.h" #include "battle/struct_ov16_0224DDA8.h" #include "battle/struct_ov16_0225BFFC_decl.h" @@ -194,8 +195,8 @@ void *BattleContext_New(BattleSystem *battleSys) BOOL BattleContext_Main(BattleSystem *battleSys, BattleContext *battleCtx) { if (battleCtx->battleEndFlag == FALSE - && BattleSystem_ResultMask(battleSys) - && (BattleSystem_ResultMask(battleSys) & BATTLE_RESULT_TRY_FLEE_WAIT) == FALSE) { + && BattleSystem_GetResultMask(battleSys) + && (BattleSystem_GetResultMask(battleSys) & BATTLE_RESULT_TRY_FLEE_WAIT) == FALSE) { battleCtx->command = BATTLE_CONTROL_RESULT; } @@ -222,7 +223,7 @@ void BattleControllerPlayer_CheckMoveHit(BattleSystem *battleSys, BattleContext static void BattleControllerPlayer_InitBattleMons(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (int i = 0; i < maxBattlers; i++) { BattleSystem_InitBattleMon(battleSys, battleCtx, i, battleCtx->selectedPartySlot[i]); } @@ -269,7 +270,7 @@ static void BattleControllerPlayer_ShowBattleMon(BattleSystem *battleSys, Battle static void BattleControllerPlayer_InitCommandSelection(BattleSystem *battleSys, BattleContext *battleCtx) { int i; // this has to be declared up here to match - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (i = 0; i < maxBattlers; i++) { battleCtx->curCommandState[i] = 0; @@ -311,8 +312,8 @@ static inline BOOL SingleControllerForSide(BattleContext *battleCtx, int battler static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - int battleType = BattleSystem_BattleType(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); int battlersDone = 0; BattleMessage msg; @@ -339,7 +340,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys } // Don't let slow AI processing delay the player from picking their action for the turn - if (Battler_BootState(BattleSystem_BattlerData(battleSys, i)) == BATTLER_BOOT_STATE_AI || battleCtx->totalTurns) { + if (Battler_BootState(BattleSystem_GetBattlerData(battleSys, i)) == BATTLER_BOOT_STATE_AI || battleCtx->totalTurns) { BattleController_EmitSetCommandSelection(battleSys, battleCtx, i, battleCtx->selectedPartySlot[i]); battleCtx->curCommandState[i] = COMMAND_SELECTION_SELECT; } else { @@ -351,7 +352,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys case COMMAND_SELECTION_SELECT2: int j; for (j = 0; j < maxBattlers; j++) { - if (j == i || Battler_BootState(BattleSystem_BattlerData(battleSys, j)) != BATTLER_BOOT_STATE_AI) { + if (j == i || Battler_BootState(BattleSystem_GetBattlerData(battleSys, j)) != BATTLER_BOOT_STATE_AI) { continue; } @@ -434,7 +435,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys // Don't let the player select a move if they are out of PP on all moves battleCtx->turnFlags[i].struggling = TRUE; - if (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) { + if (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) { battleCtx->curCommandState[i] = COMMAND_SELECTION_WAIT; } else { battleCtx->curCommandState[i] = COMMAND_SELECTION_CLEAR_TOUCH_SCREEN; @@ -446,7 +447,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys battleCtx->moveSelected[i] = battleCtx->battleMons[i].moveEffectsData.encoredMove; battleCtx->battlerActions[i][BATTLE_ACTION_TEMP_VALUE] = 0; - if (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) { + if (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) { battleCtx->curCommandState[i] = COMMAND_SELECTION_WAIT; } else { battleCtx->curCommandState[i] = COMMAND_SELECTION_CLEAR_TOUCH_SCREEN; @@ -460,7 +461,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys break; case PLAYER_INPUT_ITEM: - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_NO_ITEMS) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_NO_ITEMS) { msg.id = 593; // "Items can’t be used here." msg.tags = TAG_NONE; BattleController_EmitSetAlertMessage(battleSys, i, msg); @@ -487,7 +488,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys if (battleType & BATTLE_TYPE_LINK) { BattleController_EmitStopGaugeAnimation(battleSys, i); battleCtx->curCommandState[i] = BATTLE_CONTROL_GET_BATTLE_MON; - battleCtx->curCommandState[BattleSystem_Partner(battleSys, i)] = BATTLE_CONTROL_GET_BATTLE_MON; + battleCtx->curCommandState[BattleSystem_GetPartner(battleSys, i)] = BATTLE_CONTROL_GET_BATTLE_MON; } else if ((battleType & BATTLE_TYPE_DOUBLES) && i == BATTLER_PLAYER_2) { BattleController_EmitStopGaugeAnimation(battleSys, i); battleCtx->curCommandState[BATTLER_PLAYER_1] = BATTLE_CONTROL_GET_BATTLE_MON; @@ -513,9 +514,9 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys battleCtx->curCommandState[i] = COMMAND_SELECTION_RUN_SELECT_INIT; break; } else if (BattleSystem_CanUseMove(battleSys, battleCtx, i, battleCtx->ioBuffer[i][0] - 1, &msg) == FALSE) { - if (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) { + if (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) { BattleSystem_SetStopRecording(battleSys, 1); - Battle_RecordingStopped(battleSys, BattleSystem_Context(battleSys)); + BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } else { BattleController_EmitSetAlertMessage(battleSys, i, msg); battleCtx->curCommandState[i] = COMMAND_SELECTION_ALERT_MESSAGE_WAIT; @@ -572,12 +573,12 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys BOOL canSwitch = Battler_IsTrapped(battleSys, battleCtx, i); // Check the partner's selection in a double battle - if ((BattleSystem_BattlerSlot(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2 || BattleSystem_BattlerSlot(battleSys, i) == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) + if ((BattleSystem_GetBattlerType(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2 || BattleSystem_GetBattlerType(battleSys, i) == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) && (battleType == BATTLE_TYPE_TRAINER_DOUBLES || battleType == BATTLE_TYPE_LINK_DOUBLES || battleType == BATTLE_TYPE_FRONTIER_DOUBLES - || (battleType == BATTLE_TYPE_TAG_DOUBLES && BattleSystem_BattlerSlot(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2))) { - int partner = BattleSystem_Partner(battleSys, i); + || (battleType == BATTLE_TYPE_TAG_DOUBLES && BattleSystem_GetBattlerType(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2))) { + int partner = BattleSystem_GetPartner(battleSys, i); if (battleCtx->battlerActions[partner][BATTLE_ACTION_PICK_COMMAND] == BATTLE_CONTROL_PARTY) { doublesSelection = battleCtx->battlerActions[partner][2]; @@ -604,9 +605,9 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys BattleController_EmitShowYesNoMenu(battleSys, battleCtx, i, 955, 0, NULL, NULL); battleCtx->curCommandState[i] = COMMAND_SELECTION_RUN_SELECT; } else if ((battleType & BATTLE_TYPE_TRAINER) && (battleType & BATTLE_TYPE_LINK) == FALSE) { - if (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) { + if (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) { BattleSystem_SetStopRecording(battleSys, 1); - Battle_RecordingStopped(battleSys, BattleSystem_Context(battleSys)); + BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } else { msg.tags = 0; msg.id = 793; @@ -616,9 +617,9 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys battleCtx->nextCommandState[i] = COMMAND_SELECTION_INIT; } } else if (Battler_IsTrappedMsg(battleSys, battleCtx, i, &msg)) { - if (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) { + if (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) { BattleSystem_SetStopRecording(battleSys, 1); - Battle_RecordingStopped(battleSys, BattleSystem_Context(battleSys)); + BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } else { BattleController_EmitSetAlertMessage(battleSys, i, msg); battleCtx->curCommandState[i] = COMMAND_SELECTION_ALERT_MESSAGE_WAIT; @@ -645,7 +646,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys if ((battleType & BATTLE_TYPE_DOUBLES) && (battleType & BATTLE_TYPE_2vs2) == FALSE && (battleCtx->curCommandState[i] == COMMAND_SELECTION_WAIT)) { - battleCtx->curCommandState[BattleSystem_Partner(battleSys, i)] = COMMAND_SELECTION_WAIT; + battleCtx->curCommandState[BattleSystem_GetPartner(battleSys, i)] = COMMAND_SELECTION_WAIT; } break; @@ -653,7 +654,7 @@ static void BattleControllerPlayer_CommandSelectionInput(BattleSystem *battleSys BattleController_EmitStopGaugeAnimation(battleSys, i); if (battleType == BATTLE_TYPE_LINK_DOUBLES) { - if (battleCtx->curCommandState[BattleSystem_Partner(battleSys, i)] == COMMAND_SELECTION_END) { + if (battleCtx->curCommandState[BattleSystem_GetPartner(battleSys, i)] == COMMAND_SELECTION_END) { BattleController_EmitLinkWaitMessage(battleSys, i); } } else { @@ -708,8 +709,8 @@ static void BattleControllerPlayer_CalcTurnOrder(BattleSystem *battleSys, Battle { int battler, i, j; // Must declare these here to match. - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - u32 battleType = BattleSystem_BattleType(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); int order = 0; if (battleType & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { @@ -803,7 +804,7 @@ enum PreMoveActionState { static void BattleControllerPlayer_CheckPreMoveActions(BattleSystem *battleSys, BattleContext *battleCtx) { int state = STATE_PROCESSING; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); int battler; do { @@ -872,9 +873,9 @@ static void BattleControllerPlayer_CheckPreMoveActions(BattleSystem *battleSys, static void BattleControllerPlayer_BranchActions(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); - if (Battle_RecordingStopped(battleSys, battleCtx)) { + if (BattleSystem_IsRecordingStopped(battleSys, battleCtx)) { return; } @@ -932,7 +933,7 @@ static inline void StepFieldConditionCheck(BattleContext *battleCtx, int state) static void BattleControllerPlayer_CheckFieldConditions(BattleSystem *battleSys, BattleContext *battleCtx) { int state = STATE_PROCESSING; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); int side; do { @@ -1289,7 +1290,7 @@ enum MonCondCheckState { static void BattleControllerPlayer_CheckMonConditions(BattleSystem *battleSys, BattleContext *battleCtx) { u8 state = STATE_PROCESSING; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // Explicit `== TRUE` is needed to match on these. if (BattleControllerPlayer_AnyFainted(battleCtx, battleCtx->command, battleCtx->command, 1) == TRUE @@ -1745,7 +1746,7 @@ enum SideCondCheckState { static void BattleControllerPlayer_CheckSideConditions(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if (BattleControllerPlayer_AnyFainted(battleCtx, battleCtx->command, battleCtx->command, 1) == TRUE) { return; @@ -1767,7 +1768,7 @@ static void BattleControllerPlayer_CheckSideConditions(BattleSystem *battleSys, if (battleCtx->fieldConditions.futureSightTurns[battler] && --battleCtx->fieldConditions.futureSightTurns[battler] == FALSE && battleCtx->battleMons[battler].curHP) { - battleCtx->sideConditionsMask[Battler_Side(battleSys, battler)] &= ~SIDE_CONDITION_FUTURE_SIGHT; + battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battler)] &= ~SIDE_CONDITION_FUTURE_SIGHT; battleCtx->msgBuffer.id = 475; battleCtx->msgBuffer.tags = TAG_NICKNAME_MOVE; @@ -1909,7 +1910,7 @@ static void BattleControllerPlayer_ItemCommand(BattleSystem *battleSys, BattleCo BattleItemUse *used = (BattleItemUse *)&battleCtx->battlerActions[battleCtx->attacker][BATTLE_ACTION_TEMP_VALUE]; int nextSeq; - if (Battler_Side(battleSys, battleCtx->attacker)) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker)) { switch (battleCtx->aiContext.usedItemType[battleCtx->attacker >> 1]) { case ITEM_AI_CATEGORY_FULL_RESTORE: nextSeq = subscript_use_full_restore; @@ -1956,10 +1957,10 @@ static void BattleControllerPlayer_ItemCommand(BattleSystem *battleSys, BattleCo case ITEM_BATTLE_CATEGORY_POKE_BALLS: nextSeq = subscript_throw_pokeball; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) == FALSE) { - Bag_TryRemoveItem(BattleSystem_Bag(battleSys), used->item, 1, HEAP_ID_BATTLE); - Bag_SetLastBattleItemUsed(BattleSystem_BagCursor(battleSys), used->item, used->category); + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) == FALSE) { + Bag_TryRemoveItem(BattleSystem_GetBag(battleSys), used->item, 1, HEAP_ID_BATTLE); + Bag_SetLastBattleItemUsed(BattleSystem_GetBagCursor(battleSys), used->item, used->category); } break; @@ -1990,8 +1991,8 @@ static void BattleControllerPlayer_FleeCommand(BattleSystem *battleSys, BattleCo { battleCtx->attacker = battleCtx->battlerActionOrder[battleCtx->turnOrderCounter]; - if (Battler_Side(battleSys, battleCtx->attacker) - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE) { if (ATTACKING_MON.statusVolatile & (VOLATILE_CONDITION_BIND | VOLATILE_CONDITION_MEAN_LOOK)) { LOAD_SUBSEQ(subscript_enemy_escape_failed); battleCtx->scriptCursor = 0; @@ -2028,8 +2029,8 @@ static void BattleControllerPlayer_SafariBallCommand(BattleSystem *battleSys, Ba battleCtx->commandNext = BATTLE_CONTROL_MOVE_END; battleCtx->msgItemTemp = ITEM_SAFARI_BALL; - int balls = BattleSystem_NumSafariBalls(battleSys) - 1; - BattleSystem_SetSafariBalls(battleSys, balls); + int balls = BattleSystem_GetNumSafariBalls(battleSys) - 1; + BattleSystem_SetNumSafariBalls(battleSys, balls); BattleController_EmitRefreshHPGauge(battleSys, battleCtx, BATTLER_US); } @@ -2111,18 +2112,18 @@ static int BattleControllerPlayer_CheckObedience(BattleSystem *battleSys, Battle { int rand1, rand2; // must be defined up here to match u8 maxLevel = 0; - u32 battleType = BattleSystem_BattleType(battleSys); - TrainerInfo *trInfo = BattleSystem_TrainerInfo(battleSys, 0); + u32 battleType = BattleSystem_GetBattleType(battleSys); + TrainerInfo *trInfo = BattleSystem_GetTrainerInfo(battleSys, 0); // These separate sentinels do not match if chained into a single sentinel if (battleType & BATTLE_TYPE_NO_OBEDIENCE_CHECK) { return OBEY_CHECK_SUCCESS; } - if (Battler_Side(battleSys, battleCtx->attacker)) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker)) { return OBEY_CHECK_SUCCESS; } if ((battleType & BATTLE_TYPE_AI) - && BattleSystem_BattlerSlot(battleSys, battleCtx->attacker) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + && BattleSystem_GetBattlerType(battleSys, battleCtx->attacker) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { return OBEY_CHECK_SUCCESS; } if (BattleSystem_TrainerIsOT(battleSys, battleCtx) == TRUE) { @@ -2865,7 +2866,7 @@ static inline int CalcMoveType(BattleContext *battleCtx, int attacker, int move) */ static int BattleControllerPlayer_CheckMoveHitAccuracy(BattleSystem *battleSys, BattleContext *battleCtx, int attacker, int defender, int move) { - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { return 0; } @@ -3060,7 +3061,7 @@ static int BattleControllerPlayer_CheckMoveHitOverrides(BattleSystem *battleSys, static BOOL BattleControllerPlayer_MoveStolen(BattleSystem *battleSys, BattleContext *battleCtx) { int i, battler; // must declare up here to match - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if (battleCtx->defender == BATTLER_NONE) { return FALSE; @@ -3351,7 +3352,7 @@ static void BattleControllerPlayer_UpdateHP(BattleSystem *battleSys, BattleConte GF_ASSERT(battleCtx->damage < 0); - if (Battler_Side(battleSys, battleCtx->attacker) == Battler_Side(battleSys, battleCtx->defender)) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) == BattleSystem_GetBattlerSide(battleSys, battleCtx->defender)) { BattleController_EmitIncrementRecord(battleSys, battleCtx->attacker, 0, RECORD_ATTACKED_ALLY); } @@ -3641,7 +3642,7 @@ static void BattleControllerPlayer_AfterMoveEffects(BattleSystem *battleSys, Bat switch (battleCtx->afterMoveEffectState) { case AFTER_MOVE_EFFECT_TOGGLE_VANISH_FLAG: BOOL anyFlipped = FALSE; - while (battleCtx->afterMoveEffectTemp < BattleSystem_MaxBattlers(battleSys)) { + while (battleCtx->afterMoveEffectTemp < BattleSystem_GetMaxBattlers(battleSys)) { if ((battleCtx->battleMons[battleCtx->afterMoveEffectTemp].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) == FALSE && (battleCtx->battleMons[battleCtx->afterMoveEffectTemp].moveEffectsTemp & MOVE_EFFECT_SEMI_INVULNERABLE)) { battleCtx->battleMons[battleCtx->afterMoveEffectTemp].moveEffectsTemp &= ~MOVE_EFFECT_SEMI_INVULNERABLE; @@ -3733,7 +3734,7 @@ static void BattleControllerPlayer_AfterMoveEffects(BattleSystem *battleSys, Bat BOOL result = FALSE; int nextSeq; - while (battleCtx->afterMoveEffectTemp < BattleSystem_MaxBattlers(battleSys)) { + while (battleCtx->afterMoveEffectTemp < BattleSystem_GetMaxBattlers(battleSys)) { battler = battleCtx->monSpeedOrder[battleCtx->afterMoveEffectTemp]; if (battleCtx->battlersSwitchingMask & FlagIndex(battler)) { @@ -3839,17 +3840,17 @@ static void BattleControllerPlayer_LoopSpreadMoves(BattleSystem *battleSys, Batt if (CURRENT_MOVE_DATA.range == RANGE_ADJACENT_OPPONENTS && (battleCtx->battleStatusMask & SYSCTL_CHECK_LOOP_ONLY_ONCE) == FALSE - && battleCtx->battlerCounter < BattleSystem_MaxBattlers(battleSys)) { + && battleCtx->battlerCounter < BattleSystem_GetMaxBattlers(battleSys)) { battleCtx->multiHitCheckFlags = SYSCTL_HIT_MULTIPLE_TARGETS; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); // unused, but must stay to match - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, battleCtx->attacker); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // unused, but must stay to match + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->attacker); u8 battlerType = Battler_Type(battlerData); do { int battler = battleCtx->monSpeedOrder[battleCtx->battlerCounter++]; if ((battleCtx->battlersSwitchingMask & FlagIndex(battler)) == FALSE && battleCtx->battleMons[battler].curHP) { - battlerData = BattleSystem_BattlerData(battleSys, battler); + battlerData = BattleSystem_GetBattlerData(battleSys, battler); // Loop back to the start of the move if battlers are on opposite sides if (((battlerType & BATTLER_THEM) && (Battler_Type(battlerData) & BATTLER_THEM) == FALSE) @@ -3860,14 +3861,14 @@ static void BattleControllerPlayer_LoopSpreadMoves(BattleSystem *battleSys, Batt break; } } - } while (battleCtx->battlerCounter < BattleSystem_MaxBattlers(battleSys)); + } while (battleCtx->battlerCounter < BattleSystem_GetMaxBattlers(battleSys)); BattleController_EmitClearMessageBox(battleSys); } else if (CURRENT_MOVE_DATA.range == RANGE_ALL_ADJACENT && (battleCtx->battleStatusMask & SYSCTL_CHECK_LOOP_ONLY_ONCE) == FALSE - && battleCtx->battlerCounter < BattleSystem_MaxBattlers(battleSys)) { + && battleCtx->battlerCounter < BattleSystem_GetMaxBattlers(battleSys)) { battleCtx->multiHitCheckFlags = SYSCTL_HIT_MULTIPLE_TARGETS; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); // unused, but must stay to match. + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // unused, but must stay to match. do { int battler = battleCtx->monSpeedOrder[battleCtx->battlerCounter++]; @@ -3879,7 +3880,7 @@ static void BattleControllerPlayer_LoopSpreadMoves(BattleSystem *battleSys, Batt battleCtx->command = BATTLE_CONTROL_BEFORE_MOVE; break; } - } while (battleCtx->battlerCounter < BattleSystem_MaxBattlers(battleSys)); + } while (battleCtx->battlerCounter < BattleSystem_GetMaxBattlers(battleSys)); BattleController_EmitClearMessageBox(battleSys); } else { @@ -3962,7 +3963,7 @@ static void BattleControllerPlayer_UpdateMoveBuffers(BattleSystem *battleSys, Ba static void BattleControllerPlayer_MoveEnd(BattleSystem *battleSys, BattleContext *battleCtx) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_NO_MOVES) == FALSE) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_NO_MOVES) == FALSE) { if (BattleSystem_RecoverStatusByAbility(battleSys, battleCtx, battleCtx->attacker, FALSE) == TRUE || (battleCtx->defender != BATTLER_NONE && BattleSystem_RecoverStatusByAbility(battleSys, battleCtx, battleCtx->defender, FALSE) == TRUE) @@ -4011,21 +4012,21 @@ static void BattleControllerPlayer_CheckAnyFainted(BattleSystem *battleSys, Batt static void BattleControllerPlayer_HandleResult(BattleSystem *battleSys, BattleContext *battleCtx) { - if (BattleSystem_ResultMask(battleSys) & BATTLE_RESULT_TRY_FLEE) { + if (BattleSystem_GetResultMask(battleSys) & BATTLE_RESULT_TRY_FLEE) { battleCtx->command = BATTLE_CONTROL_FIGHT_END; - } else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_LOSE - || BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_DRAW) { + } else if (BattleSystem_GetResultMask(battleSys) == BATTLE_RESULT_LOSE + || BattleSystem_GetResultMask(battleSys) == BATTLE_RESULT_DRAW) { LOAD_SUBSEQ(subscript_battle_lost); battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT; battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END; - } else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_WIN) { + } else if (BattleSystem_GetResultMask(battleSys) == BATTLE_RESULT_WIN) { LOAD_SUBSEQ(subscript_battle_won); battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT; battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END; - } else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_CAPTURED_MON) { + } else if (BattleSystem_GetResultMask(battleSys) == BATTLE_RESULT_CAPTURED_MON) { battleCtx->command = BATTLE_CONTROL_EXEC_SCRIPT; battleCtx->commandNext = BATTLE_CONTROL_FIGHT_END; - } else if (BattleSystem_ResultMask(battleSys) == BATTLE_RESULT_PLAYER_FLED) { + } else if (BattleSystem_GetResultMask(battleSys) == BATTLE_RESULT_PLAYER_FLED) { battleCtx->command = BATTLE_CONTROL_FIGHT_END; } @@ -4041,10 +4042,10 @@ static void BattleControllerPlayer_ScreenWipe(BattleSystem *battleSys, BattleCon static void BattleControllerPlayer_EndFight(BattleSystem *battleSys, BattleContext *battleCtx) { - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); if ((battleType & BATTLE_TYPE_LINK) == FALSE) { - Party *playerParty = BattleSystem_Party(battleSys, BATTLER_US); + Party *playerParty = BattleSystem_GetParty(battleSys, BATTLER_US); Pokemon_ApplyPokerus(playerParty); Pokemon_ValidatePokerus(playerParty); } @@ -4072,15 +4073,15 @@ static BOOL BattleControllerPlayer_ReplaceFainted(BattleSystem *battleSys, Battl { BOOL result = FALSE; int i; // must be declared here to match - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - u32 battleType = BattleSystem_BattleType(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); int retCommand = battleCtx->command; for (i = 0; i < maxBattlers; i++) { battleCtx->battlerStatusFlags[i] &= ~BATTLER_STATUS_SWITCHING; if (((battleType & BATTLE_TYPE_DOUBLES) && (battleType & BATTLE_TYPE_2vs2_TAG) == FALSE) - || ((battleType & BATTLE_TYPE_TAG) && Battler_Side(battleSys, i) == FALSE)) { + || ((battleType & BATTLE_TYPE_TAG) && BattleSystem_GetBattlerSide(battleSys, i) == FALSE)) { // If both of this side's mons have been defeated, replace slot 1 first. if (battleCtx->battleMons[i].curHP == 0 && battleCtx->battleMons[i ^ 2].curHP == 0 && (i & 2)) { continue; @@ -4091,8 +4092,8 @@ static BOOL BattleControllerPlayer_ReplaceFainted(BattleSystem *battleSys, Battl int curHP; int totalHP = 0; int monsAlive = 0; - Party *party = BattleSystem_Party(battleSys, i); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); // this has to go here, even though it's unused + Party *party = BattleSystem_GetParty(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); // this has to go here, even though it's unused // Check that there are still living mons in the party. for (j = 0; j < Party_GetCurrentCount(party); j++) { @@ -4119,8 +4120,8 @@ static BOOL BattleControllerPlayer_ReplaceFainted(BattleSystem *battleSys, Battl } else if (battleCtx->battleMons[i].curHP == 0) { int j; int curHP = 0; - Party *party = BattleSystem_Party(battleSys, i); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + Party *party = BattleSystem_GetParty(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); for (j = 0; j < Party_GetCurrentCount(party); j++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, j); @@ -4144,7 +4145,7 @@ static BOOL BattleControllerPlayer_ReplaceFainted(BattleSystem *battleSys, Battl if (battleCtx->command == BATTLE_CONTROL_EXEC_SCRIPT) { if ((battleType & BATTLE_TYPE_FORCED_SET_MODE) == FALSE - && BattleSystem_Ruleset(battleSys) == 0 // switch mode + && BattleSystem_GetBattleStyle(battleSys) == OPTIONS_BATTLE_STYLE_SHIFT && ((battleCtx->battlerStatusFlags[0] & BATTLER_STATUS_SWITCHING) == FALSE || (battleCtx->battlerStatusFlags[1] & BATTLER_STATUS_SWITCHING) == FALSE) && BattleSystem_AnyReplacementMons(battleSys, battleCtx, BATTLER_US)) { @@ -4182,20 +4183,20 @@ static BOOL BattleControllerPlayer_ReplaceFainted(BattleSystem *battleSys, Battl static BOOL BattleControllerPlayer_CheckBattleOver(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - u32 battleType = BattleSystem_BattleType(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); u8 battleResult = BATTLE_IN_PROGRESS; for (i = 0; i < maxBattlers; i++) { if ((battleType == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER || battleType == BATTLE_TYPE_AI_PARTNER) - && Battler_Side(battleSys, i) == BATTLER_US) { + && BattleSystem_GetBattlerSide(battleSys, i) == BATTLER_US) { // If the player has no more usable Pokemon in a tag battle with an AI-controlled partner, // flag the battle as lost. - if (BattleSystem_BattlerSlot(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_1 + if (BattleSystem_GetBattlerType(battleSys, i) == BATTLER_TYPE_PLAYER_SIDE_SLOT_1 && battleCtx->battleMons[i].curHP == 0) { int totalPartyHP = 0; - Party *party = BattleSystem_Party(battleSys, i); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + Party *party = BattleSystem_GetParty(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); for (int j = 0; j < Party_GetCurrentCount(party); j++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, j); @@ -4209,12 +4210,12 @@ static BOOL BattleControllerPlayer_CheckBattleOver(BattleSystem *battleSys, Batt battleResult |= BATTLE_RESULT_LOSE; } } - } else if ((battleType & BATTLE_TYPE_2vs2) || ((battleType & BATTLE_TYPE_TAG) && Battler_Side(battleSys, i))) { + } else if ((battleType & BATTLE_TYPE_2vs2) || ((battleType & BATTLE_TYPE_TAG) && BattleSystem_GetBattlerSide(battleSys, i))) { if (battleCtx->battleMons[i].curHP == 0) { int totalPartyHP = 0; - Party *party = BattleSystem_Party(battleSys, i); - Party *partnerParty = BattleSystem_Party(battleSys, BattleSystem_Partner(battleSys, i)); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + Party *party = BattleSystem_GetParty(battleSys, i); + Party *partnerParty = BattleSystem_GetParty(battleSys, BattleSystem_GetPartner(battleSys, i)); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); for (int j = 0; j < Party_GetCurrentCount(party); j++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, j); @@ -4242,8 +4243,8 @@ static BOOL BattleControllerPlayer_CheckBattleOver(BattleSystem *battleSys, Batt } } else if (battleCtx->battleMons[i].curHP == 0) { int totalPartyHP = 0; - Party *party = BattleSystem_Party(battleSys, i); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + Party *party = BattleSystem_GetParty(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); for (int j = 0; j < Party_GetCurrentCount(party); j++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, j); @@ -4321,7 +4322,7 @@ static BOOL BattleControllerPlayer_CheckBattleOver(BattleSystem *battleSys, Batt } if (battleResult) { - BattleSystem_SetResultFlag(battleSys, battleResult); + BattleSystem_SetResultMask(battleSys, battleResult); } return battleResult != 0; @@ -4351,7 +4352,7 @@ static BOOL BattleControllerPlayer_MustSelectTarget(BattleSystem *battleSys, Bat if (battleType & BATTLE_TYPE_DOUBLES) { if (*range == RANGE_ALLY) { - if ((battleCtx->battlersSwitchingMask & FlagIndex(BattleSystem_Partner(battleSys, battler))) == FALSE) { + if ((battleCtx->battlersSwitchingMask & FlagIndex(BattleSystem_GetPartner(battleSys, battler))) == FALSE) { return TRUE; } @@ -4380,7 +4381,7 @@ static BOOL BattleControllerPlayer_MustSelectTarget(BattleSystem *battleSys, Bat static void BattleControllerPlayer_ClearFlags(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (i = 0; i < maxBattlers; i++) { battleCtx->battleMons[i].statusVolatile &= (battleCtx->clearVolatileStatus[i] ^ 0xFFFFFFFF); @@ -4665,7 +4666,7 @@ static BOOL BattleControllerPlayer_CheckExtraFlinch(BattleSystem *battleSys, Bat static BOOL BattleControllerPlayer_ToggleSemiInvulnMons(BattleSystem *battleSys, BattleContext *battleCtx) { BOOL result = FALSE; - while (battleCtx->vanishedCheckTemp < BattleSystem_MaxBattlers(battleSys)) { + while (battleCtx->vanishedCheckTemp < BattleSystem_GetMaxBattlers(battleSys)) { if ((battleCtx->battleMons[battleCtx->vanishedCheckTemp].moveEffectsMask & MOVE_EFFECT_SEMI_INVULNERABLE) == FALSE && (battleCtx->battleMons[battleCtx->vanishedCheckTemp].moveEffectsTemp & MOVE_EFFECT_SEMI_INVULNERABLE)) { battleCtx->battleMons[battleCtx->vanishedCheckTemp].moveEffectsTemp &= ~MOVE_EFFECT_SEMI_INVULNERABLE; @@ -4716,7 +4717,7 @@ enum AfterMoveHitState { static BOOL BattleControllerPlayer_TriggerAfterMoveHitEffects(BattleSystem *battleSys, BattleContext *battleCtx) { int machineState = STATE_PROCESSING; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); // unused, but must remain to match + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // unused, but must remain to match int itemEffect = Battler_HeldItemEffect(battleCtx, battleCtx->attacker); int itemPower = Battler_HeldItemPower(battleCtx, battleCtx->attacker, 0); @@ -4796,7 +4797,7 @@ static BOOL BattleControllerPlayer_TriggerAfterMoveHitEffects(BattleSystem *batt */ static void BattleControllerPlayer_InitAI(BattleSystem *battleSys, BattleContext *battleCtx) { - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); MI_CpuClear32(&battleCtx->aiContext, sizeof(AIContext)); if ((battleType & BATTLE_TYPE_TRAINER) && (battleType & BATTLE_TYPE_NO_AI_ITEMS) == FALSE) { @@ -4804,7 +4805,7 @@ static void BattleControllerPlayer_InitAI(BattleSystem *battleSys, BattleContext if (battler & BATTLER_THEM) { // Only enemy AI can use items for (int i = 0; i < MAX_TRAINER_ITEMS; i++) { - u16 item = BattleSystem_TrainerItems(battleSys, battler, i); + u16 item = BattleSystem_GetTrainerItem(battleSys, battler, i); if (item != ITEM_NONE) { battleCtx->aiContext.trainerItems[battler >> 1][battleCtx->aiContext.trainerItemCounts[battler >> 1]] = item; battleCtx->aiContext.trainerItemCounts[battler >> 1]++; @@ -4820,7 +4821,7 @@ static void BattleControllerPlayer_InitAI(BattleSystem *battleSys, BattleContext static void BattleSystem_RecordCommand(BattleSystem *battleSys, BattleContext *battleCtx) { int battler; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); u8 recordedAction; for (battler = 0; battler < maxBattlers; battler++) { diff --git a/src/battle/battle_cursor.c b/src/battle/battle_cursor.c index 785f91fc57..3c01482e1b 100644 --- a/src/battle/battle_cursor.c +++ b/src/battle/battle_cursor.c @@ -14,8 +14,8 @@ #include "struct_defs/struct_020127E8.h" #include "battle/battle_display.h" +#include "battle/battle_system.h" #include "battle/move_display_info.h" -#include "battle/ov16_0223DF00.h" #include "battle/ov16_0226DB7C.h" #include "battle/ov16_0226DE44.h" #include "battle/struct_ov16_02260C00.h" @@ -1115,8 +1115,8 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par (void)0; } - v1 = BattleSystem_PaletteSys(battleSys); - v2 = BattleSystem_Background(battleSys); + v1 = BattleSystem_GetPaletteData(battleSys); + v2 = BattleSystem_GetBackground(battleSys); if (v2 >= NELEMS(Unk_ov16_022704E4)) { v2 = 0; @@ -1135,7 +1135,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par for (i = 0; i < 7; i++) { v0->unk_3C[i] = Heap_Alloc(HEAP_ID_BATTLE, 0x800); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_FRONTIER) && (Unk_ov16_02270264[i] == 49)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) && (Unk_ov16_02270264[i] == 49)) { v6 = 170; } else { v6 = Unk_ov16_02270264[i]; @@ -1152,7 +1152,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par u16 *v7; int v8; - v8 = (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_FRONTIER) ? 340 : 242; + v8 = (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) ? 340 : 242; v0->unk_58 = Heap_Alloc(HEAP_ID_BATTLE, 0x200); PaletteData_LoadBufferFromFileStart(v1, 7, v8, 5, 1, 0, 0); @@ -1194,7 +1194,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par MI_CpuCopy16(v0->unk_58, v0->unk_5C, 0x20); MI_CpuCopy16(&v0->unk_58[7 * 16], &v0->unk_5C[16 * 1], 0x20); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) { v15 = 341; } else if (Unk_ov16_022704E4[v2].unk_02 != 0xffff) { v15 = Unk_ov16_022704E4[v2].unk_02; @@ -1204,7 +1204,7 @@ void *ov16_022687C8(NARC *param0, NARC *param1, BattleSystem *battleSys, int par v14 = Graphics_GetPlttData(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, v15, &v13, HEAP_ID_BATTLE); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) { MI_CpuCopy16(v13->pRawData, v0->unk_60, 0x40); } else { MI_CpuCopy16(v13->pRawData, v0->unk_60, 0x20); @@ -1257,13 +1257,13 @@ void ov16_02268A88(UnkStruct_ov16_02268A14 *param0) spriteSys = BattleSystem_GetSpriteSystem(param0->battleSys); spriteMan = BattleSystem_GetSpriteManager(param0->battleSys); - v0 = BattleSystem_BGL(param0->battleSys); - v3 = BattleSystem_PaletteSys(param0->battleSys); + v0 = BattleSystem_GetBgConfig(param0->battleSys); + v3 = BattleSystem_GetPaletteData(param0->battleSys); { int v5; - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_FRONTIER) { v5 = 169; } else { v5 = 28; @@ -1273,13 +1273,13 @@ void ov16_02268A88(UnkStruct_ov16_02268A14 *param0) } TypeIcon_LoadAnim(spriteSys, spriteMan, 20017, 20017); - TypeIcon_LoadPltt(BattleSystem_PaletteSys(param0->battleSys), PLTTBUF_SUB_OBJ, spriteSys, spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, 20020); + TypeIcon_LoadPltt(BattleSystem_GetPaletteData(param0->battleSys), PLTTBUF_SUB_OBJ, spriteSys, spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, 20020); for (i = 0; i < LEARNED_MOVES_MAX; i++) { TypeIcon_LoadChar(spriteSys, spriteMan, NNS_G2D_VRAM_TYPE_2DSUB, TYPE_NORMAL, 20025 + i); } - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { ov16_0226DE44(spriteSys, spriteMan, 5, v3, 20412, 20036, 20406, 20395); param0->unk_6C4.unk_00 = ov16_0226DEEC(spriteSys, spriteMan, HEAP_ID_BATTLE, 20412, 20036, 20406, 20395, 10, 0); } @@ -1298,7 +1298,7 @@ void ov16_02268B8C(UnkStruct_ov16_02268A14 *param0) TypeIcon_UnloadPlttSrc(v2, 20020); TypeIcon_UnloadAnim(v2, 20017, 20017); - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { ov16_0226DF68(param0->unk_6C4.unk_00); ov16_0226DEC4(v2, 20412, 20036, 20406, 20395); } @@ -1318,7 +1318,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2, param2->unk_66E = 0; - v3 = BattleSystem_BGL(param2->battleSys); + v3 = BattleSystem_GetBgConfig(param2->battleSys); v4 = BattleSystem_GetSpriteSystem(param2->battleSys); v5 = BattleSystem_GetSpriteManager(param2->battleSys); @@ -1334,7 +1334,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2, if (0) { int v6; - if (BattleSystem_BattleType(param2->battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(param2->battleSys) & BATTLE_TYPE_FRONTIER) { v6 = 169; } else { v6 = v0->unk_00; @@ -1350,7 +1350,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2, } if (1) { - PaletteData_LoadBuffer(BattleSystem_PaletteSys(param2->battleSys), param2->unk_58, 1, 0, 0x200); + PaletteData_LoadBuffer(BattleSystem_GetPaletteData(param2->battleSys), param2->unk_58, 1, 0, 0x200); } for (i = 0; i < 4; i++) { @@ -1360,7 +1360,7 @@ void ov16_02268C04(NARC *param0, NARC *param1, UnkStruct_ov16_02268A14 *param2, } } - SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_PaletteSys(param2->battleSys), 3, v4, v5, param1, 72, 0, 7, NNS_G2D_VRAM_TYPE_2DSUB, 20023); + SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_GetPaletteData(param2->battleSys), 3, v4, v5, param1, 72, 0, 7, NNS_G2D_VRAM_TYPE_2DSUB, 20023); param2->unk_66B = param3; G2S_SetBlendAlpha(GX_BLEND_PLANEMASK_BG1, GX_BLEND_BGALL, 8, 12); @@ -1409,7 +1409,7 @@ void ov16_02268D40(NARC *param0, UnkStruct_ov16_02268A14 *param1) { PaletteData *v3; - v3 = BattleSystem_PaletteSys(param1->battleSys); + v3 = BattleSystem_GetPaletteData(param1->battleSys); ov16_0226DB7C(v1, v2, v3, 5, 20411, 20035, 20405, 20394); param1->unk_6B8 = ov16_0226DC24(v1, v2, HEAP_ID_BATTLE, 20411, 20035, 20405, 20394, 5, 0); } @@ -1571,7 +1571,7 @@ void ov16_022691BC(UnkStruct_ov16_02268A14 *param0) Sprite_SetDrawFlag2(param0->unk_5BC[i]->sprite, 1); } - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_TRAINER) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_TRAINER) { for (i = 0; i < 6; i++) { Sprite_SetDrawFlag2(param0->unk_5D4[i]->sprite, 1); } @@ -1606,7 +1606,7 @@ int BattleSystem_MenuInput(UnkStruct_ov16_02268A14 *param0) GF_ASSERT(v4->unk_18 != NULL); - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { v1 = ov16_0226CD18(param0); } else { v1 = TouchScreen_CheckRectanglePressed(v4->unk_14); @@ -1719,7 +1719,7 @@ static void ov16_022694A8(SysTask *param0, void *param1) { UnkStruct_ov16_02268A14 *v0 = param1; int v1 = 0; - BgConfig *v2 = BattleSystem_BGL(v0->battleSys); + BgConfig *v2 = BattleSystem_GetBgConfig(v0->battleSys); v0->unk_6AC += v0->unk_6B0; if (((v0->unk_6B0 <= 0) && (v0->unk_6AC <= v0->unk_6B4)) || ((v0->unk_6B0 > 0) && (v0->unk_6AC >= v0->unk_6B4))) { @@ -1795,11 +1795,11 @@ static void ov16_02269668(UnkStruct_ov16_02268A14 *param0, int param1, int param param0->unk_66A = v5; - if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_SAFARI) { + if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_SAFARI) { v0 = MessageLoader_GetNewString(v4, 931); v1 = MessageLoader_GetNewString(v4, 932); v2 = MessageLoader_GetNewString(v4, 933); - } else if (BattleSystem_BattleType(param0->battleSys) & BATTLE_TYPE_PAL_PARK) { + } else if (BattleSystem_GetBattleType(param0->battleSys) & BATTLE_TYPE_PAL_PARK) { v0 = MessageLoader_GetNewString(v4, 1223); v1 = MessageLoader_GetNewString(v4, 932); v2 = MessageLoader_GetNewString(v4, 933); @@ -1827,12 +1827,12 @@ static void ov16_02269668(UnkStruct_ov16_02268A14 *param0, int param1, int param String_Free(v2); String_Free(v3); - if ((BattleSystem_BattleType(param0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) { + if ((BattleSystem_GetBattleType(param0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) { Pokemon *v7; ManagedSprite *v8; int v9, v10; - v7 = BattleSystem_PartyPokemon(param0->battleSys, v6->unk_01, v6->unk_02); + v7 = BattleSystem_GetPartyPokemon(param0->battleSys, v6->unk_01, v6->unk_02); ov16_0226A698(param0); v8 = ov16_0226A7A4(param0, v7, v5, v6->unk_04, v6->unk_06, v6->unk_03); @@ -1865,7 +1865,7 @@ static void ov16_022698BC(UnkStruct_ov16_02268A14 *param0, int param1, int param { BgConfig *v1; - v1 = BattleSystem_BGL(param0->battleSys); + v1 = BattleSystem_GetBgConfig(param0->battleSys); Bg_FillTilemapRect(v1, 4, 0x6000 / 0x20 - 1, 0, 0x10, 32, 8, 17); Bg_ScheduleTilemapTransfer(v1, 5); @@ -1893,7 +1893,7 @@ static void ov16_02269938(UnkStruct_ov16_02268A14 *param0, int param1, int param { BgConfig *v1; - v1 = BattleSystem_BGL(param0->battleSys); + v1 = BattleSystem_GetBgConfig(param0->battleSys); Bg_FillTilemapRect(v1, 4, 0x6000 / 0x20 - 1, 0, 0x10, 10, 8, 17); Bg_FillTilemapRect(v1, 4, 0x6000 / 0x20 - 1, 0x16, 0x10, 10, 8, 17); @@ -1962,7 +1962,7 @@ static void ov16_022699AC(UnkStruct_ov16_02268A14 *param0, int param1, int param { BgConfig *v7; - v7 = BattleSystem_BGL(param0->battleSys); + v7 = BattleSystem_GetBgConfig(param0->battleSys); if (v0->moveIDs[0] == 0) { sub_020129D0(param0->unk_4CC[0].unk_00, 0); @@ -2029,7 +2029,7 @@ static void ov16_02269DB0(UnkStruct_ov16_02268A14 *param0, int param1, int param StringTemplate *v5; UnkStruct_ov16_022623F0 *v6 = ¶m0->unk_1A.val4; v0 = BattleSystem_GetMessageLoader(param0->battleSys); - v5 = BattleSystem_StringTemplate(param0->battleSys); + v5 = BattleSystem_GetStringTemplate(param0->battleSys); v1 = MessageLoader_GetNewString(v0, 1186); v2 = MessageLoader_GetNewString(v0, 1187); v3 = String_Init(100, HEAP_ID_BATTLE); @@ -2067,13 +2067,13 @@ static void ov16_02269E94(UnkStruct_ov16_02268A14 *param0, int param1, int param MI_CpuCopy32(v3->rawData, param0->unk_3C[6], 0x800); Heap_Free(v4); - v2 = BattleSystem_BGL(param0->battleSys); + v2 = BattleSystem_GetBgConfig(param0->battleSys); Bg_LoadTilemapBuffer(v2, 4, param0->unk_3C[6], 0x800); Bg_ScheduleTilemapTransfer(v2, 4); } { - BgConfig *v5 = BattleSystem_BGL(param0->battleSys); + BgConfig *v5 = BattleSystem_GetBgConfig(param0->battleSys); MI_CpuClear32(param0->unk_3C[4], 0x800); Bg_LoadTilemapBuffer(v5, 5, param0->unk_3C[4], 0x800); @@ -2091,7 +2091,7 @@ static void ov16_02269F68(UnkStruct_ov16_02268A14 *param0, int param1, int param StringTemplate *v5; UnkStruct_ov16_022623F0 *v6 = ¶m0->unk_1A.val4; v0 = BattleSystem_GetMessageLoader(param0->battleSys); - v5 = BattleSystem_StringTemplate(param0->battleSys); + v5 = BattleSystem_GetStringTemplate(param0->battleSys); v1 = MessageLoader_GetNewString(v0, 1217); v2 = MessageLoader_GetNewString(v0, 1218); v3 = String_Init(100, HEAP_ID_BATTLE); @@ -2117,7 +2117,7 @@ static void ov16_0226A04C(UnkStruct_ov16_02268A14 *param0, int param1, int param StringTemplate *v5; UnkStruct_ov16_022623F0 *v6 = ¶m0->unk_1A.val4; v0 = BattleSystem_GetMessageLoader(param0->battleSys); - v5 = BattleSystem_StringTemplate(param0->battleSys); + v5 = BattleSystem_GetStringTemplate(param0->battleSys); v1 = MessageLoader_GetNewString(v0, 1215); v2 = MessageLoader_GetNewString(v0, 1216); v3 = String_Init(100, HEAP_ID_BATTLE); @@ -2157,7 +2157,7 @@ static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param param0->unk_66A = v0->unk_20; v2 = BattleSystem_GetMessageLoader(param0->battleSys); - v8 = BattleSystem_StringTemplate(param0->battleSys); + v8 = BattleSystem_GetStringTemplate(param0->battleSys); ov16_0226B20C(param0, v3, 0); ov16_0226A698(param0); @@ -2179,7 +2179,7 @@ static void ov16_0226A12C(UnkStruct_ov16_02268A14 *param0, int param1, int param v5 = MessageLoader_GetNewString(v2, 964); } - v6 = BattleSystem_PartyPokemon(param0->battleSys, v12, v0->unk_00[v12].partySlot); + v6 = BattleSystem_GetPartyPokemon(param0->battleSys, v12, v0->unk_00[v12].partySlot); v7 = Pokemon_GetBoxPokemon(v6); StringTemplate_SetNickname(v8, 0, v7); @@ -2415,7 +2415,7 @@ static int ov16_0226A528(UnkStruct_ov16_02268A14 *param0, int param1, int param2 { BgConfig *v2; - v2 = BattleSystem_BGL(param0->battleSys); + v2 = BattleSystem_GetBgConfig(param0->battleSys); Bg_FillTilemap(v2, 5, 0x6000 / 0x20 - 1); Bg_ScheduleTilemapTransfer(v2, 5); } @@ -2461,7 +2461,7 @@ static void ov16_0226A698(UnkStruct_ov16_02268A14 *param0) v0 = BattleSystem_GetSpriteSystem(param0->battleSys); v1 = BattleSystem_GetSpriteManager(param0->battleSys); - v5 = BattleSystem_PaletteSys(param0->battleSys); + v5 = BattleSystem_GetPaletteData(param0->battleSys); SpriteSystem_LoadPaletteBuffer(v5, 3, v0, v1, 19, PokeIconPalettesFileIndex(), 0, 3, NNS_G2D_VRAM_TYPE_2DSUB, 20022); SpriteSystem_LoadCellResObj(v0, v1, 19, PokeIcon32KCellsFileIndex(), 0, 20021); @@ -2637,7 +2637,7 @@ static void ov16_0226A98C(UnkStruct_ov16_02268A14 *param0, UnkStruct_ov16_0226A9 GF_ASSERT(param1->unk_00 == NULL); v6 = BattleSystem_GetSpriteManager(param0->battleSys); - v5 = BattleSystem_BGL(param0->battleSys); + v5 = BattleSystem_GetBgConfig(param0->battleSys); if (param10 == NULL) { ov16_0226A95C(param2, param3, &v7, &v8); @@ -2708,7 +2708,7 @@ static void ov16_0226AAF8(UnkStruct_ov16_02268A14 *param0) u8 v0[4], v1[4]; int j, i; u16 *v4, *v5; - BgConfig *v6 = BattleSystem_BGL(param0->battleSys); + BgConfig *v6 = BattleSystem_GetBgConfig(param0->battleSys); v4 = Bg_GetTilemapBuffer(v6, 5); ov16_0226B20C(param0, v0, 0); @@ -2810,7 +2810,7 @@ void ov16_0226AC98(UnkStruct_ov16_02268A14 *param0, int param1, const MoveDispla v0 = ov16_0226ABD4(param0, param1); v3 = sub_0208C098(6); v9 = MessageLoader_GetNewString(v12, 938); - v10 = BattleSystem_StringTemplate(param0->battleSys); + v10 = BattleSystem_GetStringTemplate(param0->battleSys); v7 = String_Init((2 + 2 + 1 + 2) * 2 + 2, HEAP_ID_BATTLE); v8 = MessageLoader_GetNewString(v12, 937); @@ -2866,7 +2866,7 @@ static void ov16_0226AEA0(UnkStruct_ov16_02268A14 *param0, const String *param1, } Window_Init(¶m3->unk_00); - Window_AddToTopLeftCorner(BattleSystem_BGL(param0->battleSys), ¶m3->unk_00, v1, 16 / 8, 0, 0); + Window_AddToTopLeftCorner(BattleSystem_GetBgConfig(param0->battleSys), ¶m3->unk_00, v1, 16 / 8, 0, 0); Text_AddPrinterWithParamsColorAndSpacing(¶m3->unk_00, param2, param1, 0, 0, TEXT_SPEED_NO_TRANSFER, param4, 0, 0, NULL); } @@ -2944,7 +2944,7 @@ static void ov16_0226B028(UnkStruct_ov16_02268A14 *param0) static void LoadMoveSelectPlttSlot(UnkStruct_ov16_02268A14 *param0, enum PokemonType moveType, int moveSlot) { - LoadMoveSelectPltt(BattleSystem_PaletteSys(param0->battleSys), moveType, 5, PLTTBUF_SUB_BG, PLTT_8 + moveSlot); + LoadMoveSelectPltt(BattleSystem_GetPaletteData(param0->battleSys), moveType, 5, PLTTBUF_SUB_BG, PLTT_8 + moveSlot); } static void ov16_0226B088(UnkStruct_ov16_02268A14 *param0, int param1) @@ -2952,7 +2952,7 @@ static void ov16_0226B088(UnkStruct_ov16_02268A14 *param0, int param1) PaletteData *paletteSys; int i; - paletteSys = BattleSystem_PaletteSys(param0->battleSys); + paletteSys = BattleSystem_GetPaletteData(param0->battleSys); for (i = param1; i < 4; i++) { ov16_0226B31C(param0, &Unk_ov16_0227022C[i], &Unk_ov16_02270274[i], 3, 0); @@ -2965,8 +2965,8 @@ static void ov16_0226B0DC(UnkStruct_ov16_02268A14 *param0, int param1) PaletteData *v0; int v1; const u8 v2[] = { 6, 0xc, 0xd, 5 }; - BgConfig *v3 = BattleSystem_BGL(param0->battleSys); - v0 = BattleSystem_PaletteSys(param0->battleSys); + BgConfig *v3 = BattleSystem_GetBgConfig(param0->battleSys); + v0 = BattleSystem_GetPaletteData(param0->battleSys); ov16_0226B31C(param0, &Unk_ov16_022701FC[param1], &Unk_ov16_022702C4[param1], 4, 0); @@ -3120,7 +3120,7 @@ static void inline_ov16_0226B318_1(SysTask *param0, void *param1) int v4, v5; v1 = &v0->unk_6A0; - v3 = BattleSystem_PaletteSys(v0->battleSys); + v3 = BattleSystem_GetPaletteData(v0->battleSys); v5 = 0; switch (v1->unk_08) { @@ -3163,7 +3163,7 @@ static void inline_ov16_0226B314_1(SysTask *param0, void *param1) u8 v6[4]; v1 = &v0->unk_6A0; - v3 = BattleSystem_PaletteSys(v0->battleSys); + v3 = BattleSystem_GetPaletteData(v0->battleSys); v5 = 0; switch (v1->unk_08) { @@ -3209,7 +3209,7 @@ static void ov16_0226B31C(UnkStruct_ov16_02268A14 *param0, const s16 *param1, co u16 *v5, *v6; int v7; - v2 = BattleSystem_BGL(param0->battleSys); + v2 = BattleSystem_GetBgConfig(param0->battleSys); v3 = Bg_GetTilemapBuffer(v2, 4); v5 = param0->unk_3C[param3]; v7 = param1[param4]; @@ -3232,7 +3232,7 @@ static void ov16_0226B390(SysTask *param0, void *param1) BgConfig *v1; int v2, v3; - v1 = BattleSystem_BGL(v0->battleSys); + v1 = BattleSystem_GetBgConfig(v0->battleSys); switch (v0->unk_67C.unk_00) { case 0: @@ -3287,7 +3287,7 @@ static void ov16_0226B4E0(SysTask *param0, void *param1) int v7, v8, v9; UnkStruct_ov16_02260C00 *v10; - v1 = BattleSystem_BGL(v0->battleSys); + v1 = BattleSystem_GetBgConfig(v0->battleSys); v10 = &v0->unk_1A.val2; switch (v0->unk_67C.unk_04_val3.unk_08) { @@ -3413,7 +3413,7 @@ static void ov16_0226B780(SysTask *param0, void *param1) int i, v2, v3; u8 v4[4]; - v1 = BattleSystem_BGL(v0->battleSys); + v1 = BattleSystem_GetBgConfig(v0->battleSys); switch (v0->unk_67C.unk_00) { case 0: @@ -3517,7 +3517,7 @@ static TextColor ov16_0226B924(int param0, int param1) static void ov16_0226B988(SysTask *param0, void *param1) { UnkStruct_ov16_0226B988 *v0 = param1; - BgConfig *v1 = BattleSystem_BGL(v0->unk_00->battleSys); + BgConfig *v1 = BattleSystem_GetBgConfig(v0->unk_00->battleSys); switch (v0->unk_13) { case 0: @@ -3565,7 +3565,7 @@ static void ov16_0226BA88(SysTask *param0, void *param1) BgConfig *v1; s32 v2, v3, v4; - v1 = BattleSystem_BGL(v0->unk_00->battleSys); + v1 = BattleSystem_GetBgConfig(v0->unk_00->battleSys); if (v0->unk_12 == 4) { v4 = 255 - v0->unk_0C; @@ -3629,14 +3629,14 @@ static void ov16_0226BB94(void *param0) v1 = GX_GetVCount(); if (v1 == (18 * 8)) { - BgConfig *v3 = BattleSystem_BGL(v0->unk_00->battleSys); + BgConfig *v3 = BattleSystem_GetBgConfig(v0->unk_00->battleSys); Bg_SetOffset(v3, BG_LAYER_SUB_0, 0, 0); Bg_SetOffset(v3, BG_LAYER_SUB_0, 3, v0->unk_10); Bg_SetOffset(v3, BG_LAYER_SUB_1, 0, 0); Bg_SetOffset(v3, BG_LAYER_SUB_1, 3, v0->unk_10); } else if (v1 > 192) { - BgConfig *v4 = BattleSystem_BGL(v0->unk_00->battleSys); + BgConfig *v4 = BattleSystem_GetBgConfig(v0->unk_00->battleSys); if (v0->unk_12 == 4) { v2 = 255 - v0->unk_0C; @@ -3716,7 +3716,7 @@ static void ov16_0226BCE4(SysTask *param0, void *param1) PaletteData *v3; s16 v4; - v3 = BattleSystem_PaletteSys(v0->battleSys); + v3 = BattleSystem_GetPaletteData(v0->battleSys); if (PaletteData_GetSelectedBuffersMask(v3) != 0) { return; @@ -3753,7 +3753,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1) RenderControlFlags_ZeroSpeedUpBattle(); RenderControlFlags_ZeroWaitBattle(); - v1 = BattleSystem_PaletteSys(v0->battleSys); + v1 = BattleSystem_GetPaletteData(v0->battleSys); if (PaletteData_GetSelectedBuffersMask(v1) != 0) { return; @@ -3764,7 +3764,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1) if (gSystem.touchHeld && ((v4 == 1) || (v5 == 1))) { if (memcmp(&v2[8], &v0->unk_5C[8], v3) == 0) { - if (BattleSystem_BattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) { MI_CpuCopy16(&v0->unk_60[0], &v2[0], 0x20); MI_CpuCopy16(&v0->unk_60[16], &v2[7 * 16], 0x20); } else { @@ -3773,7 +3773,7 @@ static void ov16_0226BD74(SysTask *param0, void *param1) } } else { if (memcmp(&v2[8], &v0->unk_60[8], v3) == 0) { - if (BattleSystem_BattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) { + if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_FRONTIER) { MI_CpuCopy16(&v0->unk_5C[0], &v2[0], 0x20); MI_CpuCopy16(&v0->unk_5C[16], &v2[7 * 16], 0x20); } else { @@ -3823,8 +3823,8 @@ static int BattleSystem_Cursor_Menu(UnkStruct_ov16_02268A14 *param0, BOOL cursor cursor = ¶m0->cursor; v2 = &Unk_ov16_02270670[param0->unk_66B]; - v5 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A); - v6 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v5)); + v5 = BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A); + v6 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, v5)); if (cursorHidden == TRUE) { cursor->x = v6->unk_00; @@ -3893,10 +3893,10 @@ static void ov16_0226C0A0(UnkStruct_ov16_02268A14 *param0, int param1) UnkStruct_ov16_0226C378 *v0; int v1, j, i; - v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A); + v1 = BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A); if ((param1 != 3) || (param0->unk_6C1 == 0)) { - v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1)); + v0 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, v1)); for (i = 0; i < 2; i++) { for (j = 0; j < 3; j++) { @@ -3956,7 +3956,7 @@ static int BattleSystem_Cursor_Moves(UnkStruct_ov16_02268A14 *param0, BOOL curso int v3, i; u8 v5[3][2]; UnkStruct_ov16_02260C00 *v6; - UnkStruct_ov16_0226C378 *v7 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A))); + UnkStruct_ov16_0226C378 *v7 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A))); cursor = ¶m0->cursor; v2 = &Unk_ov16_02270670[param0->unk_66B]; v6 = ¶m0->unk_1A.val2; @@ -4013,8 +4013,8 @@ static void ov16_0226C378(UnkStruct_ov16_02268A14 *param0, int param1) return; } - v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A); - v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1)); + v1 = BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A); + v0 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, v1)); for (i = 0; i < 3; i++) { for (j = 0; j < 2; j++) { @@ -4042,7 +4042,7 @@ static int BattleSystem_Cursor_Battler(UnkStruct_ov16_02268A14 *param0, BOOL cur int v23, v24, v25, v26; int v27, v28; int v29; - UnkStruct_ov16_0226C378 *v30 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A))); + UnkStruct_ov16_0226C378 *v30 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A))); cursor = ¶m0->cursor; v2 = &Unk_ov16_02270670[param0->unk_66B]; @@ -4291,8 +4291,8 @@ static void ov16_0226C9B8(UnkStruct_ov16_02268A14 *param0, int param1) return; } - v1 = BattleSystem_BattlerOfType(param0->battleSys, param0->unk_66A); - v0 = ov16_02263B0C(BattleSystem_BattlerData(param0->battleSys, v1)); + v1 = BattleSystem_GetBattlerOfType(param0->battleSys, param0->unk_66A); + v0 = ov16_02263B0C(BattleSystem_GetBattlerData(param0->battleSys, v1)); v0->unk_06 = param0->unk_66C; @@ -4491,10 +4491,10 @@ static int ov16_0226CD18(UnkStruct_ov16_02268A14 *param0) v0 = BattleSystem_GetSpriteSystem(param0->battleSys); v1 = BattleSystem_GetSpriteManager(param0->battleSys); - v2 = BattleSystem_PaletteSys(param0->battleSys); + v2 = BattleSystem_GetPaletteData(param0->battleSys); v3 = 0xffffffff; - if (ov16_0223F228(param0->battleSys) == 0) { + if (BattleSystem_GetCatchingTutorialLowHP(param0->battleSys) == 0) { GF_ASSERT(param0->unk_6C4.unk_04 < NELEMS(Unk_ov16_0227020C)); v3 = Unk_ov16_0227020C[param0->unk_6C4.unk_04](param0); } else { @@ -4578,8 +4578,8 @@ static int ov16_0226CE34(UnkStruct_ov16_02268A14 *param0) void ov16_0226CEB0(UnkStruct_ov16_02268A14 *param0, int param1) { - BgConfig *v0 = BattleSystem_BGL(param0->battleSys); - PaletteData *v1 = BattleSystem_PaletteSys(param0->battleSys); + BgConfig *v0 = BattleSystem_GetBgConfig(param0->battleSys); + PaletteData *v1 = BattleSystem_GetPaletteData(param0->battleSys); GF_ASSERT(param0->unk_66B == 18); diff --git a/src/battle/battle_display.c b/src/battle/battle_display.c index 03073c15c2..e7e939df02 100644 --- a/src/battle/battle_display.c +++ b/src/battle/battle_display.c @@ -17,11 +17,11 @@ #include "battle/battle_cursor.h" #include "battle/battle_lib.h" #include "battle/battle_message.h" +#include "battle/battle_system.h" #include "battle/healthbar.h" #include "battle/message_defs.h" #include "battle/move_display_info.h" #include "battle/ov16_0223B140.h" -#include "battle/ov16_0223DF00.h" #include "battle/ov16_02264798.h" #include "battle/party_gauge.h" #include "battle/struct_ov16_0224DDA8.h" @@ -202,7 +202,7 @@ static const u16 Unk_ov16_0226F1AE[] = { void ov16_0225CBB8(BattleSystem *battleSys, BattlerData *param1) { UnkStruct_ov16_0225CBB8 *v0 = (UnkStruct_ov16_0225CBB8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225CBB8)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_14 = 0; v0->unk_15 = 0; v0->unk_16 = 0; @@ -224,7 +224,7 @@ void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *param1, MonEncounterMes u8 v9; v2 = BattleSystem_GetPokemonSpriteManager(battleSys); - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); v4 = (UnkStruct_ov16_0225E4E8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E4E8)); v4->unk_12 = 0; @@ -260,7 +260,7 @@ void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *param1, MonEncounterMes PokemonSprite_StartFade(v4->unk_08, 8, 8, 0, 0x0); } - if ((v4->unk_13 == 2) && (BattleSystem_BattleStatus(battleSys) & 0x40)) { + if ((v4->unk_13 == 2) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x40)) { int v10, v11; v11 = PokemonSprite_GetAttribute(v4->unk_08, MON_SPRITE_Y_CENTER); @@ -275,7 +275,7 @@ void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *param1, MonEncounterMes v4->unk_14 = Unk_ov12_0223B0A0[param1->battlerType][0]; } - v4->unk_00 = battleSys; + v4->battleSys = battleSys; v4->unk_04 = param1; v4->unk_10 = message->command; v4->unk_11 = param1->battler; @@ -286,7 +286,7 @@ void ov16_0225CBDC(BattleSystem *battleSys, BattlerData *param1, MonEncounterMes v4->unk_24 = Pokemon_GetNatureOf(message->personality); v4->unk_28 = message->isShiny; - if ((v4->unk_13 == 2) && (BattleSystem_BattleStatus(battleSys) & 0x40)) { + if ((v4->unk_13 == 2) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x40)) { SysTask_Start(ov16_0225E894, v4, 0); } else { SysTask_Start(ov16_0225E4E8, v4, 0); @@ -299,7 +299,7 @@ void ov16_0225CE1C(BattleSystem *battleSys, BattlerData *param1, MonShowMessage { int v0; UnkStruct_ov16_0225EA80 *v1; - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); v1 = (UnkStruct_ov16_0225EA80 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225EA80)); if (param1->battlerType & 0x1) { @@ -323,7 +323,7 @@ void ov16_0225CE1C(BattleSystem *battleSys, BattlerData *param1, MonShowMessage PokemonSprite_LoadShadowSize(param1->unk_1A0, &v1->unk_93, message->species); ov16_02263B10(param1); - v1->unk_00 = battleSys; + v1->battleSys = battleSys; v1->unk_04 = param1; v1->unk_83 = 0; v1->unk_96 = 0; @@ -348,7 +348,7 @@ void ov16_0225CF70(BattleSystem *battleSys, BattlerData *param1, MonShowMessage int i; int v1; UnkStruct_ov16_0225EA80 *v2; - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); v2 = (UnkStruct_ov16_0225EA80 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225EA80)); v2->unk_83 = 0; @@ -373,7 +373,7 @@ void ov16_0225CF70(BattleSystem *battleSys, BattlerData *param1, MonShowMessage PokemonSprite_LoadShadowSize(param1->unk_1A0, &v2->unk_93, message->species); ov16_02263B10(param1); - v2->unk_00 = battleSys; + v2->battleSys = battleSys; v2->unk_04 = param1; v2->unk_80 = message->command; v2->unk_81 = param1->battler; @@ -404,7 +404,7 @@ void ov16_0225D118(BattleSystem *battleSys, BattlerData *param1, MonReturnMessag { int i; UnkStruct_ov16_0225F764 *v1 = (UnkStruct_ov16_0225F764 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225F764)); - v1->unk_00 = battleSys; + v1->battleSys = battleSys; v1->unk_04 = param1; v1->unk_08 = param1->unk_20; v1->unk_68 = message->command; @@ -430,7 +430,7 @@ void ov16_0225D1C4(BattleSystem *battleSys, BattlerData *param1, CaptureOpenBall { UnkStruct_ov16_0225D1C4 *v0 = (UnkStruct_ov16_0225D1C4 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D1C4)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1->unk_20; v0->unk_08 = message->command; v0->unk_09 = param1->battler; @@ -462,7 +462,7 @@ void ov16_0225D228(BattleSystem *battleSys, BattlerData *param1, TrainerEncounte ManagedSprite_SetPositionXY(v1->unk_04->unk_00, Unk_ov12_0223B0B8[param1->battlerType & 1][0], 128 + 8); } - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) || ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) && (param1->battlerType & BATTLE_TYPE_TRAINER))) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) || ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) && (param1->battlerType & BATTLE_TYPE_TRAINER))) { v2 = param1->battlerType; } else { v2 = param1->battlerType & 1; @@ -472,14 +472,14 @@ void ov16_0225D228(BattleSystem *battleSys, BattlerData *param1, TrainerEncounte v1->unk_08 = param1->unk_18 = ov16_022643B8(battleSys, v2, message->trainerType, param1->battlerType, Unk_ov12_0223B0B8[v2][0], Unk_ov12_0223B0B8[v2][1]); v1->unk_10 = Unk_ov12_0223B0A0[v2][0]; - v1->unk_00 = battleSys; + v1->battleSys = battleSys; v1->unk_0C = message->command; v1->unk_0D = param1->battler; v1->unk_14 = param1->battlerType; v1->unk_1C = 0; if ((v1->unk_14 == 0) || (v1->unk_14 == 2)) { - Bg_SetOffset(BattleSystem_BGL(battleSys), 3, 2, 4 * 33); + Bg_SetOffset(BattleSystem_GetBgConfig(battleSys), 3, 2, 4 * 33); } SysTask_Start(ov16_0225FA70, v1, 0); @@ -490,7 +490,7 @@ void ov16_0225D360(BattleSystem *battleSys, BattlerData *param1, TrainerThrowBal UnkStruct_ov16_0225D360 *v0 = (UnkStruct_ov16_0225D360 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D360)); v0->unk_0A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = message->command; v0->unk_10 = message->ballTypeIn; v0->unk_09 = param1->battler; @@ -515,7 +515,7 @@ void ov16_0225D3CC(BattleSystem *battleSys, BattlerData *param1) UnkStruct_ov16_0225D3CC *v0 = (UnkStruct_ov16_0225D3CC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D3CC)); v0->unk_0A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = param1->data[0]; v0->unk_09 = param1->battler; v0->unk_04 = param1; @@ -549,7 +549,7 @@ void ov16_0225D414(BattleSystem *battleSys, BattlerData *param1, TrainerSlideInM v3->unk_04 = param1->unk_18 = ov16_022643B8(battleSys, param1->battlerType & 1, message->trainerType, param1->battlerType, Unk_ov12_0223B0DC[param1->battlerType & 1][0], Unk_ov12_0223B0DC[param1->battlerType & 1][1]); v3->unk_0C = Unk_ov12_0223B0A0[param1->battlerType & 1][message->posIn]; - v3->unk_00 = battleSys; + v3->battleSys = battleSys; v3->unk_08 = message->command; v3->unk_09 = param1->battler; @@ -563,7 +563,7 @@ void BattleDisplay_SlideHealthbarIn(BattleSystem *battleSys, BattlerData *battle healthbar->battleSys = battleSys; healthbar->battler = battlerData->battler; - healthbar->type = Healthbar_Type(battlerData->battlerType, BattleSystem_BattleType(battleSys)); + healthbar->type = Healthbar_Type(battlerData->battlerType, BattleSystem_GetBattleType(battleSys)); healthbar->unk_4C = healthbarData->command; healthbar->curHP = healthbarData->curHP; healthbar->maxHP = healthbarData->maxHP; @@ -608,7 +608,7 @@ void ov16_0225D5B8(BattleSystem *battleSys, BattlerData *param1, CommandSetMessa v0->unk_0A = 0; v0->unk_0B = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = message->command; v0->unk_09 = param1->battler; v0->unk_34 = param1->battlerType; @@ -654,7 +654,7 @@ void ov16_0225D698(BattleSystem *battleSys, BattlerData *param1, MoveSelectMenuM v0 = (UnkStruct_ov16_0225D698 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D698)); v0->unk_20 = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_1C = param1->data[0]; v0->unk_1D = param1->battler; v0->unk_1E = param1->battlerType; @@ -682,7 +682,7 @@ void ov16_0225D708(BattleSystem *battleSys, BattlerData *param1, TargetSelectMen v0 = (UnkStruct_ov16_0225D708 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D708)); v0->unk_0F = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_0C = param1->data[0]; v0->unk_0D = param1->battler; v0->unk_0E = param1->battlerType; @@ -692,8 +692,8 @@ void ov16_0225D708(BattleSystem *battleSys, BattlerData *param1, TargetSelectMen ov16_0223F87C(battleSys, &v4[0]); - v2 = BattleSystem_MaxBattlers(battleSys); - battleType = BattleSystem_BattleType(battleSys); + v2 = BattleSystem_GetMaxBattlers(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); for (i = 0; i < v2; i++) { v0->unk_10[i] = message->targetMon[i]; @@ -713,7 +713,7 @@ void ov16_0225D794(BattleSystem *battleSys, BattlerData *param1, BagMenuMessage v0->unk_08->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); v0->unk_08->unk_04->party = Party_New(HEAP_ID_BATTLE); v0->unk_0E = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_0C = message->command; v0->unk_0D = param1->battler; v0->unk_0F = param1->battlerType; @@ -742,7 +742,7 @@ void ov16_0225D840(BattleSystem *battleSys, BattlerData *param1, PartyMenuMessag v0 = (UnkStruct_ov16_0225D840 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D840)); v0->unk_0A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = message->command; v0->unk_09 = message->battler; v0->unk_0B = message->listMode; @@ -767,7 +767,7 @@ void ov16_0225D8AC(BattleSystem *battleSys, BattlerData *param1, YesNoMenuMessag UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D8AC)); v0->unk_0E = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_0C = message->command; v0->unk_0D = param1->battler; v0->unk_04 = ¶m1->healthbar; @@ -792,7 +792,7 @@ void ov16_0225D8F0(BattleSystem *battleSys, BattlerData *param1, AttackMsgMessag MessageLoader *v1; BattleMessage v2; - v1 = ov16_0223E060(battleSys); + v1 = BattleSystem_GetAttackMessageLoader(battleSys); v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); v0->battleSys = battleSys; @@ -803,7 +803,7 @@ void ov16_0225D8F0(BattleSystem *battleSys, BattlerData *param1, AttackMsgMessag v2.tags = 2; v2.params[0] = param1->battler | (message->partySlot << 8); - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -816,7 +816,7 @@ void BattleDisplay_PrintMessage(BattleSystem *battleSys, BattlerData *battlerDat taskData->battleSys = battleSys; taskData->command = battlerData->data[0]; taskData->battler = battlerData->battler; - taskData->msgIdx = BattleMessage_Print(battleSys, msgLoader, battleMsg, BattleSystem_TextSpeed(battleSys)); + taskData->msgIdx = BattleMessage_Print(battleSys, msgLoader, battleMsg, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, taskData, 0); } @@ -826,11 +826,11 @@ void ov16_0225D9A8(BattleSystem *battleSys, BattlerData *param1, MoveAnimation * UnkStruct_ov16_0225D9A8 *v0 = (UnkStruct_ov16_0225D9A8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225D9A8)); v0->unk_6A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1; v0->unk_68 = param1->data[0]; v0->unk_69 = param1->battler; - v0->unk_0C = ov16_0223E008(battleSys); + v0->unk_0C = BattleSystem_GetBattleAnimSystem(battleSys); v0->unk_10 = *animation; v0->unk_08 = param1->unk_20; @@ -851,7 +851,7 @@ void ov16_0225DA44(BattleSystem *battleSys, BattlerData *param1) UnkStruct_ov16_0225DA44 *v0 = (UnkStruct_ov16_0225DA44 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DA44)); v0->unk_09 = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1->unk_20; v0->unk_08 = param1->battler; v0->unk_0A = 0; @@ -871,7 +871,7 @@ void ov16_0225DA74(BattleSystem *battleSys, BattlerData *param1, HPGaugeUpdateMe v0->battleSys = battleSys; v0->unk_4C = message->command; v0->battler = param1->battler; - v0->type = Healthbar_Type(param1->battlerType, BattleSystem_BattleType(battleSys)); + v0->type = Healthbar_Type(param1->battlerType, BattleSystem_GetBattleType(battleSys)); v0->curHP = message->curHP; v0->maxHP = message->maxHP; v0->damage = message->hpCalcTemp; @@ -924,7 +924,7 @@ void ov16_0225DB74(BattleSystem *battleSys, BattlerData *param1, FaintingSequenc } v0->unk_66 = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1; v0->unk_64 = message->command; v0->unk_65 = param1->battler; @@ -966,7 +966,7 @@ void ov16_0225DC7C(BattleSystem *battleSys, BattlerData *param1) UnkStruct_ov16_0225DC7C *v0 = (UnkStruct_ov16_0225DC7C *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DC7C)); v0->unk_06 = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1->data[0]; v0->unk_05 = param1->battler; @@ -980,7 +980,7 @@ void ov16_0225DCB0(BattleSystem *battleSys, BattlerData *param1, ToggleVanishMes v0 = (UnkStruct_ov16_0225DCB0 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DCB0)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1; v0->unk_60 = message->command; v0->unk_61 = param1->battler; @@ -1012,13 +1012,13 @@ void ov16_0225DD44(BattleSystem *battleSys, BattlerData *param1, SetStatusIconMe void ov16_0225DD7C(BattleSystem *battleSys, BattlerData *param1, TrainerMsgMessage *message) { BattleMessageWaitTask *v0; - int v1 = Battler_TrainerID(battleSys, param1->battler); + int v1 = Battler_GetTrainerID(battleSys, param1->battler); v0 = (BattleMessageWaitTask *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageWaitTask)); v0->battleSys = battleSys; v0->command = message->command; v0->battler = param1->battler; - v0->msgIdx = ov16_0223F9FC(battleSys, v1, param1->battler, message->msg, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_PrintTrainerMessage(battleSys, v1, param1->battler, message->msg, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1037,7 +1037,7 @@ void ov16_0225DDD8(BattleSystem *battleSys, BattlerData *param1, RecallMsgMessag v0->battleSys = battleSys; v0->command = message->command; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1056,7 +1056,7 @@ void ov16_0225DE30(BattleSystem *battleSys, BattlerData *param1, SendOutMsgMessa v0->battleSys = battleSys; v0->command = message->command; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1075,7 +1075,7 @@ void ov16_0225DE88(BattleSystem *battleSys, BattlerData *param1) v0->battleSys = battleSys; v0->command = 34; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1094,7 +1094,7 @@ void ov16_0225DEDC(BattleSystem *battleSys, BattlerData *param1, LeadMonMsgMessa v0->battleSys = battleSys; v0->command = message->command; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1103,7 +1103,7 @@ void ov16_0225DF34(BattleSystem *battleSys, BattlerData *param1) { UnkStruct_ov16_0225DF34 *v0 = (UnkStruct_ov16_0225DF34 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DF34)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = param1->data[0]; v0->unk_09 = param1->battler; v0->unk_0A = 0; @@ -1121,18 +1121,18 @@ void ov16_0225DF6C(BattleSystem *battleSys, BattlerData *param1, AlertMsgMessage v1 = BattleSystem_GetMessageLoader(battleSys); v0 = (UnkStruct_ov16_0225DF6C *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225DF6C)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = message->command; v0->unk_05 = param1->battler; v0->unk_07 = 0; - v0->unk_06 = BattleMessage_Print(battleSys, v1, &message->msg, BattleSystem_TextSpeed(battleSys)); + v0->unk_06 = BattleMessage_Print(battleSys, v1, &message->msg, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(ov16_02262FC0, v0, 0); } else if (param1->bootState == 0x1) { ov16_022661B0(battleSys, param1->battler); BattleController_EmitClearCommand(battleSys, param1->battler, message->command); } else { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == 0) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == 0) { ov16_022661B0(battleSys, param1->battler); } @@ -1148,7 +1148,7 @@ void ov16_0225E008(BattleSystem *battleSys, BattlerData *param1, RefreshHPGaugeM v0->battleSys = battleSys; v0->battler = param1->battler; - v0->type = Healthbar_Type(param1->battlerType, BattleSystem_BattleType(battleSys)); + v0->type = Healthbar_Type(param1->battlerType, BattleSystem_GetBattleType(battleSys)); v0->unk_4C = message->command; v0->curHP = message->curHP; v0->maxHP = message->maxHP; @@ -1171,7 +1171,7 @@ void ov16_0225E0BC(BattleSystem *battleSys, BattlerData *param1, ForgetMoveMessa UnkStruct_ov16_0225E0BC *v0 = (UnkStruct_ov16_0225E0BC *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E0BC)); v0->unk_0A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_08 = message->command; v0->unk_09 = param1->battler; v0->unk_0C = message->move; @@ -1185,7 +1185,7 @@ void ov16_0225E0F4(BattleSystem *battleSys, BattlerData *param1, MosaicSetMessag UnkStruct_ov16_0225E0F4 *v0 = (UnkStruct_ov16_0225E0F4 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E0F4)); v0->unk_0A = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1->unk_20; v0->unk_08 = message->command; v0->unk_09 = param1->battler; @@ -1282,7 +1282,7 @@ void ov16_0225E23C(BattleSystem *battleSys, BattlerData *param1) v1.tags = 0; BattleMessage_Print(battleSys, v0, &v1, NULL); - Battle_SetWaitDial(battleSys, Window_AddWaitDial(BattleSystem_Window(battleSys, 0), 1)); + BattleSystem_SetWaitDial(battleSys, Window_AddWaitDial(BattleSystem_GetWindow(battleSys, 0), 1)); } BattleController_EmitClearCommand(battleSys, param1->battler, 55); @@ -1302,7 +1302,7 @@ void ov16_0225E2C8(BattleSystem *battleSys, BattlerData *param1) UnkStruct_ov16_0225E2C8 *v0 = (UnkStruct_ov16_0225E2C8 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E2C8)); v0->unk_0E = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1; v0->unk_0C = param1->data[0]; v0->unk_0D = param1->battler; @@ -1316,7 +1316,7 @@ void ov16_0225E300(BattleSystem *battleSys, BattlerData *param1) UnkStruct_ov16_0225E300 *v0 = (UnkStruct_ov16_0225E300 *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0225E300)); v0->unk_0E = 0; - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v0->unk_04 = param1; v0->unk_0C = param1->data[0]; v0->unk_0D = param1->battler; @@ -1339,7 +1339,7 @@ void ov16_0225E338(BattleSystem *battleSys, BattlerData *param1) v0->battleSys = battleSys; v0->command = 59; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1358,7 +1358,7 @@ void ov16_0225E38C(BattleSystem *battleSys, BattlerData *param1, EscapeMsgMessag v0->battleSys = battleSys; v0->command = 60; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1377,7 +1377,7 @@ void ov16_0225E3E0(BattleSystem *battleSys, BattlerData *param1) v0->battleSys = battleSys; v0->command = 61; v0->battler = param1->battler; - v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_TextSpeed(battleSys)); + v0->msgIdx = BattleMessage_Print(battleSys, v1, &v2, BattleSystem_GetTextSpeed(battleSys)); SysTask_Start(WaitForBattleMessagePrint, v0, 0); } @@ -1425,7 +1425,7 @@ void ov16_0225E4C8(BattleSystem *battleSys, BattlerData *param1, MusicPlayMessag static void ov16_0225E4E8(SysTask *param0, void *param1) { UnkStruct_ov16_0225E4E8 *v0 = (UnkStruct_ov16_0225E4E8 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); s16 v2, v3; switch (v0->unk_12) { @@ -1471,12 +1471,12 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_IS_AFFINE, 0); PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); { u8 v4; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v4, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); } if ((v0->unk_1C == 1) || (v0->unk_1C == 3)) { @@ -1513,13 +1513,13 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) if (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_X_CENTER) <= v0->unk_14) { PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_X_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); { u8 v5; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v5, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, -117, 127, NULL, 5, v5); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, -117, 127, NULL, 5, v5); } if ((v0->unk_1C == 0) || (v0->unk_1C == 2)) { @@ -1531,13 +1531,13 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) } break; case 3: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { if (v0->unk_28) { { MoveAnimation v6; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v6, 1, 11, v0->unk_11, v0->unk_11, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v6); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 11, v0->unk_11, v0->unk_11, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v6); } v0->unk_12 = 4; } else { @@ -1555,7 +1555,7 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) break; default: Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_11, v0->unk_10); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_11, v0->unk_10); Heap_Free(param1); SysTask_Done(param0); break; @@ -1565,7 +1565,7 @@ static void ov16_0225E4E8(SysTask *param0, void *param1) static void ov16_0225E894(SysTask *param0, void *param1) { UnkStruct_ov16_0225E4E8 *v0 = (UnkStruct_ov16_0225E4E8 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); s16 v2, v3; switch (v0->unk_12) { @@ -1597,13 +1597,13 @@ static void ov16_0225E894(SysTask *param0, void *param1) PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_SHOULD_FOLLOW_Y, 0); PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_SHADOW_IS_AFFINE, 0); PokemonSprite_SetAttribute(v0->unk_08, MON_SPRITE_Y_CENTER, v0->unk_14); - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_08, v0->unk_16, v0->unk_13, 0, v0->unk_11); { u8 v4; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v4, v0->unk_16, v0->unk_1C); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_11), v0->unk_18, v0->unk_16, v0->unk_2C, 117, 127, NULL, 5, v4); } ManagedSprite_SetPositionXY(v0->unk_0C->unk_00, 24 * 8, 8 * 11); @@ -1613,13 +1613,13 @@ static void ov16_0225E894(SysTask *param0, void *param1) } break; case 3: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_11) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_08) == 0)) { if (v0->unk_28) { { MoveAnimation v5; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v5, 1, 11, v0->unk_11, v0->unk_11, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v5); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v5, 1, 11, v0->unk_11, v0->unk_11, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v5); } v0->unk_12 = 4; } else { @@ -1637,7 +1637,7 @@ static void ov16_0225E894(SysTask *param0, void *param1) break; default: Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_11, v0->unk_10); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_11, v0->unk_10); Heap_Free(param1); SysTask_Done(param0); break; @@ -1664,18 +1664,18 @@ static void ov16_0225EA80(SysTask *param0, void *param1) { v0->unk_10 = NULL; - if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_2vs2) { - if ((BattleSystem_BattleStatus(v0->unk_00) & 0x20) == 0) { + if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) { + if ((BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x20) == 0) { if (v0->unk_82 == 2) { - v0->unk_10 = ov12_02223764(v0->unk_00, HEAP_ID_BATTLE); + v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); } } } else { - if ((BattleSystem_BattleStatus(v0->unk_00) & 0x20) == 0) { - if ((ov16_0223ED60(v0->unk_00) == 1) && (v0->unk_82 == 2)) { - v0->unk_10 = ov12_02223764(v0->unk_00, HEAP_ID_BATTLE); + if ((BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x20) == 0) { + if ((ov16_0223ED60(v0->battleSys) == 1) && (v0->unk_82 == 2)) { + v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); } else if (v0->unk_82 == 0) { - v0->unk_10 = ov12_02223764(v0->unk_00, HEAP_ID_BATTLE); + v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); } else { (void)0; } @@ -1689,7 +1689,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) UnkStruct_ov12_02236030 v1 = { 0 }; v1.unk_00 = v0->unk_82; - v1.unk_08 = BattleSystem_PartyPokemon(v0->unk_00, v0->unk_81, v0->unk_8C); + v1.unk_08 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_81, v0->unk_8C); v0->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v1); ov12_02236320(v0->unk_08); @@ -1720,9 +1720,9 @@ static void ov16_0225EA80(SysTask *param0, void *param1) PokemonSpriteManager *v2; SpriteAnimFrame v3[10]; - v2 = BattleSystem_GetPokemonSpriteManager(v0->unk_00); + v2 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); PokemonSprite_LoadAnimFrames(v0->unk_04->unk_1A0, &v3[0], v0->unk_86, v0->unk_82); - v0->unk_04->unk_20 = ov16_02263B30(v0->unk_00, v2, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v3[0], NULL); + v0->unk_04->unk_20 = ov16_02263B30(v0->battleSys, v2, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v3[0], NULL); PokemonSprite_SetAttribute(v0->unk_04->unk_20, MON_SPRITE_SCALE_X, 0x0); PokemonSprite_SetAttribute(v0->unk_04->unk_20, MON_SPRITE_SCALE_Y, 0x0); @@ -1763,7 +1763,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) u8 v4; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v4, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v4); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v4); } } else { PokemonSprite_InitAnim(v0->unk_04->unk_20, 1); @@ -1772,11 +1772,11 @@ static void ov16_0225EA80(SysTask *param0, void *param1) u8 v5; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v5, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v5); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v5); } } - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); PokemonSprite_StartFade(v0->unk_04->unk_20, 16, 0, 0, Unk_ov16_0226F1AE[v0->unk_8E]); v0->unk_83 = 5; @@ -1792,7 +1792,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) u8 v6; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v6, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); } } else { PokemonSprite_InitAnim(v0->unk_04->unk_20, 1); @@ -1801,11 +1801,11 @@ static void ov16_0225EA80(SysTask *param0, void *param1) u8 v7; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v7, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); } } - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); PokemonSprite_StartFade(v0->unk_04->unk_20, 16, 0, 1, Unk_ov16_0226F1AE[v0->unk_8E]); v0->unk_83 = 5; @@ -1821,7 +1821,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) } break; case 6: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_04->unk_20) == 0)) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_04->unk_20) == 0)) { ov12_0223783C(v0->unk_04->unk_84); v0->unk_04->unk_84 = NULL; ov12_02236428(v0->unk_08); @@ -1831,8 +1831,8 @@ static void ov16_0225EA80(SysTask *param0, void *param1) MoveAnimation v8; v0->unk_24 = BattleAnimSystem_New(HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v8, 1, 11, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_24, &v8); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v8, 1, 11, v0->unk_81, v0->unk_81, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_24, &v8); } v0->unk_83 = 7; } else { @@ -1851,7 +1851,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) break; default: Sound_Set2PokemonCriesAllowed(0); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_81, v0->unk_80); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_81, v0->unk_80); Heap_Free(param1); SysTask_Done(param0); break; @@ -1861,7 +1861,7 @@ static void ov16_0225EA80(SysTask *param0, void *param1) static void ov16_0225F0C0(SysTask *param0, void *param1) { UnkStruct_ov16_0225EA80 *v0 = (UnkStruct_ov16_0225EA80 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); switch (v0->unk_83) { case 0: { @@ -1871,8 +1871,8 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) v2.heapID = HEAP_ID_BATTLE; v2.target = v0->unk_81; v2.ballID = v0->unk_8E; - v2.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00); - v2.paletteSys = BattleSystem_PaletteSys(v0->unk_00); + v2.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); + v2.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); v2.bgPrio = 1; v2.surface = 0; @@ -1888,9 +1888,9 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) PokemonSpriteManager *v3; SpriteAnimFrame v4[10]; - v3 = BattleSystem_GetPokemonSpriteManager(v0->unk_00); + v3 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); PokemonSprite_LoadAnimFrames(v0->unk_04->unk_1A0, &v4[0], v0->unk_86, v0->unk_82); - v0->unk_04->unk_20 = ov16_02263B30(v0->unk_00, v3, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v4[0], NULL); + v0->unk_04->unk_20 = ov16_02263B30(v0->battleSys, v3, &v0->unk_14, Unk_ov12_0223B0A0[v0->unk_82][0], Unk_ov12_0223B0B8[v0->unk_82][1], Unk_ov12_0223B0B8[v0->unk_82][2], v0->unk_85, v0->unk_90, v0->unk_91, v0->unk_93, v0->unk_81, &v4[0], NULL); PokemonSprite_SetAttribute(v0->unk_04->unk_20, MON_SPRITE_SCALE_X, 0x0); PokemonSprite_SetAttribute(v0->unk_04->unk_20, MON_SPRITE_SCALE_Y, 0x0); @@ -1899,7 +1899,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) } { v0->unk_10 = NULL; - v0->unk_10 = ov12_02223764(v0->unk_00, HEAP_ID_BATTLE); + v0->unk_10 = ov12_02223764(v0->battleSys, HEAP_ID_BATTLE); } v0->unk_83++; break; @@ -1907,7 +1907,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) UnkStruct_ov12_02236030 v5 = { 0 }; v5.unk_00 = v0->unk_82; - v5.unk_08 = BattleSystem_PartyPokemon(v0->unk_00, v0->unk_81, v0->unk_8C); + v5.unk_08 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_81, v0->unk_8C); v5.unk_04 = v0->unk_8E; v0->unk_08 = ov12_02236004(HEAP_ID_BATTLE, &v5); @@ -1957,7 +1957,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) u8 v6; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v6, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v6); } } else { PokemonSprite_InitAnim(v0->unk_04->unk_20, 1); @@ -1966,11 +1966,11 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) u8 v7; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v7, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v7); } } - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); PokemonSprite_StartFade(v0->unk_04->unk_20, 16, 0, 0, Unk_ov16_0226F1AE[v0->unk_8E]); v0->unk_83 = 5; } else if (PokemonSprite_GetAttribute(v0->unk_04->unk_20, MON_SPRITE_SCALE_X) >= 0x100) { @@ -1985,7 +1985,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) u8 v8; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v8, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v8); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, 117, 127, NULL, 5, v8); } } else { PokemonSprite_InitAnim(v0->unk_04->unk_20, 1); @@ -1994,11 +1994,11 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) u8 v9; PokemonSprite_LoadCryDelay(v0->unk_04->unk_1A0, &v9, v0->unk_86, v0->unk_82); - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v9); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_81), v0->unk_88, v0->unk_86, v0->unk_97, -117, 127, NULL, 5, v9); } } - PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); + PokemonSprite_LoadAnim(v0->unk_04->unk_1A0, BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_04->unk_20, v0->unk_86, v0->unk_84, 0, v0->unk_81); PokemonSprite_StartFade(v0->unk_04->unk_20, 16, 0, 1, Unk_ov16_0226F1AE[v0->unk_8E]); v0->unk_83 = 5; } else { @@ -2013,7 +2013,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) } break; case 6: - if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->unk_00), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_04->unk_20) == 0)) { + if ((PokemonAnimManager_HasAnimCompleted(BattleSystem_GetPokemonAnimManager(v0->battleSys), v0->unk_81) == TRUE) && (PokemonSprite_IsAnimActive(v0->unk_04->unk_20) == 0)) { ov12_0223783C(v0->unk_0C); ov12_02236428(v0->unk_08); @@ -2021,8 +2021,8 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) { MoveAnimation v10; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v10, 1, 11, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v10); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v10, 1, 11, v0->unk_81, v0->unk_81, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v10); } v0->unk_83 = 7; } else { @@ -2045,8 +2045,8 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) { MoveAnimation v11; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v11, 1, 15, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v11); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v11, 1, 15, v0->unk_81, v0->unk_81, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v11); } v0->unk_83++; } else { @@ -2057,17 +2057,17 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v12; MoveAnimation v13; - ov16_02264530(v0->unk_00, &v0->unk_28, &v12, v0->unk_81); + ov16_02264530(v0->battleSys, &v0->unk_28, &v12, v0->unk_81); ov12_02238390(&v12, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v13, 1, 16, v0->unk_81, v0->unk_81, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v13); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 1, 16, v0->unk_81, v0->unk_81, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v13); v0->unk_04->unk_19C = 1; } v0->unk_83++; break; default: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_81, v0->unk_80); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_81, v0->unk_80); Heap_Free(param1); SysTask_Done(param0); break; @@ -2077,7 +2077,7 @@ static void ov16_0225F0C0(SysTask *param0, void *param1) static void ov16_0225F764(SysTask *param0, void *param1) { UnkStruct_ov16_0225F764 *v0 = (UnkStruct_ov16_0225F764 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); switch (v0->unk_6B) { case 0: @@ -2085,8 +2085,8 @@ static void ov16_0225F764(SysTask *param0, void *param1) { MoveAnimation v2; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v2, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v2); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v2, 1, 15, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v2); } v0->unk_6B++; } else { @@ -2097,10 +2097,10 @@ static void ov16_0225F764(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v3; MoveAnimation v4; - ov16_02264530(v0->unk_00, &v0->unk_10, &v3, v0->unk_69); + ov16_02264530(v0->battleSys, &v0->unk_10, &v3, v0->unk_69); ov12_022382BC(&v3, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v4, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v4); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 16, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v4); v0->unk_04->unk_19C = 0; } v0->unk_6B++; @@ -2124,8 +2124,8 @@ static void ov16_0225F764(SysTask *param0, void *param1) v5.mode = 5; v5.target = v0->unk_69; v5.ballID = v0->unk_6E; - v5.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00); - v5.paletteSys = BattleSystem_PaletteSys(v0->unk_00); + v5.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); + v5.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); v5.bgPrio = 1; v5.surface = 0; v0->unk_0C = ov12_02237728(&v5); @@ -2140,8 +2140,8 @@ static void ov16_0225F764(SysTask *param0, void *param1) v6.mode = 5; v6.target = v0->unk_69; v6.ballID = v0->unk_6E; - v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00); - v6.paletteSys = BattleSystem_PaletteSys(v0->unk_00); + v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); + v6.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); v6.bgPrio = 1; v6.surface = 0; v0->unk_0C = ov12_02237728(&v6); @@ -2192,7 +2192,7 @@ static void ov16_0225F764(SysTask *param0, void *param1) } break; case 8: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_69, v0->unk_68); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_69, v0->unk_68); Heap_Free(param1); SysTask_Done(param0); break; @@ -2219,7 +2219,7 @@ static void ov16_0225FA00(SysTask *param0, void *param1) } break; case 1: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); break; @@ -2230,10 +2230,10 @@ static void ov16_0225FA70(SysTask *param0, void *param1) { UnkStruct_ov16_02264650_1 *v0 = (UnkStruct_ov16_02264650_1 *)param1; s16 v1, v2, v3, v4; - u32 battleType = BattleSystem_BattleType(v0->unk_00); + u32 battleType = BattleSystem_GetBattleType(v0->battleSys); if ((v0->unk_1C < 33) && (v0->unk_0E >= 2) && ((v0->unk_14 == 0) || (v0->unk_14 == 2))) { - Bg_SetOffset(BattleSystem_BGL(v0->unk_00), 3, 1, 4); + Bg_SetOffset(BattleSystem_GetBgConfig(v0->battleSys), 3, 1, 4); v0->unk_1C++; } @@ -2346,7 +2346,7 @@ static void ov16_0225FA70(SysTask *param0, void *param1) v0->unk_0E = 4; case 4: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); break; @@ -2441,7 +2441,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) }, }; - battleType = BattleSystem_BattleType(v0->unk_00); + battleType = BattleSystem_GetBattleType(v0->battleSys); switch (v0->unk_0A) { case 0: @@ -2478,10 +2478,10 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) v6.heapID = HEAP_ID_BATTLE; v6.mode = 4; v6.target = v0->unk_09; - v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->unk_00); - v6.paletteSys = BattleSystem_PaletteSys(v0->unk_00); + v6.cellActorSys = BattleSystem_GetSpriteSystem(v0->battleSys); + v6.paletteSys = BattleSystem_GetPaletteData(v0->battleSys); v6.surface = 0; - v6.battleSys = v0->unk_00; + v6.battleSys = v0->battleSys; v0->unk_04->unk_84 = ov12_02237728(&v6); @@ -2510,7 +2510,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { BattlerData *v7; - v7 = BattleSystem_BattlerData(v0->unk_00, BattleSystem_Partner(v0->unk_00, v0->unk_09)); + v7 = BattleSystem_GetBattlerData(v0->battleSys, BattleSystem_GetPartner(v0->battleSys, v0->unk_09)); ov12_02237E0C(v7->unk_84, 1); ov12_0223786C(v7->unk_84, 0); @@ -2521,7 +2521,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { SpriteManager *v8; - v8 = BattleSystem_GetSpriteManager(v0->unk_00); + v8 = BattleSystem_GetSpriteManager(v0->battleSys); Sprite_DeleteAndFreeResources(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; @@ -2558,7 +2558,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { BattlerData *v9; - v9 = BattleSystem_BattlerData(v0->unk_00, BattleSystem_Partner(v0->unk_00, v0->unk_09)); + v9 = BattleSystem_GetBattlerData(v0->battleSys, BattleSystem_GetPartner(v0->battleSys, v0->unk_09)); ov12_02237E18(v9->unk_84, v1 + v5[v0->unk_0C][v3][0], v2 + v5[v0->unk_0C][v3][1]); ov12_02237E0C(v9->unk_84, 1); @@ -2574,7 +2574,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) { SpriteManager *v10; - v10 = BattleSystem_GetSpriteManager(v0->unk_00); + v10 = BattleSystem_GetSpriteManager(v0->battleSys); Sprite_DeleteAndFreeResources(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; @@ -2630,7 +2630,7 @@ static void ov16_0225FD5C(SysTask *param0, void *param1) v0->unk_0A = 6; break; case 6: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); break; @@ -2664,7 +2664,7 @@ static void ov16_02260284(SysTask *param0, void *param1) case 1: { SpriteManager *v3; - v3 = BattleSystem_GetSpriteManager(v0->unk_00); + v3 = BattleSystem_GetSpriteManager(v0->battleSys); Sprite_DeleteAndFreeResources(v0->unk_04->unk_18); v0->unk_04->unk_18 = NULL; @@ -2673,7 +2673,7 @@ static void ov16_02260284(SysTask *param0, void *param1) SpriteManager_UnloadCellObjById(v3, 20007 + v0->unk_04->battlerType); SpriteManager_UnloadAnimObjById(v3, 20007 + v0->unk_04->battlerType); } - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); break; @@ -2708,7 +2708,7 @@ static void ov16_02260384(SysTask *param0, void *param1) ManagedSprite_SetPositionXY(v0->unk_04, v1, v2); break; case 1: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); break; @@ -2799,14 +2799,14 @@ static void ov16_022604C8(SysTask *param0, void *param1) Healthbar *v6; v0 = (UnkStruct_ov16_0225D5B8 *)param1; - v1 = BattleSystem_BGL(v0->unk_00); - v2 = ov16_0223E02C(v0->unk_00); - v3 = BattleSystem_BattlerData(v0->unk_00, v0->unk_09); - battleType = BattleSystem_BattleType(v0->unk_00); - v5 = BattleSystem_Partner(v0->unk_00, v0->unk_09); + v1 = BattleSystem_GetBgConfig(v0->battleSys); + v2 = ov16_0223E02C(v0->battleSys); + v3 = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_09); + battleType = BattleSystem_GetBattleType(v0->battleSys); + v5 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); if (v5 != v0->unk_09) { - v6 = ov16_0223F35C(v0->unk_00, v5); + v6 = BattleSystem_GetHealthbar(v0->battleSys, v5); } else { v6 = NULL; } @@ -2824,7 +2824,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) v7.maxPP[i] = v0->unk_30[i]; } - ov16_0226AC98(ov16_0223E02C(v0->unk_00), v0->unk_34, &v7); + ov16_0226AC98(ov16_0223E02C(v0->battleSys), v0->unk_34, &v7); } v0->unk_0A++; @@ -2832,32 +2832,32 @@ static void ov16_022604C8(SysTask *param0, void *param1) MessageLoader *v9; BattleMessage v10; - v9 = BattleSystem_GetMessageLoader(v0->unk_00); + v9 = BattleSystem_GetMessageLoader(v0->battleSys); if (battleType & BATTLE_TYPE_CATCH_TUTORIAL) { - switch (ov16_0223F228(v0->unk_00)) { + switch (BattleSystem_GetCatchingTutorialLowHP(v0->battleSys)) { case 0: v10.tags = 2; v10.params[0] = v0->unk_09 | (v0->unk_23 << 8); v10.id = 921; - BattleMessage_Print(v0->unk_00, v9, &v10, 0); + BattleMessage_Print(v0->battleSys, v9, &v10, 0); v0->unk_0A = 3; break; case 1: v10.tags = 0; - v10.id = 1226 + BattleSystem_GetTrainerGender(v0->unk_00, 0); - v0->unk_35 = BattleMessage_Print(v0->unk_00, v9, &v10, BattleSystem_TextSpeed(v0->unk_00)); + v10.id = 1226 + BattleSystem_GetTrainerGender(v0->battleSys, 0); + v0->unk_35 = BattleMessage_Print(v0->battleSys, v9, &v10, BattleSystem_GetTextSpeed(v0->battleSys)); v0->unk_0A = 2; break; } } else { if (battleType & BATTLE_TYPE_SAFARI) { v10.tags = 8; - v10.params[0] = Battler_TrainerID(v0->unk_00, v0->unk_09); + v10.params[0] = Battler_GetTrainerID(v0->battleSys, v0->unk_09); v10.id = 922; } else if (battleType & BATTLE_TYPE_PAL_PARK) { v10.tags = 8; - v10.params[0] = Battler_TrainerID(v0->unk_00, v0->unk_09); + v10.params[0] = Battler_GetTrainerID(v0->battleSys, v0->unk_09); v10.id = 1222; } else { v10.tags = 2; @@ -2865,7 +2865,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) v10.id = 921; } - BattleMessage_Print(v0->unk_00, v9, &v10, 0); + BattleMessage_Print(v0->battleSys, v9, &v10, 0); v0->unk_0A = 3; } } break; @@ -2876,7 +2876,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) break; case 3: ov16_0226757C(v0->unk_04); - ov16_02264798(v3, v0->unk_00); + ov16_02264798(v3, v0->battleSys); v0->unk_0A = 4; case 4: if (ov16_02269348(v2) == 0) { @@ -2897,30 +2897,30 @@ static void ov16_022604C8(SysTask *param0, void *param1) v11.unk_04 = v0->unk_36; v11.unk_06 = v0->unk_38; v11.unk_03 = v0->unk_3A; - v11.unk_08 = ov16_0223EC58(v0->unk_00, v0->unk_09, v0->unk_3B); + v11.unk_08 = ov16_0223EC58(v0->battleSys, v0->unk_09, v0->unk_3B); if (v3->unk_193) { ov16_0226BCCC(v2, 1); - if (BattleSystem_BattleStatus(v0->unk_00) & 0x1) { + if (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) { ov16_02268C04(v12, v13, v2, 6, 0, &v11); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_PAL_PARK) { + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_PAL_PARK) { ov16_02268C04(v12, v13, v2, 10, 0, &v11); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_SAFARI) { + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_SAFARI) { ov16_02268C04(v12, v13, v2, 8, 0, &v11); - } else if ((v11.unk_00 == 4) && ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_2vs2) == FALSE)) { + } else if ((v11.unk_00 == 4) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { ov16_02268C04(v12, v13, v2, 4, 0, &v11); } else { ov16_02268C04(v12, v13, v2, 3, 0, &v11); } - BattleSystem_SetCommandSelectionFlags(v0->unk_00, 1); + BattleSystem_SetCommandSelectionFlags(v0->battleSys, 1); } else { - if (BattleSystem_BattleStatus(v0->unk_00) & 0x1) { + if (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) { ov16_02268C04(v12, v13, v2, 5, 0, &v11); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_PAL_PARK) { + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_PAL_PARK) { ov16_02268C04(v12, v13, v2, 9, 0, &v11); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_SAFARI) { + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_SAFARI) { ov16_02268C04(v12, v13, v2, 7, 0, &v11); } else if (v11.unk_00 != 4) { ov16_02268C04(v12, v13, v2, 1, 0, &v11); @@ -2949,8 +2949,8 @@ static void ov16_022604C8(SysTask *param0, void *param1) BattlerData *v14; int i; - for (i = 0; i < BattleSystem_MaxBattlers(v0->unk_00); i++) { - v14 = BattleSystem_BattlerData(v0->unk_00, i); + for (i = 0; i < BattleSystem_GetMaxBattlers(v0->battleSys); i++) { + v14 = BattleSystem_GetBattlerData(v0->battleSys, i); ov16_0226737C(&v14->healthbar); } } @@ -2967,7 +2967,7 @@ static void ov16_022604C8(SysTask *param0, void *param1) if ((ov16_02269348(v2) == 1) || (v0->unk_0C == 1)) { switch (v0->unk_0C) { case 1: // Fight - if (BattleSystem_BattleType(v0->unk_00) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + if (BattleSystem_GetBattleType(v0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { v0->unk_0A = 7; } break; @@ -3037,8 +3037,8 @@ static void ov16_022604C8(SysTask *param0, void *param1) break; case 8: if (ov16_0226BCD0(v2) == 1) { - ov16_022656D4(v0->unk_00, v0->unk_09, v0->unk_0C); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_022656D4(v0->battleSys, v0->unk_09, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); } @@ -3049,10 +3049,10 @@ static void ov16_022604C8(SysTask *param0, void *param1) static void ov16_02260AB4(SysTask *param0, void *param1) { UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; - int v1 = TrainerAI_PickCommand(v0->unk_00, v0->unk_09); + int v1 = TrainerAI_PickCommand(v0->battleSys, v0->unk_09); - ov16_022656D4(v0->unk_00, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_022656D4(v0->battleSys, v0->unk_09, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -3062,7 +3062,7 @@ static void ov16_02260AE4(SysTask *param0, void *param1) { UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); } @@ -3088,18 +3088,18 @@ static void ov16_02260B04(SysTask *param0, void *param1) UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; int v1; u16 v2; - u8 v3 = ov16_0223ED6C(v0->unk_00); - v2 = BattleMon_Get(BattleSystem_Context(v0->unk_00), v0->unk_09, 0, NULL); + u8 v3 = BattleSystem_GetSafariEscapeCount(v0->battleSys); + v2 = BattleMon_Get(BattleSystem_GetBattleContext(v0->battleSys), v0->unk_09, 0, NULL); v1 = SpeciesData_GetSpeciesValue(v2, SPECIES_DATA_SAFARI_FLEE_RATE); v1 = v1 * Unk_ov16_0226F194[v3][0] / Unk_ov16_0226F194[v3][1]; - if ((BattleSystem_RandNext(v0->unk_00) % 255) <= v1) { - ov16_022656D4(v0->unk_00, v0->unk_09, 4); + if ((BattleSystem_RandNext(v0->battleSys) % 255) <= v1) { + ov16_022656D4(v0->battleSys, v0->unk_09, 4); } else { - ov16_022656D4(v0->unk_00, v0->unk_09, 5); + ov16_022656D4(v0->battleSys, v0->unk_09, 5); } - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -3109,8 +3109,8 @@ static void ov16_02260B84(SysTask *param0, void *param1) { UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; - ov16_022656D4(v0->unk_00, v0->unk_09, 4); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_022656D4(v0->battleSys, v0->unk_09, 4); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -3121,16 +3121,16 @@ static void ov16_02260BAC(SysTask *param0, void *param1) UnkStruct_ov16_0225D5B8 *v0 = (UnkStruct_ov16_0225D5B8 *)param1; u8 v1; - if (ov16_0223F530(v0->unk_00, v0->unk_09, &v1) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_09, &v1) == 1) { + ov16_0226474C(v0->battleSys); } if ((!v1) || (v1 > 4) || (v1 == 2)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } - ov16_022656D4(v0->unk_00, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_022656D4(v0->battleSys, v0->unk_09, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -3139,18 +3139,18 @@ static void ov16_02260BAC(SysTask *param0, void *param1) static void ov16_02260C00(SysTask *param0, void *param1) { UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; - BgConfig *v1 = BattleSystem_BGL(v0->unk_00); + BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); UnkStruct_ov16_02268A14 *v2; int v3; Healthbar *v4; BattlerData *v5; - v2 = ov16_0223E02C(v0->unk_00); - v5 = BattleSystem_BattlerData(v0->unk_00, v0->unk_1D); - v3 = BattleSystem_Partner(v0->unk_00, v0->unk_1D); + v2 = ov16_0223E02C(v0->battleSys); + v5 = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_1D); + v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_1D); if (v3 != v0->unk_1D) { - v4 = ov16_0223F35C(v0->unk_00, v3); + v4 = BattleSystem_GetHealthbar(v0->battleSys, v3); } else { v4 = NULL; } @@ -3165,12 +3165,12 @@ static void ov16_02260C00(SysTask *param0, void *param1) MessageLoader *v6; BattleMessage v7; - v6 = BattleSystem_GetMessageLoader(v0->unk_00); + v6 = BattleSystem_GetMessageLoader(v0->battleSys); v7.tags = 2; v7.params[0] = v0->unk_1D | (v0->unk_1F << 8); v7.id = 921; - BattleMessage_Print(v0->unk_00, v6, &v7, 0); + BattleMessage_Print(v0->battleSys, v6, &v7, 0); } ov16_02269218(v2); @@ -3206,7 +3206,7 @@ static void ov16_02260C00(SysTask *param0, void *param1) case 2: if (1) { if (v0->unk_08 != 0xff) { - if ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_DOUBLES) == FALSE) { + if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) { ov16_0226BCCC(v2, 0); ov16_0226846C(v4); ov16_022675AC(v0->unk_04); @@ -3214,7 +3214,7 @@ static void ov16_02260C00(SysTask *param0, void *param1) } } - ov16_02265790(v0->unk_00, v0->unk_1D, v0->unk_08); + ov16_02265790(v0->battleSys, v0->unk_1D, v0->unk_08); v0->unk_20++; } break; @@ -3222,8 +3222,8 @@ static void ov16_02260C00(SysTask *param0, void *param1) v0->unk_20++; default: if (ov16_0226BCD0(v2) == 1) { - ov16_0223F234(v0->unk_00, 1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_1D, v0->unk_1C); + BattleSystem_SetCatchingTutorialLowHP(v0->battleSys, 1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); Heap_Free(param1); SysTask_Done(param0); } @@ -3236,11 +3236,11 @@ static void ov16_02260DB0(SysTask *param0, void *param1) UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; BattleContext *v1; int v2; - u32 battleType = BattleSystem_BattleType(v0->unk_00); - v1 = BattleSystem_Context(v0->unk_00); + u32 battleType = BattleSystem_GetBattleType(v0->battleSys); + v1 = BattleSystem_GetBattleContext(v0->battleSys); - if ((battleType & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_ROAMER)) || (BattleSystem_BattleStatus(v0->unk_00) & 0x1) || (Battler_Side(v0->unk_00, v0->unk_1D) == 0)) { - v2 = TrainerAI_Main(v0->unk_00, v0->unk_1D); + if ((battleType & (BATTLE_TYPE_TRAINER | BATTLE_TYPE_ROAMER)) || (BattleSystem_GetBattleStatusMask(v0->battleSys) & 0x1) || (BattleSystem_GetBattlerSide(v0->battleSys, v0->unk_1D) == 0)) { + v2 = TrainerAI_Main(v0->battleSys, v0->unk_1D); switch (v2) { case 0xff: @@ -3265,14 +3265,14 @@ static void ov16_02260DB0(SysTask *param0, void *param1) } } - v2 = v5[BattleSystem_RandNext(v0->unk_00) % v6]; + v2 = v5[BattleSystem_RandNext(v0->battleSys) % v6]; } - BattleContext_Set(v0->unk_00, v1, 11, v0->unk_1D, BattleSystem_Defender(v0->unk_00, v1, v0->unk_1D, v0->unk_0C[v2 - 1], 1, NULL)); + BattleContext_Set(v0->battleSys, v1, 11, v0->unk_1D, BattleSystem_Defender(v0->battleSys, v1, v0->unk_1D, v0->unk_0C[v2 - 1], 1, NULL)); } - ov16_02265790(v0->unk_00, v0->unk_1D, v2); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_1D, v0->unk_1C); + ov16_02265790(v0->battleSys, v0->unk_1D, v2); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); Heap_Free(param1); SysTask_Done(param0); @@ -3282,7 +3282,7 @@ static void ov16_02260E78(SysTask *param0, void *param1) { UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_1D, v0->unk_1C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); Heap_Free(param1); SysTask_Done(param0); } @@ -3292,26 +3292,26 @@ static void ov16_02260E98(SysTask *param0, void *param1) UnkStruct_ov16_0225D698 *v0 = (UnkStruct_ov16_0225D698 *)param1; u8 v1; - if (ov16_0223F530(v0->unk_00, v0->unk_1D, &v1) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_1D, &v1) == 1) { + ov16_0226474C(v0->battleSys); } if ((!v1) || (v1 > 4)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } else { { u16 v2; - v2 = BattleMon_Get(BattleSystem_Context(v0->unk_00), v0->unk_1D, 6 + (v1 - 1), NULL); + v2 = BattleMon_Get(BattleSystem_GetBattleContext(v0->battleSys), v0->unk_1D, 6 + (v1 - 1), NULL); if ((!v2) || (v2 > 467)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } } } - ov16_02265790(v0->unk_00, v0->unk_1D, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_1D, v0->unk_1C); + ov16_02265790(v0->battleSys, v0->unk_1D, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_1D, v0->unk_1C); Heap_Free(param1); SysTask_Done(param0); @@ -3320,16 +3320,16 @@ static void ov16_02260E98(SysTask *param0, void *param1) static void ov16_02260F14(SysTask *param0, void *param1) { UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; - BgConfig *v1 = BattleSystem_BGL(v0->unk_00); + BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); UnkStruct_ov16_02268A14 *v2; int v3; Healthbar *v4; - BattlerData *v5 = BattleSystem_BattlerData(v0->unk_00, v0->unk_0D); - v2 = ov16_0223E02C(v0->unk_00); - v3 = BattleSystem_Partner(v0->unk_00, v0->unk_0D); + BattlerData *v5 = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D); + v2 = ov16_0223E02C(v0->battleSys); + v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_0D); if (v3 != v0->unk_0D) { - v4 = ov16_0223F35C(v0->unk_00, v3); + v4 = BattleSystem_GetHealthbar(v0->battleSys, v3); } else { v4 = NULL; } @@ -3393,10 +3393,10 @@ static void ov16_02260F14(SysTask *param0, void *param1) int v12; v12 = v0->unk_08; - battleType = BattleSystem_BattleType(v0->unk_00); + battleType = BattleSystem_GetBattleType(v0->battleSys); if (v12 != 0xff) { - ov16_0223F858(v0->unk_00, &v10[0]); + ov16_0223F858(v0->battleSys, &v10[0]); if (battleType & BATTLE_TYPE_DOUBLES) { v12 = v10[2 + (v0->unk_08 - 1)] + 1; @@ -3405,8 +3405,8 @@ static void ov16_02260F14(SysTask *param0, void *param1) } } - ov16_022658CC(v0->unk_00, v0->unk_0D, v12); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_022658CC(v0->battleSys, v0->unk_0D, v12); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); } @@ -3421,13 +3421,13 @@ static void ov16_022610A8(SysTask *param0, void *param1) BattleContext *v1; int v2; - v1 = BattleSystem_Context(v0->unk_00); - v2 = BattleContext_Get(v0->unk_00, v1, 11, v0->unk_0D) + 1; + v1 = BattleSystem_GetBattleContext(v0->battleSys); + v2 = BattleContext_Get(v0->battleSys, v1, 11, v0->unk_0D) + 1; GF_ASSERT(v2 < 5); - ov16_022658CC(v0->unk_00, v0->unk_0D, v2); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_022658CC(v0->battleSys, v0->unk_0D, v2); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -3437,7 +3437,7 @@ static void ov16_022610EC(SysTask *param0, void *param1) { UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -3448,12 +3448,12 @@ static void ov16_0226110C(SysTask *param0, void *param1) UnkStruct_ov16_0225D708 *v0 = (UnkStruct_ov16_0225D708 *)param1; u8 v1; - if (ov16_0223F530(v0->unk_00, v0->unk_0D, &v1) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v1) == 1) { + ov16_0226474C(v0->battleSys); } if ((!v1) || (v1 > 4)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } else { { int v2 = v1 - 1; @@ -3462,13 +3462,13 @@ static void ov16_0226110C(SysTask *param0, void *param1) case 0x0: if (v0->unk_0D == v2) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } break; case 0x200: - if (Battler_Side(v0->unk_00, v0->unk_0D) != Battler_Side(v0->unk_00, v2)) { - ov16_02264730(v0->unk_00); + if (BattleSystem_GetBattlerSide(v0->battleSys, v0->unk_0D) != BattleSystem_GetBattlerSide(v0->battleSys, v2)) { + ov16_02264730(v0->battleSys); } break; case 0x1: @@ -3486,8 +3486,8 @@ static void ov16_0226110C(SysTask *param0, void *param1) } } - ov16_022658CC(v0->unk_00, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_022658CC(v0->battleSys, v0->unk_0D, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -3496,12 +3496,12 @@ static void ov16_0226110C(SysTask *param0, void *param1) static void ov16_022611DC(SysTask *param0, void *param1) { UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; - PaletteData *v1 = BattleSystem_PaletteSys(v0->unk_00); + PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); switch (v0->unk_0E) { case 0: - v0->unk_10 = ov16_0226CD08(ov16_0223E02C(v0->unk_00)); - sub_02015738(ov16_0223E220(v0->unk_00), 1); + v0->unk_10 = ov16_0226CD08(ov16_0223E02C(v0->battleSys)); + sub_02015738(ov16_0223E220(v0->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 0, 7, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 0, 16, 0x0); v0->unk_0E++; @@ -3509,16 +3509,16 @@ static void ov16_022611DC(SysTask *param0, void *param1) case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { { - ov16_0223B384(v0->unk_00); + ov16_0223B384(v0->battleSys); v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleBagContext)); memset(v0->unk_04, 0, sizeof(BattleBagContext)); - v0->unk_04->battleSystem = v0->unk_00; - v0->unk_04->trainerInfo = BattleSystem_TrainerInfo(v0->unk_00, v0->unk_0D); + v0->unk_04->battleSys = v0->battleSys; + v0->unk_04->trainerInfo = BattleSystem_GetTrainerInfo(v0->battleSys, v0->unk_0D); v0->unk_04->heapID = HEAP_ID_BATTLE; v0->unk_04->battleBagExited = FALSE; - v0->unk_04->bag = BattleSystem_Bag(v0->unk_00); + v0->unk_04->bag = BattleSystem_GetBag(v0->battleSys); v0->unk_04->battler = v0->unk_0D; v0->unk_04->isCursorEnabled = v0->unk_10; v0->unk_04->hasTwoOpponents = v0->unk_14; @@ -3559,10 +3559,10 @@ static void ov16_022611DC(SysTask *param0, void *param1) int i; int v3 = 0; int v4; - Party *v5 = BattleSystem_Party(v0->unk_00, v0->unk_0D); + Party *v5 = BattleSystem_GetParty(v0->battleSys, v0->unk_0D); Pokemon *v6; - if ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_2vs2) == 0)) { + if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == 0)) { v4 = v0->unk_0D & 1; } else { v4 = v0->unk_0D; @@ -3571,12 +3571,12 @@ static void ov16_022611DC(SysTask *param0, void *param1) Party_InitWithCapacity(v0->unk_08->unk_04->party, 6); for (i = 0; i < Party_GetCurrentCount(v5); i++) { - v6 = BattleSystem_PartyPokemon(v0->unk_00, v4, v0->unk_18[v4][i]); + v6 = BattleSystem_GetPartyPokemon(v0->battleSys, v4, v0->unk_18[v4][i]); Party_AddPokemon(v0->unk_08->unk_04->party, v6); v0->unk_08->unk_04->pokemonPartySlots[i] = v0->unk_18[v4][i]; } - v0->unk_08->unk_04->battleSystem = v0->unk_00; + v0->unk_08->unk_04->battleSys = v0->battleSys; v0->unk_08->unk_04->heapID = HEAP_ID_BATTLE; v0->unk_08->unk_04->selectedPartyIndex = 0; v0->unk_08->unk_04->battlePartyExited = 0; @@ -3587,14 +3587,14 @@ static void ov16_022611DC(SysTask *param0, void *param1) v0->unk_08->unk_04->battler = v0->unk_04->battler; v0->unk_08->unk_04->isCursorEnabled = v0->unk_10; v0->unk_08->unk_04->playerPokemonPartySlot = v0->unk_08->unk_0C[v0->unk_0D]; - v0->unk_08->unk_04->partnerPokemonPartySlot = v0->unk_08->unk_0C[BattleSystem_Partner(v0->unk_00, v0->unk_0D)]; + v0->unk_08->unk_04->partnerPokemonPartySlot = v0->unk_08->unk_0C[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; if (v0->unk_0F == 4) { - v0->unk_08->unk_04->embargoRemainingTurns[0] = v0->unk_30[BattleSystem_Partner(v0->unk_00, v0->unk_0D)]; + v0->unk_08->unk_04->embargoRemainingTurns[0] = v0->unk_30[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; v0->unk_08->unk_04->embargoRemainingTurns[1] = v0->unk_30[v0->unk_0D]; } else { v0->unk_08->unk_04->embargoRemainingTurns[0] = v0->unk_30[v0->unk_0D]; - v0->unk_08->unk_04->embargoRemainingTurns[1] = v0->unk_30[BattleSystem_Partner(v0->unk_00, v0->unk_0D)]; + v0->unk_08->unk_04->embargoRemainingTurns[1] = v0->unk_30[BattleSystem_GetPartner(v0->battleSys, v0->unk_0D)]; } BattlePartyTask_Start(v0->unk_08->unk_04); @@ -3613,15 +3613,15 @@ static void ov16_022611DC(SysTask *param0, void *param1) } break; case 6: - ov16_0223B430(v0->unk_00); - ov16_0226CD10(ov16_0223E02C(v0->unk_00), v0->unk_10); + ov16_0223B430(v0->battleSys); + ov16_0226CD10(ov16_0223E02C(v0->battleSys), v0->unk_10); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 7, 0, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); v0->unk_0E++; break; case 7: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - sub_02015738(ov16_0223E220(v0->unk_00), 0); + sub_02015738(ov16_0223E220(v0->battleSys), 0); if (v0->unk_04->selectedBattleBagItem) { v0->unk_0E = 9; @@ -3630,16 +3630,16 @@ static void ov16_022611DC(SysTask *param0, void *param1) case BATTLE_POCKET_INDEX_RECOVER_STATUS: if ((v0->unk_04->selectedBattleBagItem == ITEM_REVIVE) || (v0->unk_04->selectedBattleBagItem == ITEM_MAX_REVIVE)) { v0->unk_0E = 8; - } else if (((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) { + } else if (((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) { if (v0->unk_04->selectedBattleBagItem == ITEM_FULL_RESTORE) { - if (BattleSystem_AnimationsOn(v0->unk_00) == 1) { + if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { v0->unk_12 = 17; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); v0->unk_12 = 21; } } else { - if (BattleSystem_AnimationsOn(v0->unk_00) == 1) { + if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { v0->unk_12 = 25; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); @@ -3651,8 +3651,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) } break; case BATTLE_POCKET_INDEX_RECOVER_HP_PP: - if ((((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) && (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE))) { - if (BattleSystem_AnimationsOn(v0->unk_00) == 1) { + if ((((v0->unk_08->unk_04->selectedPartyIndex < 2) && ((BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TRAINER_DOUBLES) || (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_TAG_DOUBLES))) || (v0->unk_08->unk_04->selectedPartyIndex < 1)) && (Item_LoadParam(v0->unk_04->selectedBattleBagItem, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE))) { + if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { v0->unk_12 = 17; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); @@ -3667,14 +3667,14 @@ static void ov16_022611DC(SysTask *param0, void *param1) v0->unk_0E = 8; } else { if (v0->unk_04->selectedBattleBagItem == ITEM_GUARD_SPEC) { - if (BattleSystem_AnimationsOn(v0->unk_00) == 1) { + if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { v0->unk_12 = 13; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); v0->unk_12 = 15; } } else { - if (BattleSystem_AnimationsOn(v0->unk_00) == 1) { + if (BattleSystem_AreAnimationsOn(v0->battleSys) == 1) { v0->unk_12 = 11; } else { Sound_PlayPannedEffect(SEQ_SE_DP_KAIFUKU, -117); @@ -3692,7 +3692,7 @@ static void ov16_022611DC(SysTask *param0, void *param1) } if (v0->unk_0E != 8) { - BattleSystem_LoadFightOverlay(v0->unk_00, 0); + BattleSystem_LoadFightOverlay(v0->battleSys, 0); } } break; @@ -3710,8 +3710,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) } } - ov16_02265A70(v0->unk_00, v0->unk_0D, v7); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_02265A70(v0->battleSys, v0->unk_0D, v7); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(v0->unk_08->unk_04->party); Heap_Free(v0->unk_08->unk_04); @@ -3728,9 +3728,9 @@ static void ov16_022611DC(SysTask *param0, void *param1) v9.tags = 5; v9.params[0] = v0->unk_04->selectedBattleBagItem; - v8 = BattleSystem_GetMessageLoader(v0->unk_00); + v8 = BattleSystem_GetMessageLoader(v0->battleSys); - v0->unk_11 = BattleMessage_Print(v0->unk_00, v8, &v9, BattleSystem_TextSpeed(v0->unk_00)); + v0->unk_11 = BattleMessage_Print(v0->battleSys, v8, &v9, BattleSystem_GetTextSpeed(v0->battleSys)); v0->unk_17 = 30; v0->unk_0E++; } break; @@ -3744,8 +3744,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) case 11: { MoveAnimation v10; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v10, 1, 9, v0->unk_0D, v0->unk_0D, NULL); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v0->unk_0D), ov16_0223E008(v0->unk_00), &v10); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v10, 1, 9, v0->unk_0D, v0->unk_0D, NULL); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v10); } v0->unk_0E++; break; @@ -3755,8 +3755,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) int v12; v12 = v0->unk_08->unk_04->selectedPartyIndex * 2; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v11, 1, 9, v12, v12, NULL); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v12), ov16_0223E008(v0->unk_00), &v11); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v11, 1, 9, v12, v12, NULL); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v12), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v11); } v0->unk_0E++; break; @@ -3764,14 +3764,14 @@ static void ov16_022611DC(SysTask *param0, void *param1) MoveAnimation v13; if (v0->unk_04->selectedBattleBagItem == ITEM_GUARD_SPEC) { - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 54); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v0->unk_0D), ov16_0223E008(v0->unk_00), &v13); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 54); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); } else if (v0->unk_04->selectedBattleBagItem == ITEM_DIRE_HIT) { - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 116); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v0->unk_0D), ov16_0223E008(v0->unk_00), &v13); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 0, NULL, v0->unk_0D, v0->unk_0D, 116); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); } else { - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v13, 1, 12, v0->unk_0D, v0->unk_0D, NULL); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v0->unk_0D), ov16_0223E008(v0->unk_00), &v13); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v13, 1, 12, v0->unk_0D, v0->unk_0D, NULL); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v13); } v0->unk_0E++; @@ -3813,8 +3813,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) break; } - v14 = BattleSystem_GetMessageLoader(v0->unk_00); - v0->unk_11 = BattleMessage_Print(v0->unk_00, v14, &v15, BattleSystem_TextSpeed(v0->unk_00)); + v14 = BattleSystem_GetMessageLoader(v0->battleSys); + v0->unk_11 = BattleMessage_Print(v0->battleSys, v14, &v15, BattleSystem_GetTextSpeed(v0->battleSys)); v0->unk_17 = 30; } v0->unk_0E++; @@ -3825,8 +3825,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) int v17; v17 = v0->unk_08->unk_04->selectedPartyIndex * 2; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v16, 1, 14, v17, v17, NULL); - ov16_02264408(v0->unk_00, BattleSystem_BattlerData(v0->unk_00, v17), ov16_0223E008(v0->unk_00), &v16); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v16, 1, 14, v17, v17, NULL); + ov16_02264408(v0->battleSys, BattleSystem_GetBattlerData(v0->battleSys, v17), BattleSystem_GetBattleAnimSystem(v0->battleSys), &v16); } v0->unk_0E++; break; @@ -3839,11 +3839,11 @@ static void ov16_022611DC(SysTask *param0, void *param1) v20 = v0->unk_08->unk_04->selectedPartyIndex * 2; v21 = v0->unk_08->unk_04->pokemonPartySlots[v0->unk_08->unk_04->selectedPartyIndex]; - v18 = ov16_0223F35C(v0->unk_00, v20); + v18 = BattleSystem_GetHealthbar(v0->battleSys, v20); MI_CpuClear8(&v18->state, sizeof(u8)); - v18->type = Healthbar_Type(BattleSystem_BattlerSlot(v0->unk_00, v20), BattleSystem_BattleType(v0->unk_00)); + v18->type = Healthbar_Type(BattleSystem_GetBattlerType(v0->battleSys, v20), BattleSystem_GetBattleType(v0->battleSys)); - v19 = BattleSystem_PartyPokemon(v0->unk_00, v20, v21); + v19 = BattleSystem_GetPartyPokemon(v0->battleSys, v20, v21); v18->curHP = Pokemon_GetValue(v19, MON_DATA_HP, NULL) - v0->unk_08->unk_04->currentDamage; v18->maxHP = Pokemon_GetValue(v19, MON_DATA_MAX_HP, NULL); v18->damage = v0->unk_08->unk_04->currentDamage; @@ -3861,7 +3861,7 @@ static void ov16_022611DC(SysTask *param0, void *param1) int v23; v23 = v0->unk_08->unk_04->selectedPartyIndex * 2; - v22 = ov16_0223F35C(v0->unk_00, v23); + v22 = BattleSystem_GetHealthbar(v0->battleSys, v23); if (ov16_022674F8(v22) == -1) { Healthbar_DrawInfo(v22, NULL, HEALTHBAR_INFO_STATUS); @@ -3873,7 +3873,7 @@ static void ov16_022611DC(SysTask *param0, void *param1) BattleMessage v25; int v26; - v24 = BattleSystem_GetMessageLoader(v0->unk_00); + v24 = BattleSystem_GetMessageLoader(v0->battleSys); v26 = v0->unk_08->unk_04->selectedPartyIndex * 2; if (v0->unk_08->unk_04->currentDamage) { @@ -3887,7 +3887,7 @@ static void ov16_022611DC(SysTask *param0, void *param1) v25.params[0] = v26 | (v0->unk_08->unk_0C[v26] << 8); } - v0->unk_11 = BattleMessage_Print(v0->unk_00, v24, &v25, BattleSystem_TextSpeed(v0->unk_00)); + v0->unk_11 = BattleMessage_Print(v0->battleSys, v24, &v25, BattleSystem_GetTextSpeed(v0->battleSys)); v0->unk_17 = 30; v0->unk_0E++; @@ -3903,9 +3903,9 @@ static void ov16_022611DC(SysTask *param0, void *param1) int v34; v28 = v0->unk_08->unk_04->selectedPartyIndex * 2; - v27 = ov16_0223F35C(v0->unk_00, v28); + v27 = BattleSystem_GetHealthbar(v0->battleSys, v28); v34 = v0->unk_08->unk_04->pokemonPartySlots[v0->unk_08->unk_04->selectedPartyIndex]; - v33 = BattleSystem_PartyPokemon(v0->unk_00, v28, v34); + v33 = BattleSystem_GetPartyPokemon(v0->battleSys, v28, v34); if (Pokemon_GetValue(v33, MON_DATA_STATUS, NULL) == 0) { v27->status = 0; @@ -3979,8 +3979,8 @@ static void ov16_022611DC(SysTask *param0, void *param1) } } - v29 = BattleSystem_GetMessageLoader(v0->unk_00); - v0->unk_11 = BattleMessage_Print(v0->unk_00, v29, &v30, BattleSystem_TextSpeed(v0->unk_00)); + v29 = BattleSystem_GetMessageLoader(v0->battleSys); + v0->unk_11 = BattleMessage_Print(v0->battleSys, v29, &v30, BattleSystem_GetTextSpeed(v0->battleSys)); v0->unk_17 = 30; } v0->unk_0E++; @@ -3992,10 +3992,10 @@ static void ov16_022611DC(SysTask *param0, void *param1) case 20: case 26: case 28: - BattleAnimSystem_ExecuteScript(ov16_0223E008(v0->unk_00)); + BattleAnimSystem_ExecuteScript(BattleSystem_GetBattleAnimSystem(v0->battleSys)); - if (BattleAnimSystem_IsMoveActive(ov16_0223E008(v0->unk_00)) == 0) { - BattleAnimSystem_FreeScriptData(ov16_0223E008(v0->unk_00)); + if (BattleAnimSystem_IsMoveActive(BattleSystem_GetBattleAnimSystem(v0->battleSys)) == 0) { + BattleAnimSystem_FreeScriptData(BattleSystem_GetBattleAnimSystem(v0->battleSys)); v0->unk_0E++; } break; @@ -4004,7 +4004,7 @@ static void ov16_022611DC(SysTask *param0, void *param1) case 30: if (Text_IsPrinterActive(v0->unk_11) == 0) { if (--v0->unk_17 == 0) { - BattleSystem_LoadFightOverlay(v0->unk_00, 1); + BattleSystem_LoadFightOverlay(v0->battleSys, 1); v0->unk_0E = 8; } } @@ -4019,8 +4019,8 @@ static void ov16_02261D50(SysTask *param0, void *param1) v1.item = 1; - ov16_02265A70(v0->unk_00, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_02265A70(v0->battleSys, v0->unk_0D, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(v0->unk_08->unk_04->party); Heap_Free(v0->unk_08->unk_04); @@ -4033,7 +4033,7 @@ static void ov16_02261DA8(SysTask *param0, void *param1) { UnkStruct_ov16_0225D794 *v0 = (UnkStruct_ov16_0225D794 *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(v0->unk_08->unk_04->party); Heap_Free(v0->unk_08->unk_04); @@ -4048,27 +4048,27 @@ static void ov16_02261DE0(SysTask *param0, void *param1) BattleItemUse v1; u8 v2; - if (ov16_0223F530(v0->unk_00, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { + ov16_0226474C(v0->battleSys); } v1.item = v2; - if (ov16_0223F530(v0->unk_00, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { + ov16_0226474C(v0->battleSys); } v1.item |= (v2 << 8); - if (ov16_0223F530(v0->unk_00, v0->unk_0D, &v2) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v2) == 1) { + ov16_0226474C(v0->battleSys); } v1.category = v2 & 0xf; v1.target = (v2 & 0xf0) >> 8; - ov16_02265A70(v0->unk_00, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_02265A70(v0->battleSys, v0->unk_0D, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(v0->unk_08->unk_04->party); Heap_Free(v0->unk_08->unk_04); @@ -4080,20 +4080,20 @@ static void ov16_02261DE0(SysTask *param0, void *param1) static void ov16_02261E8C(SysTask *param0, void *param1) { UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; - PaletteData *v1 = BattleSystem_PaletteSys(v0->unk_00); + PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); switch (v0->unk_0A) { case 0: { - Window *v2 = BattleSystem_Window(v0->unk_00, 0); + Window *v2 = BattleSystem_GetWindow(v0->battleSys, 0); Window_FillTilemap(v2, 0xff); Window_LoadTiles(v2); } - v0->unk_17 = ov16_0226CD08(ov16_0223E02C(v0->unk_00)); - sub_02015738(ov16_0223E220(v0->unk_00), 1); + v0->unk_17 = ov16_0226CD08(ov16_0223E02C(v0->battleSys)); + sub_02015738(ov16_0223E220(v0->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 0, 7, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 0, 16, 0x0); v0->unk_0A++; @@ -4108,17 +4108,17 @@ static void ov16_02261E8C(SysTask *param0, void *param1) Party *v8; Pokemon *v9, *v10; - ov16_0223B384(v0->unk_00); + ov16_0223B384(v0->battleSys); v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); v0->unk_04->party = Party_New(HEAP_ID_BATTLE); - if (((BattleSystem_BattleType(v0->unk_00) & (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) == (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) || (BattleSystem_BattleType(v0->unk_00) == ((BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) | BATTLE_TYPE_FRONTIER))) { - if (BattleSystem_BattlerSlot(v0->unk_00, v0->unk_09) == 2) { + if (((BattleSystem_GetBattleType(v0->battleSys) & (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) == (BATTLE_TYPE_LINK | BATTLE_TYPE_2vs2)) || (BattleSystem_GetBattleType(v0->battleSys) == ((BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) | BATTLE_TYPE_FRONTIER))) { + if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 2) { v6 = v0->unk_09; - v7 = BattleSystem_Partner(v0->unk_00, v0->unk_09); + v7 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); } else { - v6 = BattleSystem_Partner(v0->unk_00, v0->unk_09); + v6 = BattleSystem_GetPartner(v0->battleSys, v0->unk_09); v7 = v0->unk_09; } @@ -4130,48 +4130,48 @@ static void ov16_02261E8C(SysTask *param0, void *param1) Heap_Free(v9); - for (i = 0; i < BattleSystem_PartyCount(v0->unk_00, v6); i++) { - v9 = BattleSystem_PartyPokemon(v0->unk_00, v6, v0->unk_1C[v6][i]); + for (i = 0; i < BattleSystem_GetPartyCount(v0->battleSys, v6); i++) { + v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v6, v0->unk_1C[v6][i]); v10 = Party_GetPokemonBySlotIndex(v0->unk_04->party, i * 2); Pokemon_Copy(v9, v10); v0->unk_04->pokemonPartySlots[i * 2] = v0->unk_1C[v6][i]; } - for (i = 0; i < BattleSystem_PartyCount(v0->unk_00, v7); i++) { - v9 = BattleSystem_PartyPokemon(v0->unk_00, v7, v0->unk_1C[v7][i]); + for (i = 0; i < BattleSystem_GetPartyCount(v0->battleSys, v7); i++) { + v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v7, v0->unk_1C[v7][i]); v10 = Party_GetPokemonBySlotIndex(v0->unk_04->party, i * 2 + 1); Pokemon_Copy(v9, v10); v0->unk_04->pokemonPartySlots[i * 2 + 1] = v0->unk_1C[v7][i]; } - if (BattleSystem_BattlerSlot(v0->unk_00, v0->unk_09) == 4) { + if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 4) { v0->unk_04->selectedPartyIndex = 1; } else { v0->unk_04->selectedPartyIndex = 0; } } else { - if ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_2vs2) == FALSE)) { + if ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) && ((BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) == FALSE)) { v5 = v0->unk_09 & 1; } else { v5 = v0->unk_09; } - if (BattleSystem_BattlerSlot(v0->unk_00, v0->unk_09) == 4) { + if (BattleSystem_GetBattlerType(v0->battleSys, v0->unk_09) == 4) { v0->unk_04->selectedPartyIndex = 1; } else { v0->unk_04->selectedPartyIndex = 0; } - v8 = BattleSystem_Party(v0->unk_00, v0->unk_09); + v8 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); for (i = 0; i < Party_GetCurrentCount(v8); i++) { - v9 = BattleSystem_PartyPokemon(v0->unk_00, v5, v0->unk_1C[v5][i]); + v9 = BattleSystem_GetPartyPokemon(v0->battleSys, v5, v0->unk_1C[v5][i]); Party_AddPokemon(v0->unk_04->party, v9); v0->unk_04->pokemonPartySlots[i] = v0->unk_1C[v5][i]; } } - v0->unk_04->battleSystem = v0->unk_00; + v0->unk_04->battleSys = v0->battleSys; v0->unk_04->heapID = HEAP_ID_BATTLE; v0->unk_04->battlePartyExited = 0; v0->unk_04->moveToLearn = v0->unk_10; @@ -4187,10 +4187,10 @@ static void ov16_02261E8C(SysTask *param0, void *param1) v0->unk_04->playerPokemonPartySlot = 6; } - if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_2vs2) { + if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_2vs2) { v0->unk_04->partnerPokemonPartySlot = 6; - } else if ((v0->unk_18 & FlagIndex(BattleSystem_Partner(v0->unk_00, v0->unk_09))) == 0) { - v0->unk_04->partnerPokemonPartySlot = v0->unk_0C[BattleSystem_Partner(v0->unk_00, v0->unk_09)]; + } else if ((v0->unk_18 & FlagIndex(BattleSystem_GetPartner(v0->battleSys, v0->unk_09))) == 0) { + v0->unk_04->partnerPokemonPartySlot = v0->unk_0C[BattleSystem_GetPartner(v0->battleSys, v0->unk_09)]; } else { v0->unk_04->partnerPokemonPartySlot = 6; } @@ -4202,8 +4202,8 @@ static void ov16_02261E8C(SysTask *param0, void *param1) break; case 2: if (v0->unk_04->battlePartyExited) { - ov16_0223B430(v0->unk_00); - ov16_0226CD10(ov16_0223E02C(v0->unk_00), v0->unk_04->isCursorEnabled); + ov16_0223B430(v0->battleSys); + ov16_0226CD10(ov16_0223E02C(v0->battleSys), v0->unk_04->isCursorEnabled); PaletteData_StartFade(v1, 0x1 | 0x4, 0xc00, -8, 7, 0, 0x0); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); v0->unk_0A++; @@ -4211,15 +4211,15 @@ static void ov16_02261E8C(SysTask *param0, void *param1) break; case 3: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - sub_02015738(ov16_0223E220(v0->unk_00), 0); + sub_02015738(ov16_0223E220(v0->battleSys), 0); if (v0->unk_04->selectedPartyIndex == 6) { - ov16_02265B10(v0->unk_00, v0->unk_09, 0xff); + ov16_02265B10(v0->battleSys, v0->unk_09, 0xff); } else { - ov16_02265B10(v0->unk_00, v0->unk_09, 1 + v0->unk_04->pokemonPartySlots[v0->unk_04->selectedPartyIndex]); + ov16_02265B10(v0->battleSys, v0->unk_09, 1 + v0->unk_04->pokemonPartySlots[v0->unk_04->selectedPartyIndex]); } - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(v0->unk_04->party); Heap_Free(v0->unk_04); Heap_Free(param1); @@ -4236,25 +4236,25 @@ static void ov16_02262258(SysTask *param0, void *param1) Party *v2; Pokemon *v3; int v4, v5; - u32 battleType = BattleSystem_BattleType(v0->unk_00); + u32 battleType = BattleSystem_GetBattleType(v0->battleSys); v4 = v0->unk_09; if ((battleType & BATTLE_TYPE_TAG) || (battleType & BATTLE_TYPE_2vs2)) { v5 = v4; } else { - v5 = BattleSystem_Partner(v0->unk_00, v4); + v5 = BattleSystem_GetPartner(v0->battleSys, v4); } - v1 = BattleAI_SwitchedSlot(v0->unk_00, v4); + v1 = BattleAI_SwitchedSlot(v0->battleSys, v4); if (v1 == 6) { - v1 = BattleAI_PostKOSwitchIn(v0->unk_00, v4); + v1 = BattleAI_PostKOSwitchIn(v0->battleSys, v4); if (v1 == 6) { - v2 = BattleSystem_Party(v0->unk_00, v0->unk_09); + v2 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); for (v1 = 0; v1 < Party_GetCurrentCount(v2); v1++) { - v3 = BattleSystem_PartyPokemon(v0->unk_00, v0->unk_09, v1); + v3 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_09, v1); if ((Pokemon_GetValue(v3, MON_DATA_HP, NULL)) && (v0->unk_0C[v4] != v1) && (v0->unk_0C[v5] != v1)) { break; @@ -4263,8 +4263,8 @@ static void ov16_02262258(SysTask *param0, void *param1) } } - ov16_02265B10(v0->unk_00, v0->unk_09, 1 + v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_02265B10(v0->battleSys, v0->unk_09, 1 + v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -4274,7 +4274,7 @@ static void ov16_0226230C(SysTask *param0, void *param1) { UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -4285,40 +4285,40 @@ static void ov16_0226232C(SysTask *param0, void *param1) UnkStruct_ov16_0225D840 *v0 = (UnkStruct_ov16_0225D840 *)param1; u8 v1; - if (ov16_0223F530(v0->unk_00, v0->unk_09, &v1) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_09, &v1) == 1) { + ov16_0226474C(v0->battleSys); } if ((!v1) || (v1 > 6)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } else { { Party *v2; Pokemon *v3; int v4 = v1 - 1; - v2 = BattleSystem_Party(v0->unk_00, v0->unk_09); + v2 = BattleSystem_GetParty(v0->battleSys, v0->unk_09); if ((v4 == v0->unk_0C[v0->unk_09]) || (v4 == v0->unk_16)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } else if (v1 > Party_GetCurrentCount(v2)) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } else { - v3 = BattleSystem_PartyPokemon(v0->unk_00, v0->unk_09, v1 - 1); + v3 = BattleSystem_GetPartyPokemon(v0->battleSys, v0->unk_09, v1 - 1); if (Pokemon_GetValue(v3, MON_DATA_HP, NULL) == 0) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } if (Pokemon_GetValue(v3, MON_DATA_SPECIES_OR_EGG, NULL) == SPECIES_EGG) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } } } } - ov16_02265B10(v0->unk_00, v0->unk_09, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + ov16_02265B10(v0->battleSys, v0->unk_09, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); @@ -4327,15 +4327,15 @@ static void ov16_0226232C(SysTask *param0, void *param1) static void ov16_022623F0(SysTask *param0, void *param1) { UnkStruct_ov16_0225D8AC *v0 = param1; - BgConfig *v1 = BattleSystem_BGL(v0->unk_00); - UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(v0->unk_00); + BgConfig *v1 = BattleSystem_GetBgConfig(v0->battleSys); + UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(v0->battleSys); int v3; Healthbar *v4; - BattlerData *v5 = BattleSystem_BattlerData(v0->unk_00, v0->unk_0D); - v3 = BattleSystem_Partner(v0->unk_00, v0->unk_0D); + BattlerData *v5 = BattleSystem_GetBattlerData(v0->battleSys, v0->unk_0D); + v3 = BattleSystem_GetPartner(v0->battleSys, v0->unk_0D); if (v3 != v0->unk_0D) { - v4 = ov16_0223F35C(v0->unk_00, v3); + v4 = BattleSystem_GetHealthbar(v0->battleSys, v3); } else { v4 = NULL; } @@ -4352,7 +4352,7 @@ static void ov16_022623F0(SysTask *param0, void *param1) MessageLoader *v7; BattleMessage v8; - v7 = BattleSystem_GetMessageLoader(v0->unk_00); + v7 = BattleSystem_GetMessageLoader(v0->battleSys); if (v0->unk_0F == 5) { v8.tags = 2 | 0x80; @@ -4362,7 +4362,7 @@ static void ov16_022623F0(SysTask *param0, void *param1) } v8.id = v0->unk_10; - v0->unk_1A = BattleMessage_Print(v0->unk_00, v7, &v8, BattleSystem_TextSpeed(v0->unk_00)); + v0->unk_1A = BattleMessage_Print(v0->battleSys, v7, &v8, BattleSystem_GetTextSpeed(v0->battleSys)); } } @@ -4441,8 +4441,8 @@ static void ov16_022623F0(SysTask *param0, void *param1) break; case 4: if (ov16_0226BCD0(v2) == 1) { - ov16_022656D4(v0->unk_00, v0->unk_0D, v0->unk_08); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_022656D4(v0->battleSys, v0->unk_0D, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); } @@ -4454,7 +4454,7 @@ static void ov16_0226262C(SysTask *param0, void *param1) { UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -4464,7 +4464,7 @@ static void ov16_0226264C(SysTask *param0, void *param1) { UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -4475,16 +4475,16 @@ static void ov16_0226266C(SysTask *param0, void *param1) UnkStruct_ov16_0225D8AC *v0 = (UnkStruct_ov16_0225D8AC *)param1; u8 v1; - if (ov16_0223F530(v0->unk_00, v0->unk_0D, &v1) == 1) { - ov16_0226474C(v0->unk_00); + if (ov16_0223F530(v0->battleSys, v0->unk_0D, &v1) == 1) { + ov16_0226474C(v0->battleSys); } if ((!v1) || ((v1 != 0xff) && (v1 != 1))) { - ov16_02264730(v0->unk_00); + ov16_02264730(v0->battleSys); } - ov16_022656D4(v0->unk_00, v0->unk_0D, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + ov16_022656D4(v0->battleSys, v0->unk_0D, v1); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -4500,8 +4500,8 @@ static void ov16_022626C0(SysTask *param0, void *param1) { MoveAnimation v1; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v1, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_0C, &v1); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v1, 1, 15, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_0C, &v1); } v0->unk_6A = 1; } else { @@ -4512,46 +4512,46 @@ static void ov16_022626C0(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v2; MoveAnimation v3; - ov16_02264530(v0->unk_00, &v0->unk_10, &v2, v0->unk_69); + ov16_02264530(v0->battleSys, &v0->unk_10, &v2, v0->unk_69); ov12_022382BC(&v2, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v3, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_0C, &v3); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v3, 1, 16, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_0C, &v3); v0->unk_04->unk_19C = 0; } v0->unk_6A++; break; case 4: - BattleSystem_SetRedHPSoundFlag(v0->unk_00, 2); + BattleSystem_SetRedHPSoundFlag(v0->battleSys, 2); if (v0->unk_6B) { - ov16_0223F3EC(v0->unk_00); + ov16_0223F3EC(v0->battleSys); } if (v0->unk_6C) { - PokemonSpriteManager_HideShadows(BattleSystem_GetPokemonSpriteManager(v0->unk_00)); + PokemonSpriteManager_HideShadows(BattleSystem_GetPokemonSpriteManager(v0->battleSys)); } - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_0C, &v0->unk_10); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_0C, &v0->unk_10); v0->unk_6A++; break; case 6: - BattleSystem_SetRedHPSoundFlag(v0->unk_00, 0); + BattleSystem_SetRedHPSoundFlag(v0->battleSys, 0); if (v0->unk_6B) { - ov16_0223F3BC(v0->unk_00); + ov16_0223F3BC(v0->battleSys); } if (v0->unk_6C) { - PokemonSpriteManager_ShowShadows(BattleSystem_GetPokemonSpriteManager(v0->unk_00)); + PokemonSpriteManager_ShowShadows(BattleSystem_GetPokemonSpriteManager(v0->battleSys)); } if ((v0->unk_10.isSubstitute) && (v0->unk_10.unk_4C == 0) && (PokemonSprite_GetAttribute(v0->unk_08, MON_SPRITE_HIDE) == 0)) { { MoveAnimation v4; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v4, 1, 15, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_0C, &v4); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 15, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_0C, &v4); } v0->unk_6A = 7; } else { @@ -4562,17 +4562,17 @@ static void ov16_022626C0(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v5; MoveAnimation v6; - ov16_02264530(v0->unk_00, &v0->unk_10, &v5, v0->unk_69); + ov16_02264530(v0->battleSys, &v0->unk_10, &v5, v0->unk_69); ov12_02238390(&v5, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v6, 1, 16, v0->unk_69, v0->unk_69, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v0->unk_0C, &v6); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 16, v0->unk_69, v0->unk_69, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v0->unk_0C, &v6); v0->unk_04->unk_19C = 1; } v0->unk_6A++; break; case 10: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_69, v0->unk_68); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_69, v0->unk_68); Heap_Free(param1); SysTask_Done(param0); break; @@ -4609,7 +4609,7 @@ static void ov16_0226292C(SysTask *param0, void *param1) } else { v1 = 0; PokemonSprite_SetAttribute(v0->unk_04, MON_SPRITE_HIDE, v1); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_08, 23); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_08, 23); Heap_Free(param1); SysTask_Done(param0); } @@ -4685,7 +4685,7 @@ static void ov16_022629DC(SysTask *param0, void *param1) static void ov16_02262A9C(SysTask *param0, void *param1) { UnkStruct_ov16_0225DB74 *v0 = (UnkStruct_ov16_0225DB74 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); int v2; int v3; @@ -4695,8 +4695,8 @@ static void ov16_02262A9C(SysTask *param0, void *param1) { MoveAnimation v4; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v4, 1, 15, v0->unk_65, v0->unk_65, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v4); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 15, v0->unk_65, v0->unk_65, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v4); } v0->unk_66++; } else { @@ -4707,11 +4707,11 @@ static void ov16_02262A9C(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v5; MoveAnimation v6; - ov16_02264530(v0->unk_00, &v0->unk_0C, &v5, v0->unk_65); + ov16_02264530(v0->battleSys, &v0->unk_0C, &v5, v0->unk_65); ov12_022382BC(&v5, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v6, 1, 16, v0->unk_65, v0->unk_65, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v6); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v6, 1, 16, v0->unk_65, v0->unk_65, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v6); v0->unk_04->unk_19C = 0; } v0->unk_66++; @@ -4734,7 +4734,7 @@ static void ov16_02262A9C(SysTask *param0, void *param1) v7 = -117; } - Species_PlayDelayedCry(BattleSystem_ChatotVoice(v0->unk_00, v0->unk_65), 5, v0->unk_68, v0->unk_6B, v7, 127, v0->unk_72, 5, 0); + Species_PlayDelayedCry(BattleSystem_GetChatotCry(v0->battleSys, v0->unk_65), 5, v0->unk_68, v0->unk_6B, v7, 127, v0->unk_72, 5, 0); v0->unk_66++; } case 5: @@ -4795,7 +4795,7 @@ static void ov16_02262A9C(SysTask *param0, void *param1) } break; case 10: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_65, v0->unk_64); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_65, v0->unk_64); Heap_Free(param1); SysTask_Done(param0); break; @@ -4805,12 +4805,12 @@ static void ov16_02262A9C(SysTask *param0, void *param1) static void ov16_02262D28(SysTask *param0, void *param1) { UnkStruct_ov16_0225DC7C *v0 = (UnkStruct_ov16_0225DC7C *)param1; - PaletteData *v1 = BattleSystem_PaletteSys(v0->unk_00); - PokemonSpriteManager *v2 = BattleSystem_GetPokemonSpriteManager(v0->unk_00); + PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); + PokemonSpriteManager *v2 = BattleSystem_GetPokemonSpriteManager(v0->battleSys); switch (v0->unk_06) { case 0: - sub_02015738(ov16_0223E220(v0->unk_00), 1); + sub_02015738(ov16_0223E220(v0->battleSys), 1); PaletteData_StartFade(v1, 0x1 | 0x2 | 0x4 | 0x8, 0xffff, 1, 0, 16, 0x0); PokemonSpriteManager_StartFadeAll(v2, 0, 16, 0, 0x0); Sound_FadeOutBGM(0, 16); @@ -4821,7 +4821,7 @@ static void ov16_02262D28(SysTask *param0, void *param1) } break; case 2: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_05, v0->unk_04); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_05, v0->unk_04); Heap_Free(param1); SysTask_Done(param0); break; @@ -4831,7 +4831,7 @@ static void ov16_02262D28(SysTask *param0, void *param1) static void ov16_02262DC4(SysTask *param0, void *param1) { UnkStruct_ov16_0225DCB0 *v0 = (UnkStruct_ov16_0225DCB0 *)param1; - BattleAnimSystem *v1 = ov16_0223E008(v0->unk_00); + BattleAnimSystem *v1 = BattleSystem_GetBattleAnimSystem(v0->battleSys); switch (v0->unk_62) { case 0: @@ -4852,8 +4852,8 @@ static void ov16_02262DC4(SysTask *param0, void *param1) { MoveAnimation v2; - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v2, 1, 15, v0->unk_61, v0->unk_61, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v2); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v2, 1, 15, v0->unk_61, v0->unk_61, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v2); } v0->unk_62++; } else { @@ -4864,11 +4864,11 @@ static void ov16_02262DC4(SysTask *param0, void *param1) UnkStruct_ov12_022380DC v3; MoveAnimation v4; - ov16_02264530(v0->unk_00, &v0->unk_08, &v3, v0->unk_61); + ov16_02264530(v0->battleSys, &v0->unk_08, &v3, v0->unk_61); ov12_02238390(&v3, HEAP_ID_BATTLE); - BattleController_SetMoveAnimation(v0->unk_00, NULL, &v4, 1, 16, v0->unk_61, v0->unk_61, NULL); - ov16_02264408(v0->unk_00, v0->unk_04, v1, &v4); + BattleController_SetMoveAnimation(v0->battleSys, NULL, &v4, 1, 16, v0->unk_61, v0->unk_61, NULL); + ov16_02264408(v0->battleSys, v0->unk_04, v1, &v4); v0->unk_04->unk_19C = 1; } v0->unk_62++; @@ -4883,7 +4883,7 @@ static void ov16_02262DC4(SysTask *param0, void *param1) } break; default: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_61, v0->unk_60); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_61, v0->unk_60); Heap_Free(param1); SysTask_Done(param0); break; @@ -4902,7 +4902,7 @@ static void ov16_02262F30(SysTask *param0, void *param1) break; case 1: if (v0->unk_0B == 1) { - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); } @@ -4914,9 +4914,9 @@ static void WaitForBattleMessagePrint(SysTask *task, void *data) { BattleMessageWaitTask *waitTask = data; - if (Battle_GetWaitDial(waitTask->battleSys)) { - DestroyWaitDial(Battle_GetWaitDial(waitTask->battleSys)); - Battle_SetWaitDial(waitTask->battleSys, NULL); + if (BattleSystem_GetWaitDial(waitTask->battleSys)) { + DestroyWaitDial(BattleSystem_GetWaitDial(waitTask->battleSys)); + BattleSystem_SetWaitDial(waitTask->battleSys, NULL); } if (Text_IsPrinterActive(waitTask->msgIdx) == FALSE) { @@ -4939,8 +4939,8 @@ static void ov16_02262FC0(SysTask *param0, void *param1) break; case 1: if (++v0->unk_08 == 40) { - ov16_022661B0(v0->unk_00, v0->unk_05); - BattleController_EmitClearCommand(v0->unk_00, v0->unk_05, v0->unk_04); + ov16_022661B0(v0->battleSys, v0->unk_05); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_05, v0->unk_04); Heap_Free(param1); SysTask_Done(param0); } @@ -5009,10 +5009,10 @@ static void ov16_02263014(SysTask *param0, void *param1) int v3; int v4; - v1 = BattleSystem_BGL(v0->unk_00); - v2 = BattleSystem_PaletteSys(v0->unk_00); - v3 = BattleSystem_Terrain(v0->unk_00); - v4 = Unk_ov16_0226F1D0[BattleSystem_Background(v0->unk_00)]; + v1 = BattleSystem_GetBgConfig(v0->battleSys); + v2 = BattleSystem_GetPaletteData(v0->battleSys); + v3 = BattleSystem_GetTerrain(v0->battleSys); + v4 = Unk_ov16_0226F1D0[BattleSystem_GetBackground(v0->battleSys)]; v0->unk_15++; @@ -5072,16 +5072,16 @@ static void ov16_02263014(SysTask *param0, void *param1) } if (v0->unk_15 == 28) { - MI_CpuCopy16(ov16_0223F204(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 0), 0x20 * 7); - - if (BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_AI_PARTNER) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_DOUBLES) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 7); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_TRAINER) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); + MI_CpuCopy16(ov16_0223F204(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 0), 0x20 * 7); + + if (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_AI_PARTNER) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 7); + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_TRAINER) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); } else { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 4); + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 4); } PaletteData_StartFade(v2, 0x1, 0xf3ff, 0, 16, 0, v4); @@ -5101,7 +5101,7 @@ static void ov16_02263014(SysTask *param0, void *param1) } break; case 3: - sub_02015738(ov16_0223E220(v0->unk_00), 0); + sub_02015738(ov16_0223E220(v0->battleSys), 0); Heap_Free(param1); SysTask_Done(param0); break; @@ -5110,16 +5110,16 @@ static void ov16_02263014(SysTask *param0, void *param1) ov12_02237F74(v0->unk_04); v0->unk_14++; case 5: - MI_CpuCopy16(ov16_0223F204(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 0), 0x20 * 7); - - if (BattleSystem_BattleType(v0->unk_00) == BATTLE_TYPE_AI_PARTNER) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_DOUBLES) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 7); - } else if (BattleSystem_BattleType(v0->unk_00) & BATTLE_TYPE_TRAINER) { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); + MI_CpuCopy16(ov16_0223F204(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 0), 0x20 * 7); + + if (BattleSystem_GetBattleType(v0->battleSys) == BATTLE_TYPE_AI_PARTNER) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_DOUBLES) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 7); + } else if (BattleSystem_GetBattleType(v0->battleSys) & BATTLE_TYPE_TRAINER) { + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 5); } else { - MI_CpuCopy16(ov16_0223F210(v0->unk_00), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 4); + MI_CpuCopy16(ov16_0223F210(v0->battleSys), PaletteData_GetUnfadedBuffer(v2, 2), 0x20 * 4); } PaletteData_StartFade(v2, 0x1, 0xffff, 0, 0, 0, 0x7fff); @@ -5133,7 +5133,7 @@ static void ov16_02263014(SysTask *param0, void *param1) static void ov16_022633A4(SysTask *param0, void *param1) { UnkStruct_ov16_0225E0BC *v0 = (UnkStruct_ov16_0225E0BC *)param1; - PaletteData *v1 = BattleSystem_PaletteSys(v0->unk_00); + PaletteData *v1 = BattleSystem_GetPaletteData(v0->battleSys); switch (v0->unk_0A) { case 0: @@ -5142,11 +5142,11 @@ static void ov16_022633A4(SysTask *param0, void *param1) break; case 1: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { - ov16_0223B384(v0->unk_00); + ov16_0223B384(v0->battleSys); v0->unk_04 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattlePartyContext)); - v0->unk_04->party = BattleSystem_Party(v0->unk_00, v0->unk_09); - v0->unk_04->battleSystem = v0->unk_00; + v0->unk_04->party = BattleSystem_GetParty(v0->battleSys, v0->unk_09); + v0->unk_04->battleSys = v0->battleSys; v0->unk_04->heapID = HEAP_ID_BATTLE; v0->unk_04->selectedPartyIndex = v0->unk_0E; v0->unk_04->moveToLearn = v0->unk_0C; @@ -5163,7 +5163,7 @@ static void ov16_022633A4(SysTask *param0, void *param1) break; case 2: if (v0->unk_04->battlePartyExited) { - ov16_0223B430(v0->unk_00); + ov16_0223B430(v0->battleSys); PaletteData_StartFade(v1, 0x2 | 0x8, 0xffff, -8, 16, 0, 0x0); v0->unk_0A++; } @@ -5171,12 +5171,12 @@ static void ov16_022633A4(SysTask *param0, void *param1) case 3: if (PaletteData_GetSelectedBuffersMask(v1) == 0) { if (v0->unk_04->selectedMoveSlot == 4) { - ov16_02265B10(v0->unk_00, v0->unk_09, 0xff); + ov16_02265B10(v0->battleSys, v0->unk_09, 0xff); } else { - ov16_02265B10(v0->unk_00, v0->unk_09, v0->unk_04->selectedMoveSlot + 1); + ov16_02265B10(v0->battleSys, v0->unk_09, v0->unk_04->selectedMoveSlot + 1); } - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(v0->unk_04); Heap_Free(param1); @@ -5213,7 +5213,7 @@ static void ov16_022634DC(SysTask *param0, void *param1) } break; case 1: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_09, v0->unk_08); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_09, v0->unk_08); Heap_Free(param1); SysTask_Done(param0); break; @@ -5226,7 +5226,7 @@ static void ShowPartyGaugeTask(SysTask *param0, void *param1) enum PartyGaugeSide v1; enum ShowPartyGaugeType v2; - if (Battler_Side(v0->battleSys, v0->battler) == 0) { + if (BattleSystem_GetBattlerSide(v0->battleSys, v0->battler) == 0) { v1 = PARTY_GAUGE_OURS; } else { v1 = PARTY_GAUGE_THEIRS; @@ -5283,7 +5283,7 @@ static void HidePartyGaugeTask(SysTask *param0, void *param1) enum HideArrowType v3; enum HidePartyGaugeType v4; - if (Battler_Side(v0->battleSys, v0->battler) == 0) { + if (BattleSystem_GetBattlerSide(v0->battleSys, v0->battler) == 0) { v1 = PARTY_GAUGE_OURS; } else { v1 = PARTY_GAUGE_THEIRS; @@ -5326,11 +5326,11 @@ static void ov16_02263688(SysTask *param0, void *param1) switch (v0->unk_0E) { case 0: GF_ASSERT(v0->unk_04->unk_88 == NULL); - v0->unk_04->unk_88 = ov12_022234F8(v0->unk_00, HEAP_ID_BATTLE, v0->unk_0D); + v0->unk_04->unk_88 = ov12_022234F8(v0->battleSys, HEAP_ID_BATTLE, v0->unk_0D); v0->unk_0E++; break; default: - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); break; @@ -5352,7 +5352,7 @@ static void ov16_022636D4(SysTask *param0, void *param1) ov12_022237A4(v0->unk_04->unk_88, v0->unk_0D); v0->unk_04->unk_88 = NULL; - BattleController_EmitClearCommand(v0->unk_00, v0->unk_0D, v0->unk_0C); + BattleController_EmitClearCommand(v0->battleSys, v0->unk_0D, v0->unk_0C); Heap_Free(param1); SysTask_Done(param0); @@ -5360,8 +5360,8 @@ static void ov16_022636D4(SysTask *param0, void *param1) void ov16_02263730(BattleSystem *battleSys, BattlerData *param1) { - u32 battleType = BattleSystem_BattleType(battleSys); - u32 v1 = BattleSystem_BattleStatus(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); + u32 v1 = BattleSystem_GetBattleStatusMask(battleSys); if (battleType & BATTLE_TYPE_AI) { if (param1->battler) { @@ -5418,7 +5418,7 @@ void ov16_02263730(BattleSystem *battleSys, BattlerData *param1) param1->unk_00.unk_10 = &ov16_0226232C; param1->unk_00.unk_14 = &ov16_0226266C; param1->bootState = 0x0; - } else if (param1->battlerType != BattleSystem_BattlerSlot(battleSys, ov16_0223F6E4(battleSys) * 2)) { + } else if (param1->battlerType != BattleSystem_GetBattlerType(battleSys, BattleSystem_GetNetworkID(battleSys) * 2)) { param1->unk_00.unk_00 = &ov16_02260AE4; param1->unk_00.unk_04 = &ov16_02260E78; param1->unk_00.unk_08 = &ov16_022610EC; @@ -5444,7 +5444,7 @@ void ov16_02263730(BattleSystem *battleSys, BattlerData *param1) param1->unk_00.unk_10 = &ov16_0226232C; param1->unk_00.unk_14 = &ov16_0226266C; param1->bootState = 0x0; - } else if (param1->battlerType != BattleSystem_BattlerSlot(battleSys, ov16_0223F6E4(battleSys))) { + } else if (param1->battlerType != BattleSystem_GetBattlerType(battleSys, BattleSystem_GetNetworkID(battleSys))) { param1->unk_00.unk_00 = &ov16_02260AE4; param1->unk_00.unk_04 = &ov16_02260E78; param1->unk_00.unk_08 = &ov16_022610EC; @@ -5573,7 +5573,7 @@ PokemonSprite *ov16_02263AFC(BattlerData *param0) } } -Healthbar *ov16_02263B08(BattlerData *param0) +Healthbar *BattlerData_GetHealthbar(BattlerData *param0) { return ¶m0->healthbar; } @@ -5600,11 +5600,11 @@ void ov16_02263B20(BattlerData *param0, int param1) static PokemonSprite *ov16_02263B30(BattleSystem *battleSys, PokemonSpriteManager *param1, PokemonSpriteTemplate *param2, int param3, int param4, int param5, int param6, int param7, int param8, int param9, int param10, SpriteAnimFrame *param11, PokemonSpriteCallback *param12) { PokemonSprite *v0; - u8 *v1 = ov16_0223F2B8(ov16_0223E0C8(battleSys), param10); + u8 *v1 = PokemonSpriteData_GetTiles(BattleSystem_GetPokemonSpriteData(battleSys), param10); int v2; int face; - v2 = BattleSystem_BattlerSlot(battleSys, param10); + v2 = BattleSystem_GetBattlerType(battleSys, param10); if (v2 & 0x1) { face = FACE_FRONT; @@ -5613,9 +5613,9 @@ static PokemonSprite *ov16_02263B30(BattleSystem *battleSys, PokemonSpriteManage } CharacterSprite_LoadPokemonSprite(param2->narcID, param2->character, HEAP_ID_BATTLE, v1, param2->personality, FALSE, face, param2->spindaSpots); - PokemonSpriteData_SetNarcID(ov16_0223E0C8(battleSys), param10, param2->narcID); - PokemonSpriteData_SetPalette(ov16_0223E0C8(battleSys), param10, param2->palette); - PokemonSpriteData_SetYOffset(ov16_0223E0C8(battleSys), param10, param6); + PokemonSpriteData_SetNarcID(BattleSystem_GetPokemonSpriteData(battleSys), param10, param2->narcID); + PokemonSpriteData_SetPalette(BattleSystem_GetPokemonSpriteData(battleSys), param10, param2->palette); + PokemonSpriteData_SetYOffset(BattleSystem_GetPokemonSpriteData(battleSys), param10, param6); v0 = PokemonSpriteManager_CreateSpriteAtIndex(param1, param2, param3, param4 + param6, param5, param10, param10, param11, param12); @@ -5638,7 +5638,7 @@ static PokemonSprite *ov16_02263B30(BattleSystem *battleSys, PokemonSpriteManage static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *param1, RecallMsgMessage *message, BattleMessage *param3) { if (param1->battlerType & 0x1) { - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { param3->id = 990; param3->tags = 27; param3->params[0] = param1->battler; @@ -5651,7 +5651,7 @@ static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *param1, RecallMs param3->params[2] = param1->battler | (message->partySlot << 8); } } else { - if (((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) && ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { + if (((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { if (message->hpPercent == 0) { param3->id = 984; } else if (message->hpPercent < 25) { @@ -5675,7 +5675,7 @@ static void ov16_02263C1C(BattleSystem *battleSys, BattlerData *param1, RecallMs static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *param1, SendOutMsgMessage *message, BattleMessage *param3) { if (param1->battlerType & 0x1) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == 0) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == 0) { param3->id = 972; param3->tags = 50; param3->params[0] = param1->battler; @@ -5688,7 +5688,7 @@ static void ov16_02263CF0(BattleSystem *battleSys, BattlerData *param1, SendOutM param3->params[1] = param1->battler | (message->partySlot << 8); } } else { - if (((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) == 0) && ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { + if (((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) == 0) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE)) { if (message->hpPercent < 100) { param3->id = 982; } else if (message->hpPercent < 325) { @@ -5715,13 +5715,13 @@ static void ov16_02263DD0(BattleSystem *battleSys, BattlerData *unused, BattleMe int battlerType1; int battlerType2; - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); if (battleType & BATTLE_TYPE_DOUBLES) { - battlerType1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); - battlerType2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + battlerType1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + battlerType2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); } else { - battlerType1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); + battlerType1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); battlerType2 = battlerType1; } @@ -5766,12 +5766,12 @@ static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *param1, LeadMonM int v1; int v2; - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); if (param1->battlerType & 0x1) { if (battleType & BATTLE_TYPE_DOUBLES) { v1 = param1->battler; - v2 = BattleSystem_Partner(battleSys, param1->battler); + v2 = BattleSystem_GetPartner(battleSys, param1->battler); } else { v1 = param1->battler; v2 = v1; @@ -5834,35 +5834,35 @@ static void ov16_02263E7C(BattleSystem *battleSys, BattlerData *param1, LeadMonM } else { if (battleType & BATTLE_TYPE_LINK) { { - u8 v3 = ov16_0223F6E4(battleSys); + u8 v3 = BattleSystem_GetNetworkID(battleSys); if (battleType & BATTLE_TYPE_2vs2) { switch (ov16_0223F6F0(battleSys, v3)) { case 0: case 3: - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); - v2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + v2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); break; case 1: case 2: - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); - v2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + v2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); break; } } else if (battleType & BATTLE_TYPE_DOUBLES) { - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); - v2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + v2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); } else { - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_SOLO_PLAYER); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_PLAYER); v2 = v1; } } } else if (battleType & BATTLE_TYPE_2vs2) { - v1 = BattleSystem_Partner(battleSys, param1->battler); + v1 = BattleSystem_GetPartner(battleSys, param1->battler); v2 = param1->battler; } else if (battleType & BATTLE_TYPE_DOUBLES) { - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); - v2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + v2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); } else { v1 = param1->battler; v2 = v1; @@ -5914,14 +5914,14 @@ static void ov16_022641B4(BattleSystem *battleSys, BattlerData *param1, BattleMe int v2; int v3; - battleType = BattleSystem_BattleType(battleSys); - v3 = BattleSystem_ResultMask(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); + v3 = BattleSystem_GetResultMask(battleSys); if (battleType & BATTLE_TYPE_DOUBLES) { - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); - v2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + v2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); } else { - v1 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); + v1 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); v2 = v1; } @@ -5971,9 +5971,9 @@ static void ov16_02264270(BattleSystem *battleSys, BattlerData *param1, EscapeMs int v1 = 0; int v2 = 0; - for (i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { if (message->unk_01 & FlagIndex(i)) { - if (Battler_Side(battleSys, i)) { + if (BattleSystem_GetBattlerSide(battleSys, i)) { v2++; } else { v1++; @@ -5984,28 +5984,28 @@ static void ov16_02264270(BattleSystem *battleSys, BattlerData *param1, EscapeMs if ((v1) && (v2)) { param3->id = 781; param3->tags = 0; - BattleSystem_SetResultFlag(battleSys, 0x3 | 0x80 | 0x40); + BattleSystem_SetResultMask(battleSys, 0x3 | 0x80 | 0x40); } else if (v1) { param3->id = 781; param3->tags = 0; - BattleSystem_SetResultFlag(battleSys, 0x2 | 0x80 | 0x40); + BattleSystem_SetResultMask(battleSys, 0x2 | 0x80 | 0x40); } else { - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) { param3->id = 792; param3->tags = 26; - param3->params[0] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); - param3->params[1] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); - } else if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + param3->params[1] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + } else if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { param3->id = 791; param3->tags = 8; - param3->params[0] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); } else { param3->id = 791; param3->tags = 8; - param3->params[0] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); + param3->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); } - BattleSystem_SetResultFlag(battleSys, 0x1 | 0x80 | 0x40); + BattleSystem_SetResultMask(battleSys, 0x1 | 0x80 | 0x40); } } @@ -6014,17 +6014,17 @@ static void ov16_02264360(BattleSystem *battleSys, BattlerData *param1, BattleMe message->id = 956; message->tags = 8; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) { - if (ov16_0223F6F0(battleSys, ov16_0223F6E4(battleSys))) { - message->params[0] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { + if (ov16_0223F6F0(battleSys, BattleSystem_GetNetworkID(battleSys))) { + message->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_2); } else { - message->params[0] = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); + message->params[0] = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_PLAYER_SIDE_SLOT_1); } } else { message->params[0] = param1->battler; } - BattleSystem_SetResultFlag(battleSys, 0x2 | 0x80 | 0x40); + BattleSystem_SetResultMask(battleSys, 0x2 | 0x80 | 0x40); } static ManagedSprite *ov16_022643B8(BattleSystem *battleSys, int param1, int param2, int param3, s16 param4, s16 param5) @@ -6037,7 +6037,7 @@ static ManagedSprite *ov16_022643B8(BattleSystem *battleSys, int param1, int par v0 = BattleSystem_GetSpriteSystem(battleSys); v1 = BattleSystem_GetSpriteManager(battleSys); - v2 = BattleSystem_PaletteSys(battleSys); + v2 = BattleSystem_GetPaletteData(battleSys); if (param1 & 0x1) { v4 = 2; @@ -6064,12 +6064,12 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *param1, BattleAn move = animation->unk_50; } - battlerContext.bgConfig = BattleSystem_BGL(battleSys); - battlerContext.paletteData = BattleSystem_PaletteSys(battleSys); + battlerContext.bgConfig = BattleSystem_GetBgConfig(battleSys); + battlerContext.paletteData = BattleSystem_GetPaletteData(battleSys); battlerContext.spriteSystem = BattleSystem_GetSpriteSystem(battleSys); for (i = 0; i < 4; i++) { - battlerContext.pokemonSpriteData[i] = ov16_0223F2AC(battleSys, i); + battlerContext.pokemonSpriteData[i] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, i); battlerContext.battlerSpecies[i] = animation->species[i]; battlerContext.battlerGenders[i] = animation->genders[i]; battlerContext.battlerShinyFlags[i] = animation->isShiny[i]; @@ -6081,13 +6081,13 @@ static void ov16_02264408(BattleSystem *battleSys, BattlerData *param1, BattleAn ov16_0223F87C(battleSys, &(battlerContext.battlerTypes[0])); ov16_0223F8AC(battleSys, &(battlerContext.pokemonSprites[0])); - battlerContext.battleType = BattleSystem_BattleType(battleSys); - battlerContext.chatotCry = BattleSystem_ChatotVoice(battleSys, param1->battler); + battlerContext.battleType = BattleSystem_GetBattleType(battleSys); + battlerContext.chatotCry = BattleSystem_GetChatotCry(battleSys, param1->battler); battlerContext.bgTiles = ov16_0223F1E8(battleSys); battlerContext.bgPaletteBuffer = ov16_0223F1F0(battleSys); battlerContext.battleBgRef.narcID = 7; - battlerContext.battleBgRef.tilesNarcMemberIdx = 3 + BattleSystem_Background(battleSys); - battlerContext.battleBgRef.paletteNarcMemberIdx = 172 + BattleSystem_Background(battleSys) * 3 + ov16_0223EC04(battleSys); + battlerContext.battleBgRef.tilesNarcMemberIdx = 3 + BattleSystem_GetBackground(battleSys); + battlerContext.battleBgRef.paletteNarcMemberIdx = 172 + BattleSystem_GetBackground(battleSys) * 3 + BattleSystem_GetBackgroundTimeOffset(battleSys); battlerContext.battleBgRef.tilemapNarcMemberIdx = 2; battlerContext.battleBgRef.paletteDestStart = 0; battlerContext.battleBgRef.paletteSrcSize = 8; @@ -6103,7 +6103,7 @@ static void ov16_02264530(BattleSystem *battleSys, MoveAnimation *animation, Unk param2->unk_04 = param3; for (i = 0; i < 4; i++) { - param2->pokemonSpriteData[i] = ov16_0223F2AC(battleSys, i); + param2->pokemonSpriteData[i] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, i); param2->species[i] = animation->species[i]; param2->genders[i] = animation->genders[i]; param2->shinyFlags[i] = animation->isShiny[i]; @@ -6221,19 +6221,19 @@ static void ov16_022646C8(SysTask *param0, void *param1) static void ov16_02264730(BattleSystem *battleSys) { BattleSystem_SetStopRecording(battleSys, 1); - Battle_RecordingStopped(battleSys, BattleSystem_Context(battleSys)); + BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } static void ov16_0226474C(BattleSystem *battleSys) { BattleSystem_SetStopRecording(battleSys, 2); - Battle_RecordingStopped(battleSys, BattleSystem_Context(battleSys)); + BattleSystem_IsRecordingStopped(battleSys, BattleSystem_GetBattleContext(battleSys)); } static u8 ov16_02264768(BattleSystem *battleSys, u8 param1, u8 param2) { - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) { - if ((TrainerInfo_GameCode(BattleSystem_TrainerInfo(battleSys, param1)) == 0) && (param2 <= 1)) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { + if ((TrainerInfo_GameCode(BattleSystem_GetTrainerInfo(battleSys, param1)) == 0) && (param2 <= 1)) { param2 += 103; } } diff --git a/src/battle/battle_io_command.c b/src/battle/battle_io_command.c index e962b63d2d..a04d313ea0 100644 --- a/src/battle/battle_io_command.c +++ b/src/battle/battle_io_command.c @@ -11,9 +11,9 @@ #include "battle/battle_cursor.h" #include "battle/battle_display.h" #include "battle/battle_message.h" +#include "battle/battle_system.h" #include "battle/healthbar.h" #include "battle/message_defs.h" -#include "battle/ov16_0223DF00.h" #include "battle/ov16_02264798.h" #include "battle/party_gauge.h" #include "battle/struct_ov16_0223C2C0.h" @@ -134,11 +134,11 @@ void ov16_0225C038(BattleSystem *battleSys, BattlerData *param1, int param2, int BallThrow v0; s16 v1, v2; - if (BattleSystem_BattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + if (BattleSystem_GetBattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { return; } - if ((param1->battlerType & 0x1) && ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE)) { + if ((param1->battlerType & 0x1) && ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TRAINER) == FALSE)) { return; } @@ -148,7 +148,7 @@ void ov16_0225C038(BattleSystem *battleSys, BattlerData *param1, int param2, int v0.target = param1->battler; v0.ballID = param2; v0.cellActorSys = BattleSystem_GetSpriteSystem(battleSys); - v0.paletteSys = BattleSystem_PaletteSys(battleSys); + v0.paletteSys = BattleSystem_GetPaletteData(battleSys); v0.surface = 0; v0.bgPrio = 1; @@ -263,7 +263,7 @@ static void ov16_0225C13C(BattleSystem *battleSys, BattlerData *param1) { UISetupMessage *message = (UISetupMessage *)¶m1->data[0]; - ov16_0223F4F4(battleSys, message->unk_04); + BattleSystem_SetSeedDTO(battleSys, message->unk_04); ov16_0225CBB8(battleSys, param1); BattleController_EmitClearCommand(battleSys, param1->battler, 1); ZeroDataBuffer(param1); @@ -580,7 +580,7 @@ static void ov16_0225C47C(BattleSystem *battleSys, BattlerData *param1) { UpdatePartyMonMessage *message = (UpdatePartyMonMessage *)¶m1->data[0]; int v1; - Pokemon *v2 = BattleSystem_PartyPokemon(battleSys, param1->battler, message->partySlot); + Pokemon *v2 = BattleSystem_GetPartyPokemon(battleSys, param1->battler, message->partySlot); if ((message->statusVolatile & 0x200000) == 0) { for (v1 = 0; v1 < LEARNED_MOVES_MAX; v1++) { @@ -616,7 +616,7 @@ static void ov16_0225C558(BattleSystem *battleSys, BattlerData *param1) u32 battleType; UnkStruct_ov16_02268A14 *v1; - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); v1 = ov16_0223E02C(battleSys); if (param1->bootState == 0x0) { @@ -643,10 +643,10 @@ static void ov16_0225C5E0(BattleSystem *battleSys, BattlerData *param1) Pokemon *v1; int v2, v3, v4; u32 v5 = 0; - v3 = BattleSystem_PartyCount(battleSys, param1->battler); + v3 = BattleSystem_GetPartyCount(battleSys, param1->battler); for (v2 = 0; v2 < v3; v2++) { - v1 = BattleSystem_PartyPokemon(battleSys, param1->battler, v2); + v1 = BattleSystem_GetPartyPokemon(battleSys, param1->battler, v2); if (message->ability == 104) { v4 = ABILITY_NONE; @@ -699,13 +699,13 @@ static void ov16_0225C684(BattleSystem *battleSys, BattlerData *param1) *v2 = v1; PokemonSprite_ScheduleReloadFromNARC(param1->unk_20); - CharacterSprite_LoadPokemonSprite(v2->narcID, v2->character, HEAP_ID_BATTLE, ov16_0223F2B8(ov16_0223E0C8(battleSys), param1->battler), message->personality, FALSE, v4, v2->spindaSpots); + CharacterSprite_LoadPokemonSprite(v2->narcID, v2->character, HEAP_ID_BATTLE, PokemonSpriteData_GetTiles(BattleSystem_GetPokemonSpriteData(battleSys), param1->battler), message->personality, FALSE, v4, v2->spindaSpots); - PokemonSpriteData_SetNarcID(ov16_0223E0C8(battleSys), param1->battler, v2->narcID); - PokemonSpriteData_SetPalette(ov16_0223E0C8(battleSys), param1->battler, v2->palette); + PokemonSpriteData_SetNarcID(BattleSystem_GetPokemonSpriteData(battleSys), param1->battler, v2->narcID); + PokemonSpriteData_SetPalette(BattleSystem_GetPokemonSpriteData(battleSys), param1->battler, v2->palette); v3 = LoadPokemonSpriteYOffset(message->species, message->gender, v4, message->formNum, message->personality); - PokemonSpriteData_SetYOffset(ov16_0223E0C8(battleSys), param1->battler, v3); + PokemonSpriteData_SetYOffset(BattleSystem_GetPokemonSpriteData(battleSys), param1->battler, v3); v3 = ov12_022384CC(param1->battlerType, 1) + v3; PokemonSprite_SetAttribute(param1->unk_20, MON_SPRITE_Y_CENTER, v3); @@ -741,10 +741,10 @@ static void ov16_0225C79C(BattleSystem *battleSys, BattlerData *param1) NARC_dtor(v3); NARC_dtor(v4); - v1 = BattleSystem_Partner(battleSys, param1->battler); + v1 = BattleSystem_GetPartner(battleSys, param1->battler); if (v1 != param1->battler) { - v2 = ov16_0223F35C(battleSys, v1); + v2 = BattleSystem_GetHealthbar(battleSys, v1); ov16_0226846C(v2); } @@ -778,7 +778,7 @@ static void ov16_0225C868(BattleSystem *battleSys, BattlerData *param1) { PartyGaugeData *v0 = (PartyGaugeData *)¶m1->data[0]; - if (Battler_Side(battleSys, param1->battler)) { + if (BattleSystem_GetBattlerSide(battleSys, param1->battler)) { BattleDisplay_ShowPartyGauge(battleSys, param1, v0); } else { BattleController_EmitClearCommand(battleSys, param1->battler, 50); @@ -791,7 +791,7 @@ static void ov16_0225C8A4(BattleSystem *battleSys, BattlerData *param1) { PartyGaugeData *v0 = (PartyGaugeData *)¶m1->data[0]; - if (Battler_Side(battleSys, param1->battler)) { + if (BattleSystem_GetBattlerSide(battleSys, param1->battler)) { BattleDisplay_HidePartyGauge(battleSys, param1, v0); } else { BattleController_EmitClearCommand(battleSys, param1->battler, 51); @@ -804,7 +804,7 @@ static void ov16_0225C8E0(BattleSystem *battleSys, BattlerData *param1) { SpriteSystem *v0 = BattleSystem_GetSpriteSystem(battleSys); SpriteManager *v1 = BattleSystem_GetSpriteManager(battleSys); - PaletteData *v2 = BattleSystem_PaletteSys(battleSys); + PaletteData *v2 = BattleSystem_GetPaletteData(battleSys); PartyGauge_LoadGraphics(v0, v1, v2); BattleController_EmitClearCommand(battleSys, param1->battler, 52); @@ -928,17 +928,17 @@ static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *param1) ov16_0223F638(battleSys, message->unk_02, message->unk_08); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_FRONTIER) { - BattleSystem_SetResultFlag(battleSys, message->resultMask); + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_FRONTIER) { + BattleSystem_SetResultMask(battleSys, message->resultMask); } else { - for (v4 = 0; v4 < BattleSystem_MaxBattlers(battleSys); v4++) { - v1 = BattleSystem_Party(battleSys, v4); + for (v4 = 0; v4 < BattleSystem_GetMaxBattlers(battleSys); v4++) { + v1 = BattleSystem_GetParty(battleSys, v4); for (v3 = 0; v3 < Party_GetCurrentCount(v1); v3++) { v2 = Party_GetPokemonBySlotIndex(v1, v3); if ((Pokemon_GetValue(v2, MON_DATA_SPECIES, NULL)) && (Pokemon_GetValue(v2, MON_DATA_IS_EGG, NULL) == 0)) { - if (Battler_Side(battleSys, v4)) { + if (BattleSystem_GetBattlerSide(battleSys, v4)) { v6 += Pokemon_GetValue(v2, MON_DATA_HP, NULL); } else { v5 += Pokemon_GetValue(v2, MON_DATA_HP, NULL); @@ -948,11 +948,11 @@ static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *param1) } if ((v5 == 0) && (v6 == 0)) { - BattleSystem_SetResultFlag(battleSys, 0x3); + BattleSystem_SetResultMask(battleSys, 0x3); } else if (v5 == 0) { - BattleSystem_SetResultFlag(battleSys, 0x2); + BattleSystem_SetResultMask(battleSys, 0x2); } else { - BattleSystem_SetResultFlag(battleSys, 0x1); + BattleSystem_SetResultMask(battleSys, 0x1); } } @@ -962,7 +962,7 @@ static void ov16_0225CA74(BattleSystem *battleSys, BattlerData *param1) static void ov16_0225CB80(BattleSystem *battleSys, BattlerData *param1) { - Window *v0 = BattleSystem_Window(battleSys, 0); + Window *v0 = BattleSystem_GetWindow(battleSys, 0); Window_FillTilemap(v0, 0xff); Window_LoadTiles(v0); diff --git a/src/battle/battle_lib.c b/src/battle/battle_lib.c index e935265bc7..d15ba6313d 100644 --- a/src/battle/battle_lib.c +++ b/src/battle/battle_lib.c @@ -24,8 +24,8 @@ #include "battle/battle_display.h" #include "battle/battle_message.h" #include "battle/battle_mon.h" +#include "battle/battle_system.h" #include "battle/common.h" -#include "battle/ov16_0223DF00.h" #include "battle/struct_ov16_0225BFFC_decl.h" #include "charcode_util.h" @@ -69,7 +69,7 @@ static const Fraction sStatStageBoosts[]; void BattleSystem_InitBattleMon(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, partySlot); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, partySlot); battleCtx->battleMons[battler].species = Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL); battleCtx->battleMons[battler].attack = Pokemon_GetValue(mon, MON_DATA_ATK, NULL); @@ -116,7 +116,7 @@ void BattleSystem_InitBattleMon(BattleSystem *battleSys, BattleContext *battleCt battleCtx->battleMons[battler].gender = Pokemon_GetGender(mon); battleCtx->battleMons[battler].isShiny = Pokemon_IsShiny(mon); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_NO_ABILITIES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_NO_ABILITIES) { battleCtx->battleMons[battler].ability = ABILITY_NONE; battleCtx->battleMons[battler].status = MON_CONDITION_NONE; battleCtx->battleMons[battler].heldItem = ITEM_NONE; @@ -126,7 +126,7 @@ void BattleSystem_InitBattleMon(BattleSystem *battleSys, BattleContext *battleCt battleCtx->battleMons[battler].heldItem = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); } - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_NO_ABILITIES) && Battler_Side(battleSys, battler) == BATTLER_US) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_NO_ABILITIES) && BattleSystem_GetBattlerSide(battleSys, battler) == BATTLER_US) { battleCtx->battleMons[battler].formNum = 0; } else { battleCtx->battleMons[battler].formNum = Pokemon_GetValue(mon, MON_DATA_FORM, NULL); @@ -157,7 +157,7 @@ void BattleSystem_InitBattleMon(BattleSystem *battleSys, BattleContext *battleCt battleCtx->battleMons[battler].timesDamaged = 0; battleCtx->battleMons[battler].trainerMessageFlags = 0; - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); if (battleCtx->sideConditions[side].knockedOffItemsMask & FlagIndex(battleCtx->selectedPartySlot[battler])) { battleCtx->battleMons[battler].heldItem = ITEM_NONE; battleCtx->battleMons[battler].moveEffectsData.canUnburden = FALSE; @@ -168,7 +168,7 @@ void BattleSystem_InitBattleMon(BattleSystem *battleSys, BattleContext *battleCt void BattleSystem_ReloadPokemon(BattleSystem *battleSys, BattleContext *battleCtx, int battler, int partySlot) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, partySlot); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, partySlot); battleCtx->battleMons[battler].attack = Pokemon_GetValue(mon, MON_DATA_ATK, NULL); battleCtx->battleMons[battler].defense = Pokemon_GetValue(mon, MON_DATA_DEF, NULL); @@ -1271,7 +1271,7 @@ u8 BattleSystem_CompareBattlerSpeed(BattleSystem *battleSys, BattleContext *batt battler1Speed *= 2; } - if (battleCtx->sideConditionsMask[Battler_Side(battleSys, battler1)] & SIDE_CONDITION_TAILWIND) { + if (battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battler1)] & SIDE_CONDITION_TAILWIND) { battler1Speed *= 2; } @@ -1337,7 +1337,7 @@ u8 BattleSystem_CompareBattlerSpeed(BattleSystem *battleSys, BattleContext *batt battler2Speed *= 2; } - if (battleCtx->sideConditionsMask[Battler_Side(battleSys, battler2)] & SIDE_CONDITION_TAILWIND) { + if (battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battler2)] & SIDE_CONDITION_TAILWIND) { battler2Speed *= 2; } @@ -1461,7 +1461,7 @@ void BattleSystem_ClearSideExpGain(BattleContext *battleCtx, int battler) void BattleSystem_FlagBattlerExpGain(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { int side = 0; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); while (side <= 2) { if ((battleCtx->battlersSwitchingMask & FlagIndex(side)) == FALSE @@ -1609,8 +1609,8 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int } if (range == RANGE_ADJACENT_OPPONENTS) { // e.g., Acid, Blizzard - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, attacker); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, attacker); u8 attackerType = Battler_Type(battlerData); // Assign the first possible living target based on speed order @@ -1619,7 +1619,7 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int // Check that this battler is an enemy of the attacker if (battleCtx->battleMons[battler].curHP != 0) { - battlerData = BattleSystem_BattlerData(battleSys, battler); + battlerData = BattleSystem_GetBattlerData(battleSys, battler); if (((attackerType & BATTLER_TYPE_SOLO_ENEMY) && (Battler_Type(battlerData) & BATTLER_TYPE_SOLO_ENEMY) == FALSE) || ((attackerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) && (Battler_Type(battlerData) & BATTLER_TYPE_SOLO_ENEMY)) { defender = battler; @@ -1632,7 +1632,7 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int battleCtx->battlerCounter++; } } else if (range == RANGE_ALL_ADJACENT) { // e.g., Earthquake, Surf - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // Assign the first possible living target based on speed order for (battleCtx->battlerCounter = 0; battleCtx->battlerCounter < maxBattlers; battleCtx->battlerCounter++) { @@ -1649,9 +1649,9 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int battleCtx->battlerCounter++; } } else if (range == RANGE_USER_OR_ALLY && randomize == TRUE) { // e.g., Acupressure - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) && BattleSystem_RandNext(battleSys) % 2 == 0) { - defender = BattleSystem_Partner(battleSys, attacker); + defender = BattleSystem_GetPartner(battleSys, attacker); if (battleCtx->battleMons[defender].curHP == 0) { defender = attacker; } @@ -1668,13 +1668,13 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int || range == RANGE_FIELD) { // e.g., Sunny Day defender = attacker; } else if (range == RANGE_ALLY) { // e.g., Helping Hand - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { - defender = BattleSystem_Partner(battleSys, attacker); + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + defender = BattleSystem_GetPartner(battleSys, attacker); } else { defender = attacker; } } else if (range == RANGE_USER_OR_ALLY) { // e.g., Acupressure - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { defender = battleCtx->battlerActions[attacker][BATTLE_ACTION_CHOOSE_TARGET]; if (battleCtx->battleMons[defender].curHP == 0) { defender = attacker; @@ -1684,11 +1684,11 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int } } else if (range == RANGE_RANDOM_OPPONENT || randomize == TRUE) { // e.g., Outrage, Thrash, any other reason the move should be randomly targeted int opponents[2]; - int battleType = BattleSystem_BattleType(battleSys); - int enemySide = Battler_Side(battleSys, attacker) ^ 1; + int battleType = BattleSystem_GetBattleType(battleSys); + int enemySide = BattleSystem_GetBattlerSide(battleSys, attacker) ^ 1; - opponents[0] = BattleSystem_EnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_RIGHT); - opponents[1] = BattleSystem_EnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_LEFT); + opponents[0] = BattleSystem_GetEnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_RIGHT); + opponents[1] = BattleSystem_GetEnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_LEFT); if (battleType & BATTLE_TYPE_DOUBLES) { if (battleCtx->sideConditions[enemySide].followMe @@ -1707,9 +1707,9 @@ int BattleSystem_Defender(BattleSystem *battleSys, BattleContext *battleCtx, int defender = attacker ^ 1; } } else { // the usual single-target moves, e.g., Flamethrower, Thunderbolt - int enemySide = Battler_Side(battleSys, attacker) ^ 1; + int enemySide = BattleSystem_GetBattlerSide(battleSys, attacker) ^ 1; int target = battleCtx->battlerActions[attacker][BATTLE_ACTION_CHOOSE_TARGET]; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if (battleCtx->sideConditions[enemySide].followMe && battleCtx->battleMons[battleCtx->sideConditions[enemySide].followMeUser].curHP) { @@ -1739,7 +1739,7 @@ void BattleSystem_CheckRedirectionAbilities(BattleSystem *battleSys, BattleConte return; } - int defSide = Battler_Side(battleSys, attacker) ^ 1; + int defSide = BattleSystem_GetBattlerSide(battleSys, attacker) ^ 1; if (battleCtx->sideConditions[defSide].followMe && FOLLOW_ME_MON(defSide).curHP) { return; } @@ -1749,7 +1749,7 @@ void BattleSystem_CheckRedirectionAbilities(BattleSystem *battleSys, BattleConte moveType = MOVE_DATA(move).type; } - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if (moveType == TYPE_ELECTRIC && (MOVE_DATA(move).range == RANGE_SINGLE_TARGET || MOVE_DATA(move).range == RANGE_RANDOM_OPPONENT) && (battleCtx->battleStatusMask & SYSCTL_FIRST_OF_MULTI_TURN) == FALSE @@ -1872,7 +1872,7 @@ enum CheckTrainerMessageState { BOOL BattleSystem_CheckTrainerMessage(BattleSystem *battleSys, BattleContext *battleCtx) { - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); if (battleType & BATTLE_TYPE_NO_TRAINER_MESSAGES) { return FALSE; @@ -1886,7 +1886,7 @@ BOOL BattleSystem_CheckTrainerMessage(BattleSystem *battleSys, BattleContext *ba return FALSE; } - int trID = Battler_TrainerID(battleSys, BATTLER_THEM); + int trID = Battler_GetTrainerID(battleSys, BATTLER_THEM); int state = CHECK_TRMSG_START; do { @@ -1917,7 +1917,7 @@ BOOL BattleSystem_CheckTrainerMessage(BattleSystem *battleSys, BattleContext *ba case CHECK_TRMSG_LAST_BATTLER: if ((battleCtx->battleMons[BATTLER_THEM].trainerMessageFlags & TRMSG_LAST_BATTLER_FLAG) == FALSE) { - Party *party = BattleSystem_Party(battleSys, BATTLER_THEM); + Party *party = BattleSystem_GetParty(battleSys, BATTLER_THEM); int alive = 0; for (int i = 0; i < Party_GetCurrentCount(party); i++) { @@ -1940,7 +1940,7 @@ BOOL BattleSystem_CheckTrainerMessage(BattleSystem *battleSys, BattleContext *ba case CHECK_TRMSG_LAST_BATTLER_HALF_HP: if ((battleCtx->battleMons[BATTLER_THEM].trainerMessageFlags & TRMSG_LAST_BATTLER_HALF_HP_FLAG) == FALSE) { - Party *party = BattleSystem_Party(battleSys, BATTLER_THEM); + Party *party = BattleSystem_GetParty(battleSys, BATTLER_THEM); int alive = 0; for (int i = 0; i < Party_GetCurrentCount(party); i++) { @@ -2027,7 +2027,7 @@ void BattleContext_InitCounters(BattleSystem *battleSys, BattleContext *battleCt battleCtx->prizeMoneyMul = 1; battleCtx->meFirstTurnOrder = 1; - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE) { battleCtx->battlersSwitchingMask |= FlagIndex(BATTLER_PLAYER_2); battleCtx->battlersSwitchingMask |= FlagIndex(BATTLER_ENEMY_2); @@ -2046,8 +2046,8 @@ void BattleSystem_UpdateAfterSwitch(BattleSystem *battleSys, BattleContext *batt MoveEffectsData moveEffects; moveEffects = battleCtx->battleMons[battler].moveEffectsData; - maxBattlers = BattleSystem_MaxBattlers(battleSys); - battleType = BattleSystem_BattleType(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); // Forcefully end the battler's turn after the replacement battleCtx->battlerActions[battler][BATTLE_ACTION_PICK_COMMAND] = BATTLE_CONTROL_MOVE_END; @@ -2141,7 +2141,7 @@ void BattleSystem_UpdateAfterSwitch(BattleSystem *battleSys, BattleContext *batt } for (i = 0; i < maxBattlers; i++) { - if (i != battler && Battler_Side(battleSys, i) != Battler_Side(battleSys, battler)) { + if (i != battler && BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battler)) { battleCtx->moveCopied[i] = MOVE_NONE; } @@ -2155,7 +2155,7 @@ void BattleSystem_UpdateAfterSwitch(BattleSystem *battleSys, BattleContext *batt void BattleSystem_CleanupFaintedMon(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); int i; for (i = BATTLE_STAT_HP; i < BATTLE_STAT_MAX; i++) { @@ -2213,7 +2213,7 @@ void BattleSystem_CleanupFaintedMon(BattleSystem *battleSys, BattleContext *batt battleCtx->fieldConditionsMask &= (FlagIndex(battler) << FIELD_CONDITION_UPROAR_SHIFT) ^ 0xFFFFFFFF; for (i = 0; i < maxBattlers; i++) { - if (i != battler && Battler_Side(battleSys, i) != Battler_Side(battleSys, battler)) { + if (i != battler && BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battler)) { battleCtx->moveCopied[i] = MOVE_NONE; } battleCtx->moveCopiedHit[i][battler] = 0; @@ -2825,7 +2825,7 @@ BOOL BattleContext_MoveFailed(BattleContext *battleCtx, int battler) u8 BattleSystem_CountAliveBattlers(BattleSystem *battleSys, BattleContext *battleCtx, BOOL sameSide, int defender) { u8 count = 0; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // no clue why they used a switch statement for this, but changing it to an if-else doesn't match switch (sameSide) { @@ -2839,7 +2839,7 @@ u8 BattleSystem_CountAliveBattlers(BattleSystem *battleSys, BattleContext *battl case TRUE: for (int i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) == Battler_Side(battleSys, defender) + if (BattleSystem_GetBattlerSide(battleSys, i) == BattleSystem_GetBattlerSide(battleSys, defender) && battleCtx->battleMons[i].curHP) { count++; } @@ -2871,12 +2871,12 @@ int BattleSystem_CountAbility(BattleSystem *battleSys, BattleContext *battleCtx, { int result = 0; int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); switch (mode) { case COUNT_ALL_BATTLERS_OUR_SIDE: for (i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) == Battler_Side(battleSys, battler) + if (BattleSystem_GetBattlerSide(battleSys, i) == BattleSystem_GetBattlerSide(battleSys, battler) && Battler_Ability(battleCtx, i) == ability) { result++; } @@ -2885,7 +2885,7 @@ int BattleSystem_CountAbility(BattleSystem *battleSys, BattleContext *battleCtx, case COUNT_ALIVE_BATTLERS_OUR_SIDE: for (i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) == Battler_Side(battleSys, battler) + if (BattleSystem_GetBattlerSide(battleSys, i) == BattleSystem_GetBattlerSide(battleSys, battler) && battleCtx->battleMons[i].curHP && Battler_Ability(battleCtx, i) == ability) { result++; @@ -2895,7 +2895,7 @@ int BattleSystem_CountAbility(BattleSystem *battleSys, BattleContext *battleCtx, case COUNT_ALL_BATTLERS_THEIR_SIDE: for (i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) != Battler_Side(battleSys, battler) + if (BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battler) && Battler_Ability(battleCtx, i) == ability) { result++; } @@ -2904,7 +2904,7 @@ int BattleSystem_CountAbility(BattleSystem *battleSys, BattleContext *battleCtx, case COUNT_ALIVE_BATTLERS_THEIR_SIDE: for (i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) != Battler_Side(battleSys, battler) + if (BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battler) && battleCtx->battleMons[i].curHP && Battler_Ability(battleCtx, i) == ability) { result++; @@ -2914,7 +2914,7 @@ int BattleSystem_CountAbility(BattleSystem *battleSys, BattleContext *battleCtx, case COUNT_ALIVE_BATTLERS_THEIR_SIDE_FLAG: for (i = 0; i < maxBattlers; i++) { - if (Battler_Side(battleSys, i) != Battler_Side(battleSys, battler) + if (BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battler) && battleCtx->battleMons[i].curHP && Battler_Ability(battleCtx, i) == ability) { result |= FlagIndex(i); @@ -3053,7 +3053,7 @@ BOOL Move_IsGhostCurse(BattleContext *battleCtx, u16 move, int battler) BOOL BattleSystem_CanStealItem(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { BOOL result = FALSE; - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); if (battleCtx->battleMons[battler].heldItem && (battleCtx->sideConditions[side].knockedOffItemsMask & FlagIndex(battleCtx->selectedPartySlot[battler])) == FALSE @@ -3135,13 +3135,13 @@ BOOL BattleSystem_AnyReplacementMons(BattleSystem *battleSys, BattleContext *bat u32 battleType; result = FALSE; - battleType = BattleSystem_BattleType(battleSys); - party = BattleSystem_Party(battleSys, battler); - partySize = BattleSystem_PartyCount(battleSys, battler); + battleType = BattleSystem_GetBattleType(battleSys); + party = BattleSystem_GetParty(battleSys, battler); + partySize = BattleSystem_GetPartyCount(battleSys, battler); if ((battleType & BATTLE_TYPE_2vs2) || ((battleType & BATTLE_TYPE_TAG) - && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_THEM))) { + && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { // have to copy these 4 identical assignments across each branch to match start = 0; end = partySize; @@ -3153,7 +3153,7 @@ BOOL BattleSystem_AnyReplacementMons(BattleSystem *battleSys, BattleContext *bat end = partySize; neededAliveMons = 1; selectedSlot1 = battleCtx->selectedPartySlot[battler]; - selectedSlot2 = battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battler)]; + selectedSlot2 = battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; } else { start = 0; end = partySize; @@ -3186,7 +3186,7 @@ BOOL Battler_IsTrappedMsg(BattleSystem *battleSys, BattleContext *battleCtx, int int maxBattlers; u8 side; int itemEffect; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); itemEffect = Battler_HeldItemEffect(battleCtx, battler); if (itemEffect == HOLD_EFFECT_FLEE @@ -3195,8 +3195,8 @@ BOOL Battler_IsTrappedMsg(BattleSystem *battleSys, BattleContext *battleCtx, int return FALSE; } - side = Battler_Side(battleSys, battler); - maxBattlers = BattleSystem_MaxBattlers(battleSys); + side = BattleSystem_GetBattlerSide(battleSys, battler); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if ((tmp = BattleSystem_CountAbility(battleSys, battleCtx, COUNT_ALIVE_BATTLERS_EXCEPT_ME, battler, ABILITY_SHADOW_TAG)) && Battler_Ability(battleCtx, battler) != ABILITY_SHADOW_TAG) { @@ -3268,7 +3268,7 @@ BOOL Battler_IsTrappedMsg(BattleSystem *battleSys, BattleContext *battleCtx, int BOOL Battler_CanEscape(BattleSystem *battleSys, BattleContext *battleCtx, int battler) { - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); int itemEffect = Battler_HeldItemEffect(battleCtx, battler); BOOL result = FALSE; @@ -3318,11 +3318,11 @@ BOOL Move_Imprisoned(BattleSystem *battleSys, BattleContext *battleCtx, int batt // must declare C89-style to match int i, maxBattlers, side, j; BOOL result = FALSE; - maxBattlers = BattleSystem_MaxBattlers(battleSys); - side = Battler_Side(battleSys, battler); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + side = BattleSystem_GetBattlerSide(battleSys, battler); for (i = 0; i < maxBattlers; i++) { - if (side != Battler_Side(battleSys, i) + if (side != BattleSystem_GetBattlerSide(battleSys, i) && (battleCtx->battleMons[i].moveEffectsMask & MOVE_EFFECT_IMPRISON)) { for (j = 0; j < LEARNED_MOVES_MAX; j++) { if (move == battleCtx->battleMons[i].moves[j]) { @@ -3342,7 +3342,7 @@ BOOL Move_Imprisoned(BattleSystem *battleSys, BattleContext *battleCtx, int batt BOOL BattleSystem_AnyBattlersWithMoveEffect(BattleSystem *battleSys, BattleContext *battleCtx, int effectMask) { BOOL result = FALSE; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (int i = 0; i < maxBattlers; i++) { if (battleCtx->battleMons[i].moveEffectsMask & effectMask) { @@ -3363,7 +3363,7 @@ void BattleSystem_SetupLoop(BattleSystem *battleSys, BattleContext *battleCtx) void BattleSystem_SortMonSpeedOrder(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (int i = 0; i < maxBattlers; i++) { battleCtx->monSpeedOrder[i] = i; @@ -3653,7 +3653,7 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b int subscript; int result; int battler; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); subscript = NULL; result = SWITCH_IN_CHECK_RESULT_CONTINUE; @@ -3661,7 +3661,7 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b switch (battleCtx->switchInCheckState) { case SWITCH_IN_CHECK_STATE_FIELD_WEATHER: if (battleCtx->fieldWeatherChecked == FALSE) { - switch (BattleSystem_FieldWeather(battleSys)) { + switch (BattleSystem_GetFieldWeather(battleSys)) { case OVERWORLD_WEATHER_RAINING: case OVERWORLD_WEATHER_HEAVY_RAIN: case OVERWORLD_WEATHER_THUNDERSTORM: @@ -3712,8 +3712,8 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b case SWITCH_IN_CHECK_STATE_TRACE: for (i = 0; i < maxBattlers; i++) { battler = battleCtx->monSpeedOrder[i]; - int defender1 = BattleSystem_EnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_RIGHT); - int defender2 = BattleSystem_EnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_LEFT); + int defender1 = BattleSystem_GetEnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_RIGHT); + int defender2 = BattleSystem_GetEnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_LEFT); battleCtx->msgDefender = ChooseTraceTarget(battleSys, battleCtx, defender1, defender2); @@ -3823,7 +3823,7 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b int sumDef = 0, sumSpDef = 0; for (j = 0; j < maxBattlers; j++) { - if (Battler_Side(battleSys, battler) != Battler_Side(battleSys, j) + if (BattleSystem_GetBattlerSide(battleSys, battler) != BattleSystem_GetBattlerSide(battleSys, j) && (battleCtx->battleMons[j].statusVolatile & VOLATILE_CONDITION_SUBSTITUTE) == FALSE && battleCtx->battleMons[j].curHP) { sumDef += battleCtx->battleMons[j].defense @@ -3872,7 +3872,7 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b battleCtx->battleMons[battler].anticipationAnnounced = TRUE; for (j = 0; j < maxBattlers; j++) { - if (Battler_Side(battleSys, battler) != Battler_Side(battleSys, j) && battleCtx->battleMons[j].curHP) { + if (BattleSystem_GetBattlerSide(battleSys, battler) != BattleSystem_GetBattlerSide(battleSys, j) && battleCtx->battleMons[j].curHP) { for (k = 0; k < LEARNED_MOVES_MAX; k++) { move = battleCtx->battleMons[j].moves[k]; @@ -3927,7 +3927,7 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b sumEnemyHP = 0; for (j = 0; j < maxBattlers; j++) { - if (Battler_Side(battleSys, battler) != Battler_Side(battleSys, j) + if (BattleSystem_GetBattlerSide(battleSys, battler) != BattleSystem_GetBattlerSide(battleSys, j) && battleCtx->battleMons[j].curHP) { sumEnemyHP += battleCtx->battleMons[j].curHP; @@ -4001,10 +4001,10 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b && Battler_Ability(battleCtx, battler) == ABILITY_FRISK) { battleCtx->battleMons[battler].friskAnnounced = TRUE; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { int enemies[] = { - BattleSystem_EnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_RIGHT), - BattleSystem_EnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_LEFT), + BattleSystem_GetEnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_RIGHT), + BattleSystem_GetEnemyInSlot(battleSys, battler, ENEMY_IN_SLOT_LEFT), }; if (battleCtx->battleMons[enemies[0]].curHP @@ -4177,12 +4177,12 @@ int BattleSystem_TriggerEffectOnSwitch(BattleSystem *battleSys, BattleContext *b int BattleSystem_RandomOpponent(BattleSystem *battleSys, BattleContext *battleCtx, int attacker) { int opponents[2]; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); int chosen; if (battleType & BATTLE_TYPE_DOUBLES) { - opponents[0] = BattleSystem_EnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_RIGHT); - opponents[1] = BattleSystem_EnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_LEFT); + opponents[0] = BattleSystem_GetEnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_RIGHT); + opponents[1] = BattleSystem_GetEnemyInSlot(battleSys, attacker, ENEMY_IN_SLOT_LEFT); int rnd = BattleSystem_RandNext(battleSys) & 1; chosen = opponents[rnd]; @@ -5381,7 +5381,7 @@ BOOL BattleSystem_TriggerHeldItemOnHit(BattleSystem *battleSys, BattleContext *b int itemEffect = Battler_HeldItemEffect(battleCtx, battleCtx->defender); int itemPower = Battler_HeldItemPower(battleCtx, battleCtx->defender, 0); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); switch (itemEffect) { case HOLD_EFFECT_DMG_USER_CONTACT_XFR: @@ -6237,12 +6237,12 @@ BOOL Battler_CanPickCommand(BattleContext *battleSys, int battler) void BattleSystem_SetPokemonCatchData(BattleSystem *battleSys, BattleContext *battleCtx, Pokemon *mon) { - TrainerInfo *trInfo = BattleSystem_TrainerInfo(battleSys, BATTLER_US); - int mapHeader = BattleSystem_MapHeader(battleSys); - int terrain = BattleSystem_Terrain(battleSys); + TrainerInfo *trInfo = BattleSystem_GetTrainerInfo(battleSys, BATTLER_US); + int mapHeader = BattleSystem_GetMapHeader(battleSys); + int terrain = BattleSystem_GetTerrain(battleSys); int ball; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_PAL_PARK) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_PAL_PARK) { ball = Pokemon_GetValue(mon, MON_DATA_POKEBALL, NULL); } else { ball = battleCtx->msgItemTemp; @@ -6269,7 +6269,7 @@ BOOL Battler_SubstituteWasHit(BattleContext *battleCtx, int battler) BOOL BattleSystem_TrainerIsOT(BattleSystem *battleSys, BattleContext *battleCtx) { - TrainerInfo *trInfo = BattleSystem_TrainerInfo(battleSys, BATTLER_US); + TrainerInfo *trInfo = BattleSystem_GetTrainerInfo(battleSys, BATTLER_US); u32 trID = TrainerInfo_ID(trInfo); u32 trGender = TrainerInfo_Gender(trInfo); const charcode_t *trName = TrainerInfo_Name(trInfo); @@ -6285,7 +6285,7 @@ BOOL BattleSystem_TrainerIsOT(BattleSystem *battleSys, BattleContext *battleCtx) BOOL BattleSystem_PokemonIsOT(BattleSystem *battleSys, Pokemon *mon) { - TrainerInfo *trInfo = BattleSystem_TrainerInfo(battleSys, BATTLER_US); + TrainerInfo *trInfo = BattleSystem_GetTrainerInfo(battleSys, BATTLER_US); u32 trID = TrainerInfo_ID(trInfo); u32 trGender = TrainerInfo_Gender(trInfo); const charcode_t *trName = TrainerInfo_Name(trInfo); @@ -6308,7 +6308,7 @@ BOOL BattleSystem_TriggerFormChange(BattleSystem *battleSys, BattleContext *batt int arceusForm; BOOL result = FALSE; - for (i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { battleCtx->msgBattlerTemp = battleCtx->monSpeedOrder[i]; if (battleCtx->battleMons[battleCtx->msgBattlerTemp].species == SPECIES_CASTFORM @@ -6413,19 +6413,19 @@ BOOL BattleSystem_TriggerFormChange(BattleSystem *battleSys, BattleContext *batt && battleCtx->battleMons[battleCtx->msgBattlerTemp].curHP && battleCtx->battleMons[battleCtx->msgBattlerTemp].formNum == GIRATINA_FORM_ORIGIN && ((battleCtx->battleMons[battleCtx->msgBattlerTemp].statusVolatile & VOLATILE_CONDITION_TRANSFORM) - || ((BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_DISTORTION) == FALSE + || ((BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_DISTORTION) == FALSE && battleCtx->battleMons[battleCtx->msgBattlerTemp].heldItem != ITEM_GRISEOUS_ORB))) { if (battleCtx->battleMons[battleCtx->msgBattlerTemp].statusVolatile & VOLATILE_CONDITION_TRANSFORM) { Pokemon *mon = Pokemon_New(HEAP_ID_BATTLE); int target; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { target = battleCtx->battlerActions[battleCtx->msgBattlerTemp][BATTLE_ACTION_CHOOSE_TARGET]; } else { target = battleCtx->msgBattlerTemp ^ 1; } - Pokemon_Copy(BattleSystem_PartyPokemon(battleSys, target, battleCtx->selectedPartySlot[target]), mon); + Pokemon_Copy(BattleSystem_GetPartyPokemon(battleSys, target, battleCtx->selectedPartySlot[target]), mon); // Don't copy the Griseous Orb int tmp = ITEM_NONE; @@ -6464,7 +6464,7 @@ BOOL BattleSystem_TriggerFormChange(BattleSystem *battleSys, BattleContext *batt void BattleSystem_InitPartyOrder(BattleSystem *battleSys, BattleContext *battleCtx) { - for (int i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (int i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { for (int j = 0; j < MAX_PARTY_SIZE; j++) { battleCtx->partyOrder[i][j] = j; } @@ -6479,12 +6479,12 @@ void BattleSystem_SwitchSlots(BattleSystem *battleSys, BattleContext *battleCtx, int i; int tmp; int targetSlot; - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); if (((battleType & BATTLE_TYPE_DOUBLES) && (battleType & BATTLE_TYPE_2vs2_TAG) == FALSE) - || ((battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_TYPE_SOLO_ENEMY) == FALSE)) { - if (BattleSystem_BattlerSlot(battleSys, battler) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2 - || BattleSystem_BattlerSlot(battleSys, battler) == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { + || ((battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_TYPE_SOLO_ENEMY) == FALSE)) { + if (BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2 + || BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { targetSlot = 1; } else { targetSlot = 0; @@ -6667,7 +6667,7 @@ int BattleSystem_CalcMoveDamage(BattleSystem *battleSys, defenderParams.heldItemEffect = BattleSystem_GetItemData(battleCtx, itemTmp, ITEM_PARAM_HOLD_EFFECT); defenderParams.heldItemPower = BattleSystem_GetItemData(battleCtx, itemTmp, ITEM_PARAM_HOLD_EFFECT_PARAM); - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); // Assign power; prefer the input power (used by variable-power moves, e.g. Gyro Ball) if (inPower == 0) { @@ -7262,10 +7262,10 @@ s32 BattleSystem_GetItemData(BattleContext *battleCtx, u16 item, enum ItemDataPa int BattleSystem_SideToBattler(BattleSystem *battleSys, BattleContext *battleCtx, int side) { int battler; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battler = 0; battler < maxBattlers; battler++) { - if (Battler_Side(battleSys, battler) == side) { + if (BattleSystem_GetBattlerSide(battleSys, battler) == side) { break; } } @@ -7278,7 +7278,7 @@ void BattleSystem_SortMonActionOrder(BattleSystem *battleSys, BattleContext *bat int i, j; int battler1, battler2; int ignoreQuickClaw; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (i = 0; i < maxBattlers - 1; i++) { for (j = i + 1; j < maxBattlers; j++) { @@ -7340,7 +7340,7 @@ BOOL BattleSystem_TriggerHeldItemOnPivotMove(BattleSystem *battleSys, BattleCont int attackerItemPower = Battler_HeldItemPower(battleCtx, battleCtx->attacker, ITEM_POWER_CHECK_ALL); int defenderItemEffect = Battler_HeldItemEffect(battleCtx, battleCtx->defender); int defenderItemPower = Battler_HeldItemPower(battleCtx, battleCtx->defender, ITEM_POWER_CHECK_ALL); - int attackingSide = Battler_Side(battleSys, battleCtx->attacker); + int attackingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (attackerItemEffect == HOLD_EFFECT_HP_RESTORE_ON_DMG && (battleCtx->battleStatusMask & SYSCTL_MOVE_HIT) @@ -7396,9 +7396,9 @@ void BattleSystem_DecPPForPressure(BattleContext *battleCtx, int attacker, int d } } -BOOL Battle_RecordingStopped(BattleSystem *battleSys, BattleContext *battleCtx) +BOOL BattleSystem_IsRecordingStopped(BattleSystem *battleSys, BattleContext *battleCtx) { - if (BattleSystem_RecordingStopped(battleSys)) { + if (BattleSystem_GetRecordingStopped(battleSys)) { battleCtx->command = BATTLE_CONTROL_SCREEN_WIPE; return TRUE; } @@ -7411,11 +7411,11 @@ int BattleContext_Get(BattleSystem *battleSys, BattleContext *battleCtx, enum Ba int side; switch (paramID) { case BATTLECTX_SIDE_CONDITIONS_MASK: - side = Battler_Side(battleSys, battler); + side = BattleSystem_GetBattlerSide(battleSys, battler); return battleCtx->sideConditionsMask[side]; case BATTLECTX_SIDE_MIST_TURNS: - side = Battler_Side(battleSys, battler); + side = BattleSystem_GetBattlerSide(battleSys, battler); return battleCtx->sideConditions[side].mistTurns; case BATTLECTX_SELECTED_PARTY_SLOT: @@ -7467,12 +7467,12 @@ void BattleContext_Set(BattleSystem *battleSys, BattleContext *battleCtx, enum B int side; switch (paramID) { case BATTLECTX_SIDE_CONDITIONS_MASK: - side = Battler_Side(battleSys, battler); + side = BattleSystem_GetBattlerSide(battleSys, battler); battleCtx->sideConditionsMask[side] = val; break; case BATTLECTX_SIDE_MIST_TURNS: - side = Battler_Side(battleSys, battler); + side = BattleSystem_GetBattlerSide(battleSys, battler); battleCtx->sideConditions[side].mistTurns = val; break; @@ -7936,18 +7936,18 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) u32 moveStatusFlags; int partySize; Pokemon *mon; - BattleContext *battleCtx = BattleSystem_Context(battleSys); + BattleContext *battleCtx = BattleSystem_GetBattleContext(battleSys); slot1 = battler; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) - || (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) + || (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2)) { slot2 = slot1; } else { - slot2 = BattleSystem_Partner(battleSys, battler); + slot2 = BattleSystem_GetPartner(battleSys, battler); } defender = BattleSystem_RandomOpponent(battleSys, battleCtx, battler); - partySize = BattleSystem_PartyCount(battleSys, battler); + partySize = BattleSystem_GetPartyCount(battleSys, battler); battlersDisregarded = 0; // Stage 1: Loop through all the party slots and find the one with the most favorable @@ -7961,7 +7961,7 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) picked = 6; for (i = 0; i < partySize; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); monSpecies = Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL); if (monSpecies != SPECIES_NONE @@ -7991,7 +7991,7 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) if (picked != 6) { // Determine if this mon has any super-effective moves against the defender - mon = BattleSystem_PartyPokemon(battleSys, battler, picked); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, picked); for (i = 0; i < LEARNED_MOVES_MAX; i++) { move = Pokemon_GetValue(mon, MON_DATA_MOVE1 + i, NULL); @@ -8036,7 +8036,7 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) // which just fainted. Choose the Pokemon with the highest such score, breaking ties by // party-order. for (i = 0; i < partySize; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); monSpecies = Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL); if (monSpecies != SPECIES_NONE @@ -8054,7 +8054,7 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) score = BattleSystem_CalcMoveDamage(battleSys, battleCtx, move, - battleCtx->sideConditionsMask[Battler_Side(battleSys, defender)], + battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, defender)], battleCtx->fieldConditionsMask, 0, 0, @@ -8090,7 +8090,7 @@ int BattleAI_PostKOSwitchIn(BattleSystem *battleSys, int battler) int BattleAI_SwitchedSlot(BattleSystem *battleSys, int battler) { - BattleContext *battleCtx = BattleSystem_Context(battleSys); + BattleContext *battleCtx = BattleSystem_GetBattleContext(battleSys); return battleCtx->aiSwitchedPartySlot[battler]; } diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index 894b746181..76471e492c 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -33,10 +33,10 @@ #include "battle/battle_lib.h" #include "battle/battle_message.h" #include "battle/battle_mon.h" +#include "battle/battle_system.h" #include "battle/btlcmd.h" #include "battle/common.h" #include "battle/ov16_0223B140.h" -#include "battle/ov16_0223DF00.h" #include "battle/ov16_02268520.h" #include "battle/struct_ov16_0225BFFC_decl.h" #include "battle/struct_ov16_0225BFFC_t.h" @@ -579,7 +579,7 @@ BOOL BattleScript_Exec(BattleSystem *battleSys, BattleContext *battleCtx) do { result = sBattleCommands[battleCtx->battleScript[battleCtx->scriptCursor]](battleSys, battleCtx); } while (battleCtx->battleProgressFlag == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE); + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE); battleCtx->battleProgressFlag = FALSE; return result; @@ -615,7 +615,7 @@ static BOOL BtlCmd_PlayEncounterAnimation(BattleSystem *battleSys, BattleContext static BOOL BtlCmd_SetPokemonEncounter(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); @@ -634,7 +634,7 @@ static BOOL BtlCmd_SetPokemonEncounter(BattleSystem *battleSys, BattleContext *b case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSetEncounter(battleSys, i); @@ -662,7 +662,7 @@ static BOOL BtlCmd_SetPokemonEncounter(BattleSystem *battleSys, BattleContext *b static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -679,7 +679,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitShowEncounter(battleSys, i); @@ -693,7 +693,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleSystem_ClearSideExpGain(battleCtx, i); @@ -705,7 +705,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_ATTACKER: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->attacker); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->attacker); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -720,7 +720,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_DEFENDER: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->defender); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->defender); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -735,7 +735,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_SWITCHED_MON: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->switchedMon); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->switchedMon); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -768,7 +768,7 @@ static BOOL BtlCmd_PokemonSlideIn(BattleSystem *battleSys, BattleContext *battle static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -785,7 +785,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitShowPokemon(battleSys, i, NULL, 0); @@ -799,7 +799,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleSystem_ClearSideExpGain(battleCtx, i); @@ -811,7 +811,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_ATTACKER: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->attacker); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->attacker); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -826,7 +826,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_DEFENDER: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->defender); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->defender); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -841,7 +841,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle break; case BTLSCR_SWITCHED_MON: - battlerData = BattleSystem_BattlerData(battleSys, battleCtx->switchedMon); + battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->switchedMon); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleSystem_FlagBattlerExpGain(battleSys, battleCtx, BATTLER_ENEMY_1); @@ -872,7 +872,7 @@ static BOOL BtlCmd_PokemonSendOut(BattleSystem *battleSys, BattleContext *battle static BOOL BtlCmd_RecallPokemon(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -887,7 +887,7 @@ static BOOL BtlCmd_RecallPokemon(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitReturnPokemon(battleSys, battleCtx, i); @@ -897,7 +897,7 @@ static BOOL BtlCmd_RecallPokemon(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) && (battleCtx->battlersSwitchingMask & FlagIndex(i)) == FALSE) { BattleController_EmitReturnPokemon(battleSys, battleCtx, i); @@ -949,7 +949,7 @@ static BOOL BtlCmd_DeletePokemon(BattleSystem *battleSys, BattleContext *battleC static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -959,17 +959,17 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b switch (battlerIn) { default: case BTLSCR_ALL_BATTLERS: - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) { for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType != BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleController_EmitSetTrainerEncounter(battleSys, i); } } } else { for (i = 0; i < maxBattlers; i++) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) && i > 1) { break; } @@ -981,13 +981,13 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitSetTrainerEncounter(battleSys, i); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -996,14 +996,14 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSetTrainerEncounter(battleSys, i); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -1031,7 +1031,7 @@ static BOOL BtlCmd_SetTrainerEncounter(BattleSystem *battleSys, BattleContext *b static BOOL BtlCmd_ThrowPokeball(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1043,8 +1043,8 @@ static BOOL BtlCmd_ThrowPokeball(BattleSystem *battleSys, BattleContext *battleC default: case BTLSCR_ALL_BATTLERS: for (i = 0; i < maxBattlers; i++) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) && i > 1) { break; } @@ -1055,13 +1055,13 @@ static BOOL BtlCmd_ThrowPokeball(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitThrowTrainerBall(battleSys, i, ballTypeIn); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -1070,14 +1070,14 @@ static BOOL BtlCmd_ThrowPokeball(BattleSystem *battleSys, BattleContext *battleC case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitThrowTrainerBall(battleSys, i, ballTypeIn); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -1102,7 +1102,7 @@ static BOOL BtlCmd_ThrowPokeball(BattleSystem *battleSys, BattleContext *battleC static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1113,8 +1113,8 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl default: case BTLSCR_ALL_BATTLERS: for (i = 0; i < maxBattlers; i++) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) && i > 1) { break; } @@ -1125,13 +1125,13 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitSlideTrainerOut(battleSys, i); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -1140,14 +1140,14 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSlideTrainerOut(battleSys, i); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE - && (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) == FALSE + && (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES)) { break; } } @@ -1156,7 +1156,7 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_PLAYER_SLOT_1: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER || battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { @@ -1168,7 +1168,7 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_ENEMY_SLOT_1: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY || battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { @@ -1180,7 +1180,7 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_PLAYER_SLOT_2: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleController_EmitSlideTrainerOut(battleSys, i); @@ -1191,7 +1191,7 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl case BTLSCR_ENEMY_SLOT_2: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { BattleController_EmitSlideTrainerOut(battleSys, i); @@ -1219,7 +1219,7 @@ static BOOL BtlCmd_TrainerSlideOut(BattleSystem *battleSys, BattleContext *battl static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1231,7 +1231,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle default: case BTLSCR_ALL_BATTLERS: for (i = 0; i < maxBattlers; i++) { - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) && i > 1) { break; } @@ -1242,12 +1242,12 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitSlideTrainerIn(battleSys, i, posIn); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { break; } } @@ -1256,12 +1256,12 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSlideTrainerIn(battleSys, i, posIn); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { break; } } @@ -1270,7 +1270,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_PLAYER_SLOT_1: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER || battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1) { @@ -1282,7 +1282,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_ENEMY_SLOT_1: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY || battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1) { @@ -1294,7 +1294,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_PLAYER_SLOT_2: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { BattleController_EmitSlideTrainerIn(battleSys, i, posIn); @@ -1305,7 +1305,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle case BTLSCR_ENEMY_SLOT_2: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_2) { BattleController_EmitSlideTrainerIn(battleSys, i, posIn); @@ -1321,7 +1321,7 @@ static BOOL BtlCmd_TrainerSlideIn(BattleSystem *battleSys, BattleContext *battle static BOOL BtlCmd_BackgroundSlideIn(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); @@ -1345,7 +1345,7 @@ static BOOL BtlCmd_BackgroundSlideIn(BattleSystem *battleSys, BattleContext *bat static BOOL BtlCmd_HealthbarSlideIn(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1361,7 +1361,7 @@ static BOOL BtlCmd_HealthbarSlideIn(BattleSystem *battleSys, BattleContext *batt case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitSlideHealthbarIn(battleSys, battleCtx, i, 0); @@ -1371,7 +1371,7 @@ static BOOL BtlCmd_HealthbarSlideIn(BattleSystem *battleSys, BattleContext *batt case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSlideHealthbarIn(battleSys, battleCtx, i, 0); @@ -1402,7 +1402,7 @@ static BOOL BtlCmd_HealthbarSlideIn(BattleSystem *battleSys, BattleContext *batt static BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1419,7 +1419,7 @@ static BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *battleSys, BattleContext case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { BattleController_EmitSlideHealthbarIn(battleSys, battleCtx, i, wait); @@ -1430,7 +1430,7 @@ static BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *battleSys, BattleContext case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSlideHealthbarIn(battleSys, battleCtx, i, wait); @@ -1461,7 +1461,7 @@ static BOOL BtlCmd_HealthbarSlideInDelay(BattleSystem *battleSys, BattleContext static BOOL BtlCmd_HealthbarSlideOut(BattleSystem *battleSys, BattleContext *battleCtx) { int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattlerData *battlerData; BattleScript_Iter(battleCtx, 1); @@ -1477,7 +1477,7 @@ static BOOL BtlCmd_HealthbarSlideOut(BattleSystem *battleSys, BattleContext *bat case BTLSCR_PLAYER: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE && (battleCtx->battlersSwitchingMask & FlagIndex(i)) == FALSE) { @@ -1488,7 +1488,7 @@ static BOOL BtlCmd_HealthbarSlideOut(BattleSystem *battleSys, BattleContext *bat case BTLSCR_ENEMY: for (i = 0; i < maxBattlers; i++) { - battlerData = BattleSystem_BattlerData(battleSys, i); + battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { BattleController_EmitSlideHealthbarOut(battleSys, i); @@ -1559,7 +1559,7 @@ static void BattleScript_CalcMoveDamage(BattleSystem *battleSys, BattleContext * battleCtx->damage = BattleSystem_CalcMoveDamage(battleSys, battleCtx, battleCtx->moveCur, - battleCtx->sideConditionsMask[Battler_Side(battleSys, battleCtx->defender)], + battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battleCtx->defender)], battleCtx->fieldConditionsMask, battleCtx->movePower, moveType, @@ -1817,13 +1817,13 @@ static BOOL BtlCmd_PlayMoveAnimation(BattleSystem *battleSys, BattleContext *bat move = battleCtx->moveCur; } - if (((battleCtx->battleStatusMask & SYSCTL_PLAYED_MOVE_ANIMATION) == FALSE && BattleSystem_AnimationsOn(battleSys) == TRUE) + if (((battleCtx->battleStatusMask & SYSCTL_PLAYED_MOVE_ANIMATION) == FALSE && BattleSystem_AreAnimationsOn(battleSys) == TRUE) || move == MOVE_TRANSFORM) { battleCtx->battleStatusMask |= SYSCTL_PLAYED_MOVE_ANIMATION; BattleController_EmitPlayMoveAnimation(battleSys, battleCtx, move); } - if (BattleSystem_AnimationsOn(battleSys) == FALSE) { + if (BattleSystem_AreAnimationsOn(battleSys) == FALSE) { BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_wait_move_animation); } @@ -1862,13 +1862,13 @@ static BOOL BtlCmd_PlayMoveAnimationOnMons(BattleSystem *battleSys, BattleContex int attacker = BattleScript_Battler(battleSys, battleCtx, inAttacker); int defender = BattleScript_Battler(battleSys, battleCtx, inDefender); - if (((battleCtx->battleStatusMask & SYSCTL_PLAYED_MOVE_ANIMATION) == FALSE && BattleSystem_AnimationsOn(battleSys) == TRUE) + if (((battleCtx->battleStatusMask & SYSCTL_PLAYED_MOVE_ANIMATION) == FALSE && BattleSystem_AreAnimationsOn(battleSys) == TRUE) || move == MOVE_TRANSFORM) { battleCtx->battleStatusMask |= SYSCTL_PLAYED_MOVE_ANIMATION; BattleController_EmitPlayMoveAnimationA2D(battleSys, battleCtx, move, attacker, defender); } - if (BattleSystem_AnimationsOn(battleSys) == FALSE) { + if (BattleSystem_AreAnimationsOn(battleSys) == FALSE) { BattleScript_Call(battleCtx, NARC_INDEX_BATTLE__SKILL__SUB_SEQ, subscript_wait_move_animation); } @@ -2050,7 +2050,7 @@ static BOOL BtlCmd_WaitButtonABTime(BattleSystem *battleSys, BattleContext *batt BattleScript_Iter(battleCtx, 1); int frames = BattleScript_Read(battleCtx); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) == FALSE) { if ((gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B | PAD_BUTTON_X | PAD_BUTTON_Y)) || TouchScreen_Tapped()) { battleCtx->waitCounter = frames; } @@ -2376,8 +2376,8 @@ static BOOL BtlCmd_CalcCrit(BattleSystem *battleSys, BattleContext *battleCtx) { BattleScript_Iter(battleCtx, 1); - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) - || (BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_FIRST_BATTLE)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) + || (BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_FIRST_BATTLE)) { battleCtx->criticalMul = 1; } else { battleCtx->criticalMul = BattleSystem_CalcCriticalMulti(battleSys, @@ -2412,8 +2412,8 @@ static BOOL BtlCmd_CalcCrit(BattleSystem *battleSys, BattleContext *battleCtx) static BOOL BtlCmd_CalcExpGain(BattleSystem *battleSys, BattleContext *battleCtx) { int jump; - u32 battleType = BattleSystem_BattleType(battleSys); - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, battleCtx->faintedMon); + u32 battleType = BattleSystem_GetBattleType(battleSys); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, battleCtx->faintedMon); BattleScript_Iter(battleCtx, 1); jump = BattleScript_Read(battleCtx); @@ -2423,8 +2423,8 @@ static BOOL BtlCmd_CalcExpGain(BattleSystem *battleSys, BattleContext *battleCtx int totalMonsGainingExp = 0; int totalMonsWithExpShare = 0; - for (i = 0; i < Party_GetCurrentCount(BattleSystem_Party(battleSys, BATTLER_US)); i++) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, BATTLER_US, i); + for (i = 0; i < Party_GetCurrentCount(BattleSystem_GetParty(battleSys, BATTLER_US)); i++) { + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, BATTLER_US, i); if (Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL) && Pokemon_GetValue(mon, MON_DATA_HP, NULL)) { if (battleCtx->sideGetExpMask[(battleCtx->faintedMon >> 1) & 1] & FlagIndex(i)) { @@ -2602,7 +2602,7 @@ static BOOL BtlCmd_Dummy2A(BattleSystem *battleSys, BattleContext *battleCtx) */ static BOOL BtlCmd_ShowParty(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); @@ -2617,9 +2617,9 @@ static BOOL BtlCmd_ShowParty(BattleSystem *battleSys, BattleContext *battleCtx) } for (battler = 0; battler < maxBattlers; battler++) { - if (BattleSystem_BattleType(battleSys) == BATTLE_TYPE_LINK_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) == BATTLE_TYPE_LINK_DOUBLES) { // CompareVarToValue both battlers are done selecting replacements, wait for all other battlers - int partner = BattleSystem_Partner(battleSys, battler); + int partner = BattleSystem_GetPartner(battleSys, battler); if ((switchingMask & FlagIndex(battler)) == FALSE && (switchingMask & FlagIndex(partner)) == FALSE) { switchingMask |= FlagIndex(battler); @@ -2653,7 +2653,7 @@ static BOOL BtlCmd_ShowParty(BattleSystem *battleSys, BattleContext *battleCtx) */ static BOOL BtlCmd_WaitMonSelection(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); int totalSwitching = 0; int battler; @@ -2762,7 +2762,7 @@ static BOOL BtlCmd_SwitchAndUpdateMon(BattleSystem *battleSys, BattleContext *ba static BOOL BtlCmd_GoToIfAnySwitches(BattleSystem *battleSys, BattleContext *battleCtx) { int i; // must declare here to match - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); int jump = BattleScript_Read(battleCtx); @@ -3099,7 +3099,7 @@ static BOOL BtlCmd_ChangeStatStage(BattleSystem *battleSys, BattleContext *battl } else { if ((battleCtx->sideEffectFlags & MOVE_SIDE_EFFECT_CANNOT_PREVENT) == FALSE) { if (battleCtx->attacker != battleCtx->sideEffectMon) { - if (battleCtx->sideConditions[Battler_Side(battleSys, battleCtx->sideEffectMon)].mistTurns) { + if (battleCtx->sideConditions[BattleSystem_GetBattlerSide(battleSys, battleCtx->sideEffectMon)].mistTurns) { battleCtx->msgBuffer.id = BattleStrings_Text_PokemonIsProtectedByMist; // "{0} is protected by Mist!" battleCtx->msgBuffer.tags = TAG_NICKNAME; battleCtx->msgBuffer.params[0] = BattleSystem_NicknameTag(battleCtx, battleCtx->sideEffectMon); @@ -3377,7 +3377,7 @@ static BOOL BtlCmd_CheckAbility(BattleSystem *battleSys, BattleContext *battleCt int battler; if (inBattler == BTLSCR_ALL_BATTLERS) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battler = 0; battler < maxBattlers; battler++) { if (op == CHECK_HAVE) { @@ -3708,7 +3708,7 @@ static BOOL BtlCmd_CallFromVar(BattleSystem *battleSys, BattleContext *battleCtx static BOOL BtlCmd_SetMirrorMove(BattleSystem *battleSys, BattleContext *battleCtx) { int move = MOVE_NONE; - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); BattleScript_Iter(battleCtx, 1); @@ -3760,7 +3760,7 @@ static BOOL BtlCmd_ResetAllStatChanges(BattleSystem *battleSys, BattleContext *b { BattleScript_Iter(battleCtx, 1); - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (int i = 0; i < maxBattlers; i++) { for (int j = BATTLE_STAT_HP; j < BATTLE_STAT_MAX; j++) { battleCtx->battleMons[i].statBoosts[j] = DEFAULT_STAT_STAGE; @@ -3939,10 +3939,10 @@ static BOOL BtlCmd_PayPrizeMoney(BattleSystem *battleSys, BattleContext *battleC money += BattleScript_CalcPrizeMoney(battleSys, battleCtx, BATTLER_ENEMY_2); } - TrainerInfo_GiveMoney(BattleSystem_TrainerInfo(battleSys, BATTLER_US), money); + TrainerInfo_GiveMoney(BattleSystem_GetTrainerInfo(battleSys, BATTLER_US), money); } else { money = BattleSystem_CalcMoneyPenalty(battleSys->parties[BATTLER_US], battleSys->trainerInfo[BATTLER_US]); - TrainerInfo_TakeMoney(BattleSystem_TrainerInfo(battleSys, BATTLER_US), money); + TrainerInfo_TakeMoney(BattleSystem_GetTrainerInfo(battleSys, BATTLER_US), money); } if (money) { @@ -3976,7 +3976,7 @@ static BOOL BtlCmd_PlayBattleAnimation(BattleSystem *battleSys, BattleContext *b int inBattler = BattleScript_Read(battleCtx); int effect = BattleScript_Read(battleCtx); - if (BattleSystem_AnimationsOn(battleSys) == TRUE + if (BattleSystem_AreAnimationsOn(battleSys) == TRUE || effect == BATTLE_ANIMATION_SUB_OUT || effect == BATTLE_ANIMATION_SUB_IN || effect == BATTLE_ANIMATION_SUBSTITUTE_OUT @@ -4012,7 +4012,7 @@ static BOOL BtlCmd_PlayBattleAnimationOnMons(BattleSystem *battleSys, BattleCont int inDefender = BattleScript_Read(battleCtx); int effect = BattleScript_Read(battleCtx); - if (BattleSystem_AnimationsOn(battleSys) == TRUE + if (BattleSystem_AreAnimationsOn(battleSys) == TRUE || effect == BATTLE_ANIMATION_SUB_OUT || effect == BATTLE_ANIMATION_SUB_IN || effect == BATTLE_ANIMATION_SUBSTITUTE_OUT @@ -4049,7 +4049,7 @@ static BOOL BtlCmd_PlayBattleAnimationFromVar(BattleSystem *battleSys, BattleCon int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); int *effect = BattleScript_VarAddress(battleSys, battleCtx, var); - if ((BattleSystem_AnimationsOn(battleSys) == TRUE + if ((BattleSystem_AreAnimationsOn(battleSys) == TRUE || var == BATTLE_ANIMATION_SUB_OUT // bug: this should be *effect, not var || var == BATTLE_ANIMATION_SUB_IN // bug: this should be *effect, not var || *effect == BATTLE_ANIMATION_SUBSTITUTE_OUT @@ -4421,7 +4421,7 @@ static BOOL BtlCmd_AddPayDayMoney(BattleSystem *battleSys, BattleContext *battle battleCtx->msgTemp = PAYDAY_MAX; } - TrainerInfo_GiveMoney(BattleSystem_TrainerInfo(battleSys, BATTLER_US), battleCtx->msgTemp); + TrainerInfo_GiveMoney(BattleSystem_GetTrainerInfo(battleSys, BATTLER_US), battleCtx->msgTemp); return FALSE; } @@ -4441,7 +4441,7 @@ static BOOL BtlCmd_TryLightScreen(BattleSystem *battleSys, BattleContext *battle BattleScript_Iter(battleCtx, 1); int jump = BattleScript_Read(battleCtx); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (battleCtx->sideConditionsMask[side] & SIDE_CONDITION_LIGHT_SCREEN) { BattleScript_Iter(battleCtx, jump); @@ -4484,7 +4484,7 @@ static BOOL BtlCmd_TryReflect(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); int jump = BattleScript_Read(battleCtx); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (battleCtx->sideConditionsMask[side] & SIDE_CONDITION_REFLECT) { BattleScript_Iter(battleCtx, jump); @@ -4527,7 +4527,7 @@ static BOOL BtlCmd_TryMist(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); int jump = BattleScript_Read(battleCtx); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (battleCtx->sideConditionsMask[side] & SIDE_CONDITION_MIST) { BattleScript_Iter(battleCtx, jump); @@ -4842,8 +4842,8 @@ static BOOL BtlCmd_Counter(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); int lastAttacker = ATTACKER_TURN_FLAGS.physicalDamageLastAttacker; - int attackingSide = Battler_Side(battleSys, battleCtx->attacker); - int defendingSide = Battler_Side(battleSys, lastAttacker); + int attackingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); + int defendingSide = BattleSystem_GetBattlerSide(battleSys, lastAttacker); if (ATTACKER_TURN_FLAGS.physicalDamageTakenFrom[lastAttacker] && attackingSide != defendingSide @@ -4895,8 +4895,8 @@ static BOOL BtlCmd_MirrorCoat(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); int lastAttacker = ATTACKER_TURN_FLAGS.specialDamageLastAttacker; - int attackingSide = Battler_Side(battleSys, battleCtx->attacker); - int defendingSide = Battler_Side(battleSys, lastAttacker); + int attackingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); + int defendingSide = BattleSystem_GetBattlerSide(battleSys, lastAttacker); if (ATTACKER_TURN_FLAGS.specialDamageTakenFrom[lastAttacker] && attackingSide != defendingSide @@ -5254,7 +5254,7 @@ static BOOL BtlCmd_TrySpite(BattleSystem *battleSys, BattleContext *battleCtx) */ static BOOL BtlCmd_TryPartyStatusRefresh(BattleSystem *battleSys, BattleContext *battleCtx) { - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); BattleScript_Iter(battleCtx, 1); battleCtx->calcTemp = 0; @@ -5321,10 +5321,10 @@ static BOOL BtlCmd_TryStealItem(BattleSystem *battleSys, BattleContext *battleCt int jumpOnFail = BattleScript_Read(battleCtx); int jumpStickyHold = BattleScript_Read(battleCtx); - u32 battleType = BattleSystem_BattleType(battleSys); - int attackingSide = Battler_Side(battleSys, battleCtx->attacker); + u32 battleType = BattleSystem_GetBattleType(battleSys); + int attackingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); - if (Battler_Side(battleSys, battleCtx->attacker) && (battleType & BATTLE_TYPE_RESTORE_ITEMS_AFTER) == FALSE) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) && (battleType & BATTLE_TYPE_RESTORE_ITEMS_AFTER) == FALSE) { // AI trainers are unable to steal items outside of the Battle Frontier. PvP trainers can steal items. BattleScript_Iter(battleCtx, jumpOnFail); } else if (battleCtx->sideConditions[attackingSide].knockedOffItemsMask & FlagIndex(battleCtx->selectedPartySlot[battleCtx->attacker])) { @@ -5467,7 +5467,7 @@ static BOOL BtlCmd_TryWhirlwind(BattleSystem *battleSys, BattleContext *battleCt { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - u32 battleType = BattleSystem_BattleType(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); if (battleType & BATTLE_TYPE_TRAINER) { Party *defenderParty; @@ -5476,11 +5476,11 @@ static BOOL BtlCmd_TryWhirlwind(BattleSystem *battleSys, BattleContext *battleCt int eligibleMons = 0, maxActiveMons, i, partyStart, partyEnd, max; int selectedSlot1, selectedSlot2; - defenderParty = BattleSystem_Party(battleSys, battleCtx->defender); - defenderPartyCount = BattleSystem_PartyCount(battleSys, battleCtx->defender); + defenderParty = BattleSystem_GetParty(battleSys, battleCtx->defender); + defenderPartyCount = BattleSystem_GetPartyCount(battleSys, battleCtx->defender); if ((battleType & BATTLE_TYPE_2vs2) - || ((battleType & BATTLE_TYPE_TAG) && Battler_Side(battleSys, battleCtx->defender))) { + || ((battleType & BATTLE_TYPE_TAG) && BattleSystem_GetBattlerSide(battleSys, battleCtx->defender))) { // There are two battlers out at one time, but only one of these belongs to each trainer. partyStart = 0; partyEnd = defenderPartyCount; @@ -5495,7 +5495,7 @@ static BOOL BtlCmd_TryWhirlwind(BattleSystem *battleSys, BattleContext *battleCt max = defenderPartyCount; maxActiveMons = 2; selectedSlot1 = battleCtx->selectedPartySlot[battleCtx->defender]; - selectedSlot2 = battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battleCtx->defender)]; + selectedSlot2 = battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battleCtx->defender)]; } else { // There is only one active battler (singles). partyStart = 0; @@ -5614,7 +5614,7 @@ static BOOL BtlCmd_TrySpikes(BattleSystem *battleSys, BattleContext *battleCtx) { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int defendingSide = Battler_Side(battleSys, battleCtx->attacker) ^ 1; + int defendingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) ^ 1; if (battleCtx->sideConditions[defendingSide].spikesLayers == 3) { battleCtx->selfTurnFlags[battleCtx->attacker].skipPressureCheck = TRUE; @@ -5654,7 +5654,7 @@ static BOOL BtlCmd_CheckSpikes(BattleSystem *battleSys, BattleContext *battleCtx int jumpOnFail = BattleScript_Read(battleCtx); int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); if (battleCtx->sideConditions[side].spikesLayers && battleCtx->battleMons[battler].curHP) { battleCtx->hpCalcTemp = (5 - battleCtx->sideConditions[side].spikesLayers) * 2; @@ -5688,7 +5688,7 @@ static BOOL BtlCmd_TryPerishSong(BattleSystem *battleSys, BattleContext *battleC { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); battleCtx->calcTemp = maxBattlers; @@ -5755,7 +5755,7 @@ static BOOL BtlCmd_GoToIfValidMon(BattleSystem *battleSys, BattleContext *battle int jump = BattleScript_Read(battleCtx); u32 *var = BattleScript_VarAddress(battleSys, battleCtx, srcVar); - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); if (*var < maxBattlers) { BattleScript_Iter(battleCtx, jump); @@ -5980,7 +5980,7 @@ static BOOL BtlCmd_TrySafeguard(BattleSystem *battleSys, BattleContext *battleCt { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (battleCtx->sideConditionsMask[side] & SIDE_CONDITION_SAFEGUARD) { BattleScript_Iter(battleCtx, jumpOnFail); @@ -6125,7 +6125,7 @@ static BOOL BtlCmd_TryReplaceFaintedMon(BattleSystem *battleSys, BattleContext * */ static BOOL BtlCmd_RapidSpin(BattleSystem *battleSys, BattleContext *battleCtx) { - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); if (ATTACKING_MON.statusVolatile & VOLATILE_CONDITION_BIND) { ATTACKING_MON.statusVolatile &= ~VOLATILE_CONDITION_BIND; @@ -6293,7 +6293,7 @@ static BOOL BtlCmd_TryFutureSight(BattleSystem *battleSys, BattleContext *battle int jumpOnFail = BattleScript_Read(battleCtx); if (battleCtx->fieldConditions.futureSightTurns[battleCtx->defender] == 0) { - int side = Battler_Side(battleSys, battleCtx->defender); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); battleCtx->sideConditionsMask[side] |= SIDE_CONDITION_FUTURE_SIGHT; battleCtx->fieldConditions.futureSightTurns[battleCtx->defender] = 3; battleCtx->fieldConditions.futureSightMove[battleCtx->defender] = battleCtx->moveCur; @@ -6405,7 +6405,7 @@ static BOOL BtlCmd_BeatUp(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); - partyCount = BattleSystem_PartyCount(battleSys, battleCtx->attacker); + partyCount = BattleSystem_GetPartyCount(battleSys, battleCtx->attacker); if (battleCtx->multiHitNumHits == 0) { battleCtx->multiHitNumHits = 2; // not actually used, just set to make multi-hit stuff work @@ -6414,7 +6414,7 @@ static BOOL BtlCmd_BeatUp(BattleSystem *battleSys, BattleContext *battleCtx) while (TRUE) { // Find the next mon to deal Beat Up damage - mon = BattleSystem_PartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); + mon = BattleSystem_GetPartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); if (BeatUpEligibleMon(battleCtx, mon)) { break; } @@ -6423,7 +6423,7 @@ static BOOL BtlCmd_BeatUp(BattleSystem *battleSys, BattleContext *battleCtx) } } - mon = BattleSystem_PartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); + mon = BattleSystem_GetPartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); species = Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL); form = Pokemon_GetValue(mon, MON_DATA_FORM, NULL); level = Pokemon_GetValue(mon, MON_DATA_LEVEL, NULL); @@ -6453,7 +6453,7 @@ static BOOL BtlCmd_BeatUp(BattleSystem *battleSys, BattleContext *battleCtx) // Check if there are more eligible mons in the back to attack if (battleCtx->beatUpCounter < partyCount) { while (TRUE) { - mon = BattleSystem_PartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); + mon = BattleSystem_GetPartyPokemon(battleSys, battleCtx->attacker, battleCtx->beatUpCounter); if (BeatUpEligibleMon(battleCtx, mon)) { break; } @@ -6487,7 +6487,7 @@ static BOOL BtlCmd_FollowMe(BattleSystem *battleSys, BattleContext *battleCtx) { BattleScript_Iter(battleCtx, 1); - int side = Battler_Side(battleSys, battleCtx->attacker); + int side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); battleCtx->sideConditions[side].followMe = TRUE; FOLLOW_ME_USER(side) = battleCtx->attacker; @@ -6517,7 +6517,7 @@ static BOOL BtlCmd_TryHelpingHand(BattleSystem *battleSys, BattleContext *battle { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int battleType = BattleSystem_BattleType(battleSys); + int battleType = BattleSystem_GetBattleType(battleSys); if (battleType & BATTLE_TYPE_DOUBLES) { int partner = BattleScript_Battler(battleSys, battleCtx, BTLSCR_ATTACKER_PARTNER); @@ -6564,11 +6564,11 @@ static BOOL BtlCmd_TrySwapItems(BattleSystem *battleSys, BattleContext *battleCt int jumpOnFail = BattleScript_Read(battleCtx); int jumpStickyHold = BattleScript_Read(battleCtx); - u32 battleType = BattleSystem_BattleType(battleSys); - int attacking = Battler_Side(battleSys, battleCtx->attacker); - int defending = Battler_Side(battleSys, battleCtx->defender); + u32 battleType = BattleSystem_GetBattleType(battleSys); + int attacking = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); + int defending = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); - if (Battler_Side(battleSys, battleCtx->attacker) && (battleType & BATTLE_TYPE_RESTORE_ITEMS_AFTER) == FALSE) { + if (BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) && (battleType & BATTLE_TYPE_RESTORE_ITEMS_AFTER) == FALSE) { BattleScript_Iter(battleCtx, jumpOnFail); } else if ((battleCtx->sideConditions[attacking].knockedOffItemsMask & FlagIndex(battleCtx->selectedPartySlot[battleCtx->attacker])) || (battleCtx->sideConditions[defending].knockedOffItemsMask & FlagIndex(battleCtx->selectedPartySlot[battleCtx->defender]))) { @@ -6640,14 +6640,14 @@ static BOOL BtlCmd_TryAssist(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); jumpOnFail = BattleScript_Read(battleCtx); numMoves = 0; - partyCount = BattleSystem_PartyCount(battleSys, battleCtx->attacker); + partyCount = BattleSystem_GetPartyCount(battleSys, battleCtx->attacker); for (i = 0; i < partyCount; i++) { if (i == battleCtx->selectedPartySlot[battleCtx->attacker]) { continue; } - mon = BattleSystem_PartyPokemon(battleSys, battleCtx->attacker, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battleCtx->attacker, i); if (Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_EGG) { for (j = 0; j < LEARNED_MOVES_MAX; j++) { @@ -6687,7 +6687,7 @@ static BOOL BtlCmd_TrySetMagicCoat(BattleSystem *battleSys, BattleContext *battl int jumpOnFail = BattleScript_Read(battleCtx); u32 numBattlers = 0; - for (int i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (int i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { if (battleCtx->battleMons[i].curHP) { numBattlers++; } @@ -6713,7 +6713,7 @@ static BOOL BtlCmd_MagicCoat(BattleSystem *battleSys, BattleContext *battleCtx) { BattleScript_Iter(battleCtx, 1); - int target = Battler_Side(battleSys, battleCtx->attacker); + int target = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); int attacker = battleCtx->attacker; battleCtx->magicCoatMon = attacker; @@ -6776,7 +6776,7 @@ static BOOL BtlCmd_TryBreakScreens(BattleSystem *battleSys, BattleContext *battl { BattleScript_Iter(battleCtx, 1); int jumpIfNoScreens = BattleScript_Read(battleCtx); - int defending = Battler_Side(battleSys, battleCtx->defender); + int defending = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); if ((battleCtx->sideConditionsMask[defending] & SIDE_CONDITION_REFLECT) || (battleCtx->sideConditionsMask[defending] & SIDE_CONDITION_LIGHT_SCREEN)) { @@ -6834,7 +6834,7 @@ static BOOL BtlCmd_TryKnockOff(BattleSystem *battleSys, BattleContext *battleCtx { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int defending = Battler_Side(battleSys, battleCtx->defender); + int defending = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); if (DEFENDING_MON.heldItem && Battler_IgnorableAbility(battleCtx, battleCtx->attacker, battleCtx->defender, ABILITY_STICKY_HOLD) == TRUE) { battleCtx->msgBuffer.id = BattleStrings_Text_PokemonsAbilityMadeMoveIneffective; // "{0}'s {1} made {2} ineffective!" @@ -6908,8 +6908,8 @@ static BOOL BtlCmd_TryImprison(BattleSystem *battleSys, BattleContext *battleCtx BattleScript_Iter(battleCtx, 1); jumpOnFail = BattleScript_Read(battleCtx); - defender1 = BattleSystem_EnemyInSlot(battleSys, battleCtx->attacker, ENEMY_IN_SLOT_RIGHT); - defender2 = BattleSystem_EnemyInSlot(battleSys, battleCtx->attacker, ENEMY_IN_SLOT_LEFT); + defender1 = BattleSystem_GetEnemyInSlot(battleSys, battleCtx->attacker, ENEMY_IN_SLOT_RIGHT); + defender2 = BattleSystem_GetEnemyInSlot(battleSys, battleCtx->attacker, ENEMY_IN_SLOT_LEFT); battleCtx->battleMons[defender1].moveEffectsMask |= MOVE_EFFECT_IMPRISONED; battleCtx->battleMons[defender2].moveEffectsMask |= MOVE_EFFECT_IMPRISONED; @@ -6917,12 +6917,12 @@ static BOOL BtlCmd_TryImprison(BattleSystem *battleSys, BattleContext *battleCtx if (ATTACKING_MON.moveEffectsMask & MOVE_EFFECT_IMPRISON) { BattleScript_Iter(battleCtx, jumpOnFail); } else { - attackingSide = Battler_Side(battleSys, battleCtx->attacker); - maxBattlers = BattleSystem_MaxBattlers(battleSys); + attackingSide = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // Check that the Imprisoning mon knows at least 1 move that the active defenders know for (battler = 0; battler < maxBattlers; battler++) { - if (attackingSide != Battler_Side(battleSys, battler)) { + if (attackingSide != BattleSystem_GetBattlerSide(battleSys, battler)) { for (i = 0; i < LEARNED_MOVES_MAX; i++) { for (j = 0; j < LEARNED_MOVES_MAX; j++) { if (ATTACKING_MON.moves[i] == battleCtx->battleMons[battler].moves[j] @@ -6969,10 +6969,10 @@ static BOOL BtlCmd_TryGrudge(BattleSystem *battleSys, BattleContext *battleCtx) { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int defending = Battler_Side(battleSys, battleCtx->defender); + int defending = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); if ((FAINTED_MON.moveEffectsMask & MOVE_EFFECT_GRUDGE) - && Battler_Side(battleSys, battleCtx->attacker) != Battler_Side(battleSys, battleCtx->faintedMon) + && BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) != BattleSystem_GetBattlerSide(battleSys, battleCtx->faintedMon) && ATTACKING_MON.curHP && battleCtx->moveTemp != MOVE_STRUGGLE) { int moveSlot = ATTACKER_MOVE_SLOT; @@ -7005,7 +7005,7 @@ static BOOL BtlCmd_TrySnatch(BattleSystem *battleSys, BattleContext *battleCtx) int jumpOnFail = BattleScript_Read(battleCtx); u32 numBattlers = 0; - for (int i = 0; i < BattleSystem_MaxBattlers(battleSys); i++) { + for (int i = 0; i < BattleSystem_GetMaxBattlers(battleSys); i++) { if (battleCtx->battleMons[i].curHP) { numBattlers++; } @@ -7117,7 +7117,7 @@ static BOOL BtlCmd_TryPursuit(BattleSystem *battleSys, BattleContext *battleCtx) BattleScript_Iter(battleCtx, 1); jumpIfNoTrigger = BattleScript_Read(battleCtx); - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); // Go through all of the battlers while trying to switch and check for any of them using Pursuit. // Only consider battlers which would move after us and are not currently asleep, frozen, or Truant. @@ -7126,7 +7126,7 @@ static BOOL BtlCmd_TryPursuit(BattleSystem *battleSys, BattleContext *battleCtx) && battleCtx->battleMons[i].curHP && (battleCtx->battleMons[i].status & (MON_CONDITION_SLEEP | MON_CONDITION_FREEZE)) == FALSE && Battler_CheckTruant(battleCtx, i) == FALSE - && Battler_Side(battleSys, i) != Battler_Side(battleSys, battleCtx->switchedMon)) { + && BattleSystem_GetBattlerSide(battleSys, i) != BattleSystem_GetBattlerSide(battleSys, battleCtx->switchedMon)) { if (battleCtx->battleMons[i].moveEffectsData.encoredMove && battleCtx->battleMons[i].moveEffectsData.encoredMove == battleCtx->battleMons[i].moves[battleCtx->battleMons[i].moveEffectsData.encoredMoveSlot]) { move = battleCtx->battleMons[i].moveEffectsData.encoredMove; @@ -7379,8 +7379,8 @@ static BOOL BtlCmd_TryMetalBurst(BattleSystem *battleSys, BattleContext *battleC { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int attacking = Battler_Side(battleSys, battleCtx->attacker); - int defending = Battler_Side(battleSys, ATTACKER_TURN_FLAGS.lastAttacker); + int attacking = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); + int defending = BattleSystem_GetBattlerSide(battleSys, ATTACKER_TURN_FLAGS.lastAttacker); if (ATTACKER_TURN_FLAGS.lastDamageTaken && attacking != defending @@ -7651,7 +7651,7 @@ static BOOL BtlCmd_CheckSideCondition(BattleSystem *battleSys, BattleContext *ba int jump = BattleScript_Read(battleCtx); int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); int val; switch (op) { @@ -7818,7 +7818,7 @@ static BOOL BtlCmd_TryToxicSpikes(BattleSystem *battleSys, BattleContext *battle { BattleScript_Iter(battleCtx, 1); int jumpOnFail = BattleScript_Read(battleCtx); - int defending = Battler_Side(battleSys, battleCtx->attacker) ^ 1; + int defending = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker) ^ 1; if (battleCtx->sideConditions[defending].toxicSpikesLayers == 2) { ATTACKER_SELF_TURN_FLAGS.skipPressureCheck = TRUE; @@ -7858,7 +7858,7 @@ static BOOL BtlCmd_CheckToxicSpikes(BattleSystem *battleSys, BattleContext *batt int jumpIfNoToxicSpikes = BattleScript_Read(battleCtx); int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); if (battleCtx->sideConditions[side].toxicSpikesLayers) { battleCtx->calcTemp = battleCtx->sideConditions[side].toxicSpikesLayers; @@ -7905,7 +7905,7 @@ static BOOL BtlCmd_CheckIgnorableAbility(BattleSystem *battleSys, BattleContext int battler; if (inBattler == BTLSCR_ALL_BATTLERS) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (int i = 0; i < maxBattlers; i++) { battler = battleCtx->monSpeedOrder[i]; @@ -7966,7 +7966,7 @@ static BOOL BtlCmd_IfSameSide(BattleSystem *battleSys, BattleContext *battleCtx) int battler1 = BattleScript_Battler(battleSys, battleCtx, inBattler1); int battler2 = BattleScript_Battler(battleSys, battleCtx, inBattler2); - if (Battler_Side(battleSys, battler1) == Battler_Side(battleSys, battler2)) { + if (BattleSystem_GetBattlerSide(battleSys, battler1) == BattleSystem_GetBattlerSide(battleSys, battler2)) { BattleScript_Iter(battleCtx, jumpIfSameSide); } @@ -8013,8 +8013,8 @@ static BOOL BtlCmd_GenerateEndOfBattleItem(BattleSystem *battleSys, BattleContex BattleScript_Iter(battleCtx, 1); - for (i = 0; i < BattleSystem_PartyCount(battleSys, BATTLER_US); i++) { - mon = BattleSystem_PartyPokemon(battleSys, BATTLER_US, i); + for (i = 0; i < BattleSystem_GetPartyCount(battleSys, BATTLER_US); i++) { + mon = BattleSystem_GetPartyPokemon(battleSys, BATTLER_US, i); species = Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL); item = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); ability = Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL); @@ -8229,7 +8229,7 @@ static BOOL BtlCmd_TryCamouflage(BattleSystem *battleSys, BattleContext *battleC return FALSE; } - int terrain = BattleSystem_Terrain(battleSys); + int terrain = BattleSystem_GetTerrain(battleSys); if (terrain > TERRAIN_SPECIAL) { terrain = TERRAIN_SPECIAL; } @@ -8262,7 +8262,7 @@ static BOOL BtlCmd_GetTerrainMove(BattleSystem *battleSys, BattleContext *battle { BattleScript_Iter(battleCtx, 1); - int terrain = BattleSystem_Terrain(battleSys); + int terrain = BattleSystem_GetTerrain(battleSys); if (terrain > TERRAIN_SPECIAL) { terrain = TERRAIN_SPECIAL; } @@ -8289,7 +8289,7 @@ static BOOL BtlCmd_GetTerrainSecondaryEffect(BattleSystem *battleSys, BattleCont { BattleScript_Iter(battleCtx, 1); - int terrain = BattleSystem_Terrain(battleSys); + int terrain = BattleSystem_GetTerrain(battleSys); if (terrain > TERRAIN_SPECIAL) { terrain = TERRAIN_SPECIAL; } @@ -8445,7 +8445,7 @@ static BOOL BtlCmd_WaitYesNoResult(BattleSystem *battleSys, BattleContext *battl */ static BOOL BtlCmd_ChoosePokemonMenu(BattleSystem *battleSys, BattleContext *battleCtx) { - BattleSystem_MaxBattlers(battleSys); // must stay to match + BattleSystem_GetMaxBattlers(battleSys); // must stay to match BattleScript_Iter(battleCtx, 1); BattleController_EmitShowPartyMenu(battleSys, battleCtx, BATTLER_US, 0, 0, 6); @@ -8502,7 +8502,7 @@ static BOOL BtlCmd_SetLinkBattleResult(BattleSystem *battleSys, BattleContext *b { BattleScript_Iter(battleCtx, 1); - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_LINK) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_LINK) { BattleController_EmitSubmitResult(battleSys); } @@ -8531,7 +8531,7 @@ static BOOL BtlCmd_CheckStealthRock(BattleSystem *battleSys, BattleContext *batt int jumpNoEffect = BattleScript_Read(battleCtx); int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); - int side = Battler_Side(battleSys, battler); + int side = BattleSystem_GetBattlerSide(battleSys, battler); int type1 = BattleMon_Get(battleCtx, battler, BATTLEMON_TYPE_1, NULL); int type2 = BattleMon_Get(battleCtx, battler, BATTLEMON_TYPE_2, NULL); @@ -8628,10 +8628,10 @@ static BOOL BtlCmd_CheckChatterActivation(BattleSystem *battleSys, BattleContext && DEFENDING_MON.curHP && (ATTACKING_MON.statusVolatile & VOLATILE_CONDITION_TRANSFORM) == FALSE) { int chatter; - if ((BattleSystem_BattleStatus(battleSys) & BATTLE_STATUS_RECORDING) == FALSE) { - chatter = Sound_GetChatterActivationParameter(BattleSystem_ChatotVoice(battleSys, battleCtx->attacker)); + if ((BattleSystem_GetBattleStatusMask(battleSys) & BATTLE_STATUS_RECORDING) == FALSE) { + chatter = Sound_GetChatterActivationParameter(BattleSystem_GetChatotCry(battleSys, battleCtx->attacker)); } else { - chatter = BattleSystem_RecordedChatter(battleSys, battleCtx->attacker); + chatter = BattleSystem_GetRecordedChatter(battleSys, battleCtx->attacker); } u16 effectChance; @@ -8979,7 +8979,7 @@ static BOOL BtlCmd_TriggerAbilityOnHit(BattleSystem *battleSys, BattleContext *b */ static BOOL BtlCmd_SpriteToOAM(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); int battler = BattleScript_Read(battleCtx); @@ -8987,7 +8987,7 @@ static BOOL BtlCmd_SpriteToOAM(BattleSystem *battleSys, BattleContext *battleCtx switch (battler) { case BTLSCR_PLAYER: for (int i = 0; i < maxBattlers; i++) { - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_THEM) == FALSE) { BattleController_EmitSpriteToOAM(battleSys, i); } @@ -8996,7 +8996,7 @@ static BOOL BtlCmd_SpriteToOAM(BattleSystem *battleSys, BattleContext *battleCtx case BTLSCR_ENEMY: for (int i = 0; i < maxBattlers; i++) { - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_THEM) { BattleController_EmitSpriteToOAM(battleSys, i); } @@ -9024,7 +9024,7 @@ static BOOL BtlCmd_SpriteToOAM(BattleSystem *battleSys, BattleContext *battleCtx */ static BOOL BtlCmd_OAMToSprite(BattleSystem *battleSys, BattleContext *battleCtx) { - int maxBattlers = BattleSystem_MaxBattlers(battleSys); + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); BattleScript_Iter(battleCtx, 1); int battler = BattleScript_Read(battleCtx); @@ -9032,7 +9032,7 @@ static BOOL BtlCmd_OAMToSprite(BattleSystem *battleSys, BattleContext *battleCtx switch (battler) { case BTLSCR_PLAYER: for (int i = 0; i < maxBattlers; i++) { - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); if ((battlerData->battlerType & BATTLER_THEM) == FALSE) { BattleController_EmitOAMToSprite(battleSys, i); } @@ -9041,7 +9041,7 @@ static BOOL BtlCmd_OAMToSprite(BattleSystem *battleSys, BattleContext *battleCtx case BTLSCR_ENEMY: for (int i = 0; i < maxBattlers; i++) { - BattlerData *battlerData = BattleSystem_BattlerData(battleSys, i); + BattlerData *battlerData = BattleSystem_GetBattlerData(battleSys, i); if (battlerData->battlerType & BATTLER_THEM) { BattleController_EmitOAMToSprite(battleSys, i); } @@ -9083,14 +9083,14 @@ static BOOL BtlCmd_CheckBlackOut(BattleSystem *battleSys, BattleContext *battleC inBattler = BattleScript_Read(battleCtx); jumpIfWhiteOut = BattleScript_Read(battleCtx); - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); battler = BattleScript_Battler(battleSys, battleCtx, inBattler); if ((battleType & BATTLE_TYPE_2vs2) - || ((battleType & BATTLE_TYPE_TAG) && Battler_Side(battleSys, battler))) { - Party *party1 = BattleSystem_Party(battleSys, battler); - Party *party2 = BattleSystem_Party(battleSys, BattleSystem_Partner(battleSys, battler)); - battlerData = BattleSystem_BattlerData(battleSys, battler); + || ((battleType & BATTLE_TYPE_TAG) && BattleSystem_GetBattlerSide(battleSys, battler))) { + Party *party1 = BattleSystem_GetParty(battleSys, battler); + Party *party2 = BattleSystem_GetParty(battleSys, BattleSystem_GetPartner(battleSys, battler)); + battlerData = BattleSystem_GetBattlerData(battleSys, battler); for (i = 0; i < Party_GetCurrentCount(party1); i++) { mon = Party_GetPokemonBySlotIndex(party1, i); @@ -9104,8 +9104,8 @@ static BOOL BtlCmd_CheckBlackOut(BattleSystem *battleSys, BattleContext *battleC // Don't consider the second slot if we have a partner // first condition here does not match as an AND of NEQs, must be a NOT of an OR of EQs if (!(battleType == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER || battleType == BATTLE_TYPE_AI_PARTNER) - || Battler_Side(battleSys, battler) != BATTLER_US - || BattleSystem_BattlerSlot(battleSys, battler) != BATTLER_PLAYER_2) { + || BattleSystem_GetBattlerSide(battleSys, battler) != BATTLER_US + || BattleSystem_GetBattlerType(battleSys, battler) != BATTLER_PLAYER_2) { for (i = 0; i < Party_GetCurrentCount(party2); i++) { mon = Party_GetPokemonBySlotIndex(party2, i); @@ -9120,8 +9120,8 @@ static BOOL BtlCmd_CheckBlackOut(BattleSystem *battleSys, BattleContext *battleC BattleScript_Iter(battleCtx, jumpIfWhiteOut); } } else { - Party *party = BattleSystem_Party(battleSys, battler); - battlerData = BattleSystem_BattlerData(battleSys, battler); + Party *party = BattleSystem_GetParty(battleSys, battler); + battlerData = BattleSystem_GetBattlerData(battleSys, battler); for (i = 0; i < Party_GetCurrentCount(party); i++) { mon = Party_GetPokemonBySlotIndex(party, i); @@ -9369,7 +9369,7 @@ static BOOL BtlCmd_TryRestoreStatusOnSwitch(BattleSystem *battleSys, BattleConte int battler = BattleScript_Battler(battleSys, battleCtx, inBattler); if (battleCtx->battleMons[battler].curHP && battleCtx->selectedPartySlot[battler] != 6) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, battleCtx->selectedPartySlot[battler]); int ability = Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL); int status = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); @@ -9554,7 +9554,7 @@ static BOOL BtlCmd_CheckSafariGameDone(BattleSystem *battleSys, BattleContext *b BattleScript_Iter(battleCtx, 1); int jumpNotOver = BattleScript_Read(battleCtx); - if ((BattleSystem_PartyCount(battleSys, BATTLER_US) != MAX_PARTY_SIZE || PCBoxes_FirstEmptyBox(battleSys->pcBoxes) != MAX_PC_BOXES) + if ((BattleSystem_GetPartyCount(battleSys, BATTLER_US) != MAX_PARTY_SIZE || PCBoxes_FirstEmptyBox(battleSys->pcBoxes) != MAX_PC_BOXES) && battleSys->safariBalls) { BattleScript_Iter(battleCtx, jumpNotOver); } @@ -9774,11 +9774,11 @@ static void *BattleScript_VarAddress(BattleSystem *battleSys, BattleContext *bat case BTLVAR_MOVE_STATUS_FLAGS: return &battleCtx->moveStatusFlags; case BTLVAR_SIDE_CONDITIONS_ATTACKER: - return &battleCtx->sideConditionsMask[Battler_Side(battleSys, battleCtx->attacker)]; + return &battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker)]; case BTLVAR_SIDE_CONDITIONS_DEFENDER: - return &battleCtx->sideConditionsMask[Battler_Side(battleSys, battleCtx->defender)]; + return &battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battleCtx->defender)]; case BTLVAR_SIDE_CONDITIONS_EFFECT_MON: - return &battleCtx->sideConditionsMask[Battler_Side(battleSys, battleCtx->sideEffectMon)]; + return &battleCtx->sideConditionsMask[BattleSystem_GetBattlerSide(battleSys, battleCtx->sideEffectMon)]; case BTLVAR_DAMAGE: return &battleCtx->damage; case BTLVAR_ATTACKER: @@ -9870,7 +9870,7 @@ static void *BattleScript_VarAddress(BattleSystem *battleSys, BattleContext *bat case BTLVAR_MOVE_EFFECT_CHANCE: return &battleCtx->moveEffectChance; case BTLVAR_REGULATION_FLAG: - return &battleSys->unk_2418; + return &battleSys->rulesetMask; case BTLVAR_BATTLE_CTX_STATUS_2: return &battleCtx->battleStatusMask2; case BTLVAR_TURN_ORDER_COUNTER: @@ -9918,7 +9918,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) int battler; int expBattler; MessageLoader *msgLoader = BattleSystem_GetMessageLoader(data->battleSys); - u32 battleType = BattleSystem_BattleType(data->battleSys); + u32 battleType = BattleSystem_GetBattleType(data->battleSys); int item; int itemEffect; @@ -9926,8 +9926,8 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) expBattler = 0; // Figure out which mon we're working on - for (slot = data->tmpData[GET_EXP_PARTY_SLOT]; slot < BattleSystem_PartyCount(data->battleSys, expBattler); slot++) { - mon = BattleSystem_PartyPokemon(data->battleSys, expBattler, slot); + for (slot = data->tmpData[GET_EXP_PARTY_SLOT]; slot < BattleSystem_GetPartyCount(data->battleSys, expBattler); slot++) { + mon = BattleSystem_GetPartyPokemon(data->battleSys, expBattler, slot); item = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); itemEffect = Item_LoadParam(item, ITEM_PARAM_HOLD_EFFECT, HEAP_ID_BATTLE); @@ -9936,7 +9936,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) } } - if (slot == BattleSystem_PartyCount(data->battleSys, expBattler)) { + if (slot == BattleSystem_GetPartyCount(data->battleSys, expBattler)) { data->seqNum = SEQ_GET_EXP_DONE; } else if ((battleType & BATTLE_TYPE_DOUBLES) && (battleType & BATTLE_TYPE_AI) == FALSE @@ -9998,7 +9998,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) } Pokemon_SetValue(mon, MON_DATA_EXPERIENCE, &newExp); - BattleScript_CalcEffortValues(BattleSystem_Party(data->battleSys, expBattler), + BattleScript_CalcEffortValues(BattleSystem_GetParty(data->battleSys, expBattler), slot, data->battleCtx->battleMons[data->battleCtx->faintedMon].species, data->battleCtx->battleMons[data->battleCtx->faintedMon].formNum); @@ -10008,7 +10008,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_NUM; msg.params[0] = expBattler | (slot << 8); msg.params[1] = totalExp; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[GET_EXP_MSG_DELAY] = 30 / 4; data->seqNum++; } else { @@ -10079,7 +10079,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) oldStats->stat[i] = Pokemon_GetValue(mon, statParams[i], NULL); } - Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_LEVEL_UP, BattleSystem_MapHeader(data->battleSys)); + Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_LEVEL_UP, BattleSystem_GetMapHeader(data->battleSys)); Pokemon_CalcStats(mon); if (data->battleCtx->selectedPartySlot[expBattler] == slot) { @@ -10096,7 +10096,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_NUM; msg.params[0] = expBattler | (slot << 8); msg.params[1] = level; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum = SEQ_GET_EXP_WAIT_LEVEL_UP_MESSAGE_PRINT; } break; @@ -10118,9 +10118,9 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) break; case SEQ_GET_EXP_LEVEL_UP_SUMMARY_INIT: - BgConfig *bgl = BattleSystem_BGL(data->battleSys); - Window *window = BattleSystem_Window(data->battleSys, 1); - PaletteData *paletteSys = BattleSystem_PaletteSys(data->battleSys); + BgConfig *bgl = BattleSystem_GetBgConfig(data->battleSys); + Window *window = BattleSystem_GetWindow(data->battleSys, 1); + PaletteData *paletteSys = BattleSystem_GetPaletteData(data->battleSys); G2_SetBG0Priority(1 + 1); // this is the background + 1; could do with a constant Bg_SetPriority(BG_LAYER_MAIN_1, 1); @@ -10147,7 +10147,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) MON_DATA_SP_DEF, MON_DATA_SPEED }; - Window *window = BattleSystem_Window(data->battleSys, 1); + Window *window = BattleSystem_GetWindow(data->battleSys, 1); PokemonStats *oldStats = data->battleCtx->tmpData; for (i = 0; i < STAT_MAX; i++) { @@ -10179,7 +10179,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) MON_DATA_SP_DEF, MON_DATA_SPEED }; - Window *window = BattleSystem_Window(data->battleSys, 1); + Window *window = BattleSystem_GetWindow(data->battleSys, 1); Window_FillRectWithColor(window, 15, 80, 0, 36, 96); // clear out the diff section (keep the printed stat names) @@ -10205,7 +10205,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) break; case SEQ_GET_EXP_LEVEL_UP_CLEAR: { - Window *window = BattleSystem_Window(data->battleSys, 1); + Window *window = BattleSystem_GetWindow(data->battleSys, 1); Window_EraseStandardFrame(window, 0); Window_Remove(window); @@ -10227,7 +10227,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) case SEQ_GET_EXP_CHECK_LEARN_MOVE: { u16 move; - BgConfig *bgl = BattleSystem_BGL(data->battleSys); // unused, but must be kept to match + BgConfig *bgl = BattleSystem_GetBgConfig(data->battleSys); // unused, but must be kept to match switch (Pokemon_LevelUpMove(mon, &data->tmpData[GET_EXP_LEARNSET_INDEX], &move)) { case LEARNSET_MOVE_ALREADY_KNOWN: @@ -10255,7 +10255,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_MOVE; msg.params[0] = expBattler | (slot << 8); msg.params[1] = move; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum = SEQ_GET_EXP_LEARNED_MOVE_WAIT; break; } @@ -10268,7 +10268,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_MOVE; msg.params[0] = expBattler | (slot << 8); msg.params[1] = data->tmpData[GET_EXP_MOVE]; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; @@ -10276,7 +10276,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_PokemonCantLearnMoreThanFourMoves; // "But {0} can't learn more than four moves." msg.tags = TAG_NICKNAME; msg.params[0] = expBattler | (slot << 8); - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; @@ -10304,7 +10304,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) } else { msg.id = BattleStrings_Text_WhichMoveShouldBeForgotten2; // "Which move should be forgotten?" msg.tags = TAG_NONE; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum = SEQ_GET_EXP_MAKE_IT_FORGET_WAIT; } } @@ -10329,7 +10329,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) case SEQ_GET_EXP_MAKE_IT_FORGET_CANCELLED: msg.id = BattleStrings_Text_WellThen; // "Well, then..." msg.tags = TAG_NONE; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; @@ -10348,7 +10348,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_MOVE; msg.params[0] = expBattler | (slot << 8); msg.params[1] = data->tmpData[GET_EXP_MOVE]; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum = SEQ_GET_EXP_GIVE_UP_LEARNING_WAIT; } } @@ -10364,7 +10364,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) case SEQ_GET_EXP_ONE_TWO_POOF: msg.id = BattleStrings_Text_BattleOneTwoAndPoof; // "1, 2, and... ... Poof!" msg.tags = TAG_NONE; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; @@ -10373,14 +10373,14 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_MOVE; msg.params[0] = expBattler | (slot << 8); msg.params[1] = Pokemon_GetValue(mon, MON_DATA_MOVE1 + data->tmpData[GET_EXP_MOVE_SLOT], NULL); - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; case SEQ_GET_EXP_AND_DOTDOTDOT: msg.id = BattleStrings_Text_BattleAndDotDotDot; // "And..." msg.tags = TAG_NONE; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->seqNum++; break; @@ -10389,7 +10389,7 @@ static void BattleScript_GetExpTask(SysTask *task, void *inData) msg.tags = TAG_NICKNAME_MOVE; msg.params[0] = expBattler | (slot << 8); msg.params[1] = data->tmpData[GET_EXP_MOVE]; - data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[GET_EXP_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); i = 0; Pokemon_SetValue(mon, MON_DATA_MOVE1_PP_UPS + data->tmpData[GET_EXP_MOVE_SLOT], &i); @@ -10584,7 +10584,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) PaletteData *paletteData; PokemonSpriteManager *monSpriteMan; MessageLoader *msgLoader = BattleSystem_GetMessageLoader(data->battleSys); - paletteData = BattleSystem_PaletteSys(data->battleSys); + paletteData = BattleSystem_GetPaletteData(data->battleSys); monSpriteMan = BattleSystem_GetPokemonSpriteManager(data->battleSys); battler = BATTLER_ENEMY_1; @@ -10602,12 +10602,12 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) ballThrow.target = battler + 20000; ballThrow.ballID = data->ball; ballThrow.cellActorSys = BattleSystem_GetSpriteSystem(data->battleSys); - ballThrow.paletteSys = BattleSystem_PaletteSys(data->battleSys); + ballThrow.paletteSys = BattleSystem_GetPaletteData(data->battleSys); ballThrow.bgPrio = 1; ballThrow.surface = 0; ballThrow.battleSys = data->battleSys; - if (BattleSystem_BattleType(data->battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(data->battleSys) & BATTLE_TYPE_DOUBLES) { if (battler == BATTLER_ENEMY_1) { ballThrow.type = 16; } else { @@ -10624,7 +10624,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) data->battleSys->ballsThrown++; ov12_022368C8(data->ballRotation, 0); } else { - BattlerData *battlerData = BattleSystem_BattlerData(data->battleSys, 0); + BattlerData *battlerData = BattleSystem_GetBattlerData(data->battleSys, 0); if (ov12_02237890(battlerData->unk_84) != 4) { data->ballRotation = battlerData->unk_84; @@ -10639,7 +10639,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) break; case SEQ_CATCH_MON_CHECK_BATTLE_TYPE: if (ov12_022368D0(data->ballRotation, 0) == FALSE) { - u32 battleType = BattleSystem_BattleType(data->battleSys); + u32 battleType = BattleSystem_GetBattleType(data->battleSys); if (battleType & BATTLE_TYPE_TRAINER) { Sound_PlayPannedEffect(SEQ_SE_DP_KON, BATTLE_SOUND_PAN_RIGHT); @@ -10715,7 +10715,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_GotchaPokemonWasCaught; msg.tags = TAG_NICKNAME | 0x80; msg.params[0] = battler; - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_WAIT_PRINT_POKEMON_WAS_CAUGHT; @@ -10733,16 +10733,16 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) if (ov12_022368D0(data->ballRotation, 7) == FALSE) { if (--data->tmpData[CATCH_MON_DELAY] == 0) { BattleSystem_SetCaughtBattlerIndex(data->battleSys, battler); - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); - if (BattleSystem_BattleType(data->battleSys) & (BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)) { - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + if (BattleSystem_GetBattleType(data->battleSys) & (BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)) { + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); BattleSystem_SetPokemonCatchData(data->battleSys, data->battleCtx, mon); sub_02015738(ov16_0223E220(data->battleSys), 1); PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_SUB_BG_F | PLTTBUF_MAIN_OBJ_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, 1, 0, 16, 0); PokemonSpriteManager_StartFadeAll(monSpriteMan, 0, 16, 0, 0); data->seqNum = SEQ_CATCH_MON_DONE; - } else if (BattleSystem_CaughtSpecies(data->battleSys, Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL))) { + } else if (BattleSystem_HasCaughtSpecies(data->battleSys, Pokemon_GetValue(mon, MON_DATA_SPECIES, NULL))) { sub_02015738(ov16_0223E220(data->battleSys), 1); PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_MAIN_OBJ_F, 0xFFFF, 1, 0, 16, 0); PokemonSpriteManager_StartFadeAll(monSpriteMan, 0, 16, 0, 0); @@ -10753,7 +10753,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_PokemonsDataWasAddedToThePokedex; msg.tags = TAG_NICKNAME | 0x80; msg.params[0] = battler; - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_FADE_FOR_POKEDEX; @@ -10781,13 +10781,13 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) ov16_0223B53C(data->battleSys); ov16_022686BC(ov16_0223E020(data->battleSys, 0), 0); ov16_022686BC(ov16_0223E020(data->battleSys, 1), 0); - ov16_02263B20(BattleSystem_BattlerData(data->battleSys, 0), 0); + ov16_02263B20(BattleSystem_GetBattlerData(data->battleSys, 0), 0); - v12.unk_00 = BattleSystem_BGL(data->battleSys); - v12.unk_04 = BattleSystem_PaletteSys(data->battleSys); + v12.unk_00 = BattleSystem_GetBgConfig(data->battleSys); + v12.unk_04 = BattleSystem_GetPaletteData(data->battleSys); v12.unk_08 = monSpriteMan; v12.heapID = HEAP_ID_BATTLE; - v12.unk_10 = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + v12.unk_10 = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); v12.unk_14 = IsNationalDexObtained(BattleSystem_GetPokedex(data->battleSys)); data->tmpPtr[1] = CharTransfer_PopTaskManager(); data->tmpPtr[0] = ov21_021E8D48(&v12); @@ -10829,11 +10829,11 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) if (PaletteData_GetSelectedBuffersMask(paletteData) == 0) { PokemonSpriteTemplate monSpriteTemplate; - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); ov12_0223783C(data->ballRotation); PokemonSpriteManager_DeleteAll(monSpriteMan); - ov16_02263B20(BattleSystem_BattlerData(data->battleSys, 0), 0); + ov16_02263B20(BattleSystem_GetBattlerData(data->battleSys, 0), 0); ov16_0223B53C(data->battleSys); ov16_0223B578(data->battleSys); Pokemon_BuildSpriteTemplate(&monSpriteTemplate, mon, 2); @@ -10875,7 +10875,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) SetScreenColorBrightness(DS_SCREEN_MAIN, COLOR_BLACK); SetScreenColorBrightness(DS_SCREEN_SUB, COLOR_BLACK); - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); namingScreenArgs = NamingScreenArgs_Init( HEAP_ID_BATTLE, NAMING_SCREEN_TYPE_POKEMON, @@ -10884,14 +10884,14 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) BattleSystem_GetOptions(data->battleSys)); data->tmpPtr[1] = namingScreenArgs; - if (BattleSystem_PartyCount(data->battleSys, 0) < MAX_PARTY_SIZE) { + if (BattleSystem_GetPartyCount(data->battleSys, 0) < MAX_PARTY_SIZE) { namingScreenArgs->battleMsgID = 0; } else { namingScreenArgs->battleMsgID = BattleStrings_Text_PokemonWasTransferredToBoxInSomeonesPC + BattleSystem_GetMetBebe(data->battleSys); } namingScreenArgs->monForm = Pokemon_GetValue(mon, MON_DATA_FORM, NULL); - namingScreenArgs->pcBoxes = BattleSystem_PCBoxes(data->battleSys); + namingScreenArgs->pcBoxes = BattleSystem_GetPCBoxes(data->battleSys); namingScreenArgs->monGender = Pokemon_GetValue(mon, MON_DATA_GENDER, NULL); data->tmpPtr[0] = ApplicationManager_New(&gNamingScreenAppTemplate, namingScreenArgs, HEAP_ID_BATTLE); data->seqNum = SEQ_CATCH_MON_FREE_NAMING_SCREEN; @@ -10901,8 +10901,8 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) int i; BattlerData *battlerData; - for (i = 0; i < BattleSystem_MaxBattlers(data->battleSys); i++) { - battlerData = BattleSystem_BattlerData(data->battleSys, i); + for (i = 0; i < BattleSystem_GetMaxBattlers(data->battleSys); i++) { + battlerData = BattleSystem_GetBattlerData(data->battleSys, i); if (battlerData->unk_18) { Sprite_DeleteAndFreeResources(battlerData->unk_18); @@ -10917,7 +10917,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) case SEQ_CATCH_MON_FREE_NAMING_SCREEN: if (ApplicationManager_Exec(data->tmpPtr[0])) { NamingScreenArgs *namingScreenArgs = data->tmpPtr[1]; - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); if (namingScreenArgs->returnCode == NAMING_SCREEN_CODE_OK) { Pokemon_SetValue(mon, MON_DATA_NICKNAME_STRING_AND_FLAG, namingScreenArgs->textInputStr); @@ -10935,13 +10935,13 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) case SEQ_CATCH_MON_GAVE_NICKNAME: if (PaletteData_GetSelectedBuffersMask(paletteData) == 0) { BattleMessage msg; - Party *party = BattleSystem_Party(data->battleSys, 0); - mon = BattleSystem_PartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); + Party *party = BattleSystem_GetParty(data->battleSys, 0); + mon = BattleSystem_GetPartyPokemon(data->battleSys, battler, data->battleCtx->selectedPartySlot[battler]); BattleSystem_DexFlagCaught(data->battleSys, battler); BattleSystem_SetPokemonCatchData(data->battleSys, data->battleCtx, mon); - ov16_0223EF48(data->battleSys, mon); - ov16_0223EF68(data->battleSys, mon); + BattleSystem_EnqueuePokemonHistory(data->battleSys, mon); + BattleSystem_InitCaptureAttempt(data->battleSys, mon); BattleController_EmitIncrementRecord(data->battleSys, 0, 0, RECORD_CAUGHT_POKEMON); if (Party_AddPokemon(party, mon) == TRUE) { @@ -10953,7 +10953,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) data->seqNum = SEQ_CATCH_MON_DONE; } else { - PCBoxes *pcBoxes = BattleSystem_PCBoxes(data->battleSys); + PCBoxes *pcBoxes = BattleSystem_GetPCBoxes(data->battleSys); u32 currentBoxID = PCBoxes_GetCurrentBoxID(pcBoxes); u32 firstEmptyBoxID = PCBoxes_FirstEmptyBox(pcBoxes); int i; @@ -10986,7 +10986,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.params[2] = firstEmptyBoxID; } - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_WAIT_PRINT_TRANSFERRED_TO_BOX; } else { @@ -11015,7 +11015,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_TheTrainerBlockedTheBall; msg.tags = 0; - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_PRINT_DONT_BE_A_THIEF; } @@ -11027,7 +11027,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_DontBeAThief; msg.tags = 0; - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_DONE_TRAINER_BLOCKED_BALL; } @@ -11059,7 +11059,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) msg.id = BattleStrings_Text_OhNoThePokemonBrokeFree + data->tmpData[CATCH_MON_TOTAL_SHAKES]; msg.tags = 0; - data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_TextSpeed(data->battleSys)); + data->tmpData[CATCH_MON_MSG_INDEX] = BattleMessage_Print(data->battleSys, msgLoader, &msg, BattleSystem_GetTextSpeed(data->battleSys)); data->tmpData[CATCH_MON_DELAY] = 30; data->seqNum = SEQ_CATCH_MON_DONE_POKEMON_BROKE_FREE; } @@ -11075,7 +11075,7 @@ static void BattleScript_CatchMonTask(SysTask *task, void *inData) break; case SEQ_CATCH_MON_DONE: if (PaletteData_GetSelectedBuffersMask(paletteData) == 0) { - if (BattleSystem_BattleType(data->battleSys) & (BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)) { + if (BattleSystem_GetBattleType(data->battleSys) & (BATTLE_TYPE_PAL_PARK | BATTLE_TYPE_CATCH_TUTORIAL)) { ov12_0223783C(data->ballRotation); PokemonSpriteManager_DeleteAll(monSpriteMan); } @@ -11128,7 +11128,7 @@ static const struct Fraction sSafariCatchRate[] = { */ static int BattleScript_CalcCatchShakes(BattleSystem *battleSys, BattleContext *battleCtx) { - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_ALWAYS_CATCH) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_ALWAYS_CATCH) { return BALL_3_SHAKES_SUCCESS; } @@ -11154,7 +11154,7 @@ static int BattleScript_CalcCatchShakes(BattleSystem *battleSys, BattleContext * break; case ITEM_DIVE_BALL: - if (BattleSystem_Terrain(battleSys) == TERRAIN_WATER) { + if (BattleSystem_GetTerrain(battleSys) == TERRAIN_WATER) { ballMod = 35; } break; @@ -11170,7 +11170,7 @@ static int BattleScript_CalcCatchShakes(BattleSystem *battleSys, BattleContext * break; case ITEM_REPEAT_BALL: - if (BattleSystem_CaughtSpecies(battleSys, battleCtx->battleMons[battleCtx->defender].species) == TRUE) { + if (BattleSystem_HasCaughtSpecies(battleSys, battleCtx->battleMons[battleCtx->defender].species) == TRUE) { ballMod = 30; } break; @@ -11183,9 +11183,9 @@ static int BattleScript_CalcCatchShakes(BattleSystem *battleSys, BattleContext * break; case ITEM_DUSK_BALL: - if (BattleSystem_Time(battleSys) == TIMEOFDAY_NIGHT - || BattleSystem_Time(battleSys) == TIMEOFDAY_LATE_NIGHT - || BattleSystem_Terrain(battleSys) == TERRAIN_CAVE) { + if (BattleSystem_GetTime(battleSys) == TIMEOFDAY_NIGHT + || BattleSystem_GetTime(battleSys) == TIMEOFDAY_LATE_NIGHT + || BattleSystem_GetTerrain(battleSys) == TERRAIN_CAVE) { ballMod = 35; } break; @@ -11286,9 +11286,9 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_ENEMY: - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if (battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) { break; } @@ -11296,9 +11296,9 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_ENEMY_SLOT_1: - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if (battlerData->battlerType == BATTLER_TYPE_ENEMY_SIDE_SLOT_1 || battlerData->battlerType == BATTLER_TYPE_SOLO_ENEMY) { break; } @@ -11306,15 +11306,15 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_ENEMY_SLOT_2: - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { expectedBattlerType = BATTLER_TYPE_ENEMY_SIDE_SLOT_2; } else { expectedBattlerType = BATTLER_TYPE_SOLO_ENEMY; } - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if (battlerData->battlerType == expectedBattlerType) { break; } @@ -11322,9 +11322,9 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_PLAYER: - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if ((battlerData->battlerType & BATTLER_TYPE_SOLO_ENEMY) == FALSE) { break; } @@ -11332,9 +11332,9 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_PLAYER_SLOT_1: - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if (battlerData->battlerType == BATTLER_TYPE_PLAYER_SIDE_SLOT_1 || battlerData->battlerType == BATTLER_TYPE_SOLO_PLAYER) { break; @@ -11343,15 +11343,15 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt break; case BTLSCR_PLAYER_SLOT_2: - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { expectedBattlerType = BATTLER_TYPE_PLAYER_SIDE_SLOT_2; } else { expectedBattlerType = BATTLER_TYPE_SOLO_PLAYER; } - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - battlerData = BattleSystem_BattlerData(battleSys, battlerOut); + battlerData = BattleSystem_GetBattlerData(battleSys, battlerOut); if (battlerData->battlerType == expectedBattlerType) { break; } @@ -11368,10 +11368,10 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt case BTLSCR_ATTACKER_PARTNER: { // must re-declare to match - int battlers = BattleSystem_MaxBattlers(battleSys); + int battlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < battlers; battlerOut++) { if (battlerOut != battleCtx->attacker - && Battler_Side(battleSys, battlerOut) == Battler_Side(battleSys, battleCtx->attacker)) { + && BattleSystem_GetBattlerSide(battleSys, battlerOut) == BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker)) { break; } } @@ -11385,10 +11385,10 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt case BTLSCR_DEFENDER_PARTNER: { // must re-declare to match - int battlers = BattleSystem_MaxBattlers(battleSys); + int battlers = BattleSystem_GetMaxBattlers(battleSys); for (battlerOut = 0; battlerOut < battlers; battlerOut++) { if (battlerOut != battleCtx->defender - && Battler_Side(battleSys, battlerOut) == Battler_Side(battleSys, battleCtx->defender)) { + && BattleSystem_GetBattlerSide(battleSys, battlerOut) == BattleSystem_GetBattlerSide(battleSys, battleCtx->defender)) { break; } } @@ -11401,22 +11401,22 @@ static int BattleScript_Battler(BattleSystem *battleSys, BattleContext *battleCt } case BTLSCR_ATTACKER_ENEMY: - maxBattlers = BattleSystem_MaxBattlers(battleSys); - side = Battler_Side(battleSys, battleCtx->attacker); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + side = BattleSystem_GetBattlerSide(battleSys, battleCtx->attacker); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - if (side != Battler_Side(battleSys, battlerOut)) { + if (side != BattleSystem_GetBattlerSide(battleSys, battlerOut)) { break; } } break; case BTLSCR_DEFENDER_ENEMY: - maxBattlers = BattleSystem_MaxBattlers(battleSys); - side = Battler_Side(battleSys, battleCtx->defender); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + side = BattleSystem_GetBattlerSide(battleSys, battleCtx->defender); for (battlerOut = 0; battlerOut < maxBattlers; battlerOut++) { - if (side != Battler_Side(battleSys, battlerOut)) { + if (side != BattleSystem_GetBattlerSide(battleSys, battlerOut)) { break; } } @@ -12190,11 +12190,11 @@ static void BattleScript_LoadPartyLevelUpIcon(BattleSystem *battleSys, BattleScr UnkStruct_020127E8 v12; int gender; - strTemplate = BattleSystem_StringTemplate(battleSys); - bgConfig = BattleSystem_BGL(battleSys); + strTemplate = BattleSystem_GetStringTemplate(battleSys); + bgConfig = BattleSystem_GetBgConfig(battleSys); spriteSys = BattleSystem_GetSpriteSystem(battleSys); spriteMan = BattleSystem_GetSpriteManager(battleSys); - paletteData = BattleSystem_PaletteSys(battleSys); + paletteData = BattleSystem_GetPaletteData(battleSys); SpriteSystem_LoadCharResObj(spriteSys, spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, 256, TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, 20021); SpriteSystem_LoadPaletteBuffer(paletteData, PLTTBUF_MAIN_OBJ, spriteSys, spriteMan, NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, 82, FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 20016); @@ -12292,31 +12292,31 @@ static void BattleScript_FreePartyLevelUpIcon(BattleSystem *battleSys, BattleScr */ static void BattleScript_UpdateFriendship(BattleSystem *battleSys, BattleContext *battleCtx, int faintingBattler) { - if (Battler_Side(battleSys, faintingBattler)) { + if (BattleSystem_GetBattlerSide(battleSys, faintingBattler)) { return; } u8 battler; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { - battler = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); - u8 battler2 = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + battler = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_1); + u8 battler2 = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_ENEMY_SIDE_SLOT_2); if (battleCtx->battleMons[battler2].level > battleCtx->battleMons[battler].level) { battler = battler2; } } else { - battler = BattleSystem_BattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); + battler = BattleSystem_GetBattlerOfType(battleSys, BATTLER_TYPE_SOLO_ENEMY); } - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, faintingBattler, battleCtx->selectedPartySlot[faintingBattler]); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, faintingBattler, battleCtx->selectedPartySlot[faintingBattler]); if (battleCtx->battleMons[battler].level > battleCtx->battleMons[faintingBattler].level) { if (battleCtx->battleMons[battler].level - battleCtx->battleMons[faintingBattler].level >= 30) { - Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT_HIGH_LVL_DIFF, BattleSystem_MapHeader(battleSys)); + Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT_HIGH_LVL_DIFF, BattleSystem_GetMapHeader(battleSys)); } else { - Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT, BattleSystem_MapHeader(battleSys)); + Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT, BattleSystem_GetMapHeader(battleSys)); } } else { - Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT, BattleSystem_MapHeader(battleSys)); + Pokemon_UpdateFriendship(mon, FRIENDSHIP_EVENT_BATTLE_FAINT, BattleSystem_GetMapHeader(battleSys)); } } diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c new file mode 100644 index 0000000000..4280163684 --- /dev/null +++ b/src/battle/battle_system.c @@ -0,0 +1,2324 @@ +#include "battle/battle_system.h" + +#include +#include + +#include "constants/battle.h" +#include "constants/battle/battle_script.h" +#include "constants/game_options.h" +#include "constants/heap.h" +#include "constants/items.h" +#include "constants/rtc.h" +#include "generated/abilities.h" +#include "generated/battle_backgrounds.h" +#include "generated/species.h" +#include "generated/trainer_message_types.h" +#include "generated/trainer_score_events.h" + +#include "struct_decls/battle_system.h" +#include "struct_decls/pc_boxes_decl.h" +#include "struct_decls/pokedexdata_decl.h" +#include "struct_defs/battle_system.h" +#include "struct_defs/chatot_cry.h" +#include "struct_defs/trainer.h" + +#include "battle/battle_context.h" +#include "battle/battle_cursor.h" +#include "battle/battle_display.h" +#include "battle/battle_lib.h" +#include "battle/battle_message.h" +#include "battle/common.h" +#include "battle/healthbar.h" +#include "battle/ov16_02268520.h" +#include "battle/ov16_0226E148.h" +#include "battle/pokemon_sprite_data.h" +#include "battle/struct_ov16_0225BFFC_decl.h" +#include "battle/struct_ov16_022674C4.h" +#include "battle/struct_ov16_02268520.h" +#include "battle/struct_ov16_02268A14_decl.h" +#include "battle/struct_ov16_0226D160_decl.h" +#include "battle_anim/battle_anim_system.h" + +#include "bag.h" +#include "bg_window.h" +#include "enums.h" +#include "field_battle_data_transfer.h" +#include "flags.h" +#include "font.h" +#include "font_special_chars.h" +#include "game_options.h" +#include "game_records.h" +#include "heap.h" +#include "item.h" +#include "math_util.h" +#include "message.h" +#include "palette.h" +#include "party.h" +#include "pokedex.h" +#include "pokemon.h" +#include "pokemon_anim.h" +#include "pokemon_sprite.h" +#include "poketch.h" +#include "render_text.h" +#include "render_window.h" +#include "screen_fade.h" +#include "sound.h" +#include "sound_playback.h" +#include "sprite.h" +#include "sprite_system.h" +#include "string_gf.h" +#include "string_template.h" +#include "text.h" +#include "trainer_data.h" +#include "trainer_info.h" +#include "tv_episode_segment.h" +#include "unk_02014A84.h" +#include "unk_0202F1D4.h" + +static void BattleMessage_CheckSide(BattleSystem *battleSys, BattleMessage *battleMsg); +static void BattleMessage_FillFormatBuffers(BattleSystem *battleSys, BattleMessage *battleMsg); +static void BattleMessage_Format(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg); +static BOOL BattleMessage_Callback(TextPrinterTemplate *unused, u16 param1); +static void BattleMessage_SetNickname(BattleSystem *battleSys, u32 idx, int nicknameTag); +static void BattleMessage_SetMoveName(BattleSystem *battleSys, u32 idx, int moveID); +static void BattleMessage_SetItemName(BattleSystem *battleSys, u32 idx, int itemID); +static void BattleMessage_SetNumber(BattleSystem *battleSys, u32 idx, int num); +static void BattleMessage_SetNumberDigits(BattleSystem *battleSys, u32 idx, int num, int digits); +static void BattleMessage_SetTypeName(BattleSystem *battleSys, u32 idx, int type); +static void BattleMessage_SetAbilityName(BattleSystem *battleSys, u32 idx, enum Ability ability); +static void BattleMessage_StatName(BattleSystem *battleSys, u32 idx, int stat); +static void BattleMessage_SetStatusName(BattleSystem *battleSys, u32 idx, int statis); +static void BattleMessage_SetPokemonName(BattleSystem *battleSys, u32 idx, int monTag); +static void BattleMessage_SetPoffinName(BattleSystem *battleSys, u32 idx, int poffin); +static void BattleMessage_SetFlavorName(BattleSystem *battleSys, u32 idx, int flavor); +static void BattleMessage_SetTrainerClassName(BattleSystem *battleSys, u32 idx, int battler); +static void BattleMessage_SetTrainerName(BattleSystem *battleSys, u32 idx, int battler); +static void BattleMessage_SetPCBoxName(BattleSystem *battleSys, u32 idx, int boxIdx); +static u8 ov16_0223F6D4(u8 *param0, u8 *param1, u16 *param2); + +BgConfig *BattleSystem_GetBgConfig(BattleSystem *battleSys) +{ + return battleSys->bgConfig; +} + +Window *BattleSystem_GetWindow(BattleSystem *battleSys, int idx) +{ + return &battleSys->windows[idx]; +} + +u32 BattleSystem_GetBattleType(BattleSystem *battleSys) +{ + return battleSys->battleType; +} + +BattleContext *BattleSystem_GetBattleContext(BattleSystem *battleSys) +{ + return battleSys->battleCtx; +} + +BattlerData *BattleSystem_GetBattlerData(BattleSystem *battleSys, int battler) +{ + return battleSys->battlers[battler]; +} + +int BattleSystem_GetMaxBattlers(BattleSystem *battleSys) +{ + return battleSys->maxBattlers; +} + +Party *BattleSystem_GetParty(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return battleSys->parties[battler]; + } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return battleSys->parties[battler & 1]; + } else { + return battleSys->parties[battler]; + } +} + +int BattleSystem_GetPartyCount(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) + || ((battleSys->battleType & BATTLE_TYPE_TAG) + && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return Party_GetCurrentCount(battleSys->parties[battler]); + } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return Party_GetCurrentCount(battleSys->parties[battler & 1]); + } else { + return Party_GetCurrentCount(battleSys->parties[battler]); + } +} + +Pokemon *BattleSystem_GetPartyPokemon(BattleSystem *battleSys, int battler, int slot) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) + || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return Party_GetPokemonBySlotIndex(battleSys->parties[battler], slot); + } + + if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return Party_GetPokemonBySlotIndex(battleSys->parties[battler & 1], slot); + } + + return Party_GetPokemonBySlotIndex(battleSys->parties[battler], slot); +} + +PokemonSpriteManager *BattleSystem_GetPokemonSpriteManager(BattleSystem *battleSys) +{ + return battleSys->monSpriteMan; +} + +BattleAnimSystem *BattleSystem_GetBattleAnimSystem(BattleSystem *battleSys) +{ + return battleSys->battleAnimSys; +} + +SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSys) +{ + return battleSys->spriteSys; +} + +SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSys) +{ + return battleSys->spriteMan; +} + +UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSys, int param1) +{ + return &battleSys->unk_17C[param1]; +} + +UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSys) +{ + return battleSys->unk_198; +} + +PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide partyGaugeSide) +{ + return battleSys->partyGauges[partyGaugeSide]; +} + +void BattleSystem_SetPartyGauge(BattleSystem *battleSys, enum PartyGaugeSide partyGaugeSide, PartyGauge *partyGauge) +{ + battleSys->partyGauges[partyGaugeSide] = partyGauge; +} + +FontSpecialCharsContext *BattleSystem_GetSpecialCharsHP(BattleSystem *battleSys) +{ + return battleSys->specialCharsHP; +} + +FontSpecialCharsContext *BattleSystem_GetSpecialCharsLevel(BattleSystem *battleSys) +{ + return battleSys->specialCharsLevel; +} + +MessageLoader *BattleSystem_GetMessageLoader(BattleSystem *battleSys) +{ + return battleSys->msgLoader; +} + +MessageLoader *BattleSystem_GetAttackMessageLoader(BattleSystem *battleSys) +{ + return battleSys->attackMsgLoader; +} + +PaletteData *BattleSystem_GetPaletteData(BattleSystem *battleSys) +{ + return battleSys->paletteData; +} + +Pokedex *BattleSystem_GetPokedex(BattleSystem *battleSys) +{ + return battleSys->pokedex; +} + +u8 *BattleSystem_GetServerMessage(BattleSystem *battleSys) +{ + return &battleSys->serverMessage[0]; +} + +u8 *BattleSystem_GetClientMessage(BattleSystem *battleSys) +{ + return &battleSys->clientMessage[0]; +} + +u16 *BattleSystem_GetServerReadIndex(BattleSystem *battleSys) +{ + return &battleSys->serverReadIndex; +} + +u16 *BattleSystem_GetServerWriteIndex(BattleSystem *battleSys) +{ + return &battleSys->serverWriteIndex; +} + +u16 *BattleSystem_GetServerEndIndex(BattleSystem *battleSys) +{ + return &battleSys->serverEndIndex; +} + +u16 *BattleSystem_GetClientReadIndex(BattleSystem *battleSys) +{ + return &battleSys->clientReadIndex; +} + +u16 *BattleSystem_GetClientWriteIndex(BattleSystem *battleSys) +{ + return &battleSys->clientWriteIndex; +} + +u16 *BattleSystem_GetClientEndIndex(BattleSystem *battleSys) +{ + return &battleSys->clientEndIndex; +} + +PokemonSpriteData *BattleSystem_GetPokemonSpriteData(BattleSystem *battleSys) +{ + return &battleSys->pokemonSpriteDataArray[0]; +} + +StringTemplate *BattleSystem_GetStringTemplate(BattleSystem *battleSys) +{ + return battleSys->strFormatter; +} + +String *BattleSystem_GetMsgBuffer(BattleSystem *battleSys) +{ + return battleSys->msgBuffer; +} + +u16 Battler_GetTrainerID(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) + || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return battleSys->trainerIDs[battler]; + } + + if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return battleSys->trainerIDs[battler & 1]; + } + + return battleSys->trainerIDs[battler]; +} + +Trainer *BattleSystem_GetTrainer(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return &battleSys->trainers[battler]; + } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return &battleSys->trainers[battler & 1]; + } else { + return &battleSys->trainers[battler]; + } +} + +TrainerInfo *BattleSystem_GetTrainerInfo(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) + || ((battleSys->battleType & BATTLE_TYPE_TAG) + && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_TYPE_SOLO_ENEMY))) { + return battleSys->trainerInfo[battler]; + } + + if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return battleSys->trainerInfo[battler & 1]; + } + + return battleSys->trainerInfo[battler]; +} + +Bag *BattleSystem_GetBag(BattleSystem *battleSys) +{ + return battleSys->bag; +} + +BagCursor *BattleSystem_GetBagCursor(BattleSystem *battleSys) +{ + return battleSys->bagCursor; +} + +u32 BattleSystem_GetTrainerGender(BattleSystem *battleSys, int battler) +{ + return TrainerInfo_Gender(battleSys->trainerInfo[battler]); +} + +int BattleSystem_GetBattlerOfType(BattleSystem *battleSys, int type) +{ + int i; + for (i = 0; i < battleSys->maxBattlers; i++) { + if (Battler_Type(battleSys->battlers[i]) == type) { + break; + } + } + + GF_ASSERT(i < battleSys->maxBattlers); + return i; +} + +u8 BattleSystem_GetBattlerType(BattleSystem *battleSys, int battler) +{ + return Battler_Type(battleSys->battlers[battler]); +} + +u8 BattleSystem_GetBattlerSide(BattleSystem *battleSys, int battler) +{ + return Battler_Type(battleSys->battlers[battler]) & 1; +} + +UnkStruct_020157E4 *ov16_0223E220(BattleSystem *battleSys) +{ + return battleSys->unk_1AC; +} + +PCBoxes *BattleSystem_GetPCBoxes(BattleSystem *battleSys) +{ + return battleSys->pcBoxes; +} + +enum BattleTerrain BattleSystem_GetTerrain(BattleSystem *battleSys) +{ + if (battleSys->terrain > TERRAIN_MAX || battleSys->terrain < TERRAIN_PLAIN) { + return TERRAIN_MAX; + } + + return battleSys->terrain; +} + +enum BattleBackground BattleSystem_GetBackground(BattleSystem *battleSys) +{ + return battleSys->background; +} + +int BattleSystem_GetMapHeader(BattleSystem *battleSys) +{ + return battleSys->mapHeader; +} + +int BattleSystem_GetPartner(BattleSystem *battleSys, int battler) +{ + int i; + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); + + if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE) { + return battler; + } + + for (i = 0; i < maxBattlers; i++) { + if (i != battler && BattleSystem_GetBattlerSide(battleSys, i) == BattleSystem_GetBattlerSide(battleSys, battler)) { + break; + } + } + + return i; +} + +int BattleSystem_GetEnemyInSlot(BattleSystem *battleSys, int attacker, int slot) +{ + int maxBattlers = BattleSystem_GetMaxBattlers(battleSys); + u32 battleType = BattleSystem_GetBattleType(battleSys); + + // In double battles, return the singular opponent + if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE) { + return attacker ^ 1; + } + + int battler; + for (battler = 0; battler < maxBattlers; battler++) { + if (battler != attacker + && (BattleSystem_GetBattlerType(battleSys, battler) & 2) == slot + && BattleSystem_GetBattlerSide(battleSys, battler) != BattleSystem_GetBattlerSide(battleSys, attacker)) { + break; + } + } + + return battler; +} + +BOOL BattleSystem_UseBagItem(BattleSystem *battleSys, int battler, int partySlot, int moveSlot, int item) +{ + // must maintain this order of declarations to match + BattleContext *battleCtx = battleSys->battleCtx; + Pokemon *mon; + BOOL result = FALSE; + int param; + int selectedSlot = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, battler); + + int targetSlot; + if (BattleSystem_GetBattleType(battleSys) == BATTLE_TYPE_TRAINER_DOUBLES + || ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) + && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM) == FALSE)) { + targetSlot = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, BattleSystem_GetPartner(battleSys, battler)); + if (targetSlot == partySlot) { + battler = BattleSystem_GetPartner(battleSys, battler); + } + } else { + targetSlot = selectedSlot; + } + + mon = BattleSystem_GetPartyPokemon(battleSys, battler, partySlot); + int friendship = 0; + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_SLEEP, HEAP_ID_BATTLE)) { + param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); + if (param & MON_CONDITION_SLEEP) { + param &= ~MON_CONDITION_SLEEP; + Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); + + if (selectedSlot == partySlot || targetSlot == partySlot) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); + param &= ~MON_CONDITION_SLEEP; + BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); + + param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); + param &= ~VOLATILE_CONDITION_NIGHTMARE; + BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_POISON, HEAP_ID_BATTLE)) { + param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); + if (param & MON_CONDITION_ANY_POISON) { + param &= ~MON_CONDITION_ANY_POISON; + Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); + + if (selectedSlot == partySlot || targetSlot == partySlot) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); + param &= ~MON_CONDITION_ANY_POISON; + BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_BURN, HEAP_ID_BATTLE)) { + param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); + if (param & MON_CONDITION_BURN) { + param &= ~MON_CONDITION_BURN; + Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); + + if (selectedSlot == partySlot || targetSlot == partySlot) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); + param &= ~MON_CONDITION_BURN; + BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_FREEZE, HEAP_ID_BATTLE)) { + param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); + if (param & MON_CONDITION_FREEZE) { + param &= ~MON_CONDITION_FREEZE; + Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); + + if (selectedSlot == partySlot || targetSlot == partySlot) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); + param &= ~MON_CONDITION_FREEZE; + BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_PARALYSIS, HEAP_ID_BATTLE)) { + param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); + if (param & MON_CONDITION_PARALYSIS) { + param &= ~MON_CONDITION_PARALYSIS; + Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); + + if (selectedSlot == partySlot || targetSlot == partySlot) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); + param &= ~MON_CONDITION_PARALYSIS; + BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_CONFUSION, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot)) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); + if (param & VOLATILE_CONDITION_CONFUSION) { + param &= ~VOLATILE_CONDITION_CONFUSION; + BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HEAL_ATTRACT, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot)) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); + if (param & VOLATILE_CONDITION_ATTRACT) { + param &= ~VOLATILE_CONDITION_ATTRACT; + BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_GUARD_SPEC, HEAP_ID_BATTLE)) { + param = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SIDE_MIST_TURNS, battler); + if (param == 0) { + param = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SIDE_CONDITIONS_MASK, battler); + param |= SIDE_CONDITION_MIST; + + BattleContext_Set(battleSys, battleCtx, BATTLECTX_SIDE_CONDITIONS_MASK, battler, param); + BattleContext_Set(battleSys, battleCtx, BATTLECTX_SIDE_MIST_TURNS, battler, 5); + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_ATK_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_ATTACK_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_ATTACK_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_DEF_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_DEFENSE_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_DEFENSE_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_SPATK_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_SP_ATTACK_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_SP_ATTACK_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_SPDEF_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_SP_DEFENSE_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_SP_DEFENSE_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_SPEED_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_SPEED_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_SPEED_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_ACC_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot) + && BattleMon_Get(battleCtx, battler, BATTLEMON_ACCURACY_STAGE, NULL) < MAX_STAT_STAGE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_ACCURACY_STAGE, 1); + result = TRUE; + } + + if (Item_LoadParam(item, ITEM_PARAM_CRIT_STAGES, HEAP_ID_BATTLE) + && (selectedSlot == partySlot || targetSlot == partySlot)) { + param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); + + if ((param & VOLATILE_CONDITION_FOCUS_ENERGY) == FALSE) { + param |= VOLATILE_CONDITION_FOCUS_ENERGY; + BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_PP_RESTORE, HEAP_ID_BATTLE)) { + param = Item_LoadParam(item, ITEM_PARAM_PP_RESTORED, HEAP_ID_BATTLE); + + if (Pokemon_GetValue(mon, MON_DATA_MOVE1_PP + moveSlot, NULL) != Pokemon_GetValue(mon, MON_DATA_MOVE1_MAX_PP + moveSlot, NULL)) { + Pokemon_IncreaseValue(mon, MON_DATA_MOVE1_PP + moveSlot, param); + + // Don't permit restoring PP on copied moves + if ((selectedSlot == partySlot || targetSlot == partySlot) + && (BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL) & VOLATILE_CONDITION_TRANSFORM) == FALSE + && (BattleMon_Get(battleCtx, battler, BATTLEMON_MIMICKED_MOVE_SLOT, NULL) & FlagIndex(moveSlot)) == FALSE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_PP_1 + moveSlot, param); + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_PP_RESTORE_ALL, HEAP_ID_BATTLE)) { + param = Item_LoadParam(item, ITEM_PARAM_PP_RESTORED, HEAP_ID_BATTLE); + + for (moveSlot = 0; moveSlot < LEARNED_MOVES_MAX; moveSlot++) { + if (Pokemon_GetValue(mon, MON_DATA_MOVE1_PP + moveSlot, NULL) != Pokemon_GetValue(mon, MON_DATA_MOVE1_MAX_PP + moveSlot, NULL)) { + Pokemon_IncreaseValue(mon, MON_DATA_MOVE1_PP + moveSlot, param); + + if ((selectedSlot == partySlot || targetSlot == partySlot) + && (BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL) & VOLATILE_CONDITION_TRANSFORM) == FALSE + && (BattleMon_Get(battleCtx, battler, BATTLEMON_MIMICKED_MOVE_SLOT, NULL) & FlagIndex(moveSlot)) == FALSE) { + Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_PP_1 + moveSlot, param); + } + + result = TRUE; + } + } + } + + if (Item_LoadParam(item, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE)) { + param = 0; + + if (Item_LoadParam(item, ITEM_PARAM_REVIVE, HEAP_ID_BATTLE)) { + if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) == 0) { + param = 1; + } + } else { + param = Pokemon_GetValue(mon, MON_DATA_HP, NULL); + } + + if (param && Pokemon_GetValue(mon, MON_DATA_HP, NULL) != Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL)) { + param = Item_LoadParam(item, ITEM_PARAM_HP_RESTORED, HEAP_ID_BATTLE); + + switch (param) { + case 0xFF: + param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL); + break; + + case 0xFE: + param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL) / 2; + + if (param == 0) { + param = 1; + } + break; + + case 0xFD: + param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL) * 25 / 100; + + if (param == 0) { + param = 1; + } + break; + + default: + break; + } + + Pokemon_IncreaseValue(mon, MON_DATA_HP, param); + + if (Item_LoadParam(item, ITEM_PARAM_REVIVE, HEAP_ID_BATTLE) == FALSE) { + if (BattleSystem_GetBattlerSide(battleSys, battler)) { + BattleMon_Set(battleCtx, battler, BATTLEMON_ITEM_HP_RECOVERY, ¶m); + } else if (selectedSlot == partySlot || targetSlot == partySlot) { + Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_HP, param); + } + } + + result = TRUE; + } + } + + if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_LOW, HEAP_ID_BATTLE) + && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) < 100 + && result == TRUE) { + friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_LOW, HEAP_ID_BATTLE); + } + + if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_MED, HEAP_ID_BATTLE) + && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) >= 100 + && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) < 200 + && result == TRUE) { + friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_MED, HEAP_ID_BATTLE); + } + + if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_HIGH, HEAP_ID_BATTLE) + && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) >= 200 + && result == TRUE) { + friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_HIGH, HEAP_ID_BATTLE); + } + + if (friendship) { + if (friendship > 0) { + if (Pokemon_GetValue(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { + friendship++; + } + + if (Pokemon_GetValue(mon, MON_DATA_EGG_LOCATION, NULL) == BattleSystem_GetMapHeader(battleSys)) { + friendship++; + } + + param = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); + if (Item_LoadParam(item, ITEM_PARAM_HOLD_EFFECT, HEAP_ID_BATTLE) == HOLD_EFFECT_FRIENDSHIP_UP) { + friendship = friendship * 150 / 100; + } + } + + Pokemon_IncreaseValue(mon, MON_DATA_FRIENDSHIP, friendship); + if (selectedSlot == partySlot || targetSlot == partySlot) { + Battler_AddVal(battleCtx, battler, BATTLEMON_FRIENDSHIP, friendship); + } + } + + return result; +} + +u32 BattleSystem_GetBattleStatusMask(BattleSystem *battleSys) +{ + return battleSys->battleStatusMask; +} + +enum TimeOfDay BattleSystem_GetTime(BattleSystem *battleSys) +{ + return battleSys->time; +} + +int BattleSystem_GetBackgroundTimeOffset(BattleSystem *battleSys) +{ + int offset; + + switch (battleSys->background) { + case BACKGROUND_PLAIN: + case BACKGROUND_WATER: + case BACKGROUND_CITY: + case BACKGROUND_FOREST: + case BACKGROUND_MOUNTAIN: + case BACKGROUND_SNOW: + switch (battleSys->time) { + case TIMEOFDAY_MORNING: + case TIMEOFDAY_DAY: + offset = 0; + break; + case TIMEOFDAY_TWILIGHT: + offset = 1; + break; + case TIMEOFDAY_NIGHT: + case TIMEOFDAY_LATE_NIGHT: + offset = 2; + break; + } + break; + default: + offset = 0; + break; + } + + return offset; +} + +u8 ov16_0223EC58(BattleSystem *battleSys, int battler, u8 param2) +{ + u16 v0; + + if ((BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) && ((battleSys->battleType & BATTLE_TYPE_2vs2) == FALSE)) { + if (battleSys->battleType & BATTLE_TYPE_LINK) { + if ((param2 & FlagIndex(BattleSystem_GetPartner(battleSys, battler))) == FALSE) { + return 1; + } + } else { + v0 = BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_ACTION_TEMP_FOR, 0) & 0xFFFF; + + if ((BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_ACTION_FOR, 0) == 14 && v0 > 16) || (param2 & FlagIndex(0))) { + return 0; + } else { + return 1; + } + } + } + + return 0; +} + +u16 Battle_FindEvolvingPartyMember(FieldBattleDTO *dto, int *outPartySlot, int *outEvoType) +{ + Pokemon *mon; + u16 species = SPECIES_NONE; + + if (dto->resultMask != BATTLE_RESULT_WIN + && dto->resultMask != BATTLE_RESULT_CAPTURED_MON + && dto->resultMask != BATTLE_RESULT_PLAYER_FLED) { + return SPECIES_NONE; + } + + while (dto->leveledUpMonsMask) { + for (*outPartySlot = 0; *outPartySlot < MAX_PARTY_SIZE; (*outPartySlot)++) { + if (dto->leveledUpMonsMask & FlagIndex(*outPartySlot)) { + dto->leveledUpMonsMask &= (FlagIndex(*outPartySlot) ^ 0xFFFFFFFF); + break; + } + } + + if (*outPartySlot < MAX_PARTY_SIZE) { + mon = Party_GetPokemonBySlotIndex(dto->parties[BATTLE_SIDE_PLAYER], *outPartySlot); + species = Pokemon_GetEvolutionTargetSpecies(dto->parties[BATTLE_SIDE_PLAYER], mon, EVO_CLASS_BY_LEVEL, dto->mapEvolutionMethod, outEvoType); + if (species) { + return species; + } + } + } + + return species; +} + +u8 ov16_0223ED60(BattleSystem *battleSys) +{ + return battleSys->unk_23F8; +} + +u8 BattleSystem_GetSafariEscapeCount(BattleSystem *battleSys) +{ + GF_ASSERT(battleSys->battleCtx != NULL); + return BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_SAFARI_ESCAPE_COUNT, NULL); +} + +int BattleSystem_GetNumSafariBalls(BattleSystem *battleSys) +{ + return battleSys->safariBalls; +} + +void BattleSystem_SetNumSafariBalls(BattleSystem *battleSys, int value) +{ + battleSys->safariBalls = value; +} + +Options *BattleSystem_GetOptions(BattleSystem *battleSys) +{ + return battleSys->options; +} + +BOOL BattleSystem_AreAnimationsOn(BattleSystem *battleSys) +{ + if ((battleSys->battleType & BATTLE_TYPE_LINK) + && (battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) { + return TRUE; + } + + return Options_BattleScene(battleSys->options) == OPTIONS_BATTLE_SCENE_ON; +} + +int BattleSystem_GetOptionsFrame(BattleSystem *battleSys) +{ + return Options_Frame(battleSys->options); +} + +u8 BattleSystem_GetTextSpeed(BattleSystem *battleSys) +{ + if ((battleSys->battleType & BATTLE_TYPE_LINK) && ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE)) { + return TEXT_SPEED_FAST; + } + + return Options_TextFrameDelay(battleSys->options); +} + +int BattleSystem_GetBattleStyle(BattleSystem *battleSys) +{ + return Options_BattleStyle(battleSys->options); +} + +PokemonAnimManager *BattleSystem_GetPokemonAnimManager(BattleSystem *battleSys) +{ + return battleSys->monAnimMan; +} + +ChatotCry *BattleSystem_GetChatotCry(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return battleSys->chatotCries[battler]; + } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return battleSys->chatotCries[battler & 1]; + } else { + return battleSys->chatotCries[battler]; + } +} + +void BattleSystem_SetBurmyForm(BattleSystem *battleSys) +{ + int i, form; + + if (battleSys->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + return; + } + + for (i = 0; i < BattleSystem_GetPartyCount(battleSys, 0); i++) { + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, 0, i); + u16 species = Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL); + + if (species == SPECIES_BURMY && (battleSys->unk_2414[0] & FlagIndex(i))) { + switch (BattleSystem_GetTerrain(battleSys)) { + default: + case TERRAIN_GRASS: + form = BURMY_FORM_PLANT; + break; + case TERRAIN_PLAIN: + case TERRAIN_SAND: + case TERRAIN_MOUNTAIN: + case TERRAIN_CAVE: + case TERRAIN_DISTORTION_WORLD: + case TERRAIN_GIRATINA: + form = BURMY_FORM_SAND; + break; + case TERRAIN_BUILDING: + case TERRAIN_BRIDGE: + case TERRAIN_AARON: + case TERRAIN_BERTHA: + case TERRAIN_FLINT: + case TERRAIN_LUCIAN: + case TERRAIN_CYNTHIA: + case TERRAIN_BATTLE_TOWER: + case TERRAIN_BATTLE_FACTORY: + case TERRAIN_BATTLE_ARCADE: + case TERRAIN_BATTLE_CASTLE: + case TERRAIN_BATTLE_HALL: + form = BURMY_FORM_TRASH; + break; + } + + Pokemon_SetValue(mon, MON_DATA_FORM, &form); + } + } +} + +void ov16_0223EF2C(BattleSystem *battleSys, int param1, int param2) +{ + battleSys->unk_2414[param1] |= FlagIndex(param2); +} + +void BattleSystem_EnqueuePokemonHistory(BattleSystem *battleSys, Pokemon *mon) +{ + if (battleSys->poketch) { + Poketch_PokemonHistoryEnqueue(battleSys->poketch, Pokemon_GetBoxPokemon(mon)); + } +} + +void BattleSystem_InitCaptureAttempt(BattleSystem *battleSys, Pokemon *mon) +{ + CaptureAttempt_Init(battleSys->captureAttempt, mon, battleSys->resultMask, battleSys->ballsThrown, HEAP_ID_BATTLE); +} + +void ov16_0223EF8C(BattleSystem *battleSys) +{ + NNSG2dImageProxy *v0; + int v1, v2, v3, v4, v5, v6; + u8 *v7; + + battleSys->unk_21C = Heap_Alloc(HEAP_ID_BATTLE, 0x10000); + battleSys->unk_220 = Heap_Alloc(HEAP_ID_BATTLE, 0x200); + + MI_CpuCopy32((void *)(HW_BG_VRAM + 0x10000), battleSys->unk_21C, 0x10000); + MI_CpuCopy32(PaletteData_GetUnfadedBuffer(battleSys->paletteData, 0), battleSys->unk_220, HW_BG_PLTT_SIZE); + + v7 = G2_GetOBJCharPtr(); + v0 = Sprite_GetImageProxy(battleSys->unk_17C[1].unk_00->sprite); + v7 += v0->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; + + for (v2 = 20; v2 < 20 + 8; v2++) { + for (v1 = 16; v1 < 32; v1++) { + v3 = v1 - 16; + v4 = v2 - 20; + + for (v6 = 0; v6 < 0x40; v6++) { + if (v3 < 8) { + if (v6 & 1) { + v5 = (v7[v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf0) >> 4; + } else { + v5 = (v7[v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf); + } + } else { + if (v6 & 1) { + v5 = (v7[0x700 + v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf0) >> 4; + } else { + v5 = (v7[0x700 + v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf); + } + } + + if (v5) { + battleSys->unk_21C[v2 * 0x800 + v1 * 0x40 + v6] = v5 + 0x70; + } + } + } + } + + v7 = G2_GetOBJCharPtr(); + v0 = Sprite_GetImageProxy(battleSys->unk_17C[0].unk_00->sprite); + v7 += v0->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; + + for (v6 = 0; v6 < 0x40 * 32; v6++) { + if (v6 & 1) { + v5 = (v7[v6 / 2] & 0xf0) >> 4; + } else { + v5 = (v7[v6 / 2] & 0xf); + } + + if (v5) { + battleSys->unk_21C[19 * 0x800 + v6] = v5 + 0x70; + } + } + + for (v2 = 28; v2 < 28 + 4; v2++) { + for (v1 = 0; v1 < 24; v1++) { + v3 = v1; + v4 = v2 - 28; + + for (v6 = 0; v6 < 0x40; v6++) { + if (v6 & 1) { + v5 = (v7[0x400 + (v3 / 8) * 0x400 + ((v3 % 8) * 0x20) + (v4 * 0x100) + v6 / 2] & 0xf0) >> 4; + } else { + v5 = (v7[0x400 + (v3 / 8) * 0x400 + ((v3 % 8) * 0x20) + (v4 * 0x100) + v6 / 2] & 0xf); + } + + if (v5) { + battleSys->unk_21C[v2 * 0x800 + v1 * 0x40 + v6] = v5 + 0x70; + } + } + } + } + + Bg_LoadTiles(battleSys->bgConfig, 3, battleSys->unk_21C, 0x10000, 0); + + ov16_02268700(&battleSys->unk_17C[0]); + ov16_02268700(&battleSys->unk_17C[1]); +} + +u8 *ov16_0223F1E8(BattleSystem *battleSys) +{ + return battleSys->unk_21C; +} + +u16 *ov16_0223F1F0(BattleSystem *battleSys) +{ + return battleSys->unk_220; +} + +int BattleSystem_GetVisistedContestHall(BattleSystem *battleSys) +{ + return battleSys->visitedContestHall; +} + +u16 *ov16_0223F204(BattleSystem *battleSys) +{ + return &battleSys->unk_2224[0]; +} + +u16 *ov16_0223F210(BattleSystem *battleSys) +{ + return &battleSys->unk_2304[0]; +} + +int BattleSystem_GetFieldWeather(BattleSystem *battleSys) +{ + return battleSys->fieldWeather; +} + +u8 BattleSystem_GetCatchingTutorialLowHP(BattleSystem *battleSys) +{ + return battleSys->catchingTutorialLowHP; +} + +void BattleSystem_SetCatchingTutorialLowHP(BattleSystem *battleSys, u8 value) +{ + battleSys->catchingTutorialLowHP = value; +} + +int BattleSystem_GetMetBebe(BattleSystem *battleSys) +{ + return battleSys->metBebe; +} + +void BattleSystem_TryIncrementRecordValue(BattleSystem *battleSys, int id) +{ + if (battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) { + return; + } + + GameRecords_IncrementRecordValue(battleSys->records, id); +} + +void BattleSystem_TryIncrementTrainerScoreCaughtSpecies(BattleSystem *battleSys) +{ + if (battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) { + return; + } + + GameRecords_IncrementTrainerScore(battleSys->records, TRAINER_SCORE_EVENT_CAUGHT_SPECIES); +} + +void BattleSystem_SetCommandSelectionFlags(BattleSystem *battleSys, int flags) +{ + battleSys->commandSelectionFlags = flags; +} + +void ov16_0223F290(BattleSystem *battleSys, int param1) +{ + battleSys->unk_2440 = param1; +} + +WaitDial *BattleSystem_GetWaitDial(BattleSystem *battleSys) +{ + return battleSys->waitDial; +} + +void BattleSystem_SetWaitDial(BattleSystem *battleSys, WaitDial *waitDial) +{ + battleSys->waitDial = waitDial; +} + +PokemonSpriteData *BattleSystem_GetPokemonSpriteDataByIndex(BattleSystem *battleSys, int battler) +{ + return &battleSys->pokemonSpriteDataArray[battler]; +} + +u8 *PokemonSpriteData_GetTiles(PokemonSpriteData *pokemonSpriteData, int idx) +{ + GF_ASSERT(idx < 4); + return pokemonSpriteData[idx].tiles; +} + +void PokemonSpriteData_SetNarcID(PokemonSpriteData *pokemonSpriteData, int idx, int value) +{ + GF_ASSERT(idx < 4); + pokemonSpriteData[idx].narcID = value; +} + +void PokemonSpriteData_SetPalette(PokemonSpriteData *pokemonSpriteData, int idx, int value) +{ + GF_ASSERT(idx < 4); + pokemonSpriteData[idx].palette = value; +} + +void PokemonSpriteData_SetYOffset(PokemonSpriteData *pokemonSpriteData, int idx, int value) +{ + GF_ASSERT(idx < 4); + pokemonSpriteData[idx].yOffset = value; +} + +void ov16_0223F314(BattleSystem *battleSys, int param1) +{ + battleSys->unk_23F9 = param1; +} + +void ov16_0223F320(BattleSystem *battleSys, u8 *param1) +{ + battleSys->unk_23F0 = param1; +} + +void ov16_0223F32C(BattleSystem *battleSys, u8 *param1) +{ + battleSys->unk_23F4 = param1; +} + +void ov16_0223F338(BattleSystem *battleSys, u8 param1) +{ + battleSys->unk_23F0[0] = param1; +} + +void ov16_0223F344(BattleSystem *battleSys, u8 param1) +{ + battleSys->unk_23F4[0] = param1; +} + +void BattleSystem_SetCommandIsEndWait(BattleSystem *battleSys, u8 value) +{ + battleSys->commandIsEndWait = value; +} + +void *BattleSystem_GetHealthbar(BattleSystem *battleSys, int battler) +{ + return BattlerData_GetHealthbar(battleSys->battlers[battler]); +} + +void ov16_0223F36C(BattleSystem *battleSys) +{ + int i; + Healthbar *healthbar; + + for (i = 0; i < battleSys->maxBattlers; i++) { + healthbar = BattlerData_GetHealthbar(battleSys->battlers[i]); + + healthbar->battleSys = battleSys; + healthbar->type = Healthbar_Type(Battler_Type(battleSys->battlers[i]), BattleSystem_GetBattleType(battleSys)); + + ov16_022672C4(healthbar); + Healthbar_Enable(healthbar, FALSE); + } +} + +void ov16_0223F3BC(BattleSystem *battleSys) +{ + int i; + Healthbar *healthbar; + + for (i = 0; i < battleSys->maxBattlers; i++) { + healthbar = BattlerData_GetHealthbar(battleSys->battlers[i]); + + if (healthbar->curHP) { + Healthbar_Enable(healthbar, TRUE); + } + } +} + +void ov16_0223F3EC(BattleSystem *battleSys) +{ + int i; + Healthbar *healthbar; + + for (i = 0; i < battleSys->maxBattlers; i++) { + healthbar = BattlerData_GetHealthbar(battleSys->battlers[i]); + Healthbar_Enable(healthbar, FALSE); + } +} + +void ov16_0223F414(BattleSystem *battleSys) +{ + int i; + Healthbar *healthbar; + + for (i = 0; i < battleSys->maxBattlers; i++) { + healthbar = BattlerData_GetHealthbar(battleSys->battlers[i]); + ov16_02267360(healthbar); + } +} + +u8 BattleSystem_GetResultMask(BattleSystem *battleSys) +{ + return battleSys->resultMask; +} + +void BattleSystem_SetResultMask(BattleSystem *battleSys, u8 value) +{ + battleSys->resultMask = value; +} + +u8 BattleSystem_GetRedHPSoundFlag(BattleSystem *battleSys) +{ + return battleSys->redHPSoundFlag; +} + +void BattleSystem_SetRedHPSoundFlag(BattleSystem *battleSys, u8 value) +{ + battleSys->redHPSoundFlag = value; +} + +u8 BattleSystem_GetRedHPSoundEffectDelay(BattleSystem *battleSys) +{ + return battleSys->redHPSoundEffectDelay; +} + +void BattleSystem_SetRedHPSoundEffectDelay(BattleSystem *battleSys, u8 value) +{ + GF_ASSERT(value < 15); + battleSys->redHPSoundEffectDelay = value; +} + +void BattleSystem_SetCaughtBattlerIndex(BattleSystem *battleSys, int value) +{ + battleSys->caughtBattlerIdx = value; +} + +u16 BattleSystem_RandNext(BattleSystem *battleSys) +{ + battleSys->seedRandNext = battleSys->seedRandNext * LCRNG_MULTIPLIER + LCRNG_INCREMENT; + return (u16)(battleSys->seedRandNext / LCRNG_DIVISOR); +} + +u32 BattleSystem_GetSeedDTO(BattleSystem *battleSys) +{ + return battleSys->seedDTO; +} + +void BattleSystem_SetSeedDTO(BattleSystem *battleSys, u32 value) +{ + battleSys->seedDTO = value; +} + +void BattleSystem_Record(BattleSystem *battleSys, int param1, u8 param2) +{ + if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) && (battleSys->unk_245C[param1] < 0x400)) { + sub_0202F868(param1, battleSys->unk_245C[param1], param2); + battleSys->unk_245C[param1]++; + } +} + +BOOL ov16_0223F530(BattleSystem *battleSys, int param1, u8 *param2) +{ + BOOL result; + + *param2 = 0xFF; + + if ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) && (battleSys->unk_245C[param1] < 0x400)) { + *param2 = sub_0202F884(param1, battleSys->unk_245C[param1]); + battleSys->unk_245C[param1]++; + result = 0; + } else if ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) && (battleSys->unk_245C[param1] >= 0x400)) { + result = 1; + } + + return result; +} + +u8 ov16_0223F58C(BattleSystem *battleSys, u8 *param1) +{ + u8 battler, v1; + u8 v2 = 0; + + for (battler = 0; battler < battleSys->maxBattlers; battler++) { + if (battleSys->unk_245C[battler] != battleSys->unk_244C[battler]) { + param1[v2++] = battler; + param1[v2++] = battleSys->unk_245C[battler] - battleSys->unk_244C[battler]; + + for (v1 = 0; v1 < battleSys->unk_245C[battler] - battleSys->unk_244C[battler]; v1++) { + param1[v2++] = sub_0202F884(battler, battleSys->unk_244C[battler] + v1); + } + + battleSys->unk_244C[battler] = battleSys->unk_245C[battler]; + } + } + + GF_ASSERT(v2 <= 28); + return v2; +} + +void ov16_0223F638(BattleSystem *battleSys, u16 param1, u8 *param2) +{ + int v0; + u8 v1; + u8 v2; + u8 v3 = 0; + + if ((battleSys->battleType & BATTLE_TYPE_LINK) == FALSE) { + return; + } + + if (battleSys->unk_23F8) { + return; + } + + while (param1) { + v1 = ov16_0223F6D4(param2, &v3, ¶m1); + v2 = ov16_0223F6D4(param2, &v3, ¶m1); + + for (v0 = 0; v0 < v2; v0++) { + sub_0202F868(v1, battleSys->unk_2454[v1] + v0, ov16_0223F6D4(param2, &v3, ¶m1)); + } + + battleSys->unk_2454[v1] += v2; + } +} + +static u8 ov16_0223F6D4(u8 *param0, u8 *param1, u16 *param2) +{ + param2[0]--; + return param0[param1[0]++]; +} + +u16 BattleSystem_GetNetworkID(BattleSystem *battleSys) +{ + return battleSys->networkID; +} + +int ov16_0223F6F0(BattleSystem *battleSys, u16 battler) +{ + return battleSys->unk_2464[battler]; +} + +u16 BattleSystem_GetTrainerItem(BattleSystem *battleSys, int battler, int itemIdx) +{ + return battleSys->trainers[battler].header.items[itemIdx]; +} + +u32 BattleSystem_GetRecordingStopped(BattleSystem *battleSys) +{ + return battleSys->recordingStopped; +} + +void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag) +{ + if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) + || battleSys->recordingStopped + || (BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_CONTROL_COMMAND, 0) == 43) + || (BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_NEXT_CONTROL_COMMAND, 0) == 43)) { + return; + } + + ov16_0226CEB0(battleSys->unk_198, flag); + + StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_BRIGHTNESS_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 16, 2, HEAP_ID_BATTLE); + Sound_StopWaveOutAndSequences(); + Sound_SetMasterVolume(0); + + battleSys->recordingStopped = TRUE; + + return; +} + +BOOL ov16_0223F7A4(BattleSystem *battleSys) +{ + if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) + || battleSys->recordingStopped + || (BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_CONTROL_COMMAND, 0) == 43) + || (BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_NEXT_CONTROL_COMMAND, 0) == 43)) { + return FALSE; + } + + return TRUE; +} + +void BattleSystem_ShowStopPlaybackButton(BattleSystem *battleSys) +{ + if ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE + || battleSys->playbackStopButton) { + return; + } + + battleSys->playbackStopButton = ov16_0226E148(battleSys); +} + +u8 BattleSystem_GetRecordedChatter(BattleSystem *battleSys, int battler) +{ + if ((battleSys->battleType & BATTLE_TYPE_2vs2) || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_GetBattlerType(battleSys, battler) & BATTLER_THEM))) { + return battleSys->recordedChatter[battler]; + } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { + return battleSys->recordedChatter[battler & 1]; + } else { + return battleSys->recordedChatter[battler]; + } +} + +void ov16_0223F858(BattleSystem *battleSys, u8 *param1) +{ + int battler; + + for (battler = 0; battler < battleSys->maxBattlers; battler++) { + param1[Battler_Type(battleSys->battlers[battler])] = battler; + } +} + +void ov16_0223F87C(BattleSystem *battleSys, u8 *param1) +{ + int battler; + + for (battler = 0; battler < MAX_BATTLERS; battler++) { + param1[battler] = 0xFF; + } + + for (battler = 0; battler < battleSys->maxBattlers; battler++) { + param1[battler] = Battler_Type(battleSys->battlers[battler]); + } +} + +void ov16_0223F8AC(BattleSystem *battleSys, PokemonSprite **monSprites) +{ + int battler; + + for (battler = 0; battler < MAX_BATTLERS; battler++) { + monSprites[battler] = NULL; + } + + for (battler = 0; battler < battleSys->maxBattlers; battler++) { + monSprites[battler] = ov16_02263AFC(battleSys->battlers[battler]); + } +} + +void BattleSystem_SetGaugePriority(BattleSystem *battleSys, int param1) +{ + int battler; + Healthbar *healthbar; + + for (battler = 0; battler < battleSys->maxBattlers; battler++) { + healthbar = BattlerData_GetHealthbar(battleSys->battlers[battler]); + ov16_022675D8(healthbar, param1); + } +} + +u32 BattleSystem_CalcMoneyPenalty(Party *party, TrainerInfo *trainerInfo) +{ + static const u8 badgeMul[] = { + 2, + 4, + 6, + 9, + 12, + 16, + 20, + 25, + 30, + }; + + u8 badges = TrainerInfo_BadgeCount(trainerInfo); + u32 penalty = Party_GetMaxLevel(party) * 4 * badgeMul[badges]; + u32 curMoney = TrainerInfo_Money(trainerInfo); + + if (penalty > curMoney) { + penalty = curMoney; + } + + return penalty; +} + +void BattleSystem_DexFlagSeen(BattleSystem *battleSys, int battler) +{ + int battlerType = Battler_Type(battleSys->battlers[battler]); + int selectedSlot = BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, battler); + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, selectedSlot); + + if ((battleSys->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)) == FALSE) { + if ((battlerType & BATTLER_THEM) + || battleSys->battleType == BATTLE_TYPE_AI_PARTNER + || battleSys->battleType == (BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI)) { + Pokedex_Encounter(battleSys->pokedex, mon); + } + } + + if (((battlerType & BATTLER_THEM) == FALSE) + && (Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) == SPECIES_BURMY)) { + Pokedex_Capture(battleSys->pokedex, mon); + } +} + +void BattleSystem_DexFlagCaught(BattleSystem *battleSys, int battler) +{ + int battlerType = Battler_Type(battleSys->battlers[battler]); + + if ((battleSys->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)) == FALSE) { + if (battlerType & BATTLER_THEM) { + Pokemon *mon; + int targetSlot = BattleContext_Get(battleSys, battleSys->battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, battler); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, targetSlot); + + Pokedex_Capture(battleSys->pokedex, mon); + } + } +} + +BOOL BattleSystem_HasCaughtSpecies(BattleSystem *battleSys, int species) +{ + return Pokedex_HasCaughtSpecies(battleSys->pokedex, species); +} + +void Battle_SetDefaultBlend(void) +{ + G2_BlendNone(); +} + +u8 BattleMessage_PrintTrainerMessage(BattleSystem *battleSys, int trainerID, int battler, enum TrainerMessageType msgType, int renderDelay) +{ + Window *window = BattleSystem_GetWindow(battleSys, 0); + int printerID; + + if (battleSys->battleType & BATTLE_TYPE_FRONTIER) { + if (trainerID == 10000) { + String *string; + + if (msgType == TRMSG_WIN) { + string = sub_02014B34(&battleSys->trainers[battler].winMsg, HEAP_ID_BATTLE); + } else { + string = sub_02014B34(&battleSys->trainers[battler].loseMsg, HEAP_ID_BATTLE); + } + + Window_FillTilemap(window, 0xFF); + printerID = Text_AddPrinterWithParams(window, FONT_MESSAGE, string, 0, 0, renderDelay, BattleMessage_Callback); + String_Free(string); + } else { + String *string; + int entryID; + u32 bankID; + int i; + + if (msgType == TRMSG_WIN) { + entryID = trainerID * 3 + 1; + } else { + entryID = trainerID * 3 + 2; + } + + for (i = 0; i < MAX_BATTLERS; i++) { + if (TrainerInfo_GameCode(battleSys->trainerInfo[i]) == 0) { + break; + } + } + + if (i == MAX_BATTLERS) { + bankID = TEXT_BANK_FRONTIER_TRAINER_MESSAGES; + } else { + bankID = TEXT_BANK_UNK_0613; + } + + MessageLoader *loader = MessageLoader_Init(MSG_LOADER_PRELOAD_ENTIRE_BANK, NARC_INDEX_MSGDATA__PL_MSG, bankID, HEAP_ID_BATTLE); + string = MessageLoader_GetNewString(loader, entryID); + + Window_FillTilemap(window, 0xFF); + + printerID = Text_AddPrinterWithParams(window, FONT_MESSAGE, string, 0, 0, renderDelay, BattleMessage_Callback); + String_Free(string); + MessageLoader_Free(loader); + } + } else { + Trainer_LoadMessage(trainerID, msgType, battleSys->msgBuffer, HEAP_ID_BATTLE); + Window_FillTilemap(window, 0xFF); + printerID = Text_AddPrinterWithParams(window, FONT_MESSAGE, battleSys->msgBuffer, 0, 0, renderDelay, BattleMessage_Callback); + } + + return printerID; +} + +u8 BattleMessage_Print(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg, int renderDelay) +{ + Window *textWindow = BattleSystem_GetWindow(battleSys, 0); + + BattleMessage_CheckSide(battleSys, battleMsg); + BattleMessage_FillFormatBuffers(battleSys, battleMsg); + BattleMessage_Format(battleSys, msgLoader, battleMsg); + + Window_FillTilemap(textWindow, 0xFF); + + return Text_AddPrinterWithParams(textWindow, FONT_MESSAGE, battleSys->msgBuffer, 0, 0, renderDelay, BattleMessage_Callback); +} + +u8 BattleMessage_PrintToWindow(BattleSystem *battleSys, Window *window, MessageLoader *msgLoader, BattleMessage *battleMsg, int xOffset, int yOffset, int param6, int param7, int renderDelay) +{ + int v0; + + BattleMessage_CheckSide(battleSys, battleMsg); + BattleMessage_FillFormatBuffers(battleSys, battleMsg); + BattleMessage_Format(battleSys, msgLoader, battleMsg); + + if (param6 & 0x1) { + Window_FillTilemap(window, 0xFF); + } + + if (param6 & 0x2) { + v0 = param7 - Font_CalcStringWidth(FONT_SYSTEM, battleSys->msgBuffer, 0); + } else { + v0 = 0; + } + + return Text_AddPrinterWithParams(window, FONT_SYSTEM, battleSys->msgBuffer, xOffset + v0, yOffset, renderDelay, BattleMessage_Callback); +} + +/** + * @brief Check what side of the battle the incoming message applies to, and update + * the message's bank ID as appropriate. + * + * This routine is responsible for shifting the message ID for messages that have + * separate entries for the player, an enemy trainer, and a wild Pokemon. + * + * @param battleSys + * @param battleMsg + */ +static void BattleMessage_CheckSide(BattleSystem *battleSys, BattleMessage *battleMsg) +{ + u32 battleType = BattleSystem_GetBattleType(battleSys); + + if (battleMsg->tags & TAG_GLOBAL_MESSAGE) { + return; + } + + if (battleMsg->tags & TAG_SIDE_LOCAL_MESSAGE) { + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->battler)) { + battleMsg->id++; + } + + return; + } + + switch (battleMsg->tags & BATTLE_MESSAGE_TAGS) { + case TAG_NONE: + case TAG_MOVE: + case TAG_STAT: + case TAG_ITEM: + case TAG_NUMBER: + case TAG_NUMBERS: + case TAG_TRNAME: + case TAG_MOVE_MOVE: + case TAG_ITEM_MOVE: + case TAG_NUMBER_NUMBER: + case TAG_TRNAME_TRNAME: + case TAG_TRNAME_NICKNAME: + case TAG_TRNAME_ITEM: + case TAG_TRNAME_NUM: + case TAG_TRCLASS_TRNAME: + case TAG_TRNAME_NICKNAME_NICKNAME: + case TAG_TRCLASS_TRNAME_NICKNAME: + case TAG_TRCLASS_TRNAME_ITEM: + case TAG_TRNAME_NICKNAME_TRNAME_NICKNAME: + case TAG_TRCLASS_TRNAME_NICKNAME_NICKNAME: + case TAG_TRCLASS_TRNAME_NICKNAME_TRNAME: + case TAG_TRCLASS_TRNAME_TRCLASS_TRNAME: + case TAG_TRCLASS_TRNAME_NICKNAME_TRCLASS_TRNAME_NICKNAME: + break; + + case TAG_NONE_SIDE_CONSCIOUS: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[0] & 0xFF)) { + battleMsg->id++; + } + break; + + case TAG_NICKNAME: + case TAG_NICKNAME_MOVE: + case TAG_NICKNAME_ABILITY: + case TAG_NICKNAME_STAT: + case TAG_NICKNAME_TYPE: + case TAG_NICKNAME_POKE: + case TAG_NICKNAME_ITEM: + case TAG_NICKNAME_POFFIN: + case TAG_NICKNAME_NUM: + case TAG_NICKNAME_TRNAME: + case TAG_NICKNAME_BOX: + case TAG_NICKNAME_MOVE_MOVE: + case TAG_NICKNAME_MOVE_NUMBER: + case TAG_NICKNAME_ABILITY_MOVE: + case TAG_NICKNAME_ABILITY_ITEM: + case TAG_NICKNAME_ABILITY_STAT: + case TAG_NICKNAME_ABILITY_TYPE: + case TAG_NICKNAME_ABILITY_STATUS: + case TAG_NICKNAME_ABILITY_NUMBER: + case TAG_NICKNAME_ITEM_MOVE: + case TAG_NICKNAME_ITEM_STAT: + case TAG_NICKNAME_ITEM_STATUS: + case TAG_NICKNAME_BOX_BOX: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[0] & 0xFF)) { + battleMsg->id++; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id++; + } + } + break; + + case TAG_MOVE_SIDE: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[1] & 0xFF)) { + battleMsg->id++; + } + break; + + case TAG_MOVE_NICKNAME: + case TAG_ABILITY_NICKNAME: + case TAG_ITEM_NICKNAME_FLAVOR: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[1] & 0xFF)) { + battleMsg->id++; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id++; + } + } + break; + + case TAG_NICKNAME_NICKNAME: + case TAG_NICKNAME_NICKNAME_MOVE: + case TAG_NICKNAME_NICKNAME_ABILITY: + case TAG_NICKNAME_NICKNAME_ITEM: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[0] & 0xFF)) { + battleMsg->id += 3; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id += 2; + } + + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[1] & 0xFF)) { + battleMsg->id++; + } + } else if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[1] & 0xFF)) { + battleMsg->id++; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id++; + } + } + break; + + case TAG_NICKNAME_ABILITY_NICKNAME: + case TAG_NICKNAME_ITEM_NICKNAME: + case TAG_NICKNAME_ABILITY_NICKNAME_MOVE: + case TAG_NICKNAME_ABILITY_NICKNAME_ABILITY: + case TAG_NICKNAME_ABILITY_NICKNAME_STAT: + case TAG_NICKNAME_ITEM_NICKNAME_ITEM: + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[0] & 0xFF)) { + battleMsg->id += 3; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id += 2; + } + + if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[2] & 0xFF)) { + battleMsg->id++; + } + } else if (BattleSystem_GetBattlerSide(battleSys, battleMsg->params[2] & 0xFF)) { + battleMsg->id++; + + if (battleType & BATTLE_TYPE_TRAINER) { + battleMsg->id++; + } + } + break; + + default: + GF_ASSERT(FALSE); + break; + } +} + +/** + * @brief Fill formatting buffers with data from the battle message parameters, according + * to the message's tag. + * + * @param battleSys + * @param battleMsg + */ +static void BattleMessage_FillFormatBuffers(BattleSystem *battleSys, BattleMessage *battleMsg) +{ + switch (battleMsg->tags & BATTLE_MESSAGE_TAGS) { + case TAG_NONE: + case TAG_NONE_SIDE_CONSCIOUS: + break; + + case TAG_NICKNAME: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_MOVE: + case TAG_MOVE_SIDE: + BattleMessage_SetMoveName(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_STAT: + BattleMessage_StatName(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_ITEM: + BattleMessage_SetItemName(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_NUMBER: + BattleMessage_SetNumber(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_NUMBERS: + BattleMessage_SetNumberDigits(battleSys, 0, battleMsg->params[0], battleMsg->digits); + break; + + case TAG_TRNAME: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + break; + + case TAG_NICKNAME_NICKNAME: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetMoveName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_ABILITY: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_STAT: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_StatName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_TYPE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTypeName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_POKE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetPokemonName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_ITEM: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_POFFIN: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetPoffinName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_NUM: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNumber(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_TRNAME: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_BOX: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetPCBoxName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_MOVE_NICKNAME: + BattleMessage_SetMoveName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_MOVE_MOVE: + BattleMessage_SetMoveName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetMoveName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_ABILITY_NICKNAME: + BattleMessage_SetAbilityName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_ITEM_MOVE: + BattleMessage_SetItemName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetMoveName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NUMBER_NUMBER: + BattleMessage_SetNumber(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNumber(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_TRNAME_TRNAME: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_TRNAME_NICKNAME: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_TRNAME_ITEM: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_TRNAME_NUM: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNumber(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_TRCLASS_TRNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + break; + + case TAG_NICKNAME_NICKNAME_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetMoveName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_NICKNAME_ABILITY: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetAbilityName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_NICKNAME_ITEM: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetItemName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_MOVE_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetMoveName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetMoveName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_MOVE_NUMBER: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetMoveName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNumber(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_NICKNAME: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetMoveName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_ITEM: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetItemName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_STAT: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_StatName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_TYPE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetTypeName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_STATUS: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetStatusName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_NUMBER: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNumber(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ITEM_NICKNAME: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ITEM_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetMoveName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ITEM_STAT: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + BattleMessage_StatName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ITEM_STATUS: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetStatusName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_BOX_BOX: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetPCBoxName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetPCBoxName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_ITEM_NICKNAME_FLAVOR: + BattleMessage_SetItemName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetFlavorName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_TRNAME_NICKNAME_NICKNAME: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_TRCLASS_TRNAME_NICKNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_TRCLASS_TRNAME_ITEM: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetItemName(battleSys, 2, battleMsg->params[2]); + break; + + case TAG_NICKNAME_ABILITY_NICKNAME_MOVE: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetMoveName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_NICKNAME_ABILITY_NICKNAME_ABILITY: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetAbilityName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_NICKNAME_ABILITY_NICKNAME_STAT: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetAbilityName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_StatName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_NICKNAME_ITEM_NICKNAME_ITEM: + BattleMessage_SetNickname(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetItemName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetItemName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_TRNAME_NICKNAME_TRNAME_NICKNAME: + BattleMessage_SetTrainerName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetNickname(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetTrainerName(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetNickname(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_TRCLASS_TRNAME_NICKNAME_NICKNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetNickname(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_TRCLASS_TRNAME_NICKNAME_TRNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetTrainerName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_TRCLASS_TRNAME_TRCLASS_TRNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetTrainerClassName(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetTrainerName(battleSys, 3, battleMsg->params[3]); + break; + + case TAG_TRCLASS_TRNAME_NICKNAME_TRCLASS_TRNAME_NICKNAME: + BattleMessage_SetTrainerClassName(battleSys, 0, battleMsg->params[0]); + BattleMessage_SetTrainerName(battleSys, 1, battleMsg->params[1]); + BattleMessage_SetNickname(battleSys, 2, battleMsg->params[2]); + BattleMessage_SetTrainerClassName(battleSys, 3, battleMsg->params[3]); + BattleMessage_SetTrainerName(battleSys, 4, battleMsg->params[4]); + BattleMessage_SetNickname(battleSys, 5, battleMsg->params[5]); + break; + + default: + GF_ASSERT(FALSE); + break; + } +} + +static void BattleMessage_SetNickname(BattleSystem *battleSys, u32 idx, int nicknameTag) +{ + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, nicknameTag & 0xFF, (nicknameTag & 0xFF00) >> 8); + StringTemplate_SetNickname(battleSys->strFormatter, idx, &mon->box); +} + +static void BattleMessage_SetMoveName(BattleSystem *battleSys, u32 idx, int moveID) +{ + StringTemplate_SetMoveName(battleSys->strFormatter, idx, moveID); +} + +static void BattleMessage_SetItemName(BattleSystem *battleSys, u32 idx, int itemID) +{ + StringTemplate_SetItemName(battleSys->strFormatter, idx, itemID); +} + +static void BattleMessage_SetNumber(BattleSystem *battleSys, u32 idx, int num) +{ + StringTemplate_SetNumber(battleSys->strFormatter, idx, num, 5, PADDING_MODE_NONE, CHARSET_MODE_EN); +} + +static void BattleMessage_SetNumberDigits(BattleSystem *battleSys, u32 idx, int num, int digits) +{ + if (digits) { + StringTemplate_SetNumber(battleSys->strFormatter, idx, num, digits, PADDING_MODE_SPACES, CHARSET_MODE_EN); + } else { + StringTemplate_SetNumber(battleSys->strFormatter, idx, num, 5, PADDING_MODE_SPACES, CHARSET_MODE_EN); + } +} + +static void BattleMessage_SetTypeName(BattleSystem *battleSys, u32 idx, int type) +{ + StringTemplate_SetPokemonTypeName(battleSys->strFormatter, idx, type); +} + +static void BattleMessage_SetAbilityName(BattleSystem *battleSys, u32 idx, enum Ability ability) +{ + StringTemplate_SetAbilityName(battleSys->strFormatter, idx, ability); +} + +static void BattleMessage_StatName(BattleSystem *battleSys, u32 idx, int stat) +{ + StringTemplate_SetPokemonStatName(battleSys->strFormatter, idx, stat); +} + +static void BattleMessage_SetStatusName(BattleSystem *battleSys, u32 idx, int status) +{ + StringTemplate_SetStatusConditionName(battleSys->strFormatter, idx, status); +} + +static void BattleMessage_SetPokemonName(BattleSystem *battleSys, u32 idx, int monTag) +{ + Pokemon *v0 = BattleSystem_GetPartyPokemon(battleSys, monTag & 0xFF, (monTag & 0xFF00) >> 8); + StringTemplate_SetSpeciesName(battleSys->strFormatter, idx, &v0->box); +} + +static void BattleMessage_SetPoffinName(BattleSystem *battleSys, u32 idx, int poffin) +{ + return; +} + +static void BattleMessage_SetFlavorName(BattleSystem *battleSys, u32 idx, int flavor) +{ + StringTemplate_SetFlavorName(battleSys->strFormatter, idx, flavor); +} + +static void BattleMessage_SetTrainerClassName(BattleSystem *battleSys, u32 idx, int battler) +{ + Trainer *trainer = BattleSystem_GetTrainer(battleSys, battler); + StringTemplate_SetTrainerClassNameBattle(battleSys->strFormatter, idx, trainer); +} + +static void BattleMessage_SetTrainerName(BattleSystem *battleSys, u32 idx, int battler) +{ + Trainer *trainer = BattleSystem_GetTrainer(battleSys, battler); + StringTemplate_SetTrainerNameBattle(battleSys->strFormatter, idx, trainer); +} + +static void BattleMessage_SetPCBoxName(BattleSystem *battleSys, u32 idx, int boxIdx) +{ + StringTemplate_SetPCBoxName(battleSys->strFormatter, idx, battleSys->pcBoxes, boxIdx); +} + +/** + * @brief Load the requested message and format it into a string to be printed to the screen. + * + * @param battleSys + * @param msgLoader + * @param battleMsg + */ +static void BattleMessage_Format(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg) +{ + String *string = MessageLoader_GetNewString(msgLoader, battleMsg->id); + StringTemplate_Format(battleSys->strFormatter, battleSys->msgBuffer, string); + String_Free(string); +} + +static BOOL BattleMessage_Callback(TextPrinterTemplate *unused, u16 param1) +{ + BOOL result = FALSE; + + switch (param1) { + case 1: + result = Sound_IsAnyEffectPlaying(); + break; + case 2: + result = Sound_IsBGMPausedByFanfare(); + break; + case 3: + Sound_PlayFanfare(SEQ_FANFA5); + break; + case 4: + Sound_PlayEffect(SEQ_SE_DP_KON); + break; + case 5: + Sound_PlayFanfare(SEQ_FANFA1); + break; + default: + break; + } + + return result; +} diff --git a/src/battle/healthbar.c b/src/battle/healthbar.c index b4521be410..83f2a8b5fe 100644 --- a/src/battle/healthbar.c +++ b/src/battle/healthbar.c @@ -7,7 +7,7 @@ #include "constants/graphics.h" #include "constants/heap.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/struct_ov16_022674C4.h" #include "assert.h" @@ -677,7 +677,7 @@ void Healthbar_DrawInfo(Healthbar *healthbar, u32 hp, u32 flags) break; } - if (BattleSystem_BattleType(healthbar->battleSys) & BATTLE_TYPE_TRAINER) { + if (BattleSystem_GetBattleType(healthbar->battleSys) & BATTLE_TYPE_TRAINER) { // Never show the pokeball icon on an enemy trainer's healthbar flags &= ~HEALTHBAR_INFO_CAUGHT_SPECIES; } @@ -814,7 +814,7 @@ void ov16_022672C4(Healthbar *param0) NARC *v4 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); v1 = BattleSystem_GetSpriteSystem(param0->battleSys); v2 = BattleSystem_GetSpriteManager(param0->battleSys); - v3 = BattleSystem_PaletteSys(param0->battleSys); + v3 = BattleSystem_GetPaletteData(param0->battleSys); v0 = Healthbar_SpriteTemplate(param0->type); Healthbar_LoadResources(v1, v2, v4, v3, param0->type); @@ -959,7 +959,7 @@ void ov16_0226757C(Healthbar *param0) Healthbar_EnableArrow(param0, 1); } - if ((BattleSystem_BattleType(param0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) { + if ((BattleSystem_GetBattleType(param0->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) == 0) { ov16_02268470(param0); } } @@ -1001,7 +1001,7 @@ static void Healthbar_EnableArrow(Healthbar *battleSys, BOOL enable) } // Safari battles don't get an arrow. - if ((BattleSystem_BattleType(battleSys->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) + if ((BattleSystem_GetBattleType(battleSys->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) && enable == TRUE) { return; } @@ -1153,14 +1153,14 @@ static void Healthbar_DrawBattlerName(Healthbar *healthbar) BoxPokemon *boxMon; StringTemplate *strFormatter; - bgl = BattleSystem_BGL(healthbar->battleSys); + bgl = BattleSystem_GetBgConfig(healthbar->battleSys); msgLoader = BattleSystem_GetMessageLoader(healthbar->battleSys); - strFormatter = BattleSystem_StringTemplate(healthbar->battleSys); + strFormatter = BattleSystem_GetStringTemplate(healthbar->battleSys); nickname = String_Init(MON_NAME_LEN + 12, HEAP_ID_BATTLE); // TODO: not sure why there is a +12 here template = MessageLoader_GetNewString(msgLoader, pl_msg_00000368_00964); - mon = BattleSystem_PartyPokemon(healthbar->battleSys, healthbar->battler, healthbar->selectedPartySlot); + mon = BattleSystem_GetPartyPokemon(healthbar->battleSys, healthbar->battler, healthbar->selectedPartySlot); boxMon = Pokemon_GetBoxPokemon(mon); StringTemplate_SetNickname(strFormatter, 0, boxMon); @@ -1239,7 +1239,7 @@ static void Healthbar_DrawLevelNumber(Healthbar *param0) v1 = Heap_Alloc(HEAP_ID_BATTLE, v3 * 2); MI_CpuFill8(v0, 0xf | (0xf << 4), v3); - FontSpecialChars_DrawBattleScreenText(ov16_0223E054(param0->battleSys), param0->unk_48, 3, 0, v0); + FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsLevel(param0->battleSys), param0->unk_48, 3, 0, v0); { void *v7; @@ -1282,7 +1282,7 @@ static void Healthbar_DrawCurrentHP(Healthbar *param0, u32 param1) v0 = Heap_Alloc(HEAP_ID_BATTLE, 3 * 0x20); MI_CpuFill8(v0, 0xf | (0xf << 4), 3 * 0x20); - FontSpecialChars_DrawBattleScreenText(ov16_0223E04C(param0->battleSys), param1, 3, 1, v0); + FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(param0->battleSys), param1, 3, 1, v0); { void *v2; @@ -1307,7 +1307,7 @@ static void Healthbar_DrawMaxHP(Healthbar *param0) v0 = Heap_Alloc(HEAP_ID_BATTLE, 3 * 0x20); MI_CpuFill8(v0, 0xf | (0xf << 4), 3 * 0x20); - FontSpecialChars_DrawBattleScreenText(ov16_0223E04C(param0->battleSys), param0->maxHP, 3, 0, v0); + FontSpecialChars_DrawBattleScreenText(BattleSystem_GetSpecialCharsHP(param0->battleSys), param0->maxHP, 3, 0, v0); { void *v2; @@ -1368,7 +1368,7 @@ static void Healthbar_DrawBallCount(Healthbar *param0, u32 param1) MessageLoader *v4; String *v5; - v0 = BattleSystem_BGL(param0->battleSys); + v0 = BattleSystem_GetBgConfig(param0->battleSys); v4 = BattleSystem_GetMessageLoader(param0->battleSys); if (param1 & (1 << 10)) { @@ -1412,9 +1412,9 @@ static void Healthbar_DrawBallsLeftMessage(Healthbar *param0, u32 param1) String *v5, *v6; StringTemplate *v7; - v0 = BattleSystem_BGL(param0->battleSys); + v0 = BattleSystem_GetBgConfig(param0->battleSys); v4 = BattleSystem_GetMessageLoader(param0->battleSys); - v7 = BattleSystem_StringTemplate(param0->battleSys); + v7 = BattleSystem_GetStringTemplate(param0->battleSys); v5 = String_Init(30, HEAP_ID_BATTLE); if (param1 & (1 << 10)) { @@ -1839,7 +1839,7 @@ static void ov16_02268380(SysTask *param0, void *param1) PaletteData *v3; v1 = BattleSystem_GetSpriteManager(v0->unk_00->battleSys); - v3 = BattleSystem_PaletteSys(v0->unk_00->battleSys); + v3 = BattleSystem_GetPaletteData(v0->unk_00->battleSys); switch (v0->unk_08) { case 0: diff --git a/src/battle/ov16_0223B140.c b/src/battle/ov16_0223B140.c index e5fd88f470..280dc8a28a 100644 --- a/src/battle/ov16_0223B140.c +++ b/src/battle/ov16_0223B140.c @@ -21,7 +21,7 @@ #include "battle/battle_display.h" #include "battle/battle_io_command.h" #include "battle/battle_lib.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/ov16_02268520.h" #include "battle/ov16_0226E148.h" #include "battle/struct_ov16_0223C2C0.h" @@ -282,7 +282,7 @@ BOOL Battle_Main(ApplicationManager *appMan, int *param1) void ov16_0223B384(BattleSystem *battleSys) { ov16_02268A14(battleSys->unk_198); - ov16_022687A0(battleSys->unk_04); + ov16_022687A0(battleSys->bgConfig); battleSys->unk_23FB_2 = 1; @@ -304,7 +304,7 @@ void ov16_0223B3E4(BattleSystem *battleSys) ov16_02268A14(battleSys->unk_198); Window_Remove(&battleSys->windows[0]); - ov16_0223C288(battleSys->unk_04); + ov16_0223C288(battleSys->bgConfig); ov16_0223C2BC(battleSys); SpriteSystem_FreeResourcesAndManager(battleSys->spriteSys, battleSys->spriteMan); @@ -331,14 +331,14 @@ void ov16_0223B430(BattleSystem *battleSys) v0 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); v1 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); - battleSys->unk_198 = ov16_022687C8(v0, v1, battleSys, BattleSystem_GetTrainerGender(battleSys, ov16_0223F6E4(battleSys)), battleSys->unk_1BC); + battleSys->unk_198 = ov16_022687C8(v0, v1, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn); Font_InitManager(FONT_SUBSCREEN, HEAP_ID_BATTLE); battleSys->unk_23FB_1 = 1; { - ov16_02268744(battleSys->unk_04); + ov16_02268744(battleSys->bgConfig); } GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, 1); @@ -357,9 +357,9 @@ void ov16_0223B53C(BattleSystem *battleSys) Window_Remove(&battleSys->windows[0]); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 0); - Bg_FreeTilemapBuffer(battleSys->unk_04, BG_LAYER_MAIN_1); - Bg_FreeTilemapBuffer(battleSys->unk_04, BG_LAYER_MAIN_2); - Bg_FreeTilemapBuffer(battleSys->unk_04, BG_LAYER_MAIN_3); + Bg_FreeTilemapBuffer(battleSys->bgConfig, BG_LAYER_MAIN_1); + Bg_FreeTilemapBuffer(battleSys->bgConfig, BG_LAYER_MAIN_2); + Bg_FreeTilemapBuffer(battleSys->bgConfig, BG_LAYER_MAIN_3); ov16_0223F3EC(battleSys); } @@ -415,12 +415,12 @@ void ov16_0223B578(BattleSystem *battleSys) }, }; - Bg_InitFromTemplate(battleSys->unk_04, BG_LAYER_MAIN_1, &v0[0], 0); - Bg_ClearTilemap(battleSys->unk_04, BG_LAYER_MAIN_1); - Bg_InitFromTemplate(battleSys->unk_04, BG_LAYER_MAIN_2, &v0[1], 0); - Bg_ClearTilemap(battleSys->unk_04, BG_LAYER_MAIN_2); - Bg_InitFromTemplate(battleSys->unk_04, BG_LAYER_MAIN_3, &v0[2], 0); - Bg_ClearTilemap(battleSys->unk_04, BG_LAYER_MAIN_3); + Bg_InitFromTemplate(battleSys->bgConfig, BG_LAYER_MAIN_1, &v0[0], 0); + Bg_ClearTilemap(battleSys->bgConfig, BG_LAYER_MAIN_1); + Bg_InitFromTemplate(battleSys->bgConfig, BG_LAYER_MAIN_2, &v0[1], 0); + Bg_ClearTilemap(battleSys->bgConfig, BG_LAYER_MAIN_2); + Bg_InitFromTemplate(battleSys->bgConfig, BG_LAYER_MAIN_3, &v0[2], 0); + Bg_ClearTilemap(battleSys->bgConfig, BG_LAYER_MAIN_3); G2_SetBG0Priority(1); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, 1); @@ -429,14 +429,14 @@ void ov16_0223B578(BattleSystem *battleSys) { int v1; - v1 = ov16_0223EDE0(battleSys); + v1 = BattleSystem_GetOptionsFrame(battleSys); - ReplaceTransparentTiles(battleSys->unk_04, 1, 1, 10, v1, 5); - Graphics_LoadTilesToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 3 + battleSys->background, battleSys->unk_04, 3, 0, 0, 1, HEAP_ID_BATTLE); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 7, 172 + (battleSys->background * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 38, GetMessageBoxPaletteNARCMember(v1), 5, 0, 0x20, 10 * 0x10); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, 14, 7, 5, 0, 0x20, 0xb * 0x10); - Graphics_LoadTilemapToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 2, battleSys->unk_04, 3, 0, 0, 1, HEAP_ID_BATTLE); + ReplaceTransparentTiles(battleSys->bgConfig, 1, 1, 10, v1, 5); + Graphics_LoadTilesToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 3 + battleSys->background, battleSys->bgConfig, 3, 0, 0, 1, HEAP_ID_BATTLE); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, 7, 172 + (battleSys->background * 3) + BattleSystem_GetBackgroundTimeOffset(battleSys), 5, 0, 0, 0); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, 38, GetMessageBoxPaletteNARCMember(v1), 5, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, 14, 7, 5, 0, 0x20, 0xb * 0x10); + Graphics_LoadTilemapToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 2, battleSys->bgConfig, 3, 0, 0, 1, HEAP_ID_BATTLE); } { @@ -454,7 +454,7 @@ void ov16_0223B578(BattleSystem *battleSys) battleSys->unk_23FB_1 = 1; - Window_Add(battleSys->unk_04, battleSys->windows, 1, 0x2, 0x13, 27, 4, 0xb, (18 + 12) + 1); + Window_Add(battleSys->bgConfig, battleSys->windows, 1, 0x2, 0x13, 27, 4, 0xb, (18 + 12) + 1); Window_FillTilemap(battleSys->windows, 0xff); Window_DrawMessageBoxWithScrollCursor(&battleSys->windows[0], 0, 1, 10); @@ -516,27 +516,23 @@ static void ov16_0223B790(ApplicationManager *appMan) MI_CpuFill16((void *)GetHardwareMainBgPaletteAddress(), 0x0, GetHardwareMainBgPaletteSize()); MI_CpuFill16((void *)GetHardwareSubBgPaletteAddress(), 0x0, GetHardwareSubBgPaletteSize()); - battleSys->unk_00 = ov16_0223CD7C(); + battleSys->pipelineBuffers = ov16_0223CD7C(); DisableHBlank(); Font_InitManager(FONT_SUBSCREEN, HEAP_ID_BATTLE); - if (battleSys->battleType & BATTLE_TYPE_SAFARI) { - battleSys->unk_1A4 = FontSpecialChars_Init(0xe, 2, 0xf, HEAP_ID_BATTLE); - } else { - battleSys->unk_1A4 = FontSpecialChars_Init(0xe, 2, 0xf, HEAP_ID_BATTLE); - } + battleSys->specialCharsHP = FontSpecialChars_Init(14, 2, 15, HEAP_ID_BATTLE); - battleSys->unk_1A8 = battleSys->unk_1A4; - battleSys->paletteSys = PaletteData_New(HEAP_ID_BATTLE); + battleSys->specialCharsLevel = battleSys->specialCharsHP; + battleSys->paletteData = PaletteData_New(HEAP_ID_BATTLE); - PaletteData_SetAutoTransparent(battleSys->paletteSys, 1); - PaletteData_AllocBuffer(battleSys->paletteSys, 0, 0x200, HEAP_ID_BATTLE); - PaletteData_AllocBuffer(battleSys->paletteSys, 1, 0x200, HEAP_ID_BATTLE); - PaletteData_AllocBuffer(battleSys->paletteSys, 2, ((16 - 2) * 16) * sizeof(u16), HEAP_ID_BATTLE); - PaletteData_AllocBuffer(battleSys->paletteSys, 3, 0x200, HEAP_ID_BATTLE); + PaletteData_SetAutoTransparent(battleSys->paletteData, 1); + PaletteData_AllocBuffer(battleSys->paletteData, 0, 0x200, HEAP_ID_BATTLE); + PaletteData_AllocBuffer(battleSys->paletteData, 1, 0x200, HEAP_ID_BATTLE); + PaletteData_AllocBuffer(battleSys->paletteData, 2, ((16 - 2) * 16) * sizeof(u16), HEAP_ID_BATTLE); + PaletteData_AllocBuffer(battleSys->paletteData, 3, 0x200, HEAP_ID_BATTLE); - battleSys->unk_04 = BgConfig_New(HEAP_ID_BATTLE); + battleSys->bgConfig = BgConfig_New(HEAP_ID_BATTLE); battleSys->windows = Window_New(HEAP_ID_BATTLE, 3); for (idx = 0; idx < 4; idx++) { @@ -549,15 +545,15 @@ static void ov16_0223B790(ApplicationManager *appMan) NARC *v6 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE); NARC *v7 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); - battleSys->unk_198 = ov16_022687C8(v6, v7, battleSys, BattleSystem_GetTrainerGender(battleSys, ov16_0223F6E4(battleSys)), battleSys->unk_1BC); + battleSys->unk_198 = ov16_022687C8(v6, v7, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn); NARC_dtor(v6); NARC_dtor(v7); } - ov16_0223C004(battleSys, battleSys->unk_04); + ov16_0223C004(battleSys, battleSys->bgConfig); - Window_Add(battleSys->unk_04, &battleSys->windows[0], 1, 2, 0x13, 27, 4, 11, (18 + 12) + 1); + Window_Add(battleSys->bgConfig, &battleSys->windows[0], 1, 2, 0x13, 27, 4, 11, (18 + 12) + 1); Window_FillTilemap(&battleSys->windows[0], 0xff); Window_DrawMessageBoxWithScrollCursor(&battleSys->windows[0], 0, 1, 10); @@ -589,57 +585,57 @@ static void ov16_0223B790(ApplicationManager *appMan) NARC_dtor(v9); } - battleSys->unk_88 = PokemonSpriteManager_New(HEAP_ID_BATTLE); - PokemonSpriteManager_SetPlttBaseAddrAndSize(battleSys->unk_88, 0, 0x20 * 6); + battleSys->monSpriteMan = PokemonSpriteManager_New(HEAP_ID_BATTLE); + PokemonSpriteManager_SetPlttBaseAddrAndSize(battleSys->monSpriteMan, 0, 0x20 * 6); ov16_0223F36C(battleSys); ov16_0223CE28(); - battleSys->unk_8C = BattleAnimSystem_New(HEAP_ID_BATTLE); + battleSys->battleAnimSys = BattleAnimSystem_New(HEAP_ID_BATTLE); ov16_0223C210(battleSys); EnableTouchPad(); InitializeTouchPad(4); - battleSys->unk_0C = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BATTLE_STRINGS, HEAP_ID_BATTLE); - battleSys->unk_10 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVES_USED_IN_BATTLE, HEAP_ID_BATTLE); + battleSys->msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_BATTLE_STRINGS, HEAP_ID_BATTLE); + battleSys->attackMsgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_MOVES_USED_IN_BATTLE, HEAP_ID_BATTLE); battleSys->strFormatter = StringTemplate_Default(HEAP_ID_BATTLE); battleSys->msgBuffer = String_Init(2 * 160, HEAP_ID_BATTLE); - MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteSys, 0), &battleSys->unk_2224[0], 0x20 * 7); - MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteSys, 2), &battleSys->unk_2304[0], 0x20 * 7); + MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteData, 0), &battleSys->unk_2224[0], 0x20 * 7); + MI_CpuCopy16(PaletteData_GetUnfadedBuffer(battleSys->paletteData, 2), &battleSys->unk_2304[0], 0x20 * 7); { int v10; - v10 = ov16_0223EC04(battleSys); + v10 = BattleSystem_GetBackgroundTimeOffset(battleSys); - PaletteData_FillBufferRange(battleSys->paletteSys, 0, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0, 112); - PaletteData_FillBufferRange(battleSys->paletteSys, 0, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0xc * 16, 0xc * 16 + 4 * 16); - PaletteData_FillBufferRange(battleSys->paletteSys, 2, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0, ((16 - 2) * 16) - 1); + PaletteData_FillBufferRange(battleSys->paletteData, 0, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0, 112); + PaletteData_FillBufferRange(battleSys->paletteData, 0, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0xc * 16, 0xc * 16 + 4 * 16); + PaletteData_FillBufferRange(battleSys->paletteData, 2, 2, Unk_ov16_0226E44C[battleSys->background][v10], 0, ((16 - 2) * 16) - 1); } - PaletteData_FillBufferRange(battleSys->paletteSys, 0, 0, 0x0, 0xa * 16, 0xa * 16 + 2 * 16); - PaletteData_FillBufferRange(battleSys->paletteSys, 1, 0, 0x0, 0, 255); - PaletteData_FillBufferRange(battleSys->paletteSys, 3, 0, 0xffff, 0, 255); + PaletteData_FillBufferRange(battleSys->paletteData, 0, 0, 0x0, 0xa * 16, 0xa * 16 + 2 * 16); + PaletteData_FillBufferRange(battleSys->paletteData, 1, 0, 0x0, 0, 255); + PaletteData_FillBufferRange(battleSys->paletteData, 3, 0, 0xffff, 0, 255); - battleSys->unk_1AC = sub_0201567C(battleSys->paletteSys, 0, 0xb, HEAP_ID_BATTLE); + battleSys->unk_1AC = sub_0201567C(battleSys->paletteData, 0, 0xb, HEAP_ID_BATTLE); sub_02015738(battleSys->unk_1AC, 1); - battleSys->unk_1C = SysTask_Start(ov16_0223CF48, battleSys, 60000); - battleSys->unk_20 = SysTask_Start(ov16_0223CF8C, battleSys, 50000); - battleSys->unk_24 = SysTask_ExecuteOnVBlank(ov16_0223D0C4, battleSys, 1200); - battleSys->unk_2434 = -51; + battleSys->task_1C = SysTask_Start(ov16_0223CF48, battleSys, 60000); + battleSys->task_20 = SysTask_Start(ov16_0223CF8C, battleSys, 50000); + battleSys->task_24 = SysTask_ExecuteOnVBlank(ov16_0223D0C4, battleSys, 1200); + battleSys->yOffset = -51; ov16_0223DD4C(battleSys); - BagCursor_ResetBattle(BattleSystem_BagCursor(battleSys)); + BagCursor_ResetBattle(BattleSystem_GetBagCursor(battleSys)); battleSys->monAnimMan = PokemonAnimManager_New(HEAP_ID_BATTLE, 4, FALSE); battleSys->cellTransferState = CellTransfer_New(4, HEAP_ID_BATTLE); if (battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) { for (idx = 0; idx < 4; idx++) { - battleSys->unk_247C[idx] = v1->unk_194[idx]; + battleSys->recordedChatter[idx] = v1->unk_194[idx]; } } } @@ -659,7 +655,7 @@ static int ov16_0223BBD0(ApplicationManager *appMan) } } else { if (battleSys->unk_23F8) { - battleSys->unk_23FA = BattleContext_Main(battleSys, battleSys->battleCtx); + battleSys->commandIsEndWait = BattleContext_Main(battleSys, battleSys->battleCtx); BattleController_TryRecvLocalMessage(battleSys, 1); } @@ -668,9 +664,9 @@ static int ov16_0223BBD0(ApplicationManager *appMan) BattleController_TryRecvLocalMessage(battleSys, 0); } - if (battleSys->unk_23FA == 0) { + if (battleSys->commandIsEndWait == 0) { if (battleSys->unk_23F8) { - battleSys->unk_23FA = BattleContext_Main(battleSys, battleSys->battleCtx); + battleSys->commandIsEndWait = BattleContext_Main(battleSys, battleSys->battleCtx); BattleController_TryRecvLocalMessage(battleSys, 1); } @@ -681,122 +677,122 @@ static int ov16_0223BBD0(ApplicationManager *appMan) } } - return battleSys->unk_23FA; + return battleSys->commandIsEndWait; } static void ov16_0223BCB4(ApplicationManager *appMan) { - BattleSystem *battleSystem = ApplicationManager_Data(appMan); + BattleSystem *battleSys = ApplicationManager_Data(appMan); FieldBattleDTO *v1 = ApplicationManager_Args(appMan); int battlerId; - v1->seed = battleSystem->unk_2448; - v1->battleStatusMask = battleSystem->battleStatusMask; + v1->seed = battleSys->seedDTO; + v1->battleStatusMask = battleSys->battleStatusMask; - if ((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) == 0) { + if ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == 0) { sub_0202F8AC(v1); } - if (battleSystem->overlayFlags != 0) { - BattleSystem_LoadFightOverlay(battleSystem, 0); + if (battleSys->overlayFlags != 0) { + BattleSystem_LoadFightOverlay(battleSys, 0); } SetScreenColorBrightness(DS_SCREEN_MAIN, COLOR_BLACK); SetScreenColorBrightness(DS_SCREEN_SUB, COLOR_BLACK); - BattleSystem_SetBurmyForm(battleSystem); + BattleSystem_SetBurmyForm(battleSys); - if (battleSystem->resultMask != 0x4) { - ov16_0223EF68(battleSystem, Party_GetPokemonBySlotIndex(battleSystem->parties[1], 0)); + if (battleSys->resultMask != 0x4) { + BattleSystem_InitCaptureAttempt(battleSys, Party_GetPokemonBySlotIndex(battleSys->parties[1], 0)); } for (battlerId = 0; battlerId < MAX_BATTLERS; battlerId++) { - Party_Copy(battleSystem->parties[battlerId], v1->parties[battlerId]); - Heap_Free(battleSystem->parties[battlerId]); - TrainerInfo_Copy(battleSystem->trainerInfo[battlerId], v1->trainerInfo[battlerId]); - Heap_Free(battleSystem->trainerInfo[battlerId]); - } - - sub_02015760(battleSystem->unk_1AC); - Bag_Copy(battleSystem->bag, v1->bag); - Heap_Free(battleSystem->bag); - Pokedex_Copy(battleSystem->pokedex, v1->pokedex); - Heap_Free(battleSystem->pokedex); - v1->pcBoxes = battleSystem->pcBoxes; - v1->bagCursor = battleSystem->bagCursor; - v1->subscreenCursorOn = battleSystem->unk_1BC; - v1->poketch = battleSystem->poketch; - v1->captureAttempt = battleSystem->captureAttempt; - v1->countSafariBalls = battleSystem->safariBalls; - v1->resultMask = battleSystem->resultMask & (0xc0 ^ 0xff); - v1->caughtBattlerIdx = battleSystem->caughtBattlerIdx; - v1->leveledUpMonsMask = BattleContext_Get(battleSystem, battleSystem->battleCtx, 4, NULL); - v1->battleRecords.totalTurns += BattleContext_Get(battleSystem, battleSystem->battleCtx, 3, NULL); - v1->battleRecords.totalFainted += (BattleContext_Get(battleSystem, battleSystem->battleCtx, 6, 0) + BattleContext_Get(battleSystem, battleSystem->battleCtx, 6, 2)); - v1->battleRecords.totalDamage += (BattleContext_Get(battleSystem, battleSystem->battleCtx, 7, 0) + BattleContext_Get(battleSystem, battleSystem->battleCtx, 7, 2)); - v1->totalTurnsElapsed = BattleContext_Get(battleSystem, battleSystem->battleCtx, 3, NULL); - v1->unk_19C = battleSystem->recordingStopped; + Party_Copy(battleSys->parties[battlerId], v1->parties[battlerId]); + Heap_Free(battleSys->parties[battlerId]); + TrainerInfo_Copy(battleSys->trainerInfo[battlerId], v1->trainerInfo[battlerId]); + Heap_Free(battleSys->trainerInfo[battlerId]); + } + + sub_02015760(battleSys->unk_1AC); + Bag_Copy(battleSys->bag, v1->bag); + Heap_Free(battleSys->bag); + Pokedex_Copy(battleSys->pokedex, v1->pokedex); + Heap_Free(battleSys->pokedex); + v1->pcBoxes = battleSys->pcBoxes; + v1->bagCursor = battleSys->bagCursor; + v1->subscreenCursorOn = battleSys->subscreenCursorOn; + v1->poketch = battleSys->poketch; + v1->captureAttempt = battleSys->captureAttempt; + v1->countSafariBalls = battleSys->safariBalls; + v1->resultMask = battleSys->resultMask & (0xc0 ^ 0xff); + v1->caughtBattlerIdx = battleSys->caughtBattlerIdx; + v1->leveledUpMonsMask = BattleContext_Get(battleSys, battleSys->battleCtx, 4, NULL); + v1->battleRecords.totalTurns += BattleContext_Get(battleSys, battleSys->battleCtx, 3, NULL); + v1->battleRecords.totalFainted += (BattleContext_Get(battleSys, battleSys->battleCtx, 6, 0) + BattleContext_Get(battleSys, battleSys->battleCtx, 6, 2)); + v1->battleRecords.totalDamage += (BattleContext_Get(battleSys, battleSys->battleCtx, 7, 0) + BattleContext_Get(battleSys, battleSys->battleCtx, 7, 2)); + v1->totalTurnsElapsed = BattleContext_Get(battleSys, battleSys->battleCtx, 3, NULL); + v1->unk_19C = battleSys->recordingStopped; for (battlerId = 0; battlerId < 4; battlerId++) { - Heap_Free(battleSystem->pokemonSpriteDataArray[battlerId].tiles); - } - - Heap_Free(battleSystem->msgBuffer); - PaletteData_FreeBuffer(battleSystem->paletteSys, 0); - PaletteData_FreeBuffer(battleSystem->paletteSys, 1); - PaletteData_FreeBuffer(battleSystem->paletteSys, 2); - PaletteData_FreeBuffer(battleSystem->paletteSys, 3); - PaletteData_Free(battleSystem->paletteSys); - MessageLoader_Free(battleSystem->unk_0C); - MessageLoader_Free(battleSystem->unk_10); - StringTemplate_Free(battleSystem->strFormatter); - PokemonAnimManager_Free(battleSystem->monAnimMan); + Heap_Free(battleSys->pokemonSpriteDataArray[battlerId].tiles); + } + + Heap_Free(battleSys->msgBuffer); + PaletteData_FreeBuffer(battleSys->paletteData, 0); + PaletteData_FreeBuffer(battleSys->paletteData, 1); + PaletteData_FreeBuffer(battleSys->paletteData, 2); + PaletteData_FreeBuffer(battleSys->paletteData, 3); + PaletteData_Free(battleSys->paletteData); + MessageLoader_Free(battleSys->msgLoader); + MessageLoader_Free(battleSys->attackMsgLoader); + StringTemplate_Free(battleSys->strFormatter); + PokemonAnimManager_Free(battleSys->monAnimMan); ParticleSystem_FreeAll(); - BattleAnimSystem_Delete(battleSystem->unk_8C); - BattleContext_Free(battleSystem->battleCtx); + BattleAnimSystem_Delete(battleSys->battleAnimSys); + BattleContext_Free(battleSys->battleCtx); - for (battlerId = 0; battlerId < battleSystem->maxBattlers; battlerId++) { - ov16_0225C104(battleSystem, battleSystem->battlers[battlerId], battleSystem->unk_23F9); + for (battlerId = 0; battlerId < battleSys->maxBattlers; battlerId++) { + ov16_0225C104(battleSys, battleSys->battlers[battlerId], battleSys->unk_23F9); } - PokemonSpriteManager_Free(battleSystem->unk_88); + PokemonSpriteManager_Free(battleSys->monSpriteMan); - if (battleSystem->unk_23F9 != 2) { - ov16_0223B3E4(battleSystem); + if (battleSys->unk_23F9 != 2) { + ov16_0223B3E4(battleSys); } RenderControlFlags_SetCanABSpeedUpPrint(FALSE); RenderControlFlags_SetAutoScrollFlags(AUTO_SCROLL_DISABLED); RenderControlFlags_SetSpeedUpOnTouch(FALSE); - Windows_Delete(battleSystem->windows, 3); - Heap_Free(battleSystem->unk_04); - Heap_Free(battleSystem->unk_21C); - Heap_Free(battleSystem->unk_220); - FontSpecialChars_Free(battleSystem->unk_1A4); + Windows_Delete(battleSys->windows, 3); + Heap_Free(battleSys->bgConfig); + Heap_Free(battleSys->unk_21C); + Heap_Free(battleSys->unk_220); + FontSpecialChars_Free(battleSys->specialCharsHP); Font_Free(FONT_SUBSCREEN); - SysTask_Done(battleSystem->unk_1C); - SysTask_Done(battleSystem->unk_20); + SysTask_Done(battleSys->task_1C); + SysTask_Done(battleSys->task_20); DisableTouchPad(); - ov16_0223CE20(battleSystem->unk_00); + ov16_0223CE20(battleSys->pipelineBuffers); - LCRNG_SetSeed(battleSystem->unk_2430); + LCRNG_SetSeed(battleSys->seedLCRNG); - if (ov16_0223F450(battleSystem)) { + if (BattleSystem_GetRedHPSoundFlag(battleSys)) { Sound_StopEffect(1796, 0); } - CellTransfer_Free(battleSystem->cellTransferState); + CellTransfer_Free(battleSys->cellTransferState); - if (BattleSystem_RecordingStopped(battleSystem)) { + if (BattleSystem_GetRecordingStopped(battleSys)) { Sound_SetMasterVolume(SOUND_VOLUME_MAX); } - if (battleSystem->playbackStopButton) { - ov16_0226E174(battleSystem->playbackStopButton); + if (battleSys->playbackStopButton) { + ov16_0226E174(battleSys->playbackStopButton); } - Heap_Free(battleSystem); + Heap_Free(battleSys); Overlay_UnloadByID(FS_OVERLAY_ID(overlay11)); Overlay_UnloadByID(FS_OVERLAY_ID(battle_anim)); @@ -912,13 +908,13 @@ static void ov16_0223C004(BattleSystem *battleSys, BgConfig *param1) { int v3; - v3 = ov16_0223EDE0(battleSys); + v3 = BattleSystem_GetOptionsFrame(battleSys); ReplaceTransparentTiles(param1, 1, 1, 10, v3, 5); Graphics_LoadTilesToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 3 + battleSys->background, param1, 3, 0, 0, 1, HEAP_ID_BATTLE); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 172 + (battleSys->background * 3) + ov16_0223EC04(battleSys), 5, 0, 0, 0); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxPaletteNARCMember(v3), 5, 0, 0x20, 10 * 0x10); - PaletteData_LoadBufferFromFileStart(battleSys->paletteSys, NARC_INDEX_GRAPHIC__PL_FONT, 7, 5, 0, 0x20, 0xb * 0x10); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 172 + (battleSys->background * 3) + BattleSystem_GetBackgroundTimeOffset(battleSys), 5, 0, 0, 0); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxPaletteNARCMember(v3), 5, 0, 0x20, 10 * 0x10); + PaletteData_LoadBufferFromFileStart(battleSys->paletteData, NARC_INDEX_GRAPHIC__PL_FONT, 7, 5, 0, 0x20, 0xb * 0x10); Graphics_LoadTilemapToBgLayer(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, 2, param1, 3, 0, 0, 1, HEAP_ID_BATTLE); } @@ -943,16 +939,16 @@ static void ov16_0223C210(BattleSystem *battleSys) BattleContext *v3; Pokemon *v4; - v0 = BattleSystem_Terrain(battleSys); + v0 = BattleSystem_GetTerrain(battleSys); ov16_022686CC(&battleSys->unk_17C[0], battleSys, 0, v0); ov16_022686CC(&battleSys->unk_17C[1], battleSys, 1, v0); - v3 = BattleSystem_Context(battleSys); + v3 = BattleSystem_GetBattleContext(battleSys); for (v1 = 0; v1 < battleSys->maxBattlers; v1++) { v2 = BattleContext_Get(battleSys, v3, 2, v1); - v4 = BattleSystem_PartyPokemon(battleSys, v1, v2); + v4 = BattleSystem_GetPartyPokemon(battleSys, v1, v2); ov16_0225C038(battleSys, battleSys->battlers[v1], Pokemon_GetValue(v4, MON_DATA_POKEBALL, NULL), v2); } @@ -1052,18 +1048,18 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) for (i = 0; i < 4; i++) { battleSys->trainerInfo[i] = TrainerInfo_New(HEAP_ID_BATTLE); TrainerInfo_Copy(dto->trainerInfo[i], battleSys->trainerInfo[i]); - battleSys->unk_78[i] = dto->chatotCries[i]; + battleSys->chatotCries[i] = dto->chatotCries[i]; } - battleSys->unk_2442 = dto->networkID; + battleSys->networkID = dto->networkID; for (i = 0; i < 4; i++) { battleSys->unk_2464[i] = dto->unk_178[i]; } - battleSys->unk_2430 = LCRNG_GetSeed(); - battleSys->unk_2444 = dto->seed; - battleSys->unk_2448 = dto->seed; + battleSys->seedLCRNG = LCRNG_GetSeed(); + battleSys->seedRandNext = dto->seed; + battleSys->seedDTO = dto->seed; battleSys->battleStatusMask = dto->battleStatusMask; battleSys->bag = Bag_New(HEAP_ID_BATTLE); @@ -1075,7 +1071,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) battleSys->options = dto->options; battleSys->palPad = dto->palPad; battleSys->bagCursor = dto->bagCursor; - battleSys->unk_1BC = dto->subscreenCursorOn; + battleSys->subscreenCursorOn = dto->subscreenCursorOn; battleSys->poketch = dto->poketch; battleSys->mapEvolutionMethod = dto->mapEvolutionMethod; battleSys->captureAttempt = dto->captureAttempt; @@ -1084,8 +1080,8 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) battleSys->background = dto->background; battleSys->mapHeader = dto->mapLabelTextID; battleSys->time = dto->timeOfDay; - battleSys->unk_2418 = dto->rulesetMask; - battleSys->unk_2424 = dto->visitedContestHall; + battleSys->rulesetMask = dto->rulesetMask; + battleSys->visitedContestHall = dto->visitedContestHall; battleSys->metBebe = dto->metBebe; battleSys->fieldWeather = dto->fieldWeather; battleSys->records = dto->records; @@ -1118,7 +1114,7 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) if (battleSys->battleType & BATTLE_TYPE_LINK) { sub_0207A6DC(battleSys); { - u8 v6 = ov16_0223F6E4(battleSys); + u8 v6 = BattleSystem_GetNetworkID(battleSys); int v7; ov16_0223DD90(battleSys, dto); @@ -1252,8 +1248,8 @@ static void ov16_0223C2C0(BattleSystem *battleSys, FieldBattleDTO *dto) } for (i = 0; i < battleSys->maxBattlers; i++) { - for (v1 = 0; v1 < BattleSystem_PartyCount(battleSys, i); v1++) { - v3 = BattleSystem_PartyPokemon(battleSys, i, v1); + for (v1 = 0; v1 < BattleSystem_GetPartyCount(battleSys, i); v1++) { + v3 = BattleSystem_GetPartyPokemon(battleSys, i, v1); if (i == 2) { if ((Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL)) && (Pokemon_GetValue(v3, MON_DATA_IS_EGG, NULL) == 0) && (Pokemon_GetValue(v3, MON_DATA_HP, NULL)) && (v8 != v1)) { @@ -1457,16 +1453,16 @@ static void ov16_0223CE28(void) static void ov16_0223CE68(void *param0) { - BattleSystem *v0 = param0; + BattleSystem *battleSys = param0; - if (v0->unk_23FB_0) { - v0->unk_23FB_0 = 0; + if (battleSys->unk_23FB_0) { + battleSys->unk_23FB_0 = 0; G2_BlendNone(); G2S_BlendNone(); } - if (v0->unk_23FB_1) { - v0->unk_23FB_1 = 0; + if (battleSys->unk_23FB_1) { + battleSys->unk_23FB_1 = 0; { GXBanks v1 = { GX_VRAM_BG_128_A, @@ -1485,8 +1481,8 @@ static void ov16_0223CE68(void *param0) } } - if (v0->unk_23FB_2) { - v0->unk_23FB_2 = 0; + if (battleSys->unk_23FB_2) { + battleSys->unk_23FB_2 = 0; { GXBanks v2 = { GX_VRAM_BG_128_A, @@ -1505,11 +1501,11 @@ static void ov16_0223CE68(void *param0) } } - PokemonSpriteManager_UpdateCharAndPltt(v0->unk_88); + PokemonSpriteManager_UpdateCharAndPltt(battleSys->monSpriteMan); VramTransfer_Process(); SpriteSystem_TransferOam(); - PaletteData_CommitFadedBuffers(v0->paletteSys); - Bg_RunScheduledUpdates(v0->unk_04); + PaletteData_CommitFadedBuffers(battleSys->paletteData); + Bg_RunScheduledUpdates(battleSys->bgConfig); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } @@ -1527,17 +1523,17 @@ static void ov16_0223CF1C(void *param0) static void ov16_0223CF48(SysTask *param0, void *param1) { - BattleSystem *v0 = param1; + BattleSystem *battleSys = param1; - sub_02038A1C(5, v0->unk_04); + sub_02038A1C(5, battleSys->bgConfig); - if ((v0->unk_23F9 == 0) || (v0->unk_23F9 == 3)) { - if (v0->unk_23F9 == 0) { + if ((battleSys->unk_23F9 == 0) || (battleSys->unk_23F9 == 3)) { + if (battleSys->unk_23F9 == 0) { ParticleHelper_DrawParticleSystems(); } - PokemonSpriteManager_DrawSprites(v0->unk_88); - SpriteSystem_DrawSprites(v0->spriteMan); + PokemonSpriteManager_DrawSprites(battleSys->monSpriteMan); + SpriteSystem_DrawSprites(battleSys->spriteMan); SpriteSystem_UpdateTransfer(); G3_RequestSwapBuffers(GX_SORTMODE_MANUAL, GX_BUFFERMODE_Z); } @@ -1545,7 +1541,7 @@ static void ov16_0223CF48(SysTask *param0, void *param1) static void ov16_0223CF8C(SysTask *param0, void *param1) { - BattleSystem *v0 = param1; + BattleSystem *battleSys = param1; BattlerData *v1; Healthbar *v2; int v3; @@ -1554,28 +1550,28 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) int v6; int v7; - v4 = BattleSystem_MaxBattlers(v0); + v4 = BattleSystem_GetMaxBattlers(battleSys); v5 = 0; - v6 = ov16_0223F450(v0); + v6 = BattleSystem_GetRedHPSoundFlag(battleSys); - if (BattleSystem_BattleType(v0) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + if (BattleSystem_GetBattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { return; } if (v6 & 2) { if (v6 & 1) { Sound_StopEffect(1796, 0); - BattleSystem_SetRedHPSoundFlag(v0, 2); + BattleSystem_SetRedHPSoundFlag(battleSys, 2); } return; } for (v3 = 0; v3 < v4; v3++) { - v1 = BattleSystem_BattlerData(v0, v3); + v1 = BattleSystem_GetBattlerData(battleSys, v3); - if (((Battler_BootState(v1) == 0x0) && ((BattleSystem_BattleStatus(v0) & 0x10) == 0)) || ((Battler_Side(v0, v3) == 0) && (BattleSystem_BattleStatus(v0) & 0x10))) { - v2 = ov16_02263B08(v1); + if (((Battler_BootState(v1) == 0x0) && ((BattleSystem_GetBattleStatusMask(battleSys) & 0x10) == 0)) || ((BattleSystem_GetBattlerSide(battleSys, v3) == 0) && (BattleSystem_GetBattleStatusMask(battleSys) & 0x10))) { + v2 = BattlerData_GetHealthbar(v1); if (v2 != NULL) { if (HealthBar_Color(v2->curHP, v2->maxHP, 8 * 6) == 1) { @@ -1585,24 +1581,24 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) } } - if ((v5) && (ov16_0223F450(v0) == 0)) { + if ((v5) && (BattleSystem_GetRedHPSoundFlag(battleSys) == 0)) { Sound_PlayEffect(SEQ_SE_DP_HINSI); - BattleSystem_SetRedHPSoundFlag(v0, 1); - ov16_0223F48C(v0, 4); - } else if ((v5 == 0) && (ov16_0223F450(v0))) { + BattleSystem_SetRedHPSoundFlag(battleSys, 1); + BattleSystem_SetRedHPSoundEffectDelay(battleSys, 4); + } else if ((v5 == 0) && (BattleSystem_GetRedHPSoundFlag(battleSys))) { Sound_StopEffect(1796, 0); - BattleSystem_SetRedHPSoundFlag(v0, 0); + BattleSystem_SetRedHPSoundFlag(battleSys, 0); } - if (ov16_0223F450(v0)) { - v7 = ov16_0223F47C(v0); + if (BattleSystem_GetRedHPSoundFlag(battleSys)) { + v7 = BattleSystem_GetRedHPSoundEffectDelay(battleSys); if (Sound_IsEffectPlaying(1796) == 0) { if (--v7 == 0) { Sound_PlayEffect(SEQ_SE_DP_HINSI); - ov16_0223F48C(v0, 4); + BattleSystem_SetRedHPSoundEffectDelay(battleSys, 4); } else { - ov16_0223F48C(v0, v7); + BattleSystem_SetRedHPSoundEffectDelay(battleSys, v7); } } } @@ -1610,12 +1606,12 @@ static void ov16_0223CF8C(SysTask *param0, void *param1) static void ov16_0223D0C4(SysTask *param0, void *param1) { - BattleSystem *v0 = param1; + BattleSystem *battleSys = param1; - v0->unk_2434 += 3; - Bg_SetOffset(v0->unk_04, BG_LAYER_MAIN_1, 3, v0->unk_2434); + battleSys->yOffset += 3; + Bg_SetOffset(battleSys->bgConfig, BG_LAYER_MAIN_1, BG_OFFSET_UPDATE_SET_Y, battleSys->yOffset); - if (v0->unk_2434 == 0) { + if (battleSys->yOffset == 0) { SysTask_Done(param0); } } @@ -2010,11 +2006,11 @@ static BOOL ov16_0223D800(ApplicationManager *appMan) case 0: case 3: battleSys->unk_1C0->unk_04[0] = battleSys->parties[v2]; - battleSys->unk_1C0->unk_04[2] = battleSys->parties[BattleSystem_Partner(battleSys, v2)]; + battleSys->unk_1C0->unk_04[2] = battleSys->parties[BattleSystem_GetPartner(battleSys, v2)]; break; case 1: case 2: - battleSys->unk_1C0->unk_04[0] = battleSys->parties[BattleSystem_Partner(battleSys, v2)]; + battleSys->unk_1C0->unk_04[0] = battleSys->parties[BattleSystem_GetPartner(battleSys, v2)]; battleSys->unk_1C0->unk_04[2] = battleSys->parties[v2]; break; } @@ -2041,16 +2037,16 @@ static BOOL ov16_0223D800(ApplicationManager *appMan) static BOOL ov16_0223D944(ApplicationManager *appMan) { int v0; - BattleSystem *v1 = ApplicationManager_Data(appMan); + BattleSystem *battleSys = ApplicationManager_Data(appMan); - if (v1->unk_1C0->unk_2B) { + if (battleSys->unk_1C0->unk_2B) { for (v0 = 0; v0 < 4; v0++) { - if (v1->unk_1C0->unk_14[v0] != NULL) { - Heap_Free(v1->unk_1C0->unk_14[v0]); + if (battleSys->unk_1C0->unk_14[v0] != NULL) { + Heap_Free(battleSys->unk_1C0->unk_14[v0]); } } - Heap_Free(v1->unk_1C0); + Heap_Free(battleSys->unk_1C0); return 1; } @@ -2101,16 +2097,16 @@ static BOOL ov16_0223D98C(ApplicationManager *appMan) static BOOL ov16_0223DAD4(ApplicationManager *appMan) { int v0; - BattleSystem *v1 = ApplicationManager_Data(appMan); + BattleSystem *battleSys = ApplicationManager_Data(appMan); - if (v1->unk_1C0->unk_2B) { + if (battleSys->unk_1C0->unk_2B) { for (v0 = 0; v0 < 4; v0++) { - if (v1->unk_1C0->unk_14[v0] != NULL) { - Heap_Free(v1->unk_1C0->unk_14[v0]); + if (battleSys->unk_1C0->unk_14[v0] != NULL) { + Heap_Free(battleSys->unk_1C0->unk_14[v0]); } } - Heap_Free(v1->unk_1C0); + Heap_Free(battleSys->unk_1C0); return 1; } diff --git a/src/battle/ov16_0223DF00.c b/src/battle/ov16_0223DF00.c deleted file mode 100644 index 37ba70a454..0000000000 --- a/src/battle/ov16_0223DF00.c +++ /dev/null @@ -1,2319 +0,0 @@ -#include "battle/ov16_0223DF00.h" - -#include -#include - -#include "constants/battle.h" -#include "constants/game_options.h" -#include "constants/heap.h" -#include "constants/items.h" -#include "constants/rtc.h" -#include "generated/battle_backgrounds.h" -#include "generated/species.h" -#include "generated/trainer_message_types.h" -#include "generated/trainer_score_events.h" - -#include "struct_decls/battle_system.h" -#include "struct_decls/pc_boxes_decl.h" -#include "struct_decls/pokedexdata_decl.h" -#include "struct_defs/battle_system.h" -#include "struct_defs/chatot_cry.h" -#include "struct_defs/trainer.h" - -#include "battle/battle_context.h" -#include "battle/battle_cursor.h" -#include "battle/battle_display.h" -#include "battle/battle_lib.h" -#include "battle/battle_message.h" -#include "battle/common.h" -#include "battle/healthbar.h" -#include "battle/ov16_02268520.h" -#include "battle/ov16_0226E148.h" -#include "battle/pokemon_sprite_data.h" -#include "battle/struct_ov16_0225BFFC_decl.h" -#include "battle/struct_ov16_022674C4.h" -#include "battle/struct_ov16_02268520.h" -#include "battle/struct_ov16_02268A14_decl.h" -#include "battle/struct_ov16_0226D160_decl.h" -#include "battle_anim/battle_anim_system.h" - -#include "bag.h" -#include "bg_window.h" -#include "enums.h" -#include "field_battle_data_transfer.h" -#include "flags.h" -#include "font.h" -#include "font_special_chars.h" -#include "game_options.h" -#include "game_records.h" -#include "heap.h" -#include "item.h" -#include "message.h" -#include "palette.h" -#include "party.h" -#include "pokedex.h" -#include "pokemon.h" -#include "pokemon_anim.h" -#include "pokemon_sprite.h" -#include "poketch.h" -#include "render_text.h" -#include "render_window.h" -#include "screen_fade.h" -#include "sound.h" -#include "sound_playback.h" -#include "sprite.h" -#include "sprite_system.h" -#include "string_gf.h" -#include "string_template.h" -#include "text.h" -#include "trainer_data.h" -#include "trainer_info.h" -#include "tv_episode_segment.h" -#include "unk_02014A84.h" -#include "unk_0202F1D4.h" - -static void BattleMessage_CheckSide(BattleSystem *battleSys, BattleMessage *battleMsg); -static void BattleMessage_FillFormatBuffers(BattleSystem *battleSys, BattleMessage *battleMsg); -static void BattleMessage_Format(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg); -static BOOL BattleMessage_Callback(TextPrinterTemplate *param0, u16 param1); -static void BattleMessage_Nickname(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_MoveName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_ItemName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_Number(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_NumberDigits(BattleSystem *battleSystem, u32 param1, int param2, int param3); -static void BattleMessage_TypeName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_AbilityName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_StatName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_StatusName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_PokemonName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_PoffinName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_FlavorName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_TrainerClassName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_TrainerName(BattleSystem *battleSystem, u32 param1, int param2); -static void BattleMessage_PCBoxName(BattleSystem *battleSystem, u32 param1, int param2); -static u8 ov16_0223F6D4(u8 *param0, u8 *param1, u16 *param2); - -BgConfig *BattleSystem_BGL(BattleSystem *battleSystem) -{ - return battleSystem->unk_04; -} - -Window *BattleSystem_Window(BattleSystem *battleSys, int idx) -{ - return &battleSys->windows[idx]; -} - -u32 BattleSystem_BattleType(BattleSystem *battleSys) -{ - return battleSys->battleType; -} - -BattleContext *BattleSystem_Context(BattleSystem *battleSys) -{ - return battleSys->battleCtx; -} - -BattlerData *BattleSystem_BattlerData(BattleSystem *battleSys, int battler) -{ - return battleSys->battlers[battler]; -} - -int BattleSystem_MaxBattlers(BattleSystem *battleSys) -{ - return battleSys->maxBattlers; -} - -Party *BattleSystem_Party(BattleSystem *battleSystem, int param1) -{ - if ((battleSystem->battleType & BATTLE_TYPE_2vs2) || ((battleSystem->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSystem, param1) & 0x1))) { - return battleSystem->parties[param1]; - } else if (battleSystem->battleType & BATTLE_TYPE_DOUBLES) { - return battleSystem->parties[param1 & 1]; - } else { - return battleSystem->parties[param1]; - } -} - -int BattleSystem_PartyCount(BattleSystem *battleSys, int battler) -{ - if ((battleSys->battleType & BATTLE_TYPE_2vs2) - || ((battleSys->battleType & BATTLE_TYPE_TAG) - && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_THEM))) { - return Party_GetCurrentCount(battleSys->parties[battler]); - } else if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { - return Party_GetCurrentCount(battleSys->parties[battler & 1]); - } else { - return Party_GetCurrentCount(battleSys->parties[battler]); - } -} - -Pokemon *BattleSystem_PartyPokemon(BattleSystem *battleSys, int battler, int slot) -{ - if ((battleSys->battleType & BATTLE_TYPE_2vs2) - || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_ENEMY_1))) { - return Party_GetPokemonBySlotIndex(battleSys->parties[battler], slot); - } - - if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { - return Party_GetPokemonBySlotIndex(battleSys->parties[battler & 1], slot); - } - - return Party_GetPokemonBySlotIndex(battleSys->parties[battler], slot); -} - -PokemonSpriteManager *BattleSystem_GetPokemonSpriteManager(BattleSystem *battleSystem) -{ - return battleSystem->unk_88; -} - -BattleAnimSystem *ov16_0223E008(BattleSystem *battleSystem) -{ - return battleSystem->unk_8C; -} - -SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSystem) -{ - return battleSystem->spriteSys; -} - -SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSystem) -{ - return battleSystem->spriteMan; -} - -UnkStruct_ov16_02268520 *ov16_0223E020(BattleSystem *battleSystem, int param1) -{ - return &battleSystem->unk_17C[param1]; -} - -UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSystem) -{ - return battleSystem->unk_198; -} - -PartyGauge *BattleSystem_GetPartyGauge(BattleSystem *battleSystem, enum PartyGaugeSide partyGaugeSide) -{ - return battleSystem->partyGauges[partyGaugeSide]; -} - -void BattleSystem_SetPartyGauge(BattleSystem *battleSystem, enum PartyGaugeSide partyGaugeSide, PartyGauge *partyGauge) -{ - battleSystem->partyGauges[partyGaugeSide] = partyGauge; -} - -FontSpecialCharsContext *ov16_0223E04C(BattleSystem *battleSystem) -{ - return battleSystem->unk_1A4; -} - -FontSpecialCharsContext *ov16_0223E054(BattleSystem *battleSystem) -{ - return battleSystem->unk_1A8; -} - -MessageLoader *BattleSystem_GetMessageLoader(BattleSystem *battleSystem) -{ - return battleSystem->unk_0C; -} - -MessageLoader *ov16_0223E060(BattleSystem *battleSystem) -{ - return battleSystem->unk_10; -} - -PaletteData *BattleSystem_PaletteSys(BattleSystem *battleSystem) -{ - return battleSystem->paletteSys; -} - -Pokedex *BattleSystem_GetPokedex(BattleSystem *battleSystem) -{ - return battleSystem->pokedex; -} - -u8 *ov16_0223E06C(BattleSystem *battleSystem) -{ - return &battleSystem->unk_224[0]; -} - -u8 *ov16_0223E074(BattleSystem *battleSystem) -{ - return &battleSystem->unk_1224[0]; -} - -u16 *ov16_0223E080(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23E4; -} - -u16 *ov16_0223E08C(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23E6; -} - -u16 *ov16_0223E098(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23E8; -} - -u16 *ov16_0223E0A4(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23EA; -} - -u16 *ov16_0223E0B0(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23EC; -} - -u16 *ov16_0223E0BC(BattleSystem *battleSystem) -{ - return &battleSystem->unk_23EE; -} - -PokemonSpriteData *ov16_0223E0C8(BattleSystem *battleSystem) -{ - return &battleSystem->pokemonSpriteDataArray[0]; -} - -StringTemplate *BattleSystem_StringTemplate(BattleSystem *battleSystem) -{ - return battleSystem->strFormatter; -} - -String *BattleSystem_GetMsgBuffer(BattleSystem *battleSystem) -{ - return battleSystem->msgBuffer; -} - -u16 Battler_TrainerID(BattleSystem *battleSys, int battler) -{ - if ((battleSys->battleType & BATTLE_TYPE_2vs2) - || ((battleSys->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_THEM))) { - return battleSys->trainerIDs[battler]; - } - - if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { - return battleSys->trainerIDs[battler & 1]; - } - - return battleSys->trainerIDs[battler]; -} - -Trainer *BattleSystem_GetTrainer(BattleSystem *battleSystem, int param1) -{ - if ((battleSystem->battleType & BATTLE_TYPE_2vs2) || ((battleSystem->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSystem, param1) & 0x1))) { - return &battleSystem->trainers[param1]; - } else if (battleSystem->battleType & BATTLE_TYPE_DOUBLES) { - return &battleSystem->trainers[param1 & 1]; - } else { - return &battleSystem->trainers[param1]; - } -} - -TrainerInfo *BattleSystem_TrainerInfo(BattleSystem *battleSys, int battler) -{ - if ((battleSys->battleType & BATTLE_TYPE_2vs2) - || ((battleSys->battleType & BATTLE_TYPE_TAG) - && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_TYPE_SOLO_ENEMY))) { - return battleSys->trainerInfo[battler]; - } - - if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { - return battleSys->trainerInfo[battler & 1]; - } - - return battleSys->trainerInfo[battler]; -} - -Bag *BattleSystem_Bag(BattleSystem *battleSystem) -{ - return battleSystem->bag; -} - -BagCursor *BattleSystem_BagCursor(BattleSystem *battleSystem) -{ - return battleSystem->bagCursor; -} - -u32 BattleSystem_GetTrainerGender(BattleSystem *battleSystem, int battler) -{ - return TrainerInfo_Gender(battleSystem->trainerInfo[battler]); -} - -int BattleSystem_BattlerOfType(BattleSystem *battleSys, int type) -{ - int i; - for (i = 0; i < battleSys->maxBattlers; i++) { - if (Battler_Type(battleSys->battlers[i]) == type) { - break; - } - } - - GF_ASSERT(i < battleSys->maxBattlers); - return i; -} - -u8 BattleSystem_BattlerSlot(BattleSystem *battleSys, int battler) -{ - return Battler_Type(battleSys->battlers[battler]); -} - -u8 Battler_Side(BattleSystem *battleSystem, int battler) -{ - return Battler_Type(battleSystem->battlers[battler]) & 1; -} - -UnkStruct_020157E4 *ov16_0223E220(BattleSystem *battleSystem) -{ - return battleSystem->unk_1AC; -} - -PCBoxes *BattleSystem_PCBoxes(BattleSystem *battleSystem) -{ - return battleSystem->pcBoxes; -} - -enum BattleTerrain BattleSystem_Terrain(BattleSystem *battleSys) -{ - if (battleSys->terrain > TERRAIN_MAX || battleSys->terrain < TERRAIN_PLAIN) { - return TERRAIN_MAX; - } - - return battleSys->terrain; -} - -enum BattleBackground BattleSystem_Background(BattleSystem *battleSystem) -{ - return battleSystem->background; -} - -int BattleSystem_MapHeader(BattleSystem *battleSystem) -{ - return battleSystem->mapHeader; -} - -int BattleSystem_Partner(BattleSystem *battleSys, int battler) -{ - int i; - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - u32 battleType = BattleSystem_BattleType(battleSys); - - if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE) { - return battler; - } - - for (i = 0; i < maxBattlers; i++) { - if (i != battler && Battler_Side(battleSys, i) == Battler_Side(battleSys, battler)) { - break; - } - } - - return i; -} - -int BattleSystem_EnemyInSlot(BattleSystem *battleSys, int attacker, int slot) -{ - int maxBattlers = BattleSystem_MaxBattlers(battleSys); - u32 battleType = BattleSystem_BattleType(battleSys); - - // In double battles, return the singular opponent - if ((battleType & BATTLE_TYPE_DOUBLES) == FALSE) { - return attacker ^ 1; - } - - int battler; - for (battler = 0; battler < maxBattlers; battler++) { - if (battler != attacker - && (BattleSystem_BattlerSlot(battleSys, battler) & 2) == slot - && Battler_Side(battleSys, battler) != Battler_Side(battleSys, attacker)) { - break; - } - } - - return battler; -} - -BOOL BattleSystem_UseBagItem(BattleSystem *battleSys, int battler, int partySlot, int moveSlot, int item) -{ - // must maintain this order of declarations to match - BattleContext *battleCtx = battleSys->battleCtx; - Pokemon *mon; - BOOL result = FALSE; - int param; - int selectedSlot = BattleContext_Get(battleSys, battleCtx, 2, battler); - - int targetSlot; - if (BattleSystem_BattleType(battleSys) == BATTLE_TYPE_TRAINER_DOUBLES - || ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) - && (BattleSystem_BattlerSlot(battleSys, battler) & BATTLER_THEM) == FALSE)) { - targetSlot = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, BattleSystem_Partner(battleSys, battler)); - if (targetSlot == partySlot) { - battler = BattleSystem_Partner(battleSys, battler); - } - } else { - targetSlot = selectedSlot; - } - - mon = BattleSystem_PartyPokemon(battleSys, battler, partySlot); - int friendship = 0; - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_SLEEP, HEAP_ID_BATTLE)) { - param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); - if (param & MON_CONDITION_SLEEP) { - param &= ~MON_CONDITION_SLEEP; - Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); - - if (selectedSlot == partySlot || targetSlot == partySlot) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); - param &= ~MON_CONDITION_SLEEP; - BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); - - param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); - param &= ~VOLATILE_CONDITION_NIGHTMARE; - BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_POISON, HEAP_ID_BATTLE)) { - param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); - if (param & MON_CONDITION_ANY_POISON) { - param &= ~MON_CONDITION_ANY_POISON; - Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); - - if (selectedSlot == partySlot || targetSlot == partySlot) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); - param &= ~MON_CONDITION_ANY_POISON; - BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_BURN, HEAP_ID_BATTLE)) { - param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); - if (param & MON_CONDITION_BURN) { - param &= ~MON_CONDITION_BURN; - Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); - - if (selectedSlot == partySlot || targetSlot == partySlot) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); - param &= ~MON_CONDITION_BURN; - BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_FREEZE, HEAP_ID_BATTLE)) { - param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); - if (param & MON_CONDITION_FREEZE) { - param &= ~MON_CONDITION_FREEZE; - Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); - - if (selectedSlot == partySlot || targetSlot == partySlot) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); - param &= ~MON_CONDITION_FREEZE; - BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_PARALYSIS, HEAP_ID_BATTLE)) { - param = Pokemon_GetValue(mon, MON_DATA_STATUS, NULL); - if (param & MON_CONDITION_PARALYSIS) { - param &= ~MON_CONDITION_PARALYSIS; - Pokemon_SetValue(mon, MON_DATA_STATUS, ¶m); - - if (selectedSlot == partySlot || targetSlot == partySlot) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_STATUS, NULL); - param &= ~MON_CONDITION_PARALYSIS; - BattleMon_Set(battleCtx, battler, BATTLEMON_STATUS, ¶m); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_CONFUSION, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot)) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); - if (param & VOLATILE_CONDITION_CONFUSION) { - param &= ~VOLATILE_CONDITION_CONFUSION; - BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HEAL_ATTRACT, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot)) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); - if (param & VOLATILE_CONDITION_ATTRACT) { - param &= ~VOLATILE_CONDITION_ATTRACT; - BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_GUARD_SPEC, HEAP_ID_BATTLE)) { - param = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SIDE_MIST_TURNS, battler); - if (param == 0) { - param = BattleContext_Get(battleSys, battleCtx, BATTLECTX_SIDE_CONDITIONS_MASK, battler); - param |= SIDE_CONDITION_MIST; - - BattleContext_Set(battleSys, battleCtx, BATTLECTX_SIDE_CONDITIONS_MASK, battler, param); - BattleContext_Set(battleSys, battleCtx, BATTLECTX_SIDE_MIST_TURNS, battler, 5); - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_ATK_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_ATTACK_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_ATTACK_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_DEF_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_DEFENSE_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_DEFENSE_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_SPATK_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_SP_ATTACK_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_SP_ATTACK_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_SPDEF_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_SP_DEFENSE_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_SP_DEFENSE_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_SPEED_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_SPEED_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_SPEED_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_ACC_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot) - && BattleMon_Get(battleCtx, battler, BATTLEMON_ACCURACY_STAGE, NULL) < 12) { - Battler_AddVal(battleCtx, battler, BATTLEMON_ACCURACY_STAGE, 1); - result = TRUE; - } - - if (Item_LoadParam(item, ITEM_PARAM_CRIT_STAGES, HEAP_ID_BATTLE) - && (selectedSlot == partySlot || targetSlot == partySlot)) { - param = BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL); - - if ((param & VOLATILE_CONDITION_FOCUS_ENERGY) == FALSE) { - param |= VOLATILE_CONDITION_FOCUS_ENERGY; - BattleMon_Set(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, ¶m); - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_PP_RESTORE, HEAP_ID_BATTLE)) { - param = Item_LoadParam(item, ITEM_PARAM_PP_RESTORED, HEAP_ID_BATTLE); - - if (Pokemon_GetValue(mon, MON_DATA_MOVE1_PP + moveSlot, NULL) != Pokemon_GetValue(mon, MON_DATA_MOVE1_MAX_PP + moveSlot, NULL)) { - Pokemon_IncreaseValue(mon, MON_DATA_MOVE1_PP + moveSlot, param); - - // Don't permit restoring PP on copied moves - if ((selectedSlot == partySlot || targetSlot == partySlot) - && (BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL) & VOLATILE_CONDITION_TRANSFORM) == FALSE - && (BattleMon_Get(battleCtx, battler, BATTLEMON_MIMICKED_MOVE_SLOT, NULL) & FlagIndex(moveSlot)) == FALSE) { - Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_PP_1 + moveSlot, param); - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_PP_RESTORE_ALL, HEAP_ID_BATTLE)) { - param = Item_LoadParam(item, ITEM_PARAM_PP_RESTORED, HEAP_ID_BATTLE); - - for (moveSlot = 0; moveSlot < LEARNED_MOVES_MAX; moveSlot++) { - if (Pokemon_GetValue(mon, MON_DATA_MOVE1_PP + moveSlot, NULL) != Pokemon_GetValue(mon, MON_DATA_MOVE1_MAX_PP + moveSlot, NULL)) { - Pokemon_IncreaseValue(mon, MON_DATA_MOVE1_PP + moveSlot, param); - - if ((selectedSlot == partySlot || targetSlot == partySlot) - && (BattleMon_Get(battleCtx, battler, BATTLEMON_VOLATILE_STATUS, NULL) & VOLATILE_CONDITION_TRANSFORM) == FALSE - && (BattleMon_Get(battleCtx, battler, BATTLEMON_MIMICKED_MOVE_SLOT, NULL) & FlagIndex(moveSlot)) == FALSE) { - Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_PP_1 + moveSlot, param); - } - - result = TRUE; - } - } - } - - if (Item_LoadParam(item, ITEM_PARAM_HP_RESTORE, HEAP_ID_BATTLE)) { - param = 0; - - if (Item_LoadParam(item, ITEM_PARAM_REVIVE, HEAP_ID_BATTLE)) { - if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) == 0) { - param = 1; - } - } else { - param = Pokemon_GetValue(mon, MON_DATA_HP, NULL); - } - - if (param && Pokemon_GetValue(mon, MON_DATA_HP, NULL) != Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL)) { - param = Item_LoadParam(item, ITEM_PARAM_HP_RESTORED, HEAP_ID_BATTLE); - - switch (param) { - case 0xFF: - param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL); - break; - - case 0xFE: - param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL) / 2; - - if (param == 0) { - param = 1; - } - break; - - case 0xFD: - param = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL) * 25 / 100; - - if (param == 0) { - param = 1; - } - break; - - default: - break; - } - - Pokemon_IncreaseValue(mon, MON_DATA_HP, param); - - if (Item_LoadParam(item, ITEM_PARAM_REVIVE, HEAP_ID_BATTLE) == FALSE) { - if (Battler_Side(battleSys, battler)) { - BattleMon_Set(battleCtx, battler, BATTLEMON_ITEM_HP_RECOVERY, ¶m); - } else if (selectedSlot == partySlot || targetSlot == partySlot) { - Battler_AddVal(battleCtx, battler, BATTLEMON_CUR_HP, param); - } - } - - result = TRUE; - } - } - - if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_LOW, HEAP_ID_BATTLE) - && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) < 100 - && result == TRUE) { - friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_LOW, HEAP_ID_BATTLE); - } - - if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_MED, HEAP_ID_BATTLE) - && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) >= 100 - && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) < 200 - && result == TRUE) { - friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_MED, HEAP_ID_BATTLE); - } - - if (Item_LoadParam(item, ITEM_PARAM_GIVE_FRIENDSHIP_HIGH, HEAP_ID_BATTLE) - && Pokemon_GetValue(mon, MON_DATA_FRIENDSHIP, NULL) >= 200 - && result == TRUE) { - friendship = Item_LoadParam(item, ITEM_PARAM_FRIENDSHIP_HIGH, HEAP_ID_BATTLE); - } - - if (friendship) { - if (friendship > 0) { - if (Pokemon_GetValue(mon, MON_DATA_POKEBALL, NULL) == ITEM_LUXURY_BALL) { - friendship++; - } - - if (Pokemon_GetValue(mon, MON_DATA_EGG_LOCATION, NULL) == BattleSystem_MapHeader(battleSys)) { - friendship++; - } - - param = Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL); - if (Item_LoadParam(item, ITEM_PARAM_HOLD_EFFECT, HEAP_ID_BATTLE) == HOLD_EFFECT_FRIENDSHIP_UP) { - friendship = friendship * 150 / 100; - } - } - - Pokemon_IncreaseValue(mon, MON_DATA_FRIENDSHIP, friendship); - if (selectedSlot == partySlot || targetSlot == partySlot) { - Battler_AddVal(battleCtx, battler, BATTLEMON_FRIENDSHIP, friendship); - } - } - - return result; -} - -u32 BattleSystem_BattleStatus(BattleSystem *battleSys) -{ - return battleSys->battleStatusMask; -} - -enum TimeOfDay BattleSystem_Time(BattleSystem *battleSys) -{ - return battleSys->time; -} - -int ov16_0223EC04(BattleSystem *battleSystem) -{ - int v0; - - switch (battleSystem->background) { - case BACKGROUND_PLAIN: - case BACKGROUND_WATER: - case BACKGROUND_CITY: - case BACKGROUND_FOREST: - case BACKGROUND_MOUNTAIN: - case BACKGROUND_SNOW: - switch (battleSystem->time) { - case TIMEOFDAY_MORNING: - case TIMEOFDAY_DAY: - v0 = 0; - break; - case TIMEOFDAY_TWILIGHT: - v0 = 1; - break; - case TIMEOFDAY_NIGHT: - case TIMEOFDAY_LATE_NIGHT: - v0 = 2; - break; - } - break; - default: - v0 = 0; - break; - } - - return v0; -} - -u8 ov16_0223EC58(BattleSystem *battleSystem, int param1, u8 param2) -{ - u16 v0; - - if ((BattleSystem_BattlerSlot(battleSystem, param1) == 4) && ((battleSystem->battleType & BATTLE_TYPE_2vs2) == 0)) { - if (battleSystem->battleType & BATTLE_TYPE_LINK) { - if ((param2 & FlagIndex(BattleSystem_Partner(battleSystem, param1))) == 0) { - return 1; - } - } else { - v0 = BattleContext_Get(battleSystem, battleSystem->battleCtx, 12, 0) & 0xffff; - - if (((BattleContext_Get(battleSystem, battleSystem->battleCtx, 8, 0) == 14) && (v0 > 16)) || (param2 & FlagIndex(0))) { - return 0; - } else { - return 1; - } - } - } - - return 0; -} - -u16 Battle_FindEvolvingPartyMember(FieldBattleDTO *dto, int *outPartySlot, int *outEvoType) -{ - Pokemon *mon; - u16 species = SPECIES_NONE; - - if (dto->resultMask != BATTLE_RESULT_WIN - && dto->resultMask != BATTLE_RESULT_CAPTURED_MON - && dto->resultMask != BATTLE_RESULT_PLAYER_FLED) { - return SPECIES_NONE; - } - - while (dto->leveledUpMonsMask) { - for (*outPartySlot = 0; *outPartySlot < 6; (*outPartySlot)++) { - if (dto->leveledUpMonsMask & FlagIndex(*outPartySlot)) { - dto->leveledUpMonsMask &= (FlagIndex(*outPartySlot) ^ 0xFFFFFFFF); - break; - } - } - - if (*outPartySlot < 6) { - mon = Party_GetPokemonBySlotIndex(dto->parties[BATTLE_SIDE_PLAYER], *outPartySlot); - species = Pokemon_GetEvolutionTargetSpecies(dto->parties[BATTLE_SIDE_PLAYER], mon, EVO_CLASS_BY_LEVEL, dto->mapEvolutionMethod, outEvoType); - if (species) { - return species; - } - } - } - - return species; -} - -u8 ov16_0223ED60(BattleSystem *battleSystem) -{ - return battleSystem->unk_23F8; -} - -u8 ov16_0223ED6C(BattleSystem *battleSystem) -{ - GF_ASSERT(battleSystem->battleCtx != NULL); - return BattleContext_Get(battleSystem, battleSystem->battleCtx, 5, NULL); -} - -int BattleSystem_NumSafariBalls(BattleSystem *battleSystem) -{ - return battleSystem->safariBalls; -} - -void BattleSystem_SetSafariBalls(BattleSystem *battleSystem, int param1) -{ - battleSystem->safariBalls = param1; -} - -Options *BattleSystem_GetOptions(BattleSystem *battleSystem) -{ - return battleSystem->options; -} - -BOOL BattleSystem_AnimationsOn(BattleSystem *battleSys) -{ - if ((battleSys->battleType & BATTLE_TYPE_LINK) - && (battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) { - return TRUE; - } - - return Options_BattleScene(battleSys->options) == OPTIONS_BATTLE_SCENE_ON; -} - -int ov16_0223EDE0(BattleSystem *battleSystem) -{ - return Options_Frame(battleSystem->options); -} - -u8 BattleSystem_TextSpeed(BattleSystem *battleSystem) -{ - if ((battleSystem->battleType & 0x4) && ((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) == 0)) { - return 1; - } - - return Options_TextFrameDelay(battleSystem->options); -} - -int BattleSystem_Ruleset(BattleSystem *battleSystem) -{ - return Options_BattleStyle(battleSystem->options); -} - -PokemonAnimManager *BattleSystem_GetPokemonAnimManager(BattleSystem *battleSystem) -{ - return battleSystem->monAnimMan; -} - -ChatotCry *BattleSystem_ChatotVoice(BattleSystem *battleSystem, int param1) -{ - if ((battleSystem->battleType & BATTLE_TYPE_2vs2) || ((battleSystem->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSystem, param1) & 0x1))) { - return battleSystem->unk_78[param1]; - } else if (battleSystem->battleType & BATTLE_TYPE_DOUBLES) { - return battleSystem->unk_78[param1 & 1]; - } else { - return battleSystem->unk_78[param1]; - } -} - -void BattleSystem_SetBurmyForm(BattleSystem *battleSys) -{ - int i, form; - - if (battleSys->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER | BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { - return; - } - - for (i = 0; i < BattleSystem_PartyCount(battleSys, 0); i++) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, 0, i); - u16 species = Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL); - - if (species == SPECIES_BURMY && (battleSys->unk_2414[0] & FlagIndex(i))) { - switch (BattleSystem_Terrain(battleSys)) { - default: - case TERRAIN_GRASS: - form = BURMY_FORM_PLANT; - break; - case TERRAIN_PLAIN: - case TERRAIN_SAND: - case TERRAIN_MOUNTAIN: - case TERRAIN_CAVE: - case TERRAIN_DISTORTION_WORLD: - case TERRAIN_GIRATINA: - form = BURMY_FORM_SAND; - break; - case TERRAIN_BUILDING: - case TERRAIN_BRIDGE: - case TERRAIN_AARON: - case TERRAIN_BERTHA: - case TERRAIN_FLINT: - case TERRAIN_LUCIAN: - case TERRAIN_CYNTHIA: - case TERRAIN_BATTLE_TOWER: - case TERRAIN_BATTLE_FACTORY: - case TERRAIN_BATTLE_ARCADE: - case TERRAIN_BATTLE_CASTLE: - case TERRAIN_BATTLE_HALL: - form = BURMY_FORM_TRASH; - break; - } - - Pokemon_SetValue(mon, MON_DATA_FORM, &form); - } - } -} - -void ov16_0223EF2C(BattleSystem *battleSystem, int param1, int param2) -{ - battleSystem->unk_2414[param1] |= FlagIndex(param2); -} - -void ov16_0223EF48(BattleSystem *battleSystem, Pokemon *param1) -{ - if (battleSystem->poketch) { - Poketch_PokemonHistoryEnqueue(battleSystem->poketch, Pokemon_GetBoxPokemon(param1)); - } -} - -void ov16_0223EF68(BattleSystem *battleSystem, Pokemon *param1) -{ - CaptureAttempt_Init(battleSystem->captureAttempt, param1, battleSystem->resultMask, battleSystem->ballsThrown, HEAP_ID_BATTLE); -} - -void ov16_0223EF8C(BattleSystem *battleSystem) -{ - NNSG2dImageProxy *v0; - int v1, v2, v3, v4, v5, v6; - u8 *v7; - - battleSystem->unk_21C = Heap_Alloc(HEAP_ID_BATTLE, 0x10000); - battleSystem->unk_220 = Heap_Alloc(HEAP_ID_BATTLE, 0x200); - - MI_CpuCopy32((void *)(HW_BG_VRAM + 0x10000), battleSystem->unk_21C, 0x10000); - MI_CpuCopy32(PaletteData_GetUnfadedBuffer(battleSystem->paletteSys, 0), battleSystem->unk_220, HW_BG_PLTT_SIZE); - - v7 = G2_GetOBJCharPtr(); - v0 = Sprite_GetImageProxy(battleSystem->unk_17C[1].unk_00->sprite); - v7 += v0->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; - - for (v2 = 20; v2 < 20 + 8; v2++) { - for (v1 = 16; v1 < 32; v1++) { - v3 = v1 - 16; - v4 = v2 - 20; - - for (v6 = 0; v6 < 0x40; v6++) { - if (v3 < 8) { - if (v6 & 1) { - v5 = (v7[v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf0) >> 4; - } else { - v5 = (v7[v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf); - } - } else { - if (v6 & 1) { - v5 = (v7[0x700 + v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf0) >> 4; - } else { - v5 = (v7[0x700 + v4 * 0x100 + v3 * 0x20 + v6 / 2] & 0xf); - } - } - - if (v5) { - battleSystem->unk_21C[v2 * 0x800 + v1 * 0x40 + v6] = v5 + 0x70; - } - } - } - } - - v7 = G2_GetOBJCharPtr(); - v0 = Sprite_GetImageProxy(battleSystem->unk_17C[0].unk_00->sprite); - v7 += v0->vramLocation.baseAddrOfVram[NNS_G2D_VRAM_TYPE_2DMAIN]; - - for (v6 = 0; v6 < 0x40 * 32; v6++) { - if (v6 & 1) { - v5 = (v7[v6 / 2] & 0xf0) >> 4; - } else { - v5 = (v7[v6 / 2] & 0xf); - } - - if (v5) { - battleSystem->unk_21C[19 * 0x800 + v6] = v5 + 0x70; - } - } - - for (v2 = 28; v2 < 28 + 4; v2++) { - for (v1 = 0; v1 < 24; v1++) { - v3 = v1; - v4 = v2 - 28; - - for (v6 = 0; v6 < 0x40; v6++) { - if (v6 & 1) { - v5 = (v7[0x400 + (v3 / 8) * 0x400 + ((v3 % 8) * 0x20) + (v4 * 0x100) + v6 / 2] & 0xf0) >> 4; - } else { - v5 = (v7[0x400 + (v3 / 8) * 0x400 + ((v3 % 8) * 0x20) + (v4 * 0x100) + v6 / 2] & 0xf); - } - - if (v5) { - battleSystem->unk_21C[v2 * 0x800 + v1 * 0x40 + v6] = v5 + 0x70; - } - } - } - } - - Bg_LoadTiles(battleSystem->unk_04, 3, battleSystem->unk_21C, 0x10000, 0); - - ov16_02268700(&battleSystem->unk_17C[0]); - ov16_02268700(&battleSystem->unk_17C[1]); -} - -u8 *ov16_0223F1E8(BattleSystem *battleSystem) -{ - return battleSystem->unk_21C; -} - -u16 *ov16_0223F1F0(BattleSystem *battleSystem) -{ - return battleSystem->unk_220; -} - -int ov16_0223F1F8(BattleSystem *battleSystem) -{ - return battleSystem->unk_2424; -} - -u16 *ov16_0223F204(BattleSystem *battleSystem) -{ - return &battleSystem->unk_2224[0]; -} - -u16 *ov16_0223F210(BattleSystem *battleSystem) -{ - return &battleSystem->unk_2304[0]; -} - -int BattleSystem_FieldWeather(BattleSystem *battleSys) -{ - return battleSys->fieldWeather; -} - -u8 ov16_0223F228(BattleSystem *battleSystem) -{ - return battleSystem->unk_241D; -} - -void ov16_0223F234(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->unk_241D = param1; -} - -int BattleSystem_GetMetBebe(BattleSystem *battleSystem) -{ - return battleSystem->metBebe; -} - -void BattleSystem_TryIncrementRecordValue(BattleSystem *battleSystem, int id) -{ - if (battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) { - return; - } - - GameRecords_IncrementRecordValue(battleSystem->records, id); -} - -void BattleSystem_TryIncrementTrainerScoreCaughtSpecies(BattleSystem *battleSystem) -{ - if (battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) { - return; - } - - GameRecords_IncrementTrainerScore(battleSystem->records, TRAINER_SCORE_EVENT_CAUGHT_SPECIES); -} - -void BattleSystem_SetCommandSelectionFlags(BattleSystem *battleSys, int flags) -{ - battleSys->commandSelectionFlags = flags; -} - -void ov16_0223F290(BattleSystem *battleSystem, int param1) -{ - battleSystem->unk_2440 = param1; -} - -WaitDial *Battle_GetWaitDial(BattleSystem *battleSystem) -{ - return battleSystem->waitDial; -} - -void Battle_SetWaitDial(BattleSystem *battleSystem, WaitDial *waitDial) -{ - battleSystem->waitDial = waitDial; -} - -PokemonSpriteData *ov16_0223F2AC(BattleSystem *battleSystem, int idx) -{ - return &battleSystem->pokemonSpriteDataArray[idx]; -} - -u8 *ov16_0223F2B8(PokemonSpriteData *pokemonSpriteData, int idx) -{ - GF_ASSERT(idx < 4); - return pokemonSpriteData[idx].tiles; -} - -void PokemonSpriteData_SetNarcID(PokemonSpriteData *pokemonSpriteData, int idx, int value) -{ - GF_ASSERT(idx < 4); - pokemonSpriteData[idx].narcID = value; -} - -void PokemonSpriteData_SetPalette(PokemonSpriteData *pokemonSpriteData, int idx, int value) -{ - GF_ASSERT(idx < 4); - pokemonSpriteData[idx].palette = value; -} - -void PokemonSpriteData_SetYOffset(PokemonSpriteData *pokemonSpriteData, int idx, int value) -{ - GF_ASSERT(idx < 4); - pokemonSpriteData[idx].yOffset = value; -} - -void ov16_0223F314(BattleSystem *battleSystem, int param1) -{ - battleSystem->unk_23F9 = param1; -} - -void ov16_0223F320(BattleSystem *battleSystem, u8 *param1) -{ - battleSystem->unk_23F0 = param1; -} - -void ov16_0223F32C(BattleSystem *battleSystem, u8 *param1) -{ - battleSystem->unk_23F4 = param1; -} - -void ov16_0223F338(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->unk_23F0[0] = param1; -} - -void ov16_0223F344(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->unk_23F4[0] = param1; -} - -void ov16_0223F350(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->unk_23FA = param1; -} - -void *ov16_0223F35C(BattleSystem *battleSystem, int param1) -{ - return ov16_02263B08(battleSystem->battlers[param1]); -} - -void ov16_0223F36C(BattleSystem *battleSystem) -{ - int v0; - Healthbar *v1; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - v1 = ov16_02263B08(battleSystem->battlers[v0]); - - v1->battleSys = battleSystem; - v1->type = Healthbar_Type(Battler_Type(battleSystem->battlers[v0]), BattleSystem_BattleType(battleSystem)); - - ov16_022672C4(v1); - Healthbar_Enable(v1, 0); - } -} - -void ov16_0223F3BC(BattleSystem *battleSystem) -{ - int v0; - Healthbar *v1; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - v1 = ov16_02263B08(battleSystem->battlers[v0]); - - if (v1->curHP) { - Healthbar_Enable(v1, 1); - } - } -} - -void ov16_0223F3EC(BattleSystem *battleSystem) -{ - int v0; - Healthbar *v1; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - v1 = ov16_02263B08(battleSystem->battlers[v0]); - Healthbar_Enable(v1, 0); - } -} - -void ov16_0223F414(BattleSystem *battleSystem) -{ - int v0; - Healthbar *v1; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - v1 = ov16_02263B08(battleSystem->battlers[v0]); - ov16_02267360(v1); - } -} - -u8 BattleSystem_ResultMask(BattleSystem *battleSystem) -{ - return battleSystem->resultMask; -} - -void BattleSystem_SetResultFlag(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->resultMask = param1; -} - -u8 ov16_0223F450(BattleSystem *battleSystem) -{ - return battleSystem->unk_23FB_3; -} - -void BattleSystem_SetRedHPSoundFlag(BattleSystem *battleSystem, u8 param1) -{ - battleSystem->unk_23FB_3 = param1; -} - -u8 ov16_0223F47C(BattleSystem *battleSystem) -{ - return battleSystem->unk_23FB_5; -} - -void ov16_0223F48C(BattleSystem *battleSystem, u8 param1) -{ - GF_ASSERT(param1 < 15); - battleSystem->unk_23FB_5 = param1; -} - -void BattleSystem_SetCaughtBattlerIndex(BattleSystem *battleSystem, int value) -{ - battleSystem->caughtBattlerIdx = value; -} - -u16 BattleSystem_RandNext(BattleSystem *battleSystem) -{ - battleSystem->unk_2444 = battleSystem->unk_2444 * 1103515245L + 24691; - return (u16)(battleSystem->unk_2444 / 65536L); -} - -u32 ov16_0223F4E8(BattleSystem *battleSystem) -{ - return battleSystem->unk_2448; -} - -void ov16_0223F4F4(BattleSystem *battleSystem, u32 param1) -{ - battleSystem->unk_2448 = param1; -} - -void BattleSystem_Record(BattleSystem *battleSystem, int param1, u8 param2) -{ - if (((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) == 0) && (battleSystem->unk_245C[param1] < 0x400)) { - sub_0202F868(param1, battleSystem->unk_245C[param1], param2); - battleSystem->unk_245C[param1]++; - } -} - -BOOL ov16_0223F530(BattleSystem *battleSystem, int param1, u8 *param2) -{ - BOOL v0; - - *param2 = 0xff; - - if ((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) && (battleSystem->unk_245C[param1] < 0x400)) { - *param2 = sub_0202F884(param1, battleSystem->unk_245C[param1]); - battleSystem->unk_245C[param1]++; - v0 = 0; - } else if ((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) && (battleSystem->unk_245C[param1] >= 0x400)) { - v0 = 1; - } - - return v0; -} - -u8 ov16_0223F58C(BattleSystem *battleSystem, u8 *param1) -{ - u8 v0, v1; - u8 v2 = 0; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - if (battleSystem->unk_245C[v0] != battleSystem->unk_244C[v0]) { - param1[v2++] = v0; - param1[v2++] = battleSystem->unk_245C[v0] - battleSystem->unk_244C[v0]; - - for (v1 = 0; v1 < battleSystem->unk_245C[v0] - battleSystem->unk_244C[v0]; v1++) { - param1[v2++] = sub_0202F884(v0, battleSystem->unk_244C[v0] + v1); - } - - battleSystem->unk_244C[v0] = battleSystem->unk_245C[v0]; - } - } - - GF_ASSERT(v2 <= 28); - return v2; -} - -void ov16_0223F638(BattleSystem *battleSystem, u16 param1, u8 *param2) -{ - int v0; - u8 v1; - u8 v2; - u8 v3 = 0; - - if ((battleSystem->battleType & BATTLE_TYPE_LINK) == FALSE) { - return; - } - - if (battleSystem->unk_23F8) { - return; - } - - while (param1) { - v1 = ov16_0223F6D4(param2, &v3, ¶m1); - v2 = ov16_0223F6D4(param2, &v3, ¶m1); - - for (v0 = 0; v0 < v2; v0++) { - sub_0202F868(v1, battleSystem->unk_2454[v1] + v0, ov16_0223F6D4(param2, &v3, ¶m1)); - } - - battleSystem->unk_2454[v1] += v2; - } -} - -static u8 ov16_0223F6D4(u8 *param0, u8 *param1, u16 *param2) -{ - param2[0]--; - return param0[param1[0]++]; -} - -u16 ov16_0223F6E4(BattleSystem *battleSystem) -{ - return battleSystem->unk_2442; -} - -int ov16_0223F6F0(BattleSystem *battleSystem, u16 param1) -{ - return battleSystem->unk_2464[param1]; -} - -u16 BattleSystem_TrainerItems(BattleSystem *battleSystem, int param1, int param2) -{ - return battleSystem->trainers[param1].header.items[param2]; -} - -u32 BattleSystem_RecordingStopped(BattleSystem *battleSystem) -{ - return battleSystem->recordingStopped; -} - -void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag) -{ - if (((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE) || (battleSys->recordingStopped) || (BattleContext_Get(battleSys, battleSys->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSys, battleSys->battleCtx, 14, 0) == 43)) { - return; - } - - ov16_0226CEB0(battleSys->unk_198, flag); - - StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_BRIGHTNESS_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 16, 2, HEAP_ID_BATTLE); - Sound_StopWaveOutAndSequences(); - Sound_SetMasterVolume(0); - - battleSys->recordingStopped = 1; - - return; -} - -BOOL ov16_0223F7A4(BattleSystem *battleSystem) -{ - if (((battleSystem->battleStatusMask & BATTLE_STATUS_RECORDING) == 0) || (battleSystem->recordingStopped) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 13, 0) == 43) || (BattleContext_Get(battleSystem, battleSystem->battleCtx, 14, 0) == 43)) { - return 0; - } - - return 1; -} - -void BattleSystem_ShowStopPlaybackButton(BattleSystem *battleSys) -{ - if ((battleSys->battleStatusMask & BATTLE_STATUS_RECORDING) == FALSE - || battleSys->playbackStopButton) { - return; - } - - battleSys->playbackStopButton = ov16_0226E148(battleSys); -} - -u8 BattleSystem_RecordedChatter(BattleSystem *battleSystem, int param1) -{ - if ((battleSystem->battleType & BATTLE_TYPE_2vs2) || ((battleSystem->battleType & BATTLE_TYPE_TAG) && (BattleSystem_BattlerSlot(battleSystem, param1) & 0x1))) { - return battleSystem->unk_247C[param1]; - } else if (battleSystem->battleType & BATTLE_TYPE_DOUBLES) { - return battleSystem->unk_247C[param1 & 1]; - } else { - return battleSystem->unk_247C[param1]; - } -} - -void ov16_0223F858(BattleSystem *battleSystem, u8 *param1) -{ - int v0; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - param1[Battler_Type(battleSystem->battlers[v0])] = v0; - } -} - -void ov16_0223F87C(BattleSystem *battleSystem, u8 *param1) -{ - int v0; - - for (v0 = 0; v0 < 4; v0++) { - param1[v0] = 0xff; - } - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - param1[v0] = Battler_Type(battleSystem->battlers[v0]); - } -} - -void ov16_0223F8AC(BattleSystem *battleSystem, PokemonSprite **param1) -{ - int v0; - - for (v0 = 0; v0 < 4; v0++) { - param1[v0] = NULL; - } - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - param1[v0] = ov16_02263AFC(battleSystem->battlers[v0]); - } -} - -void BattleSystem_SetGaugePriority(BattleSystem *battleSystem, int param1) -{ - int v0; - Healthbar *v1; - - for (v0 = 0; v0 < battleSystem->maxBattlers; v0++) { - v1 = ov16_02263B08(battleSystem->battlers[v0]); - ov16_022675D8(v1, param1); - } -} - -u32 BattleSystem_CalcMoneyPenalty(Party *party, TrainerInfo *trainerInfo) -{ - static const u8 badgeMul[] = { - 2, - 4, - 6, - 9, - 12, - 16, - 20, - 25, - 30, - }; - - u8 badges = TrainerInfo_BadgeCount(trainerInfo); - u32 penalty = Party_GetMaxLevel(party) * 4 * badgeMul[badges]; - u32 curMoney = TrainerInfo_Money(trainerInfo); - - if (penalty > curMoney) { - penalty = curMoney; - } - - return penalty; -} - -void BattleSystem_DexFlagSeen(BattleSystem *battleSystem, int param1) -{ - int battlerType = Battler_Type(battleSystem->battlers[param1]); - int v2 = BattleContext_Get(battleSystem, battleSystem->battleCtx, 2, param1); - Pokemon *mon = BattleSystem_PartyPokemon(battleSystem, param1, v2); - - if ((battleSystem->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)) == FALSE) { - if ((battlerType & BATTLER_THEM) - || battleSystem->battleType == BATTLE_TYPE_AI_PARTNER - || battleSystem->battleType == (BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI)) { - Pokedex_Encounter(battleSystem->pokedex, mon); - } - } - - if (((battlerType & BATTLER_THEM) == FALSE) - && (Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) == SPECIES_BURMY)) { - Pokedex_Capture(battleSystem->pokedex, mon); - } -} - -void BattleSystem_DexFlagCaught(BattleSystem *battleSystem, int battler) -{ - int battlerType = Battler_Type(battleSystem->battlers[battler]); - - if ((battleSystem->battleType & (BATTLE_TYPE_LINK | BATTLE_TYPE_FRONTIER)) == FALSE) { - if (battlerType & BATTLER_THEM) { - Pokemon *mon; - int targetSlot = BattleContext_Get(battleSystem, battleSystem->battleCtx, BATTLECTX_SELECTED_PARTY_SLOT, battler); - mon = BattleSystem_PartyPokemon(battleSystem, battler, targetSlot); - - Pokedex_Capture(battleSystem->pokedex, mon); - } - } -} - -BOOL BattleSystem_CaughtSpecies(BattleSystem *battleSys, int species) -{ - return Pokedex_HasCaughtSpecies(battleSys->pokedex, species); -} - -void Battle_SetDefaultBlend(void) -{ - G2_BlendNone(); -} - -u8 ov16_0223F9FC(BattleSystem *battleSys, int trainerID, int param2, enum TrainerMessageType msgType, int param4) -{ - Window *v0 = BattleSystem_Window(battleSys, 0); - int v1; - - if (battleSys->battleType & BATTLE_TYPE_FRONTIER) { - if (trainerID == 10000) { - { - String *v2; - - if (msgType == TRMSG_WIN) { - v2 = sub_02014B34(&battleSys->trainers[param2].winMsg, HEAP_ID_BATTLE); - } else { - v2 = sub_02014B34(&battleSys->trainers[param2].loseMsg, HEAP_ID_BATTLE); - } - - Window_FillTilemap(v0, 0xff); - v1 = Text_AddPrinterWithParams(v0, FONT_MESSAGE, v2, 0, 0, param4, BattleMessage_Callback); - String_Free(v2); - } - } else { - { - String *v4; - int entryID; - u32 bankID; - int v7; - - if (msgType == TRMSG_WIN) { - entryID = trainerID * 3 + 1; - } else { - entryID = trainerID * 3 + 2; - } - - for (v7 = 0; v7 < 4; v7++) { - if (TrainerInfo_GameCode(battleSys->trainerInfo[v7]) == 0) { - break; - } - } - - if (v7 == 4) { - bankID = TEXT_BANK_FRONTIER_TRAINER_MESSAGES; - } else { - bankID = TEXT_BANK_UNK_0613; - } - - MessageLoader *loader = MessageLoader_Init(MSG_LOADER_PRELOAD_ENTIRE_BANK, NARC_INDEX_MSGDATA__PL_MSG, bankID, HEAP_ID_BATTLE); - v4 = MessageLoader_GetNewString(loader, entryID); - - Window_FillTilemap(v0, 0xff); - - v1 = Text_AddPrinterWithParams(v0, FONT_MESSAGE, v4, 0, 0, param4, BattleMessage_Callback); - String_Free(v4); - MessageLoader_Free(loader); - } - } - } else { - Trainer_LoadMessage(trainerID, msgType, battleSys->msgBuffer, HEAP_ID_BATTLE); - Window_FillTilemap(v0, 0xff); - v1 = Text_AddPrinterWithParams(v0, FONT_MESSAGE, battleSys->msgBuffer, 0, 0, param4, BattleMessage_Callback); - } - - return v1; -} - -u8 BattleMessage_Print(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg, int renderDelay) -{ - Window *textWindow = BattleSystem_Window(battleSys, 0); - - BattleMessage_CheckSide(battleSys, battleMsg); - BattleMessage_FillFormatBuffers(battleSys, battleMsg); - BattleMessage_Format(battleSys, msgLoader, battleMsg); - - Window_FillTilemap(textWindow, 0xFF); - - return Text_AddPrinterWithParams(textWindow, FONT_MESSAGE, battleSys->msgBuffer, 0, 0, renderDelay, BattleMessage_Callback); -} - -u8 BattleMessage_PrintToWindow(BattleSystem *battleSystem, Window *param1, MessageLoader *param2, BattleMessage *param3, int param4, int param5, int param6, int param7, int param8) -{ - int v0; - - BattleMessage_CheckSide(battleSystem, param3); - BattleMessage_FillFormatBuffers(battleSystem, param3); - BattleMessage_Format(battleSystem, param2, param3); - - if (param6 & 0x1) { - Window_FillTilemap(param1, 0xff); - } - - if (param6 & 0x2) { - v0 = param7 - Font_CalcStringWidth(FONT_SYSTEM, battleSystem->msgBuffer, 0); - } else { - v0 = 0; - } - - return Text_AddPrinterWithParams(param1, FONT_SYSTEM, battleSystem->msgBuffer, param4 + v0, param5, param8, BattleMessage_Callback); -} - -/** - * @brief Check what side of the battle the incoming message applies to, and update - * the message's bank ID as appropriate. - * - * This routine is responsible for shifting the message ID for messages that have - * separate entries for the player, an enemy trainer, and a wild Pokemon. - * - * @param battleSys - * @param battleMsg - */ -static void BattleMessage_CheckSide(BattleSystem *battleSys, BattleMessage *battleMsg) -{ - u32 battleType = BattleSystem_BattleType(battleSys); - - if (battleMsg->tags & TAG_GLOBAL_MESSAGE) { - return; - } - - if (battleMsg->tags & TAG_SIDE_LOCAL_MESSAGE) { - if (Battler_Side(battleSys, battleMsg->battler)) { - battleMsg->id++; - } - - return; - } - - switch (battleMsg->tags & BATTLE_MESSAGE_TAGS) { - case TAG_NONE: - case TAG_MOVE: - case TAG_STAT: - case TAG_ITEM: - case TAG_NUMBER: - case TAG_NUMBERS: - case TAG_TRNAME: - case TAG_MOVE_MOVE: - case TAG_ITEM_MOVE: - case TAG_NUMBER_NUMBER: - case TAG_TRNAME_TRNAME: - case TAG_TRNAME_NICKNAME: - case TAG_TRNAME_ITEM: - case TAG_TRNAME_NUM: - case TAG_TRCLASS_TRNAME: - case TAG_TRNAME_NICKNAME_NICKNAME: - case TAG_TRCLASS_TRNAME_NICKNAME: - case TAG_TRCLASS_TRNAME_ITEM: - case TAG_TRNAME_NICKNAME_TRNAME_NICKNAME: - case TAG_TRCLASS_TRNAME_NICKNAME_NICKNAME: - case TAG_TRCLASS_TRNAME_NICKNAME_TRNAME: - case TAG_TRCLASS_TRNAME_TRCLASS_TRNAME: - case TAG_TRCLASS_TRNAME_NICKNAME_TRCLASS_TRNAME_NICKNAME: - break; - - case TAG_NONE_SIDE_CONSCIOUS: - if (Battler_Side(battleSys, battleMsg->params[0] & 0xFF)) { - battleMsg->id++; - } - break; - - case TAG_NICKNAME: - case TAG_NICKNAME_MOVE: - case TAG_NICKNAME_ABILITY: - case TAG_NICKNAME_STAT: - case TAG_NICKNAME_TYPE: - case TAG_NICKNAME_POKE: - case TAG_NICKNAME_ITEM: - case TAG_NICKNAME_POFFIN: - case TAG_NICKNAME_NUM: - case TAG_NICKNAME_TRNAME: - case TAG_NICKNAME_BOX: - case TAG_NICKNAME_MOVE_MOVE: - case TAG_NICKNAME_MOVE_NUMBER: - case TAG_NICKNAME_ABILITY_MOVE: - case TAG_NICKNAME_ABILITY_ITEM: - case TAG_NICKNAME_ABILITY_STAT: - case TAG_NICKNAME_ABILITY_TYPE: - case TAG_NICKNAME_ABILITY_STATUS: - case TAG_NICKNAME_ABILITY_NUMBER: - case TAG_NICKNAME_ITEM_MOVE: - case TAG_NICKNAME_ITEM_STAT: - case TAG_NICKNAME_ITEM_STATUS: - case TAG_NICKNAME_BOX_BOX: - if (Battler_Side(battleSys, battleMsg->params[0] & 0xFF)) { - battleMsg->id++; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id++; - } - } - break; - - case TAG_MOVE_SIDE: - if (Battler_Side(battleSys, battleMsg->params[1] & 0xFF)) { - battleMsg->id++; - } - break; - - case TAG_MOVE_NICKNAME: - case TAG_ABILITY_NICKNAME: - case TAG_ITEM_NICKNAME_FLAVOR: - if (Battler_Side(battleSys, battleMsg->params[1] & 0xFF)) { - battleMsg->id++; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id++; - } - } - break; - - case TAG_NICKNAME_NICKNAME: - case TAG_NICKNAME_NICKNAME_MOVE: - case TAG_NICKNAME_NICKNAME_ABILITY: - case TAG_NICKNAME_NICKNAME_ITEM: - if (Battler_Side(battleSys, battleMsg->params[0] & 0xFF)) { - battleMsg->id += 3; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id += 2; - } - - if (Battler_Side(battleSys, battleMsg->params[1] & 0xFF)) { - battleMsg->id++; - } - } else if (Battler_Side(battleSys, battleMsg->params[1] & 0xFF)) { - battleMsg->id++; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id++; - } - } - break; - - case TAG_NICKNAME_ABILITY_NICKNAME: - case TAG_NICKNAME_ITEM_NICKNAME: - case TAG_NICKNAME_ABILITY_NICKNAME_MOVE: - case TAG_NICKNAME_ABILITY_NICKNAME_ABILITY: - case TAG_NICKNAME_ABILITY_NICKNAME_STAT: - case TAG_NICKNAME_ITEM_NICKNAME_ITEM: - if (Battler_Side(battleSys, battleMsg->params[0] & 0xFF)) { - battleMsg->id += 3; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id += 2; - } - - if (Battler_Side(battleSys, battleMsg->params[2] & 0xFF)) { - battleMsg->id++; - } - } else if (Battler_Side(battleSys, battleMsg->params[2] & 0xFF)) { - battleMsg->id++; - - if (battleType & BATTLE_TYPE_TRAINER) { - battleMsg->id++; - } - } - break; - - default: - GF_ASSERT(FALSE); - break; - } -} - -/** - * @brief Fill formatting buffers with data from the battle message parameters, according - * to the message's tag. - * - * @param battleSys - * @param battleMsg - */ -static void BattleMessage_FillFormatBuffers(BattleSystem *battleSys, BattleMessage *battleMsg) -{ - switch (battleMsg->tags & BATTLE_MESSAGE_TAGS) { - case TAG_NONE: - case TAG_NONE_SIDE_CONSCIOUS: - break; - - case TAG_NICKNAME: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_MOVE: - case TAG_MOVE_SIDE: - BattleMessage_MoveName(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_STAT: - BattleMessage_StatName(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_ITEM: - BattleMessage_ItemName(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_NUMBER: - BattleMessage_Number(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_NUMBERS: - BattleMessage_NumberDigits(battleSys, 0, battleMsg->params[0], battleMsg->digits); - break; - - case TAG_TRNAME: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - break; - - case TAG_NICKNAME_NICKNAME: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_MoveName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_ABILITY: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_STAT: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_StatName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_TYPE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_TypeName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_POKE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_PokemonName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_ITEM: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_POFFIN: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_PoffinName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_NUM: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_Number(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_TRNAME: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_BOX: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_PCBoxName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_MOVE_NICKNAME: - BattleMessage_MoveName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_MOVE_MOVE: - BattleMessage_MoveName(battleSys, 0, battleMsg->params[0]); - BattleMessage_MoveName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_ABILITY_NICKNAME: - BattleMessage_AbilityName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_ITEM_MOVE: - BattleMessage_ItemName(battleSys, 0, battleMsg->params[0]); - BattleMessage_MoveName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NUMBER_NUMBER: - BattleMessage_Number(battleSys, 0, battleMsg->params[0]); - BattleMessage_Number(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_TRNAME_TRNAME: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_TRNAME_NICKNAME: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_TRNAME_ITEM: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_TRNAME_NUM: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Number(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_TRCLASS_TRNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - break; - - case TAG_NICKNAME_NICKNAME_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_MoveName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_NICKNAME_ABILITY: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_AbilityName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_NICKNAME_ITEM: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_ItemName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_MOVE_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_MoveName(battleSys, 1, battleMsg->params[1]); - BattleMessage_MoveName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_MOVE_NUMBER: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_MoveName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Number(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_NICKNAME: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_MoveName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_ITEM: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_ItemName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_STAT: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_StatName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_TYPE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_TypeName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_STATUS: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_StatusName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_NUMBER: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Number(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ITEM_NICKNAME: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ITEM_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - BattleMessage_MoveName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ITEM_STAT: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - BattleMessage_StatName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ITEM_STATUS: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - BattleMessage_StatusName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_BOX_BOX: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_PCBoxName(battleSys, 1, battleMsg->params[1]); - BattleMessage_PCBoxName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_ITEM_NICKNAME_FLAVOR: - BattleMessage_ItemName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_FlavorName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_TRNAME_NICKNAME_NICKNAME: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_TRCLASS_TRNAME_NICKNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_TRCLASS_TRNAME_ITEM: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_ItemName(battleSys, 2, battleMsg->params[2]); - break; - - case TAG_NICKNAME_ABILITY_NICKNAME_MOVE: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_MoveName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_NICKNAME_ABILITY_NICKNAME_ABILITY: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_AbilityName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_NICKNAME_ABILITY_NICKNAME_STAT: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_AbilityName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_StatName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_NICKNAME_ITEM_NICKNAME_ITEM: - BattleMessage_Nickname(battleSys, 0, battleMsg->params[0]); - BattleMessage_ItemName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_ItemName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_TRNAME_NICKNAME_TRNAME_NICKNAME: - BattleMessage_TrainerName(battleSys, 0, battleMsg->params[0]); - BattleMessage_Nickname(battleSys, 1, battleMsg->params[1]); - BattleMessage_TrainerName(battleSys, 2, battleMsg->params[2]); - BattleMessage_Nickname(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_TRCLASS_TRNAME_NICKNAME_NICKNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_Nickname(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_TRCLASS_TRNAME_NICKNAME_TRNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_TrainerName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_TRCLASS_TRNAME_TRCLASS_TRNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_TrainerClassName(battleSys, 2, battleMsg->params[2]); - BattleMessage_TrainerName(battleSys, 3, battleMsg->params[3]); - break; - - case TAG_TRCLASS_TRNAME_NICKNAME_TRCLASS_TRNAME_NICKNAME: - BattleMessage_TrainerClassName(battleSys, 0, battleMsg->params[0]); - BattleMessage_TrainerName(battleSys, 1, battleMsg->params[1]); - BattleMessage_Nickname(battleSys, 2, battleMsg->params[2]); - BattleMessage_TrainerClassName(battleSys, 3, battleMsg->params[3]); - BattleMessage_TrainerName(battleSys, 4, battleMsg->params[4]); - BattleMessage_Nickname(battleSys, 5, battleMsg->params[5]); - break; - - default: - GF_ASSERT(FALSE); - break; - } -} - -static void BattleMessage_Nickname(BattleSystem *battleSystem, u32 param1, int param2) -{ - Pokemon *v0 = BattleSystem_PartyPokemon(battleSystem, param2 & 0xff, (param2 & 0xff00) >> 8); - StringTemplate_SetNickname(battleSystem->strFormatter, param1, &v0->box); -} - -static void BattleMessage_MoveName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetMoveName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_ItemName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetItemName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_Number(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetNumber(battleSystem->strFormatter, param1, param2, 5, 0, 1); -} - -static void BattleMessage_NumberDigits(BattleSystem *battleSystem, u32 param1, int param2, int param3) -{ - if (param3) { - StringTemplate_SetNumber(battleSystem->strFormatter, param1, param2, param3, 1, 1); - } else { - StringTemplate_SetNumber(battleSystem->strFormatter, param1, param2, 5, 1, 1); - } -} - -static void BattleMessage_TypeName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetPokemonTypeName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_AbilityName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetAbilityName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_StatName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetPokemonStatName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_StatusName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetStatusConditionName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_PokemonName(BattleSystem *battleSystem, u32 param1, int param2) -{ - Pokemon *v0 = BattleSystem_PartyPokemon(battleSystem, param2 & 0xff, (param2 & 0xff00) >> 8); - StringTemplate_SetSpeciesName(battleSystem->strFormatter, param1, &v0->box); -} - -static void BattleMessage_PoffinName(BattleSystem *battleSystem, u32 param1, int param2) -{ - return; -} - -static void BattleMessage_FlavorName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetFlavorName(battleSystem->strFormatter, param1, param2); -} - -static void BattleMessage_TrainerClassName(BattleSystem *battleSystem, u32 param1, int param2) -{ - Trainer *v0 = BattleSystem_GetTrainer(battleSystem, param2); - StringTemplate_SetTrainerClassNameBattle(battleSystem->strFormatter, param1, v0); -} - -static void BattleMessage_TrainerName(BattleSystem *battleSystem, u32 param1, int param2) -{ - Trainer *v0 = BattleSystem_GetTrainer(battleSystem, param2); - StringTemplate_SetTrainerNameBattle(battleSystem->strFormatter, param1, v0); -} - -static void BattleMessage_PCBoxName(BattleSystem *battleSystem, u32 param1, int param2) -{ - StringTemplate_SetPCBoxName(battleSystem->strFormatter, param1, battleSystem->pcBoxes, param2); -} - -/** - * @brief Load the requested message and format it into a string to be printed to the screen. - * - * @param battleSys - * @param msgLoader - * @param battleMsg - */ -static void BattleMessage_Format(BattleSystem *battleSys, MessageLoader *msgLoader, BattleMessage *battleMsg) -{ - String *string = MessageLoader_GetNewString(msgLoader, battleMsg->id); - StringTemplate_Format(battleSys->strFormatter, battleSys->msgBuffer, string); - String_Free(string); -} - -static BOOL BattleMessage_Callback(TextPrinterTemplate *param0, u16 param1) -{ - BOOL v0 = 0; - - switch (param1) { - case 1: - v0 = Sound_IsAnyEffectPlaying(); - break; - case 2: - v0 = Sound_IsBGMPausedByFanfare(); - break; - case 3: - Sound_PlayFanfare(SEQ_FANFA5); - break; - case 4: - Sound_PlayEffect(SEQ_SE_DP_KON); - break; - case 5: - Sound_PlayFanfare(SEQ_FANFA1); - break; - default: - break; - } - - return v0; -} diff --git a/src/battle/ov16_02264798.c b/src/battle/ov16_02264798.c index 89731ed578..fe0592abe8 100644 --- a/src/battle/ov16_02264798.c +++ b/src/battle/ov16_02264798.c @@ -5,7 +5,7 @@ #include "struct_decls/battle_system.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/struct_ov16_0225BFFC_decl.h" #include "battle/struct_ov16_0225BFFC_t.h" @@ -22,7 +22,7 @@ void ov16_02264798(BattlerData *param0, BattleSystem *battleSys) return; } - if (BattleSystem_BattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { + if (BattleSystem_GetBattleType(battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) { return; } diff --git a/src/battle/ov16_02268520.c b/src/battle/ov16_02268520.c index f9e6d24cc4..7780c2e586 100644 --- a/src/battle/ov16_02268520.c +++ b/src/battle/ov16_02268520.c @@ -5,7 +5,7 @@ #include "struct_decls/battle_system.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/struct_ov16_02268520.h" #include "narc.h" @@ -178,7 +178,7 @@ void ov16_02268520(UnkStruct_ov16_02268520 *param0) NARC *v10 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE); v0 = BattleSystem_GetSpriteSystem(param0->unk_04); v1 = BattleSystem_GetSpriteManager(param0->unk_04); - v9 = ov16_0223EC04(param0->unk_04); + v9 = BattleSystem_GetBackgroundTimeOffset(param0->unk_04); v2 = &Unk_ov16_022700CC[param0->unk_08]; if (param0->unk_08 == 0) { @@ -198,8 +198,8 @@ void ov16_02268520(UnkStruct_ov16_02268520 *param0) } SpriteSystem_LoadCharResObjFromOpenNarc(v0, v1, v10, v3, TRUE, NNS_G2D_VRAM_TYPE_2DMAIN, v4); - SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_PaletteSys(param0->unk_04), PLTTBUF_MAIN_OBJ, v0, v1, v10, Unk_ov16_02270134[param0->unk_09][v9], FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20009); - PaletteData_LoadBufferFromFileStart(BattleSystem_PaletteSys(param0->unk_04), NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, Unk_ov16_02270134[param0->unk_09][v9], 5, PLTTBUF_MAIN_BG, 0x20, 0x7 * 0x10); + SpriteSystem_LoadPaletteBufferFromOpenNarc(BattleSystem_GetPaletteData(param0->unk_04), PLTTBUF_MAIN_OBJ, v0, v1, v10, Unk_ov16_02270134[param0->unk_09][v9], FALSE, 1, NNS_G2D_VRAM_TYPE_2DMAIN, 20009); + PaletteData_LoadBufferFromFileStart(BattleSystem_GetPaletteData(param0->unk_04), NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, Unk_ov16_02270134[param0->unk_09][v9], 5, PLTTBUF_MAIN_BG, 0x20, 0x7 * 0x10); SpriteSystem_LoadCellResObjFromOpenNarc(v0, v1, v10, v5, TRUE, v6); SpriteSystem_LoadAnimResObjFromOpenNarc(v0, v1, v10, v7, TRUE, v8); NARC_dtor(v10); diff --git a/src/battle/ov16_0226E148.c b/src/battle/ov16_0226E148.c index 19b95b0ec0..914e7a3837 100644 --- a/src/battle/ov16_0226E148.c +++ b/src/battle/ov16_0226E148.c @@ -6,7 +6,7 @@ #include "struct_decls/battle_system.h" #include "battle/battle_cursor.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/struct_ov16_02268A14_decl.h" #include "heap.h" @@ -16,7 +16,7 @@ #include "sys_task_manager.h" typedef struct { - BattleSystem *unk_00; + BattleSystem *battleSys; s16 unk_04; s16 unk_06; } UnkStruct_ov16_0226E148; @@ -31,7 +31,7 @@ SysTask *ov16_0226E148(BattleSystem *battleSys) v0 = Heap_Alloc(HEAP_ID_BATTLE, sizeof(UnkStruct_ov16_0226E148)); MI_CpuClear8(v0, sizeof(UnkStruct_ov16_0226E148)); - v0->unk_00 = battleSys; + v0->battleSys = battleSys; v1 = SysTask_Start(ov16_0226E188, v0, 1000); return v1; @@ -48,7 +48,7 @@ void ov16_0226E174(SysTask *param0) static void ov16_0226E188(SysTask *param0, void *param1) { UnkStruct_ov16_0226E148 *v0 = param1; - UnkStruct_ov16_02268A14 *v1 = ov16_0223E02C(v0->unk_00); + UnkStruct_ov16_02268A14 *v1 = ov16_0223E02C(v0->battleSys); switch (v0->unk_04) { case 0: @@ -72,7 +72,7 @@ static void ov16_0226E188(SysTask *param0, void *param1) } break; case 2: - if (ov16_0223F7A4(v0->unk_00) == 1) { + if (ov16_0223F7A4(v0->battleSys) == 1) { if (BattleSystem_MenuInput(v1) == 1) { Sound_PlayEffect(SEQ_SE_DP_DECIDE); v0->unk_04++; @@ -83,7 +83,7 @@ static void ov16_0226E188(SysTask *param0, void *param1) v0->unk_06++; if (v0->unk_06 > 8) { - BattleSystem_SetStopRecording(v0->unk_00, 0); + BattleSystem_SetStopRecording(v0->battleSys, 0); v0->unk_04++; } break; diff --git a/src/battle/party_gauge.c b/src/battle/party_gauge.c index b665a2227f..23c56ca665 100644 --- a/src/battle/party_gauge.c +++ b/src/battle/party_gauge.c @@ -5,8 +5,8 @@ #include "constants/heap.h" +#include "battle/battle_system.h" #include "battle/message_defs.h" -#include "battle/ov16_0223DF00.h" #include "assert.h" #include "enums.h" diff --git a/src/battle/trainer_ai/trainer_ai.c b/src/battle/trainer_ai/trainer_ai.c index 1d53ecd296..383a8afdf9 100644 --- a/src/battle/trainer_ai/trainer_ai.c +++ b/src/battle/trainer_ai/trainer_ai.c @@ -15,8 +15,8 @@ #include "battle/battle_context.h" #include "battle/battle_controller_player.h" #include "battle/battle_lib.h" +#include "battle/battle_system.h" #include "battle/common.h" -#include "battle/ov16_0223DF00.h" #include "battle/trainer_ai.h" #include "pch/global_pch.h" @@ -567,7 +567,7 @@ static u8 TrainerAI_MainDoubles(BattleSystem *battleSys, BattleContext *battleCt // Override targets as needed if (AI_CONTEXT.moveTable[move].range == RANGE_USER_OR_ALLY - && Battler_Side(battleSys, AI_CONTEXT.selectedTarget[AI_CONTEXT.attacker]) == 0) { + && BattleSystem_GetBattlerSide(battleSys, AI_CONTEXT.selectedTarget[AI_CONTEXT.attacker]) == 0) { AI_CONTEXT.selectedTarget[AI_CONTEXT.attacker] = AI_CONTEXT.attacker; } @@ -844,7 +844,7 @@ static void AICmd_IfSideCondition(BattleSystem *battleSys, BattleContext *battle u32 mask = AIScript_Read(battleCtx); int jump = AIScript_Read(battleCtx); u8 battler = AIScript_Battler(battleCtx, inBattler); - u8 side = Battler_Side(battleSys, battler); + u8 side = BattleSystem_GetBattlerSide(battleSys, battler); if (battleCtx->sideConditionsMask[side] & mask) { AIScript_Iter(battleCtx, jump); @@ -859,7 +859,7 @@ static void AICmd_IfNotSideCondition(BattleSystem *battleSys, BattleContext *bat u32 mask = AIScript_Read(battleCtx); int jump = AIScript_Read(battleCtx); u8 battler = AIScript_Battler(battleCtx, inBattler); - u8 side = Battler_Side(battleSys, battler); + u8 side = BattleSystem_GetBattlerSide(battleSys, battler); if ((battleCtx->sideConditionsMask[side] & mask) == FALSE) { AIScript_Iter(battleCtx, jump); @@ -1070,22 +1070,22 @@ static void AICmd_LoadTypeFrom(BattleSystem *battleSys, BattleContext *battleCtx break; case LOAD_ATTACKER_PARTNER_TYPE_1: - partner = BattleSystem_Partner(battleSys, AI_CONTEXT.attacker); + partner = BattleSystem_GetPartner(battleSys, AI_CONTEXT.attacker); AI_CONTEXT.calcTemp = BattleMon_Get(battleCtx, partner, BATTLEMON_TYPE_1, NULL); break; case LOAD_DEFENDER_PARTNER_TYPE_1: - partner = BattleSystem_Partner(battleSys, AI_CONTEXT.defender); + partner = BattleSystem_GetPartner(battleSys, AI_CONTEXT.defender); AI_CONTEXT.calcTemp = BattleMon_Get(battleCtx, partner, BATTLEMON_TYPE_1, NULL); break; case LOAD_ATTACKER_PARTNER_TYPE_2: - partner = BattleSystem_Partner(battleSys, AI_CONTEXT.attacker); + partner = BattleSystem_GetPartner(battleSys, AI_CONTEXT.attacker); AI_CONTEXT.calcTemp = BattleMon_Get(battleCtx, partner, BATTLEMON_TYPE_2, NULL); break; case LOAD_DEFENDER_PARTNER_TYPE_2: - partner = BattleSystem_Partner(battleSys, AI_CONTEXT.defender); + partner = BattleSystem_GetPartner(battleSys, AI_CONTEXT.defender); AI_CONTEXT.calcTemp = BattleMon_Get(battleCtx, partner, BATTLEMON_TYPE_1, NULL); break; @@ -1239,17 +1239,17 @@ static void AICmd_CountAlivePartyBattlers(BattleSystem *battleSys, BattleContext AI_CONTEXT.calcTemp = 0; u8 battler = AIScript_Battler(battleCtx, inBattler); - Party *party = BattleSystem_Party(battleSys, battler); + Party *party = BattleSystem_GetParty(battleSys, battler); u8 battlerSlot, partnerSlot; if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { battlerSlot = battleCtx->selectedPartySlot[battler]; - partnerSlot = battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battler)]; + partnerSlot = battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; } else { battlerSlot = partnerSlot = battleCtx->selectedPartySlot[battler]; } - for (int i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { + for (int i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, i); if (i != battlerSlot @@ -1465,13 +1465,13 @@ static void AICmd_IfPartyMemberStatus(BattleSystem *battleSys, BattleContext *ba u8 slot1, slot2; if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { slot1 = battleCtx->selectedPartySlot[battler]; - slot2 = battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battler)]; + slot2 = battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; } else { slot1 = slot2 = battleCtx->selectedPartySlot[battler]; } - party = BattleSystem_Party(battleSys, battler); - for (int i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { + party = BattleSystem_GetParty(battleSys, battler); + for (int i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, i); if (i != slot1 && i != slot2 @@ -1498,13 +1498,13 @@ static void AICmd_IfPartyMemberNotStatus(BattleSystem *battleSys, BattleContext u8 slot1, slot2; if (battleSys->battleType & BATTLE_TYPE_DOUBLES) { slot1 = battleCtx->selectedPartySlot[battler]; - slot2 = battleCtx->selectedPartySlot[BattleSystem_Partner(battleSys, battler)]; + slot2 = battleCtx->selectedPartySlot[BattleSystem_GetPartner(battleSys, battler)]; } else { slot1 = slot2 = battleCtx->selectedPartySlot[battler]; } - party = BattleSystem_Party(battleSys, battler); - for (int i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { + party = BattleSystem_GetParty(battleSys, battler); + for (int i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { Pokemon *mon = Party_GetPokemonBySlotIndex(party, i); if (i != slot1 && i != slot2 @@ -2059,7 +2059,7 @@ static void AICmd_LoadSpikesLayers(BattleSystem *battleSys, BattleContext *battl int inBattler = AIScript_Read(battleCtx); u32 sideCondition = AIScript_Read(battleCtx); u8 battler = AIScript_Battler(battleCtx, inBattler); - u8 side = Battler_Side(battleSys, battler); + u8 side = BattleSystem_GetBattlerSide(battleSys, battler); switch (sideCondition) { case SIDE_CONDITION_SPIKES: @@ -2080,8 +2080,8 @@ static void AICmd_IfAnyPartyMemberIsWounded(BattleSystem *battleSys, BattleConte int jump = AIScript_Read(battleCtx); u8 battler = AIScript_Battler(battleCtx, inBattler); - for (int i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, i); + for (int i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (i != battleCtx->selectedPartySlot[battler] && Pokemon_GetValue(mon, MON_DATA_HP, NULL) != Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL)) { @@ -2100,8 +2100,8 @@ static void AICmd_IfAnyPartyMemberUsedPP(BattleSystem *battleSys, BattleContext u8 battler = AIScript_Battler(battleCtx, inBattler); int moveSlot; // must be declared outside of the loop to match - for (int partySlot = 0; partySlot < BattleSystem_PartyCount(battleSys, battler); partySlot++) { - Pokemon *mon = BattleSystem_PartyPokemon(battleSys, battler, partySlot); + for (int partySlot = 0; partySlot < BattleSystem_GetPartyCount(battleSys, battler); partySlot++) { + Pokemon *mon = BattleSystem_GetPartyPokemon(battleSys, battler, partySlot); if (partySlot != battleCtx->selectedPartySlot[battler]) { for (moveSlot = 0; moveSlot < LEARNED_MOVES_MAX; moveSlot++) { @@ -2174,7 +2174,7 @@ static void AICmd_LoadBattlerSpeedRank(BattleSystem *battleSys, BattleContext *b inBattler = AIScript_Read(battleCtx); battler = AIScript_Battler(battleCtx, inBattler); - maxBattlers = BattleSystem_MaxBattlers(battleSys); + maxBattlers = BattleSystem_GetMaxBattlers(battleSys); for (i = 0; i < maxBattlers; i++) { speedOrder[i] = i; @@ -2245,9 +2245,9 @@ static void AICmd_IfPartyMemberDealsMoreDamage(BattleSystem *battleSys, BattleCo battleCtx->battleMons[battler].moveEffectsData.embargoTurns, varyDamage); - for (i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { + for (i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { if (i != battleCtx->selectedPartySlot[battler]) { - partyMon = BattleSystem_PartyPokemon(battleSys, battler, i); + partyMon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(partyMon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(partyMon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -2518,7 +2518,7 @@ static void AICmd_CheckIfHighestDamageWithPartner(BattleSystem *battleSys, Battl varyDamage); // Update to the partner for the next iteration - battler = BattleSystem_Partner(battleSys, AI_CONTEXT.attacker); + battler = BattleSystem_GetPartner(battleSys, AI_CONTEXT.attacker); if (j == 0) { moveDamage = damageVals[AI_CONTEXT.moveSlot]; @@ -2982,7 +2982,7 @@ static s32 TrainerAI_CalcDamage(BattleSystem *battleSys, BattleContext *battleCt u32 effectivenessFlags; s32 damage; - defendingSide = Battler_Side(battleSys, AI_CONTEXT.defender); + defendingSide = BattleSystem_GetBattlerSide(battleSys, AI_CONTEXT.defender); damage = 0; power = 0; type = 0; @@ -3398,7 +3398,7 @@ static BOOL AI_CannotDamageWonderGuard(BattleSystem *battleSys, BattleContext *b u32 effectiveness; Pokemon *mon; - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { return FALSE; } @@ -3419,8 +3419,8 @@ static BOOL AI_CannotDamageWonderGuard(BattleSystem *battleSys, BattleContext *b } // If we don't, check if any of our party members have a super-effective move - for (i = 0; i < BattleSystem_PartyCount(battleSys, battler); i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + for (i = 0; i < BattleSystem_GetPartyCount(battleSys, battler); i++) { + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -3478,7 +3478,7 @@ static BOOL AI_OnlyIneffectiveMoves(BattleSystem *battleSys, BattleContext *batt Pokemon *mon; // "Player" consts here refer to the AI's perspective. - if (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) { + if (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) { defender1 = BATTLER_PLAYER_1; defender2 = BATTLER_PLAYER_2; } else { @@ -3522,21 +3522,21 @@ static BOOL AI_OnlyIneffectiveMoves(BattleSystem *battleSys, BattleContext *batt } aiSlot1 = battler; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2)) { aiSlot2 = aiSlot1; } else { - aiSlot2 = BattleSystem_Partner(battleSys, battler); + aiSlot2 = BattleSystem_GetPartner(battleSys, battler); } start = 0; - end = BattleSystem_PartyCount(battleSys, battler); + end = BattleSystem_GetPartyCount(battleSys, battler); // For each of the AI's active party Pokemon on the bench, check if any of them have a // damaging move which is super-effective against either of the player's active Pokemon // on the battlefield. If any such Pokemon on the bench exists, switch to it 66% of // the time. for (i = start; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -3595,7 +3595,7 @@ static BOOL AI_OnlyIneffectiveMoves(BattleSystem *battleSys, BattleContext *batt // Pokemon on the battlefield. If any such Pokemon on the bench exists, switch to it // 50% of the time. for (i = start; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -3675,8 +3675,8 @@ static BOOL AI_HasSuperEffectiveMove(BattleSystem *battleSys, BattleContext *bat // Look at the slot directly across from us on the opposite side. i.e., // AI slot 1 looks at player slot 1, AI slot 2 looks at player slot 2 - oppositeSlot = BattleSystem_BattlerSlot(battleSys, battler) ^ 1; - defender = BattleSystem_BattlerOfType(battleSys, oppositeSlot); + oppositeSlot = BattleSystem_GetBattlerType(battleSys, battler) ^ 1; + defender = BattleSystem_GetBattlerOfType(battleSys, oppositeSlot); if ((battleCtx->battlersSwitchingMask & FlagIndex(defender)) == FALSE) { // Check if the player's battler is weak to any of our moves @@ -3701,10 +3701,10 @@ static BOOL AI_HasSuperEffectiveMove(BattleSystem *battleSys, BattleContext *bat } // Check the defender's partner the same way as above. - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_DOUBLES) == FALSE) { return FALSE; } - defender = BattleSystem_Partner(battleSys, defender); + defender = BattleSystem_GetPartner(battleSys, defender); if ((battleCtx->battlersSwitchingMask & FlagIndex(defender)) == FALSE) { for (i = 0; i < LEARNED_MOVES_MAX; i++) { @@ -3786,19 +3786,19 @@ static BOOL AI_HasAbsorbAbilityInParty(BattleSystem *battleSys, BattleContext *b } aiSlot1 = battler; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2)) { aiSlot2 = aiSlot1; } else { - aiSlot2 = BattleSystem_Partner(battleSys, battler); + aiSlot2 = BattleSystem_GetPartner(battleSys, battler); } start = 0; - end = BattleSystem_PartyCount(battleSys, battler); + end = BattleSystem_GetPartyCount(battleSys, battler); // Check each Pokemon on the bench for one which has an ability that absorbs // the last move that was used. for (i = start; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -3851,17 +3851,17 @@ static BOOL AI_HasPartyMemberWithSuperEffectiveMove(BattleSystem *battleSys, Bat } aiSlot1 = battler; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2)) { aiSlot2 = aiSlot1; } else { - aiSlot2 = BattleSystem_Partner(battleSys, battler); + aiSlot2 = BattleSystem_GetPartner(battleSys, battler); } start = 0; - end = BattleSystem_PartyCount(battleSys, battler); + end = BattleSystem_GetPartyCount(battleSys, battler); for (i = start; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -4021,17 +4021,17 @@ static BOOL TrainerAI_ShouldSwitch(BattleSystem *battleSys, BattleContext *battl alivePartyMons = 0; aiSlot1 = battler; - if ((BattleSystem_BattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_BattleType(battleSys) & BATTLE_TYPE_2vs2)) { + if ((BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_TAG) || (BattleSystem_GetBattleType(battleSys) & BATTLE_TYPE_2vs2)) { aiSlot2 = aiSlot1; } else { - aiSlot2 = BattleSystem_Partner(battleSys, battler); + aiSlot2 = BattleSystem_GetPartner(battleSys, battler); } // Check for living party members (obviously, do not try to switch if there are none). start = 0; - end = BattleSystem_PartyCount(battleSys, battler); + end = BattleSystem_GetPartyCount(battleSys, battler); for (i = start; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && Pokemon_GetValue(mon, MON_DATA_SPECIES_OR_EGG, NULL) != SPECIES_NONE @@ -4102,9 +4102,9 @@ int TrainerAI_PickCommand(BattleSystem *battleSys, int battler) int end; Pokemon *mon; BattleContext *battleCtx = battleSys->battleCtx; - battleType = BattleSystem_BattleType(battleSys); + battleType = BattleSystem_GetBattleType(battleSys); - if ((battleType & BATTLE_TYPE_TRAINER) || Battler_Side(battleSys, battler) == BATTLE_SIDE_PLAYER) { + if ((battleType & BATTLE_TYPE_TRAINER) || BattleSystem_GetBattlerSide(battleSys, battler) == BATTLE_SIDE_PLAYER) { if (TrainerAI_ShouldSwitch(battleSys, battleCtx, battler)) { // If this is a switch which should use the post-KO switch logic, then do so. // If there is no valid battler, pick the first one in party order. @@ -4114,12 +4114,12 @@ int TrainerAI_PickCommand(BattleSystem *battleSys, int battler) if ((battleType & BATTLE_TYPE_TAG) || (battleType & BATTLE_TYPE_2vs2)) { battler2 = battler1; } else { - battler2 = BattleSystem_Partner(battleSys, battler); + battler2 = BattleSystem_GetPartner(battleSys, battler); } - end = BattleSystem_PartyCount(battleSys, battler); + end = BattleSystem_GetPartyCount(battleSys, battler); for (i = 0; i < end; i++) { - mon = BattleSystem_PartyPokemon(battleSys, battler, i); + mon = BattleSystem_GetPartyPokemon(battleSys, battler, i); if (Pokemon_GetValue(mon, MON_DATA_HP, NULL) != 0 && i != battleCtx->selectedPartySlot[battler1] @@ -4175,7 +4175,7 @@ static BOOL TrainerAI_ShouldUseItem(BattleSystem *battleSys, int battler) // Don't let the AI partners ever use items in battle against trainers. if ((battleSys->battleType & BATTLE_TYPE_TRAINER_WITH_AI_PARTNER) == BATTLE_TYPE_TRAINER_WITH_AI_PARTNER - && BattleSystem_BattlerSlot(battleSys, battler) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { + && BattleSystem_GetBattlerType(battleSys, battler) == BATTLER_TYPE_PLAYER_SIDE_SLOT_2) { return result; } @@ -4184,7 +4184,7 @@ static BOOL TrainerAI_ShouldUseItem(BattleSystem *battleSys, int battler) return result; } - party = BattleSystem_Party(battleSys, battler); + party = BattleSystem_GetParty(battleSys, battler); for (i = 0; i < Party_GetCurrentCount(party); i++) { mon = Party_GetPokemonBySlotIndex(party, i); diff --git a/src/battle_anim/battle_anim_system.c b/src/battle_anim/battle_anim_system.c index 0e1613d203..ba79072188 100644 --- a/src/battle_anim/battle_anim_system.c +++ b/src/battle_anim/battle_anim_system.c @@ -15,7 +15,7 @@ #include "battle/battle_anim_battler_context.h" #include "battle/battle_background_reference.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/pokemon_sprite_data.h" #include "battle/struct_ov16_02265BBC.h" #include "battle_anim/battle_anim_helpers.h" @@ -3937,12 +3937,12 @@ UnkStruct_ov12_02223764 *ov12_022234F8(BattleSystem *battleSys, enum HeapID heap v2->unk_04 = param2; v2->unk_08.unk_00 = BattleSystem_GetSpriteSystem(battleSys); v2->unk_08.unk_04 = BattleSystem_GetSpriteManager(battleSys); - v2->unk_08.unk_08 = BattleSystem_PaletteSys(battleSys); + v2->unk_08.unk_08 = BattleSystem_GetPaletteData(battleSys); { for (v0 = 0; v0 < 4; v0++) { v2->unk_24[v0] = NULL; - v2->pokemonSpriteDataArray[v0] = ov16_0223F2AC(battleSys, v0); + v2->pokemonSpriteDataArray[v0] = BattleSystem_GetPokemonSpriteDataByIndex(battleSys, v0); } ov16_0223F87C(battleSys, &(v2->unk_44[0])); @@ -4080,21 +4080,21 @@ UnkStruct_ov12_02223764 *ov12_02223764(BattleSystem *battleSys, enum HeapID heap return ov12_022234F8(battleSys, heapID, 0xFF); } -void ov12_02223770(UnkStruct_ov12_02223764 *battleSys) +void ov12_02223770(UnkStruct_ov12_02223764 *param0) { int v0; for (v0 = 0; v0 < 4; v0++) { - if (battleSys->unk_24[v0] == NULL) { + if (param0->unk_24[v0] == NULL) { continue; } - SpriteManager_UnloadCharObjById(battleSys->unk_08.unk_04, battleSys->unk_14[v0]); - SpriteManager_UnloadPlttObjById(battleSys->unk_08.unk_04, battleSys->unk_14[v0]); - Sprite_DeleteAndFreeResources(battleSys->unk_24[v0]); + SpriteManager_UnloadCharObjById(param0->unk_08.unk_04, param0->unk_14[v0]); + SpriteManager_UnloadPlttObjById(param0->unk_08.unk_04, param0->unk_14[v0]); + Sprite_DeleteAndFreeResources(param0->unk_24[v0]); } - Heap_Free(battleSys); + Heap_Free(param0); } void ov12_022237A4(UnkStruct_ov12_02223764 *param0, int param1) diff --git a/src/battle_sub_menus/battle_bag.c b/src/battle_sub_menus/battle_bag.c index 0df050a1e5..d0acbdd941 100644 --- a/src/battle_sub_menus/battle_bag.c +++ b/src/battle_sub_menus/battle_bag.c @@ -6,7 +6,7 @@ #include "struct_decls/pc_boxes_decl.h" #include "battle/battle_lib.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/ov16_0226DE44.h" #include "battle_sub_menus/battle_bag_buttons.h" #include "battle_sub_menus/battle_bag_sprites.h" @@ -131,11 +131,11 @@ void BattleBagTask_Start(BattleBagContext *context) memset(battleBagTask, 0, sizeof(BattleBag)); battleBagTask->context = context; - battleBagTask->background = BattleSystem_BGL(context->battleSystem); - battleBagTask->palette = BattleSystem_PaletteSys(context->battleSystem); + battleBagTask->background = BattleSystem_GetBgConfig(context->battleSys); + battleBagTask->palette = BattleSystem_GetPaletteData(context->battleSys); battleBagTask->currentState = TASK_STATE_INITIALIZE; - BagCursor *cursor = BattleSystem_BagCursor(context->battleSystem); + BagCursor *cursor = BattleSystem_GetBagCursor(context->battleSys); for (u8 i = 0; i < BATTLE_POCKET_MAX; i++) { BagCursor_GetBattleCategoryPosition(cursor, i, &battleBagTask->context->pocketCurrentPagePositions[i], &battleBagTask->context->pocketCurrentPages[i]); @@ -146,7 +146,7 @@ void BattleBagTask_Start(BattleBagContext *context) BattleBag_CanUseLastUsedItem(battleBagTask); - if (BattleSystem_BattleType(battleBagTask->context->battleSystem) & BATTLE_TYPE_CATCH_TUTORIAL) { + if (BattleSystem_GetBattleType(battleBagTask->context->battleSys) & BATTLE_TYPE_CATCH_TUTORIAL) { battleBagTask->context->isInCatchTutorial = TRUE; } } @@ -219,7 +219,7 @@ static u8 BattleBagTask_Initialize(BattleBag *battleBag) InitializeMessageLoader(battleBag); Font_InitManager(FONT_SUBSCREEN, battleBag->context->heapID); - battleBag->currentBattlePocket = (u8)BagCursor_GetBattleCurrentCategory(BattleSystem_BagCursor(battleBag->context->battleSystem)); + battleBag->currentBattlePocket = (u8)BagCursor_GetBattleCurrentCategory(BattleSystem_GetBagCursor(battleBag->context->battleSys)); BattleBag_Init(battleBag); BattleBagButtons_InitializeButtons(battleBag, battleBag->currentScreen); @@ -413,7 +413,7 @@ static u8 TryUseItem(BattleBag *battleBag) u32 itemBattleUse = Item_LoadParam(context->selectedBattleBagItem, ITEM_PARAM_BATTLE_USE_FUNC, context->heapID); if (context->embargoRemainingTurns != 0 && context->selectedBattleBagItem != ITEM_GUARD_SPEC && itemBattleUse != 3) { - Pokemon *mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, partySlot); + Pokemon *mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, partySlot); String *string = MessageLoader_GetNewString(battleBag->messageLoader, BattleBag_Text_EmbargoBlockingItemUse); StringTemplate_SetNickname(battleBag->stringTemplate, 0, Pokemon_GetBoxPokemon(mon)); @@ -427,12 +427,12 @@ static u8 TryUseItem(BattleBag *battleBag) return TASK_STATE_AWAITING_TEXT_FINISH; } - if (BattleSystem_UseBagItem(context->battleSystem, context->battler, partySlot, 0, context->selectedBattleBagItem) == TRUE) { - UseBagItem(context->battleSystem, context->selectedBattleBagItem, battleBag->currentBattlePocket, context->heapID); + if (BattleSystem_UseBagItem(context->battleSys, context->battler, partySlot, 0, context->selectedBattleBagItem) == TRUE) { + UseBagItem(context->battleSys, context->selectedBattleBagItem, battleBag->currentBattlePocket, context->heapID); return TASK_STATE_EXIT; } else if (itemBattleUse == 3) { - if (!(BattleSystem_BattleType(context->battleSystem) & BATTLE_TYPE_TRAINER)) { - UseBagItem(context->battleSystem, context->selectedBattleBagItem, battleBag->currentBattlePocket, context->heapID); + if (!(BattleSystem_GetBattleType(context->battleSys) & BATTLE_TYPE_TRAINER)) { + UseBagItem(context->battleSys, context->selectedBattleBagItem, battleBag->currentBattlePocket, context->heapID); return TASK_STATE_EXIT; } else { MessageLoader *messageLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_COMMON_STRINGS, context->heapID); @@ -473,8 +473,8 @@ static u8 TryUseItem(BattleBag *battleBag) return TASK_STATE_AWAITING_TEXT_FINISH; } - Party *party = BattleSystem_Party(context->battleSystem, context->battler); - PCBoxes *pcBoxes = BattleSystem_PCBoxes(context->battleSystem); + Party *party = BattleSystem_GetParty(context->battleSys, context->battler); + PCBoxes *pcBoxes = BattleSystem_GetPCBoxes(context->battleSys); if (Party_GetCurrentCount(party) == MAX_PARTY_SIZE && PCBoxes_FirstEmptyBox(pcBoxes) == MAX_PC_BOXES) { MessageLoader_GetString(battleBag->messageLoader, BattleBag_Text_CantUseBallNoRoomLeft, battleBag->string); @@ -561,7 +561,7 @@ static BOOL BattleBagTask_FinishTask(SysTask *task, BattleBag *battleBag) Font_Free(FONT_SUBSCREEN); if (battleBag->context->selectedBattleBagItem != ITEM_NONE) { - BagCursor *cursor = BattleSystem_BagCursor(battleBag->context->battleSystem); + BagCursor *cursor = BattleSystem_GetBagCursor(battleBag->context->battleSys); for (u8 i = 0; i < BATTLE_POCKET_MAX; i++) { BagCursor_SetBattleCategoryPosition(cursor, i, battleBag->context->pocketCurrentPagePositions[i], battleBag->context->pocketCurrentPages[i]); @@ -737,7 +737,7 @@ static void LoadGraphicsData(BattleBag *battleBag) PaletteData_LoadBufferFromFileStart(battleBag->palette, NARC_INDEX_BATTLE__GRAPHIC__B_BAG_GRA, 3, battleBag->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES * 12, 0); PaletteData_LoadBufferFromFileStart(battleBag->palette, NARC_INDEX_GRAPHIC__PL_FONT, 7, battleBag->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES, 240); - int optionsFrame = ov16_0223EDE0(battleBag->context->battleSystem); + int optionsFrame = BattleSystem_GetOptionsFrame(battleBag->context->battleSys); Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxTilesNARCMember(optionsFrame), battleBag->background, BG_LAYER_SUB_0, 1024 - SCROLLING_MESSAGE_BOX_TILE_COUNT, 0, FALSE, battleBag->context->heapID); PaletteData_LoadBufferFromFileStart(battleBag->palette, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxPaletteNARCMember(optionsFrame), battleBag->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES, 224); } @@ -813,11 +813,11 @@ static int CheckTouchRectIsPressed(BattleBag *battleBag, const TouchScreenRect * int BattleBagTask_GetSelectedPartySlot(BattleBag *battleBag) { - return BattleContext_Get(battleBag->context->battleSystem, BattleSystem_Context(battleBag->context->battleSystem), BATTLECTX_SELECTED_PARTY_SLOT, battleBag->context->battler); + return BattleContext_Get(battleBag->context->battleSys, BattleSystem_GetBattleContext(battleBag->context->battleSys), BATTLECTX_SELECTED_PARTY_SLOT, battleBag->context->battler); } static void UseBagItem(BattleSystem *battleSys, u16 item, u16 category, enum HeapID heapID) { - Bag_TryRemoveItem(BattleSystem_Bag(battleSys), item, 1, heapID); - Bag_SetLastBattleItemUsed(BattleSystem_BagCursor(battleSys), item, category); + Bag_TryRemoveItem(BattleSystem_GetBag(battleSys), item, 1, heapID); + Bag_SetLastBattleItemUsed(BattleSystem_GetBagCursor(battleSys), item, category); } diff --git a/src/battle_sub_menus/battle_bag_sprites.c b/src/battle_sub_menus/battle_bag_sprites.c index ebe4178d68..d41a40456a 100644 --- a/src/battle_sub_menus/battle_bag_sprites.c +++ b/src/battle_sub_menus/battle_bag_sprites.c @@ -1,6 +1,6 @@ #include "battle_sub_menus/battle_bag_sprites.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/ov16_0226DB7C.h" #include "battle/ov16_0226DE44.h" #include "battle/struct_ov16_0226DC24_decl.h" @@ -96,7 +96,7 @@ void BattleBagSprites_InitializeSprites(BattleBag *battleBag) static void InitializeSpriteManager(BattleBag *battleBag) { SpriteResourceCapacities capacities = { .asArray[SPRITE_RESOURCE_CHAR] = SPRITE_MANAGER_CHAR_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_PLTT] = SPRITE_MANAGER_PLTT_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_CELL] = SPRITE_MANAGER_CELL_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_ANIM] = SPRITE_MANAGER_ANIM_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_MULTI_CELL] = SPRITE_MANAGER_MULTI_CELL_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_MULTI_ANIM] = SPRITE_MANAGER_MULTI_ANIM_RESOURCE_CAPACITY }; - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); battleBag->spriteManager = SpriteManager_New(spriteSystem); @@ -107,7 +107,7 @@ static void InitializeSpriteManager(BattleBag *battleBag) static void LoadSpriteData(BattleBag *battleBag) { NARC *narc = NARC_ctor(NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, battleBag->context->heapID); - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); for (u32 i = 0; i < NUM_BATTLE_BAG_SPRITES; i++) { SpriteSystem_LoadCharResObjFromOpenNarc(spriteSystem, battleBag->spriteManager, narc, Item_FileID(ITEM_MASTER_BALL, ITEM_FILE_TYPE_ICON), FALSE, NNS_G2D_VRAM_TYPE_2DSUB, POCKET_SLOT_1_RESOURCE_ID + i); @@ -121,7 +121,7 @@ static void LoadSpriteData(BattleBag *battleBag) static void LoadItemIcon(BattleBag *battleBag, u16 item, u32 resourceID) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); SpriteSystem_ReplaceCharResObj(spriteSystem, battleBag->spriteManager, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, ITEM_FILE_TYPE_ICON), FALSE, resourceID); } @@ -132,7 +132,7 @@ static void LoadItemPaletteData(BattleBag *battleBag, u16 item, u16 slotIndex, u static ManagedSprite *CreateSprite(BattleBag *battleBag, u32 spriteIndex) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); SpriteTemplate template; template.x = 0; @@ -161,7 +161,7 @@ static void InitializeSprites(BattleBag *battleBag) void BattleBagSprites_CleanupSprites(BattleBag *battleBag) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); for (u32 i = 0; i < NUM_BATTLE_BAG_SPRITES; i++) { Sprite_DeleteAndFreeResources(battleBag->sprites[i]); @@ -232,7 +232,7 @@ static void DrawSelectedItem(BattleBag *battleBag) static void InitializeCursor(BattleBag *battleBag) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); UnkStruct_ov16_0226DC24 *cursorSprites; ov16_0226DB7C(spriteSystem, battleBag->spriteManager, battleBag->palette, battleBag->context->heapID, CURSOR_CHAR_RESOURCE_ID, CURSOR_PLTT_RESOURCE_ID, CURSOR_CELL_RESOURCE_ID, CURSOR_ANIM_RESOURCE_ID); @@ -457,7 +457,7 @@ void BattleBagSprites_DisableCursor(BattleBag *battleBag) static void InitializeCatchTutorialCursor(BattleBag *battleBag) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleBag->context->battleSys); ov16_0226DE44(spriteSystem, battleBag->spriteManager, battleBag->context->heapID, battleBag->palette, CATCH_TUTORIAL_CURSOR_CHAR_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_PLTT_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_CELL_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_ANIM_RESOURCE_ID); battleBag->catchTutorialCursor = ov16_0226DEEC(spriteSystem, battleBag->spriteManager, battleBag->context->heapID, CATCH_TUTORIAL_CURSOR_CHAR_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_PLTT_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_CELL_RESOURCE_ID, CATCH_TUTORIAL_CURSOR_ANIM_RESOURCE_ID, 0, 0); diff --git a/src/battle_sub_menus/battle_bag_text.c b/src/battle_sub_menus/battle_bag_text.c index e11a1ece07..a25c8dc215 100644 --- a/src/battle_sub_menus/battle_bag_text.c +++ b/src/battle_sub_menus/battle_bag_text.c @@ -2,7 +2,7 @@ #include "constants/graphics.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle_sub_menus/battle_bag.h" #include "bg_window.h" @@ -641,5 +641,5 @@ void BattleBagText_DisplayMessage(BattleBag *battleBag) void BattleBagText_PrintToMessageBox(BattleBag *battleBag) { RenderControlFlags_SetCanABSpeedUpPrint(TRUE); - battleBag->textPrinterID = Text_AddPrinterWithParams(&battleBag->messageBoxWindow, FONT_MESSAGE, battleBag->string, 0, 0, BattleSystem_TextSpeed(battleBag->context->battleSystem), NULL); + battleBag->textPrinterID = Text_AddPrinterWithParams(&battleBag->messageBoxWindow, FONT_MESSAGE, battleBag->string, 0, 0, BattleSystem_GetTextSpeed(battleBag->context->battleSys), NULL); } diff --git a/src/battle_sub_menus/battle_party.c b/src/battle_sub_menus/battle_party.c index abc27affdd..2e5edd4bb6 100644 --- a/src/battle_sub_menus/battle_party.c +++ b/src/battle_sub_menus/battle_party.c @@ -8,7 +8,7 @@ #include "struct_decls/battle_system.h" #include "applications/pokemon_summary_screen/main.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle_sub_menus/battle_party.h" #include "battle_sub_menus/battle_party_buttons.h" #include "battle_sub_menus/battle_party_sprites.h" @@ -239,12 +239,12 @@ void BattlePartyTask_Start(BattlePartyContext *context) memset(battleParty, 0, sizeof(BattleParty)); battleParty->context = context; - battleParty->background = BattleSystem_BGL(context->battleSystem); - battleParty->palette = BattleSystem_PaletteSys(context->battleSystem); + battleParty->background = BattleSystem_GetBgConfig(context->battleSys); + battleParty->palette = BattleSystem_GetPaletteData(context->battleSys); battleParty->currentState = TASK_STATE_INITIALIZE; battleParty->partySlotLearningMove = context->selectedPartyIndex; - battleParty->hasVisitedContestHall = ov16_0223F1F8(context->battleSystem); - battleParty->battlerSlot = BattleSystem_BattlerSlot(context->battleSystem, context->battler); + battleParty->hasVisitedContestHall = BattleSystem_GetVisistedContestHall(context->battleSys); + battleParty->battlerSlot = BattleSystem_GetBattlerType(context->battleSys, context->battler); } static void BattlePartyTask_Tick(SysTask *task, void *taskParam) @@ -438,13 +438,13 @@ static u8 PartyUseItemScreen(BattleParty *battleParty) return TASK_STATE_SCREEN_TRANSITION; } - if (BattleSystem_UseBagItem(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex], 0, context->selectedBattleBagItem) == TRUE) { + if (BattleSystem_UseBagItem(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex], 0, context->selectedBattleBagItem) == TRUE) { if (Item_LoadParam(context->selectedBattleBagItem, ITEM_PARAM_PP_RESTORE_ALL, context->heapID) != FALSE) { battleParty->queuedState = TASK_STATE_SETUP_RESTORE_MOVE_PP_SCREEN; } else { if (BattlePartyTask_CheckCanPartySlotBeSelected(battleParty, context->selectedPartyIndex) == PARTY_SLOT_SELECTABLE_IN_BATTLE && Item_LoadParam(context->selectedBattleBagItem, ITEM_PARAM_REVIVE, context->heapID) == FALSE) { - UseBagItem(context->battleSystem, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); - battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); + UseBagItem(context->battleSys, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); + battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); context->currentDamage = Pokemon_GetValue(battleParty->partyPokemon[context->selectedPartyIndex].mon, MON_DATA_HP, NULL); context->currentDamage -= battleParty->partyPokemon[context->selectedPartyIndex].curHP; battleParty->queuedState = TASK_STATE_EXIT; @@ -780,7 +780,7 @@ static u8 BattlePartyTask_RestoreMovePPScreen(BattleParty *battleParty) Sound_PlayEffect(SEQ_SE_DP_DECIDE); BattlePartyButtons_PressButton(battleParty, BATTLE_RESTORE_MOVE_PP_SCREEN_BUTTON_OFFSET + restoreMovePPScreenButtonPressed); - if (BattleSystem_UseBagItem(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex], restoreMovePPScreenButtonPressed, context->selectedBattleBagItem) == TRUE) { + if (BattleSystem_UseBagItem(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex], restoreMovePPScreenButtonPressed, context->selectedBattleBagItem) == TRUE) { battleParty->useItemState = BATTLE_PARTY_USE_ALL_MOVE_PP_RESTORATION_ITEM_STATE_INTIALISING; battleParty->queuedState = TASK_STATE_USE_RESTORATION_ITEM; return TASK_STATE_SCREEN_TRANSITION; @@ -927,7 +927,7 @@ static u8 BattlePartyTask_UseRestorationItem(BattleParty *battleParty) switch (battleParty->useItemState) { case BATTLE_PARTY_USE_RESTORATION_ITEM_STATE_INITIALISING: - battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); + battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); BattlePartyText_PrintUseItemEffect(battleParty); if (battleParty->currentScreen == BATTLE_PARTY_SCREEN_RESTORE_MOVE_PP) { @@ -966,7 +966,7 @@ static u8 BattlePartyTask_UseRestorationItem(BattleParty *battleParty) battleParty->useItemState = BATTLE_PARTY_USE_RESTORATION_ITEM_STATE_FINISHING; break; case BATTLE_PARTY_USE_RESTORATION_ITEM_STATE_FINISHING: - UseBagItem(context->battleSystem, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); + UseBagItem(context->battleSys, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); BattlePartyText_DisplayErrorMessage(battleParty); battleParty->queuedState = TASK_STATE_EXIT; return TASK_STATE_AWAITING_TEXT_FINISH; @@ -990,7 +990,7 @@ static u8 BattlePartyTask_UseAllMovePPRestorationItem(BattleParty *battleParty) switch (battleParty->useItemState) { case BATTLE_PARTY_USE_ALL_MOVE_PP_RESTORATION_ITEM_STATE_INTIALISING: - battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); + battleParty->partyPokemon[context->selectedPartyIndex].mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); for (u32 i = 0; i < LEARNED_MOVES_MAX; i++) { if (battleParty->partyPokemon[context->selectedPartyIndex].moves[i].move == MOVE_NONE) { @@ -1026,7 +1026,7 @@ static u8 BattlePartyTask_UseAllMovePPRestorationItem(BattleParty *battleParty) } } break; case BATTLE_PARTY_USE_ALL_MOVE_PP_RESTORATION_ITEM_STATE_FINISHING: - UseBagItem(context->battleSystem, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); + UseBagItem(context->battleSys, context->selectedBattleBagItem, context->selectedBattleBagPocket, context->heapID); BattlePartyText_DisplayErrorMessage(battleParty); battleParty->queuedState = TASK_STATE_EXIT; return TASK_STATE_AWAITING_TEXT_FINISH; @@ -1195,7 +1195,7 @@ static void LoadGraphicsData(BattleParty *battleParty) PaletteData_LoadBufferFromFileStart(battleParty->palette, NARC_INDEX_GRAPHIC__PL_FONT, 6, battleParty->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES, 208); PaletteData_LoadBufferFromFileStart(battleParty->palette, NARC_INDEX_GRAPHIC__PL_FONT, 7, battleParty->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES, 240); - int optionsFrame = ov16_0223EDE0(battleParty->context->battleSystem); + int optionsFrame = BattleSystem_GetOptionsFrame(battleParty->context->battleSys); Graphics_LoadTilesToBgLayer(NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxTilesNARCMember(optionsFrame), battleParty->background, BG_LAYER_SUB_0, 1, 0, FALSE, battleParty->context->heapID); PaletteData_LoadBufferFromFileStart(battleParty->palette, NARC_INDEX_GRAPHIC__PL_WINFRAME, GetMessageBoxPaletteNARCMember(optionsFrame), battleParty->context->heapID, PLTTBUF_SUB_BG, PALETTE_SIZE_BYTES, 224); @@ -1622,8 +1622,8 @@ static BOOL CheckCanSwitchPokemon(BattleParty *battleParty) if (BattlePartyTask_CheckIfSwitchingWithPartnersPokemon(battleParty, battleParty->context->selectedPartyIndex) == TRUE) { String *string = MessageLoader_GetNewString(battleParty->messageLoader, BattleParty_Text_CantSwitchWithPartnersPokemon); - int trainerSlot = BattleSystem_Partner(battleParty->context->battleSystem, battleParty->context->battler); - StringTemplate_SetTrainerNameBattle(battleParty->stringTemplate, 0, BattleSystem_GetTrainer(battleParty->context->battleSystem, trainerSlot)); + int trainerSlot = BattleSystem_GetPartner(battleParty->context->battleSys, battleParty->context->battler); + StringTemplate_SetTrainerNameBattle(battleParty->stringTemplate, 0, BattleSystem_GetTrainer(battleParty->context->battleSys, trainerSlot)); StringTemplate_Format(battleParty->stringTemplate, battleParty->string, string); String_Free(string); return FALSE; @@ -1680,7 +1680,7 @@ static u8 CheckSelectedPokemonIsEgg(BattleParty *battleParty) BOOL BattlePartyTask_CheckIfPartnerBattle(BattleParty *battleParty) { - u32 battleType = BattleSystem_BattleType(battleParty->context->battleSystem); + u32 battleType = BattleSystem_GetBattleType(battleParty->context->battleSys); if (battleType != BATTLE_TYPE_AI_PARTNER && battleType != (BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) @@ -1693,7 +1693,7 @@ BOOL BattlePartyTask_CheckIfPartnerBattle(BattleParty *battleParty) BOOL BattlePartyTask_CheckIf2V2Battle(BattleParty *battleParty) { - u32 battleType = BattleSystem_BattleType(battleParty->context->battleSystem); + u32 battleType = BattleSystem_GetBattleType(battleParty->context->battleSys); if (battleType != BATTLE_TYPE_AI_PARTNER && battleType != (BATTLE_TYPE_TRAINER_DOUBLES | BATTLE_TYPE_2vs2 | BATTLE_TYPE_AI) @@ -1751,8 +1751,8 @@ static void ClearMoveContestStats(BattleParty *battleParty) static void UseBagItem(BattleSystem *battleSys, u16 item, u16 category, enum HeapID heapID) { if (item != ITEM_BLUE_FLUTE && item != ITEM_RED_FLUTE && item != ITEM_YELLOW_FLUTE) { - Bag_TryRemoveItem(BattleSystem_Bag(battleSys), item, 1, heapID); + Bag_TryRemoveItem(BattleSystem_GetBag(battleSys), item, 1, heapID); } - Bag_SetLastBattleItemUsed(BattleSystem_BagCursor(battleSys), item, category); + Bag_SetLastBattleItemUsed(BattleSystem_GetBagCursor(battleSys), item, category); } diff --git a/src/battle_sub_menus/battle_party_sprites.c b/src/battle_sub_menus/battle_party_sprites.c index c7c1ebb11a..3cc5142e25 100644 --- a/src/battle_sub_menus/battle_party_sprites.c +++ b/src/battle_sub_menus/battle_party_sprites.c @@ -5,7 +5,7 @@ #include "applications/party_menu/main.h" #include "applications/pokemon_summary_screen/main.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle/ov16_0226DB7C.h" #include "battle/struct_ov16_0226DC24_decl.h" #include "battle_sub_menus/battle_party.h" @@ -302,7 +302,7 @@ void BattlePartySprites_InitializeSprites(BattleParty *battleParty) static void InitializeSpriteManager(BattleParty *battleParty) { SpriteResourceCapacities capacities = { .asArray[SPRITE_RESOURCE_CHAR] = SPRITE_MANAGER_CHAR_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_PLTT] = SPRITE_MANAGER_PLTT_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_CELL] = SPRITE_MANAGER_CELL_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_ANIM] = SPRITE_MANAGER_ANIM_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_MULTI_CELL] = SPRITE_MANAGER_MULTI_CELL_RESOURCE_CAPACITY, .asArray[SPRITE_RESOURCE_MULTI_ANIM] = SPRITE_MANAGER_MULTI_ANIM_RESOURCE_CAPACITY }; - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); battleParty->spriteManager = SpriteManager_New(spriteSystem); @@ -313,7 +313,7 @@ static void InitializeSpriteManager(BattleParty *battleParty) static void LoadPartyPokemonSpriteData(BattleParty *battleParty) { NARC *narc = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, battleParty->context->heapID); - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteSystem_LoadPaletteBufferFromOpenNarc(battleParty->palette, PLTTBUF_SUB_OBJ, spriteSystem, battleParty->spriteManager, narc, PokeIconPalettesFileIndex(), FALSE, 3, NNS_G2D_VRAM_TYPE_2DSUB, PARTY_POKEMON_PLTT_RESOURCE_ID); SpriteSystem_LoadCellResObjFromOpenNarc(spriteSystem, battleParty->spriteManager, narc, PokeIcon32KCellsFileIndex(), FALSE, PARTY_POKEMON_CELL_RESOURCE_ID); @@ -332,7 +332,7 @@ static void LoadPartyPokemonSpriteData(BattleParty *battleParty) static void LoadSummaryStatusesSpriteData(BattleParty *battleParty) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); NARC *narc = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PST_GRA, battleParty->context->heapID); SpriteSystem_LoadPaletteBufferFromOpenNarc(battleParty->palette, PLTTBUF_SUB_OBJ, spriteSystem, battleParty->spriteManager, narc, PokemonSummaryScreen_StatusIconPltt(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, SUMMARY_STATUSES_PLTT_RESOURCE_ID); @@ -344,7 +344,7 @@ static void LoadSummaryStatusesSpriteData(BattleParty *battleParty) static void LoadTypesAndMovesSpriteData(BattleParty *battleParty) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); TypeIcon_LoadPltt(battleParty->palette, PLTTBUF_SUB_OBJ, spriteSystem, battleParty->spriteManager, NNS_G2D_VRAM_TYPE_2DSUB, MOVE_TYPES_PLTT_RESOURCE_ID); TypeIcon_LoadAnim(spriteSystem, battleParty->spriteManager, MOVE_TYPES_CELL_RESOURCE_ID, MOVE_TYPES_ANIM_RESOURCE_ID); @@ -359,7 +359,7 @@ static void LoadTypesAndMovesSpriteData(BattleParty *battleParty) static void LoadHeldMailSpriteData(BattleParty *battleParty) { NARC *narc = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PLIST_GRA, battleParty->context->heapID); - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteSystem_LoadPaletteBufferFromOpenNarc(battleParty->palette, PLTTBUF_SUB_OBJ, spriteSystem, battleParty->spriteManager, narc, sub_02081934(), FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, HELD_MAIL_PLTT_RESOURCE_ID); SpriteSystem_LoadCellResObjFromOpenNarc(spriteSystem, battleParty->spriteManager, narc, sub_02081938(), FALSE, HELD_MAIL_CELL_RESOURCE_ID); @@ -370,7 +370,7 @@ static void LoadHeldMailSpriteData(BattleParty *battleParty) static void LoadContestStatsSpriteData(BattleParty *battleParty) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteSystem_LoadPaletteBuffer(battleParty->palette, PLTTBUF_SUB_OBJ, spriteSystem, battleParty->spriteManager, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 27, FALSE, 1, NNS_G2D_VRAM_TYPE_2DSUB, CONTEST_STATS_PLTT_RESOURCE_ID); SpriteSystem_LoadCellResObj(spriteSystem, battleParty->spriteManager, NARC_INDEX_BATTLE__GRAPHIC__PL_B_PLIST_GRA, 25, FALSE, CONTEST_STATS_CELL_RESOURCE_ID); @@ -380,7 +380,7 @@ static void LoadContestStatsSpriteData(BattleParty *battleParty) static ManagedSprite *CreateSprite(BattleParty *battleParty, u32 spriteIndex) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteTemplate template; template.x = 0; @@ -411,7 +411,7 @@ static void InitializeSprites(BattleParty *battleParty) void BattlePartySprites_CleanupSprites(BattleParty *battleParty) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); for (u32 i = 0; i < NUM_BATTLE_PARTY_SPRITES; i++) { Sprite_DeleteAndFreeResources(battleParty->sprites[i]); @@ -440,7 +440,7 @@ static void InitializePartyPokemonSprites(BattleParty *battleParty) static void InitializeTypeIcon(BattleParty *battleParty, ManagedSprite *sprite, u32 resourceID, u8 type) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteSystem_ReplaceCharResObj(spriteSystem, battleParty->spriteManager, TypeIcon_GetNARC(), TypeIcon_GetChar(type), TRUE, resourceID); ManagedSprite_SetExplicitPalette(sprite, TypeIcon_GetPltt(type) + 4); @@ -448,7 +448,7 @@ static void InitializeTypeIcon(BattleParty *battleParty, ManagedSprite *sprite, static void InitializeMoveClassIcon(BattleParty *battleParty, ManagedSprite *sprite, enum MoveClass moveClass) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); SpriteSystem_ReplaceCharResObj(spriteSystem, battleParty->spriteManager, CategoryIcon_GetNARC(), CategoryIcon_GetChar(moveClass), TRUE, MOVE_CLASSES_CHAR_RESOURCE_ID); ManagedSprite_SetExplicitPalette(sprite, CategoryIcon_GetPltt(moveClass) + 4); @@ -804,7 +804,7 @@ static void DrawContestStatSprites(BattleParty *battleParty) static void InitializeCursor(BattleParty *battleParty) { - SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSystem); + SpriteSystem *spriteSystem = BattleSystem_GetSpriteSystem(battleParty->context->battleSys); UnkStruct_ov16_0226DC24 *cursorSprites; ov16_0226DB7C(spriteSystem, battleParty->spriteManager, battleParty->palette, battleParty->context->heapID, CURSOR_CHAR_RESOURCE_ID, CURSOR_PLTT_RESOURCE_ID, CURSOR_CELL_RESOURCE_ID, CURSOR_ANIM_RESOURCE_ID); diff --git a/src/battle_sub_menus/battle_party_text.c b/src/battle_sub_menus/battle_party_text.c index 74cf3e50e1..320859d169 100644 --- a/src/battle_sub_menus/battle_party_text.c +++ b/src/battle_sub_menus/battle_party_text.c @@ -3,7 +3,7 @@ #include "constants/graphics.h" #include "applications/pokemon_summary_screen/main.h" -#include "battle/ov16_0223DF00.h" +#include "battle/battle_system.h" #include "battle_sub_menus/battle_party.h" #include "bg_window.h" @@ -2274,7 +2274,7 @@ void BattlePartyText_DisplayErrorMessage(BattleParty *battleParty) void BattlePartyText_PrintToErrorMessageBox(BattleParty *battleParty) { RenderControlFlags_SetCanABSpeedUpPrint(TRUE); - battleParty->textPrinterID = Text_AddPrinterWithParams(&battleParty->messageBoxWindows[BATTLE_PARTY_MESSAGE_BOX_ERROR], FONT_MESSAGE, battleParty->string, 0, 0, BattleSystem_TextSpeed(battleParty->context->battleSystem), NULL); + battleParty->textPrinterID = Text_AddPrinterWithParams(&battleParty->messageBoxWindows[BATTLE_PARTY_MESSAGE_BOX_ERROR], FONT_MESSAGE, battleParty->string, 0, 0, BattleSystem_GetTextSpeed(battleParty->context->battleSys), NULL); } void BattlePartyText_PrintUseItemEffect(BattleParty *battleParty) @@ -2285,7 +2285,7 @@ void BattlePartyText_PrintUseItemEffect(BattleParty *battleParty) u16 newHP; u8 healedStatusEffectFlags; - mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); + mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); newHP = Pokemon_GetValue(mon, MON_DATA_HP, NULL); healedStatusEffectFlags = 0; @@ -2378,7 +2378,7 @@ void BattlePartyText_PrintUseItemEffect(BattleParty *battleParty) void BattlePartyText_PrintEmbargoPreventingItemUse(BattleParty *battleParty) { BattlePartyContext *context = battleParty->context; - Pokemon *mon = BattleSystem_PartyPokemon(context->battleSystem, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); + Pokemon *mon = BattleSystem_GetPartyPokemon(context->battleSys, context->battler, context->pokemonPartySlots[context->selectedPartyIndex]); String *string = MessageLoader_GetNewString(battleParty->messageLoader, BattleParty_Text_EmbargoPreventsItemUse); StringTemplate_SetNickname(battleParty->stringTemplate, 0, Pokemon_GetBoxPokemon(mon)); diff --git a/src/meson.build b/src/meson.build index 8e6ca31705..308dd07e20 100644 --- a/src/meson.build +++ b/src/meson.build @@ -527,7 +527,7 @@ pokeplatinum_c = files( 'battle/trainer_ai/trainer_ai.c', 'overlay015/ov15_dummy.c', 'battle/ov16_0223B140.c', - 'battle/ov16_0223DF00.c', + 'battle/battle_system.c', 'battle/battle_script.c', 'battle/battle_controller_player.c', 'battle/battle_lib.c', diff --git a/src/pokemon_sprite.c b/src/pokemon_sprite.c index 9cb72a43fe..19989efc0d 100644 --- a/src/pokemon_sprite.c +++ b/src/pokemon_sprite.c @@ -1579,7 +1579,7 @@ void PokemonSprite_DrawSpindaSpots(u8 *rawCharData, u32 personality, BOOL isAnim static u16 PokemonSprite_LCRNGNext(u32 *seed) { *seed = *seed * LCRNG_MULTIPLIER + LCRNG_INCREMENT; - return (u16)(*seed / 65536L); + return (u16)(*seed / LCRNG_DIVISOR); } void PokemonSprite_DecryptPt(u8 *rawCharData) diff --git a/src/unk_0207A6DC.c b/src/unk_0207A6DC.c index 3e744104bc..fffa8a584e 100644 --- a/src/unk_0207A6DC.c +++ b/src/unk_0207A6DC.c @@ -14,8 +14,8 @@ #include "struct_defs/trainer.h" #include "battle/battle_controller.h" +#include "battle/battle_system.h" #include "battle/message_defs.h" -#include "battle/ov16_0223DF00.h" #include "charcode_util.h" #include "communication_system.h" @@ -94,13 +94,13 @@ static const CommCmdTable Unk_020F099C[] = { void sub_0207A6DC(void *param0) { int v0 = sizeof(Unk_020F099C) / sizeof(CommCmdTable); - BattleSystem *v1; + BattleSystem *battleSys; UnkStruct_0207ACB4 *v2; UnkStruct_0207AD40 *v3; - v1 = (BattleSystem *)param0; + battleSys = (BattleSystem *)param0; - if (BattleSystem_BattleStatus(v1) & 0x10) { + if (BattleSystem_GetBattleStatusMask(battleSys) & 0x10) { return; } @@ -109,13 +109,13 @@ void sub_0207A6DC(void *param0) CommCmd_Init(Unk_020F099C, v0, param0); - v2->unk_00 = v1; + v2->battleSys = battleSys; v2->unk_04 = 0; - v3->unk_00 = v1; + v3->battleSys = battleSys; v3->unk_04 = 0; - ov16_0223F320(v1, &v2->unk_04); - ov16_0223F32C(v1, &v3->unk_04); + ov16_0223F320(battleSys, &v2->unk_04); + ov16_0223F32C(battleSys, &v3->unk_04); SysTask_Start(sub_0207ACB4, v2, 0); SysTask_Start(sub_0207AD40, v3, 0); @@ -236,9 +236,9 @@ void sub_0207A81C(BattleSystem *battleSys, int param1, int param2, void *param3, u16 *v5; info = (BattleMessageInfo *)Heap_Alloc(HEAP_ID_BATTLE, sizeof(BattleMessageInfo)); - v3 = ov16_0223E06C(battleSys); - v4 = ov16_0223E08C(battleSys); - v5 = ov16_0223E098(battleSys); + v3 = BattleSystem_GetServerMessage(battleSys); + v4 = BattleSystem_GetServerWriteIndex(battleSys); + v5 = BattleSystem_GetServerEndIndex(battleSys); if (v4[0] + sizeof(BattleMessageInfo) + param4 + 1 > 0x1000) { v5[0] = v4[0]; @@ -268,12 +268,12 @@ void sub_0207A81C(BattleSystem *battleSys, int param1, int param2, void *param3, static void sub_0207A8A8(int param0, int param1, void *param2, void *param3) { - BattleSystem *v0 = (BattleSystem *)param3; + BattleSystem *battleSys = (BattleSystem *)param3; int v1; u8 *v2 = (u8 *)param2; - u8 *v3 = ov16_0223E074(v0); - u16 *v4 = ov16_0223E0B0(v0); - u16 *v5 = ov16_0223E0BC(v0); + u8 *v3 = BattleSystem_GetClientMessage(battleSys); + u16 *v4 = BattleSystem_GetClientWriteIndex(battleSys); + u16 *v5 = BattleSystem_GetClientEndIndex(battleSys); if (v4[0] + param1 + 1 > 0x1000) { v5[0] = v4[0]; @@ -569,10 +569,10 @@ void sub_0207ACB4(SysTask *param0, void *param1) u16 *v4; int v5; - v1 = ov16_0223E06C(v0->unk_00); - v2 = ov16_0223E080(v0->unk_00); - v3 = ov16_0223E08C(v0->unk_00); - v4 = ov16_0223E098(v0->unk_00); + v1 = BattleSystem_GetServerMessage(v0->battleSys); + v2 = BattleSystem_GetServerReadIndex(v0->battleSys); + v3 = BattleSystem_GetServerWriteIndex(v0->battleSys); + v4 = BattleSystem_GetServerEndIndex(v0->battleSys); switch (v0->unk_04) { case 0: @@ -612,10 +612,10 @@ void sub_0207AD40(SysTask *param0, void *param1) u16 *v4; int v5; - v1 = ov16_0223E074(v0->unk_00); - v2 = ov16_0223E0A4(v0->unk_00); - v3 = ov16_0223E0B0(v0->unk_00); - v4 = ov16_0223E0BC(v0->unk_00); + v1 = BattleSystem_GetClientMessage(v0->battleSys); + v2 = BattleSystem_GetClientReadIndex(v0->battleSys); + v3 = BattleSystem_GetClientWriteIndex(v0->battleSys); + v4 = BattleSystem_GetClientEndIndex(v0->battleSys); switch (v0->unk_04) { case 0: @@ -628,7 +628,7 @@ void sub_0207AD40(SysTask *param0, void *param1) v4[0] = 0; } - if (BattleController_RecvCommMessage(v0->unk_00, (void *)&v1[v2[0]]) == 1) { + if (BattleController_RecvCommMessage(v0->battleSys, (void *)&v1[v2[0]]) == 1) { v5 = sizeof(BattleMessageInfo) + (v1[v2[0] + 2] | (v1[v2[0] + 3] << 8)); v2[0] += v5; } @@ -643,11 +643,11 @@ void sub_0207AD40(SysTask *param0, void *param1) static void sub_0207ADB4(int param0, int param1, void *param2, void *param3) { - BattleSystem *v0 = (BattleSystem *)param3; + BattleSystem *battleSys = (BattleSystem *)param3; - ov16_0223F338(v0, 255); - ov16_0223F344(v0, 255); - ov16_0223F350(v0, 1); + ov16_0223F338(battleSys, 255); + ov16_0223F344(battleSys, 255); + BattleSystem_SetCommandIsEndWait(battleSys, 1); } static void PalPad_CreateNetworkObject(TrainerInfo *trainerInfo, PalPad *source, PalPad *destination) diff --git a/src/unk_020933F8.c b/src/unk_020933F8.c index 927fb7ba99..e6ccf5f1cb 100644 --- a/src/unk_020933F8.c +++ b/src/unk_020933F8.c @@ -1660,7 +1660,7 @@ u16 sub_02094EA0(u32 param0, u32 *param1) u32 v0 = ARNG_Next(param0); *param1 = v0; - return v0 / 65536L; + return v0 / LCRNG_DIVISOR; } static void sub_02094EB4(UnkStruct_02095C48 *param0, int param1, UnkStruct_ov6_02248DD8 *param2)