documenting stuff throughout battle_cursor.c

This commit is contained in:
Land0fChocolate
2026-05-20 23:38:40 +01:00
parent 4abac2cf45
commit 018deb3a5d
14 changed files with 1871 additions and 1872 deletions

View File

@@ -9,29 +9,29 @@
#include "bg_window.h"
#include "narc.h"
void ov16_02268744(BgConfig *param0);
void ov16_022687A0(BgConfig *param0);
void *ov16_022687C8(NARC *unused1, NARC *param1, BattleSystem *battleSys, int param3, u8 *param4);
void ov16_02268A14(UnkStruct_ov16_02268A14 *param0);
void ov16_02268A88(UnkStruct_ov16_02268A14 *param0);
void ov16_02268B8C(UnkStruct_ov16_02268A14 *param0);
void ov16_02268C04(NARC *unused, NARC *param1, UnkStruct_ov16_02268A14 *param2, int param3, int param4, void *param5);
void ov16_02268D40(NARC *param0, UnkStruct_ov16_02268A14 *param1);
void ov16_0226914C(UnkStruct_ov16_02268A14 *param0, const u8 *param1);
void ov16_02269168(UnkStruct_ov16_02268A14 *param0, u8 param1[], u8 param2[]);
void ov16_022691BC(UnkStruct_ov16_02268A14 *param0);
void ov16_02269218(UnkStruct_ov16_02268A14 *param0);
int BattleSystem_MenuInput(UnkStruct_ov16_02268A14 *param0);
BOOL ov16_02269348(UnkStruct_ov16_02268A14 *param0);
int ov16_02269368(int param0, int param1);
void ov16_0226940C(UnkStruct_ov16_02268A14 *param0);
void ov16_0226947C(UnkStruct_ov16_02268A14 *param0, int param1, int param2);
void ov16_0226AC98(UnkStruct_ov16_02268A14 *param0, int param1, const MoveDisplayInfo *moveDisplayInfo);
void ov16_Dummy3(UnkStruct_ov16_02268A14 *param0, int param1);
BOOL ov16_0226BCD0(UnkStruct_ov16_02268A14 *param0);
int ov16_0226CD08(UnkStruct_ov16_02268A14 *param0);
void ov16_0226CD10(UnkStruct_ov16_02268A14 *param0, int param1);
void ov16_0226CEB0(UnkStruct_ov16_02268A14 *param0, int param1);
u8 ov16_0226D088(UnkStruct_ov16_02268A14 *param0);
void BattleSubscreenBg_Init(BgConfig *bgConfig);
void BattleSubscreenBg_Free(BgConfig *bgConfig);
void *BattleSubscreen_New(NARC *unused1, NARC *unused2, BattleSystem *battleSys, int trainerGender, u8 *subscreenCursorOn);
void BattleSubscreen_Free(BattleSubscreen *btlSubscreen);
void BattleSubscreen_LoadGraphics(BattleSubscreen *btlSubscreen);
void BattleSubscreen_FreeGraphics(BattleSubscreen *btlSubscreen);
void BattleSubscreen_SetupBackground(NARC *unused, NARC *spriteNarc, BattleSubscreen *btlSubscreen, int menuConfigIndex, int forceRedraw, void *battleDisplayData);
void BattleSubscreen_LoadSprites(NARC *param0, BattleSubscreen *btlSubscreen);
void BattleSubscreen_SetExpPercents(BattleSubscreen *btlSubscreen, const u8 *param1);
void BattleSubscreen_SetBallStatus(BattleSubscreen *btlSubscreen, u8 param1[], u8 param2[]);
void BattleSubscreen_ShowBallSprites(BattleSubscreen *btlSubscreen);
void BattleSubscreen_HideBallSprites(BattleSubscreen *btlSubscreen);
int BattleSystem_MenuInput(BattleSubscreen *btlSubscreen);
BOOL BattleSubscreen_IsReady(BattleSubscreen *btlSubscreen);
int GetTargetSelectLayout(int param0, int param1);
void BattleSubscreen_UpdateSlideWindow(BattleSubscreen *btlSubscreen);
void BattleSubscreen_StartPanelSlide(BattleSubscreen *btlSubscreen, int param1, int param2);
void BattleSubscreen_UpdateMoveDisplay(BattleSubscreen *btlSubscreen, int param1, const MoveDisplayInfo *moveDisplayInfo);
void ov16_Dummy3(BattleSubscreen *btlSubscreen, int param1);
BOOL ov16_0226BCD0(BattleSubscreen *btlSubscreen);
int BattleSubscreen_GetSuppressActivationSFX(BattleSubscreen *btlSubscreen);
void BattleSubscreen_SetSuppressActivationSFX(BattleSubscreen *btlSubscreen, int param1);
void BattleSubscreen_ShowStopRecordingMessage(BattleSubscreen *btlSubscreen, int param1);
u8 BattleSubscreen_IsWaitingForPartner(BattleSubscreen *btlSubscreen);
#endif // POKEPLATINUM_OV16_0226871C_H

