reorganised the structs

This commit is contained in:
Land0fChocolate
2026-06-14 21:21:47 +01:00
parent c2d6c24080
commit 06da0538fa
41 changed files with 390 additions and 474 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,7 +1,6 @@
#include "battle/battle_subscreen.h"
#include <nitro.h>
#include <string.h>
#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);

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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