From 06da0538fa0cd566f482444adefbde2c40134e93 Mon Sep 17 00:00:00 2001 From: Land0fChocolate Date: Sun, 14 Jun 2026 21:21:47 +0100 Subject: [PATCH] reorganised the structs --- include/battle/action_select_data.h | 14 - include/battle/ball_throw_flash_data.h | 9 - include/battle/battle_anim_battler_context.h | 10 +- include/battle/battle_background_reference.h | 13 - include/battle/battle_context.h | 10 +- include/battle/battle_controller.h | 3 +- include/battle/battle_display.h | 17 +- include/battle/battle_item_use.h | 10 - include/battle/battle_lib.h | 1 - include/battle/battle_main.h | 15 ++ include/battle/battle_message.h | 13 - include/battle/battle_subscreen.h | 253 ++++++++++++++++++- include/battle/battle_system.h | 1 - include/battle/cursor_renderer.h | 6 +- include/battle/give_up_move_data.h | 9 - include/battle/indicator.h | 17 +- include/battle/message_defs.h | 10 +- include/battle/move_display_info.h | 12 - include/battle/move_select_data.h | 11 - include/battle/party_gauge.h | 42 ++- include/battle/saved_cursor_position.h | 15 -- include/battle/setup_task_data.h | 19 -- include/battle/targeting.h | 23 -- include/battle/trainer_intro_data.h | 20 -- include/overlay010/ov10_0221F800.h | 2 +- include/struct_defs/battle_system.h | 2 +- include/struct_defs/battler_data.h | 16 +- src/battle/battle_controller.c | 2 - src/battle/battle_controller_player.c | 3 +- src/battle/battle_display.c | 10 - src/battle/battle_io_command.c | 2 +- src/battle/battle_lib.c | 1 - src/battle/battle_main.c | 2 +- src/battle/battle_script.c | 1 - src/battle/battle_subscreen.c | 205 +-------------- src/battle/battle_system.c | 1 - src/battle/cursor_renderer.c | 6 - src/battle/indicator.c | 17 -- src/battle/party_gauge.c | 38 --- src/battle_anim/battle_anim_system.c | 1 - src/overlay010/ov10_0221F800.c | 2 +- 41 files changed, 390 insertions(+), 474 deletions(-) delete mode 100644 include/battle/action_select_data.h delete mode 100644 include/battle/ball_throw_flash_data.h delete mode 100644 include/battle/battle_background_reference.h delete mode 100644 include/battle/battle_item_use.h delete mode 100644 include/battle/battle_message.h delete mode 100644 include/battle/give_up_move_data.h delete mode 100644 include/battle/move_display_info.h delete mode 100644 include/battle/move_select_data.h delete mode 100644 include/battle/saved_cursor_position.h delete mode 100644 include/battle/setup_task_data.h delete mode 100644 include/battle/targeting.h delete mode 100644 include/battle/trainer_intro_data.h diff --git a/include/battle/action_select_data.h b/include/battle/action_select_data.h deleted file mode 100644 index e9942d9abd..0000000000 --- a/include/battle/action_select_data.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_ACTION_SELECT_DATA_H -#define POKEPLATINUM_BATTLE_ACTION_SELECT_DATA_H - -typedef struct { - u8 battlerType; - u8 battler; - u8 partySlot; - u8 ballStatusBattler; - s16 curHp; - u16 maxHp; - u8 isWaitingForPartner; -} ActionSelectData; - -#endif // POKEPLATINUM_BATTLE_ACTION_SELECT_DATA_H diff --git a/include/battle/ball_throw_flash_data.h b/include/battle/ball_throw_flash_data.h deleted file mode 100644 index 745fd19f22..0000000000 --- a/include/battle/ball_throw_flash_data.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_BALL_THROW_FLASH_DATA_H -#define POKEPLATINUM_BATTLE_BALL_THROW_FLASH_DATA_H - -typedef struct BallThrowFlashData { - int state; - int unread_04; -} BallThrowFlashData; - -#endif // POKEPLATINUM_BATTLE_BALL_THROW_FLASH_DATA_H diff --git a/include/battle/battle_anim_battler_context.h b/include/battle/battle_anim_battler_context.h index fcbd08f85f..6ae30fd84d 100644 --- a/include/battle/battle_anim_battler_context.h +++ b/include/battle/battle_anim_battler_context.h @@ -5,7 +5,6 @@ #include "struct_defs/chatot_cry.h" -#include "battle/battle_background_reference.h" #include "battle/pokemon_sprite_data.h" #include "bg_window.h" @@ -13,6 +12,15 @@ #include "pokemon_sprite.h" #include "sprite_system.h" +typedef struct BattleBackgroundReference { + int narcID; + int tilesNarcMemberIdx; + int paletteNarcMemberIdx; + int tilemapNarcMemberIdx; + int paletteDestStart; + int paletteSrcSize; +} BattleBackgroundReference; + typedef struct BattleAnimBattlerContext { SpriteSystem *spriteSystem; BgConfig *bgConfig; diff --git a/include/battle/battle_background_reference.h b/include/battle/battle_background_reference.h deleted file mode 100644 index a3f01ae779..0000000000 --- a/include/battle/battle_background_reference.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_BATTLE_BACKGROUND_REFERENCE_H -#define POKEPLATINUM_BATTLE_BATTLE_BACKGROUND_REFERENCE_H - -typedef struct BattleBackgroundReference { - int narcID; - int tilesNarcMemberIdx; - int paletteNarcMemberIdx; - int tilemapNarcMemberIdx; - int paletteDestStart; - int paletteSrcSize; -} BattleBackgroundReference; - -#endif // POKEPLATINUM_BATTLE_BATTLE_BACKGROUND_REFERENCE_H diff --git a/include/battle/battle_context.h b/include/battle/battle_context.h index f623830a7b..c7f44aa1b2 100644 --- a/include/battle/battle_context.h +++ b/include/battle/battle_context.h @@ -8,7 +8,6 @@ #include "struct_decls/font_oam.h" #include "battle/ai_context.h" -#include "battle/battle_message.h" #include "battle/battle_mon.h" #include "battle_anim/struct_ball_rotation_decl.h" @@ -17,6 +16,15 @@ typedef struct BattleContext BattleContext; +typedef struct BattleMessage { + u8 commandCode; + u8 tags; + u16 id; + int params[6]; + int digits; + int battler; +} BattleMessage; + typedef struct FieldConditions { u32 weatherTurns; u8 futureSightTurns[MAX_BATTLERS]; diff --git a/include/battle/battle_controller.h b/include/battle/battle_controller.h index 10315ce7c9..2d2ecc5f0d 100644 --- a/include/battle/battle_controller.h +++ b/include/battle/battle_controller.h @@ -5,8 +5,7 @@ #include "struct_defs/move_animation.h" #include "battle/battle_context.h" -#include "battle/battle_item_use.h" -#include "battle/battle_message.h" +#include "battle/message_defs.h" void BattleController_TryRecvLocalMessage(BattleSystem *battleSys, int recipient); void BattleController_EmitSetupBattleUI(BattleSystem *battleSys, int battler); diff --git a/include/battle/battle_display.h b/include/battle/battle_display.h index f4519ba60f..c42e679e09 100644 --- a/include/battle/battle_display.h +++ b/include/battle/battle_display.h @@ -5,13 +5,26 @@ #include "struct_defs/battler_data.h" #include "struct_defs/move_animation.h" -#include "battle/battle_message.h" #include "battle/healthbox.h" #include "battle/message_defs.h" -#include "battle/saved_cursor_position.h" #include "pokemon_sprite.h" +typedef struct UISetupTaskData { + BattleSystem *battleSys; + UnkStruct_ov12_02237F98 *animContext; + UnkStruct_ov12_02238004 *animObjects[3]; + u8 step; + u8 frameCount; + u8 fadeStep; + u8 unused; +} UISetupTaskData; + +typedef struct BallThrowFlashData { + int state; + int unread_04; +} BallThrowFlashData; + void BattleDisplay_InitTaskSetupUI(BattleSystem *battleSys, BattlerData *battlerData); void BattleDisplay_InitTaskSetEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonEncounterMessage *message); void BattleDisplay_InitTaskShowEncounter(BattleSystem *battleSys, BattlerData *battlerData, MonShowMessage *message); diff --git a/include/battle/battle_item_use.h b/include/battle/battle_item_use.h deleted file mode 100644 index 25150ef84f..0000000000 --- a/include/battle/battle_item_use.h +++ /dev/null @@ -1,10 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_BATTLE_ITEM_USE_H -#define POKEPLATINUM_BATTLE_BATTLE_ITEM_USE_H - -typedef struct { - u16 item; - u8 category; - u8 target; -} BattleItemUse; - -#endif // POKEPLATINUM_BATTLE_BATTLE_ITEM_USE_H diff --git a/include/battle/battle_lib.h b/include/battle/battle_lib.h index 37a4eb225d..4003b1a74d 100644 --- a/include/battle/battle_lib.h +++ b/include/battle/battle_lib.h @@ -7,7 +7,6 @@ #include "struct_decls/battle_system.h" #include "battle/battle_context.h" -#include "battle/battle_message.h" #include "battle/battle_mon.h" #include "battle/btlcmd.h" diff --git a/include/battle/battle_main.h b/include/battle/battle_main.h index 1932552b5d..533b77a72f 100644 --- a/include/battle/battle_main.h +++ b/include/battle/battle_main.h @@ -3,7 +3,22 @@ #include "struct_decls/battle_system.h" +#include "field_battle_data_transfer.h" #include "overlay_manager.h" +#include "party.h" +#include "string_gf.h" + +typedef struct TrainerIntroData { + FieldBattleDTO *dto; + Party *party[MAX_BATTLERS]; + String *trainerNames[MAX_BATTLERS]; + enum HeapID heapID; + u8 mode; + u8 playerSide; + u8 battleResult; + u8 isDone; + u8 recordingType; +} TrainerIntroData; BOOL Battle_Main(ApplicationManager *appMan, int *state); void BattleSystem_EnterSubMenu(BattleSystem *battleSys); diff --git a/include/battle/battle_message.h b/include/battle/battle_message.h deleted file mode 100644 index 6c2d5279bf..0000000000 --- a/include/battle/battle_message.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_BATTLE_MESSAGE_H -#define POKEPLATINUM_BATTLE_BATTLE_MESSAGE_H - -typedef struct BattleMessage { - u8 commandCode; - u8 tags; - u16 id; - int params[6]; - int digits; - int battler; -} BattleMessage; - -#endif // POKEPLATINUM_BATTLE_BATTLE_MESSAGE_H diff --git a/include/battle/battle_subscreen.h b/include/battle/battle_subscreen.h index aa0dde0de2..6c03acfa9f 100644 --- a/include/battle/battle_subscreen.h +++ b/include/battle/battle_subscreen.h @@ -1,14 +1,261 @@ #ifndef POKEPLATINUM_BATTLE_BATTLE_SUBSCREEN_H #define POKEPLATINUM_BATTLE_BATTLE_SUBSCREEN_H -#include "struct_decls/battle_system.h" +#include "constants/battle.h" +#include "constants/moves.h" -#include "battle/move_display_info.h" +#include "struct_decls/battle_system.h" +#include "struct_decls/font_oam.h" +#include "struct_decls/struct_02012744_decl.h" +#include "struct_decls/struct_02012B20_decl.h" + +#include "battle/cursor_renderer.h" +#include "battle/indicator.h" #include "bg_window.h" +#include "char_transfer.h" #include "narc.h" +#include "sys_task.h" +#include "touch_screen.h" -typedef struct BattleSubscreen BattleSubscreen; +typedef struct ScreenPos { + s16 x; + s16 y; +} ScreenPos; + +typedef struct SubscreenTilemapRect { + u8 top; + u8 bottom; + u8 left; + u8 right; +} SubscreenTilemapRect; + +typedef struct { + u16 unk_00; + u16 unk_02; + u16 unk_04; + u16 unk_06; + u16 unk_08; +} UnusedStruct_ov16_0226A3F4; + +typedef struct { + SysTask *unk_00; + u8 *unk_04; + void *unk_08; + u8 *unk_0C; + UnusedStruct_ov16_0226A3F4 unk_10; + u16 unk_1C; +} UnusedStruct_ov16_02268A14_sub3_sub1; + +typedef struct MenuButtonPressAnimState { + s16 phase; + s16 waitTimer; + union { + struct { + const s16 *keyframes; + const SubscreenTilemapRect *subscreenTilemapRect; + int selectedButton; + u8 srcBufIndex; + u8 fontOAMIdx; + u8 spriteIndex; + u8 unread; + u8 freeSprites; + ScreenPos screenPos; + } ButtonPressAnimationState; + struct { + UnusedStruct_ov16_02268A14_sub3_sub1 *unused_00[4]; + UnusedStruct_ov16_02268A14_sub3_sub1 *unused_10; + NNSG2dCharacterData *unused_14; + void *unused_18; + int selectedTarget; + } TargetSelectAnimationState; + }; +} MenuButtonPressAnimState; + +typedef struct { + int unk_00; + s16 unk_04; + s16 unk_06; + u8 unk_08; + u8 unk_09; +} UnusedStruct_ov16_02268A14_sub4; + +typedef struct { + const SubscreenTilemapRect *unk_00; + u8 unk_04; + s8 unk_05; +} UnusedStruct_ov16_02268A14_sub1; + +typedef struct FontOAMEntry { + FontOAM *fontOAM; + CharTransferAllocation allocation; + u16 textWidth; +} FontOAMEntry; + +typedef struct PartyBallAnimState { + s16 xOffset; + u8 expPercent; + u8 phase; + u8 unused_04; + u8 delay; + u8 frameCount; + u8 duration; + u8 bounceCount; +} PartyBallAnimState; + +typedef struct MenuCursor { + u8 isActive; + s8 y; + s8 x; + u8 unused_03; +} MenuCursor; + +typedef struct ActionSelectData { + u8 battlerType; + u8 battler; + u8 partySlot; + u8 ballStatusBattler; + s16 curHp; + u16 maxHp; + u8 isWaitingForPartner; +} ActionSelectData; + +typedef struct MoveSelectData { + u16 moveIDs[4]; + u8 currPP[4]; + u8 maxPP[4]; + u8 battlerType; +} MoveSelectData; + +typedef struct TargetMonData { + u8 partySlot; + u8 gender : 2; + u8 isPresent : 1; + u8 : 5; + u8 stockStatus; + u8 padding_03; + s16 curHP; + u16 maxHP; +} TargetMonData; + +typedef struct TargetSelectData { + TargetMonData targetMonData[MAX_BATTLERS]; + u8 battlerType; + u8 targetingLayout; +} TargetSelectData; + +typedef struct GiveUpMoveData { + u16 move; + u16 unused_02; +} GiveUpMoveData; + +typedef union ActiveMenuData { + ActionSelectData actionData; + MoveSelectData moveData; + TargetSelectData targetSelectData; + GiveUpMoveData giveUpMoveData; +} ActiveMenuData; + +typedef struct TextWindowLayout { + Window window; + u16 width; + u16 height; +} TextWindowLayout; + +typedef struct MoveDisplayInfo { + u16 move[LEARNED_MOVES_MAX]; + u16 curPP[LEARNED_MOVES_MAX]; + u16 maxPP[LEARNED_MOVES_MAX]; +} MoveDisplayInfo; + +typedef struct MoveDisplayData { + MoveDisplayInfo moveDisplayInfo; + u16 *moveIcons[4]; + TextWindowLayout moveNameWindows[4]; + TextWindowLayout ppCountWindows[4]; + TextWindowLayout ppLabelWindows[4]; +} MoveDisplayData; + +typedef struct BattleSubscreen { + BattleSystem *battleSys; + u8 *suppressActivationSfxPtr; + SysTask *animatePartyBallsTask; + SysTask *menuTransitionTask; + SysTask *unused_10; + UnusedStruct_ov16_02268A14_sub1 unused_14; + ActiveMenuData activeMenuData; + u16 *tilemapBuffers[7]; + u16 *subscreenPaletteBuf; + u16 *normalMovePalBuf; + u16 *speedUpMovePalBuf; + SysTask *speedUpPaletteTask; + MoveDisplayData moveDisplayData[4]; + UnkStruct_02012744 *fontOAMManager; + FontOAMEntry fontOAMEntry[13]; + UnkStruct_02012B20 *unused_5B8; + ManagedSprite *playerPartyBallSprites[6]; + ManagedSprite *opponentPartyBallSprites[6]; + ManagedSprite *moveSelectSprites[4]; + ManagedSprite *categoryIconSprites[4]; + ManagedSprite *targetSelectPokeIconSprites[4]; + SysTask *pokeIconAnimTasks[4]; + PartyBallAnimState partyBallAnimState[6]; + SysTask *unused_664; + u8 unused_668; + u8 unused_669; + u8 battlerType; + s8 activeMenuConfigIndex; + u8 targetingLayout; + u8 trainerGender; + u8 isPanelSliding; + u8 hasCancelButton; + u8 unused_670; + s16 unused_672; + u8 pulseCursorDirection; + s16 pulseCursorBlendValue; + SysTask *pulseCursorTask; + MenuButtonPressAnimState menuButtonPressAnimState; + UnusedStruct_ov16_02268A14_sub4 unused_6A0; + s32 panelScrollPos; + s32 slideSpeed; + s32 targetOffset; + CursorRenderer *cursorRenderer; + MenuCursor cursor; + u8 suppressActivationSfx; + u8 isWaitingForPartner; + struct { + Indicator *indicator; + u8 step; + u8 phase; + u8 delay; + } catchTutorialState; +} BattleSubscreen; + +typedef struct SlideInPanelState { + BattleSubscreen *btlSubscreen; + SysTask *task; + s16 xShift; + s16 yShift; + s16 bgXOffset; + s16 bgYOffset; + s16 prevBgYOffset; + u8 direction; + u8 phase; +} SlideInPanelState; + +typedef struct BattleMenuConfig { + u16 unused_00; + u16 unused_02; + u16 bgTilemapBufIndices[4]; + u16 bgPriorities[4]; + const TouchScreenRect *touchScreenRects; + const int *buttonResults; + const u8 *buttonSlots; + int (*handleCursorInput)(BattleSubscreen *btlSubscreen, int param1); + void (*saveCursorPos)(BattleSubscreen *btlSubscreen, int param1); + void (*drawMenu)(BattleSubscreen *btlSubscreen, int param1, int param2); + int (*processInput)(BattleSubscreen *btlSubscreen, int param1, int param2); +} BattleMenuConfig; void BattleSubscreenBg_Init(BgConfig *bgConfig); void BattleSubscreenBg_Free(BgConfig *bgConfig); diff --git a/include/battle/battle_system.h b/include/battle/battle_system.h index b522bff4e9..998fce1d0f 100644 --- a/include/battle/battle_system.h +++ b/include/battle/battle_system.h @@ -10,7 +10,6 @@ #include "struct_defs/trainer.h" #include "battle/battle_context.h" -#include "battle/battle_message.h" #include "battle/battle_subscreen.h" #include "battle/party_gauge.h" #include "battle/pokemon_sprite_data.h" diff --git a/include/battle/cursor_renderer.h b/include/battle/cursor_renderer.h index 3cc4fbbb5d..51b70a09a8 100644 --- a/include/battle/cursor_renderer.h +++ b/include/battle/cursor_renderer.h @@ -3,8 +3,12 @@ #include "palette.h" #include "sprite_system.h" +#include "sys_task.h" -typedef struct CursorRenderer CursorRenderer; +typedef struct CursorRenderer { + ManagedSprite *sprites[5]; + SysTask *animTask; +} CursorRenderer; void CursorRenderer_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan, PaletteData *plttData, enum HeapID heapID, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); void CursorRenderer_UnloadResources(SpriteManager *spriteMan, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); diff --git a/include/battle/give_up_move_data.h b/include/battle/give_up_move_data.h deleted file mode 100644 index 983357c603..0000000000 --- a/include/battle/give_up_move_data.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_GIVE_UP_MOVE_DATA_H -#define POKEPLATINUM_BATTLE_GIVE_UP_MOVE_DATA_H - -typedef struct { - u16 move; - u16 unused_02; -} GiveUpMoveData; - -#endif // POKEPLATINUM_BATTLE_GIVE_UP_MOVE_DATA_H diff --git a/include/battle/indicator.h b/include/battle/indicator.h index f22c7ac889..611778c9a5 100644 --- a/include/battle/indicator.h +++ b/include/battle/indicator.h @@ -3,8 +3,23 @@ #include "palette.h" #include "sprite_system.h" +#include "sys_task.h" -typedef struct Indicator Indicator; +// This is the bouncing arrow sprite used in the catch tutorial +typedef struct Indicator { + ManagedSprite *sprite; + SysTask *animTask; + int x; + int y; + int bounceAngle; + fx32 subscreenOffset; + s16 exitTimer; + u8 exitPending; + u8 hasDropped; + u8 isExiting; + u8 exitStep; + u8 exitFrameCount; +} Indicator; void Indicator_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan, u32 heapID, PaletteData *plttData, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); void Indicator_UnloadResources(SpriteManager *spriteMan, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); diff --git a/include/battle/message_defs.h b/include/battle/message_defs.h index 7e59ce7977..b653325a1a 100644 --- a/include/battle/message_defs.h +++ b/include/battle/message_defs.h @@ -6,12 +6,18 @@ #include "constants/pokemon.h" #include "constants/sound.h" -#include "battle/battle_message.h" +#include "battle/battle_context.h" +#include "battle/battle_subscreen.h" #include "battle/party_gauge.h" -#include "battle/targeting.h" #include "pokemon.h" +typedef struct BattleItemUse { + u16 item; + u8 category; + u8 target; +} BattleItemUse; + typedef struct PartyGaugeData { u8 command; u8 padding_01; diff --git a/include/battle/move_display_info.h b/include/battle/move_display_info.h deleted file mode 100644 index 5ca252e285..0000000000 --- a/include/battle/move_display_info.h +++ /dev/null @@ -1,12 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_MOVE_DISPLAY_INFO -#define POKEPLATINUM_BATTLE_MOVE_DISPLAY_INFO - -#include "constants/moves.h" - -typedef struct MoveDisplayInfo { - u16 move[LEARNED_MOVES_MAX]; - u16 curPP[LEARNED_MOVES_MAX]; - u16 maxPP[LEARNED_MOVES_MAX]; -} MoveDisplayInfo; - -#endif // POKEPLATINUM_BATTLE_MOVE_DISPLAY_INFO diff --git a/include/battle/move_select_data.h b/include/battle/move_select_data.h deleted file mode 100644 index 3a1e7d6f01..0000000000 --- a/include/battle/move_select_data.h +++ /dev/null @@ -1,11 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_MOVE_SELECT_DATA_H -#define POKEPLATINUM_BATTLE_MOVE_SELECT_DATA_H - -typedef struct MoveSelectData { - u16 moveIDs[4]; - u8 currPP[4]; - u8 maxPP[4]; - u8 battlerType; -} MoveSelectData; - -#endif // POKEPLATINUM_BATTLE_MOVE_SELECT_DATA_H diff --git a/include/battle/party_gauge.h b/include/battle/party_gauge.h index 2190cfb660..3873bba216 100644 --- a/include/battle/party_gauge.h +++ b/include/battle/party_gauge.h @@ -1,10 +1,11 @@ #ifndef POKEPLATINUM_BATTLE_PARTY_GAUGE_H #define POKEPLATINUM_BATTLE_PARTY_GAUGE_H +#include "constants/pokemon.h" + #include "palette.h" #include "sprite_system.h" - -typedef struct PartyGauge PartyGauge; +#include "sys_task.h" enum PartyStockStatus { STOCK_STATUS_NO_MON = 0, @@ -40,6 +41,43 @@ enum HideArrowType { HIDE_ARROW_FADE_IN_PLACE, }; +typedef struct { + ManagedSprite *managedSprite; + SysTask *task; + enum HideArrowType hideType; + enum PartyGaugeSide side; + enum PartyGaugePosition position; + s32 x; + s16 alpha; + u8 state; + u8 delay; +} PartyGaugeArrow; + +typedef struct { + ManagedSprite *managedSprite; + SysTask *task; + enum PartyGaugeSide side; + enum PartyGaugePosition position; + enum HidePartyGaugeType hideType; + s8 *pokeballCount; + s16 *arrowAlpha; + s32 xStart; + s32 xEnd; + s32 xOverflow; + s16 delay; + u16 sdatID; + u8 state; + u8 ballSlot; + u8 flipAnimation; + u8 startDelay; +} PartyGaugePokeballs; + +typedef struct PartyGauge { + PartyGaugeArrow arrow; + PartyGaugePokeballs pokeballs[MAX_PARTY_SIZE]; + s8 pokeballCount; +} PartyGauge; + /** * @brief Load the graphics resources needed for the Party Gauge into memory. * diff --git a/include/battle/saved_cursor_position.h b/include/battle/saved_cursor_position.h deleted file mode 100644 index ffc72fae92..0000000000 --- a/include/battle/saved_cursor_position.h +++ /dev/null @@ -1,15 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_SAVED_CURSOR_POSITION_H -#define POKEPLATINUM_BATTLE_SAVED_CURSOR_POSITION_H - -typedef struct SavedCursorPosition { - s8 actionMenuX; - s8 actionMenuY; - s8 moveMenuX; - s8 moveMenuY; - s8 targetSelectX; - s8 targetSelectY; - s8 targetingLayout; - u8 padding; -} SavedCursorPosition; - -#endif // POKEPLATINUM_BATTLE_SAVED_CURSOR_POSITION_H diff --git a/include/battle/setup_task_data.h b/include/battle/setup_task_data.h deleted file mode 100644 index 5cc44a1c63..0000000000 --- a/include/battle/setup_task_data.h +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_UI_SETUP_TASK_DATA_H -#define POKEPLATINUM_BATTLE_UI_SETUP_TASK_DATA_H - -#include "struct_decls/battle_system.h" - -#include "battle_anim/struct_ov12_02237F98_decl.h" -#include "battle_anim/struct_ov12_02238004_decl.h" - -typedef struct UISetupTaskData { - BattleSystem *battleSys; - UnkStruct_ov12_02237F98 *animContext; - UnkStruct_ov12_02238004 *animObjects[3]; - u8 step; - u8 frameCount; - u8 fadeStep; - u8 unused; -} UISetupTaskData; - -#endif // POKEPLATINUM_BATTLE_UI_SETUP_TASK_DATA_H diff --git a/include/battle/targeting.h b/include/battle/targeting.h deleted file mode 100644 index ef7102eda4..0000000000 --- a/include/battle/targeting.h +++ /dev/null @@ -1,23 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_TARGETING_H -#define POKEPLATINUM_BATTLE_TARGETING_H - -#include "constants/battle.h" - -typedef struct TargetMonData { - u8 partySlot; - u8 gender : 2; - u8 isPresent : 1; - u8 : 5; - u8 stockStatus; - u8 padding_03; - s16 curHP; - u16 maxHP; -} TargetMonData; - -typedef struct TargetSelectData { - TargetMonData targetMonData[MAX_BATTLERS]; - u8 battlerType; - u8 targetingLayout; -} TargetSelectData; - -#endif // POKEPLATINUM_BATTLE_TARGETING_H diff --git a/include/battle/trainer_intro_data.h b/include/battle/trainer_intro_data.h deleted file mode 100644 index 491bc6b87a..0000000000 --- a/include/battle/trainer_intro_data.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef POKEPLATINUM_BATTLE_TRAINER_INTRO_DATA_H -#define POKEPLATINUM_BATTLE_TRAINER_INTRO_DATA_H - -#include "field_battle_data_transfer.h" -#include "party.h" -#include "string_gf.h" - -typedef struct TrainerIntroData { - FieldBattleDTO *dto; - Party *party[MAX_BATTLERS]; - String *trainerNames[MAX_BATTLERS]; - enum HeapID heapID; - u8 mode; - u8 playerSide; - u8 battleResult; - u8 isDone; - u8 recordingType; -} TrainerIntroData; - -#endif // POKEPLATINUM_BATTLE_TRAINER_INTRO_DATA_H diff --git a/include/overlay010/ov10_0221F800.h b/include/overlay010/ov10_0221F800.h index 774e3a54a2..e3a5ec231c 100644 --- a/include/overlay010/ov10_0221F800.h +++ b/include/overlay010/ov10_0221F800.h @@ -1,7 +1,7 @@ #ifndef POKEPLATINUM_OV10_0221F800_H #define POKEPLATINUM_OV10_0221F800_H -#include "battle/trainer_intro_data.h" +#include "battle/battle_main.h" void ov10_0221F800(TrainerIntroData *param0); diff --git a/include/struct_defs/battle_system.h b/include/struct_defs/battle_system.h index 700433e657..062102e6c4 100644 --- a/include/struct_defs/battle_system.h +++ b/include/struct_defs/battle_system.h @@ -10,11 +10,11 @@ #include "struct_defs/trainer.h" #include "battle/battle_context.h" +#include "battle/battle_main.h" #include "battle/battle_subscreen.h" #include "battle/party_gauge.h" #include "battle/pokemon_sprite_data.h" #include "battle/terrain.h" -#include "battle/trainer_intro_data.h" #include "battle_anim/battle_anim_system.h" #include "bag.h" diff --git a/include/struct_defs/battler_data.h b/include/struct_defs/battler_data.h index 710d557722..e1f3a8bb41 100644 --- a/include/struct_defs/battler_data.h +++ b/include/struct_defs/battler_data.h @@ -1,10 +1,13 @@ #ifndef POKEPLATINUM_STRUCT_BATTLER_DATA_H #define POKEPLATINUM_STRUCT_BATTLER_DATA_H +#include "struct_defs/battler_data.h" + #include "battle/healthbox.h" -#include "battle/saved_cursor_position.h" #include "battle_anim/struct_ball_rotation_decl.h" #include "battle_anim/struct_ov12_02223764.h" +#include "battle_anim/struct_ov12_02237F98_decl.h" +#include "battle_anim/struct_ov12_02238004_decl.h" #include "bg_window.h" #include "narc.h" @@ -12,6 +15,17 @@ #include "sprite.h" #include "sys_task_manager.h" +typedef struct SavedCursorPosition { + s8 actionMenuX; + s8 actionMenuY; + s8 moveMenuX; + s8 moveMenuY; + s8 targetSelectX; + s8 targetSelectY; + s8 targetingLayout; + u8 padding; +} SavedCursorPosition; + typedef struct BattlerDataSysTaskFuncs { SysTaskFunc setCommandSelection; SysTaskFunc showMoveSelectMenu; diff --git a/src/battle/battle_controller.c b/src/battle/battle_controller.c index 8b5c660f71..a889181c49 100644 --- a/src/battle/battle_controller.c +++ b/src/battle/battle_controller.c @@ -15,9 +15,7 @@ #include "battle/battle_context.h" #include "battle/battle_controller.h" #include "battle/battle_controller_player.h" -#include "battle/battle_item_use.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" diff --git a/src/battle/battle_controller_player.c b/src/battle/battle_controller_player.c index 17c265b116..173bc5bb5a 100644 --- a/src/battle/battle_controller_player.c +++ b/src/battle/battle_controller_player.c @@ -24,13 +24,12 @@ #include "battle/battle_context.h" #include "battle/battle_controller.h" #include "battle/battle_display.h" -#include "battle/battle_item_use.h" #include "battle/battle_lib.h" #include "battle/battle_main.h" -#include "battle/battle_message.h" #include "battle/battle_script.h" #include "battle/battle_system.h" #include "battle/common.h" +#include "battle/message_defs.h" #include "bag.h" #include "communication_system.h" diff --git a/src/battle/battle_display.c b/src/battle/battle_display.c index ac7804dbb5..f33cf15082 100644 --- a/src/battle/battle_display.c +++ b/src/battle/battle_display.c @@ -21,28 +21,18 @@ #include "struct_defs/sprite_animation_frame.h" #include "struct_defs/trainer.h" -#include "battle/action_select_data.h" -#include "battle/ball_throw_flash_data.h" #include "battle/battle_anim_battler_context.h" #include "battle/battle_context.h" #include "battle/battle_controller.h" -#include "battle/battle_item_use.h" #include "battle/battle_lib.h" #include "battle/battle_main.h" -#include "battle/battle_message.h" #include "battle/battle_subscreen.h" #include "battle/battle_system.h" #include "battle/common.h" -#include "battle/give_up_move_data.h" #include "battle/healthbox.h" #include "battle/idle_bounce_anim.h" #include "battle/message_defs.h" -#include "battle/move_display_info.h" -#include "battle/move_select_data.h" #include "battle/party_gauge.h" -#include "battle/saved_cursor_position.h" -#include "battle/setup_task_data.h" -#include "battle/targeting.h" #include "battle/trainer_ai.h" #include "battle_anim/battle_anim_system.h" #include "battle_anim/const_ov12_0223B0A0.h" diff --git a/src/battle/battle_io_command.c b/src/battle/battle_io_command.c index d6156457f1..28aab4b84b 100644 --- a/src/battle/battle_io_command.c +++ b/src/battle/battle_io_command.c @@ -10,9 +10,9 @@ #include "struct_defs/battler_data.h" #include "struct_defs/move_animation.h" +#include "battle/battle_context.h" #include "battle/battle_controller.h" #include "battle/battle_display.h" -#include "battle/battle_message.h" #include "battle/battle_subscreen.h" #include "battle/battle_system.h" #include "battle/common.h" diff --git a/src/battle/battle_lib.c b/src/battle/battle_lib.c index ba01e62049..285b07fb17 100644 --- a/src/battle/battle_lib.c +++ b/src/battle/battle_lib.c @@ -24,7 +24,6 @@ #include "battle/battle_controller.h" #include "battle/battle_controller_player.h" #include "battle/battle_display.h" -#include "battle/battle_message.h" #include "battle/battle_mon.h" #include "battle/battle_system.h" #include "battle/common.h" diff --git a/src/battle/battle_main.c b/src/battle/battle_main.c index 2beaa66c98..653f20a968 100644 --- a/src/battle/battle_main.c +++ b/src/battle/battle_main.c @@ -23,13 +23,13 @@ #include "battle/battle_display.h" #include "battle/battle_io_command.h" #include "battle/battle_lib.h" +#include "battle/battle_main.h" #include "battle/battle_subscreen.h" #include "battle/battle_system.h" #include "battle/common.h" #include "battle/healthbox.h" #include "battle/stop_recording_task_data.h" #include "battle/terrain.h" -#include "battle/trainer_intro_data.h" #include "battle_anim/battle_anim_system.h" #include "overlay010/ov10_0221F800.h" #include "overlay011/particle_helper.h" diff --git a/src/battle/battle_script.c b/src/battle/battle_script.c index f713c0a8ac..a1be68b58e 100644 --- a/src/battle/battle_script.c +++ b/src/battle/battle_script.c @@ -32,7 +32,6 @@ #include "battle/battle_display.h" #include "battle/battle_lib.h" #include "battle/battle_main.h" -#include "battle/battle_message.h" #include "battle/battle_mon.h" #include "battle/battle_system.h" #include "battle/btlcmd.h" diff --git a/src/battle/battle_subscreen.c b/src/battle/battle_subscreen.c index da439bb33f..3507c273d6 100644 --- a/src/battle/battle_subscreen.c +++ b/src/battle/battle_subscreen.c @@ -1,7 +1,6 @@ #include "battle/battle_subscreen.h" #include -#include #include "constants/moves.h" #include "generated/genders.h" @@ -10,20 +9,13 @@ #include "struct_decls/battle_system.h" #include "struct_decls/font_oam.h" -#include "struct_decls/struct_02012744_decl.h" -#include "struct_decls/struct_02012B20_decl.h" +#include "struct_defs/battler_data.h" #include "struct_defs/struct_020127E8.h" -#include "battle/action_select_data.h" #include "battle/battle_display.h" #include "battle/battle_system.h" #include "battle/cursor_renderer.h" -#include "battle/give_up_move_data.h" #include "battle/indicator.h" -#include "battle/move_display_info.h" -#include "battle/move_select_data.h" -#include "battle/saved_cursor_position.h" -#include "battle/targeting.h" #include "overlay011/move_palettes.h" #include "assert.h" @@ -33,7 +25,6 @@ #include "font.h" #include "graphics.h" #include "heap.h" -#include "inlines.h" #include "math_util.h" #include "message.h" #include "message_util.h" @@ -60,200 +51,6 @@ #include "res/text/bank/battle_strings.h" -typedef struct SlideInPanelState { - BattleSubscreen *btlSubscreen; - SysTask *task; - s16 xShift; - s16 yShift; - s16 bgXOffset; - s16 bgYOffset; - s16 prevBgYOffset; - u8 direction; - u8 phase; -} SlideInPanelState; - -typedef struct ScreenPos { - s16 x; - s16 y; -} ScreenPos; - -typedef struct SubscreenTilemapRect { - u8 top; - u8 bottom; - u8 left; - u8 right; -} SubscreenTilemapRect; - -typedef struct { - u16 unk_00; - u16 unk_02; - u16 unk_04; - u16 unk_06; - u16 unk_08; -} UnusedStruct_ov16_0226A3F4; - -typedef struct { - SysTask *unk_00; - u8 *unk_04; - void *unk_08; - u8 *unk_0C; - UnusedStruct_ov16_0226A3F4 unk_10; - u16 unk_1C; -} UnusedStruct_ov16_02268A14_sub3_sub1; - -typedef struct MenuButtonPressAnimState { - s16 phase; - s16 waitTimer; - union { - struct { - const s16 *keyframes; - const SubscreenTilemapRect *subscreenTilemapRect; - int selectedButton; - u8 srcBufIndex; - u8 fontOAMIdx; - u8 spriteIndex; - u8 unread; - u8 freeSprites; - ScreenPos screenPos; - } ButtonPressAnimationState; - struct { - UnusedStruct_ov16_02268A14_sub3_sub1 *unused_00[4]; - UnusedStruct_ov16_02268A14_sub3_sub1 *unused_10; - NNSG2dCharacterData *unused_14; - void *unused_18; - int selectedTarget; - } TargetSelectAnimationState; - }; -} MenuButtonPressAnimState; - -typedef struct { - int unk_00; - s16 unk_04; - s16 unk_06; - u8 unk_08; - u8 unk_09; -} UnusedStruct_ov16_02268A14_sub4; - -typedef struct { - const SubscreenTilemapRect *unk_00; - u8 unk_04; - s8 unk_05; -} UnusedStruct_ov16_02268A14_sub1; - -typedef struct FontOAMEntry { - FontOAM *fontOAM; - CharTransferAllocation allocation; - u16 textWidth; -} FontOAMEntry; - -typedef struct PartyBallAnimState { - s16 xOffset; - u8 expPercent; - u8 phase; - u8 unused_04; - u8 delay; - u8 frameCount; - u8 duration; - u8 bounceCount; -} PartyBallAnimState; - -typedef struct MenuCursor { - u8 isActive; - s8 y; - s8 x; - u8 unused_03; -} MenuCursor; - -typedef union { - ActionSelectData actionData; - MoveSelectData moveData; - TargetSelectData targetSelectData; - GiveUpMoveData giveUpMoveData; -} ActiveMenuData; - -typedef struct TextWindowLayout { - Window window; - u16 width; - u16 height; -} TextWindowLayout; - -typedef struct { - MoveDisplayInfo moveDisplayInfo; - u16 *moveIcons[4]; - TextWindowLayout moveNameWindows[4]; - TextWindowLayout ppCountWindows[4]; - TextWindowLayout ppLabelWindows[4]; -} MoveDisplayData; - -typedef struct BattleSubscreen { - BattleSystem *battleSys; - u8 *suppressActivationSfxPtr; - SysTask *animatePartyBallsTask; - SysTask *menuTransitionTask; - SysTask *unused_10; - UnusedStruct_ov16_02268A14_sub1 unused_14; - ActiveMenuData activeMenuData; - u16 *tilemapBuffers[7]; - u16 *subscreenPaletteBuf; - u16 *normalMovePalBuf; - u16 *speedUpMovePalBuf; - SysTask *speedUpPaletteTask; - MoveDisplayData moveDisplayData[4]; - UnkStruct_02012744 *fontOAMManager; - FontOAMEntry fontOAMEntry[13]; - UnkStruct_02012B20 *unused_5B8; - ManagedSprite *playerPartyBallSprites[6]; - ManagedSprite *opponentPartyBallSprites[6]; - ManagedSprite *moveSelectSprites[4]; - ManagedSprite *categoryIconSprites[4]; - ManagedSprite *targetSelectPokeIconSprites[4]; - SysTask *pokeIconAnimTasks[4]; - PartyBallAnimState partyBallAnimState[6]; - SysTask *unused_664; - u8 unused_668; - u8 unused_669; - u8 battlerType; - s8 activeMenuConfigIndex; - u8 targetingLayout; - u8 trainerGender; - u8 isPanelSliding; - u8 hasCancelButton; - u8 unused_670; - s16 unused_672; - u8 pulseCursorDirection; - s16 pulseCursorBlendValue; - SysTask *pulseCursorTask; - MenuButtonPressAnimState menuButtonPressAnimState; - UnusedStruct_ov16_02268A14_sub4 unused_6A0; - s32 panelScrollPos; - s32 slideSpeed; - s32 targetOffset; - CursorRenderer *cursorRenderer; - MenuCursor cursor; - u8 suppressActivationSfx; - u8 isWaitingForPartner; - struct { - Indicator *indicator; - u8 step; - u8 phase; - u8 delay; - } catchTutorialState; -} BattleSubscreen; - -typedef struct BattleMenuConfig { - u16 unused_00; - u16 unused_02; - u16 bgTilemapBufIndices[4]; - u16 bgPriorities[4]; - const TouchScreenRect *touchScreenRects; - const int *buttonResults; - const u8 *buttonSlots; - int (*handleCursorInput)(BattleSubscreen *btlSubscreen, int param1); - void (*saveCursorPos)(BattleSubscreen *btlSubscreen, int param1); - void (*drawMenu)(BattleSubscreen *btlSubscreen, int param1, int param2); - int (*processInput)(BattleSubscreen *btlSubscreen, int param1, int param2); -} BattleMenuConfig; - static void *BattleSubscreen_Alloc(void); static void BattleSubscreen_OpenActionMenu(BattleSubscreen *btlSubscreen, int unused1, int unused2); static void BattleSubscreen_DrawActionMenu(BattleSubscreen *btlSubscreen, int unused1, int unused2); diff --git a/src/battle/battle_system.c b/src/battle/battle_system.c index b464bfa039..3750a86c5c 100644 --- a/src/battle/battle_system.c +++ b/src/battle/battle_system.c @@ -24,7 +24,6 @@ #include "battle/battle_context.h" #include "battle/battle_display.h" #include "battle/battle_lib.h" -#include "battle/battle_message.h" #include "battle/battle_subscreen.h" #include "battle/common.h" #include "battle/healthbox.h" diff --git a/src/battle/cursor_renderer.c b/src/battle/cursor_renderer.c index a1a33befe2..ec74c978be 100644 --- a/src/battle/cursor_renderer.c +++ b/src/battle/cursor_renderer.c @@ -7,14 +7,8 @@ #include "narc.h" #include "palette.h" #include "sprite_system.h" -#include "sys_task.h" #include "sys_task_manager.h" -typedef struct CursorRenderer { - ManagedSprite *sprites[5]; - SysTask *animTask; -} CursorRenderer; - static void SysTask_AnimateCursorSprites(SysTask *task, void *cursorRendererPtr); void CursorRenderer_UnloadResources(SpriteManager *spriteMan, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); void CursorRenderer_Delete(CursorRenderer *cursorRenderer); diff --git a/src/battle/indicator.c b/src/battle/indicator.c index 891da6fef9..c75e3f35e1 100644 --- a/src/battle/indicator.c +++ b/src/battle/indicator.c @@ -8,25 +8,8 @@ #include "narc.h" #include "palette.h" #include "sprite_system.h" -#include "sys_task.h" #include "sys_task_manager.h" -// This is the bouncing arrow sprite used in the catch tutorial -typedef struct Indicator { - ManagedSprite *sprite; - SysTask *animTask; - int x; - int y; - int bounceAngle; - fx32 subscreenOffset; - s16 exitTimer; - u8 exitPending; - u8 hasDropped; - u8 isExiting; - u8 exitStep; - u8 exitFrameCount; -} Indicator; - void Indicator_LoadResources(SpriteSystem *spriteSys, SpriteManager *spriteMan, u32 heapID, PaletteData *plttData, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); void Indicator_UnloadResources(SpriteManager *spriteMan, u32 charResID, u32 plttResID, u32 cellResID, u32 animResID); void Indicator_Delete(Indicator *indicator); diff --git a/src/battle/party_gauge.c b/src/battle/party_gauge.c index 9038eb7784..f9dac88f99 100644 --- a/src/battle/party_gauge.c +++ b/src/battle/party_gauge.c @@ -16,46 +16,8 @@ #include "sound_playback.h" #include "sprite.h" #include "sprite_system.h" -#include "sys_task.h" #include "sys_task_manager.h" -typedef struct { - ManagedSprite *managedSprite; - SysTask *task; - enum HideArrowType hideType; - enum PartyGaugeSide side; - enum PartyGaugePosition position; - s32 x; - s16 alpha; - u8 state; - u8 delay; -} PartyGaugeArrow; - -typedef struct { - ManagedSprite *managedSprite; - SysTask *task; - enum PartyGaugeSide side; - enum PartyGaugePosition position; - enum HidePartyGaugeType hideType; - s8 *pokeballCount; - s16 *arrowAlpha; - s32 xStart; - s32 xEnd; - s32 xOverflow; - s16 delay; - u16 sdatID; - u8 state; - u8 ballSlot; - u8 flipAnimation; - u8 startDelay; -} PartyGaugePokeballs; - -typedef struct PartyGauge { - PartyGaugeArrow arrow; - PartyGaugePokeballs pokeballs[MAX_PARTY_SIZE]; - s8 pokeballCount; -} PartyGauge; - enum PartyGaugeAnimIndex { PGANM_POKEBALL_HEALTHY_THEIRS = 0, PGANM_POKEBALL_STATUSED_THEIRS, diff --git a/src/battle_anim/battle_anim_system.c b/src/battle_anim/battle_anim_system.c index 9310e9c098..908afa1556 100644 --- a/src/battle_anim/battle_anim_system.c +++ b/src/battle_anim/battle_anim_system.c @@ -15,7 +15,6 @@ #include "struct_defs/move_animation.h" #include "battle/battle_anim_battler_context.h" -#include "battle/battle_background_reference.h" #include "battle/battle_system.h" #include "battle/pokemon_sprite_data.h" #include "battle_anim/battle_anim_helpers.h" diff --git a/src/overlay010/ov10_0221F800.c b/src/overlay010/ov10_0221F800.c index 09f96f2a6c..f2c52bab80 100644 --- a/src/overlay010/ov10_0221F800.c +++ b/src/overlay010/ov10_0221F800.c @@ -9,7 +9,7 @@ #include "applications/party_menu/main.h" #include "applications/pokemon_summary_screen/main.h" -#include "battle/trainer_intro_data.h" +#include "battle/battle_main.h" #include "bag.h" #include "bg_window.h"