View File

@@ -90,7 +90,7 @@ BattleAnimSystem *BattleSystem_GetBattleAnimSystem(BattleSystem *battleSys);
SpriteSystem *BattleSystem_GetSpriteSystem(BattleSystem *battleSys);
SpriteManager *BattleSystem_GetSpriteManager(BattleSystem *battleSys);
Terrain *BattlerSystem_GetTerrain(BattleSystem *battleSys, int index);
UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSys);
BattleSubscreen *ov16_0223E02C(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);

View File

@@ -1,11 +1,11 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02260C00_H
#define POKEPLATINUM_STRUCT_OV16_02260C00_H
#ifndef POKEPLATINUM_STRUCT_MOVE_SELECT_DATA_H
#define POKEPLATINUM_STRUCT_MOVE_SELECT_DATA_H
typedef struct {
u16 moveIDs[4];
u8 unk_08[4];
u8 unk_0C[4];
u8 unk_10;
} UnkStruct_ov16_02260C00;
} MoveSelectData;
#endif // POKEPLATINUM_STRUCT_OV16_02260C00_H
#endif // POKEPLATINUM_STRUCT_MOVE_SELECT_DATA_H

View File

@@ -1,12 +1,12 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02260F14_H
#define POKEPLATINUM_STRUCT_OV16_02260F14_H
#ifndef POKEPLATINUM_STRUCT_TARGET_SELECT_DATA_H
#define POKEPLATINUM_STRUCT_TARGET_SELECT_DATA_H
#include "battle/struct_ov16_0225C29C_sub1.h"
typedef struct {
UnkStruct_ov16_0225C29C_sub1 unk_00[4];
u8 unk_20;
u8 unk_21;
} UnkStruct_ov16_02260F14;
typedef struct TargetSelectData {
UnkStruct_ov16_0225C29C_sub1 targetMonData[4];
u8 battlerType;
u8 targetingLayout;
} TargetSelectData;
#endif // POKEPLATINUM_STRUCT_OV16_02260F14_H
#endif // POKEPLATINUM_STRUCT_TARGET_SELECT_DATA_H

View File

@@ -1,9 +1,9 @@
#ifndef POKEPLATINUM_STRUCT_OV16_022623F0_H
#define POKEPLATINUM_STRUCT_OV16_022623F0_H
#ifndef POKEPLATINUM_STRUCT_GIVE_UP_MOVE_DATA_H
#define POKEPLATINUM_STRUCT_GIVE_UP_MOVE_DATA_H
typedef struct {
u16 unk_00;
u16 unk_02;
} UnkStruct_ov16_022623F0;
} GiveUpMoveData;
#endif // POKEPLATINUM_STRUCT_OV16_022623F0_H
#endif // POKEPLATINUM_STRUCT_GIVE_UP_MOVE_DATA_H

View File

@@ -1,6 +1,6 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02268A14_DECL_H
#define POKEPLATINUM_STRUCT_OV16_02268A14_DECL_H
typedef struct UnkStruct_ov16_02268A14_t UnkStruct_ov16_02268A14;
typedef struct BattleSubscreen_t BattleSubscreen;
#endif // POKEPLATINUM_STRUCT_OV16_02268A14_DECL_H

View File

@@ -1,5 +1,5 @@
#ifndef POKEPLATINUM_STRUCT_OV16_02269668_H
#define POKEPLATINUM_STRUCT_OV16_02269668_H
#ifndef POKEPLATINUM_STRUCT_ACTION_SELECT_DATA_H
#define POKEPLATINUM_STRUCT_ACTION_SELECT_DATA_H
typedef struct {
u8 unk_00;
@@ -10,6 +10,6 @@ typedef struct {
u16 unk_06;
u8 isWaitingForPartner;
u8 unk_09[3];
} UnkStruct_ov16_02269668;
} ActionSelectData;
#endif // POKEPLATINUM_STRUCT_OV16_02269668_H
#endif // POKEPLATINUM_STRUCT_ACTION_SELECT_DATA_H

