Document BattleSystem struct and battle_system.c (#930)
Some checks failed
build / build (push) Has been cancelled

This commit is contained in:
Viperio 2026-02-16 20:13:21 +01:00 committed by GitHub
parent 55e513710c
commit 75545a47f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
63 changed files with 4048 additions and 4045 deletions

View File

@ -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);

View File

@ -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.

View File

@ -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

View File

@ -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;

View File

@ -6,7 +6,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
PokemonSprite *unk_04;
u8 unk_08;
u8 unk_09;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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];

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -10,7 +10,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
BattlerData *unk_04;
PokemonSprite *unk_08;
BattleAnimSystem *unk_0C;

View File

@ -6,7 +6,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
PokemonSprite *unk_04;
u8 unk_08;
u8 unk_09;

View File

@ -9,7 +9,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
BattlerData *unk_04;
PokemonSprite *unk_08;
MoveAnimation unk_0C;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -6,7 +6,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
PokemonSprite *unk_04;
u8 unk_08;
u8 unk_09;

View File

@ -8,7 +8,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
BattlerData *unk_04;
PokemonSprite *unk_08;
u8 unk_0C;

View File

@ -8,7 +8,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
BattlerData *unk_04;
PokemonSprite *unk_08;
u8 unk_0C;

View File

@ -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;

View File

@ -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;

View File

@ -10,7 +10,7 @@
#include "pokemon_sprite.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
BattlerData *unk_04;
PokemonSprite *unk_08;
BallRotation *unk_0C;

View File

@ -6,7 +6,7 @@
#include "sprite_system.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
ManagedSprite *unk_04;
u8 unk_08;
u8 unk_09;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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 <nnsys.h>
@ -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

View File

@ -4,7 +4,7 @@
#include "struct_decls/battle_system.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
u8 unk_04;
} UnkStruct_0207ACB4;

View File

@ -4,7 +4,7 @@
#include "struct_decls/battle_system.h"
typedef struct {
BattleSystem *unk_00;
BattleSystem *battleSys;
u8 unk_04;
} UnkStruct_0207AD40;

View File

@ -686,7 +686,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

View File

@ -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);
}
}

View File

@ -5,6 +5,7 @@
#include <string.h>
#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 cant 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++) {

View File

@ -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 = &param0->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 = &param0->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 = &param0->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(&param3->unk_00);
Window_AddToTopLeftCorner(BattleSystem_BGL(param0->battleSys), &param3->unk_00, v1, 16 / 8, 0, 0);
Window_AddToTopLeftCorner(BattleSystem_GetBgConfig(param0->battleSys), &param3->unk_00, v1, 16 / 8, 0, 0);
Text_AddPrinterWithParamsColorAndSpacing(&param3->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 = &param0->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 = &param0->cursor;
v2 = &Unk_ov16_02270670[param0->unk_66B];
v6 = &param0->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 = &param0->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);

File diff suppressed because it is too large Load Diff

View File

@ -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 *)&param1->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 *)&param1->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 *)&param1->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 *)&param1->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);

View File

@ -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];
}

File diff suppressed because it is too large Load Diff

2324
src/battle/battle_system.c Normal file

File diff suppressed because it is too large Load Diff

View File

@ -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, BattleStrings_Text_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:

View File

@ -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]);
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(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;
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(battleSys->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->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;
}

File diff suppressed because it is too large Load Diff

View File

@ -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;
}

View File

@ -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);

View File

@ -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;

View File

@ -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"

View File

@ -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);

View File

@ -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)

View File

@ -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);
}

View File

@ -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);

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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);

View File

@ -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));

View File

@ -523,7 +523,7 @@ pokeplatinum_c = files(
'battle_sub_menus/battle_sub_menu_cursor.c',
'battle/trainer_ai/trainer_ai.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',

View File

@ -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)

View File

@ -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)

View File

@ -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)