diff --git a/include/narc_frontier_bg.h b/include/narc_frontier_bg.h index d6cb176ce5..94d9a164fd 100644 --- a/include/narc_frontier_bg.h +++ b/include/narc_frontier_bg.h @@ -21,6 +21,17 @@ #define BATTLE_CASTLE_BATTLE_ROOM_TILES 29 #define BATTLE_CASTLE_BATTLE_ROOM_TILEMAP 30 #define BATTLE_CASTLE_BATTLE_ROOM_CURTAINS_TILEMAP 33 +#define BATTLE_CASTLE_SELF_APP_TILES 34 +#define BATTLE_CASTLE_SELF_APP_SOLO_TILEMAP 35 +#define BATTLE_CASTLE_SELF_APP_MULTI_TILEMAP 36 +#define BATTLE_CASTLE_SELF_APP_ITEMS_TILEMAP 37 +#define BATTLE_CASTLE_SELF_APP_SUMMARY_TILEMAP 38 +#define BATTLE_CASTLE_SELF_APP_MOVES_TILEMAP 39 +#define BATTLE_CASTLE_OPPONENT_APP_SOLO_TILEMAP 40 +#define BATTLE_CASTLE_OPPONENT_APP_MULTI_TILEMAP 41 +#define BATTLE_CASTLE_OPPONENT_APP_SUMMARY_TILEMAP 42 +#define BATTLE_CASTLE_OPPONENT_APP_MOVES_TILEMAP 43 +#define BATTLE_CASTLE_OPPONENT_APP_TILES 44 #define BATTLE_TOWER_TILES 45 #define BATTLE_TOWER_MULTI_BATTLE_ROOM_TILEMAP 46 #define BATTLE_TOWER_MULTI_CORRIDOR_TILEMAP 47 @@ -42,6 +53,8 @@ #define BATTLE_HALL_BATTLE_ROOM_LIGHTS_PLTT 133 #define BATTLE_HALL_APP_PLTT 134 #define BATTLE_CASTLE_CORRIDOR_PLTT 135 +#define BATTLE_CASTLE_SELF_APP_PLTT 137 +#define BATTLE_CASTLE_OPPONENT_APP_PLTT 138 #define BATTLE_CASTLE_BATTLE_ROOM_PLTT 140 #define BATTLE_TOWER_PLTT 141 #define BATTLE_ARCADE_BATTLE_ROOM_PLTT 142 diff --git a/include/overlay104/ov104_0223B6F4.h b/include/overlay104/ov104_0223B6F4.h index ed7b7e0338..5e86186886 100644 --- a/include/overlay104/ov104_0223B6F4.h +++ b/include/overlay104/ov104_0223B6F4.h @@ -16,7 +16,7 @@ u8 ov104_0223B7A8(u8 param0, BOOL param1); u8 ov104_0223B7DC(u8 param0, BOOL param1); FieldBattleDTO *ov104_0223B810(UnkStruct_ov104_0223BA10 *param0, UnkStruct_ov104_02230BE4 *param1); u8 ov104_0223BA10(UnkStruct_ov104_0223BA10 *param0); -BOOL ov104_0223BA14(u8 param0); +BOOL BattleCastle_IsMultiPlayerChallenge(u8 param0); void ov104_0223BA24(Party *param0); void ov104_0223BA7C(UnkStruct_ov104_0223BA10 *param0, Pokemon *param1); void ov104_0223BAA0(UnkStruct_ov104_0223BA10 *param0, Party *param1, Pokemon *param2); diff --git a/include/overlay107/battle_castle_app_sprite_manager.h b/include/overlay107/battle_castle_app_sprite_manager.h index 563cbce4ce..cac4928d6c 100644 --- a/include/overlay107/battle_castle_app_sprite_manager.h +++ b/include/overlay107/battle_castle_app_sprite_manager.h @@ -15,10 +15,10 @@ typedef struct BattleCastleAppSpriteManager { SpriteResource *resources[NUM_SPRITES][MAX_SPRITE_RESOURCE_GEN4]; } BattleCastleAppSpriteManager; -void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, Party *party, u8 param2); +void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, Party *party, u8 challengeType); Sprite *BattleCastleApp_InitSprite(BattleCastleAppSpriteManager *spriteMan, u32 charResourceID, u32 plttResourceID, u32 cellResourceID, u32 animID, u32 priority, int resourcePriority, u8 onSubScreen); void BattleCastleApp_FreeSprites(BattleCastleAppSpriteManager *spriteMan); -void ov107_022499BC(BattleCastleAppSpriteManager *spriteMan, u16 item); -void ov107_022499FC(BattleCastleAppSpriteManager *spriteMan, u16 item); +void BattleCastleApp_SetItemGraphic(BattleCastleAppSpriteManager *spriteMan, u16 item); +void BattleCastleApp_SetItemPalette(BattleCastleAppSpriteManager *spriteMan, u16 item); #endif // POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_SPRITE_MANAGER_H diff --git a/include/overlay107/battle_castle_app_windows.h b/include/overlay107/battle_castle_app_windows.h index ab5f7d522c..d0e375aba9 100644 --- a/include/overlay107/battle_castle_app_windows.h +++ b/include/overlay107/battle_castle_app_windows.h @@ -3,8 +3,8 @@ #include "bg_window.h" -void BattleCastleApp_InitWindows(BgConfig *bgConfigs, Window *windows, u8 param2); -void BattleCastleApp_FreeWindows(Window *windows, u8 param1); +void BattleCastleApp_InitWindows(BgConfig *bgConfigs, Window *windows, u8 isOpponentApp); +void BattleCastleApp_FreeWindows(Window *windows, u8 isOpponentApp); void BattleCastleApp_DrawWindow(BgConfig *bgConfig, Window *window); void BattleCastleApp_DrawMessageBox(Window *window, int frame); diff --git a/include/overlay107/battle_castle_opponent_app.h b/include/overlay107/battle_castle_opponent_app.h new file mode 100644 index 0000000000..4c1caef59c --- /dev/null +++ b/include/overlay107/battle_castle_opponent_app.h @@ -0,0 +1,14 @@ +#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_OPPONENT_MAIN_H +#define POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_OPPONENT_MAIN_H + +#include "overlay_manager.h" + +BOOL BattleCastleOpponentApp_Init(ApplicationManager *appMan, int *state); +BOOL BattleCastleOpponentApp_Main(ApplicationManager *appMan, int *state); +BOOL BattleCastleOpponentApp_Exit(ApplicationManager *appMan, int *state); +void ov107_02248910(int param0, int param1, void *param2, void *param3); +void ov107_02248978(int param0, int param1, void *param2, void *param3); +void ov107_022489E0(int param0, int param1, void *param2, void *param3); +void ov107_02248A10(int param0, int param1, void *param2, void *param3); + +#endif // POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_OPPONENT_MAIN_H diff --git a/include/overlay107/battle_castle_self_app.h b/include/overlay107/battle_castle_self_app.h new file mode 100644 index 0000000000..2ed777cc97 --- /dev/null +++ b/include/overlay107/battle_castle_self_app.h @@ -0,0 +1,14 @@ +#ifndef POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_SELF_MAIN_H +#define POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_SELF_MAIN_H + +#include "overlay_manager.h" + +BOOL BattleCastleSelfApp_Init(ApplicationManager *appMan, int *state); +BOOL BattleCastleSelfApp_Main(ApplicationManager *appMan, int *state); +BOOL BattleCastleSelfApp_Exit(ApplicationManager *appMan, int *state); +void ov107_02245338(int param0, int param1, void *param2, void *param3); +void ov107_022453A0(int param0, int param1, void *param2, void *param3); +void ov107_02245408(int param0, int param1, void *param2, void *param3); +void ov107_02245438(int param0, int param1, void *param2, void *param3); + +#endif // POKEPLATINUM_APPLICATIONS_BATTLE_CASTLE_SELF_MAIN_H diff --git a/include/overlay107/ov107_02241AE0.h b/include/overlay107/ov107_02241AE0.h deleted file mode 100644 index c2557fd36c..0000000000 --- a/include/overlay107/ov107_02241AE0.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_OV107_02241AE0_H -#define POKEPLATINUM_OV107_02241AE0_H - -#include "overlay_manager.h" - -int ov107_02241AE0(ApplicationManager *appMan, int *param1); -int ov107_02241BD4(ApplicationManager *appMan, int *param1); -int ov107_02241D2C(ApplicationManager *appMan, int *param1); -void ov107_02245338(int param0, int param1, void *param2, void *param3); -void ov107_022453A0(int param0, int param1, void *param2, void *param3); -void ov107_02245408(int param0, int param1, void *param2, void *param3); -void ov107_02245438(int param0, int param1, void *param2, void *param3); - -#endif // POKEPLATINUM_OV107_02241AE0_H diff --git a/include/overlay107/ov107_02245EB0.h b/include/overlay107/ov107_02245EB0.h deleted file mode 100644 index 2416806b6e..0000000000 --- a/include/overlay107/ov107_02245EB0.h +++ /dev/null @@ -1,14 +0,0 @@ -#ifndef POKEPLATINUM_OV107_02245EB0_H -#define POKEPLATINUM_OV107_02245EB0_H - -#include "overlay_manager.h" - -int ov107_02245EB0(ApplicationManager *appMan, int *param1); -int ov107_02245FD0(ApplicationManager *appMan, int *param1); -int ov107_02246130(ApplicationManager *appMan, int *param1); -void ov107_02248910(int param0, int param1, void *param2, void *param3); -void ov107_02248978(int param0, int param1, void *param2, void *param3); -void ov107_022489E0(int param0, int param1, void *param2, void *param3); -void ov107_02248A10(int param0, int param1, void *param2, void *param3); - -#endif // POKEPLATINUM_OV107_02245EB0_H diff --git a/include/overlay107/struct_ov107_02241D6C_decl.h b/include/overlay107/struct_ov107_02241D6C_decl.h deleted file mode 100644 index 17863d2ecf..0000000000 --- a/include/overlay107/struct_ov107_02241D6C_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV107_02241D6C_DECL_H -#define POKEPLATINUM_STRUCT_OV107_02241D6C_DECL_H - -typedef struct UnkStruct_ov107_02241D6C_t UnkStruct_ov107_02241D6C; - -#endif // POKEPLATINUM_STRUCT_OV107_02241D6C_DECL_H diff --git a/include/overlay107/struct_ov107_02246170_decl.h b/include/overlay107/struct_ov107_02246170_decl.h deleted file mode 100644 index 3220cc4f25..0000000000 --- a/include/overlay107/struct_ov107_02246170_decl.h +++ /dev/null @@ -1,6 +0,0 @@ -#ifndef POKEPLATINUM_STRUCT_OV107_02246170_DECL_H -#define POKEPLATINUM_STRUCT_OV107_02246170_DECL_H - -typedef struct UnkStruct_ov107_02246170_t UnkStruct_ov107_02246170; - -#endif // POKEPLATINUM_STRUCT_OV107_02246170_DECL_H diff --git a/platinum.us/main.lsf b/platinum.us/main.lsf index ca3d6002b9..f85f61e33b 100644 --- a/platinum.us/main.lsf +++ b/platinum.us/main.lsf @@ -1594,8 +1594,8 @@ Overlay battle_hall_app Overlay overlay107 { After overlay104 - Object main.nef.p/src_overlay107_ov107_02241AE0.c.o - Object main.nef.p/src_overlay107_ov107_02245EB0.c.o + Object main.nef.p/src_overlay107_battle_castle_self_app.c.o + Object main.nef.p/src_overlay107_battle_castle_opponent_app.c.o Object main.nef.p/src_overlay107_battle_castle_app_sprite_manager.c.o Object main.nef.p/src_overlay107_battle_castle_app_sprite.c.o Object main.nef.p/src_overlay107_ov107_02249C98.c.o diff --git a/src/meson.build b/src/meson.build index 3a92cf0802..cc267a7e0b 100644 --- a/src/meson.build +++ b/src/meson.build @@ -963,8 +963,8 @@ pokeplatinum_c = files( 'applications/frontier/battle_hall/sprite_manager.c', 'applications/frontier/battle_hall/sprites.c', 'applications/frontier/battle_hall/windows.c', - 'overlay107/ov107_02241AE0.c', - 'overlay107/ov107_02245EB0.c', + 'overlay107/battle_castle_self_app.c', + 'overlay107/battle_castle_opponent_app.c', 'overlay107/battle_castle_app_sprite_manager.c', 'overlay107/battle_castle_app_sprite.c', 'overlay107/ov107_02249C98.c', diff --git a/src/overlay104/ov104_022358E8.c b/src/overlay104/ov104_022358E8.c index 1cea3dae3e..1131e41672 100644 --- a/src/overlay104/ov104_022358E8.c +++ b/src/overlay104/ov104_022358E8.c @@ -13,8 +13,8 @@ #include "overlay104/struct_ov104_0223597C.h" #include "overlay104/struct_ov104_0223BA10.h" #include "overlay104/struct_ov104_0223C4CC.h" -#include "overlay107/ov107_02241AE0.h" -#include "overlay107/ov107_02245EB0.h" +#include "overlay107/battle_castle_opponent_app.h" +#include "overlay107/battle_castle_self_app.h" #include "communication_system.h" #include "field_battle_data_transfer.h" @@ -87,9 +87,9 @@ BOOL FrontierScrCmd_9A(FrontierScriptContext *param0) FS_EXTERN_OVERLAY(overlay107); static const ApplicationManagerTemplate v4 = { - ov107_02241AE0, - ov107_02241BD4, - ov107_02241D2C, + BattleCastleSelfApp_Init, + BattleCastleSelfApp_Main, + BattleCastleSelfApp_Exit, FS_OVERLAY_ID(overlay107) }; @@ -149,7 +149,7 @@ BOOL FrontierScrCmd_9B(FrontierScriptContext *param0) v3 = Party_GetPokemonBySlotIndex(v2->parties[0], 1); Party_AddPokemonBySlotIndex(v1->unk_28, 1, v3); - if (ov104_0223BA14(v1->unk_10) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(v1->unk_10) == 0) { v3 = Party_GetPokemonBySlotIndex(v2->parties[0], 2); Party_AddPokemonBySlotIndex(v1->unk_28, 2, v3); } else { @@ -191,9 +191,9 @@ BOOL FrontierScrCmd_9D(FrontierScriptContext *param0) FS_EXTERN_OVERLAY(overlay107); static const ApplicationManagerTemplate v4 = { - ov107_02245EB0, - ov107_02245FD0, - ov107_02246130, + BattleCastleOpponentApp_Init, + BattleCastleOpponentApp_Main, + BattleCastleOpponentApp_Exit, FS_OVERLAY_ID(overlay107) }; @@ -386,7 +386,7 @@ BOOL FrontierScrCmd_A0(FrontierScriptContext *param0) case 34: *v17 = 0; - if (ov104_0223BA14(v3->unk_10) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(v3->unk_10) == 1) { if (v3->unk_A1B >= 6) { if (CommSys_CurNetId() == 0) { *v17 = 1; @@ -399,7 +399,7 @@ BOOL FrontierScrCmd_A0(FrontierScriptContext *param0) } break; case 35: - *v17 = ov104_0223BA14(v3->unk_10); + *v17 = BattleCastle_IsMultiPlayerChallenge(v3->unk_10); break; case 17: *v17 = v3->unk_10; diff --git a/src/overlay104/ov104_022361B4.c b/src/overlay104/ov104_022361B4.c index 1443cd10e9..b46073250f 100644 --- a/src/overlay104/ov104_022361B4.c +++ b/src/overlay104/ov104_022361B4.c @@ -151,7 +151,7 @@ UnkStruct_ov104_0223BA10 *ov104_022361B4(SaveData *saveData, u16 param1, u8 para } } - if (ov104_0223BA14(v9->unk_10) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(v9->unk_10) == 1) { ov104_0222E630(v9->saveData); } @@ -184,7 +184,7 @@ static void ov104_02236528(UnkStruct_ov104_0223BA10 *param0) ov104_0223B760(param0->unk_10, ov104_0223BB60(param0), param0->unk_30, (7 * 2)); - ov104_0222E4BC(ov104_0223B7DC(param0->unk_10, 1), param0->unk_30[param0->unk_11], param0->unk_30[param0->unk_11 + 7], param0->unk_26C, param0->unk_288, param0->unk_274, param0->unk_278, ov104_0223BA14(param0->unk_10)); + ov104_0222E4BC(ov104_0223B7DC(param0->unk_10, 1), param0->unk_30[param0->unk_11], param0->unk_30[param0->unk_11 + 7], param0->unk_26C, param0->unk_288, param0->unk_274, param0->unk_278, BattleCastle_IsMultiPlayerChallenge(param0->unk_10)); return; } @@ -482,7 +482,7 @@ void ov104_02236BF8(UnkStruct_ov104_0223BA10 *param0) { int v0, v1, v2; - ov104_0222E4BC(ov104_0223B7DC(param0->unk_10, 1), param0->unk_30[param0->unk_11], param0->unk_30[param0->unk_11 + 7], param0->unk_26C, param0->unk_288, param0->unk_274, param0->unk_278, ov104_0223BA14(param0->unk_10)); + ov104_0222E4BC(ov104_0223B7DC(param0->unk_10, 1), param0->unk_30[param0->unk_11], param0->unk_30[param0->unk_11 + 7], param0->unk_26C, param0->unk_288, param0->unk_274, param0->unk_278, BattleCastle_IsMultiPlayerChallenge(param0->unk_10)); for (v0 = 0; v0 < 4; v0++) { (void)0; @@ -682,7 +682,7 @@ void ov104_02236FC0(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * GF_ASSERT(param0->unk_A8 == NULL); GF_ASSERT(param0->unk_AC == NULL); - if (ov104_0223BA14(param1->unk_10) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param1->unk_10) == 0) { param0->unk_A8 = Window_New(HEAP_ID_FIELD2, 1); Window_Add(v0->unk_00, param0->unk_A8, 1, 1, 1, 10, 4, 14, (((((1024 - (18 + 12)) - 9) - (27 * 4)) - (11 * 22)) - (10 * 4))); ov104_022370C0(v0->unk_00, param0->unk_A8); @@ -714,7 +714,7 @@ void ov104_022370E0(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * Window *v0; Window *v1; - if (ov104_0223BA14(param1->unk_10) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param1->unk_10) == 0) { GF_ASSERT(param0->unk_A8 != NULL); v0 = param0->unk_A8; Window_EraseStandardFrame(v0, 0); @@ -747,7 +747,7 @@ void ov104_02237180(UnkStruct_ov104_022320B4 *param0, UnkStruct_ov104_0223BA10 * { u16 v0, v1; - if (ov104_0223BA14(param1->unk_10) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param1->unk_10) == 0) { GF_ASSERT(param0->unk_A8 != NULL); v0 = sub_02030698(SaveData_GetBattleFrontier(param1->saveData), sub_0205E630(param1->unk_10), sub_0205E6A8(sub_0205E630(param1->unk_10))); ov104_02237284(param0, param0->unk_A8, SaveData_GetTrainerInfo(param1->saveData), v0); diff --git a/src/overlay104/ov104_02237378.c b/src/overlay104/ov104_02237378.c index acbd2a1864..dcbeb00fda 100644 --- a/src/overlay104/ov104_02237378.c +++ b/src/overlay104/ov104_02237378.c @@ -144,7 +144,7 @@ BOOL FrontierScrCmd_BB(FrontierScriptContext *param0) ov104_02239054(v10->parties[v2], v9->unk_70, 0, 0); ov104_02239054(v10->parties[v2], v9->unk_70, 1, 1); - if (ov104_0223BA14(v9->unk_10) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(v9->unk_10) == 0) { ov104_02239054(v10->parties[v2], v9->unk_70, 2, 2); } else { ov104_02239054(v10->parties[v3], v9->unk_70, 0, 2); diff --git a/src/overlay104/ov104_0223B6F4.c b/src/overlay104/ov104_0223B6F4.c index ed828a6b70..652b70a932 100644 --- a/src/overlay104/ov104_0223B6F4.c +++ b/src/overlay104/ov104_0223B6F4.c @@ -31,7 +31,7 @@ u8 ov104_0223B7DC(u8 param0, BOOL param1); FieldBattleDTO *ov104_0223B810(UnkStruct_ov104_0223BA10 *param0, UnkStruct_ov104_02230BE4 *param1); static u32 ov104_0223B9E4(u8 param0); u8 ov104_0223BA10(UnkStruct_ov104_0223BA10 *param0); -BOOL ov104_0223BA14(u8 param0); +BOOL BattleCastle_IsMultiPlayerChallenge(u8 param0); void ov104_0223BA24(Party *param0); void ov104_0223BAB8(UnkStruct_ov104_0223BA10 *param0); void ov104_0223BA7C(UnkStruct_ov104_0223BA10 *param0, Pokemon *param1); @@ -252,15 +252,9 @@ u8 ov104_0223BA10(UnkStruct_ov104_0223BA10 *param0) return 50; } -BOOL ov104_0223BA14(u8 param0) +BOOL BattleCastle_IsMultiPlayerChallenge(u8 challengeType) { - switch (param0) { - case 2: - case 3: - return 1; - } - - return 0; + return challengeType == 2 || challengeType == 3; } void ov104_0223BA24(Party *param0) @@ -355,7 +349,7 @@ u16 ov104_0223BB60(UnkStruct_ov104_0223BA10 *param0) { u16 v0 = param0->unk_16; - if (ov104_0223BA14(param0->unk_10) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->unk_10) == 1) { if (param0->unk_A12 > param0->unk_16) { v0 = param0->unk_A12; } diff --git a/src/overlay107/battle_castle_app_sprite_manager.c b/src/overlay107/battle_castle_app_sprite_manager.c index d41e394507..887d29e9fd 100644 --- a/src/overlay107/battle_castle_app_sprite_manager.c +++ b/src/overlay107/battle_castle_app_sprite_manager.c @@ -20,11 +20,11 @@ #include "vram_transfer.h" static void InitCharPlttTransferBuffers(void); -static void ov107_02249A70(BattleCastleAppSpriteManager *spriteMan); +static void InitItemIconSpriteResources(BattleCastleAppSpriteManager *spriteMan); static const u8 sCapacities[4] = { NUM_SPRITES, NUM_SPRITES, NUM_SPRITES, NUM_SPRITES }; -void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, Party *party, u8 param2) +void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, Party *party, u8 challengeType) { VramTransfer_New(32, HEAP_ID_BATTLE_CASTLE_APP); InitCharPlttTransferBuffers(); @@ -51,7 +51,7 @@ void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, spriteMan->resources[1][3] = SpriteResourceCollection_AddFrom(spriteMan->resourceCollection[SPRITE_RESOURCE_ANIM], narc, Item_IconNANRFile(), FALSE, 1, SPRITE_RESOURCE_ANIM, HEAP_ID_BATTLE_CASTLE_APP); NARC_dtor(narc); - ov107_02249A70(spriteMan); + InitItemIconSpriteResources(spriteMan); narc = NARC_ctor(NARC_INDEX_POKETOOL__ICONGRA__PL_POKE_ICON, HEAP_ID_BATTLE_CASTLE_APP); @@ -63,7 +63,7 @@ void BattleCastleApp_InitSpriteManager(BattleCastleAppSpriteManager *spriteMan, Pokemon *mon; if (i == 3) { - if (param2 == 0) { + if (challengeType == 0) { mon = Party_GetPokemonBySlotIndex(party, 0); } else { mon = Party_GetPokemonBySlotIndex(party, i); @@ -148,17 +148,17 @@ void BattleCastleApp_FreeSprites(BattleCastleAppSpriteManager *spriteMan) PlttTransfer_Free(); } -void ov107_022499BC(BattleCastleAppSpriteManager *spriteMan, u16 item) +void BattleCastleApp_SetItemGraphic(BattleCastleAppSpriteManager *spriteMan, u16 item) { - SpriteResource *resource = SpriteResourceCollection_Find(spriteMan->resourceCollection[0], 1); + SpriteResource *resource = SpriteResourceCollection_Find(spriteMan->resourceCollection[SPRITE_RESOURCE_CHAR], 1); SpriteResourceCollection_ModifyTiles(spriteMan->resourceCollection[0], resource, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, ITEM_FILE_TYPE_ICON), FALSE, HEAP_ID_BATTLE_CASTLE_APP); SpriteTransfer_RetransferCharData(resource); } -void ov107_022499FC(BattleCastleAppSpriteManager *spriteMan, u16 item) +void BattleCastleApp_SetItemPalette(BattleCastleAppSpriteManager *spriteMan, u16 item) { - SpriteResource *resource = SpriteResourceCollection_Find(spriteMan->resourceCollection[1], 1); + SpriteResource *resource = SpriteResourceCollection_Find(spriteMan->resourceCollection[SPRITE_RESOURCE_PLTT], 1); SpriteResourceCollection_ModifyPalette(spriteMan->resourceCollection[1], resource, NARC_INDEX_ITEMTOOL__ITEMDATA__ITEM_ICON, Item_FileID(item, ITEM_FILE_TYPE_PALETTE), FALSE, HEAP_ID_BATTLE_CASTLE_APP); SpriteTransfer_ReplacePlttData(resource); @@ -175,14 +175,14 @@ static void InitCharPlttTransferBuffers(void) PlttTransfer_Clear(); } -static void ov107_02249A70(BattleCastleAppSpriteManager *spriteMan) +static void InitItemIconSpriteResources(BattleCastleAppSpriteManager *spriteMan) { NARC *narc = NARC_ctor(NARC_INDEX_GRAPHIC__PL_PLIST_GRA, HEAP_ID_BATTLE_CASTLE_APP); - spriteMan->resources[2][0] = SpriteResourceCollection_AddTilesFrom(spriteMan->resourceCollection[0], narc, sub_02081930(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_BATTLE_CASTLE_APP); - spriteMan->resources[2][1] = SpriteResourceCollection_AddPalette(spriteMan->resourceCollection[1], NARC_INDEX_GRAPHIC__PL_PLIST_GRA, sub_02081934(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 3, HEAP_ID_BATTLE_CASTLE_APP); - spriteMan->resources[2][2] = SpriteResourceCollection_AddFrom(spriteMan->resourceCollection[2], narc, sub_02081938(), FALSE, 2, SPRITE_RESOURCE_CELL, HEAP_ID_BATTLE_CASTLE_APP); - spriteMan->resources[2][3] = SpriteResourceCollection_AddFrom(spriteMan->resourceCollection[3], narc, sub_0208193C(), FALSE, 2, SPRITE_RESOURCE_ANIM, HEAP_ID_BATTLE_CASTLE_APP); + spriteMan->resources[2][0] = SpriteResourceCollection_AddTilesFrom(spriteMan->resourceCollection[SPRITE_RESOURCE_CHAR], narc, sub_02081930(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, HEAP_ID_BATTLE_CASTLE_APP); + spriteMan->resources[2][1] = SpriteResourceCollection_AddPalette(spriteMan->resourceCollection[SPRITE_RESOURCE_PLTT], NARC_INDEX_GRAPHIC__PL_PLIST_GRA, sub_02081934(), FALSE, 2, NNS_G2D_VRAM_TYPE_2DMAIN, 3, HEAP_ID_BATTLE_CASTLE_APP); + spriteMan->resources[2][2] = SpriteResourceCollection_AddFrom(spriteMan->resourceCollection[SPRITE_RESOURCE_CELL], narc, sub_02081938(), FALSE, 2, SPRITE_RESOURCE_CELL, HEAP_ID_BATTLE_CASTLE_APP); + spriteMan->resources[2][3] = SpriteResourceCollection_AddFrom(spriteMan->resourceCollection[SPRITE_RESOURCE_ANIM], narc, sub_0208193C(), FALSE, 2, SPRITE_RESOURCE_ANIM, HEAP_ID_BATTLE_CASTLE_APP); NARC_dtor(narc); } diff --git a/src/overlay107/battle_castle_app_windows.c b/src/overlay107/battle_castle_app_windows.c index 484c4ba58d..a99bf063c7 100644 --- a/src/overlay107/battle_castle_app_windows.c +++ b/src/overlay107/battle_castle_app_windows.c @@ -9,54 +9,54 @@ #define BASE_TILE_WINDOW_FRAME (1024 - STANDARD_WINDOW_TILE_COUNT) -static const WindowTemplate Unk_ov107_0224A288[] = { - { BG_LAYER_MAIN_1, 2, 1, 29, 2, 13, 1 }, - { BG_LAYER_MAIN_1, 26, 19, 4, 3, 13, 59 }, - { BG_LAYER_MAIN_1, 0, 4, 32, 2, 13, 71 }, - { BG_LAYER_MAIN_1, 0, 9, 32, 2, 13, 135 }, - { BG_LAYER_MAIN_0, 5, 10, 24, 14, 13, 1 }, - { BG_LAYER_MAIN_0, 12, 2, 19, 12, 13, 1 }, - { BG_LAYER_MAIN_0, 2, 19, 27, 4, 12, 337 }, - { BG_LAYER_MAIN_0, 2, 19, 20, 4, 12, 445 }, - { BG_LAYER_MAIN_0, 2, 19, 17, 4, 12, 525 }, - { BG_LAYER_MAIN_0, 23, 13, 8, 10, 13, 593 }, - { BG_LAYER_MAIN_0, 20, 7, 11, 10, 13, 673 }, - { BG_LAYER_MAIN_0, 22, 9, 9, 8, 13, 673 }, - { BG_LAYER_MAIN_0, 5, 16, 27, 7, 12, 445 }, - { BG_LAYER_MAIN_0, 24, 13, 7, 4, 13, 634 }, - { BG_LAYER_MAIN_0, 24, 11, 7, 6, 13, 662 }, - { BG_LAYER_MAIN_0, 1, 1, 8, 4, 13, 704 }, - { BG_LAYER_MAIN_0, 1, 7, 10, 2, 13, 736 }, - { BG_LAYER_MAIN_0, 1, 13, 11, 2, 13, 756 } +static const WindowTemplate sSelfAppWinTemplates[] = { + { BG_LAYER_MAIN_1, .tilemapLeft = 2, .tilemapTop = 1, .width = 29, .height = 2, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 26, .tilemapTop = 19, .width = 4, .height = 3, .palette = 13, .baseTile = 59 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 0, .tilemapTop = 4, .width = 32, .height = 2, .palette = 13, .baseTile = 71 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 0, .tilemapTop = 9, .width = 32, .height = 2, .palette = 13, .baseTile = 135 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 5, .tilemapTop = 10, .width = 24, .height = 14, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 12, .tilemapTop = 2, .width = 19, .height = 12, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 27, .height = 4, .palette = 12, .baseTile = 337 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 20, .height = 4, .palette = 12, .baseTile = 445 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 17, .height = 4, .palette = 12, .baseTile = 525 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 23, .tilemapTop = 13, .width = 8, .height = 10, .palette = 13, .baseTile = 593 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 20, .tilemapTop = 7, .width = 11, .height = 10, .palette = 13, .baseTile = 673 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 22, .tilemapTop = 9, .width = 9, .height = 8, .palette = 13, .baseTile = 673 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 5, .tilemapTop = 16, .width = 27, .height = 7, .palette = 12, .baseTile = 445 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 24, .tilemapTop = 13, .width = 7, .height = 4, .palette = 13, .baseTile = 634 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 24, .tilemapTop = 11, .width = 7, .height = 6, .palette = 13, .baseTile = 662 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 1, .tilemapTop = 1, .width = 8, .height = 4, .palette = 13, .baseTile = 704 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 1, .tilemapTop = 7, .width = 10, .height = 2, .palette = 13, .baseTile = 736 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 1, .tilemapTop = 13, .width = 11, .height = 2, .palette = 13, .baseTile = 756 } }; -static const WindowTemplate Unk_ov107_0224A228[] = { - { BG_LAYER_MAIN_1, 2, 1, 29, 2, 13, 1 }, - { BG_LAYER_MAIN_1, 26, 19, 4, 3, 13, 59 }, - { BG_LAYER_MAIN_1, 0, 4, 32, 2, 13, 71 }, - { BG_LAYER_MAIN_1, 0, 9, 32, 2, 13, 135 }, - { BG_LAYER_MAIN_0, 4, 10, 26, 14, 13, 1 }, - { BG_LAYER_MAIN_0, 23, 15, 8, 8, 13, 1 }, - { BG_LAYER_MAIN_0, 22, 9, 9, 8, 13, 365 }, - { BG_LAYER_MAIN_0, 2, 19, 27, 4, 12, 437 }, - { BG_LAYER_MAIN_0, 2, 19, 20, 4, 12, 545 }, - { BG_LAYER_MAIN_0, 2, 19, 17, 4, 12, 625 }, - { BG_LAYER_MAIN_0, 24, 13, 7, 4, 13, 693 }, - { BG_LAYER_MAIN_0, 24, 11, 7, 6, 13, 721 } +static const WindowTemplate sOpponentAppWinTemplates[] = { + { BG_LAYER_MAIN_1, .tilemapLeft = 2, .tilemapTop = 1, .width = 29, .height = 2, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 26, .tilemapTop = 19, .width = 4, .height = 3, .palette = 13, .baseTile = 59 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 0, .tilemapTop = 4, .width = 32, .height = 2, .palette = 13, .baseTile = 71 }, + { BG_LAYER_MAIN_1, .tilemapLeft = 0, .tilemapTop = 9, .width = 32, .height = 2, .palette = 13, .baseTile = 135 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 4, .tilemapTop = 10, .width = 26, .height = 14, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 23, .tilemapTop = 15, .width = 8, .height = 8, .palette = 13, .baseTile = 1 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 22, .tilemapTop = 9, .width = 9, .height = 8, .palette = 13, .baseTile = 365 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 27, .height = 4, .palette = 12, .baseTile = 437 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 20, .height = 4, .palette = 12, .baseTile = 545 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 2, .tilemapTop = 19, .width = 17, .height = 4, .palette = 12, .baseTile = 625 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 24, .tilemapTop = 13, .width = 7, .height = 4, .palette = 13, .baseTile = 693 }, + { BG_LAYER_MAIN_0, .tilemapLeft = 24, .tilemapTop = 11, .width = 7, .height = 6, .palette = 13, .baseTile = 721 } }; static const struct { const WindowTemplate *templates; u32 numTemplates; } sWinTemplates[2] = { - { Unk_ov107_0224A288, 18 }, - { Unk_ov107_0224A228, 12 } + { sSelfAppWinTemplates, 18 }, + { sOpponentAppWinTemplates, 12 } }; -void BattleCastleApp_InitWindows(BgConfig *bgConfigs, Window *windows, u8 param2) +void BattleCastleApp_InitWindows(BgConfig *bgConfigs, Window *windows, u8 isOpponentApp) { - const WindowTemplate *v1 = sWinTemplates[param2].templates; - u32 numTemplates = sWinTemplates[param2].numTemplates; + const WindowTemplate *v1 = sWinTemplates[isOpponentApp].templates; + u32 numTemplates = sWinTemplates[isOpponentApp].numTemplates; for (u8 i = 0; i < numTemplates; i++) { Window_AddFromTemplate(bgConfigs, &windows[i], &v1[i]); @@ -64,10 +64,10 @@ void BattleCastleApp_InitWindows(BgConfig *bgConfigs, Window *windows, u8 param2 } } -void BattleCastleApp_FreeWindows(Window *windows, u8 param1) +void BattleCastleApp_FreeWindows(Window *windows, u8 isOpponentApp) { u16 i; - u32 numTemplates = sWinTemplates[param1].numTemplates; + u32 numTemplates = sWinTemplates[isOpponentApp].numTemplates; for (i = 0; i < numTemplates; i++) { Window_Remove(&windows[i]); diff --git a/src/overlay107/ov107_02245EB0.c b/src/overlay107/battle_castle_opponent_app.c similarity index 55% rename from src/overlay107/ov107_02245EB0.c rename to src/overlay107/battle_castle_opponent_app.c index 7cba37a4e9..ee21c27bcc 100644 --- a/src/overlay107/ov107_02245EB0.c +++ b/src/overlay107/battle_castle_opponent_app.c @@ -1,8 +1,10 @@ -#include "overlay107/ov107_02245EB0.h" +#include "overlay107/battle_castle_opponent_app.h" #include #include +#include "constants/graphics.h" + #include "struct_decls/struct_020302DC_decl.h" #include "struct_decls/struct_0203041C_decl.h" #include "struct_defs/battle_frontier.h" @@ -14,7 +16,6 @@ #include "overlay107/battle_castle_app_sprite_manager.h" #include "overlay107/battle_castle_app_windows.h" #include "overlay107/ov107_02249C98.h" -#include "overlay107/struct_ov107_02246170_decl.h" #include "bg_window.h" #include "communication_information.h" @@ -30,6 +31,7 @@ #include "menu.h" #include "message.h" #include "narc.h" +#include "narc_frontier_bg.h" #include "overlay_manager.h" #include "palette.h" #include "party.h" @@ -58,11 +60,11 @@ FS_EXTERN_OVERLAY(overlay104); -struct UnkStruct_ov107_02246170_t { +typedef struct BattleCastleOpponentApp { ApplicationManager *appMan; BattleFrontier *frontier; - u8 unk_08; - u8 unk_09; + u8 subState; + u8 challengeType; u8 unk_0A; u8 unk_0B; u8 unk_0C; @@ -84,32 +86,32 @@ struct UnkStruct_ov107_02246170_t { u16 unk_1A; u16 unk_1C; u16 unk_1E; - MessageLoader *unk_20; - StringTemplate *unk_24; - String *unk_28; - String *unk_2C; + MessageLoader *msgLoader; + StringTemplate *strTemplate; + String *displayStr; + String *fmtStr; String *unk_30[3]; u16 unk_3C[8]; - BgConfig *unk_4C; - Window unk_50[12]; + BgConfig *bgConfig; + Window windows[12]; MenuTemplate unk_110; Menu *unk_11C; StringList unk_120[3]; ListMenu *unk_138; StringList *unk_13C; - PaletteData *unk_140; - FontSpecialCharsContext *unk_144; + PaletteData *plttData; + FontSpecialCharsContext *specialChars; Options *options; SaveData *saveData; UnkStruct_020302DC *unk_150; UnkStruct_0203041C *unk_154; - BattleCastleAppSpriteManager unk_158; - BattleCastleAppSprite *unk_368[4]; - BattleCastleAppSprite *unk_378[4]; + BattleCastleAppSpriteManager spriteMan; + BattleCastleAppSprite *monSprites[4]; + BattleCastleAppSprite *ballSprites[4]; BattleCastleAppSprite *unk_388; - BattleCastleAppSprite *unk_38C; + BattleCastleAppSprite *cursorSprite; BattleCastleAppSprite *unk_390; - BattleCastleAppSprite *unk_394[4]; + BattleCastleAppSprite *barSprites[4]; BattleCastleAppSprite *unk_3A4[4][2]; BattleCastleAppSprite *unk_3C4; u16 *unk_3C8; @@ -118,7 +120,7 @@ struct UnkStruct_ov107_02246170_t { u8 *unk_3D4; u8 *unk_3D8; Party *unk_3DC; - NARC *unk_3E0; + NARC *narc; u16 unk_3E4[40]; u8 unk_434; u8 unk_435; @@ -126,166 +128,166 @@ struct UnkStruct_ov107_02246170_t { u8 unk_437[3]; u16 unk_43A; u32 unk_43C; -}; - -static BOOL ov107_02246170(UnkStruct_ov107_02246170 *param0); -static void ov107_02246274(UnkStruct_ov107_02246170 *param0); -static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0); -static BOOL ov107_02246BDC(UnkStruct_ov107_02246170 *param0); -static BOOL ov107_02246CD0(UnkStruct_ov107_02246170 *param0); -static BOOL ov107_02246D3C(UnkStruct_ov107_02246170 *param0); -static void ov107_02246D84(UnkStruct_ov107_02246170 *param0); -static void ov107_02246EAC(void); -static void ov107_02246EE4(UnkStruct_ov107_02246170 *param0); -static void ov107_02247280(UnkStruct_ov107_02246170 *param0); -static void ov107_02247220(UnkStruct_ov107_02246170 *param0); -static void ov107_022472A4(BgConfig *param0); -static void ov107_022472E8(void *param0); -static void ov107_02247320(void); -static void ov107_02247340(BgConfig *param0); -static void ov107_02247484(UnkStruct_ov107_02246170 *param0, u32 param1); -static void ov107_022474F8(void); -static void ov107_0224752C(UnkStruct_ov107_02246170 *param0, u32 param1); -static void ov107_022475A8(UnkStruct_ov107_02246170 *param0, u32 param1); -static void ov107_02247574(void); -static void ov107_022475F0(UnkStruct_ov107_02246170 *param0, u32 param1); -static u8 ov107_02247650(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); -static u8 ov107_02247680(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); -static u8 ov107_02247714(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); -static u8 ov107_02247744(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); -static u8 ov107_022477CC(UnkStruct_ov107_02246170 *param0, int param1, u8 param2); -static void ov107_02247804(UnkStruct_ov107_02246170 *param0, Window *param1, Pokemon *param2); -static void ov107_02247A14(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u16 param3, u16 param4, u32 param5); -static void ov107_02247A3C(UnkStruct_ov107_02246170 *param0, Window *param1, Pokemon *param2); -static void ov107_02247AD0(UnkStruct_ov107_02246170 *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8); -static void ov107_02247B78(UnkStruct_ov107_02246170 *param0, Window *param1); -static void ov107_02247C64(UnkStruct_ov107_02246170 *param0, Window *param1); -static void ov107_02247D04(UnkStruct_ov107_02246170 *param0, Window *param1, u8 param2); -static void ov107_02247D68(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2, int param3); -static void ov107_02247D94(UnkStruct_ov107_02246170 *param0); -static void ov107_02247DF0(UnkStruct_ov107_02246170 *param0); -static void ov107_02247E5C(UnkStruct_ov107_02246170 *param0); +} BattleCastleOpponentApp; + +static BOOL State_FadeInApp(BattleCastleOpponentApp *app); +static void ov107_02246274(BattleCastleOpponentApp *param0); +static BOOL ov107_022462CC(BattleCastleOpponentApp *param0); +static BOOL ov107_02246BDC(BattleCastleOpponentApp *param0); +static BOOL ov107_02246CD0(BattleCastleOpponentApp *param0); +static BOOL State_FadeOutApp(BattleCastleOpponentApp *app); +static void FreeAssets(BattleCastleOpponentApp *app); +static void InitGraphicsPlane(void); +static void LoadAssets(BattleCastleOpponentApp *app); +static void InitSpriteManager(BattleCastleOpponentApp *app); +static void LoadBackgrounds(BattleCastleOpponentApp *app); +static void FreeBackgrounds(BgConfig *bgConfig); +static void VBlankCallback(void *data); +static void SetGXBanks(void); +static void InitBackgrounds(BgConfig *bgConfig); +static void LoadMainBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer); +static void LoadPalette(void); +static void LoadSummaryBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer); +static void LoadMovesListBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer); +static void LoadPalette2(void); +static void LoadSubScreenBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer); +static u8 ov107_02247650(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); +static u8 ov107_02247680(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); +static u8 ov107_02247714(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); +static u8 ov107_02247744(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); +static u8 ov107_022477CC(BattleCastleOpponentApp *param0, int param1, u8 param2); +static void ov107_02247804(BattleCastleOpponentApp *param0, Window *param1, Pokemon *param2); +static void ov107_02247A14(BattleCastleOpponentApp *param0, Window *param1, int param2, u16 param3, u16 param4, u32 param5); +static void ov107_02247A3C(BattleCastleOpponentApp *param0, Window *param1, Pokemon *param2); +static void ov107_02247AD0(BattleCastleOpponentApp *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8); +static void ov107_02247B78(BattleCastleOpponentApp *param0, Window *param1); +static void ov107_02247C64(BattleCastleOpponentApp *param0, Window *param1); +static void ov107_02247D04(BattleCastleOpponentApp *param0, Window *param1, u8 param2); +static void ov107_02247D68(BattleCastleOpponentApp *param0, u8 param1, u8 param2, int param3); +static void ov107_02247D94(BattleCastleOpponentApp *param0); +static void ov107_02247DF0(BattleCastleOpponentApp *param0); +static void ov107_02247E5C(BattleCastleOpponentApp *param0); static void ov107_02247F14(ListMenu *param0, u32 param1, u8 param2); -static void ov107_02247F6C(UnkStruct_ov107_02246170 *param0); +static void ov107_02247F6C(BattleCastleOpponentApp *param0); static void ov107_02248028(ListMenu *param0, u32 param1, u8 param2); static void ov107_022480A0(ListMenu *param0, u32 param1, u8 param2); -static void ov107_022480EC(UnkStruct_ov107_02246170 *param0, u32 param1, s32 param2, u32 param3, int param4); -static void ov107_02248104(UnkStruct_ov107_02246170 *param0, u32 param1, BoxPokemon *param2); -static void ov107_02248110(UnkStruct_ov107_02246170 *param0, u32 param1); -static void ov107_0224812C(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4); -static void ov107_02248194(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4); -static void ov107_022481FC(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5); -static void ov107_02248240(UnkStruct_ov107_02246170 *param0); -static void ov107_022482A4(UnkStruct_ov107_02246170 *param0); -static void ov107_022482B0(UnkStruct_ov107_02246170 *param0); -static void ov107_022482D4(UnkStruct_ov107_02246170 *param0); -static void ov107_022482FC(UnkStruct_ov107_02246170 *param0); -static void ov107_02248348(UnkStruct_ov107_02246170 *param0); -static void ov107_02248350(UnkStruct_ov107_02246170 *param0, int *param1, int param2); -static void ov107_02248358(UnkStruct_ov107_02246170 *param0, int param1); -static void ov107_022483F0(UnkStruct_ov107_02246170 *param0); -static void ov107_02248420(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); -static void ov107_02248488(UnkStruct_ov107_02246170 *param0, u32 *param1, u32 *param2, u8 param3); -static void ov107_022484DC(UnkStruct_ov107_02246170 *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4); -static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); -static BOOL ov107_02248674(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); +static void ov107_022480EC(BattleCastleOpponentApp *param0, u32 param1, s32 param2, u32 param3, int param4); +static void ov107_02248104(BattleCastleOpponentApp *param0, u32 param1, BoxPokemon *param2); +static void ov107_02248110(BattleCastleOpponentApp *param0, u32 param1); +static void ov107_0224812C(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4); +static void ov107_02248194(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4); +static void ov107_022481FC(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5); +static void ov107_02248240(BattleCastleOpponentApp *param0); +static void ov107_022482A4(BattleCastleOpponentApp *param0); +static void ov107_022482B0(BattleCastleOpponentApp *param0); +static void ov107_022482D4(BattleCastleOpponentApp *param0); +static void ov107_022482FC(BattleCastleOpponentApp *param0); +static void ov107_02248348(BattleCastleOpponentApp *param0); +static void ChangeState(BattleCastleOpponentApp *app, int *state, int newState); +static void ov107_02248358(BattleCastleOpponentApp *param0, int param1); +static void ov107_022483F0(BattleCastleOpponentApp *param0); +static void ov107_02248420(BattleCastleOpponentApp *param0, u8 param1, u8 param2); +static void GetCursorSpritePos(BattleCastleOpponentApp *app, u32 *x, u32 *y, u8 slot); +static void ov107_022484DC(BattleCastleOpponentApp *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4); +static BOOL ov107_0224850C(BattleCastleOpponentApp *param0, u8 param1, u8 param2); +static BOOL ov107_02248674(BattleCastleOpponentApp *param0, u8 param1, u8 param2); static u16 ov107_02248770(u8 param0); -static void ov107_0224877C(UnkStruct_ov107_02246170 *param0, s8 param1); -static void ov107_022487DC(UnkStruct_ov107_02246170 *param0, s8 param1); -static void ov107_0224883C(UnkStruct_ov107_02246170 *param0); +static void ov107_0224877C(BattleCastleOpponentApp *param0, s8 param1); +static void ov107_022487DC(BattleCastleOpponentApp *param0, s8 param1); +static void ov107_0224883C(BattleCastleOpponentApp *param0); static void ov107_02248860(Window *param0); -BOOL ov107_02248874(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2); -void ov107_022488CC(UnkStruct_ov107_02246170 *param0, u16 param1); +BOOL ov107_02248874(BattleCastleOpponentApp *param0, u16 param1, u16 param2); +void ov107_022488CC(BattleCastleOpponentApp *param0, u16 param1); void ov107_02248910(int param0, int param1, void *param2, void *param3); -void ov107_02248940(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2); -void ov107_022489D0(UnkStruct_ov107_02246170 *param0, u16 param1); +void ov107_02248940(BattleCastleOpponentApp *param0, u16 param1, u16 param2); +void ov107_022489D0(BattleCastleOpponentApp *param0, u16 param1); void ov107_022489E0(int param0, int param1, void *param2, void *param3); -void ov107_02248A04(UnkStruct_ov107_02246170 *param0); +void ov107_02248A04(BattleCastleOpponentApp *param0); void ov107_02248A10(int param0, int param1, void *param2, void *param3); -static void ov107_02248A2C(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248A74(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248A8C(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248AF0(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248B38(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248B50(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248BB4(UnkStruct_ov107_02246170 *param0); -static void ov107_02248BEC(UnkStruct_ov107_02246170 *param0); -static void ov107_02248C08(UnkStruct_ov107_02246170 *param0, Window *param1); -static void ov107_02248E54(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_02248E84(UnkStruct_ov107_02246170 *param0, Window *param1); -static void ov107_02248F18(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); -static void ov107_02249024(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_022490E8(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); -static void ov107_02249238(UnkStruct_ov107_02246170 *param0); -static void ov107_02249258(UnkStruct_ov107_02246170 *param0); -static void ov107_022492A8(UnkStruct_ov107_02246170 *param0); -static BOOL ov107_0224933C(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2); -static void ov107_022493CC(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2); -static void ov107_02249580(UnkStruct_ov107_02246170 *param0); -static void ov107_022495A8(UnkStruct_ov107_02246170 *param0, u8 param1); -static void ov107_022495E4(UnkStruct_ov107_02246170 *param0, u32 *param1, u32 *param2); +static void ov107_02248A2C(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248A74(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248A8C(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248AF0(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248B38(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248B50(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248BB4(BattleCastleOpponentApp *param0); +static void ov107_02248BEC(BattleCastleOpponentApp *param0); +static void ov107_02248C08(BattleCastleOpponentApp *param0, Window *param1); +static void ov107_02248E54(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_02248E84(BattleCastleOpponentApp *param0, Window *param1); +static void ov107_02248F18(BattleCastleOpponentApp *param0, u8 param1, u8 param2); +static void ov107_02249024(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_022490E8(BattleCastleOpponentApp *param0, u8 param1, u8 param2); +static void ov107_02249238(BattleCastleOpponentApp *param0); +static void ov107_02249258(BattleCastleOpponentApp *param0); +static void ov107_022492A8(BattleCastleOpponentApp *param0); +static BOOL ov107_0224933C(BattleCastleOpponentApp *param0, u16 param1, u16 param2); +static void ov107_022493CC(BattleCastleOpponentApp *param0, u8 param1, u8 param2); +static void ov107_02249580(BattleCastleOpponentApp *param0); +static void ov107_022495A8(BattleCastleOpponentApp *param0, u8 param1); +static void ov107_022495E4(BattleCastleOpponentApp *param0, u32 *param1, u32 *param2); extern void ov107_2247650(void); -int ov107_02245EB0(ApplicationManager *appMan, int *param1) +BOOL BattleCastleOpponentApp_Init(ApplicationManager *appMan, int *state) { - Overlay_LoadByID(FS_OVERLAY_ID(overlay104), 2); - ov107_02246EAC(); + Overlay_LoadByID(FS_OVERLAY_ID(overlay104), OVERLAY_LOAD_ASYNC); + InitGraphicsPlane(); Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_BATTLE_CASTLE_APP, 0x20000); - UnkStruct_ov107_02246170 *v1 = ApplicationManager_NewData(appMan, sizeof(UnkStruct_ov107_02246170), HEAP_ID_BATTLE_CASTLE_APP); - memset(v1, 0, sizeof(UnkStruct_ov107_02246170)); + BattleCastleOpponentApp *app = ApplicationManager_NewData(appMan, sizeof(BattleCastleOpponentApp), HEAP_ID_BATTLE_CASTLE_APP); + memset(app, 0, sizeof(BattleCastleOpponentApp)); - v1->unk_4C = BgConfig_New(HEAP_ID_BATTLE_CASTLE_APP); - v1->appMan = appMan; + app->bgConfig = BgConfig_New(HEAP_ID_BATTLE_CASTLE_APP); + app->appMan = appMan; UnkStruct_ov104_0223597C *v2 = ApplicationManager_Args(appMan); - v1->saveData = v2->saveData; - v1->unk_150 = sub_020302DC(v1->saveData); - v1->unk_154 = sub_0203041C(v1->saveData); - v1->unk_09 = v2->unk_04; - v1->unk_3C8 = &v2->unk_20; - v1->options = SaveData_GetOptions(v1->saveData); - v1->unk_3DC = v2->unk_1C; - v1->unk_3CC = &v2->unk_08[0]; - v1->unk_3D0 = &v2->unk_0C[0]; - v1->unk_3D4 = &v2->unk_10[0]; - v1->unk_3D8 = &v2->unk_14[0]; - v1->unk_11 = 0xff; - v1->unk_43A = v2->unk_28; - v1->frontier = SaveData_GetBattleFrontier(v1->saveData); + app->saveData = v2->saveData; + app->unk_150 = sub_020302DC(app->saveData); + app->unk_154 = sub_0203041C(app->saveData); + app->challengeType = v2->unk_04; + app->unk_3C8 = &v2->unk_20; + app->options = SaveData_GetOptions(app->saveData); + app->unk_3DC = v2->unk_1C; + app->unk_3CC = &v2->unk_08[0]; + app->unk_3D0 = &v2->unk_0C[0]; + app->unk_3D4 = &v2->unk_10[0]; + app->unk_3D8 = &v2->unk_14[0]; + app->unk_11 = 0xff; + app->unk_43A = v2->unk_28; + app->frontier = SaveData_GetBattleFrontier(app->saveData); for (int v0 = 0; v0 < 3; v0++) { - v1->unk_437[v0] = 1; + app->unk_437[v0] = 1; } - if (ov104_0223BA14(v1->unk_09) == 0) { - v1->unk_14 = 3; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == FALSE) { + app->unk_14 = 3; } else { - v1->unk_14 = 4; + app->unk_14 = 4; } - v1->unk_15 = v1->unk_14; - v1->unk_0C = v1->unk_15 - 1; - v1->unk_434 = 0; + app->unk_15 = app->unk_14; + app->unk_0C = app->unk_15 - 1; + app->unk_434 = 0; - ov107_02246EE4(v1); + LoadAssets(app); - if (ov104_0223BA14(v1->unk_09) == 1) { - sub_0209BA80(v1); + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + sub_0209BA80(app); } - *param1 = 0; + *state = 0; - return 1; + return TRUE; } -int ov107_02245FD0(ApplicationManager *appMan, int *param1) +BOOL BattleCastleOpponentApp_Main(ApplicationManager *appMan, int *state) { - UnkStruct_ov107_02246170 *v0 = ApplicationManager_Data(appMan); + BattleCastleOpponentApp *v0 = ApplicationManager_Data(appMan); if (v0->unk_436 == 1) { - switch (*param1) { + switch (*state) { case 1: v0->unk_436 = 0; ov107_0224883C(v0); @@ -296,177 +298,177 @@ int ov107_02245FD0(ApplicationManager *appMan, int *param1) v0->unk_0F_0 = 0; } - BattleCastleApp_DrawMessageBox(&v0->unk_50[7], Options_Frame(v0->options)); - BattleFrontier_SetPartnerInStrTemplate(v0->unk_24, 0); + BattleCastleApp_DrawMessageBox(&v0->windows[7], Options_Frame(v0->options)); + BattleFrontier_SetPartnerInStrTemplate(v0->strTemplate, 0); v0->unk_0A = ov107_022477CC(v0, 7, FONT_MESSAGE); - ov107_02248350(v0, param1, 3); + ChangeState(v0, state, 3); break; } } else if (v0->unk_11 != 0xff) { - switch (*param1) { + switch (*state) { case 1: case 3: v0->unk_436 = 0; ov107_0224883C(v0); ov107_02249238(v0); - ov107_02248350(v0, param1, 2); + ChangeState(v0, state, 2); break; } } - switch (*param1) { + switch (*state) { case 0: - if (ov107_02246170(v0) == 1) { - ov107_02248350(v0, param1, 1); + if (State_FadeInApp(v0) == 1) { + ChangeState(v0, state, 1); } break; case 1: if (ov107_022462CC(v0) == 1) { if (v0->unk_10 == 1) { - ov107_02248350(v0, param1, 2); + ChangeState(v0, state, 2); } else { - if (ov104_0223BA14(v0->unk_09) == 1) { - ov107_02248350(v0, param1, 3); + if (BattleCastle_IsMultiPlayerChallenge(v0->challengeType) == 1) { + ChangeState(v0, state, 3); } else { - ov107_02248350(v0, param1, 4); + ChangeState(v0, state, 4); } } } break; case 2: if (ov107_02246BDC(v0) == 1) { - ov107_02248350(v0, param1, 1); + ChangeState(v0, state, 1); } break; case 3: if (ov107_02246CD0(v0) == 1) { - ov107_02248350(v0, param1, 4); + ChangeState(v0, state, 4); } break; case 4: - if (ov107_02246D3C(v0) == 1) { + if (State_FadeOutApp(v0) == 1) { return 1; } break; } ov107_022492A8(v0); - SpriteList_Update(v0->unk_158.spriteList); + SpriteList_Update(v0->spriteMan.spriteList); return 0; } -int ov107_02246130(ApplicationManager *appMan, int *param1) +BOOL BattleCastleOpponentApp_Exit(ApplicationManager *appMan, int *state) { - UnkStruct_ov107_02246170 *v1 = ApplicationManager_Data(appMan); + BattleCastleOpponentApp *app = ApplicationManager_Data(appMan); - *v1->unk_3C8 = v1->unk_0D; + *app->unk_3C8 = app->unk_0D; VramTransfer_Free(); - ov107_02246D84(v1); + FreeAssets(app); ApplicationManager_FreeData(appMan); SetVBlankCallback(NULL, NULL); Heap_Destroy(HEAP_ID_BATTLE_CASTLE_APP); Overlay_UnloadByID(FS_OVERLAY_ID(overlay104)); - return 1; + return TRUE; } -static BOOL ov107_02246170(UnkStruct_ov107_02246170 *param0) +static BOOL State_FadeInApp(BattleCastleOpponentApp *app) { - switch (param0->unk_08) { + switch (app->subState) { case 0: - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(216); } - param0->unk_08++; + app->subState++; break; case 1: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (CommTiming_IsSyncState(216) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (CommTiming_IsSyncState(216) == TRUE) { CommTool_ClearReceivedTempDataAllPlayers(); - param0->unk_08++; + app->subState++; } } else { - param0->unk_08++; + app->subState++; } break; case 2: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (ov107_02248874(param0, 20, 0) == 1) { - param0->unk_08++; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (ov107_02248874(app, 20, 0) == TRUE) { + app->subState++; } } else { - ov107_02246274(param0); - StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 1 * 3, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + ov107_02246274(app); + StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 3, HEAP_ID_BATTLE_CASTLE_APP); + app->subState++; } break; case 3: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (param0->unk_17 >= 2) { - param0->unk_17 = 0; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (app->unk_17 >= 2) { + app->unk_17 = 0; - ov107_02246274(param0); - StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 1 * 3, HEAP_ID_BATTLE_CASTLE_APP); + ov107_02246274(app); + StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 3, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + app->subState++; } } else { - param0->unk_08++; + app->subState++; } break; case 4: if (IsScreenFadeDone() == TRUE) { - return 1; + return TRUE; } break; } - return 0; + return FALSE; } -static void ov107_02246274(UnkStruct_ov107_02246170 *param0) +static void ov107_02246274(BattleCastleOpponentApp *param0) { u16 v2, v3, v4, v5; ov107_022484DC(param0, &v2, &v3, &v4, &v5); - Window *v8 = ¶m0->unk_50[0]; + Window *v8 = ¶m0->windows[0]; Window_FillTilemap(v8, 0); ov107_02248E84(param0, v8); ov107_02248C08(param0, v8); - ov107_02247B78(param0, ¶m0->unk_50[3]); - ov107_02247C64(param0, ¶m0->unk_50[2]); + ov107_02247B78(param0, ¶m0->windows[3]); + ov107_02247C64(param0, ¶m0->windows[2]); ov107_02248240(param0); GXLayers_TurnBothDispOn(); } -static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) +static BOOL ov107_022462CC(BattleCastleOpponentApp *param0) { u16 v1, v2; u32 v6, v7; - switch (param0->unk_08) { + switch (param0->subState) { case 0: param0->unk_0B = 0; - param0->unk_08 = 1; + param0->subState = 1; if (param0->unk_0F_3 == 1) { - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_02248240(param0); } else if (param0->unk_0F_3 == 2) { - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_022482FC(param0); ov107_02249C60(param0->unk_3C4, 211, 105); - param0->unk_08 = 6; + param0->subState = 6; } else if (param0->unk_0F_3 == 3) { - param0->unk_08 = 13; + param0->subState = 13; } param0->unk_0F_3 = 0; @@ -482,7 +484,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) } else { ov107_022482A4(param0); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } } else if (gSystem.pressedKeys & PAD_BUTTON_B) { @@ -505,7 +507,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0xfffffffe: ov107_022482D4(param0); ov107_02248240(param0); - param0->unk_08 = 0; + param0->subState = 0; break; case 0: param0->unk_13 = v7; @@ -517,7 +519,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) ov107_022480EC(param0, 0, 1, 4, 0); param0->unk_0A = ov107_022477CC(param0, 16, FONT_MESSAGE); ov107_02247D94(param0); - param0->unk_08 = 3; + param0->subState = 3; } else { ov107_022482D4(param0); @@ -527,7 +529,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) ov107_02248104(param0, 0, Pokemon_GetBoxPokemon(v8)); param0->unk_0A = ov107_022477CC(param0, 20, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; } break; case 1: @@ -541,17 +543,17 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) param0->unk_0A = ov107_022477CC(param0, 21, FONT_MESSAGE); ov107_02247DF0(param0); - param0->unk_08 = 4; + param0->subState = 4; break; case 2: ov107_022482D4(param0); ov107_022482FC(param0); - param0->unk_08 = 6; + param0->subState = 6; break; case 6: ov107_022482D4(param0); ov107_02248240(param0); - param0->unk_08 = 0; + param0->subState = 0; break; } break; @@ -563,22 +565,22 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) break; case 0: ov107_02248BB4(param0); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); if (v1 < 1) { ov107_02248BEC(param0); param0->unk_0A = ov107_022477CC(param0, 28, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; break; } - if (ov104_0223BA14(param0->unk_09) == 0) { - ov104_0223BC2C(param0->frontier, param0->unk_09, 1); - ov107_02248C08(param0, ¶m0->unk_50[0]); + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { + ov104_0223BC2C(param0->frontier, param0->challengeType, 1); + ov107_02248C08(param0, ¶m0->windows[0]); ov107_02249024(param0, param0->unk_0D); - param0->unk_08 = 11; + param0->subState = 11; } else { param0->unk_10 = 1; return 1; @@ -587,9 +589,9 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 1: case 0xfffffffe: ov107_02248BB4(param0); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } break; @@ -601,38 +603,38 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) break; case 0: ov107_02248BB4(param0); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); if (param0->unk_3D0[ov107_02249C98(param0->unk_14, param0->unk_0D)] == 1) { ov107_02248BEC(param0); param0->unk_0A = ov107_022477CC(param0, 29, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; break; } else { ov107_02248E54(param0, 1); - param0->unk_08 = 5; + param0->subState = 5; } break; case 1: ov107_02248BB4(param0); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); if (param0->unk_3D0[ov107_02249C98(param0->unk_14, param0->unk_0D)] == 2) { ov107_02248BEC(param0); param0->unk_0A = ov107_022477CC(param0, 30, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; break; } else { ov107_02248E54(param0, 2); - param0->unk_08 = 5; + param0->subState = 5; } break; case 2: case 0xfffffffe: ov107_02248BB4(param0); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } break; @@ -645,24 +647,24 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0: ov107_02248BB4(param0); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); v2 = ov107_02248770(param0->unk_0E); if (v1 < v2) { ov107_02248BEC(param0); param0->unk_0A = ov107_022477CC(param0, 28, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; return 0; } param0->unk_12 = param0->unk_0E; - if (ov104_0223BA14(param0->unk_09) == 0) { - ov107_02248860(¶m0->unk_50[7]); - ov104_0223BC2C(param0->frontier, param0->unk_09, ov107_02248770(param0->unk_0E)); - ov107_02248C08(param0, ¶m0->unk_50[0]); + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { + ov107_02248860(¶m0->windows[7]); + ov104_0223BC2C(param0->frontier, param0->challengeType, ov107_02248770(param0->unk_0E)); + ov107_02248C08(param0, ¶m0->windows[0]); ov107_022490E8(param0, param0->unk_0D, param0->unk_0E); - param0->unk_08 = 11; + param0->subState = 11; } else { param0->unk_10 = 1; return 1; @@ -671,9 +673,9 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 1: case 0xfffffffe: ov107_02248BB4(param0); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } break; @@ -686,10 +688,10 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0xffffffff: break; case 0xfffffffe: - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_02248348(param0); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; break; case 3: param0->unk_13 = v7; @@ -700,21 +702,21 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) ov107_022480EC(param0, 0, 2, 4, 0); param0->unk_0A = ov107_022477CC(param0, 43, FONT_MESSAGE); ov107_02247D94(param0); - param0->unk_08 = 7; + param0->subState = 7; } else { ov107_02248A2C(param0, param0->unk_0D); - param0->unk_08 = 16; + param0->subState = 16; } break; case 4: param0->unk_13 = v7; ov107_02248348(param0); - v6 = ov107_02249CAC(param0->saveData, param0->unk_09, 2); + v6 = ov107_02249CAC(param0->saveData, param0->challengeType, 2); if (v6 == 1) { param0->unk_0A = ov107_022477CC(param0, 42, FONT_MESSAGE); - param0->unk_08 = 14; + param0->subState = 14; return 0; } @@ -723,14 +725,14 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) ov107_022480EC(param0, 0, 5, 4, 0); param0->unk_0A = ov107_022477CC(param0, 66, FONT_MESSAGE); ov107_02247D94(param0); - param0->unk_08 = 8; + param0->subState = 8; } else { ov107_02248AF0(param0, param0->unk_0D); - param0->unk_08 = 17; + param0->subState = 17; } break; case 5: - v6 = ov107_02249CAC(param0->saveData, param0->unk_09, 2); + v6 = ov107_02249CAC(param0->saveData, param0->challengeType, 2); if (v6 == (3 - 1)) { Sound_StopEffect(1500, 0); @@ -739,13 +741,13 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) param0->unk_13 = v7; ov107_02248348(param0); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); ov107_022480EC(param0, 0, 50, 4, 0); param0->unk_0A = ov107_022477CC(param0, 76, FONT_MESSAGE); ov107_02247D94(param0); - param0->unk_08 = 9; + param0->subState = 9; } break; } @@ -765,7 +767,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0xfffffffe: ov107_02248BB4(param0); ov107_022482FC(param0); - param0->unk_08 = 6; + param0->subState = 6; break; } break; @@ -784,7 +786,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0xfffffffe: ov107_02248BB4(param0); ov107_022482FC(param0); - param0->unk_08 = 6; + param0->subState = 6; break; } break; @@ -797,20 +799,20 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0: ov107_02248BB4(param0); - v1 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); - v6 = ov107_02249CAC(param0->saveData, param0->unk_09, 2); + v1 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); + v6 = ov107_02249CAC(param0->saveData, param0->challengeType, 2); if (v1 < 50) { ov107_02248BB4(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); param0->unk_0A = ov107_022477CC(param0, 69, FONT_MESSAGE); - param0->unk_08 = 14; + param0->subState = 14; break; } - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { ov107_022493CC(param0, param0->unk_0D, 5); - param0->unk_08 = 10; + param0->subState = 10; break; } else { param0->unk_10 = 1; @@ -821,7 +823,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) case 0xfffffffe: ov107_02248BB4(param0); ov107_022482FC(param0); - param0->unk_08 = 6; + param0->subState = 6; break; } break; @@ -830,39 +832,39 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) ov107_02248BB4(param0); ov107_022482FC(param0); ov107_02249C60(param0->unk_3C4, 211, 105); - param0->unk_08 = 6; + param0->subState = 6; } break; case 11: if (ov107_0224850C(param0, param0->unk_0D, param0->unk_13) == 1) { - param0->unk_08 = 15; + param0->subState = 15; } break; case 12: if (ov107_0224850C(param0, param0->unk_0D, param0->unk_13) == 1) { - param0->unk_08 = 13; + param0->subState = 13; } break; case 13: if (param0->unk_13 == 3) { - param0->unk_08 = 16; + param0->subState = 16; } else { - param0->unk_08 = 17; + param0->subState = 17; } break; case 14: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_022482FC(param0); - param0->unk_08 = 6; + param0->subState = 6; } break; case 15: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); ov107_02248240(param0); - param0->unk_08 = 0; + param0->subState = 0; } break; case 16: @@ -874,7 +876,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02249238(param0); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; } break; case 17: @@ -886,7 +888,7 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02249238(param0); ov107_022482B0(param0); - param0->unk_08 = 2; + param0->subState = 2; } break; } @@ -894,17 +896,17 @@ static BOOL ov107_022462CC(UnkStruct_ov107_02246170 *param0) return 0; } -static BOOL ov107_02246BDC(UnkStruct_ov107_02246170 *param0) +static BOOL ov107_02246BDC(BattleCastleOpponentApp *param0) { u8 v0; - switch (param0->unk_08) { + switch (param0->subState) { case 0: param0->unk_0F_3 = 1; if (ov107_02248874(param0, 21, param0->unk_0D) == 1) { param0->unk_10 = 0; - param0->unk_08++; + param0->subState++; } break; case 1: @@ -920,14 +922,14 @@ static BOOL ov107_02246BDC(UnkStruct_ov107_02246170 *param0) ov107_02248F18(param0, param0->unk_11, param0->unk_13); } - param0->unk_08++; + param0->subState++; break; case 2: v0 = ov107_02249C9C(param0->unk_15, param0->unk_11); if (ov107_0224850C(param0, v0, param0->unk_13) == 1) { param0->unk_16 = 30; - param0->unk_08++; + param0->subState++; } break; case 3: @@ -936,13 +938,13 @@ static BOOL ov107_02246BDC(UnkStruct_ov107_02246170 *param0) if (param0->unk_16 == 0) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(133); - param0->unk_08++; + param0->subState++; break; } break; case 4: if (CommTiming_IsSyncState(133) == 1) { - param0->unk_08++; + param0->subState++; } break; case 5: @@ -961,13 +963,13 @@ static BOOL ov107_02246BDC(UnkStruct_ov107_02246170 *param0) return 0; } -static BOOL ov107_02246CD0(UnkStruct_ov107_02246170 *param0) +static BOOL ov107_02246CD0(BattleCastleOpponentApp *param0) { - switch (param0->unk_08) { + switch (param0->subState) { case 0: if (ov107_02248874(param0, 23, 0) == 1) { param0->unk_16 = 30; - param0->unk_08++; + param0->subState++; } break; case 1: @@ -978,13 +980,13 @@ static BOOL ov107_02246CD0(UnkStruct_ov107_02246170 *param0) if (param0->unk_16 == 0) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(134); - param0->unk_08++; + param0->subState++; } break; case 2: if (CommTiming_IsSyncState(134) == 1) { CommTool_ClearReceivedTempDataAllPlayers(); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); return 1; } break; @@ -993,71 +995,71 @@ static BOOL ov107_02246CD0(UnkStruct_ov107_02246170 *param0) return 0; } -static BOOL ov107_02246D3C(UnkStruct_ov107_02246170 *param0) +static BOOL State_FadeOutApp(BattleCastleOpponentApp *app) { - switch (param0->unk_08) { + switch (app->subState) { case 0: StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 6, 1, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + app->subState++; break; case 1: if (IsScreenFadeDone() == TRUE) { - return 1; + return TRUE; } break; } - return 0; + return FALSE; } -static void ov107_02246D84(UnkStruct_ov107_02246170 *param0) +static void FreeAssets(BattleCastleOpponentApp *app) { - int v1, v2; + int i, j; - BattleCastleAppSprite_Free(param0->unk_38C); - BattleCastleAppSprite_Free(param0->unk_390); - BattleCastleAppSprite_Free(param0->unk_3C4); + BattleCastleAppSprite_Free(app->cursorSprite); + BattleCastleAppSprite_Free(app->unk_390); + BattleCastleAppSprite_Free(app->unk_3C4); - for (v1 = 0; v1 < (2 * 2); v1++) { - for (v2 = 0; v2 < 2; v2++) { - BattleCastleAppSprite_Free(param0->unk_3A4[v1][v2]); + for (i = 0; i < (2 * 2); i++) { + for (j = 0; j < 2; j++) { + BattleCastleAppSprite_Free(app->unk_3A4[i][j]); } } - u8 v0 = ov104_0223B7DC(param0->unk_09, 1); + u8 numMons = ov104_0223B7DC(app->challengeType, 1); - for (v1 = 0; v1 < v0; v1++) { - BattleCastleAppSprite_Free(param0->unk_378[v1]); - BattleCastleAppSprite_Free(param0->unk_368[v1]); - BattleCastleAppSprite_Free(param0->unk_394[v1]); + for (i = 0; i < numMons; i++) { + BattleCastleAppSprite_Free(app->ballSprites[i]); + BattleCastleAppSprite_Free(app->monSprites[i]); + BattleCastleAppSprite_Free(app->barSprites[i]); } NetworkIcon_Destroy(); - PaletteData_FreeBuffer(param0->unk_140, 2); - PaletteData_FreeBuffer(param0->unk_140, 0); - PaletteData_Free(param0->unk_140); + PaletteData_FreeBuffer(app->plttData, PLTTBUF_MAIN_OBJ); + PaletteData_FreeBuffer(app->plttData, PLTTBUF_MAIN_BG); + PaletteData_Free(app->plttData); - param0->unk_140 = NULL; + app->plttData = NULL; - BattleCastleApp_FreeSprites(¶m0->unk_158); + BattleCastleApp_FreeSprites(&app->spriteMan); - MessageLoader_Free(param0->unk_20); - StringTemplate_Free(param0->unk_24); - String_Free(param0->unk_28); - String_Free(param0->unk_2C); - FontSpecialChars_Free(param0->unk_144); + MessageLoader_Free(app->msgLoader); + StringTemplate_Free(app->strTemplate); + String_Free(app->displayStr); + String_Free(app->fmtStr); + FontSpecialChars_Free(app->specialChars); - for (v1 = 0; v1 < 3; v1++) { - String_Free(param0->unk_30[v1]); + for (i = 0; i < 3; i++) { + String_Free(app->unk_30[i]); } - BattleCastleApp_FreeWindows(param0->unk_50, 1); - ov107_022472A4(param0->unk_4C); - NARC_dtor(param0->unk_3E0); + BattleCastleApp_FreeWindows(app->windows, TRUE); + FreeBackgrounds(app->bgConfig); + NARC_dtor(app->narc); } -static void ov107_02246EAC(void) +static void InitGraphicsPlane(void) { SetVBlankCallback(NULL, NULL); SetHBlankCallback(NULL, NULL); @@ -1068,82 +1070,82 @@ static void ov107_02246EAC(void) GXS_SetVisiblePlane(0); } -static void ov107_02246EE4(UnkStruct_ov107_02246170 *param0) +static void LoadAssets(BattleCastleOpponentApp *app) { - u16 v7, v8, v9, v10, v11, v12; - int v13, v14; + u16 unused1, unused2, unused3, unused4, xOffset, ballXOffset; + int i, j; - param0->unk_3E0 = NARC_ctor(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, HEAP_ID_BATTLE_CASTLE_APP); + app->narc = NARC_ctor(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02247220(param0); - ov107_02247280(param0); + LoadBackgrounds(app); + InitSpriteManager(app); - param0->unk_20 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0201, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_24 = StringTemplate_Default(HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_28 = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_2C = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); + app->msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0201, HEAP_ID_BATTLE_CASTLE_APP); + app->strTemplate = StringTemplate_Default(HEAP_ID_BATTLE_CASTLE_APP); + app->displayStr = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); + app->fmtStr = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); - for (v13 = 0; v13 < 3; v13++) { - param0->unk_30[v13] = String_Init(32, HEAP_ID_BATTLE_CASTLE_APP); + for (i = 0; i < 3; i++) { + app->unk_30[i] = String_Init(32, HEAP_ID_BATTLE_CASTLE_APP); } - Font_LoadTextPalette(0, 13 * 32, HEAP_ID_BATTLE_CASTLE_APP); - Font_LoadScreenIndicatorsPalette(0, 12 * 32, HEAP_ID_BATTLE_CASTLE_APP); + Font_LoadTextPalette(0, 13 * PALETTE_SIZE_BYTES, HEAP_ID_BATTLE_CASTLE_APP); + Font_LoadScreenIndicatorsPalette(0, 12 * PALETTE_SIZE_BYTES, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_144 = FontSpecialChars_Init(1, 2, 0, HEAP_ID_BATTLE_CASTLE_APP); + app->specialChars = FontSpecialChars_Init(1, 2, 0, HEAP_ID_BATTLE_CASTLE_APP); - BattleCastleApp_InitWindows(param0->unk_4C, param0->unk_50, 1); - ov107_022484DC(param0, &v7, &v8, &v9, &v10); + BattleCastleApp_InitWindows(app->bgConfig, app->windows, TRUE); + ov107_022484DC(app, &unused1, &unused2, &unused3, &unused4); - if (ov104_0223BA14(param0->unk_09) == 0) { - v11 = 64; - v12 = 60; + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + xOffset = 64; + ballXOffset = 60; } else { - v11 = 32; - v12 = 28; + xOffset = 32; + ballXOffset = 28; } - u8 v4 = ov104_0223B7DC(param0->unk_09, 1); + u8 numMons = ov104_0223B7DC(app->challengeType, 1); - for (v13 = 0; v13 < v4; v13++) { - param0->unk_378[v13] = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 7, 64 * v13 + v12, 62, 2, NULL); - param0->unk_394[v13] = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 15, 64 * v13 + v11, 58 + 20, 3, NULL); - param0->unk_368[v13] = BattleCastleAppSprite_New(¶m0->unk_158, 3 + v13, 3, 3, 1, 64 * v13 + v11, 58, 2, NULL); + for (i = 0; i < numMons; i++) { + app->ballSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 7, 64 * i + ballXOffset, 62, 2, NULL); + app->barSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 15, 64 * i + xOffset, 58 + 20, 3, NULL); + app->monSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 3 + i, 3, 3, 1, 64 * i + xOffset, 58, 2, NULL); - BattleCastleAppSprite_UpdatePalette(param0->unk_368[v13], Party_GetPokemonBySlotIndex(param0->unk_3DC, v13)); + BattleCastleAppSprite_UpdatePalette(app->monSprites[i], Party_GetPokemonBySlotIndex(app->unk_3DC, i)); - if (param0->unk_3CC[v13] == 0) { - BattleCastleAppSprite_SetDrawFlag(param0->unk_378[v13], 1); - BattleCastleAppSprite_SetDrawFlag(param0->unk_368[v13], 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_394[v13], 0); + if (app->unk_3CC[i] == 0) { + BattleCastleAppSprite_SetDrawFlag(app->ballSprites[i], TRUE); + BattleCastleAppSprite_SetDrawFlag(app->monSprites[i], FALSE); + BattleCastleAppSprite_SetDrawFlag(app->barSprites[i], FALSE); } else { - BattleCastleAppSprite_SetDrawFlag(param0->unk_378[v13], 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_368[v13], 1); - BattleCastleAppSprite_SetDrawFlag(param0->unk_394[v13], 1); + BattleCastleAppSprite_SetDrawFlag(app->ballSprites[i], FALSE); + BattleCastleAppSprite_SetDrawFlag(app->monSprites[i], TRUE); + BattleCastleAppSprite_SetDrawFlag(app->barSprites[i], TRUE); } } - u32 v0, v1; - ov107_02248488(param0, &v0, &v1, 0); + u32 x, y; + GetCursorSpritePos(app, &x, &y, 0); - param0->unk_38C = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 1, v0, v1, 2, NULL); - param0->unk_390 = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 2, v0, v1, 2, NULL); + app->cursorSprite = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 1, x, y, 2, NULL); + app->unk_390 = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 2, x, y, 2, NULL); - if (ov104_0223BA14(param0->unk_09) == 0) { - BattleCastleAppSprite_SetDrawFlag(param0->unk_390, 0); + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + BattleCastleAppSprite_SetDrawFlag(app->unk_390, FALSE); } - for (v13 = 0; v13 < (2 * 2); v13++) { - for (v14 = 0; v14 < 2; v14++) { - ov107_022495E4(param0, &v0, &v1); - param0->unk_3A4[v13][v14] = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 12, v0 + (64 * v13), v1 + (12 * v14), 2, NULL); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3A4[v13][v14], 0); + for (i = 0; i < (2 * 2); i++) { + for (j = 0; j < 2; j++) { + ov107_022495E4(app, &x, &y); + app->unk_3A4[i][j] = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 12, x + (64 * i), y + (12 * j), 2, NULL); + BattleCastleAppSprite_SetDrawFlag(app->unk_3A4[i][j], FALSE); } } - ov107_02249580(param0); - param0->unk_3C4 = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, 11, 20, 20, 0, NULL); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3C4, 0); + ov107_02249580(app); + app->unk_3C4 = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 11, 20, 20, 0, NULL); + BattleCastleAppSprite_SetDrawFlag(app->unk_3C4, FALSE); if (CommSys_IsInitialized()) { ReserveVramForWirelessIconChars(NNS_G2D_VRAM_TYPE_2DMAIN, GX_OBJVRAMMODE_CHAR_1D_32K); @@ -1151,64 +1153,63 @@ static void ov107_02246EE4(UnkStruct_ov107_02246170 *param0) sub_02039734(); } - SetVBlankCallback(ov107_022472E8, (void *)param0); + SetVBlankCallback(VBlankCallback, app); } -static void ov107_02247220(UnkStruct_ov107_02246170 *param0) +static void LoadBackgrounds(BattleCastleOpponentApp *app) { - ov107_02247320(); - ov107_02247340(param0->unk_4C); + SetGXBanks(); + InitBackgrounds(app->bgConfig); - param0->unk_140 = PaletteData_New(HEAP_ID_BATTLE_CASTLE_APP); + app->plttData = PaletteData_New(HEAP_ID_BATTLE_CASTLE_APP); + PaletteData_AllocBuffer(app->plttData, PLTTBUF_MAIN_OBJ, PALETTE_SIZE_BYTES * SLOTS_PER_PALETTE, HEAP_ID_BATTLE_CASTLE_APP); + PaletteData_AllocBuffer(app->plttData, PLTTBUF_MAIN_BG, PALETTE_SIZE_BYTES * SLOTS_PER_PALETTE, HEAP_ID_BATTLE_CASTLE_APP); - PaletteData_AllocBuffer(param0->unk_140, 2, 32 * 16, HEAP_ID_BATTLE_CASTLE_APP); - PaletteData_AllocBuffer(param0->unk_140, 0, 32 * 16, HEAP_ID_BATTLE_CASTLE_APP); + LoadMainBackground(app, BG_LAYER_MAIN_3); + LoadPalette(); + LoadSummaryBackground(app, BG_LAYER_MAIN_2); + LoadPalette2(); - ov107_02247484(param0, 3); - ov107_022474F8(); - ov107_0224752C(param0, 2); - ov107_02247574(); - - GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - ov107_022475F0(param0, 4); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, FALSE); + LoadSubScreenBackground(app, BG_LAYER_SUB_0); } -static void ov107_02247280(UnkStruct_ov107_02246170 *param0) +static void InitSpriteManager(BattleCastleOpponentApp *app) { - BattleCastleApp_InitSpriteManager(¶m0->unk_158, param0->unk_3DC, ov104_0223BA14(param0->unk_09)); + BattleCastleApp_InitSpriteManager(&app->spriteMan, app->unk_3DC, BattleCastle_IsMultiPlayerChallenge(app->challengeType)); } -static void ov107_022472A4(BgConfig *param0) +static void FreeBackgrounds(BgConfig *bgConfig) { - GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0); - GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, FALSE); + GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, FALSE); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_3); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_2); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_0); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_1); - Bg_FreeTilemapBuffer(param0, BG_LAYER_SUB_0); - Heap_Free(param0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_3); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_1); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_SUB_0); + Heap_Free(bgConfig); } -static void ov107_022472E8(void *param0) +static void VBlankCallback(void *data) { - UnkStruct_ov107_02246170 *v0 = param0; + BattleCastleOpponentApp *app = data; - if (v0->unk_140 != NULL) { - PaletteData_CommitFadedBuffers(v0->unk_140); + if (app->plttData != NULL) { + PaletteData_CommitFadedBuffers(app->plttData); } - Bg_RunScheduledUpdates(v0->unk_4C); + Bg_RunScheduledUpdates(app->bgConfig); VramTransfer_Process(); RenderOam_Transfer(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } -static void ov107_02247320(void) +static void SetGXBanks(void) { - GXBanks v0 = { + GXBanks banks = { GX_VRAM_BG_128_C, GX_VRAM_BGEXTPLTT_NONE, GX_VRAM_SUB_BG_32_H, @@ -1221,21 +1222,21 @@ static void ov107_02247320(void) GX_VRAM_TEXPLTT_01_FG }; - GXLayers_SetBanks(&v0); + GXLayers_SetBanks(&banks); } -static void ov107_02247340(BgConfig *param0) +static void InitBackgrounds(BgConfig *bgConfig) { - GraphicsModes v0 = { + GraphicsModes graphicsModes = { GX_DISPMODE_GRAPHICS, GX_BGMODE_0, GX_BGMODE_0, GX_BG0_AS_2D }; - SetAllGraphicsModes(&v0); + SetAllGraphicsModes(&graphicsModes); - BgTemplate v1 = { + BgTemplate bgTemplate1 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1250,11 +1251,11 @@ static void ov107_02247340(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_1, &v1, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_1, &bgTemplate1, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_1, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_1); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_1); - BgTemplate v2 = { + BgTemplate bgTemplate0 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1269,11 +1270,11 @@ static void ov107_02247340(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_0, &v2, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_0, &bgTemplate0, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_0, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_0); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_0); - BgTemplate v3 = { + BgTemplate bgTemplate2 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1288,11 +1289,11 @@ static void ov107_02247340(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_2, &v3, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_2, &bgTemplate2, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_2, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_2); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_2); - BgTemplate v4 = { + BgTemplate bgTemplate3 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1307,11 +1308,11 @@ static void ov107_02247340(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_3, &v4, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_3, &bgTemplate3, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_3, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_3); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_3); - BgTemplate v5 = { + BgTemplate bgTemplateSub0 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1326,135 +1327,135 @@ static void ov107_02247340(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_SUB_0, &v5, 0); - Bg_ClearTilemap(param0, BG_LAYER_SUB_0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_SUB_0, &bgTemplateSub0, BG_TYPE_STATIC); + Bg_ClearTilemap(bgConfig, BG_LAYER_SUB_0); G2_SetBG0Priority(0); - GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, TRUE); } -static void ov107_02247484(UnkStruct_ov107_02246170 *param0, u32 param1) +static void LoadMainBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_3E0, 44, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); - if (ov104_0223BA14(param0->unk_09) == 0) { - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_3E0, 40, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_SOLO_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } else { - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_3E0, 41, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_MULTI_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } } -static void ov107_022474F8(void) +static void LoadPalette(void) { - NNSG2dPaletteData *v1; - void *v0 = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, 138, &v1, HEAP_ID_BATTLE_CASTLE_APP); + NNSG2dPaletteData *plttData; + void *pltt = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, BATTLE_CASTLE_OPPONENT_APP_PLTT, &plttData, HEAP_ID_BATTLE_CASTLE_APP); - DC_FlushRange(v1->pRawData, sizeof(u16) * 16 * 4); - GX_LoadBGPltt(v1->pRawData, 0, sizeof(u16) * 16 * 4); - Heap_Free(v0); + DC_FlushRange(plttData->pRawData, PALETTE_SIZE_BYTES * 4); + GX_LoadBGPltt(plttData->pRawData, 0, PALETTE_SIZE_BYTES * 4); + Heap_Free(pltt); } -static void ov107_0224752C(UnkStruct_ov107_02246170 *param0, u32 param1) +static void LoadSummaryBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_3E0, 44, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_3E0, 42, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_SUMMARY_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } -static void ov107_02247574(void) +static void LoadPalette2(void) { - NNSG2dPaletteData *v1; - void *v0 = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, 138, &v1, HEAP_ID_BATTLE_CASTLE_APP); + NNSG2dPaletteData *plttData; + void *pltt = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, BATTLE_CASTLE_OPPONENT_APP_PLTT, &plttData, HEAP_ID_BATTLE_CASTLE_APP); - DC_FlushRange(v1->pRawData, sizeof(u16) * 16 * 4); - GX_LoadBGPltt(v1->pRawData, 0, sizeof(u16) * 16 * 4); - Heap_Free(v0); + DC_FlushRange(plttData->pRawData, PALETTE_SIZE_BYTES * 4); + GX_LoadBGPltt(plttData->pRawData, 0, PALETTE_SIZE_BYTES * 4); + Heap_Free(pltt); } -static void ov107_022475A8(UnkStruct_ov107_02246170 *param0, u32 param1) +static void LoadMovesListBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_3E0, 44, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_3E0, 43, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_OPPONENT_APP_MOVES_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } -static void ov107_022475F0(UnkStruct_ov107_02246170 *param0, u32 param1) +static void LoadSubScreenBackground(BattleCastleOpponentApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_3E0, 125, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_3E0, 126, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadPaletteFromOpenNARC(param0->unk_3E0, 171, 4, 0, 0x20, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadPaletteFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_PLTT, PAL_LOAD_SUB_BG, 0, 0x20, HEAP_ID_BATTLE_CASTLE_APP); } -static u8 ov107_02247650(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) +static u8 ov107_02247650(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) { return ov107_02247680(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 0); } -static u8 ov107_02247680(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) +static u8 ov107_02247680(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) { Window_FillTilemap(param1, param8); - MessageLoader_GetString(param0->unk_20, param2, param0->unk_2C); - StringTemplate_Format(param0->unk_24, param0->unk_28, param0->unk_2C); + MessageLoader_GetString(param0->msgLoader, param2, param0->fmtStr); + StringTemplate_Format(param0->strTemplate, param0->displayStr, param0->fmtStr); switch (param10) { case 1: - param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0) + 1) / 2; + param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0) + 1) / 2; break; case 2: - param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0); + param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0); break; } - u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->unk_28, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); + u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->displayStr, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); Window_ScheduleCopyToVRAM(param1); return v0; } -static u8 ov107_02247714(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) +static u8 ov107_02247714(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) { ov107_02247744(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 0); } -static u8 ov107_02247744(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) +static u8 ov107_02247744(BattleCastleOpponentApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) { - MessageLoader_GetString(param0->unk_20, param2, param0->unk_2C); - StringTemplate_Format(param0->unk_24, param0->unk_28, param0->unk_2C); + MessageLoader_GetString(param0->msgLoader, param2, param0->fmtStr); + StringTemplate_Format(param0->strTemplate, param0->displayStr, param0->fmtStr); switch (param10) { case 1: - param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0) + 1) / 2; + param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0) + 1) / 2; break; case 2: - param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0); + param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0); break; } - u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->unk_28, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); + u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->displayStr, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); Window_ScheduleCopyToVRAM(param1); return v0; } -static u8 ov107_022477CC(UnkStruct_ov107_02246170 *param0, int param1, u8 param2) +static u8 ov107_022477CC(BattleCastleOpponentApp *param0, int param1, u8 param2) { - u8 v0 = ov107_02247650(param0, ¶m0->unk_50[7], param1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, param2); - Window_ScheduleCopyToVRAM(¶m0->unk_50[7]); + u8 v0 = ov107_02247650(param0, ¶m0->windows[7], param1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, param2); + Window_ScheduleCopyToVRAM(¶m0->windows[7]); return v0; } -static void ov107_02247804(UnkStruct_ov107_02246170 *param0, Window *window, Pokemon *mon) +static void ov107_02247804(BattleCastleOpponentApp *param0, Window *window, Pokemon *mon) { Window_FillTilemap(window, 0); - StringTemplate_SetItemName(param0->unk_24, 0, Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL)); + StringTemplate_SetItemName(param0->strTemplate, 0, Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL)); ov107_02247A14(param0, window, 48, 8, 8, 0); ov107_02247A14(param0, window, 49, 72, 8, 0); - StringTemplate_SetNatureName(param0->unk_24, 0, Pokemon_GetNature(mon)); + StringTemplate_SetNatureName(param0->strTemplate, 0, Pokemon_GetNature(mon)); ov107_02247A14(param0, window, 50, 8, 24, 0); ov107_02247A14(param0, window, 51, 72, 24, 0); - StringTemplate_SetAbilityName(param0->unk_24, 0, Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL)); + StringTemplate_SetAbilityName(param0->strTemplate, 0, Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL)); ov107_02247A14(param0, window, 52, 8, 40, 0); ov107_02247A14(param0, window, 53, 72, 40, 0); @@ -1481,12 +1482,12 @@ static void ov107_02247804(UnkStruct_ov107_02246170 *param0, Window *window, Pok Window_ScheduleCopyToVRAM(window); } -static void ov107_02247A14(UnkStruct_ov107_02246170 *param0, Window *param1, int param2, u16 param3, u16 param4, u32 param5) +static void ov107_02247A14(BattleCastleOpponentApp *param0, Window *param1, int param2, u16 param3, u16 param4, u32 param5) { ov107_02247744(param0, param1, param2, param3, param4, 0xff, 1, 2, 0, 0, param5); } -static void ov107_02247A3C(UnkStruct_ov107_02246170 *param0, Window *param1, Pokemon *param2) +static void ov107_02247A3C(BattleCastleOpponentApp *param0, Window *param1, Pokemon *param2) { Window_FillTilemap(param1, 0); @@ -1498,31 +1499,31 @@ static void ov107_02247A3C(UnkStruct_ov107_02246170 *param0, Window *param1, Pok Window_ScheduleCopyToVRAM(param1); } -static void ov107_02247AD0(UnkStruct_ov107_02246170 *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8) +static void ov107_02247AD0(BattleCastleOpponentApp *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8) { u16 v0 = 4 * 8; u16 v1 = (2 * 8 - 4) + param2 * 24; u16 v2 = 18 * 8 + 1; u16 v3 = (2 * 8 - 4) + param2 * 24; - StringTemplate_SetMoveName(param0->unk_24, param2, Pokemon_GetValue(param5, param6, NULL)); + StringTemplate_SetMoveName(param0->strTemplate, param2, Pokemon_GetValue(param5, param6, NULL)); param0->unk_0A = ov107_02247714(param0, param1, param3, v0, v1, 0xFF, 1, 2, 0, 0); ov107_022480EC(param0, 4, Pokemon_GetValue(param5, param7, NULL), 3, 0); ov107_022480EC(param0, 5, Pokemon_GetValue(param5, param8, NULL), 3, 0); param0->unk_0A = ov107_02247744(param0, param1, param4, v2, v3, 0xFF, 1, 2, 0, 0, 1); } -static void ov107_02247B78(UnkStruct_ov107_02246170 *param0, Window *param1) +static void ov107_02247B78(BattleCastleOpponentApp *param0, Window *param1) { Window_FillTilemap(param1, 0); u16 v0; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = 36; } else { v0 = 4; } - u8 v1 = ov104_0223B7DC(param0->unk_09, 1); + u8 v1 = ov104_0223B7DC(param0->challengeType, 1); for (int v2 = 0; v2 < v1; v2++) { if (param0->unk_3CC[v2] == 0) { @@ -1533,20 +1534,20 @@ static void ov107_02247B78(UnkStruct_ov107_02246170 *param0, Window *param1) Pokemon *v3 = Party_GetPokemonBySlotIndex(param0->unk_3DC, v2); - FontSpecialChars_DrawPartyScreenHPText(param0->unk_144, Pokemon_GetValue(v3, MON_DATA_HP, NULL), 3, 1, param1, v0 + (64 * v2), 1); - FontSpecialChars_DrawPartyScreenLevelText(param0->unk_144, 0, param1, 24 + v0 + (64 * v2), 1); - FontSpecialChars_DrawPartyScreenHPText(param0->unk_144, Pokemon_GetValue(v3, MON_DATA_MAX_HP, NULL), 3, 0, param1, 32 + v0 + (64 * v2), 1); + FontSpecialChars_DrawPartyScreenHPText(param0->specialChars, Pokemon_GetValue(v3, MON_DATA_HP, NULL), 3, 1, param1, v0 + (64 * v2), 1); + FontSpecialChars_DrawPartyScreenLevelText(param0->specialChars, 0, param1, 24 + v0 + (64 * v2), 1); + FontSpecialChars_DrawPartyScreenHPText(param0->specialChars, Pokemon_GetValue(v3, MON_DATA_MAX_HP, NULL), 3, 0, param1, 32 + v0 + (64 * v2), 1); } Window_ScheduleCopyToVRAM(param1); } -static void ov107_02247C64(UnkStruct_ov107_02246170 *param0, Window *param1) +static void ov107_02247C64(BattleCastleOpponentApp *param0, Window *param1) { Window_FillTilemap(param1, 0); u16 v1, v2; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v1 = 40; v2 = 80; } else { @@ -1554,11 +1555,11 @@ static void ov107_02247C64(UnkStruct_ov107_02246170 *param0, Window *param1) v2 = 48; } - u8 v3 = ov104_0223B7DC(param0->unk_09, 1); + u8 v3 = ov104_0223B7DC(param0->challengeType, 1); for (int v4 = 0; v4 < v3; v4++) { Pokemon *v5 = Party_GetPokemonBySlotIndex(param0->unk_3DC, v4); - FontSpecialChars_DrawPartyScreenText(param0->unk_144, 1, Pokemon_GetValue(v5, MON_DATA_LEVEL, NULL), 3, 0, param1, v1 + (64 * v4), 1); + FontSpecialChars_DrawPartyScreenText(param0->specialChars, 1, Pokemon_GetValue(v5, MON_DATA_LEVEL, NULL), 3, 0, param1, v1 + (64 * v4), 1); u32 v0 = Pokemon_GetValue(v5, MON_DATA_GENDER, NULL); ov107_022481FC(param0, param1, v2 + (64 * v4), 1, 0, v0); @@ -1567,7 +1568,7 @@ static void ov107_02247C64(UnkStruct_ov107_02246170 *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static void ov107_02247D04(UnkStruct_ov107_02246170 *param0, Window *param1, u8 param2) +static void ov107_02247D04(BattleCastleOpponentApp *param0, Window *param1, u8 param2) { for (int v0 = 0; v0 < 3; v0++) { param0->unk_120[v0].entry = NULL; @@ -1584,18 +1585,18 @@ static void ov107_02247D04(UnkStruct_ov107_02246170 *param0, Window *param1, u8 param0->unk_110.loopAround = TRUE; } -static void ov107_02247D68(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2, int param3) +static void ov107_02247D68(BattleCastleOpponentApp *param0, u8 param1, u8 param2, int param3) { - MessageLoader_GetString(param0->unk_20, param3, param0->unk_30[param1]); + MessageLoader_GetString(param0->msgLoader, param3, param0->unk_30[param1]); param0->unk_120[param1].entry = (const void *)param0->unk_30[param1]; param0->unk_120[param1].index = param2; } -static void ov107_02247D94(UnkStruct_ov107_02246170 *param0) +static void ov107_02247D94(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[10]); - ov107_02247D04(param0, ¶m0->unk_50[10], 2); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[10]); + ov107_02247D04(param0, ¶m0->windows[10], 2); ov107_02247D68(param0, 0, 0, 26); ov107_02247D68(param0, 1, 1, 27); @@ -1603,10 +1604,10 @@ static void ov107_02247D94(UnkStruct_ov107_02246170 *param0) param0->unk_0F_2 = 1; } -static void ov107_02247DF0(UnkStruct_ov107_02246170 *param0) +static void ov107_02247DF0(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[11]); - ov107_02247D04(param0, ¶m0->unk_50[11], 3); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[11]); + ov107_02247D04(param0, ¶m0->windows[11], 3); ov107_02247D68(param0, 0, 0, 22); ov107_02247D68(param0, 1, 1, 23); ov107_02247D68(param0, 2, 2, 24); @@ -1651,21 +1652,21 @@ static const u32 Unk_ov107_0224A0CC[] = { 0xF }; -static void ov107_02247E5C(UnkStruct_ov107_02246170 *param0) +static void ov107_02247E5C(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[5]); - Window_FillTilemap(¶m0->unk_50[5], 15); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[5]); + Window_FillTilemap(¶m0->windows[5], 15); param0->unk_13C = StringList_New(NELEMS(Unk_ov107_0224A1BC), HEAP_ID_BATTLE_CASTLE_APP); for (int v0 = 0; v0 < NELEMS(Unk_ov107_0224A1BC); v0++) { - StringList_AddFromMessageBank(param0->unk_13C, param0->unk_20, Unk_ov107_0224A1BC[v0][0], Unk_ov107_0224A1BC[v0][1]); + StringList_AddFromMessageBank(param0->unk_13C, param0->msgLoader, Unk_ov107_0224A1BC[v0][0], Unk_ov107_0224A1BC[v0][1]); } ListMenuTemplate v1 = Unk_ov107_0224A17C; v1.choices = param0->unk_13C; - v1.window = ¶m0->unk_50[5]; + v1.window = ¶m0->windows[5]; v1.parent = param0; v1.cursorCallback = ov107_02247F14; v1.printCallback = NULL; @@ -1676,12 +1677,12 @@ static void ov107_02247E5C(UnkStruct_ov107_02246170 *param0) param0->unk_138 = ListMenu_New(&v1, param0->unk_1C, param0->unk_1E, HEAP_ID_BATTLE_CASTLE_APP); param0->unk_0F_1 = 1; - Window_ScheduleCopyToVRAM(¶m0->unk_50[5]); + Window_ScheduleCopyToVRAM(¶m0->windows[5]); } static void ov107_02247F14(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02246170 *v5 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); + BattleCastleOpponentApp *v5 = (BattleCastleOpponentApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); @@ -1689,7 +1690,7 @@ static void ov107_02247F14(ListMenu *param0, u32 param1, u8 param2) u16 v4; ListMenu_CalcTrueCursorPos(param0, &v4); - ov107_02247650(v5, &v5->unk_50[9], Unk_ov107_0224A0CC[v4], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_02247650(v5, &v5->windows[9], Unk_ov107_0224A0CC[v4], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } static const u32 Unk_ov107_0224A19C[][2] = { @@ -1706,21 +1707,21 @@ static const u16 Unk_ov107_0224A0AC[][2] = { { 0x29, 0x29 } }; -static void ov107_02247F6C(UnkStruct_ov107_02246170 *param0) +static void ov107_02247F6C(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[6]); - Window_FillTilemap(¶m0->unk_50[6], 15); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[6]); + Window_FillTilemap(¶m0->windows[6], 15); param0->unk_13C = StringList_New(NELEMS(Unk_ov107_0224A19C), HEAP_ID_BATTLE_CASTLE_APP); for (int v0 = 0; v0 < (NELEMS(Unk_ov107_0224A19C)); v0++) { - StringList_AddFromMessageBank(param0->unk_13C, param0->unk_20, Unk_ov107_0224A19C[v0][0], Unk_ov107_0224A19C[v0][1]); + StringList_AddFromMessageBank(param0->unk_13C, param0->msgLoader, Unk_ov107_0224A19C[v0][0], Unk_ov107_0224A19C[v0][1]); } ListMenuTemplate v1 = Unk_ov107_0224A17C; v1.choices = param0->unk_13C; - v1.window = ¶m0->unk_50[6]; + v1.window = ¶m0->windows[6]; v1.parent = param0; v1.cursorCallback = ov107_02248028; v1.printCallback = ov107_022480A0; @@ -1731,12 +1732,12 @@ static void ov107_02247F6C(UnkStruct_ov107_02246170 *param0) param0->unk_138 = ListMenu_New(&v1, 0, 0, HEAP_ID_BATTLE_CASTLE_APP); param0->unk_0F_1 = 1; - Window_ScheduleCopyToVRAM(¶m0->unk_50[6]); + Window_ScheduleCopyToVRAM(¶m0->windows[6]); } static void ov107_02248028(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02246170 *v3 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); + BattleCastleOpponentApp *v3 = (BattleCastleOpponentApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); @@ -1745,17 +1746,17 @@ static void ov107_02248028(ListMenu *param0, u32 param1, u8 param2) u16 v2; ListMenu_CalcTrueCursorPos(param0, &v2); - u8 v0 = ov107_02249CAC(v3->saveData, v3->unk_09, 2); + u8 v0 = ov107_02249CAC(v3->saveData, v3->challengeType, 2); u8 v1 = v0 == 1 ? 0 : 1; - ov107_02247650(v3, &v3->unk_50[7], Unk_ov107_0224A0AC[v2][v1], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_02247650(v3, &v3->windows[7], Unk_ov107_0224A0AC[v2][v1], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } static void ov107_022480A0(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02246170 *v2 = (UnkStruct_ov107_02246170 *)ListMenu_GetAttribute(param0, 19); + BattleCastleOpponentApp *v2 = (BattleCastleOpponentApp *)ListMenu_GetAttribute(param0, 19); - u8 v0 = ov107_02249CAC(v2->saveData, v2->unk_09, 2); + u8 v0 = ov107_02249CAC(v2->saveData, v2->challengeType, 2); u8 v1 = 1; switch (param1) { @@ -1781,22 +1782,22 @@ static void ov107_022480A0(ListMenu *param0, u32 param1, u8 param2) ListMenu_SetTextColors(param0, v1, 15, 2); } -static void ov107_022480EC(UnkStruct_ov107_02246170 *param0, u32 param1, s32 param2, u32 param3, int param4) +static void ov107_022480EC(BattleCastleOpponentApp *param0, u32 param1, s32 param2, u32 param3, int param4) { - StringTemplate_SetNumber(param0->unk_24, param1, param2, param3, param4, 1); + StringTemplate_SetNumber(param0->strTemplate, param1, param2, param3, param4, 1); } -static void ov107_02248104(UnkStruct_ov107_02246170 *param0, u32 param1, BoxPokemon *param2) +static void ov107_02248104(BattleCastleOpponentApp *param0, u32 param1, BoxPokemon *param2) { - StringTemplate_SetSpeciesName(param0->unk_24, param1, param2); + StringTemplate_SetSpeciesName(param0->strTemplate, param1, param2); } -static void ov107_02248110(UnkStruct_ov107_02246170 *param0, u32 param1) +static void ov107_02248110(BattleCastleOpponentApp *param0, u32 param1) { - StringTemplate_SetPlayerName(param0->unk_24, param1, SaveData_GetTrainerInfo(param0->saveData)); + StringTemplate_SetPlayerName(param0->strTemplate, param1, SaveData_GetTrainerInfo(param0->saveData)); } -static void ov107_0224812C(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4) +static void ov107_0224812C(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4) { const TrainerInfo *v1 = SaveData_GetTrainerInfo(param0->saveData); String *v2 = String_Init(7 + 1, HEAP_ID_BATTLE_CASTLE_APP); @@ -1814,7 +1815,7 @@ static void ov107_0224812C(UnkStruct_ov107_02246170 *param0, Window *param1, u32 String_Free(v2); } -static void ov107_02248194(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4) +static void ov107_02248194(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4) { TrainerInfo *v0 = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1); @@ -1825,11 +1826,11 @@ static void ov107_02248194(UnkStruct_ov107_02246170 *param0, Window *param1, u32 v1 = TEXT_COLOR(3, 4, 0); } - StringTemplate_SetPlayerName(param0->unk_24, 0, v0); + StringTemplate_SetPlayerName(param0->strTemplate, 0, v0); ov107_02247714(param0, param1, 1, param2, param3, TEXT_SPEED_NO_TRANSFER, GET_TEXT_FG_COLOR(v1), GET_TEXT_SHADOW_COLOR(v1), GET_TEXT_BG_COLOR(v1), FONT_SYSTEM); } -static void ov107_022481FC(UnkStruct_ov107_02246170 *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5) +static void ov107_022481FC(BattleCastleOpponentApp *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5) { u32 v0; u8 v2, v3, v4; @@ -1851,56 +1852,56 @@ static void ov107_022481FC(UnkStruct_ov107_02246170 *param0, Window *param1, u32 ov107_02247714(param0, param1, v0, param2, param3, 0xff, v2, v3, v4, param4); } -static void ov107_02248240(UnkStruct_ov107_02246170 *param0) +static void ov107_02248240(BattleCastleOpponentApp *param0) { - param0->unk_0A = ov107_02247680(param0, ¶m0->unk_50[1], 5, 16, 1 + 4, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 1); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[8], Options_Frame(param0->options)); - param0->unk_0A = ov107_02247650(param0, ¶m0->unk_50[8], 4, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + param0->unk_0A = ov107_02247680(param0, ¶m0->windows[1], 5, 16, 1 + 4, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 1); + BattleCastleApp_DrawMessageBox(¶m0->windows[8], Options_Frame(param0->options)); + param0->unk_0A = ov107_02247650(param0, ¶m0->windows[8], 4, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } -static void ov107_022482A4(UnkStruct_ov107_02246170 *param0) +static void ov107_022482A4(BattleCastleOpponentApp *param0) { - ov107_02248860(¶m0->unk_50[8]); + ov107_02248860(¶m0->windows[8]); } -static void ov107_022482B0(UnkStruct_ov107_02246170 *param0) +static void ov107_022482B0(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[9], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[9], Options_Frame(param0->options)); param0->unk_18 = 0; ov107_02247E5C(param0); } -static void ov107_022482D4(UnkStruct_ov107_02246170 *param0) +static void ov107_022482D4(BattleCastleOpponentApp *param0) { ListMenu_GetListAndCursorPos(param0->unk_138, ¶m0->unk_1C, ¶m0->unk_1E); - ov107_02248860(¶m0->unk_50[9]); + ov107_02248860(¶m0->windows[9]); ov107_02249258(param0); } -static void ov107_022482FC(UnkStruct_ov107_02246170 *param0) +static void ov107_022482FC(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); - param0->unk_0A = ov107_02247650(param0, ¶m0->unk_50[7], 37, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + param0->unk_0A = ov107_02247650(param0, ¶m0->windows[7], 37, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); param0->unk_18 = 0; ov107_02247F6C(param0); } -static void ov107_02248348(UnkStruct_ov107_02246170 *param0) +static void ov107_02248348(BattleCastleOpponentApp *param0) { ov107_02249258(param0); } -static void ov107_02248350(UnkStruct_ov107_02246170 *param0, int *param1, int param2) +static void ChangeState(BattleCastleOpponentApp *app, int *state, int newState) { - param0->unk_08 = 0; - *param1 = param2; + app->subState = 0; + *state = newState; } -static void ov107_02248358(UnkStruct_ov107_02246170 *param0, int param1) +static void ov107_02248358(BattleCastleOpponentApp *param0, int param1) { int v1 = 0; u8 v0 = ov107_02249C98(param0->unk_14, param0->unk_0D); @@ -1957,24 +1958,24 @@ static void ov107_02248358(UnkStruct_ov107_02246170 *param0, int param1) } } -static void ov107_022483F0(UnkStruct_ov107_02246170 *param0) +static void ov107_022483F0(BattleCastleOpponentApp *param0) { Sound_PlayEffect(SEQ_SE_CONFIRM); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { ov107_02248874(param0, 22, param0->unk_0D); } ov107_02248420(param0, param0->unk_0D, 0); } -static void ov107_02248420(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static void ov107_02248420(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { BattleCastleAppSprite *v0; u32 v1, v2, v3, v4; if (param2 == 0) { - v0 = param0->unk_38C; + v0 = param0->cursorSprite; v3 = 1; v4 = 0; } else { @@ -1988,39 +1989,39 @@ static void ov107_02248420(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param BattleCastleAppSprite_SetPosition(v0, 224, 160); } else { BattleCastleAppSprite_SetAnim(v0, v3); - ov107_02248488(param0, &v1, &v2, param1); + GetCursorSpritePos(param0, &v1, &v2, param1); BattleCastleAppSprite_SetPosition(v0, v1, v2); } } -static void ov107_02248488(UnkStruct_ov107_02246170 *param0, u32 *param1, u32 *param2, u8 param3) +static void GetCursorSpritePos(BattleCastleOpponentApp *app, u32 *x, u32 *y, u8 slot) { - if (ov104_0223BA14(param0->unk_09) == 1) { - if (param3 == 0) { - *param1 = 40; - } else if (param3 == 1) { - *param1 = 104; - } else if (param3 == 2) { - *param1 = 168; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (slot == 0) { + *x = 40; + } else if (slot == 1) { + *x = 104; + } else if (slot == 2) { + *x = 168; } else { - *param1 = 232; + *x = 232; } } else { - if (param3 == 0) { - *param1 = 72; - } else if (param3 == 1) { - *param1 = 136; + if (slot == 0) { + *x = 72; + } else if (slot == 1) { + *x = 136; } else { - *param1 = 200; + *x = 200; } } - *param2 = 88; + *y = 88; } -static void ov107_022484DC(UnkStruct_ov107_02246170 *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4) +static void ov107_022484DC(BattleCastleOpponentApp *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4) { - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { *param1 = 32; *param2 = 0; *param3 = 0; @@ -2033,7 +2034,7 @@ static void ov107_022484DC(UnkStruct_ov107_02246170 *param0, u16 *param1, u16 *p } } -static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static BOOL ov107_0224850C(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { u8 v3 = param0->unk_15; @@ -2057,13 +2058,13 @@ static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param } u16 v0; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = 80; } else { v0 = 48; } - param0->unk_388 = BattleCastleAppSprite_New(¶m0->unk_158, 0, 0, 0, v1, v0 + (64 * v2), 50, 0, NULL); + param0->unk_388 = BattleCastleAppSprite_New(¶m0->spriteMan, 0, 0, 0, v1, v0 + (64 * v2), 50, 0, NULL); } if (BattleCastleAppSprite_IsAnimated(param0->unk_388) == 0) { @@ -2074,7 +2075,7 @@ static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param } break; case 3: - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02248A2C(param0, param1); @@ -2087,7 +2088,7 @@ static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param } break; case 4: - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02248AF0(param0, param1); @@ -2108,7 +2109,7 @@ static BOOL ov107_0224850C(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param return 0; } -static BOOL ov107_02248674(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static BOOL ov107_02248674(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { u8 v2 = param0->unk_15; u8 v1 = ov107_02249C98(param0->unk_14, param1); @@ -2122,7 +2123,7 @@ static BOOL ov107_02248674(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param return 1; break; case 3: - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { if (CommSys_CurNetId() == 0) { if (param0->unk_11 >= v2) { param0->unk_0F_0 = 0; @@ -2144,7 +2145,7 @@ static BOOL ov107_02248674(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param } break; case 4: - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { if (CommSys_CurNetId() == 0) { if (param0->unk_11 >= v2) { param0->unk_0F_0 = 0; @@ -2179,7 +2180,7 @@ static u16 ov107_02248770(u8 param0) return 15; } -static void ov107_0224877C(UnkStruct_ov107_02246170 *param0, s8 param1) +static void ov107_0224877C(BattleCastleOpponentApp *param0, s8 param1) { s8 v1 = param0->unk_0D; @@ -2200,13 +2201,13 @@ static void ov107_0224877C(UnkStruct_ov107_02246170 *param0, s8 param1) param0->unk_0D = v1; ov107_022483F0(param0); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param0->unk_0D)); - ov107_02247804(param0, ¶m0->unk_50[4], v0); + ov107_02247804(param0, ¶m0->windows[4], v0); return; } } } -static void ov107_022487DC(UnkStruct_ov107_02246170 *param0, s8 param1) +static void ov107_022487DC(BattleCastleOpponentApp *param0, s8 param1) { s8 v1 = param0->unk_0D; @@ -2227,18 +2228,18 @@ static void ov107_022487DC(UnkStruct_ov107_02246170 *param0, s8 param1) param0->unk_0D = v1; ov107_022483F0(param0); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param0->unk_0D)); - ov107_02247A3C(param0, ¶m0->unk_50[4], v0); + ov107_02247A3C(param0, ¶m0->windows[4], v0); return; } } } -static void ov107_0224883C(UnkStruct_ov107_02246170 *param0) +static void ov107_0224883C(BattleCastleOpponentApp *param0) { ov107_02248BB4(param0); ov107_02249258(param0); - ov107_02248860(¶m0->unk_50[7]); + ov107_02248860(¶m0->windows[7]); BattleCastleAppSprite_SetDrawFlag(param0->unk_3C4, 0); } @@ -2248,7 +2249,7 @@ static void ov107_02248860(Window *param0) Window_ClearAndScheduleCopyToVRAM(param0); } -BOOL ov107_02248874(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2) +BOOL ov107_02248874(BattleCastleOpponentApp *param0, u16 param1, u16 param2) { int v0, v1; @@ -2280,7 +2281,7 @@ BOOL ov107_02248874(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2) return v0; } -void ov107_022488CC(UnkStruct_ov107_02246170 *param0, u16 param1) +void ov107_022488CC(BattleCastleOpponentApp *param0, u16 param1) { int v1 = 0; TrainerInfo *v2 = SaveData_GetTrainerInfo(param0->saveData); @@ -2292,7 +2293,7 @@ void ov107_022488CC(UnkStruct_ov107_02246170 *param0, u16 param1) v1 += 1; for (int v0 = 0; v0 < 3; v0++) { - param0->unk_3E4[v1 + v0] = ov107_02249CAC(param0->saveData, param0->unk_09, v0); + param0->unk_3E4[v1 + v0] = ov107_02249CAC(param0->saveData, param0->challengeType, v0); } v1 += 3; @@ -2300,7 +2301,7 @@ void ov107_022488CC(UnkStruct_ov107_02246170 *param0, u16 param1) void ov107_02248910(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02246170 *v2 = param3; + BattleCastleOpponentApp *v2 = param3; const u16 *v3 = param2; int v1 = 0; @@ -2320,7 +2321,7 @@ void ov107_02248910(int param0, int param1, void *param2, void *param3) v1 += 3; } -void ov107_02248940(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2) +void ov107_02248940(BattleCastleOpponentApp *param0, u16 param1, u16 param2) { param0->unk_3E4[0] = param1; param0->unk_3E4[1] = param2; @@ -2338,7 +2339,7 @@ void ov107_02248940(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2) void ov107_02248978(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02246170 *v2 = param3; + BattleCastleOpponentApp *v2 = param3; const u16 *v3 = param2; int v1 = 0; @@ -2365,7 +2366,7 @@ void ov107_02248978(int param0, int param1, void *param2, void *param3) } } -void ov107_022489D0(UnkStruct_ov107_02246170 *param0, u16 param1) +void ov107_022489D0(BattleCastleOpponentApp *param0, u16 param1) { param0->unk_3E4[0] = param1; param0->unk_3E4[1] = param0->unk_0D; @@ -2373,7 +2374,7 @@ void ov107_022489D0(UnkStruct_ov107_02246170 *param0, u16 param1) void ov107_022489E0(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02246170 *v0 = param3; + BattleCastleOpponentApp *v0 = param3; const u16 *v1 = param2; if (CommSys_CurNetId() == param0) { @@ -2385,14 +2386,14 @@ void ov107_022489E0(int param0, int param1, void *param2, void *param3) ov107_02248420(v0, v0->unk_434, 1); } -void ov107_02248A04(UnkStruct_ov107_02246170 *param0) +void ov107_02248A04(BattleCastleOpponentApp *param0) { param0->unk_3E4[0] = 1; } void ov107_02248A10(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02246170 *v0 = param3; + BattleCastleOpponentApp *v0 = param3; const u16 *v1 = param2; if (CommSys_CurNetId() == param0) { @@ -2402,27 +2403,27 @@ void ov107_02248A10(int param0, int param1, void *param2, void *param3) v0->unk_436 = (u8)v1[0]; } -static void ov107_02248A2C(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248A2C(BattleCastleOpponentApp *param0, u8 param1) { - ov107_0224752C(param0, 2); - ov107_02248860(¶m0->unk_50[7]); + LoadSummaryBackground(param0, 2); + ov107_02248860(¶m0->windows[7]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[7]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[7]); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); - ov107_02247804(param0, ¶m0->unk_50[4], v0); + ov107_02247804(param0, ¶m0->windows[4], v0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); } -static void ov107_02248A74(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248A74(BattleCastleOpponentApp *param0, u8 param1) { param0->unk_3D4[ov107_02249C98(param0->unk_14, param1)] = 1; } -static void ov107_02248A8C(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248A8C(BattleCastleOpponentApp *param0, u8 param1) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); ov107_02248104(param0, 0, Pokemon_GetBoxPokemon(v0)); @@ -2435,26 +2436,26 @@ static void ov107_02248A8C(UnkStruct_ov107_02246170 *param0, u8 param1) Sound_PlayEffect(SEQ_SE_DP_UG_020); } -static void ov107_02248AF0(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248AF0(BattleCastleOpponentApp *param0, u8 param1) { - ov107_022475A8(param0, 2); - ov107_02248860(¶m0->unk_50[7]); + LoadMovesListBackground(param0, 2); + ov107_02248860(¶m0->windows[7]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[7]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[7]); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); - ov107_02247A3C(param0, ¶m0->unk_50[4], v0); + ov107_02247A3C(param0, ¶m0->windows[4], v0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); } -static void ov107_02248B38(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248B38(BattleCastleOpponentApp *param0, u8 param1) { param0->unk_3D8[ov107_02249C98(param0->unk_14, param1)] = 1; } -static void ov107_02248B50(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248B50(BattleCastleOpponentApp *param0, u8 param1) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); ov107_02248104(param0, 0, Pokemon_GetBoxPokemon(v0)); @@ -2467,7 +2468,7 @@ static void ov107_02248B50(UnkStruct_ov107_02246170 *param0, u8 param1) Sound_PlayEffect(SEQ_SE_DP_UG_020); } -static void ov107_02248BB4(UnkStruct_ov107_02246170 *param0) +static void ov107_02248BB4(BattleCastleOpponentApp *param0) { if (param0->unk_0F_2 == 1) { param0->unk_0F_2 = 0; @@ -2477,28 +2478,28 @@ static void ov107_02248BB4(UnkStruct_ov107_02246170 *param0) } } -static void ov107_02248BEC(UnkStruct_ov107_02246170 *param0) +static void ov107_02248BEC(BattleCastleOpponentApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); } -static void ov107_02248C08(UnkStruct_ov107_02246170 *param0, Window *window) +static void ov107_02248C08(BattleCastleOpponentApp *param0, Window *window) { u16 v0, v1, v2, v3, x, y; ov107_022484DC(param0, &v0, &v1, &v2, &v3); - if (ov104_0223BA14(param0->unk_09) == FALSE) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == FALSE) { x = v0 + 104; y = v1; Window_FillRectWithColor(window, 0, x - 48, y, 48, 16); - ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02247744(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); } else { if (CommSys_CurNetId() == 0) { x = v0 + 104; y = v1; Window_FillRectWithColor(window, 0, x - 48, y, 48, 16); - ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02247744(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); x = v2 + 104; @@ -2516,7 +2517,7 @@ static void ov107_02248C08(UnkStruct_ov107_02246170 *param0, Window *window) x = v2 + 104; y = v3; Window_FillRectWithColor(window, 0, x - 48, v3, 48, 16); - ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_022480EC(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02247744(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); } } @@ -2524,7 +2525,7 @@ static void ov107_02248C08(UnkStruct_ov107_02246170 *param0, Window *window) Window_ScheduleCopyToVRAM(window); } -static void ov107_02248E54(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02248E54(BattleCastleOpponentApp *param0, u8 param1) { ov107_022480EC(param0, 0, ov107_02248770(param1), 4, 0); param0->unk_0A = ov107_022477CC(param0, 25, FONT_MESSAGE); @@ -2533,13 +2534,13 @@ static void ov107_02248E54(UnkStruct_ov107_02246170 *param0, u8 param1) param0->unk_0E = param1; } -static void ov107_02248E84(UnkStruct_ov107_02246170 *param0, Window *param1) +static void ov107_02248E84(BattleCastleOpponentApp *param0, Window *param1) { u16 v0, v1, v2, v3, v4, v5; ov107_022484DC(param0, &v2, &v3, &v4, &v5); - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = v2 + 0; v1 = v3 + 0; ov107_0224812C(param0, param1, v0, v1, 0); @@ -2570,7 +2571,7 @@ static void ov107_02248E84(UnkStruct_ov107_02246170 *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static void ov107_02248F18(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static void ov107_02248F18(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { Sound_PlayEffect(SEQ_SE_DP_PIRORIRO2); @@ -2597,22 +2598,22 @@ static void ov107_02248F18(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param if (CommSys_CurNetId() == 0) { if (param1 < v2) { ov107_02248110(param0, 5); - ov104_0223BC2C(param0->frontier, param0->unk_09, v3); + ov104_0223BC2C(param0->frontier, param0->challengeType, v3); } else { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); param0->unk_43A -= v3; } } else { if (param1 < v2) { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); param0->unk_43A -= v3; } else { ov107_02248110(param0, 5); - ov104_0223BC2C(param0->frontier, param0->unk_09, v3); + ov104_0223BC2C(param0->frontier, param0->challengeType, v3); } } - ov107_02248C08(param0, ¶m0->unk_50[0]); + ov107_02248C08(param0, ¶m0->windows[0]); ov107_02248BB4(param0); switch (param2) { @@ -2631,29 +2632,29 @@ static void ov107_02248F18(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param } } -static void ov107_02249024(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_02249024(BattleCastleOpponentApp *param0, u8 param1) { Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); ov107_02248104(param0, 0, Pokemon_GetBoxPokemon(v0)); param0->unk_0A = ov107_022477CC(param0, 20, FONT_MESSAGE); param0->unk_3CC[ov107_02249C98(param0->unk_14, param1)] = 1; - BattleCastleAppSprite_SetDrawFlag(param0->unk_378[ov107_02249C98(param0->unk_14, param1)], 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_368[ov107_02249C98(param0->unk_14, param1)], 1); + BattleCastleAppSprite_SetDrawFlag(param0->ballSprites[ov107_02249C98(param0->unk_14, param1)], 0); + BattleCastleAppSprite_SetDrawFlag(param0->monSprites[ov107_02249C98(param0->unk_14, param1)], 1); - ov107_02247B78(param0, ¶m0->unk_50[3]); - ov107_02247C64(param0, ¶m0->unk_50[2]); - BattleCastleAppSprite_SetDrawFlag(param0->unk_394[ov107_02249C98(param0->unk_14, param1)], 1); + ov107_02247B78(param0, ¶m0->windows[3]); + ov107_02247C64(param0, ¶m0->windows[2]); + BattleCastleAppSprite_SetDrawFlag(param0->barSprites[ov107_02249C98(param0->unk_14, param1)], 1); Sound_PlayEffect(SEQ_SE_DP_UG_020); } -static void ov107_022490E8(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static void ov107_022490E8(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); Pokemon *v1 = Party_GetPokemonBySlotIndex(param0->unk_3DC, ov107_02249C98(param0->unk_14, param1)); ov107_02248104(param0, 0, Pokemon_GetBoxPokemon(v1)); @@ -2686,18 +2687,18 @@ static void ov107_022490E8(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param Pokemon_CalcLevelAndStats(v1); } - ov107_02247B78(param0, ¶m0->unk_50[3]); - ov107_02247C64(param0, ¶m0->unk_50[2]); + ov107_02247B78(param0, ¶m0->windows[3]); + ov107_02247C64(param0, ¶m0->windows[2]); } -static void ov107_02249238(UnkStruct_ov107_02246170 *param0) +static void ov107_02249238(BattleCastleOpponentApp *param0) { - Window_FillTilemap(¶m0->unk_50[4], 0); - Window_ClearAndCopyToVRAM(¶m0->unk_50[4]); + Window_FillTilemap(¶m0->windows[4], 0); + Window_ClearAndCopyToVRAM(¶m0->windows[4]); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); } -static void ov107_02249258(UnkStruct_ov107_02246170 *param0) +static void ov107_02249258(BattleCastleOpponentApp *param0) { if (param0->unk_0F_1 == 1) { param0->unk_0F_1 = 0; @@ -2712,43 +2713,43 @@ static void ov107_02249258(UnkStruct_ov107_02246170 *param0) } } -static void ov107_022492A8(UnkStruct_ov107_02246170 *param0) +static void ov107_022492A8(BattleCastleOpponentApp *param0) { - u8 v1 = ov104_0223B7A8(param0->unk_09, 1); + u8 v1 = ov104_0223B7A8(param0->challengeType, 1); for (int v0 = 0; v0 < v1; v0++) { Pokemon *v3 = Party_GetPokemonBySlotIndex(param0->unk_3DC, v0); u8 v2 = ov104_0222E240(Pokemon_GetValue(v3, MON_DATA_HP, NULL), Pokemon_GetValue(v3, MON_DATA_MAX_HP, NULL)); - if (param0->unk_368[v0] != NULL) { - ov107_02249C1C(param0->unk_368[v0], v2); + if (param0->monSprites[v0] != NULL) { + ov107_02249C1C(param0->monSprites[v0], v2); if ((v0 != ov107_02249C98(param0->unk_14, param0->unk_0D)) || (param0->unk_0D >= param0->unk_15)) { - ov107_02249C28(param0->unk_368[v0], 0); + ov107_02249C28(param0->monSprites[v0], 0); } else { - ov107_02249C28(param0->unk_368[v0], 1); + ov107_02249C28(param0->monSprites[v0], 1); } } } } -static BOOL ov107_0224933C(UnkStruct_ov107_02246170 *param0, u16 param1, u16 param2) +static BOOL ov107_0224933C(BattleCastleOpponentApp *param0, u16 param1, u16 param2) { ov107_02248BB4(param0); - u16 v0 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + u16 v0 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); if (v0 < param1) { ov107_02248BEC(param0); param0->unk_0A = ov107_022477CC(param0, param2, FONT_MESSAGE); - param0->unk_08 = 15; + param0->subState = 15; return 0; } - if (ov104_0223BA14(param0->unk_09) == 0) { - ov107_02248860(¶m0->unk_50[7]); - ov104_0223BC2C(param0->frontier, param0->unk_09, param1); - ov107_02248C08(param0, ¶m0->unk_50[0]); + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { + ov107_02248860(¶m0->windows[7]); + ov104_0223BC2C(param0->frontier, param0->challengeType, param1); + ov107_02248C08(param0, ¶m0->windows[0]); if (param1 == 2) { ov107_02248A8C(param0, param0->unk_0D); @@ -2756,7 +2757,7 @@ static BOOL ov107_0224933C(UnkStruct_ov107_02246170 *param0, u16 param1, u16 par ov107_02248B50(param0, param0->unk_0D); } - param0->unk_08 = 12; + param0->subState = 12; return 0; } else { param0->unk_10 = 1; @@ -2772,9 +2773,9 @@ static const u16 Unk_ov107_0224A0DC[3][3] = { { 0x0, 0x50, 0x50 } }; -static void ov107_022493CC(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param2) +static void ov107_022493CC(BattleCastleOpponentApp *param0, u8 param1, u8 param2) { - u8 v3 = ov104_0223B7A8(param0->unk_09, 0); + u8 v3 = ov104_0223B7A8(param0->challengeType, 0); u8 v2; if (param2 == 5) { @@ -2791,62 +2792,62 @@ static void ov107_022493CC(UnkStruct_ov107_02246170 *param0, u8 param1, u8 param if (CommSys_CurNetId() == 0) { if (param1 < v0) { ov107_02248110(param0, 5); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); - ov104_0223BC2C(param0->frontier, param0->unk_09, 50); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, 50); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); v5[0] = (v4 + 1); - sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->unk_09, v2), sub_0205E6A8(sub_0205E5B4(param0->unk_09, v2)), v4 + 1); + sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->challengeType, v2), sub_0205E6A8(sub_0205E5B4(param0->challengeType, v2)), v4 + 1); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { param0->unk_0F_3 = 2; } } else { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); v4 = param0->unk_437[v2]; param0->unk_43A -= 50; param0->unk_437[v2]++; } } else { if (param1 < v0) { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); v4 = param0->unk_437[v2]; param0->unk_43A -= 50; param0->unk_437[v2]++; } else { ov107_02248110(param0, 5); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); - ov104_0223BC2C(param0->frontier, param0->unk_09, 50); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, 50); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); v5[0] = (v4 + 1); - sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->unk_09, v2), sub_0205E6A8(sub_0205E5B4(param0->unk_09, v2)), v4 + 1); + sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->challengeType, v2), sub_0205E6A8(sub_0205E5B4(param0->challengeType, v2)), v4 + 1); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { param0->unk_0F_3 = 2; } } } ov107_02248BB4(param0); - ov107_02248C08(param0, ¶m0->unk_50[0]); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); + ov107_02248C08(param0, ¶m0->windows[0]); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); param0->unk_0A = ov107_022477CC(param0, Unk_ov107_0224A0DC[v2][v4], FONT_MESSAGE); } -static void ov107_02249580(UnkStruct_ov107_02246170 *param0) +static void ov107_02249580(BattleCastleOpponentApp *param0) { - u8 v0 = ov104_0223B7DC(param0->unk_09, 1); + u8 v0 = ov104_0223B7DC(param0->challengeType, 1); for (int v1 = 0; v1 < v0; v1++) { ov107_022495A8(param0, v1); } } -static void ov107_022495A8(UnkStruct_ov107_02246170 *param0, u8 param1) +static void ov107_022495A8(BattleCastleOpponentApp *param0, u8 param1) { if (param0->unk_3D4[param1] == 1) { BattleCastleAppSprite_SetDrawFlag(param0->unk_3A4[param1][0], 1); @@ -2857,13 +2858,13 @@ static void ov107_022495A8(UnkStruct_ov107_02246170 *param0, u8 param1) } } -static void ov107_022495E4(UnkStruct_ov107_02246170 *param0, u32 *param1, u32 *param2) +static void ov107_022495E4(BattleCastleOpponentApp *app, u32 *x, u32 *y) { - if (ov104_0223BA14(param0->unk_09) == 1) { - *param1 = 64; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + *x = 64; } else { - *param1 = 96; + *x = 96; } - *param2 = 60; + *y = 60; } diff --git a/src/overlay107/ov107_02241AE0.c b/src/overlay107/battle_castle_self_app.c similarity index 55% rename from src/overlay107/ov107_02241AE0.c rename to src/overlay107/battle_castle_self_app.c index 5eae436b24..fc15788064 100644 --- a/src/overlay107/ov107_02241AE0.c +++ b/src/overlay107/battle_castle_self_app.c @@ -1,4 +1,4 @@ -#include "overlay107/ov107_02241AE0.h" +#include "overlay107/battle_castle_self_app.h" #include #include @@ -14,7 +14,6 @@ #include "overlay107/battle_castle_app_sprite_manager.h" #include "overlay107/battle_castle_app_windows.h" #include "overlay107/ov107_02249C98.h" -#include "overlay107/struct_ov107_02241D6C_decl.h" #include "bg_window.h" #include "communication_information.h" @@ -31,6 +30,7 @@ #include "menu.h" #include "message.h" #include "narc.h" +#include "narc_frontier_bg.h" #include "overlay_manager.h" #include "palette.h" #include "party.h" @@ -202,11 +202,11 @@ const u16 Unk_ov107_02249E12[] = { NELEMS(Unk_ov107_0224A02C) }; -struct UnkStruct_ov107_02241D6C_t { +typedef struct BattleCastleSelfApp { ApplicationManager *appMan; BattleFrontier *frontier; - u8 unk_08; - u8 unk_09; + u8 subState; + u8 challengeType; u8 unk_0A; u8 unk_0B; u8 unk_0C; @@ -227,42 +227,42 @@ struct UnkStruct_ov107_02241D6C_t { u16 unk_16; u16 unk_18; u16 unk_1A; - MessageLoader *unk_1C; - MessageLoader *unk_20; - StringTemplate *unk_24; - String *unk_28; - String *unk_2C; + MessageLoader *itemMsgLoader; + MessageLoader *msgLoader; + StringTemplate *strTemplate; + String *displayStr; + String *fmtStr; String *unk_30[3]; u16 unk_3C[8]; - BgConfig *unk_4C; - Window unk_50[18]; + BgConfig *bgConfig; + Window windows[18]; MenuTemplate unk_170; Menu *unk_17C; StringList unk_180[3]; ListMenu *unk_198; StringList *unk_19C; ListMenuTemplate unk_1A0; - PaletteData *unk_1C0; - FontSpecialCharsContext *unk_1C4; + PaletteData *plttData; + FontSpecialCharsContext *specialChars; Options *options; SaveData *saveData; UnkStruct_020302DC *unk_1D0; UnkStruct_0203041C *unk_1D4; - BattleCastleAppSpriteManager unk_1D8; - BattleCastleAppSprite *unk_3E8; - BattleCastleAppSprite *unk_3EC; - BattleCastleAppSprite *unk_3F0; - BattleCastleAppSprite *unk_3F4[4]; - BattleCastleAppSprite *unk_404[4]; + BattleCastleAppSpriteManager spriteMan; + BattleCastleAppSprite *upArrowSprite; + BattleCastleAppSprite *downArrowSprite; + BattleCastleAppSprite *itemSprite; + BattleCastleAppSprite *monSprites[4]; + BattleCastleAppSprite *itemIconSprites[4]; BattleCastleAppSprite *unk_414; - BattleCastleAppSprite *unk_418; + BattleCastleAppSprite *cursorSprite; BattleCastleAppSprite *unk_41C; - BattleCastleAppSprite *unk_420[4]; + BattleCastleAppSprite *barSprites[4]; BattleCastleAppSprite *unk_430; BattleCastleAppSprite *unk_434; u16 *unk_438; Party *unk_43C; - NARC *unk_440; + NARC *narc; u16 unk_444[40]; u8 unk_494; u8 unk_495; @@ -270,118 +270,118 @@ struct UnkStruct_ov107_02241D6C_t { u8 unk_497[3]; u16 unk_49A; u32 unk_49C; -}; - -static BOOL ov107_02241D6C(UnkStruct_ov107_02241D6C *param0); -static void ov107_02241E70(UnkStruct_ov107_02241D6C *param0); -static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0); -static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0); -static BOOL ov107_02242D60(UnkStruct_ov107_02241D6C *param0); -static BOOL ov107_02242DCC(UnkStruct_ov107_02241D6C *param0); -static void ov107_02242E14(UnkStruct_ov107_02241D6C *param0); -static void ov107_02242F24(void); -static void ov107_02242F5C(UnkStruct_ov107_02241D6C *param0); -static void ov107_02243384(UnkStruct_ov107_02241D6C *param0); -static void ov107_02243324(UnkStruct_ov107_02241D6C *param0); -static void ov107_022433A8(BgConfig *param0); -static void ov107_022433EC(void *param0); -static void ov107_02243424(void); -static void ov107_02243444(BgConfig *param0); -static void ov107_02243588(UnkStruct_ov107_02241D6C *param0, u32 param1); -static void ov107_022435FC(void); -static void ov107_02243630(UnkStruct_ov107_02241D6C *param0, u32 param1); -static void ov107_022436AC(UnkStruct_ov107_02241D6C *param0, u32 param1); -static void ov107_022436F4(UnkStruct_ov107_02241D6C *param0, u32 param1); -static void ov107_02243678(void); -static void ov107_0224373C(UnkStruct_ov107_02241D6C *param0, u32 param1); -static u8 ov107_0224379C(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); -static u8 ov107_022437CC(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, int param10); -static u8 ov107_02243860(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); -static u8 ov107_02243890(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); -static u8 ov107_02243918(UnkStruct_ov107_02241D6C *param0, int param1, u8 param2); -static void ov107_02243950(UnkStruct_ov107_02241D6C *param0, Window *param1, Pokemon *param2); -static void ov107_02243B5C(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u16 param3, u16 param4, int param5); -static void ov107_02243B84(UnkStruct_ov107_02241D6C *param0, Window *param1, Pokemon *param2); -static void ov107_02243C18(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8); -static void ov107_02243CC0(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_02243CFC(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u8 param3); -static void ov107_02243DB0(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_02243DE4(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u8 param3); -static void ov107_02243E74(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_02243F4C(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u32 param3); -static void ov107_02243FA4(UnkStruct_ov107_02241D6C *param0); -static void ov107_0224400C(UnkStruct_ov107_02241D6C *param0); -static void ov107_02244018(UnkStruct_ov107_02241D6C *param0); -static void ov107_0224403C(UnkStruct_ov107_02241D6C *param0); -static void ov107_02244064(UnkStruct_ov107_02241D6C *param0); -static void ov107_02244094(UnkStruct_ov107_02241D6C *param0); -static void ov107_0224409C(UnkStruct_ov107_02241D6C *param0); -static void ov107_022440C0(UnkStruct_ov107_02241D6C *param0); -static void ov107_022440C8(UnkStruct_ov107_02241D6C *param0, u8 param1); -static void ov107_02244120(UnkStruct_ov107_02241D6C *param0); -static void ov107_0224414C(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2); -static void ov107_022441B0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2, int param3); -static void ov107_022441DC(UnkStruct_ov107_02241D6C *param0); -static void ov107_02244240(UnkStruct_ov107_02241D6C *param0, u8 param1); +} BattleCastleSelfApp; + +static BOOL State_FadeInApp(BattleCastleSelfApp *app); +static void ov107_02241E70(BattleCastleSelfApp *param0); +static BOOL ov107_02241EC8(BattleCastleSelfApp *param0); +static BOOL ov107_02242C64(BattleCastleSelfApp *param0); +static BOOL ov107_02242D60(BattleCastleSelfApp *param0); +static BOOL State_FadeOutApp(BattleCastleSelfApp *app); +static void FreeAssets(BattleCastleSelfApp *app); +static void InitGraphicsPlane(void); +static void LoadAssets(BattleCastleSelfApp *app); +static void InitSpriteManager(BattleCastleSelfApp *app); +static void LoadBackgrounds(BattleCastleSelfApp *app); +static void FreeBackgrounds(BgConfig *bgConfig); +static void VBlankCallback(void *data); +static void SetGXBanks(void); +static void InitBackgrounds(BgConfig *bgConfig); +static void LoadMainBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer); +static void LoadPalette(void); +static void LoadSummaryBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer); +static void LoadMovesListBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer); +static void LoadItemSelectBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer); +static void LoadPalette2(void); +static void LoadSubScreenBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer); +static u8 ov107_0224379C(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); +static u8 ov107_022437CC(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, int param10); +static u8 ov107_02243860(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9); +static u8 ov107_02243890(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10); +static u8 ov107_02243918(BattleCastleSelfApp *param0, int param1, u8 param2); +static void ov107_02243950(BattleCastleSelfApp *param0, Window *param1, Pokemon *param2); +static void ov107_02243B5C(BattleCastleSelfApp *param0, Window *param1, int param2, u16 param3, u16 param4, int param5); +static void ov107_02243B84(BattleCastleSelfApp *param0, Window *param1, Pokemon *param2); +static void ov107_02243C18(BattleCastleSelfApp *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8); +static void ov107_02243CC0(BattleCastleSelfApp *param0, Window *param1); +static void ov107_02243CFC(BattleCastleSelfApp *param0, Window *param1, u8 param2, u8 param3); +static void ov107_02243DB0(BattleCastleSelfApp *param0, Window *param1); +static void ov107_02243DE4(BattleCastleSelfApp *param0, Window *param1, u8 param2, u8 param3); +static void ov107_02243E74(BattleCastleSelfApp *param0, Window *param1); +static void ov107_02243F4C(BattleCastleSelfApp *param0, Window *param1, u8 param2, u32 param3); +static void ov107_02243FA4(BattleCastleSelfApp *param0); +static void ov107_0224400C(BattleCastleSelfApp *param0); +static void ov107_02244018(BattleCastleSelfApp *param0); +static void ov107_0224403C(BattleCastleSelfApp *param0); +static void ov107_02244064(BattleCastleSelfApp *param0); +static void ov107_02244094(BattleCastleSelfApp *param0); +static void ov107_0224409C(BattleCastleSelfApp *param0); +static void ov107_022440C0(BattleCastleSelfApp *param0); +static void ov107_022440C8(BattleCastleSelfApp *param0, u8 param1); +static void ov107_02244120(BattleCastleSelfApp *param0); +static void ov107_0224414C(BattleCastleSelfApp *param0, Window *param1, u8 param2); +static void ov107_022441B0(BattleCastleSelfApp *param0, u8 param1, u8 param2, int param3); +static void ov107_022441DC(BattleCastleSelfApp *param0); +static void ov107_02244240(BattleCastleSelfApp *param0, u8 param1); static void ov107_0224440C(ListMenu *param0, u32 param1, u8 param2); static void ov107_02244560(ListMenu *param0, u32 param1, u8 param2); -static void ov107_022445C4(UnkStruct_ov107_02241D6C *param0); +static void ov107_022445C4(BattleCastleSelfApp *param0); static void ov107_02244690(ListMenu *param0, u32 param1, u8 param2); static void ov107_02244708(ListMenu *param0, u32 param1, u8 param2); -static void ov107_02244780(UnkStruct_ov107_02241D6C *param0); +static void ov107_02244780(BattleCastleSelfApp *param0); static void ov107_0224486C(ListMenu *param0, u32 param1, u8 param2); static void ov107_022448E8(ListMenu *param0, u32 param1, u8 param2); -static void ov107_02244944(UnkStruct_ov107_02241D6C *param0); +static void ov107_02244944(BattleCastleSelfApp *param0); static void ov107_02244A1C(ListMenu *param0, u32 param1, u8 param2); -static void ov107_02244A74(UnkStruct_ov107_02241D6C *param0, u32 param1, s32 param2, u32 param3, int param4); -static void ov107_02244A8C(UnkStruct_ov107_02241D6C *param0, u32 param1, BoxPokemon *param2); -static void ov107_02244A98(UnkStruct_ov107_02241D6C *param0, u32 param1); -static void ov107_02244AB4(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4); -static void ov107_02244B24(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4); -static void ov107_02244B8C(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5); -static u8 ov107_02243EF8(UnkStruct_ov107_02241D6C *param0, Window *param1, u16 param2); -static void ov107_02244BD0(UnkStruct_ov107_02241D6C *param0, int *param1, int param2); -static void ov107_02244BD8(UnkStruct_ov107_02241D6C *param0, int param1); -static void ov107_02244C70(UnkStruct_ov107_02241D6C *param0); -static void ov107_02244CA0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); -static void ov107_02244D08(UnkStruct_ov107_02241D6C *param0, u32 *param1, u32 *param2, u8 param3); -static u16 ov107_02244D5C(UnkStruct_ov107_02241D6C *param0, u16 param1, u8 param2); +static void ov107_02244A74(BattleCastleSelfApp *param0, u32 param1, s32 param2, u32 param3, int param4); +static void ov107_02244A8C(BattleCastleSelfApp *param0, u32 param1, BoxPokemon *param2); +static void ov107_02244A98(BattleCastleSelfApp *param0, u32 param1); +static void ov107_02244AB4(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4); +static void ov107_02244B24(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4); +static void ov107_02244B8C(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5); +static u8 ov107_02243EF8(BattleCastleSelfApp *param0, Window *param1, u16 param2); +static void ChangeState(BattleCastleSelfApp *app, int *state, int newState); +static void ov107_02244BD8(BattleCastleSelfApp *param0, int param1); +static void ov107_02244C70(BattleCastleSelfApp *param0); +static void ov107_02244CA0(BattleCastleSelfApp *param0, u8 param1, u8 param2); +static void GetCursorSpritePos(BattleCastleSelfApp *app, u32 *x, u32 *y, u8 slot); +static u16 ov107_02244D5C(BattleCastleSelfApp *param0, u16 param1, u8 param2); static u16 ov107_02244D90(u16 param0); -static u16 ov107_02244DE0(UnkStruct_ov107_02241D6C *param0, u16 param1, u8 param2); -static void ov107_02244E14(UnkStruct_ov107_02241D6C *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4); -static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); -static void ov107_0224503C(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); -static u32 ov107_022450E8(UnkStruct_ov107_02241D6C *param0, u8 param1); -static u32 ov107_02245114(UnkStruct_ov107_02241D6C *param0, u8 param1); -static void ov107_02245140(UnkStruct_ov107_02241D6C *param0, s8 param1); -static void ov107_0224518C(UnkStruct_ov107_02241D6C *param0, s8 param1); -static void ov107_022451D8(UnkStruct_ov107_02241D6C *param0); +static u16 ov107_02244DE0(BattleCastleSelfApp *param0, u16 param1, u8 param2); +static void ov107_02244E14(BattleCastleSelfApp *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4); +static BOOL ov107_02244E44(BattleCastleSelfApp *param0, u8 param1, u8 param2); +static void ov107_0224503C(BattleCastleSelfApp *param0, u8 param1, u8 param2); +static u32 ov107_022450E8(BattleCastleSelfApp *param0, u8 param1); +static u32 ov107_02245114(BattleCastleSelfApp *param0, u8 param1); +static void ov107_02245140(BattleCastleSelfApp *param0, s8 param1); +static void ov107_0224518C(BattleCastleSelfApp *param0, s8 param1); +static void ov107_022451D8(BattleCastleSelfApp *param0); static BOOL ov107_02245210(Pokemon *param0); static void ov107_02245288(Window *param0); -BOOL ov107_0224529C(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2); -void ov107_022452F4(UnkStruct_ov107_02241D6C *param0, u16 param1); +BOOL ov107_0224529C(BattleCastleSelfApp *param0, u16 param1, u16 param2); +void ov107_022452F4(BattleCastleSelfApp *param0, u16 param1); void ov107_02245338(int param0, int param1, void *param2, void *param3); -void ov107_02245368(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2); -void ov107_022453F8(UnkStruct_ov107_02241D6C *param0, u16 param1); +void ov107_02245368(BattleCastleSelfApp *param0, u16 param1, u16 param2); +void ov107_022453F8(BattleCastleSelfApp *param0, u16 param1); void ov107_02245408(int param0, int param1, void *param2, void *param3); -void ov107_0224542C(UnkStruct_ov107_02241D6C *param0); +void ov107_0224542C(BattleCastleSelfApp *param0); void ov107_02245438(int param0, int param1, void *param2, void *param3); static void ov107_02245454(Pokemon *param0, u16 param1); -static void ov107_02245464(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_022454F8(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); -static void ov107_022455A0(UnkStruct_ov107_02241D6C *param0, u8 param1, u16 param2); -static void ov107_02245618(UnkStruct_ov107_02241D6C *param0); -static void ov107_02245650(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_02245660(UnkStruct_ov107_02241D6C *param0); -static void ov107_022456E4(UnkStruct_ov107_02241D6C *param0); -static void ov107_02245730(UnkStruct_ov107_02241D6C *param0); -static void ov107_02245780(UnkStruct_ov107_02241D6C *param0, Window *param1); -static void ov107_022459D0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); -static void ov107_02245B40(UnkStruct_ov107_02241D6C *param0, u8 param1); -static void ov107_02245B90(UnkStruct_ov107_02241D6C *param0, u8 param1); -static void ov107_02245BE0(UnkStruct_ov107_02241D6C *param0); -static void ov107_02245C00(UnkStruct_ov107_02241D6C *param0); -static void ov107_02245C94(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2); +static void ov107_02245464(BattleCastleSelfApp *param0, Window *param1); +static void ov107_022454F8(BattleCastleSelfApp *param0, u8 param1, u8 param2); +static void ov107_022455A0(BattleCastleSelfApp *param0, u8 param1, u16 param2); +static void ov107_02245618(BattleCastleSelfApp *param0); +static void ov107_02245650(BattleCastleSelfApp *param0, Window *param1); +static void ov107_02245660(BattleCastleSelfApp *param0); +static void ov107_022456E4(BattleCastleSelfApp *param0); +static void ov107_02245730(BattleCastleSelfApp *param0); +static void ov107_02245780(BattleCastleSelfApp *param0, Window *param1); +static void ov107_022459D0(BattleCastleSelfApp *param0, u8 param1, u8 param2); +static void ov107_02245B40(BattleCastleSelfApp *param0, u8 param1); +static void ov107_02245B90(BattleCastleSelfApp *param0, u8 param1); +static void ov107_02245BE0(BattleCastleSelfApp *param0); +static void ov107_02245C00(BattleCastleSelfApp *param0); +static void ov107_02245C94(BattleCastleSelfApp *param0, u8 param1, u8 param2); extern void ov107_2243860(void); static const u16 Unk_ov107_02249E00[] = { @@ -438,61 +438,61 @@ static const ListMenuTemplate Unk_ov107_02249EE4 = { NULL }; -int ov107_02241AE0(ApplicationManager *appMan, int *param1) +BOOL BattleCastleSelfApp_Init(ApplicationManager *appMan, int *state) { - Overlay_LoadByID(FS_OVERLAY_ID(overlay104), 2); - ov107_02242F24(); + Overlay_LoadByID(FS_OVERLAY_ID(overlay104), OVERLAY_LOAD_ASYNC); + InitGraphicsPlane(); Heap_Create(HEAP_ID_APPLICATION, HEAP_ID_BATTLE_CASTLE_APP, 0x25000); - UnkStruct_ov107_02241D6C *v1 = ApplicationManager_NewData(appMan, sizeof(UnkStruct_ov107_02241D6C), HEAP_ID_BATTLE_CASTLE_APP); - memset(v1, 0, sizeof(UnkStruct_ov107_02241D6C)); + BattleCastleSelfApp *app = ApplicationManager_NewData(appMan, sizeof(BattleCastleSelfApp), HEAP_ID_BATTLE_CASTLE_APP); + memset(app, 0, sizeof(BattleCastleSelfApp)); - v1->unk_4C = BgConfig_New(HEAP_ID_BATTLE_CASTLE_APP); - v1->appMan = appMan; + app->bgConfig = BgConfig_New(HEAP_ID_BATTLE_CASTLE_APP); + app->appMan = appMan; UnkStruct_ov104_0223597C *v2 = ApplicationManager_Args(appMan); - v1->saveData = v2->saveData; - v1->unk_1D0 = sub_020302DC(v1->saveData); - v1->unk_1D4 = sub_0203041C(v1->saveData); - v1->unk_09 = v2->unk_04; - v1->unk_438 = &v2->unk_20; - v1->options = SaveData_GetOptions(v1->saveData); - v1->unk_43C = v2->unk_18; - v1->unk_12 = 0xff; - v1->unk_49A = v2->unk_28; - v1->frontier = SaveData_GetBattleFrontier(v1->saveData); + app->saveData = v2->saveData; + app->unk_1D0 = sub_020302DC(app->saveData); + app->unk_1D4 = sub_0203041C(app->saveData); + app->challengeType = v2->unk_04; + app->unk_438 = &v2->unk_20; + app->options = SaveData_GetOptions(app->saveData); + app->unk_43C = v2->unk_18; + app->unk_12 = 0xff; + app->unk_49A = v2->unk_28; + app->frontier = SaveData_GetBattleFrontier(app->saveData); - for (int v0 = 0; v0 < 3; v0++) { - v1->unk_497[v0] = 1; + for (int i = 0; i < 3; i++) { + app->unk_497[i] = 1; } - if (ov104_0223BA14(v1->unk_09) == 0) { - v1->unk_14 = 3; + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + app->unk_14 = 3; } else { - v1->unk_14 = 4; + app->unk_14 = 4; } - v1->unk_15 = v1->unk_14; - v1->unk_0C = (v1->unk_15 - 1); + app->unk_15 = app->unk_14; + app->unk_0C = (app->unk_15 - 1); - ov107_02242F5C(v1); + LoadAssets(app); - if (ov104_0223BA14(v1->unk_09) == 1) { - sub_0209BA80(v1); + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + sub_0209BA80(app); } - (*param1) = 0; + *state = 0; - return 1; + return TRUE; } -int ov107_02241BD4(ApplicationManager *appMan, int *param1) +BOOL BattleCastleSelfApp_Main(ApplicationManager *appMan, int *state) { - UnkStruct_ov107_02241D6C *v0 = ApplicationManager_Data(appMan); + BattleCastleSelfApp *v0 = ApplicationManager_Data(appMan); if (v0->unk_496 == 1) { - switch (*param1) { + switch (*state) { case 1: v0->unk_496 = 0; ov107_022451D8(v0); @@ -502,174 +502,174 @@ int ov107_02241BD4(ApplicationManager *appMan, int *param1) v0->unk_0E_2 = 0; } - BattleCastleApp_DrawMessageBox(&v0->unk_50[6], Options_Frame(v0->options)); - BattleFrontier_SetPartnerInStrTemplate(v0->unk_24, 0); + BattleCastleApp_DrawMessageBox(&v0->windows[6], Options_Frame(v0->options)); + BattleFrontier_SetPartnerInStrTemplate(v0->strTemplate, 0); v0->unk_0A = ov107_02243918(v0, 8, FONT_MESSAGE); - ov107_02244BD0(v0, param1, 3); + ChangeState(v0, state, 3); break; } } else if (v0->unk_12 != 0xff) { - switch (*param1) { + switch (*state) { case 1: case 3: v0->unk_496 = 0; ov107_022451D8(v0); - ov107_02244BD0(v0, param1, 2); + ChangeState(v0, state, 2); break; } } - switch (*param1) { + switch (*state) { case 0: - if (ov107_02241D6C(v0) == 1) { - ov107_02244BD0(v0, param1, 1); + if (State_FadeInApp(v0) == 1) { + ChangeState(v0, state, 1); } break; case 1: if (ov107_02241EC8(v0) == 1) { if (v0->unk_0E_1 == 1) { - ov107_02244BD0(v0, param1, 2); + ChangeState(v0, state, 2); } else { - if (ov104_0223BA14(v0->unk_09) == 1) { - ov107_02244BD0(v0, param1, 3); + if (BattleCastle_IsMultiPlayerChallenge(v0->challengeType) == 1) { + ChangeState(v0, state, 3); } else { - ov107_02244BD0(v0, param1, 4); + ChangeState(v0, state, 4); } } } break; case 2: if (ov107_02242C64(v0) == 1) { - ov107_02244BD0(v0, param1, 1); + ChangeState(v0, state, 1); } break; case 3: if (ov107_02242D60(v0) == 1) { - ov107_02244BD0(v0, param1, 4); + ChangeState(v0, state, 4); } break; case 4: - if (ov107_02242DCC(v0) == 1) { - return 1; + if (State_FadeOutApp(v0) == TRUE) { + return TRUE; } break; } ov107_02245C00(v0); - SpriteList_Update(v0->unk_1D8.spriteList); + SpriteList_Update(v0->spriteMan.spriteList); - return 0; + return FALSE; } -int ov107_02241D2C(ApplicationManager *appMan, int *param1) +BOOL BattleCastleSelfApp_Exit(ApplicationManager *appMan, int *state) { - UnkStruct_ov107_02241D6C *v1 = ApplicationManager_Data(appMan); - *v1->unk_438 = v1->unk_0D; + BattleCastleSelfApp *app = ApplicationManager_Data(appMan); + *app->unk_438 = app->unk_0D; VramTransfer_Free(); - ov107_02242E14(v1); + FreeAssets(app); ApplicationManager_FreeData(appMan); SetVBlankCallback(NULL, NULL); Heap_Destroy(HEAP_ID_BATTLE_CASTLE_APP); Overlay_UnloadByID(FS_OVERLAY_ID(overlay104)); - return 1; + return TRUE; } -static BOOL ov107_02241D6C(UnkStruct_ov107_02241D6C *param0) +static BOOL State_FadeInApp(BattleCastleSelfApp *app) { - switch (param0->unk_08) { + switch (app->subState) { case 0: - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(215); } - param0->unk_08++; + app->subState++; break; case 1: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (CommTiming_IsSyncState(215) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (CommTiming_IsSyncState(215) == TRUE) { CommTool_ClearReceivedTempDataAllPlayers(); - param0->unk_08++; + app->subState++; } } else { - param0->unk_08++; + app->subState++; } break; case 2: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (ov107_0224529C(param0, 10, 0) == 1) { - param0->unk_08++; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (ov107_0224529C(app, 10, 0) == TRUE) { + app->subState++; } } else { - ov107_02241E70(param0); - StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 1 * 3, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + ov107_02241E70(app); + StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 3, HEAP_ID_BATTLE_CASTLE_APP); + app->subState++; } break; case 3: - if (ov104_0223BA14(param0->unk_09) == 1) { - if (param0->unk_0F >= 2) { - param0->unk_0F = 0; - ov107_02241E70(param0); - StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 1 * 3, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (app->unk_0F >= 2) { + app->unk_0F = 0; + ov107_02241E70(app); + StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_IN, FADE_TYPE_BRIGHTNESS_IN, COLOR_BLACK, 6, 3, HEAP_ID_BATTLE_CASTLE_APP); + app->subState++; } } else { - param0->unk_08++; + app->subState++; } break; case 4: if (IsScreenFadeDone() == TRUE) { - return 1; + return TRUE; } break; } - return 0; + return FALSE; } -static void ov107_02241E70(UnkStruct_ov107_02241D6C *param0) +static void ov107_02241E70(BattleCastleSelfApp *param0) { u16 v2, v3, v4, v5; ov107_02244E14(param0, &v2, &v3, &v4, &v5); - Window *v7 = ¶m0->unk_50[0]; + Window *v7 = ¶m0->windows[0]; Window_FillTilemap(v7, 0); ov107_02245464(param0, v7); ov107_02245780(param0, v7); - ov107_02243CC0(param0, ¶m0->unk_50[3]); - ov107_02243DB0(param0, ¶m0->unk_50[2]); + ov107_02243CC0(param0, ¶m0->windows[3]); + ov107_02243DB0(param0, ¶m0->windows[2]); ov107_02243FA4(param0); GXLayers_TurnBothDispOn(); return; } -static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) +static BOOL ov107_02241EC8(BattleCastleSelfApp *param0) { u8 v2; u16 v3; u32 v6; Pokemon *v7; - switch (param0->unk_08) { + switch (param0->subState) { case 0: if (param0->unk_0E_5 == 1) { ov107_02244064(param0); ov107_02249C60(param0->unk_430, 204, 100); - param0->unk_08 = 2; + param0->subState = 2; param0->unk_0E_5 = 0; return 0; } else if (param0->unk_0E_5 == 2) { ov107_0224409C(param0); ov107_02249C60(param0->unk_430, 211, 106); - param0->unk_08 = 8; + param0->subState = 8; param0->unk_0E_5 = 0; return 0; } @@ -684,7 +684,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) } else { ov107_0224400C(param0); ov107_02244018(param0); - param0->unk_08 = 1; + param0->subState = 1; break; } } else if (gSystem.pressedKeys & PAD_BUTTON_B) { @@ -706,32 +706,32 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0xfffffffe: ov107_0224403C(param0); ov107_02243FA4(param0); - param0->unk_08 = 0; + param0->subState = 0; break; case 0: ov107_0224403C(param0); ov107_02244064(param0); - param0->unk_08 = 2; + param0->subState = 2; break; case 5: ov107_0224403C(param0); ov107_0224409C(param0); - param0->unk_08 = 8; + param0->subState = 8; break; case 9: ov107_0224403C(param0); ov107_02245B40(param0, param0->unk_0D); - param0->unk_08 = 20; + param0->subState = 20; break; case 10: ov107_0224403C(param0); ov107_02245B90(param0, param0->unk_0D); - param0->unk_08 = 21; + param0->subState = 21; break; case 11: ov107_0224403C(param0); ov107_02243FA4(param0); - param0->unk_08 = 0; + param0->subState = 0; break; } break; @@ -743,7 +743,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) ListMenu_TestInput(param0->unk_198, (ListMenuTemplate *)¶m0->unk_1A0, 0, NELEMS(Unk_ov107_02249FF0) - 1, 1, PAD_KEY_DOWN, NULL, NULL); ListMenu_Draw(param0->unk_198); Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_0224379C(param0, ¶m0->unk_50[6], 28, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_0224379C(param0, ¶m0->windows[6], 28, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return 0; } } else if (gSystem.pressedKeys & PAD_KEY_DOWN) { @@ -751,7 +751,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) ListMenu_TestInput(param0->unk_198, (ListMenuTemplate *)¶m0->unk_1A0, 0, 0, 1, PAD_KEY_UP, NULL, NULL); ListMenu_Draw(param0->unk_198); Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_0224379C(param0, ¶m0->unk_50[6], 24, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_0224379C(param0, ¶m0->windows[6], 24, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); return 0; } } @@ -765,32 +765,32 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0xffffffff: break; case 0xfffffffe: - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02244094(param0); ov107_02244018(param0); - param0->unk_08 = 1; + param0->subState = 1; break; case 1: case 2: case 3: param0->unk_13 = v6; ov107_02244094(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 0); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 0); if (v2 < Unk_ov107_02249FF0[param0->unk_16][0]) { param0->unk_0A = ov107_02243918(param0, 33, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; } else { ov107_02244A74(param0, 0, Unk_ov107_02249E0C[param0->unk_16], 3, 0); param0->unk_0A = ov107_02243918(param0, 55, FONT_MESSAGE); ov107_022441DC(param0); - param0->unk_08 = 3; + param0->subState = 3; } break; case 4: - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 0); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 0); if (v2 == 3) { Sound_StopEffect(1500, 0); @@ -798,11 +798,11 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) } else { param0->unk_13 = v6; ov107_02244094(param0); - v3 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v3 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); ov107_02244A74(param0, 0, Unk_ov107_02249E46[0][v2], 4, 0); param0->unk_0A = ov107_02243918(param0, 38, FONT_MESSAGE); ov107_022441DC(param0); - param0->unk_08 = 4; + param0->subState = 4; } break; } @@ -817,50 +817,50 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) v7 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param0->unk_0D)); ov107_02245618(param0); - v3 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 0); + v3 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 0); if (v2 < Unk_ov107_02249FF0[param0->unk_16][0]) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 33, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } if (v3 < Unk_ov107_02249E0C[param0->unk_16]) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 32, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } if (param0->unk_16 == 0) { if (Pokemon_GetValue(v7, MON_DATA_HP, NULL) == Pokemon_GetValue(v7, MON_DATA_MAX_HP, NULL)) { param0->unk_0A = ov107_02243918(param0, 37, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } } else if (param0->unk_16 == 1) { if (ov107_02245210(v7) == 0) { param0->unk_0A = ov107_02243918(param0, 37, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } } else { if ((Pokemon_GetValue(v7, MON_DATA_HP, NULL) == Pokemon_GetValue(v7, MON_DATA_MAX_HP, NULL)) && (ov107_02245210(v7) == 0)) { param0->unk_0A = ov107_02243918(param0, 37, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } } - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); - if (ov104_0223BA14(param0->unk_09) == 0) { - ov104_0223BC2C(param0->frontier, param0->unk_09, Unk_ov107_02249E0C[param0->unk_13 - 1]); - ov107_02245780(param0, ¶m0->unk_50[0]); + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { + ov104_0223BC2C(param0->frontier, param0->challengeType, Unk_ov107_02249E0C[param0->unk_13 - 1]); + ov107_02245780(param0, ¶m0->windows[0]); ov107_022454F8(param0, param0->unk_0D, param0->unk_13); - param0->unk_08 = 18; + param0->subState = 18; } else { param0->unk_0E_1 = 1; return 1; @@ -869,9 +869,9 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 1: case 0xfffffffe: ov107_02245618(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02244064(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } break; @@ -884,20 +884,20 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0: ov107_02245618(param0); - v3 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 0); + v3 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 0); if (v3 < Unk_ov107_02249E46[0][v2]) { ov107_02245618(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 41, FONT_MESSAGE); - param0->unk_08 = 7; + param0->subState = 7; break; } - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { ov107_02245C94(param0, param0->unk_0D, 4); - param0->unk_08 = 5; + param0->subState = 5; break; } else { param0->unk_0E_1 = 1; @@ -907,15 +907,15 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 1: case 0xfffffffe: ov107_02245618(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02244064(param0); - param0->unk_08 = 2; + param0->subState = 2; break; } break; case 5: if (ov107_02244E44(param0, param0->unk_0D, param0->unk_13) == 1) { - param0->unk_08 = 6; + param0->subState = 6; } break; case 6: @@ -924,15 +924,15 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) ov107_02245618(param0); ov107_02244064(param0); ov107_02249C60(param0->unk_430, 204, 100); - param0->unk_08 = 2; + param0->subState = 2; } break; case 7: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02244064(param0); - param0->unk_08 = 2; + param0->subState = 2; } break; case 8: @@ -945,38 +945,38 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0xffffffff: break; case 0xfffffffe: - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_022440C0(param0); ov107_02244018(param0); - param0->unk_08 = 1; + param0->subState = 1; break; case 6: param0->unk_13 = v6; - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_022440C0(param0); ov107_022440C8(param0, 6); - param0->unk_08 = 9; + param0->subState = 9; break; case 7: param0->unk_13 = v6; - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_022440C0(param0); - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); if (v2 == 1) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 54, FONT_MESSAGE); - param0->unk_08 = 14; + param0->subState = 14; return 0; } ov107_022440C8(param0, 7); - param0->unk_08 = 9; + param0->subState = 9; break; case 8: - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); if (v2 == 3) { Sound_StopEffect(1500, 0); @@ -987,7 +987,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) ov107_02244A74(param0, 0, Unk_ov107_02249E46[1][v2], 4, 0); param0->unk_0A = ov107_02243918(param0, 38, FONT_MESSAGE); ov107_022441DC(param0); - param0->unk_08 = 11; + param0->subState = 11; } break; } @@ -1003,20 +1003,20 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0xfffffffe: ov107_02244120(param0); ov107_0224409C(param0); - param0->unk_08 = 8; + param0->subState = 8; break; default: - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[12]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[12]); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); ov107_02244A74(param0, 0, ov107_02244D5C(param0, param0->unk_16, param0->unk_13), 3, 0); param0->unk_0A = ov107_02243918(param0, 55, FONT_MESSAGE); ov107_022441DC(param0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 0); + BattleCastleAppSprite_SetDrawFlag(param0->itemSprite, 0); - param0->unk_08 = 10; + param0->subState = 10; break; } break; @@ -1029,44 +1029,44 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) break; case 0: ov107_02245618(param0); - v3 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + v3 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); if (v3 < ov107_02244D5C(param0, param0->unk_16, param0->unk_13)) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 32, FONT_MESSAGE); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 0); - param0->unk_08 = 15; + BattleCastleAppSprite_SetDrawFlag(param0->itemSprite, 0); + param0->subState = 15; break; } if (Pokemon_GetValue(v7, MON_DATA_HELD_ITEM, NULL) == 0) { - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { ov107_02244120(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); - ov104_0223BC2C(param0->frontier, param0->unk_09, ov107_02244D5C(param0, param0->unk_16, param0->unk_13)); - ov107_02245780(param0, ¶m0->unk_50[0]); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); + ov104_0223BC2C(param0->frontier, param0->challengeType, ov107_02244D5C(param0, param0->unk_16, param0->unk_13)); + ov107_02245780(param0, ¶m0->windows[0]); ov107_022455A0(param0, param0->unk_0D, ov107_02244DE0(param0, param0->unk_16, param0->unk_13)); - param0->unk_08 = 18; + param0->subState = 18; } else { param0->unk_10 = ov107_02244DE0(param0, param0->unk_16, param0->unk_13); ov107_02244120(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); param0->unk_0E_1 = 1; return 1; } } else { ov107_02244A8C(param0, 0, Pokemon_GetBoxPokemon(v7)); - StringTemplate_SetItemNameWithArticle(param0->unk_24, 1, Pokemon_GetValue(v7, MON_DATA_HELD_ITEM, NULL)); + StringTemplate_SetItemNameWithArticle(param0->strTemplate, 1, Pokemon_GetValue(v7, MON_DATA_HELD_ITEM, NULL)); param0->unk_0A = ov107_02243918(param0, 60, FONT_MESSAGE); - param0->unk_08 = 16; + param0->subState = 16; } break; case 1: case 0xfffffffe: ov107_02245618(param0); ov107_022456E4(param0); - param0->unk_08 = 9; + param0->subState = 9; break; } break; @@ -1079,20 +1079,20 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0: ov107_02245618(param0); - v3 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); - v2 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + v3 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); + v2 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); if (v3 < Unk_ov107_02249E46[1][v2]) { ov107_02245618(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 41, FONT_MESSAGE); - param0->unk_08 = 14; + param0->subState = 14; break; } - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { ov107_02245C94(param0, param0->unk_0D, 8); - param0->unk_08 = 12; + param0->subState = 12; break; } else { param0->unk_0E_1 = 1; @@ -1102,15 +1102,15 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 1: case 0xfffffffe: ov107_02245618(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_0224409C(param0); - param0->unk_08 = 8; + param0->subState = 8; break; } break; case 12: if (ov107_02244E44(param0, param0->unk_0D, param0->unk_13) == 1) { - param0->unk_08 = 13; + param0->subState = 13; } break; case 13: @@ -1119,22 +1119,22 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) ov107_02245618(param0); ov107_0224409C(param0); ov107_02249C60(param0->unk_430, 211, 106); - param0->unk_08 = 8; + param0->subState = 8; } break; case 14: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_0224409C(param0); - param0->unk_08 = 8; + param0->subState = 8; } break; case 15: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_022456E4(param0); - param0->unk_08 = 9; + param0->subState = 9; } break; case 16: @@ -1142,7 +1142,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) Sound_PlayEffect(SEQ_SE_CONFIRM); param0->unk_0A = ov107_02243918(param0, 61, FONT_MESSAGE); ov107_022441DC(param0); - param0->unk_08 = 17; + param0->subState = 17; } break; case 17: @@ -1154,17 +1154,17 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0: ov107_02245618(param0); - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { ov107_02244120(param0); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); - ov104_0223BC2C(param0->frontier, param0->unk_09, ov107_02244D5C(param0, param0->unk_16, param0->unk_13)); - ov107_02245780(param0, ¶m0->unk_50[0]); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); + ov104_0223BC2C(param0->frontier, param0->challengeType, ov107_02244D5C(param0, param0->unk_16, param0->unk_13)); + ov107_02245780(param0, ¶m0->windows[0]); ov107_022455A0(param0, param0->unk_0D, ov107_02244DE0(param0, param0->unk_16, param0->unk_13)); - param0->unk_08 = 18; + param0->subState = 18; } else { param0->unk_10 = ov107_02244DE0(param0, param0->unk_16, param0->unk_13); ov107_02244120(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); param0->unk_0E_1 = 1; return 1; } @@ -1173,7 +1173,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) case 0xfffffffe: ov107_02245618(param0); ov107_022456E4(param0); - param0->unk_08 = 9; + param0->subState = 9; break; } break; @@ -1181,15 +1181,15 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); if (ov107_02244E44(param0, param0->unk_0D, param0->unk_13) == 1) { - param0->unk_08 = 19; + param0->subState = 19; } break; case 19: if (gSystem.pressedKeys & (PAD_BUTTON_A | PAD_BUTTON_B)) { Sound_PlayEffect(SEQ_SE_CONFIRM); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02243FA4(param0); - param0->unk_08 = 0; + param0->subState = 0; } break; case 20: @@ -1201,7 +1201,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02245BE0(param0); ov107_02244018(param0); - param0->unk_08 = 1; + param0->subState = 1; } break; case 21: @@ -1213,7 +1213,7 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) Sound_PlayEffect(SEQ_SE_CONFIRM); ov107_02245BE0(param0); ov107_02244018(param0); - param0->unk_08 = 1; + param0->subState = 1; } break; } @@ -1221,18 +1221,18 @@ static BOOL ov107_02241EC8(UnkStruct_ov107_02241D6C *param0) return 0; } -static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0) +static BOOL ov107_02242C64(BattleCastleSelfApp *param0) { u8 v0; - switch (param0->unk_08) { + switch (param0->subState) { case 0: param0->unk_0E_5 = 0; GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); if (ov107_0224529C(param0, 11, param0->unk_0D) == 1) { param0->unk_0E_1 = 0; - param0->unk_08++; + param0->subState++; } break; case 1: @@ -1248,14 +1248,14 @@ static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0) ov107_022459D0(param0, param0->unk_12, param0->unk_13); } - param0->unk_08++; + param0->subState++; break; case 2: v0 = ov107_02249C9C(param0->unk_15, param0->unk_12); if (ov107_02244E44(param0, v0, param0->unk_13) == 1) { param0->unk_0B = 30; - param0->unk_08++; + param0->subState++; } break; case 3: @@ -1264,7 +1264,7 @@ static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0) if (param0->unk_0B == 0) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(130); - param0->unk_08++; + param0->subState++; break; } break; @@ -1276,7 +1276,7 @@ static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0) param0->unk_12 = 0xff; if (param0->unk_0E_5 == 0) { - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02243FA4(param0); } @@ -1290,13 +1290,13 @@ static BOOL ov107_02242C64(UnkStruct_ov107_02241D6C *param0) return 0; } -static BOOL ov107_02242D60(UnkStruct_ov107_02241D6C *param0) +static BOOL ov107_02242D60(BattleCastleSelfApp *param0) { - switch (param0->unk_08) { + switch (param0->subState) { case 0: if (ov107_0224529C(param0, 13, 0) == 1) { param0->unk_0B = 30; - param0->unk_08++; + param0->subState++; } break; case 1: @@ -1307,13 +1307,13 @@ static BOOL ov107_02242D60(UnkStruct_ov107_02241D6C *param0) if (param0->unk_0B == 0) { CommTool_ClearReceivedTempDataAllPlayers(); CommTiming_StartSync(131); - param0->unk_08++; + param0->subState++; } break; case 2: if (CommTiming_IsSyncState(131) == 1) { CommTool_ClearReceivedTempDataAllPlayers(); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); return 1; } break; @@ -1322,70 +1322,70 @@ static BOOL ov107_02242D60(UnkStruct_ov107_02241D6C *param0) return 0; } -static BOOL ov107_02242DCC(UnkStruct_ov107_02241D6C *param0) +static BOOL State_FadeOutApp(BattleCastleSelfApp *app) { - switch (param0->unk_08) { + switch (app->subState) { case 0: StartScreenFade(FADE_BOTH_SCREENS, FADE_TYPE_BRIGHTNESS_OUT, FADE_TYPE_BRIGHTNESS_OUT, COLOR_BLACK, 6, 1, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_08++; + app->subState++; break; case 1: if (IsScreenFadeDone() == TRUE) { - return 1; + return TRUE; } break; } - return 0; + return FALSE; } -static void ov107_02242E14(UnkStruct_ov107_02241D6C *param0) +static void FreeAssets(BattleCastleSelfApp *app) { - BattleCastleAppSprite_Free(param0->unk_3E8); - BattleCastleAppSprite_Free(param0->unk_3EC); - BattleCastleAppSprite_Free(param0->unk_3F0); + BattleCastleAppSprite_Free(app->upArrowSprite); + BattleCastleAppSprite_Free(app->downArrowSprite); + BattleCastleAppSprite_Free(app->itemSprite); - BattleCastleAppSprite_Free(param0->unk_430); - BattleCastleAppSprite_Free(param0->unk_418); - BattleCastleAppSprite_Free(param0->unk_41C); - BattleCastleAppSprite_Free(param0->unk_434); + BattleCastleAppSprite_Free(app->unk_430); + BattleCastleAppSprite_Free(app->cursorSprite); + BattleCastleAppSprite_Free(app->unk_41C); + BattleCastleAppSprite_Free(app->unk_434); - u8 v0 = ov104_0223B7A8(param0->unk_09, 1); + u8 numMons = ov104_0223B7A8(app->challengeType, 1); - for (int v1 = 0; v1 < v0; v1++) { - BattleCastleAppSprite_Free(param0->unk_3F4[v1]); - BattleCastleAppSprite_Free(param0->unk_404[v1]); - BattleCastleAppSprite_Free(param0->unk_420[v1]); + for (int i = 0; i < numMons; i++) { + BattleCastleAppSprite_Free(app->monSprites[i]); + BattleCastleAppSprite_Free(app->itemIconSprites[i]); + BattleCastleAppSprite_Free(app->barSprites[i]); } NetworkIcon_Destroy(); - PaletteData_FreeBuffer(param0->unk_1C0, 2); - PaletteData_FreeBuffer(param0->unk_1C0, 0); - PaletteData_Free(param0->unk_1C0); + PaletteData_FreeBuffer(app->plttData, PLTTBUF_MAIN_OBJ); + PaletteData_FreeBuffer(app->plttData, PLTTBUF_MAIN_BG); + PaletteData_Free(app->plttData); - param0->unk_1C0 = NULL; + app->plttData = NULL; - BattleCastleApp_FreeSprites(¶m0->unk_1D8); + BattleCastleApp_FreeSprites(&app->spriteMan); - MessageLoader_Free(param0->unk_20); - MessageLoader_Free(param0->unk_1C); - StringTemplate_Free(param0->unk_24); - String_Free(param0->unk_28); - String_Free(param0->unk_2C); - FontSpecialChars_Free(param0->unk_1C4); + MessageLoader_Free(app->msgLoader); + MessageLoader_Free(app->itemMsgLoader); + StringTemplate_Free(app->strTemplate); + String_Free(app->displayStr); + String_Free(app->fmtStr); + FontSpecialChars_Free(app->specialChars); - for (int v1 = 0; v1 < 3; v1++) { - String_Free(param0->unk_30[v1]); + for (int i = 0; i < 3; i++) { + String_Free(app->unk_30[i]); } - BattleCastleApp_FreeWindows(param0->unk_50, 0); - ov107_022433A8(param0->unk_4C); + BattleCastleApp_FreeWindows(app->windows, FALSE); + FreeBackgrounds(app->bgConfig); - NARC_dtor(param0->unk_440); + NARC_dtor(app->narc); } -static void ov107_02242F24(void) +static void InitGraphicsPlane(void) { SetVBlankCallback(NULL, NULL); SetHBlankCallback(NULL, NULL); @@ -1396,92 +1396,92 @@ static void ov107_02242F24(void) GXS_SetVisiblePlane(0); } -static void ov107_02242F5C(UnkStruct_ov107_02241D6C *param0) +static void LoadAssets(BattleCastleSelfApp *app) { - param0->unk_440 = NARC_ctor(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, HEAP_ID_BATTLE_CASTLE_APP); + app->narc = NARC_ctor(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02243324(param0); - ov107_02243384(param0); + LoadBackgrounds(app); + InitSpriteManager(app); - param0->unk_20 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0199, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_1C = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_DESCRIPTIONS, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_24 = StringTemplate_Default(HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_28 = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_2C = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); + app->msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_UNK_0199, HEAP_ID_BATTLE_CASTLE_APP); + app->itemMsgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_DESCRIPTIONS, HEAP_ID_BATTLE_CASTLE_APP); + app->strTemplate = StringTemplate_Default(HEAP_ID_BATTLE_CASTLE_APP); + app->displayStr = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); + app->fmtStr = String_Init(600, HEAP_ID_BATTLE_CASTLE_APP); - for (int v15 = 0; v15 < 3; v15++) { - param0->unk_30[v15] = String_Init(32, HEAP_ID_BATTLE_CASTLE_APP); + for (int i = 0; i < 3; i++) { + app->unk_30[i] = String_Init(32, HEAP_ID_BATTLE_CASTLE_APP); } - Font_LoadTextPalette(0, 13 * 32, HEAP_ID_BATTLE_CASTLE_APP); - Font_LoadScreenIndicatorsPalette(0, 12 * 32, HEAP_ID_BATTLE_CASTLE_APP); + Font_LoadTextPalette(0, 13 * PALETTE_SIZE_BYTES, HEAP_ID_BATTLE_CASTLE_APP); + Font_LoadScreenIndicatorsPalette(0, 12 * PALETTE_SIZE_BYTES, HEAP_ID_BATTLE_CASTLE_APP); - param0->unk_1C4 = FontSpecialChars_Init(1, 2, 0, HEAP_ID_BATTLE_CASTLE_APP); + app->specialChars = FontSpecialChars_Init(1, 2, 0, HEAP_ID_BATTLE_CASTLE_APP); - BattleCastleApp_InitWindows(param0->unk_4C, param0->unk_50, 0); + BattleCastleApp_InitWindows(app->bgConfig, app->windows, FALSE); - u16 v9, v10, v11, v12; - ov107_02244E14(param0, &v9, &v10, &v11, &v12); + u16 unused1, unused2, unused3, unused4; + ov107_02244E14(app, &unused1, &unused2, &unused3, &unused4); - param0->unk_3E8 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 4, 160, 10, 0, NULL); - param0->unk_3EC = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 5, 160, 124, 0, NULL); + app->upArrowSprite = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 4, 160, 10, 0, NULL); + app->downArrowSprite = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 5, 160, 124, 0, NULL); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3E8, 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3EC, 0); + BattleCastleAppSprite_SetDrawFlag(app->upArrowSprite, FALSE); + BattleCastleAppSprite_SetDrawFlag(app->downArrowSprite, FALSE); - u16 v13, v14; - if (ov104_0223BA14(param0->unk_09) == 0) { - v13 = 64; - v14 = 64 + 8; + u16 xOffset, iconXOffset; + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + xOffset = 64; + iconXOffset = 64 + 8; } else { - v13 = 32; - v14 = 32 + 8; + xOffset = 32; + iconXOffset = 32 + 8; } - u8 v6 = ov104_0223B7A8(param0->unk_09, 1); + u8 numMons = ov104_0223B7A8(app->challengeType, 1); - for (int v15 = 0; v15 < v6; v15++) { - param0->unk_404[v15] = BattleCastleAppSprite_New(¶m0->unk_1D8, 2, 2, 2, 0, 64 * v15 + v14, 58 + 4, 2, NULL); + for (int i = 0; i < numMons; i++) { + app->itemIconSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 2, 2, 2, 0, 64 * i + iconXOffset, 58 + 4, 2, NULL); - Pokemon *v19 = Party_GetPokemonBySlotIndex(param0->unk_43C, v15); + Pokemon *mon = Party_GetPokemonBySlotIndex(app->unk_43C, i); - if (Pokemon_GetValue(v19, MON_DATA_HELD_ITEM, NULL) == 0) { - BattleCastleAppSprite_SetDrawFlag(param0->unk_404[v15], 0); + if (!Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL)) { + BattleCastleAppSprite_SetDrawFlag(app->itemIconSprites[i], FALSE); } - u32 v2 = Pokemon_GetValue(v19, MON_DATA_HP, NULL); - u32 v3 = Pokemon_GetValue(v19, MON_DATA_MAX_HP, NULL); - u32 v4 = ov107_022450E8(param0, HealthBar_Color(v2, v3, 48)); - u32 v5 = ov107_02245114(param0, HealthBar_Color(v2, v3, 48)); + u32 hp = Pokemon_GetValue(mon, MON_DATA_HP, NULL); + u32 maxHp = Pokemon_GetValue(mon, MON_DATA_MAX_HP, NULL); + u32 v4 = ov107_022450E8(app, HealthBar_Color(hp, maxHp, 48)); + u32 v5 = ov107_02245114(app, HealthBar_Color(hp, maxHp, 48)); - param0->unk_420[v15] = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, v5, 64 * v15 + v13, 58 + 20, 3, NULL); - param0->unk_3F4[v15] = BattleCastleAppSprite_New(¶m0->unk_1D8, 3 + v15, 3, 3, v4, 64 * v15 + v13, 58, 2, NULL); + app->barSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, v5, 64 * i + xOffset, 58 + 20, 3, NULL); + app->monSprites[i] = BattleCastleAppSprite_New(&app->spriteMan, 3 + i, 3, 3, v4, 64 * i + xOffset, 58, 2, NULL); - BattleCastleAppSprite_UpdatePalette(param0->unk_3F4[v15], Party_GetPokemonBySlotIndex(param0->unk_43C, v15)); + BattleCastleAppSprite_UpdatePalette(app->monSprites[i], Party_GetPokemonBySlotIndex(app->unk_43C, i)); } - param0->unk_3F0 = BattleCastleAppSprite_New(¶m0->unk_1D8, 1, 1, 1, 0, 24, 162, 0, NULL); + app->itemSprite = BattleCastleAppSprite_New(&app->spriteMan, 1, 1, 1, 0, 24, 162, 0, NULL); - ov107_022499BC(¶m0->unk_1D8, 17); - ov107_022499FC(¶m0->unk_1D8, 17); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 0); + BattleCastleApp_SetItemGraphic(&app->spriteMan, ITEM_POTION); + BattleCastleApp_SetItemPalette(&app->spriteMan, ITEM_POTION); + BattleCastleAppSprite_SetDrawFlag(app->itemSprite, FALSE); - u32 v0, v1; - ov107_02244D08(param0, &v0, &v1, 0); + u32 x, y; + GetCursorSpritePos(app, &x, &y, 0); - param0->unk_418 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 1, v0, v1, 2, NULL); - param0->unk_41C = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 2, v0, v1, 2, NULL); + app->cursorSprite = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 1, x, y, 2, NULL); + app->unk_41C = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 2, x, y, 2, NULL); - if (ov104_0223BA14(param0->unk_09) == 0) { - BattleCastleAppSprite_SetDrawFlag(param0->unk_41C, 0); + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + BattleCastleAppSprite_SetDrawFlag(app->unk_41C, FALSE); } - param0->unk_430 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 11, 20, 20, 0, NULL); - BattleCastleAppSprite_SetDrawFlag(param0->unk_430, 0); + app->unk_430 = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 11, 20, 20, 0, NULL); + BattleCastleAppSprite_SetDrawFlag(app->unk_430, FALSE); - param0->unk_434 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 3, 20, 20, 1, NULL); - BattleCastleAppSprite_SetDrawFlag(param0->unk_434, 0); + app->unk_434 = BattleCastleAppSprite_New(&app->spriteMan, 0, 0, 0, 3, 20, 20, 1, NULL); + BattleCastleAppSprite_SetDrawFlag(app->unk_434, FALSE); if (CommSys_IsInitialized()) { ReserveVramForWirelessIconChars(NNS_G2D_VRAM_TYPE_2DMAIN, GX_OBJVRAMMODE_CHAR_1D_32K); @@ -1489,65 +1489,65 @@ static void ov107_02242F5C(UnkStruct_ov107_02241D6C *param0) sub_02039734(); } - SetVBlankCallback(ov107_022433EC, param0); + SetVBlankCallback(VBlankCallback, app); } -static void ov107_02243324(UnkStruct_ov107_02241D6C *param0) +static void LoadBackgrounds(BattleCastleSelfApp *app) { - ov107_02243424(); - ov107_02243444(param0->unk_4C); + SetGXBanks(); + InitBackgrounds(app->bgConfig); - param0->unk_1C0 = PaletteData_New(HEAP_ID_BATTLE_CASTLE_APP); + app->plttData = PaletteData_New(HEAP_ID_BATTLE_CASTLE_APP); - PaletteData_AllocBuffer(param0->unk_1C0, 2, 32 * 16, HEAP_ID_BATTLE_CASTLE_APP); - PaletteData_AllocBuffer(param0->unk_1C0, 0, 32 * 16, HEAP_ID_BATTLE_CASTLE_APP); + PaletteData_AllocBuffer(app->plttData, PLTTBUF_MAIN_OBJ, PALETTE_SIZE_BYTES * SLOTS_PER_PALETTE, HEAP_ID_BATTLE_CASTLE_APP); + PaletteData_AllocBuffer(app->plttData, PLTTBUF_MAIN_BG, PALETTE_SIZE_BYTES * SLOTS_PER_PALETTE, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02243588(param0, 3); - ov107_022435FC(); - ov107_02243630(param0, 2); - ov107_02243678(); + LoadMainBackground(app, BG_LAYER_MAIN_3); + LoadPalette(); + LoadSummaryBackground(app, BG_LAYER_MAIN_2); + LoadPalette2(); - GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - ov107_0224373C(param0, 4); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, FALSE); + LoadSubScreenBackground(app, BG_LAYER_SUB_0); } -static void ov107_02243384(UnkStruct_ov107_02241D6C *param0) +static void InitSpriteManager(BattleCastleSelfApp *app) { - BattleCastleApp_InitSpriteManager(¶m0->unk_1D8, param0->unk_43C, ov104_0223BA14(param0->unk_09)); + BattleCastleApp_InitSpriteManager(&app->spriteMan, app->unk_43C, BattleCastle_IsMultiPlayerChallenge(app->challengeType)); } -static void ov107_022433A8(BgConfig *param0) +static void FreeBackgrounds(BgConfig *bgConfig) { GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0); GXLayers_EngineBToggleLayers(GX_PLANEMASK_BG0 | GX_PLANEMASK_BG1 | GX_PLANEMASK_BG2 | GX_PLANEMASK_BG3 | GX_PLANEMASK_OBJ, 0); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_3); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_2); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_0); - Bg_FreeTilemapBuffer(param0, BG_LAYER_MAIN_1); - Bg_FreeTilemapBuffer(param0, BG_LAYER_SUB_0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_3); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_2); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_0); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_MAIN_1); + Bg_FreeTilemapBuffer(bgConfig, BG_LAYER_SUB_0); - Heap_Free(param0); + Heap_Free(bgConfig); } -static void ov107_022433EC(void *param0) +static void VBlankCallback(void *data) { - UnkStruct_ov107_02241D6C *v0 = param0; + BattleCastleSelfApp *app = data; - if (v0->unk_1C0 != NULL) { - PaletteData_CommitFadedBuffers(v0->unk_1C0); + if (app->plttData != NULL) { + PaletteData_CommitFadedBuffers(app->plttData); } - Bg_RunScheduledUpdates(v0->unk_4C); + Bg_RunScheduledUpdates(app->bgConfig); VramTransfer_Process(); RenderOam_Transfer(); OS_SetIrqCheckFlag(OS_IE_V_BLANK); } -static void ov107_02243424(void) +static void SetGXBanks(void) { - GXBanks v0 = { + GXBanks banks = { GX_VRAM_BG_128_C, GX_VRAM_BGEXTPLTT_NONE, GX_VRAM_SUB_BG_32_H, @@ -1560,21 +1560,21 @@ static void ov107_02243424(void) GX_VRAM_TEXPLTT_01_FG }; - GXLayers_SetBanks(&v0); + GXLayers_SetBanks(&banks); } -static void ov107_02243444(BgConfig *param0) +static void InitBackgrounds(BgConfig *bgConfig) { - GraphicsModes v0 = { + GraphicsModes graphicsModes = { GX_DISPMODE_GRAPHICS, GX_BGMODE_0, GX_BGMODE_0, GX_BG0_AS_2D }; - SetAllGraphicsModes(&v0); + SetAllGraphicsModes(&graphicsModes); - BgTemplate v1 = { + BgTemplate bgTemplate1 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1589,11 +1589,11 @@ static void ov107_02243444(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_1, &v1, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_1, &bgTemplate1, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_1, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_1); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_1); - BgTemplate v2 = { + BgTemplate bgTemplate0 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1608,11 +1608,11 @@ static void ov107_02243444(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_0, &v2, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_0, &bgTemplate0, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_0, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_0); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_0); - BgTemplate v3 = { + BgTemplate bgTemplate2 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1627,11 +1627,11 @@ static void ov107_02243444(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_2, &v3, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_2, &bgTemplate2, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_2, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_2); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_2); - BgTemplate v4 = { + BgTemplate bgTemplate3 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1646,11 +1646,11 @@ static void ov107_02243444(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_MAIN_3, &v4, 0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_MAIN_3, &bgTemplate3, BG_TYPE_STATIC); Bg_ClearTilesRange(BG_LAYER_MAIN_3, 32, 0, HEAP_ID_BATTLE_CASTLE_APP); - Bg_ClearTilemap(param0, BG_LAYER_MAIN_3); + Bg_ClearTilemap(bgConfig, BG_LAYER_MAIN_3); - BgTemplate v5 = { + BgTemplate bgTemplateSub0 = { .x = 0, .y = 0, .bufferSize = 0x800, @@ -1665,142 +1665,142 @@ static void ov107_02243444(BgConfig *param0) .mosaic = FALSE, }; - Bg_InitFromTemplate(param0, BG_LAYER_SUB_0, &v5, 0); - Bg_ClearTilemap(param0, BG_LAYER_SUB_0); + Bg_InitFromTemplate(bgConfig, BG_LAYER_SUB_0, &bgTemplateSub0, BG_TYPE_STATIC); + Bg_ClearTilemap(bgConfig, BG_LAYER_SUB_0); G2_SetBG0Priority(0); - GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, 1); + GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG1, TRUE); } -static void ov107_02243588(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void LoadMainBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_440, 34, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); - if (ov104_0223BA14(param0->unk_09) == 0) { - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 35, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_SOLO_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } else { - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 36, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_MULTI_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } } -static void ov107_022435FC(void) +static void LoadPalette(void) { - NNSG2dPaletteData *v1; - void *v0 = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, 137, &v1, HEAP_ID_BATTLE_CASTLE_APP); + NNSG2dPaletteData *plttData; + void *pltt = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, BATTLE_CASTLE_SELF_APP_PLTT, &plttData, HEAP_ID_BATTLE_CASTLE_APP); - DC_FlushRange(v1->pRawData, sizeof(u16) * 16 * 4); - GX_LoadBGPltt(v1->pRawData, 0, sizeof(u16) * 16 * 4); - Heap_Free(v0); + DC_FlushRange(plttData->pRawData, PALETTE_SIZE_BYTES * 4); + GX_LoadBGPltt(plttData->pRawData, 0, PALETTE_SIZE_BYTES * 4); + Heap_Free(pltt); } -static void ov107_02243630(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void LoadSummaryBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_440, 34, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 38, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_SUMMARY_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } -static void ov107_02243678(void) +static void LoadPalette2(void) { - NNSG2dPaletteData *v1; - void *v0 = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, 137, &v1, HEAP_ID_BATTLE_CASTLE_APP); + NNSG2dPaletteData *plttData; + void *pltt = Graphics_GetPlttData(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_BG, BATTLE_CASTLE_SELF_APP_PLTT, &plttData, HEAP_ID_BATTLE_CASTLE_APP); - DC_FlushRange(v1->pRawData, sizeof(u16) * 16 * 4); - GX_LoadBGPltt(v1->pRawData, 0, sizeof(u16) * 16 * 4); + DC_FlushRange(plttData->pRawData, PALETTE_SIZE_BYTES * 4); + GX_LoadBGPltt(plttData->pRawData, 0, PALETTE_SIZE_BYTES * 4); - Heap_Free(v0); + Heap_Free(pltt); } -static void ov107_022436AC(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void LoadMovesListBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_440, 34, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 39, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_MOVES_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } -static void ov107_022436F4(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void LoadItemSelectBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_440, 34, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 37, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_CASTLE_SELF_APP_ITEMS_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); } -static void ov107_0224373C(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void LoadSubScreenBackground(BattleCastleSelfApp *app, enum BgLayer bgLayer) { - Graphics_LoadTilesToBgLayerFromOpenNARC(param0->unk_440, 125, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadTilemapToBgLayerFromOpenNARC(param0->unk_440, 126, param0->unk_4C, param1, 0, 0, 1, HEAP_ID_BATTLE_CASTLE_APP); - Graphics_LoadPaletteFromOpenNARC(param0->unk_440, 171, 4, 0, 0x20, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilesToBgLayerFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_TILES, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadTilemapToBgLayerFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_TILEMAP, app->bgConfig, bgLayer, 0, 0, TRUE, HEAP_ID_BATTLE_CASTLE_APP); + Graphics_LoadPaletteFromOpenNARC(app->narc, BATTLE_FRONTIER_APP_SUB_SCREEN_PLTT, PAL_LOAD_SUB_BG, 0, PALETTE_SIZE_BYTES, HEAP_ID_BATTLE_CASTLE_APP); } -static u8 ov107_0224379C(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) +static u8 ov107_0224379C(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) { ov107_022437CC(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 0); } -static u8 ov107_022437CC(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, int param10) +static u8 ov107_022437CC(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, int param10) { Window_FillTilemap(param1, param8); - MessageLoader_GetString(param0->unk_20, param2, param0->unk_2C); - StringTemplate_Format(param0->unk_24, param0->unk_28, param0->unk_2C); + MessageLoader_GetString(param0->msgLoader, param2, param0->fmtStr); + StringTemplate_Format(param0->strTemplate, param0->displayStr, param0->fmtStr); switch (param10) { case 1: - param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0) + 1) / 2; + param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0) + 1) / 2; break; case 2: - param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0); + param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0); break; } - u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->unk_28, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); + u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->displayStr, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); Window_ScheduleCopyToVRAM(param1); return v0; } -static u8 ov107_02243860(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) +static u8 ov107_02243860(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9) { return ov107_02243890(param0, param1, param2, param3, param4, param5, param6, param7, param8, param9, 0); } -static u8 ov107_02243890(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) +static u8 ov107_02243890(BattleCastleSelfApp *param0, Window *param1, int param2, u32 param3, u32 param4, u32 param5, u8 param6, u8 param7, u8 param8, u8 param9, u32 param10) { - MessageLoader_GetString(param0->unk_20, param2, param0->unk_2C); - StringTemplate_Format(param0->unk_24, param0->unk_28, param0->unk_2C); + MessageLoader_GetString(param0->msgLoader, param2, param0->fmtStr); + StringTemplate_Format(param0->strTemplate, param0->displayStr, param0->fmtStr); switch (param10) { case 1: - param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0) + 1) / 2; + param3 -= (Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0) + 1) / 2; break; case 2: - param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->unk_28, 0); + param3 -= Font_CalcStringWidth(FONT_SYSTEM, param0->displayStr, 0); break; } - u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->unk_28, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); + u8 v0 = Text_AddPrinterWithParamsAndColor(param1, param9, param0->displayStr, param3, param4, param5, TEXT_COLOR(param6, param7, param8), NULL); Window_ScheduleCopyToVRAM(param1); return v0; } -static u8 ov107_02243918(UnkStruct_ov107_02241D6C *param0, int param1, u8 param2) +static u8 ov107_02243918(BattleCastleSelfApp *param0, int param1, u8 param2) { - u8 v0 = ov107_0224379C(param0, ¶m0->unk_50[6], param1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, param2); - Window_ScheduleCopyToVRAM(¶m0->unk_50[6]); + u8 v0 = ov107_0224379C(param0, ¶m0->windows[6], param1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, param2); + Window_ScheduleCopyToVRAM(¶m0->windows[6]); return v0; } -static void ov107_02243950(UnkStruct_ov107_02241D6C *param0, Window *window, Pokemon *mon) +static void ov107_02243950(BattleCastleSelfApp *param0, Window *window, Pokemon *mon) { Window_FillTilemap(window, 0); - StringTemplate_SetItemName(param0->unk_24, 0, Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL)); + StringTemplate_SetItemName(param0->strTemplate, 0, Pokemon_GetValue(mon, MON_DATA_HELD_ITEM, NULL)); ov107_02243B5C(param0, window, 70, 0, 8, 0); ov107_02243B5C(param0, window, 71, 64, 8, 0); - StringTemplate_SetNatureName(param0->unk_24, 0, Pokemon_GetNature(mon)); + StringTemplate_SetNatureName(param0->strTemplate, 0, Pokemon_GetNature(mon)); ov107_02243B5C(param0, window, 72, 0, 24, 0); ov107_02243B5C(param0, window, 73, 64, 24, 0); - StringTemplate_SetAbilityName(param0->unk_24, 0, Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL)); + StringTemplate_SetAbilityName(param0->strTemplate, 0, Pokemon_GetValue(mon, MON_DATA_ABILITY, NULL)); ov107_02243B5C(param0, window, 74, 0, 40, 0); ov107_02243B5C(param0, window, 75, 64, 40, 0); @@ -1827,12 +1827,12 @@ static void ov107_02243950(UnkStruct_ov107_02241D6C *param0, Window *window, Pok Window_ScheduleCopyToVRAM(window); } -static void ov107_02243B5C(UnkStruct_ov107_02241D6C *param0, Window *param1, int param2, u16 param3, u16 param4, int param5) +static void ov107_02243B5C(BattleCastleSelfApp *param0, Window *param1, int param2, u16 param3, u16 param4, int param5) { ov107_02243890(param0, param1, param2, param3, param4, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, param5); } -static void ov107_02243B84(UnkStruct_ov107_02241D6C *param0, Window *param1, Pokemon *param2) +static void ov107_02243B84(BattleCastleSelfApp *param0, Window *param1, Pokemon *param2) { Window_FillTilemap(param1, 0); @@ -1844,14 +1844,14 @@ static void ov107_02243B84(UnkStruct_ov107_02241D6C *param0, Window *param1, Pok Window_ScheduleCopyToVRAM(param1); } -static void ov107_02243C18(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8) +static void ov107_02243C18(BattleCastleSelfApp *param0, Window *param1, u8 param2, u32 param3, u32 param4, Pokemon *param5, u32 param6, u32 param7, u32 param8) { u16 v0 = 24; u16 v1 = 12 + (param2 * 24); u16 v2 = 137; u16 v3 = 12 + (param2 * 24); - StringTemplate_SetMoveName(param0->unk_24, param2, Pokemon_GetValue(param5, param6, NULL)); + StringTemplate_SetMoveName(param0->strTemplate, param2, Pokemon_GetValue(param5, param6, NULL)); param0->unk_0A = ov107_02243860(param0, param1, param3, v0, v1, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM); ov107_02244A74(param0, 4, Pokemon_GetValue(param5, param7, NULL), MON_DATA_CHECKSUM_FAILED, 0); @@ -1859,11 +1859,11 @@ static void ov107_02243C18(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param0->unk_0A = ov107_02243890(param0, param1, param4, v2, v3, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 1); } -static void ov107_02243CC0(UnkStruct_ov107_02241D6C *param0, Window *param1) +static void ov107_02243CC0(BattleCastleSelfApp *param0, Window *param1) { Window_FillTilemap(param1, 0); - u8 v1 = ov104_0223B7A8(param0->unk_09, 1); + u8 v1 = ov104_0223B7A8(param0->challengeType, 1); for (int v0 = 0; v0 < v1; v0++) { ov107_02243CFC(param0, param1, v0, 0); @@ -1872,12 +1872,12 @@ static void ov107_02243CC0(UnkStruct_ov107_02241D6C *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static void ov107_02243CFC(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u8 param3) +static void ov107_02243CFC(BattleCastleSelfApp *param0, Window *param1, u8 param2, u8 param3) { u16 v0, v1, v2, v3, v4, v5, v6; Pokemon *v7 = Party_GetPokemonBySlotIndex(param0->unk_43C, param2); - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = 36; } else { v0 = 4; @@ -1899,14 +1899,14 @@ static void ov107_02243CFC(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 v4 = 0; } - FontSpecialChars_DrawPartyScreenHPText(param0->unk_1C4, Pokemon_GetValue(v7, MON_DATA_HP, NULL), 3, 1, param1, v1, v2); - FontSpecialChars_DrawPartyScreenLevelText(param0->unk_1C4, 0, param1, v5, v6); - FontSpecialChars_DrawPartyScreenHPText(param0->unk_1C4, Pokemon_GetValue(v7, MON_DATA_MAX_HP, NULL), 3, 0, param1, v3, v4); + FontSpecialChars_DrawPartyScreenHPText(param0->specialChars, Pokemon_GetValue(v7, MON_DATA_HP, NULL), 3, 1, param1, v1, v2); + FontSpecialChars_DrawPartyScreenLevelText(param0->specialChars, 0, param1, v5, v6); + FontSpecialChars_DrawPartyScreenHPText(param0->specialChars, Pokemon_GetValue(v7, MON_DATA_MAX_HP, NULL), 3, 0, param1, v3, v4); } -static void ov107_02243DB0(UnkStruct_ov107_02241D6C *param0, Window *param1) +static void ov107_02243DB0(BattleCastleSelfApp *param0, Window *param1) { - u8 v1 = ov104_0223B7A8(param0->unk_09, 1); + u8 v1 = ov104_0223B7A8(param0->challengeType, 1); for (int v0 = 0; v0 < v1; v0++) { ov107_02243DE4(param0, param1, v0, 0); @@ -1915,10 +1915,10 @@ static void ov107_02243DB0(UnkStruct_ov107_02241D6C *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static void ov107_02243DE4(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u8 param3) +static void ov107_02243DE4(BattleCastleSelfApp *param0, Window *param1, u8 param2, u8 param3) { u16 v5, v6; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v5 = 40; v6 = 80; } else { @@ -1941,16 +1941,16 @@ static void ov107_02243DE4(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 v4 = 0; } - FontSpecialChars_DrawPartyScreenText(param0->unk_1C4, 1, Pokemon_GetValue(v7, MON_DATA_LEVEL, NULL), 3, 0, param1, v1, v2); + FontSpecialChars_DrawPartyScreenText(param0->specialChars, 1, Pokemon_GetValue(v7, MON_DATA_LEVEL, NULL), 3, 0, param1, v1, v2); u32 v0 = Pokemon_GetValue(v7, MON_DATA_GENDER, NULL); ov107_02244B8C(param0, param1, v3, v4, FONT_SYSTEM, v0); } -static void ov107_02243E74(UnkStruct_ov107_02241D6C *param0, Window *param1) +static void ov107_02243E74(BattleCastleSelfApp *param0, Window *param1) { - u16 v0 = sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))); + u16 v0 = sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))); - BattleCastleApp_DrawWindow(param0->unk_4C, param1); + BattleCastleApp_DrawWindow(param0->bgConfig, param1); Window_FillTilemap(param1, 15); ov107_02244AB4(param0, param1, 1, 1, FONT_SYSTEM); @@ -1960,63 +1960,63 @@ static void ov107_02243E74(UnkStruct_ov107_02241D6C *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static u8 ov107_02243EF8(UnkStruct_ov107_02241D6C *param0, Window *param1, u16 param2) +static u8 ov107_02243EF8(BattleCastleSelfApp *param0, Window *param1, u16 param2) { Window_FillTilemap(param1, 0); - MessageLoader_GetString(param0->unk_1C, param2, param0->unk_2C); - StringTemplate_Format(param0->unk_24, param0->unk_28, param0->unk_2C); + MessageLoader_GetString(param0->itemMsgLoader, param2, param0->fmtStr); + StringTemplate_Format(param0->strTemplate, param0->displayStr, param0->fmtStr); - u8 v0 = Text_AddPrinterWithParamsAndColor(param1, FONT_SYSTEM, param0->unk_28, 0, 6, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL); + u8 v0 = Text_AddPrinterWithParamsAndColor(param1, FONT_SYSTEM, param0->displayStr, 0, 6, TEXT_SPEED_NO_TRANSFER, TEXT_COLOR(1, 2, 0), NULL); Window_ScheduleCopyToVRAM(param1); return v0; } -static void ov107_02243F4C(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2, u32 param3) +static void ov107_02243F4C(BattleCastleSelfApp *param0, Window *param1, u8 param2, u32 param3) { u16 v0; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = 36; } else { v0 = 4; } Window_FillRectWithColor(param1, 0, v0 + (64 * param2), 0, 8 * 3, 9); - FontSpecialChars_DrawPartyScreenHPText(param0->unk_1C4, param3, 3, 1, param1, v0 + (64 * param2), 1); + FontSpecialChars_DrawPartyScreenHPText(param0->specialChars, param3, 3, 1, param1, v0 + (64 * param2), 1); Window_ScheduleCopyToVRAM(param1); } -static void ov107_02243FA4(UnkStruct_ov107_02241D6C *param0) +static void ov107_02243FA4(BattleCastleSelfApp *param0) { - param0->unk_0A = ov107_022437CC(param0, ¶m0->unk_50[1], 6, 16, 1 + 4, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 1); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[7], Options_Frame(param0->options)); - param0->unk_0A = ov107_0224379C(param0, ¶m0->unk_50[7], 5, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + param0->unk_0A = ov107_022437CC(param0, ¶m0->windows[1], 6, 16, 1 + 4, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 1); + BattleCastleApp_DrawMessageBox(¶m0->windows[7], Options_Frame(param0->options)); + param0->unk_0A = ov107_0224379C(param0, ¶m0->windows[7], 5, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } -static void ov107_0224400C(UnkStruct_ov107_02241D6C *param0) +static void ov107_0224400C(BattleCastleSelfApp *param0) { - ov107_02245288(¶m0->unk_50[7]); + ov107_02245288(¶m0->windows[7]); } -static void ov107_02244018(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244018(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[8], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[8], Options_Frame(param0->options)); param0->unk_16 = 0; ov107_02244944(param0); } -static void ov107_0224403C(UnkStruct_ov107_02241D6C *param0) +static void ov107_0224403C(BattleCastleSelfApp *param0) { ListMenu_GetListAndCursorPos(param0->unk_198, ¶m0->unk_18, ¶m0->unk_1A); - ov107_02245288(¶m0->unk_50[8]); + ov107_02245288(¶m0->windows[8]); ov107_02245730(param0); } -static void ov107_02244064(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244064(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, 24, FONT_MESSAGE); param0->unk_16 = 0; @@ -2024,54 +2024,54 @@ static void ov107_02244064(UnkStruct_ov107_02241D6C *param0) ov107_022445C4(param0); } -static void ov107_02244094(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244094(BattleCastleSelfApp *param0) { ov107_02245730(param0); } -static void ov107_0224409C(UnkStruct_ov107_02241D6C *param0) +static void ov107_0224409C(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_16 = 0; ov107_02244780(param0); } -static void ov107_022440C0(UnkStruct_ov107_02241D6C *param0) +static void ov107_022440C0(BattleCastleSelfApp *param0) { ov107_02245730(param0); } -static void ov107_022440C8(UnkStruct_ov107_02241D6C *param0, u8 param1) +static void ov107_022440C8(BattleCastleSelfApp *param0, u8 param1) { param0->unk_0E_3 = 1; - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); - Window_ClearAndCopyToVRAM(¶m0->unk_50[6]); - Window_ClearAndCopyToVRAM(¶m0->unk_50[9]); + Window_ClearAndCopyToVRAM(¶m0->windows[6]); + Window_ClearAndCopyToVRAM(¶m0->windows[9]); - ov107_022436F4(param0, 2); + LoadItemSelectBackground(param0, 2); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[4]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[4]); param0->unk_16 = 0; ov107_02244240(param0, param1); - ov107_02243E74(param0, ¶m0->unk_50[15]); + ov107_02243E74(param0, ¶m0->windows[15]); } -static void ov107_02244120(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244120(BattleCastleSelfApp *param0) { if (param0->unk_0E_3 == 1) { param0->unk_0E_3 = 0; - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[12]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[12]); ov107_02245730(param0); ov107_02245660(param0); } } -static void ov107_0224414C(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param2) +static void ov107_0224414C(BattleCastleSelfApp *param0, Window *param1, u8 param2) { for (int v0 = 0; v0 < 3; v0++) { param0->unk_180[v0].entry = NULL; @@ -2088,18 +2088,18 @@ static void ov107_0224414C(UnkStruct_ov107_02241D6C *param0, Window *param1, u8 param0->unk_170.loopAround = TRUE; } -static void ov107_022441B0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2, int param3) +static void ov107_022441B0(BattleCastleSelfApp *param0, u8 param1, u8 param2, int param3) { - MessageLoader_GetString(param0->unk_20, param3, param0->unk_30[param1]); + MessageLoader_GetString(param0->msgLoader, param3, param0->unk_30[param1]); param0->unk_180[param1].entry = param0->unk_30[param1]; param0->unk_180[param1].index = param2; } -static void ov107_022441DC(UnkStruct_ov107_02241D6C *param0) +static void ov107_022441DC(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[13]); - ov107_0224414C(param0, ¶m0->unk_50[13], 2); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[13]); + ov107_0224414C(param0, ¶m0->windows[13], 2); ov107_022441B0(param0, 0, 0, 30); ov107_022441B0(param0, 1, 1, 31); @@ -2107,23 +2107,23 @@ static void ov107_022441DC(UnkStruct_ov107_02241D6C *param0) param0->unk_0E_4 = 1; } -static void ov107_02244240(UnkStruct_ov107_02241D6C *param0, u8 param1) +static void ov107_02244240(BattleCastleSelfApp *param0, u8 param1) { ov107_0224503C(param0, param0->unk_0D, 1); u8 v2 = ov107_02249C98(param0->unk_14, param0->unk_0D); - ov107_02243CFC(param0, ¶m0->unk_50[17], v2, 1); + ov107_02243CFC(param0, ¶m0->windows[17], v2, 1); - Window_ScheduleCopyToVRAM(¶m0->unk_50[17]); - ov107_02243DE4(param0, ¶m0->unk_50[16], v2, 1); - Window_ScheduleCopyToVRAM(¶m0->unk_50[16]); + Window_ScheduleCopyToVRAM(¶m0->windows[17]); + ov107_02243DE4(param0, ¶m0->windows[16], v2, 1); + Window_ScheduleCopyToVRAM(¶m0->windows[16]); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 1); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3E8, 1); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3EC, 1); + BattleCastleAppSprite_SetDrawFlag(param0->itemSprite, 1); + BattleCastleAppSprite_SetDrawFlag(param0->upArrowSprite, 1); + BattleCastleAppSprite_SetDrawFlag(param0->downArrowSprite, 1); BattleCastleAppSprite_SetDrawFlag(param0->unk_434, 1); MessageLoader *v5 = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, TEXT_BANK_ITEM_NAMES, HEAP_ID_BATTLE_CASTLE_APP); - u8 v0 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + u8 v0 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); u8 v1; if (param1 == 6) { @@ -2146,11 +2146,11 @@ static void ov107_02244240(UnkStruct_ov107_02241D6C *param0, u8 param1) StringList_AddFromMessageBank(param0->unk_19C, v5, v3, v4); } - StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, 13, 0xfffffffe); + StringList_AddFromMessageBank(param0->unk_19C, param0->msgLoader, 13, 0xfffffffe); param0->unk_1A0 = Unk_ov107_02249EE4; param0->unk_1A0.choices = param0->unk_19C; - param0->unk_1A0.window = ¶m0->unk_50[5]; + param0->unk_1A0.window = ¶m0->windows[5]; param0->unk_1A0.parent = param0; param0->unk_1A0.cursorCallback = ov107_0224440C; param0->unk_1A0.printCallback = ov107_02244560; @@ -2161,14 +2161,14 @@ static void ov107_02244240(UnkStruct_ov107_02241D6C *param0, u8 param1) param0->unk_1A0.cursorType = 1; param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02245650(param0, ¶m0->unk_50[5]); + ov107_02245650(param0, ¶m0->windows[5]); MessageLoader_Free(v5); } static void ov107_0224440C(ListMenu *param0, u32 param1, u8 param2) { u16 v3, v4, v5; - UnkStruct_ov107_02241D6C *v6 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v6 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); @@ -2183,57 +2183,57 @@ static void ov107_0224440C(ListMenu *param0, u32 param1, u8 param2) ListMenu_GetListAndCursorPos(param0, &v3, &v4); if (v3 == 0) { - BattleCastleAppSprite_SetDrawFlag(v6->unk_3E8, 0); - BattleCastleAppSprite_SetDrawFlag(v6->unk_3EC, 1); + BattleCastleAppSprite_SetDrawFlag(v6->upArrowSprite, 0); + BattleCastleAppSprite_SetDrawFlag(v6->downArrowSprite, 1); } else if (v3 == (v0 - v1)) { - BattleCastleAppSprite_SetDrawFlag(v6->unk_3E8, 1); - BattleCastleAppSprite_SetDrawFlag(v6->unk_3EC, 0); + BattleCastleAppSprite_SetDrawFlag(v6->upArrowSprite, 1); + BattleCastleAppSprite_SetDrawFlag(v6->downArrowSprite, 0); } else { - BattleCastleAppSprite_SetDrawFlag(v6->unk_3E8, 1); - BattleCastleAppSprite_SetDrawFlag(v6->unk_3EC, 1); + BattleCastleAppSprite_SetDrawFlag(v6->upArrowSprite, 1); + BattleCastleAppSprite_SetDrawFlag(v6->downArrowSprite, 1); } BattleCastleAppSprite_SetPosition(v6->unk_434, 158, 24 + v4 * 16); if (param1 != 0xfffffffe) { - ov107_02243EF8(v6, &v6->unk_50[12], ov107_02244DE0(v6, v5, v6->unk_13)); + ov107_02243EF8(v6, &v6->windows[12], ov107_02244DE0(v6, v5, v6->unk_13)); - ov107_022499BC(&v6->unk_1D8, ov107_02244DE0(v6, v5, v6->unk_13)); - ov107_022499FC(&v6->unk_1D8, ov107_02244DE0(v6, v5, v6->unk_13)); + BattleCastleApp_SetItemGraphic(&v6->spriteMan, ov107_02244DE0(v6, v5, v6->unk_13)); + BattleCastleApp_SetItemPalette(&v6->spriteMan, ov107_02244DE0(v6, v5, v6->unk_13)); } else { - ov107_022499BC(&v6->unk_1D8, 0xffff); - ov107_022499FC(&v6->unk_1D8, 0xffff); - Window_FillTilemap(&v6->unk_50[12], 0); - Window_ScheduleCopyToVRAM(&v6->unk_50[12]); + BattleCastleApp_SetItemGraphic(&v6->spriteMan, 0xffff); + BattleCastleApp_SetItemPalette(&v6->spriteMan, 0xffff); + Window_FillTilemap(&v6->windows[12], 0); + Window_ScheduleCopyToVRAM(&v6->windows[12]); } } static void ov107_02244560(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v0 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v0 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); if (param1 != 0xfffffffe) { ov107_02244A74(v0, 0, ov107_02244D5C(v0, param1, v0->unk_13), 4, 1); - v0->unk_0A = ov107_02243890(v0, &v0->unk_50[5], 4, 128, param2, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 2); - Window_ScheduleCopyToVRAM(&v0->unk_50[5]); + v0->unk_0A = ov107_02243890(v0, &v0->windows[5], 4, 128, param2, TEXT_SPEED_NO_TRANSFER, 1, 2, 0, FONT_SYSTEM, 2); + Window_ScheduleCopyToVRAM(&v0->windows[5]); } } -static void ov107_022445C4(UnkStruct_ov107_02241D6C *param0) +static void ov107_022445C4(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[10]); - Window_FillTilemap(¶m0->unk_50[10], 15); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[10]); + Window_FillTilemap(¶m0->windows[10], 15); param0->unk_19C = StringList_New(NELEMS(Unk_ov107_02249FF0), HEAP_ID_BATTLE_CASTLE_APP); for (int v3 = 0; v3 < (NELEMS(Unk_ov107_02249FF0)); v3++) { - StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249FF0[v3][1], Unk_ov107_02249FF0[v3][2]); + StringList_AddFromMessageBank(param0->unk_19C, param0->msgLoader, Unk_ov107_02249FF0[v3][1], Unk_ov107_02249FF0[v3][2]); } param0->unk_1A0 = Unk_ov107_02249EE4; param0->unk_1A0.choices = param0->unk_19C; - param0->unk_1A0.window = ¶m0->unk_50[10]; + param0->unk_1A0.window = ¶m0->windows[10]; param0->unk_1A0.parent = param0; param0->unk_1A0.cursorCallback = ov107_02244690; param0->unk_1A0.printCallback = ov107_02244708; @@ -2242,18 +2242,18 @@ static void ov107_022445C4(UnkStruct_ov107_02241D6C *param0) param0->unk_1A0.textColorBg = 15; param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02245650(param0, ¶m0->unk_50[10]); + ov107_02245650(param0, ¶m0->windows[10]); } static void ov107_02244690(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v2 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); } - u8 v0 = ov107_02249CAC(v2->saveData, v2->unk_09, 0); + u8 v0 = ov107_02249CAC(v2->saveData, v2->challengeType, 0); u16 v1; switch (param1) { @@ -2274,16 +2274,16 @@ static void ov107_02244690(ListMenu *param0, u32 param1, u8 param2) break; } - ov107_0224379C(v2, &v2->unk_50[6], v1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_0224379C(v2, &v2->windows[6], v1, 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } static void ov107_02244708(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v3 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v3 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); u16 v0; ListMenu_CalcTrueCursorPos(param0, &v0); - u8 v1 = ov107_02249CAC(v3->saveData, v3->unk_09, 0); + u8 v1 = ov107_02249CAC(v3->saveData, v3->challengeType, 0); u8 v2; switch (param1) { @@ -2318,21 +2318,21 @@ static const u32 Unk_ov107_02249F54[][3] = { { 0x1, 0x2F, 0xfffffffe } }; -static void ov107_02244780(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244780(BattleCastleSelfApp *param0) { Bg_ToggleLayer(BG_LAYER_MAIN_0, 0); - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[11]); - Window_FillTilemap(¶m0->unk_50[11], 15); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[11]); + Window_FillTilemap(¶m0->windows[11], 15); param0->unk_19C = StringList_New(NELEMS(Unk_ov107_02249F54), HEAP_ID_BATTLE_CASTLE_APP); for (int v3 = 0; v3 < (NELEMS(Unk_ov107_02249F54)); v3++) { - StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249F54[v3][1], Unk_ov107_02249F54[v3][2]); + StringList_AddFromMessageBank(param0->unk_19C, param0->msgLoader, Unk_ov107_02249F54[v3][1], Unk_ov107_02249F54[v3][2]); } param0->unk_1A0 = Unk_ov107_02249EE4; param0->unk_1A0.choices = param0->unk_19C; - param0->unk_1A0.window = ¶m0->unk_50[11]; + param0->unk_1A0.window = ¶m0->windows[11]; param0->unk_1A0.parent = param0; param0->unk_1A0.cursorCallback = ov107_0224486C; param0->unk_1A0.printCallback = ov107_022448E8; @@ -2341,21 +2341,21 @@ static void ov107_02244780(UnkStruct_ov107_02241D6C *param0) param0->unk_1A0.textColorBg = 15; param0->unk_198 = ListMenu_New(¶m0->unk_1A0, 0, 0, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02245650(param0, ¶m0->unk_50[11]); + ov107_02245650(param0, ¶m0->windows[11]); - Window_ScheduleCopyToVRAM(¶m0->unk_50[11]); + Window_ScheduleCopyToVRAM(¶m0->windows[11]); Bg_ToggleLayer(BG_LAYER_MAIN_0, 1); } static void ov107_0224486C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v2 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); } - u8 v1 = ov107_02249CAC(v2->saveData, v2->unk_09, 1); + u8 v1 = ov107_02249CAC(v2->saveData, v2->challengeType, 1); u16 v0; switch (param1) { @@ -2379,14 +2379,14 @@ static void ov107_0224486C(ListMenu *param0, u32 param1, u8 param2) break; } - ov107_0224379C(v2, &v2->unk_50[6], v0, 1, 1, 0xff, 1, 2, 15, 1); + ov107_0224379C(v2, &v2->windows[6], v0, 1, 1, 0xff, 1, 2, 15, 1); } static void ov107_022448E8(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v2 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v2 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); - u8 v0 = ov107_02249CAC(v2->saveData, v2->unk_09, 1); + u8 v0 = ov107_02249CAC(v2->saveData, v2->challengeType, 1); u8 v1; switch (param1) { @@ -2428,20 +2428,20 @@ static const u16 Unk_ov107_02249E18[] = { 0x12 }; -static void ov107_02244944(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244944(BattleCastleSelfApp *param0) { - BattleCastleApp_DrawWindow(param0->unk_4C, ¶m0->unk_50[9]); - Window_FillTilemap(¶m0->unk_50[9], 15); + BattleCastleApp_DrawWindow(param0->bgConfig, ¶m0->windows[9]); + Window_FillTilemap(¶m0->windows[9], 15); param0->unk_19C = StringList_New(5, HEAP_ID_BATTLE_CASTLE_APP); for (int v0 = 0; v0 < 5; v0++) { - StringList_AddFromMessageBank(param0->unk_19C, param0->unk_20, Unk_ov107_02249F2C[v0][0], Unk_ov107_02249F2C[v0][1]); + StringList_AddFromMessageBank(param0->unk_19C, param0->msgLoader, Unk_ov107_02249F2C[v0][0], Unk_ov107_02249F2C[v0][1]); } param0->unk_1A0 = Unk_ov107_02249EE4; param0->unk_1A0.choices = param0->unk_19C; - param0->unk_1A0.window = ¶m0->unk_50[9]; + param0->unk_1A0.window = ¶m0->windows[9]; param0->unk_1A0.parent = param0; param0->unk_1A0.cursorCallback = ov107_02244A1C; param0->unk_1A0.printCallback = NULL; @@ -2451,13 +2451,13 @@ static void ov107_02244944(UnkStruct_ov107_02241D6C *param0) param0->unk_1A0.parent = param0; param0->unk_198 = ListMenu_New(¶m0->unk_1A0, param0->unk_18, param0->unk_1A, HEAP_ID_BATTLE_CASTLE_APP); - ov107_02245650(param0, ¶m0->unk_50[9]); - Window_ScheduleCopyToVRAM(¶m0->unk_50[9]); + ov107_02245650(param0, ¶m0->windows[9]); + Window_ScheduleCopyToVRAM(¶m0->windows[9]); } static void ov107_02244A1C(ListMenu *param0, u32 param1, u8 param2) { - UnkStruct_ov107_02241D6C *v0 = (UnkStruct_ov107_02241D6C *)ListMenu_GetAttribute(param0, 19); + BattleCastleSelfApp *v0 = (BattleCastleSelfApp *)ListMenu_GetAttribute(param0, 19); if (param2 == 0) { Sound_PlayEffect(SEQ_SE_CONFIRM); @@ -2465,25 +2465,25 @@ static void ov107_02244A1C(ListMenu *param0, u32 param1, u8 param2) u16 v1; ListMenu_CalcTrueCursorPos(param0, &v1); - ov107_0224379C(v0, &v0->unk_50[8], Unk_ov107_02249E18[v1], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); + ov107_0224379C(v0, &v0->windows[8], Unk_ov107_02249E18[v1], 1, 1, TEXT_SPEED_NO_TRANSFER, 1, 2, 15, FONT_MESSAGE); } -static void ov107_02244A74(UnkStruct_ov107_02241D6C *param0, u32 param1, s32 param2, u32 param3, int param4) +static void ov107_02244A74(BattleCastleSelfApp *param0, u32 param1, s32 param2, u32 param3, int param4) { - StringTemplate_SetNumber(param0->unk_24, param1, param2, param3, param4, 1); + StringTemplate_SetNumber(param0->strTemplate, param1, param2, param3, param4, 1); } -static void ov107_02244A8C(UnkStruct_ov107_02241D6C *param0, u32 param1, BoxPokemon *param2) +static void ov107_02244A8C(BattleCastleSelfApp *param0, u32 param1, BoxPokemon *param2) { - StringTemplate_SetSpeciesName(param0->unk_24, param1, param2); + StringTemplate_SetSpeciesName(param0->strTemplate, param1, param2); } -static void ov107_02244A98(UnkStruct_ov107_02241D6C *param0, u32 param1) +static void ov107_02244A98(BattleCastleSelfApp *param0, u32 param1) { - StringTemplate_SetPlayerName(param0->unk_24, param1, SaveData_GetTrainerInfo(param0->saveData)); + StringTemplate_SetPlayerName(param0->strTemplate, param1, SaveData_GetTrainerInfo(param0->saveData)); } -static void ov107_02244AB4(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4) +static void ov107_02244AB4(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4) { const TrainerInfo *v1 = SaveData_GetTrainerInfo(param0->saveData); String *v2 = String_Init(7 + 1, HEAP_ID_BATTLE_CASTLE_APP); @@ -2502,7 +2502,7 @@ static void ov107_02244AB4(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 String_Free(v2); } -static void ov107_02244B24(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4) +static void ov107_02244B24(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4) { TrainerInfo *v0 = CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1); @@ -2513,11 +2513,11 @@ static void ov107_02244B24(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 v1 = TEXT_COLOR(3, 4, 0); } - StringTemplate_SetPlayerName(param0->unk_24, 0, v0); + StringTemplate_SetPlayerName(param0->strTemplate, 0, v0); ov107_02243860(param0, param1, 1, param2, param3, TEXT_SPEED_NO_TRANSFER, GET_TEXT_FG_COLOR(v1), GET_TEXT_SHADOW_COLOR(v1), GET_TEXT_BG_COLOR(v1), FONT_SYSTEM); } -static void ov107_02244B8C(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5) +static void ov107_02244B8C(BattleCastleSelfApp *param0, Window *param1, u32 param2, u32 param3, u8 param4, u8 param5) { u32 v0; u8 v2, v3, v4; @@ -2539,13 +2539,13 @@ static void ov107_02244B8C(UnkStruct_ov107_02241D6C *param0, Window *param1, u32 ov107_02243860(param0, param1, v0, param2, param3, TEXT_SPEED_NO_TRANSFER, v2, v3, v4, param4); } -static void ov107_02244BD0(UnkStruct_ov107_02241D6C *param0, int *param1, int param2) +static void ChangeState(BattleCastleSelfApp *app, int *state, int nextState) { - param0->unk_08 = 0; - *param1 = param2; + app->subState = 0; + *state = nextState; } -static void ov107_02244BD8(UnkStruct_ov107_02241D6C *param0, int param1) +static void ov107_02244BD8(BattleCastleSelfApp *param0, int param1) { int v1 = 0; u8 v0 = ov107_02249C98(param0->unk_14, param0->unk_0D); @@ -2603,24 +2603,24 @@ static void ov107_02244BD8(UnkStruct_ov107_02241D6C *param0, int param1) } } -static void ov107_02244C70(UnkStruct_ov107_02241D6C *param0) +static void ov107_02244C70(BattleCastleSelfApp *param0) { Sound_PlayEffect(SEQ_SE_CONFIRM); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { ov107_0224529C(param0, 12, param0->unk_0D); } ov107_02244CA0(param0, param0->unk_0D, 0); } -static void ov107_02244CA0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static void ov107_02244CA0(BattleCastleSelfApp *param0, u8 param1, u8 param2) { BattleCastleAppSprite *v0; u32 v1, v2, v3, v4; if (param2 == 0) { - v0 = param0->unk_418; + v0 = param0->cursorSprite; v3 = 1; v4 = 0; } else { @@ -2634,39 +2634,39 @@ static void ov107_02244CA0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param BattleCastleAppSprite_SetPosition(v0, 224, 160); } else { BattleCastleAppSprite_SetAnim(v0, v3); - ov107_02244D08(param0, &v1, &v2, param1); + GetCursorSpritePos(param0, &v1, &v2, param1); BattleCastleAppSprite_SetPosition(v0, v1, v2); } } -static void ov107_02244D08(UnkStruct_ov107_02241D6C *param0, u32 *param1, u32 *param2, u8 param3) +static void GetCursorSpritePos(BattleCastleSelfApp *app, u32 *x, u32 *y, u8 slot) { - if (ov104_0223BA14(param0->unk_09) == 1) { - if (param3 == 0) { - *param1 = 40; - } else if (param3 == 1) { - *param1 = 104; - } else if (param3 == 2) { - *param1 = 168; + if (BattleCastle_IsMultiPlayerChallenge(app->challengeType) == TRUE) { + if (slot == 0) { + *x = 40; + } else if (slot == 1) { + *x = 104; + } else if (slot == 2) { + *x = 168; } else { - *param1 = 232; + *x = 232; } } else { - if (param3 == 0) { - *param1 = 72; - } else if (param3 == 1) { - *param1 = 136; + if (slot == 0) { + *x = 72; + } else if (slot == 1) { + *x = 136; } else { - *param1 = 200; + *x = 200; } } - *param2 = 88; + *y = 88; } -static u16 ov107_02244D5C(UnkStruct_ov107_02241D6C *param0, u16 param1, u8 param2) +static u16 ov107_02244D5C(BattleCastleSelfApp *param0, u16 param1, u8 param2) { - u8 v0 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + u8 v0 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); u8 v2 = Unk_ov107_02249E06[v0 - 1]; u8 v3 = Unk_ov107_02249E12[v0 - 1]; @@ -2697,9 +2697,9 @@ static u16 ov107_02244D90(u16 param0) return 0; } -static u16 ov107_02244DE0(UnkStruct_ov107_02241D6C *param0, u16 param1, u8 param2) +static u16 ov107_02244DE0(BattleCastleSelfApp *param0, u16 param1, u8 param2) { - u8 v0 = ov107_02249CAC(param0->saveData, param0->unk_09, 1); + u8 v0 = ov107_02249CAC(param0->saveData, param0->challengeType, 1); u8 v2 = Unk_ov107_02249E06[v0 - 1]; u8 v3 = Unk_ov107_02249E12[v0 - 1]; @@ -2710,9 +2710,9 @@ static u16 ov107_02244DE0(UnkStruct_ov107_02241D6C *param0, u16 param1, u8 param return Unk_ov107_02249F84[param1]; } -static void ov107_02244E14(UnkStruct_ov107_02241D6C *param0, u16 *param1, u16 *param2, u16 *param3, u16 *param4) +static void ov107_02244E14(BattleCastleSelfApp *app, u16 *param1, u16 *param2, u16 *param3, u16 *param4) { - if (ov104_0223BA14(param0->unk_09) == 0) { + if (!BattleCastle_IsMultiPlayerChallenge(app->challengeType)) { *param1 = 28; *param2 = 0; *param3 = 0; @@ -2723,11 +2723,9 @@ static void ov107_02244E14(UnkStruct_ov107_02241D6C *param0, u16 *param1, u16 *p *param3 = 120; *param4 = 0; } - - return; } -static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static BOOL ov107_02244E44(BattleCastleSelfApp *param0, u8 param1, u8 param2) { u32 v0, v1, v2, v3; @@ -2751,13 +2749,13 @@ static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param param0->unk_0E_2 = 1; u16 v4; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v4 = 64; } else { v4 = 32; } - param0->unk_414 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 8, v4 + (64 * v5), 62, 0, NULL); + param0->unk_414 = BattleCastleAppSprite_New(¶m0->spriteMan, 0, 0, 0, 8, v4 + (64 * v5), 62, 0, NULL); } if (param0->unk_414 != NULL) { @@ -2768,9 +2766,9 @@ static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param } if (param0->unk_414 == NULL) { - ov107_02243F4C(param0, ¶m0->unk_50[3], v5, Pokemon_GetValue(v6, MON_DATA_HP, NULL)); - BattleCastleAppSprite_SetAnim(param0->unk_420[v5], v3); - ov107_02249C1C(param0->unk_3F4[v5], v2); + ov107_02243F4C(param0, ¶m0->windows[3], v5, Pokemon_GetValue(v6, MON_DATA_HP, NULL)); + BattleCastleAppSprite_SetAnim(param0->barSprites[v5], v3); + ov107_02249C1C(param0->monSprites[v5], v2); param0->unk_0E_2 = 0; return 1; } @@ -2781,13 +2779,13 @@ static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param param0->unk_0E_2 = 1; u16 v4; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v4 = 64; } else { v4 = 32; } - param0->unk_414 = BattleCastleAppSprite_New(¶m0->unk_1D8, 0, 0, 0, 16, v4 + (64 * v5), 62, 0, NULL); + param0->unk_414 = BattleCastleAppSprite_New(¶m0->spriteMan, 0, 0, 0, 16, v4 + (64 * v5), 62, 0, NULL); } if (BattleCastleAppSprite_IsAnimated(param0->unk_414) == 0) { @@ -2810,12 +2808,12 @@ static BOOL ov107_02244E44(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param return 0; } -static void ov107_0224503C(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static void ov107_0224503C(BattleCastleSelfApp *param0, u8 param1, u8 param2) { u8 v0 = ov107_02249C98(param0->unk_14, param1); u16 v2; - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v2 = 64; } else { v2 = 32; @@ -2836,15 +2834,15 @@ static void ov107_0224503C(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param s16 v5 = v3 + 8; s16 v6 = v4 + 4; - ov107_02249C58(param0->unk_404[v0], v5, v6); - BattleCastleAppSprite_SetPosition(param0->unk_404[v0], v5, v6); - BattleCastleAppSprite_SetPriority(param0->unk_404[v0], v1); - ov107_02249C58(param0->unk_3F4[v0], v3, v4); - BattleCastleAppSprite_SetPosition(param0->unk_3F4[v0], v3, v4); - BattleCastleAppSprite_SetPriority(param0->unk_3F4[v0], v1); + ov107_02249C58(param0->itemIconSprites[v0], v5, v6); + BattleCastleAppSprite_SetPosition(param0->itemIconSprites[v0], v5, v6); + BattleCastleAppSprite_SetPriority(param0->itemIconSprites[v0], v1); + ov107_02249C58(param0->monSprites[v0], v3, v4); + BattleCastleAppSprite_SetPosition(param0->monSprites[v0], v3, v4); + BattleCastleAppSprite_SetPriority(param0->monSprites[v0], v1); } -static u32 ov107_022450E8(UnkStruct_ov107_02241D6C *param0, u8 param1) +static u32 ov107_022450E8(BattleCastleSelfApp *param0, u8 param1) { u32 v0; @@ -2866,7 +2864,7 @@ static u32 ov107_022450E8(UnkStruct_ov107_02241D6C *param0, u8 param1) return v0; } -static u32 ov107_02245114(UnkStruct_ov107_02241D6C *param0, u8 param1) +static u32 ov107_02245114(BattleCastleSelfApp *param0, u8 param1) { u32 v0; @@ -2888,7 +2886,7 @@ static u32 ov107_02245114(UnkStruct_ov107_02241D6C *param0, u8 param1) return v0; } -static void ov107_02245140(UnkStruct_ov107_02241D6C *param0, s8 param1) +static void ov107_02245140(BattleCastleSelfApp *param0, s8 param1) { s8 v1 = param0->unk_0D; v1 += param1; @@ -2903,10 +2901,10 @@ static void ov107_02245140(UnkStruct_ov107_02241D6C *param0, s8 param1) ov107_02244C70(param0); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param0->unk_0D)); - ov107_02243950(param0, ¶m0->unk_50[4], v0); + ov107_02243950(param0, ¶m0->windows[4], v0); } -static void ov107_0224518C(UnkStruct_ov107_02241D6C *param0, s8 param1) +static void ov107_0224518C(BattleCastleSelfApp *param0, s8 param1) { s8 v1 = param0->unk_0D; v1 += param1; @@ -2921,15 +2919,15 @@ static void ov107_0224518C(UnkStruct_ov107_02241D6C *param0, s8 param1) ov107_02244C70(param0); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param0->unk_0D)); - ov107_02243B84(param0, ¶m0->unk_50[4], v0); + ov107_02243B84(param0, ¶m0->windows[4], v0); } -static void ov107_022451D8(UnkStruct_ov107_02241D6C *param0) +static void ov107_022451D8(BattleCastleSelfApp *param0) { ov107_02245618(param0); ov107_02245730(param0); ov107_02244120(param0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); ov107_02245BE0(param0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); @@ -2965,7 +2963,7 @@ static void ov107_02245288(Window *param0) Window_ClearAndScheduleCopyToVRAM(param0); } -BOOL ov107_0224529C(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2) +BOOL ov107_0224529C(BattleCastleSelfApp *param0, u16 param1, u16 param2) { int v0, v1; @@ -2997,7 +2995,7 @@ BOOL ov107_0224529C(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2) return v0; } -void ov107_022452F4(UnkStruct_ov107_02241D6C *param0, u16 param1) +void ov107_022452F4(BattleCastleSelfApp *param0, u16 param1) { int v1 = 0; TrainerInfo *v2 = SaveData_GetTrainerInfo(param0->saveData); @@ -3009,7 +3007,7 @@ void ov107_022452F4(UnkStruct_ov107_02241D6C *param0, u16 param1) v1 += 1; for (int v0 = 0; v0 < 3; v0++) { - param0->unk_444[v1 + v0] = ov107_02249CAC(param0->saveData, param0->unk_09, v0); + param0->unk_444[v1 + v0] = ov107_02249CAC(param0->saveData, param0->challengeType, v0); } v1 += 3; @@ -3017,7 +3015,7 @@ void ov107_022452F4(UnkStruct_ov107_02241D6C *param0, u16 param1) void ov107_02245338(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02241D6C *v2 = param3; + BattleCastleSelfApp *v2 = param3; const u16 *v3 = param2; int v1 = 0; @@ -3037,7 +3035,7 @@ void ov107_02245338(int param0, int param1, void *param2, void *param3) v1 += 3; } -void ov107_02245368(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2) +void ov107_02245368(BattleCastleSelfApp *param0, u16 param1, u16 param2) { param0->unk_444[0] = param1; param0->unk_444[1] = param2; @@ -3055,7 +3053,7 @@ void ov107_02245368(UnkStruct_ov107_02241D6C *param0, u16 param1, u16 param2) void ov107_022453A0(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02241D6C *v2 = param3; + BattleCastleSelfApp *v2 = param3; const u16 *v3 = param2; int v1 = 0; @@ -3082,7 +3080,7 @@ void ov107_022453A0(int param0, int param1, void *param2, void *param3) } } -void ov107_022453F8(UnkStruct_ov107_02241D6C *param0, u16 param1) +void ov107_022453F8(BattleCastleSelfApp *param0, u16 param1) { param0->unk_444[0] = param1; param0->unk_444[1] = param0->unk_0D; @@ -3090,7 +3088,7 @@ void ov107_022453F8(UnkStruct_ov107_02241D6C *param0, u16 param1) void ov107_02245408(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02241D6C *v0 = param3; + BattleCastleSelfApp *v0 = param3; const u16 *v1 = param2; if (CommSys_CurNetId() == param0) { @@ -3101,14 +3099,14 @@ void ov107_02245408(int param0, int param1, void *param2, void *param3) ov107_02244CA0(v0, v0->unk_494, 1); } -void ov107_0224542C(UnkStruct_ov107_02241D6C *param0) +void ov107_0224542C(BattleCastleSelfApp *param0) { param0->unk_444[0] = 1; } void ov107_02245438(int param0, int param1, void *param2, void *param3) { - UnkStruct_ov107_02241D6C *v0 = param3; + BattleCastleSelfApp *v0 = param3; const u16 *v1 = param2; if (CommSys_CurNetId() == param0) { @@ -3123,13 +3121,13 @@ static void ov107_02245454(Pokemon *param0, u16 param1) Pokemon_ApplyItemEffects(param0, param1, 0, 0, 100); } -static void ov107_02245464(UnkStruct_ov107_02241D6C *param0, Window *param1) +static void ov107_02245464(BattleCastleSelfApp *param0, Window *param1) { u16 v0, v1, v2, v3, v4, v5; ov107_02244E14(param0, &v2, &v3, &v4, &v5); - if (ov104_0223BA14(param0->unk_09) == 0) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 0) { v0 = v2 + 0; v1 = v3 + 0; ov107_02244AB4(param0, param1, v0, v1, FONT_SYSTEM); @@ -3160,13 +3158,13 @@ static void ov107_02245464(UnkStruct_ov107_02241D6C *param0, Window *param1) Window_ScheduleCopyToVRAM(param1); } -static void ov107_022454F8(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static void ov107_022454F8(BattleCastleSelfApp *param0, u8 param1, u8 param2) { Pokemon *v1 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param1)); - u32 v0 = ov107_02249CAC(param0->saveData, param0->unk_09, 0); + u32 v0 = ov107_02249CAC(param0->saveData, param0->challengeType, 0); ov107_02244A8C(param0, 0, Pokemon_GetBoxPokemon(v1)); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, Unk_ov107_02249E00[param2 - 1], FONT_MESSAGE); @@ -3189,21 +3187,21 @@ static void ov107_022454F8(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param Sound_PlayEffect(SEQ_SE_DP_KAIFUKU); } -static void ov107_022455A0(UnkStruct_ov107_02241D6C *param0, u8 param1, u16 param2) +static void ov107_022455A0(BattleCastleSelfApp *param0, u8 param1, u16 param2) { Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param1)); Pokemon_SetValue(v0, MON_DATA_HELD_ITEM, ¶m2); - BattleCastleAppSprite_SetDrawFlag(param0->unk_404[ov107_02249C98(param0->unk_14, param1)], 1); + BattleCastleAppSprite_SetDrawFlag(param0->itemIconSprites[ov107_02249C98(param0->unk_14, param1)], 1); ov107_02244A8C(param0, 0, Pokemon_GetBoxPokemon(v0)); - StringTemplate_SetItemName(param0->unk_24, 1, param2); + StringTemplate_SetItemName(param0->strTemplate, 1, param2); param0->unk_0A = ov107_02243918(param0, 59, FONT_MESSAGE); Sound_PlayEffect(SEQ_SE_DP_UG_020); } -static void ov107_02245618(UnkStruct_ov107_02241D6C *param0) +static void ov107_02245618(BattleCastleSelfApp *param0) { if (param0->unk_0E_4 == 1) { param0->unk_0E_4 = 0; @@ -3213,43 +3211,43 @@ static void ov107_02245618(UnkStruct_ov107_02241D6C *param0) } } -static void ov107_02245650(UnkStruct_ov107_02241D6C *param0, Window *param1) +static void ov107_02245650(BattleCastleSelfApp *param0, Window *param1) { param0->unk_0E_0 = 1; } -static void ov107_02245660(UnkStruct_ov107_02241D6C *param0) +static void ov107_02245660(BattleCastleSelfApp *param0) { - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3E8, 0); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3EC, 0); + BattleCastleAppSprite_SetDrawFlag(param0->itemSprite, 0); + BattleCastleAppSprite_SetDrawFlag(param0->upArrowSprite, 0); + BattleCastleAppSprite_SetDrawFlag(param0->downArrowSprite, 0); BattleCastleAppSprite_SetDrawFlag(param0->unk_434, 0); - Window_EraseStandardFrame(¶m0->unk_50[15], 1); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[15]); + Window_EraseStandardFrame(¶m0->windows[15], 1); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[15]); ov107_0224503C(param0, param0->unk_0D, 0); - Window_FillTilemap(¶m0->unk_50[17], 0); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[17]); - Window_FillTilemap(¶m0->unk_50[16], 0); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[16]); + Window_FillTilemap(¶m0->windows[17], 0); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[17]); + Window_FillTilemap(¶m0->windows[16], 0); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[16]); } -static void ov107_022456E4(UnkStruct_ov107_02241D6C *param0) +static void ov107_022456E4(BattleCastleSelfApp *param0) { u16 v0; - ov107_02245288(¶m0->unk_50[6]); - BattleCastleAppSprite_SetDrawFlag(param0->unk_3F0, 1); + ov107_02245288(¶m0->windows[6]); + BattleCastleAppSprite_SetDrawFlag(param0->itemSprite, 1); ListMenu_Draw(param0->unk_198); ListMenu_CalcTrueCursorPos(param0->unk_198, &v0); - ov107_02243EF8(param0, ¶m0->unk_50[12], ov107_02244DE0(param0, v0, param0->unk_13)); + ov107_02243EF8(param0, ¶m0->windows[12], ov107_02244DE0(param0, v0, param0->unk_13)); } -static void ov107_02245730(UnkStruct_ov107_02241D6C *param0) +static void ov107_02245730(BattleCastleSelfApp *param0) { if (param0->unk_0E_0 == 1) { param0->unk_0E_0 = 0; @@ -3264,23 +3262,23 @@ static void ov107_02245730(UnkStruct_ov107_02241D6C *param0) } } -static void ov107_02245780(UnkStruct_ov107_02241D6C *param0, Window *window) +static void ov107_02245780(BattleCastleSelfApp *param0, Window *window) { u16 v0, v1, v2, v3, x, y; ov107_02244E14(param0, &v0, &v1, &v2, &v3); - if (ov104_0223BA14(param0->unk_09) == FALSE) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == FALSE) { x = v0 + 104; y = v1; Window_FillRectWithColor(window, 0, x - 48, y, 48, 16); - ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02243890(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); } else { if (CommSys_CurNetId() == 0) { x = v0 + 104; y = v1; Window_FillRectWithColor(window, 0, x - 48, y, 48, 16); - ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02243890(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); x = v2 + 104; @@ -3298,7 +3296,7 @@ static void ov107_02245780(UnkStruct_ov107_02241D6C *param0, Window *window) x = v2 + 104; y = v3; Window_FillRectWithColor(window, 0, x - 48, v3, 48, 16); - ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->unk_09), sub_0205E6A8(sub_0205E630(param0->unk_09))), 4, 1); + ov107_02244A74(param0, 0, sub_02030698(param0->frontier, sub_0205E630(param0->challengeType), sub_0205E6A8(sub_0205E630(param0->challengeType))), 4, 1); param0->unk_0A = ov107_02243890(param0, window, 2, x, y, 0xFF, 1, 2, 0, 0, 2); } } @@ -3306,7 +3304,7 @@ static void ov107_02245780(UnkStruct_ov107_02241D6C *param0, Window *window) Window_ScheduleCopyToVRAM(window); } -static void ov107_022459D0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static void ov107_022459D0(BattleCastleSelfApp *param0, u8 param1, u8 param2) { Sound_PlayEffect(SEQ_SE_DP_PIRORIRO2); @@ -3334,39 +3332,39 @@ static void ov107_022459D0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param if (CommSys_CurNetId() == 0) { if (param1 < v1) { ov107_02244A98(param0, 5); - ov104_0223BC2C(param0->frontier, param0->unk_09, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, v2); } else { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); param0->unk_49A -= v2; } } else { if (param1 < v1) { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); param0->unk_49A -= v2; } else { ov107_02244A98(param0, 5); - ov104_0223BC2C(param0->frontier, param0->unk_09, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, v2); } } - ov107_02245780(param0, ¶m0->unk_50[0]); + ov107_02245780(param0, ¶m0->windows[0]); ov107_02245618(param0); ov107_02245BE0(param0); ov107_02244120(param0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); - ov107_02245288(¶m0->unk_50[6]); + ov107_02245288(¶m0->windows[6]); switch (param2) { case 1: case 2: case 3: - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); ov107_022454F8(param0, v0, param2); break; case 6: case 7: - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); ov107_022455A0(param0, v0, param0->unk_10); break; case 9: @@ -3378,66 +3376,66 @@ static void ov107_022459D0(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param } } -static void ov107_02245B40(UnkStruct_ov107_02241D6C *param0, u8 param1) +static void ov107_02245B40(BattleCastleSelfApp *param0, u8 param1) { - ov107_02243630(param0, 2); + LoadSummaryBackground(param0, 2); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[6]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[5]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[15]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[6]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[5]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[15]); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param1)); - ov107_02243950(param0, ¶m0->unk_50[4], v0); + ov107_02243950(param0, ¶m0->windows[4], v0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); } -static void ov107_02245B90(UnkStruct_ov107_02241D6C *param0, u8 param1) +static void ov107_02245B90(BattleCastleSelfApp *param0, u8 param1) { - ov107_022436AC(param0, 2); + LoadMovesListBackground(param0, 2); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[6]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[5]); - Window_ClearAndScheduleCopyToVRAM(¶m0->unk_50[15]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[6]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[5]); + Window_ClearAndScheduleCopyToVRAM(¶m0->windows[15]); Pokemon *v0 = Party_GetPokemonBySlotIndex(param0->unk_43C, ov107_02249C98(param0->unk_14, param1)); - ov107_02243B84(param0, ¶m0->unk_50[4], v0); + ov107_02243B84(param0, ¶m0->windows[4], v0); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 1); } -static void ov107_02245BE0(UnkStruct_ov107_02241D6C *param0) +static void ov107_02245BE0(BattleCastleSelfApp *param0) { - Window_FillTilemap(¶m0->unk_50[4], 0); - Window_ClearAndCopyToVRAM(¶m0->unk_50[4]); + Window_FillTilemap(¶m0->windows[4], 0); + Window_ClearAndCopyToVRAM(¶m0->windows[4]); GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0); } -static void ov107_02245C00(UnkStruct_ov107_02241D6C *param0) +static void ov107_02245C00(BattleCastleSelfApp *param0) { - u8 v1 = ov104_0223B7A8(param0->unk_09, 1); + u8 v1 = ov104_0223B7A8(param0->challengeType, 1); for (int v0 = 0; v0 < v1; v0++) { Pokemon *v3 = Party_GetPokemonBySlotIndex(param0->unk_43C, v0); u8 v2 = ov104_0222E240(Pokemon_GetValue(v3, MON_DATA_HP, NULL), Pokemon_GetValue(v3, MON_DATA_MAX_HP, NULL)); - if (param0->unk_3F4[v0] != NULL) { - ov107_02249C1C(param0->unk_3F4[v0], v2); + if (param0->monSprites[v0] != NULL) { + ov107_02249C1C(param0->monSprites[v0], v2); if ((v0 != ov107_02249C98(param0->unk_14, param0->unk_0D)) || (param0->unk_0D >= param0->unk_15)) { - ov107_02249C28(param0->unk_3F4[v0], 0); + ov107_02249C28(param0->monSprites[v0], 0); } else { - ov107_02249C28(param0->unk_3F4[v0], 1); + ov107_02249C28(param0->monSprites[v0], 1); } } } } -static void ov107_02245C94(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param2) +static void ov107_02245C94(BattleCastleSelfApp *param0, u8 param1, u8 param2) { u32 v4; u16 v5[4]; - u8 v3 = ov104_0223B7A8(param0->unk_09, 0); + u8 v3 = ov104_0223B7A8(param0->challengeType, 0); u8 v2; if (param2 == 4) { @@ -3453,14 +3451,14 @@ static void ov107_02245C94(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param if (param1 < v0) { ov107_02244A98(param0, 5); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); - ov104_0223BC2C(param0->frontier, param0->unk_09, Unk_ov107_02249E46[v2][v4]); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, Unk_ov107_02249E46[v2][v4]); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); v5[0] = (v4 + 1); - sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->unk_09, v2), sub_0205E6A8(sub_0205E5B4(param0->unk_09, v2)), v4 + 1); + sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->challengeType, v2), sub_0205E6A8(sub_0205E5B4(param0->challengeType, v2)), v4 + 1); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { if (param2 == 4) { param0->unk_0E_5 = 1; } else { @@ -3468,28 +3466,28 @@ static void ov107_02245C94(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param } } } else { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); v4 = param0->unk_497[v2]; param0->unk_49A -= Unk_ov107_02249E46[v2][v4]; param0->unk_497[v2]++; } } else { if (param1 < v0) { - ov107_02249CF4(param0->unk_24, 5); + ov107_02249CF4(param0->strTemplate, 5); v4 = param0->unk_497[v2]; param0->unk_49A -= Unk_ov107_02249E46[v2][v4]; param0->unk_497[v2]++; } else { ov107_02244A98(param0, 5); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); - ov104_0223BC2C(param0->frontier, param0->unk_09, Unk_ov107_02249E46[v2][v4]); - v4 = ov107_02249CAC(param0->saveData, param0->unk_09, v2); + ov104_0223BC2C(param0->frontier, param0->challengeType, Unk_ov107_02249E46[v2][v4]); + v4 = ov107_02249CAC(param0->saveData, param0->challengeType, v2); v5[0] = v4 + 1; - sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->unk_09, v2), sub_0205E6A8(sub_0205E5B4(param0->unk_09, v2)), v4 + 1); + sub_020306E4(SaveData_GetBattleFrontier(param0->saveData), sub_0205E5B4(param0->challengeType, v2), sub_0205E6A8(sub_0205E5B4(param0->challengeType, v2)), v4 + 1); - if (ov104_0223BA14(param0->unk_09) == 1) { + if (BattleCastle_IsMultiPlayerChallenge(param0->challengeType) == 1) { if (param2 == 4) { param0->unk_0E_5 = 1; } else { @@ -3500,8 +3498,8 @@ static void ov107_02245C94(UnkStruct_ov107_02241D6C *param0, u8 param1, u8 param } ov107_02245618(param0); - ov107_02245780(param0, ¶m0->unk_50[0]); - BattleCastleApp_DrawMessageBox(¶m0->unk_50[6], Options_Frame(param0->options)); + ov107_02245780(param0, ¶m0->windows[0]); + BattleCastleApp_DrawMessageBox(¶m0->windows[6], Options_Frame(param0->options)); param0->unk_0A = ov107_02243918(param0, Unk_ov107_02249E34[v2][v4], FONT_MESSAGE); } diff --git a/src/unk_0209BA80.c b/src/unk_0209BA80.c index 77d88e2bb1..f8d5608cc8 100644 --- a/src/unk_0209BA80.c +++ b/src/unk_0209BA80.c @@ -13,8 +13,8 @@ #include "overlay104/ov104_0222ECE8.h" #include "overlay104/ov104_0223C164.h" #include "overlay105/ov105_02241AE0.h" -#include "overlay107/ov107_02241AE0.h" -#include "overlay107/ov107_02245EB0.h" +#include "overlay107/battle_castle_opponent_app.h" +#include "overlay107/battle_castle_self_app.h" #include "overlay108/ov108_02241AE0.h" #include "communication_system.h"