View File

@@ -72,7 +72,7 @@ struct BattleSystem {
u8 unk_A8[4];
Trainer trainers[MAX_BATTLERS];
Terrain terrains[2];
UnkStruct_ov16_02268A14 *unk_198;
BattleSubscreen *unk_198;
PartyGauge *partyGauges[2];
FontSpecialCharsContext *specialCharsHP;
FontSpecialCharsContext *specialCharsLevel;

File diff suppressed because it is too large Load Diff

View File

@@ -3182,7 +3182,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
{
CommandSetData *commandSetData = data;
BgConfig *bgConfig = BattleSystem_GetBgConfig(commandSetData->battleSys);
UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(commandSetData->battleSys);
BattleSubscreen *btlSubscreen = ov16_0223E02C(commandSetData->battleSys);
BattlerData *battlerData = BattleSystem_GetBattlerData(commandSetData->battleSys, commandSetData->battler);
u32 battleType = BattleSystem_GetBattleType(commandSetData->battleSys);
int partner = BattleSystem_GetPartner(commandSetData->battleSys, commandSetData->battler);
@@ -3205,7 +3205,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
moveDisplayInfo.maxPP[i] = commandSetData->maxPP[i];
}
ov16_0226AC98(ov16_0223E02C(commandSetData->battleSys), commandSetData->battlerType, &moveDisplayInfo);
BattleSubscreen_UpdateMoveDisplay(ov16_0223E02C(commandSetData->battleSys), commandSetData->battlerType, &moveDisplayInfo);
commandSetData->state++;
case 1: {
@@ -3257,58 +3257,58 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
ov16_02264798(battlerData, commandSetData->battleSys);
commandSetData->state = 4;
case 4:
if (ov16_02269348(v2) == 0) {
if (BattleSubscreen_IsReady(btlSubscreen) == 0) {
break;
}
UnkStruct_ov16_02269668 v11;
ActionSelectData actionData;
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
v11.unk_01 = commandSetData->battler;
v11.unk_00 = commandSetData->battlerType;
v11.unk_02 = commandSetData->partySlot;
v11.unk_04 = commandSetData->curHP;
v11.unk_06 = commandSetData->maxHP;
v11.unk_03 = commandSetData->ballStatusBattler;
v11.isWaitingForPartner = BattleSystem_IsSlot2WaitingForPartner(commandSetData->battleSys, commandSetData->battler, commandSetData->switchingOrCanPickCommandMask);
actionData.unk_01 = commandSetData->battler;
actionData.unk_00 = commandSetData->battlerType;
actionData.unk_02 = commandSetData->partySlot;
actionData.unk_04 = commandSetData->curHP;
actionData.unk_06 = commandSetData->maxHP;
actionData.unk_03 = commandSetData->ballStatusBattler;
actionData.isWaitingForPartner = BattleSystem_IsSlot2WaitingForPartner(commandSetData->battleSys, commandSetData->battler, commandSetData->switchingOrCanPickCommandMask);
if (battlerData->unk_193) {
ov16_Dummy3(v2, 1);
ov16_Dummy3(btlSubscreen, 1);
if (BattleSystem_GetBattleStatusMask(commandSetData->battleSys) & BATTLE_STATUS_FIRST_BATTLE) {
ov16_02268C04(bgNarc, objNarc, v2, 6, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 6, 0, &actionData);
} else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_PAL_PARK) {
ov16_02268C04(bgNarc, objNarc, v2, 10, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 10, 0, &actionData);
} else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_SAFARI) {
ov16_02268C04(bgNarc, objNarc, v2, 8, 0, &v11);
} else if (v11.unk_00 == 4 && (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_2vs2) == FALSE) {
ov16_02268C04(bgNarc, objNarc, v2, 4, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 8, 0, &actionData);
} else if (actionData.unk_00 == 4 && (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_2vs2) == FALSE) {
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 4, 0, &actionData);
} else {
ov16_02268C04(bgNarc, objNarc, v2, 3, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 3, 0, &actionData);
}
BattleSystem_SetCommandSelectionFlags(commandSetData->battleSys, 1);
} else {
if (BattleSystem_GetBattleStatusMask(commandSetData->battleSys) & BATTLE_STATUS_FIRST_BATTLE) {
ov16_02268C04(bgNarc, objNarc, v2, 5, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 5, 0, &actionData);
} else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_PAL_PARK) {
ov16_02268C04(bgNarc, objNarc, v2, 9, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 9, 0, &actionData);
} else if (BattleSystem_GetBattleType(commandSetData->battleSys) & BATTLE_TYPE_SAFARI) {
ov16_02268C04(bgNarc, objNarc, v2, 7, 0, &v11);
} else if (v11.unk_00 != 4) {
ov16_02268C04(bgNarc, objNarc, v2, 1, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 7, 0, &actionData);
} else if (actionData.unk_00 != 4) {
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 1, 0, &actionData);
} else {
ov16_02268C04(bgNarc, objNarc, v2, 2, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 2, 0, &actionData);
}
battlerData->unk_193 = 1;
}
ov16_0226914C(v2, commandSetData->expPercents);
ov16_02269168(v2, commandSetData->ballStatus[0], commandSetData->ballStatus[1]);
ov16_022691BC(v2);
BattleSubscreen_SetExpPercents(btlSubscreen, commandSetData->expPercents);
BattleSubscreen_SetBallStatus(btlSubscreen, commandSetData->ballStatus[0], commandSetData->ballStatus[1]);
BattleSubscreen_ShowBallSprites(btlSubscreen);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
@@ -3328,7 +3328,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
}
}
commandSetData->input = BattleSystem_MenuInput(v2);
commandSetData->input = BattleSystem_MenuInput(btlSubscreen);
if (commandSetData->input != 0xFFFFFFFF) {
commandSetData->unused_0B = 10; // set but never used
@@ -3337,7 +3337,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
}
break;
case 6:
if (ov16_02269348(v2) == 1 || commandSetData->input == 1) {
if (BattleSubscreen_IsReady(btlSubscreen) == 1 || commandSetData->input == 1) {
switch (commandSetData->input) {
case 1: // Fight
if (BattleSystem_GetBattleType(commandSetData->battleSys) & (BATTLE_TYPE_SAFARI | BATTLE_TYPE_PAL_PARK)) {
@@ -3348,8 +3348,8 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
ov16_Dummy3(v2, 0);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 0, 0, NULL);
ov16_Dummy3(btlSubscreen, 0);
ov16_0226846C(healthbox);
Healthbox_Deactivate(commandSetData->healthbox);
ov16_022647D8(battlerData);
@@ -3360,8 +3360,8 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
ov16_Dummy3(v2, 0);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 0, 0, NULL);
ov16_Dummy3(btlSubscreen, 0);
ov16_0226846C(healthbox);
Healthbox_Deactivate(commandSetData->healthbox);
ov16_022647D8(battlerData);
@@ -3372,12 +3372,12 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
if (ov16_0226D088(v2) == 1) {
if (BattleSubscreen_IsWaitingForPartner(btlSubscreen) == 1) {
ov16_0226846C(healthbox);
commandSetData->input = 0xFF;
}
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 0, 0, NULL);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
} break;
@@ -3386,21 +3386,21 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
break;
}
ov16_02269218(v2);
BattleSubscreen_HideBallSprites(btlSubscreen);
commandSetData->state = 8;
}
break;
case 7:
if (ov16_02269348(v2) == 1) {
if (BattleSubscreen_IsReady(btlSubscreen) == 1) {
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
ov16_Dummy3(v2, 0);
BattleSubscreen_SetupBackground(bgNarc, objNarc, btlSubscreen, 0, 0, NULL);
ov16_Dummy3(btlSubscreen, 0);
ov16_0226846C(healthbox);
Healthbox_Deactivate(commandSetData->healthbox);
ov16_022647D8(battlerData);
ov16_02269218(v2);
BattleSubscreen_HideBallSprites(btlSubscreen);
commandSetData->state = 8;
@@ -3409,7 +3409,7 @@ static void Task_PlayerSetCommandSelection(SysTask *task, void *data)
}
break;
case 8:
if (ov16_0226BCD0(v2) == 1) {
if (ov16_0226BCD0(btlSubscreen) == 1) {
ov16_022656D4(commandSetData->battleSys, commandSetData->battler, commandSetData->input);
BattleController_EmitClearCommand(commandSetData->battleSys, commandSetData->battler, commandSetData->command);
Heap_Free(data);
@@ -3513,7 +3513,7 @@ static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data)
BgConfig *bgConfig = BattleSystem_GetBgConfig(moveSelectMenuData->battleSys);
HealthBox *healthbox;
UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(moveSelectMenuData->battleSys);
BattleSubscreen *v2 = ov16_0223E02C(moveSelectMenuData->battleSys);
BattlerData *battlerData = BattleSystem_GetBattlerData(moveSelectMenuData->battleSys, moveSelectMenuData->battler);
int partner = BattleSystem_GetPartner(moveSelectMenuData->battleSys, moveSelectMenuData->battler);
@@ -3525,7 +3525,7 @@ static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data)
switch (moveSelectMenuData->state) {
case 0:
if (ov16_02269348(v2) == 0) {
if (BattleSubscreen_IsReady(v2) == 0) {
break;
}
@@ -3538,9 +3538,9 @@ static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data)
BattleMessage_Print(moveSelectMenuData->battleSys, msgLoader, &battleMsg, 0);
ov16_02269218(v2);
BattleSubscreen_HideBallSprites(v2);
UnkStruct_ov16_02260C00 v8;
MoveSelectData v8;
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
@@ -3552,7 +3552,7 @@ static void Task_PlayerShowMoveSelectMenu(SysTask *task, void *data)
v8.unk_10 = moveSelectMenuData->battlerType;
ov16_02268C04(bgNarc, objNarc, v2, 11, 0, &v8);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 11, 0, &v8);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
moveSelectMenuData->state++;
@@ -3675,7 +3675,7 @@ static void Task_PlayerShowTargetSelectMenu(SysTask *task, void *data)
BgConfig *bgConfig = BattleSystem_GetBgConfig(targetSelectMenuData->battleSys);
HealthBox *healthbox;
BattlerData *battlerData = BattleSystem_GetBattlerData(targetSelectMenuData->battleSys, targetSelectMenuData->battler);
UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(targetSelectMenuData->battleSys);
BattleSubscreen *v2 = ov16_0223E02C(targetSelectMenuData->battleSys);
int partner = BattleSystem_GetPartner(targetSelectMenuData->battleSys, targetSelectMenuData->battler);
if (partner != targetSelectMenuData->battler) {
@@ -3686,22 +3686,22 @@ static void Task_PlayerShowTargetSelectMenu(SysTask *task, void *data)
switch (targetSelectMenuData->state) {
case 0:
if (ov16_02269348(v2) == 0) {
if (BattleSubscreen_IsReady(v2) == 0) {
break;
}
UnkStruct_ov16_02260F14 v6;
TargetSelectData targetSelectData;
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
for (int i = 0; i < 4; i++) {
v6.unk_00[i] = targetSelectMenuData->targetMon[i];
targetSelectData.targetMonData[i] = targetSelectMenuData->targetMon[i];
}
v6.unk_20 = targetSelectMenuData->battlerType;
v6.unk_21 = ov16_02269368(targetSelectMenuData->range, targetSelectMenuData->battlerType);
targetSelectData.battlerType = targetSelectMenuData->battlerType;
targetSelectData.targetingLayout = GetTargetSelectLayout(targetSelectMenuData->range, targetSelectMenuData->battlerType);
ov16_02268C04(bgNarc, objNarc, v2, 12, 0, &v6);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 12, 0, &targetSelectData);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
@@ -3835,7 +3835,7 @@ static void Task_PlayerShowBagMenu(SysTask *task, void *data)
switch (bagMenuData->state) {
case 0:
bagMenuData->isCursorEnabled = ov16_0226CD08(ov16_0223E02C(bagMenuData->battleSys));
bagMenuData->isCursorEnabled = BattleSubscreen_GetSuppressActivationSFX(ov16_0223E02C(bagMenuData->battleSys));
sub_02015738(ov16_0223E220(bagMenuData->battleSys), 1);
PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_MAIN_OBJ_F, 0xC00, -8, 0, 7, 0);
PaletteData_StartFade(paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -8, 0, 16, 0);
@@ -3945,7 +3945,7 @@ static void Task_PlayerShowBagMenu(SysTask *task, void *data)
break;
case 6:
BattleSystem_ExitSubMenu(bagMenuData->battleSys);
ov16_0226CD10(ov16_0223E02C(bagMenuData->battleSys), bagMenuData->isCursorEnabled);
BattleSubscreen_SetSuppressActivationSFX(ov16_0223E02C(bagMenuData->battleSys), bagMenuData->isCursorEnabled);
PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_MAIN_OBJ_F, 0xC00, -8, 7, 0, 0);
PaletteData_StartFade(paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -8, 16, 0, 0);
bagMenuData->state++;
@@ -4404,7 +4404,7 @@ static void Task_PlayerShowPartyMenu(SysTask *task, void *data)
Window_FillTilemap(window, 0xFF);
Window_LoadTiles(window);
partyMenuData->isCursorEnabled = ov16_0226CD08(ov16_0223E02C(partyMenuData->battleSys));
partyMenuData->isCursorEnabled = BattleSubscreen_GetSuppressActivationSFX(ov16_0223E02C(partyMenuData->battleSys));
sub_02015738(ov16_0223E220(partyMenuData->battleSys), 1);
PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_MAIN_OBJ_F, 0xC00, -8, 0, 7, 0);
PaletteData_StartFade(paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -8, 0, 16, 0);
@@ -4513,7 +4513,7 @@ static void Task_PlayerShowPartyMenu(SysTask *task, void *data)
case 2:
if (partyMenuData->battlePartyCtx->battlePartyExited) {
BattleSystem_ExitSubMenu(partyMenuData->battleSys);
ov16_0226CD10(ov16_0223E02C(partyMenuData->battleSys), partyMenuData->battlePartyCtx->isCursorEnabled);
BattleSubscreen_SetSuppressActivationSFX(ov16_0223E02C(partyMenuData->battleSys), partyMenuData->battlePartyCtx->isCursorEnabled);
PaletteData_StartFade(paletteData, PLTTBUF_MAIN_BG_F | PLTTBUF_MAIN_OBJ_F, 0xC00, -8, 7, 0, 0);
PaletteData_StartFade(paletteData, PLTTBUF_SUB_BG_F | PLTTBUF_SUB_OBJ_F, 0xFFFF, -8, 16, 0, 0);
partyMenuData->state++;
@@ -4634,7 +4634,7 @@ static void Task_PlayerShowYesNoMenu(SysTask *task, void *data)
{
YesNoMenuData *yesNoMenuData = data;
BgConfig *bgConfig = BattleSystem_GetBgConfig(yesNoMenuData->battleSys);
UnkStruct_ov16_02268A14 *v2 = ov16_0223E02C(yesNoMenuData->battleSys);
BattleSubscreen *v2 = ov16_0223E02C(yesNoMenuData->battleSys);
int partner;
HealthBox *healthbox;
BattlerData *battlerData = BattleSystem_GetBattlerData(yesNoMenuData->battleSys, yesNoMenuData->battler);
@@ -4648,7 +4648,7 @@ static void Task_PlayerShowYesNoMenu(SysTask *task, void *data)
switch (yesNoMenuData->state) {
case 0:
if (ov16_02269348(v2) == 0) {
if (BattleSubscreen_IsReady(v2) == 0) {
break;
}
@@ -4673,28 +4673,28 @@ static void Task_PlayerShowYesNoMenu(SysTask *task, void *data)
if (Text_IsPrinterActive(yesNoMenuData->msgIdx) == FALSE || yesNoMenuData->promptMsg == NULL) {
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
UnkStruct_ov16_022623F0 v11;
GiveUpMoveData v11;
ov16_02269218(v2);
BattleSubscreen_HideBallSprites(v2);
v11.unk_00 = yesNoMenuData->move;
switch (yesNoMenuData->yesNoType) {
case 0:
case 5:
ov16_02268C04(bgNarc, objNarc, v2, 13, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 13, 0, &v11);
break;
case 1:
ov16_02268C04(bgNarc, objNarc, v2, 14, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 14, 0, &v11);
break;
case 2:
ov16_02268C04(bgNarc, objNarc, v2, 15, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 15, 0, &v11);
break;
case 3:
ov16_02268C04(bgNarc, objNarc, v2, 16, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 16, 0, &v11);
break;
case 4:
ov16_02268C04(bgNarc, objNarc, v2, 17, 0, &v11);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 17, 0, &v11);
break;
default:
GF_ASSERT(FALSE);
@@ -4716,15 +4716,15 @@ static void Task_PlayerShowYesNoMenu(SysTask *task, void *data)
}
break;
case 3:
if (ov16_02269348(v2) == 1) {
if (BattleSubscreen_IsReady(v2) == 1) {
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
Healthbox_Deactivate(yesNoMenuData->healthbox);
ov16_022647D8(battlerData);
ov16_0226846C(healthbox);
ov16_02269218(v2);
ov16_02268C04(bgNarc, objNarc, v2, 0, 0, NULL);
BattleSubscreen_HideBallSprites(v2);
BattleSubscreen_SetupBackground(bgNarc, objNarc, v2, 0, 0, NULL);
if (yesNoMenuData->input == 1) {
ov16_Dummy3(v2, 0);

View File

@@ -611,12 +611,12 @@ static void BtlIOCmd_UpdatePartyMon(BattleSystem *battleSys, BattlerData *battle
static void ov16_0225C558(BattleSystem *battleSys, BattlerData *battlerData)
{
u32 battleType = BattleSystem_GetBattleType(battleSys);
UnkStruct_ov16_02268A14 *v1 = ov16_0223E02C(battleSys);
BattleSubscreen *v1 = ov16_0223E02C(battleSys);
if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) {
if ((battleType & BATTLE_TYPE_2vs2)
|| ((battleType & BATTLE_TYPE_2vs2) == FALSE && battlerData->battlerType != BATTLER_TYPE_PLAYER_SIDE_SLOT_2)) {
ov16_0226947C(v1, -0xd00, 0);
BattleSubscreen_StartPanelSlide(v1, -0xd00, 0);
}
}
@@ -719,14 +719,14 @@ static void BtlIOCmd_UpdateBg(BattleSystem *battleSys, BattlerData *battlerData)
static void BtlIOCmd_ClearTouchScreen(BattleSystem *battleSys, BattlerData *battlerData)
{
if (battlerData->bootState == BATTLER_BOOT_STATE_NORMAL) {
UnkStruct_ov16_02268A14 *v0;
BattleSubscreen *v0;
int partner;
HealthBox *healthbox;
NARC *v3 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *v4 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
v0 = ov16_0223E02C(battleSys);
ov16_02268C04(v3, v4, v0, 0, 0, NULL);
BattleSubscreen_SetupBackground(v3, v4, v0, 0, 0, NULL);
ov16_Dummy3(v0, 0);
NARC_dtor(v3);
@@ -740,7 +740,7 @@ static void BtlIOCmd_ClearTouchScreen(BattleSystem *battleSys, BattlerData *batt
}
Healthbox_Deactivate(&battlerData->healthbox);
ov16_02269218(v0);
BattleSubscreen_HideBallSprites(v0);
ov16_022647D8(battlerData);
}

View File

@@ -303,8 +303,8 @@ BOOL Battle_Main(ApplicationManager *appMan, int *state)
void BattleSystem_EnterSubMenu(BattleSystem *battleSys)
{
ov16_02268A14(battleSys->unk_198);
ov16_022687A0(battleSys->bgConfig);
BattleSubscreen_Free(battleSys->unk_198);
BattleSubscreenBg_Free(battleSys->bgConfig);
battleSys->pendingSubMenuVRAMSetup = 1;
@@ -323,7 +323,7 @@ void BattleSystem_EnterSubMenu(BattleSystem *battleSys)
void BattleSystem_FreeGraphics(BattleSystem *battleSys)
{
SetVBlankCallback(NULL, NULL);
ov16_02268A14(battleSys->unk_198);
BattleSubscreen_Free(battleSys->unk_198);
Window_Remove(&battleSys->windows[0]);
BattleMain_FreeBgLayers(battleSys->bgConfig);
@@ -350,18 +350,18 @@ void BattleSystem_ExitSubMenu(BattleSystem *battleSys)
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
battleSys->unk_198 = ov16_022687C8(bgNarc, objNarc, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn);
battleSys->unk_198 = BattleSubscreen_New(bgNarc, objNarc, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn);
Font_InitManager(FONT_SUBSCREEN, HEAP_ID_BATTLE);
battleSys->pendingBattleVRAMSetup = 1;
ov16_02268744(battleSys->bgConfig);
BattleSubscreenBg_Init(battleSys->bgConfig);
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE);
ov16_02268A88(battleSys->unk_198);
ov16_02268C04(bgNarc, objNarc, battleSys->unk_198, 0, 1, NULL);
ov16_02268D40(objNarc, battleSys->unk_198);
BattleSubscreen_LoadGraphics(battleSys->unk_198);
BattleSubscreen_SetupBackground(bgNarc, objNarc, battleSys->unk_198, 0, 1, NULL);
BattleSubscreen_LoadSprites(objNarc, battleSys->unk_198);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
TextPrinter_SetScrollArrowBaseTile(1);
@@ -548,7 +548,7 @@ static void BattleMain_InitGraphics(ApplicationManager *appMan)
NARC *bgNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
battleSys->unk_198 = ov16_022687C8(bgNarc, objNarc, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn);
battleSys->unk_198 = BattleSubscreen_New(bgNarc, objNarc, battleSys, BattleSystem_GetTrainerGender(battleSys, BattleSystem_GetNetworkID(battleSys)), battleSys->subscreenCursorOn);
NARC_dtor(bgNarc);
NARC_dtor(objNarc);
@@ -571,13 +571,13 @@ static void BattleMain_InitGraphics(ApplicationManager *appMan)
SpriteSystem_InitManagerWithCapacities(battleSys->spriteSys, battleSys->spriteMan, &sCapacities);
SetSubScreenViewRect(SpriteSystem_GetRenderer(battleSys->spriteSys), 0, (192 + 80) << FX32_SHIFT);
ov16_02268A88(battleSys->unk_198);
BattleSubscreen_LoadGraphics(battleSys->unk_198);
NARC *bgNarc2 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
NARC *objNarc2 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
ov16_02268C04(bgNarc2, objNarc2, battleSys->unk_198, 0, 1, NULL);
ov16_02268D40(objNarc2, battleSys->unk_198);
BattleSubscreen_SetupBackground(bgNarc2, objNarc2, battleSys->unk_198, 0, 1, NULL);
BattleSubscreen_LoadSprites(objNarc2, battleSys->unk_198);
NARC_dtor(bgNarc2);
NARC_dtor(objNarc2);
@@ -887,7 +887,7 @@ static void BattleMain_InitBattleGraphics(BattleSystem *battleSys, BgConfig *bgC
G2_SetBG0Priority(1);
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0, TRUE);
ov16_02268744(bgConfig);
BattleSubscreenBg_Init(bgConfig);
int frame = BattleSystem_GetOptionsFrame(battleSys);
@@ -937,7 +937,7 @@ static void BattleMain_FreeBgLayers(BgConfig *bgConfig)
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2);
Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_3);
ov16_022687A0(bgConfig);
BattleSubscreenBg_Free(bgConfig);
}
static void Dummy_0223C2BC(BattleSystem *battleSys) // CLEANUP: remove

View File

@@ -187,7 +187,7 @@ Terrain *BattlerSystem_GetTerrain(BattleSystem *battleSys, int index)
return &battleSys->terrains[index];
}
UnkStruct_ov16_02268A14 *ov16_0223E02C(BattleSystem *battleSys)
BattleSubscreen *ov16_0223E02C(BattleSystem *battleSys)
{
return battleSys->unk_198;
}
@@ -1433,7 +1433,7 @@ void BattleSystem_SetStopRecording(BattleSystem *battleSys, int flag)
return;
}
ov16_0226CEB0(battleSys->unk_198, flag);
BattleSubscreen_ShowStopRecordingMessage(battleSys->unk_198, flag);
StartScreenFade(FADE_MAIN_ONLY, FADE_TYPE_BRIGHTNESS_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 16, 2, HEAP_ID_BATTLE);
Sound_StopWaveOutAndSequences();

View File

@@ -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->battleSys);
BattleSubscreen *v1 = ov16_0223E02C(v0->battleSys);
switch (v0->unk_04) {
case 0:
@@ -60,14 +60,14 @@ static void ov16_0226E188(SysTask *param0, void *param1)
v2 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_BG, HEAP_ID_BATTLE);
v3 = NARC_ctor(NARC_INDEX_BATTLE__GRAPHIC__PL_BATT_OBJ, HEAP_ID_BATTLE);
ov16_02268C04(v2, v3, v1, 18, 0, NULL);
BattleSubscreen_SetupBackground(v2, v3, v1, 18, 0, NULL);
NARC_dtor(v2);
NARC_dtor(v3);
}
v0->unk_04++;
break;
case 1:
if (ov16_02269348(v1) == 1) {
if (BattleSubscreen_IsReady(v1) == 1) {
v0->unk_04++;
}
break;