mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-08-26 11:25:45 -05:00
Document Frontier script startup process (#1210)
This commit is contained in:
@@ -28,14 +28,14 @@
|
||||
.short FRSCRCMD_02
|
||||
.endm
|
||||
|
||||
.macro FrontierScrCmd_03 arg0
|
||||
.macro FrontierScrCmd_03 sceneID
|
||||
.short FRSCRCMD_03
|
||||
.short \arg0
|
||||
.short \sceneID
|
||||
.endm
|
||||
|
||||
.macro FrontierScrCmd_04 arg0, arg1
|
||||
.macro FrontierScrCmd_04 sceneID, arg1
|
||||
.short FRSCRCMD_04
|
||||
.short \arg0
|
||||
.short \sceneID
|
||||
.short \arg1
|
||||
.endm
|
||||
|
||||
|
||||
@@ -4227,9 +4227,9 @@
|
||||
.byte \arg0
|
||||
.endm
|
||||
|
||||
.macro ScrCmd_2C4 arg0
|
||||
.short SCRCMD_2C4
|
||||
.byte \arg0
|
||||
.macro LaunchBattleFrontierScene sceneID
|
||||
.short SCRCMD_LAUNCHBATTLEFRONTIERSCENE
|
||||
.byte \sceneID
|
||||
.endm
|
||||
|
||||
.macro ScrCmd_2C5 arg0, arg1
|
||||
|
||||
31
include/battle_frontier.h
Normal file
31
include/battle_frontier.h
Normal file
@@ -0,0 +1,31 @@
|
||||
#ifndef POKEPLATINUM_BATTLE_FRONTIER_H
|
||||
#define POKEPLATINUM_BATTLE_FRONTIER_H
|
||||
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "functypes/funcptr_0209B988.h"
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
#include "overlay104/struct_ov104_0223C688.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0.h"
|
||||
|
||||
#include "overlay_manager.h"
|
||||
|
||||
extern const ApplicationManagerTemplate gBattleFrontierAppTemplate;
|
||||
|
||||
FieldFrontierDTO *BattleFrontier_GetFieldData(BattleFrontier *frontier);
|
||||
FrontierGraphics *BattleFrontier_GetGraphics(BattleFrontier *frontier);
|
||||
void *sub_0209B978(BattleFrontier *frontier);
|
||||
void sub_0209B980(BattleFrontier *frontier, void *param1);
|
||||
void sub_0209B988(BattleFrontier *frontier, const ApplicationManagerTemplate *param1, void *param2, int param3, UnkFuncPtr_0209B988 param4);
|
||||
void sub_0209B9B4(BattleFrontier *frontier);
|
||||
void sub_0209B9BC(BattleFrontier *frontier, u16 sceneID, u16 param2);
|
||||
UnkStruct_ov104_0223C688 *sub_0209B9CC(BattleFrontier *frontier);
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D0(BattleFrontier *frontier);
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D4(BattleFrontier *frontier, int param1);
|
||||
UnkStruct_ov104_0223D3B0 *sub_0209B9E0(BattleFrontier *frontier);
|
||||
void sub_0209B9EC(BattleFrontier *frontier);
|
||||
FieldFrontierDTO *sub_0209BA18(FieldSystem *fieldSystem, void *param1);
|
||||
|
||||
#endif // POKEPLATINUM_BATTLE_FRONTIER_H
|
||||
@@ -1,6 +1,26 @@
|
||||
#ifndef POKEPLATINUM_CONSTANTS_BATTLE_FRONTIER_H
|
||||
#define POKEPLATINUM_CONSTANTS_BATTLE_FRONTIER_H
|
||||
|
||||
enum BattleFrontierScene {
|
||||
FRONTIER_SCENE_0 = 0,
|
||||
FRONTIER_SCENE_1,
|
||||
FRONTIER_SCENE_2,
|
||||
FRONTIER_SCENE_FACTORY_CORRIDOR,
|
||||
FRONTIER_SCENE_FACTORY_BATTLE_ROOM,
|
||||
FRONTIER_SCENE_TOWER_CORRIDOR,
|
||||
FRONTIER_SCENE_TOWER_MULTI_CORRIDOR,
|
||||
FRONTIER_SCENE_TOWER_BATTLE_ROOM,
|
||||
FRONTIER_SCENE_TOWER_MULTI_BATTLE_ROOM,
|
||||
FRONTIER_SCENE_HALL_CORRIDOR,
|
||||
FRONTIER_SCENE_HALL_BATTLE_ROOM,
|
||||
FRONTIER_SCENE_CASTLE_CORRIDOR,
|
||||
FRONTIER_SCENE_CASTLE_BATTLE_ROOM,
|
||||
FRONTIER_SCENE_13,
|
||||
FRONTIER_SCENE_14,
|
||||
FRONTIER_SCENE_ARCADE_CORRIDOR,
|
||||
FRONTIER_SCENE_ARCADE_BATTLE_ROOM,
|
||||
};
|
||||
|
||||
#define FRONTIER_CHALLENGE_SINGLE 0
|
||||
#define FRONTIER_CHALLENGE_DOUBLE 1
|
||||
#define FRONTIER_CHALLENGE_MULTI 2
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef POKEPLATINUM_CONST_020F8BE0_H
|
||||
#define POKEPLATINUM_CONST_020F8BE0_H
|
||||
|
||||
#include "overlay_manager.h"
|
||||
|
||||
extern const ApplicationManagerTemplate Unk_020F8BE0;
|
||||
|
||||
#endif // POKEPLATINUM_CONST_020F8BE0_H
|
||||
@@ -713,7 +713,7 @@ ScriptCommand(SCRCMD_MESSAGEAUTOSCROLL, ScrCm
|
||||
ScriptCommand(SCRCMD_OPENSAVEINFO, ScrCmd_OpenSaveInfo)
|
||||
ScriptCommand(SCRCMD_CLOSESAVEINFO, ScrCmd_CloseSaveInfo)
|
||||
ScriptCommand(SCRCMD_UNUSED_2C3, ScrCmd_Unused_2C3)
|
||||
ScriptCommand(SCRCMD_2C4, ScrCmd_2C4)
|
||||
ScriptCommand(SCRCMD_LAUNCHBATTLEFRONTIERSCENE, ScrCmd_LaunchBattleFrontierScene)
|
||||
ScriptCommand(SCRCMD_2C5, ScrCmd_2C5)
|
||||
ScriptCommand(SCRCMD_2C6, ScrCmd_2C6)
|
||||
ScriptCommand(SCRCMD_ISCOMMGAMECODEPLATINUM, ScrCmd_IsCommGameCodePlatinum)
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "overlay104/struct_ov104_0222E8C8.h"
|
||||
|
||||
@@ -74,7 +74,7 @@ typedef struct FrontierMenuManager {
|
||||
} FrontierMenuManager;
|
||||
|
||||
struct FrontierScriptManager {
|
||||
UnkStruct_0209B75C *unk_00;
|
||||
BattleFrontier *frontier;
|
||||
FrontierScriptContext *ctx[8];
|
||||
UnkStruct_ov104_0222E8C8 unk_24;
|
||||
enum HeapID heapID;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef POKEPLATINUM_FRONTIER_GRAPHICS_H
|
||||
#define POKEPLATINUM_FRONTIER_GRAPHICS_H
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "overlay063/struct_ov63_0222BCE8_decl.h"
|
||||
#include "overlay063/struct_ov63_0222BE18_decl.h"
|
||||
@@ -30,7 +30,7 @@
|
||||
typedef struct FrontierGraphics {
|
||||
BgConfig *bgConfig;
|
||||
PaletteData *plttData;
|
||||
UnkStruct_0209B75C *unk_08;
|
||||
BattleFrontier *frontier;
|
||||
G3DPipelineBuffers *g3dPipeline;
|
||||
FrontierParticleSystem *particleSys;
|
||||
UnkStruct_ov63_0222BE18 *unk_14;
|
||||
@@ -59,7 +59,7 @@ typedef struct FrontierGraphics {
|
||||
u8 unk_C2;
|
||||
} FrontierGraphics;
|
||||
|
||||
FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0);
|
||||
FrontierGraphics *FrontierGraphics_New(BattleFrontier *frontier);
|
||||
void FrontierGraphics_Free(FrontierGraphics *graphics);
|
||||
|
||||
void ov104_0223C634(FrontierGraphics *param0);
|
||||
@@ -77,6 +77,6 @@ ManagedSprite *ov104_0223D370(FrontierGraphics *param0, u16 param1);
|
||||
void ov104_0223D378(FrontierGraphics *param0, u16 param1, int param2);
|
||||
u32 ov104_0223D3A4(FrontierGraphics *param0, u16 param1);
|
||||
void ov104_0223D554(FrontierGraphics *param0, s16 *param1, s16 *param2);
|
||||
UnkStruct_ov104_0223C634 *ov104_0223D5A8(UnkStruct_0209B75C *param0, int param1);
|
||||
UnkStruct_ov104_0223C634 *ov104_0223D5A8(BattleFrontier *param0, int param1);
|
||||
|
||||
#endif // POKEPLATINUM_FRONTIER_GRAPHICS_H
|
||||
|
||||
29
include/overlay104/frontier_scenes.h
Normal file
29
include/overlay104/frontier_scenes.h
Normal file
@@ -0,0 +1,29 @@
|
||||
#ifndef POKEPLATINUM_FRONTIER_SCENES_H
|
||||
#define POKEPLATINUM_FRONTIER_SCENES_H
|
||||
|
||||
#include "constants/battle_frontier.h"
|
||||
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
|
||||
enum FrontierSceneParam {
|
||||
FR_SCENE_BGMODE = 0,
|
||||
FR_SCENE_SCRIPT_ID,
|
||||
FR_SCENE_BANK_ID,
|
||||
FR_SCENE_BGM_ID,
|
||||
FR_SCENE_SCREEN_SIZE,
|
||||
FR_SCENE_NARC_ID,
|
||||
FR_SCENE_TILEMAP_IDX,
|
||||
FR_SCENE_TILES_IDX,
|
||||
FR_SCENE_PLTT_IDX,
|
||||
FR_SCENE_SUB_TILEMAP_IDX,
|
||||
FR_SCENE_SUB_TILES_IDX,
|
||||
FR_SCENE_SUB_PLTT_IDX,
|
||||
FR_SCENE_FLAG_1,
|
||||
FR_SCENE_FLAG_2,
|
||||
};
|
||||
|
||||
int FrontierScene_GetParam(enum BattleFrontierScene sceneID, enum FrontierSceneParam sceneParam);
|
||||
void FrontierScene_CallSetupFunc(FrontierGraphics *graphics, void **sceneData, enum BattleFrontierScene sceneID);
|
||||
void FrontierScene_CallDestroyFunc(FrontierGraphics *graphics, void **sceneData, enum BattleFrontierScene sceneID);
|
||||
|
||||
#endif // POKEPLATINUM_FRONTIER_SCENES_H
|
||||
@@ -3,14 +3,14 @@
|
||||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "overlay104/defs.h"
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
#include "overlay104/struct_ov104_0222E8C8.h"
|
||||
|
||||
FrontierScriptManager *FrontierScriptManager_New(UnkStruct_0209B75C *param0, enum HeapID heapID, int scene);
|
||||
BOOL ov104_0222E6A8(FrontierScriptManager *scriptMan);
|
||||
FrontierScriptManager *FrontierScriptManager_New(BattleFrontier *frontier, enum HeapID heapID, int scene);
|
||||
BOOL FrontierScriptManager_RunScript(FrontierScriptManager *scriptMan);
|
||||
void FrontierScriptManager_Free(FrontierScriptManager *scriptMan);
|
||||
void FrontierScriptManager_Load(FrontierScriptManager *scriptMan, int scene, int offsetID);
|
||||
void FrontierScriptManager_UpdateMessageLoader(FrontierScriptManager *scriptMan, int scene, enum HeapID heapID);
|
||||
|
||||
@@ -1,27 +0,0 @@
|
||||
#ifndef POKEPLATINUM_OV104_0222EA90_H
|
||||
#define POKEPLATINUM_OV104_0222EA90_H
|
||||
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
|
||||
enum FrontierSceneParam {
|
||||
FR_SCENE_BGMODE = 0,
|
||||
FR_SCENE_SCRIPT_ID,
|
||||
FR_SCENE_BANK_ID,
|
||||
FR_SCENE_BGM_ID,
|
||||
FR_SCENE_SCREEN_SIZE,
|
||||
FR_SCENE_NARC_ID,
|
||||
FR_SCENE_TILEMAP_IDX,
|
||||
FR_SCENE_TILES_IDX,
|
||||
FR_SCENE_PLTT_IDX,
|
||||
FR_SCENE_SUB_TILEMAP_IDX,
|
||||
FR_SCENE_SUB_TILES_IDX,
|
||||
FR_SCENE_SUB_PLTT_IDX,
|
||||
FR_SCENE_FLAG_1,
|
||||
FR_SCENE_FLAG_2,
|
||||
};
|
||||
|
||||
int GetFrontierSceneValue(int scene, enum FrontierSceneParam sceneParam);
|
||||
void ov104_0222EB8C(FrontierGraphics *param0, void **param1, int param2);
|
||||
void ov104_0222EBA4(FrontierGraphics *param0, void **param1, int param2);
|
||||
|
||||
#endif // POKEPLATINUM_OV104_0222EA90_H
|
||||
@@ -1,7 +1,7 @@
|
||||
#ifndef POKEPLATINUM_OV104_02239C58_H
|
||||
#define POKEPLATINUM_OV104_02239C58_H
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
#include "struct_defs/struct_0209BBA4.h"
|
||||
|
||||
#include "savedata.h"
|
||||
@@ -9,6 +9,6 @@
|
||||
UnkStruct_0209BBA4 *ov104_02239C58(SaveData *saveData);
|
||||
void ov104_02239C7C(UnkStruct_0209BBA4 *param0);
|
||||
BOOL ov104_02239C88(UnkStruct_0209BBA4 *param0, u16 param1, u16 param2, u16 param3);
|
||||
void ov104_02239CD0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, u16 param2);
|
||||
void ov104_02239CD0(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, u16 param2);
|
||||
|
||||
#endif // POKEPLATINUM_OV104_02239C58_H
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
BOOL BattleTower_CreateTrainerParty(BattleTower *battleTower, FrontierDataDTO *opponentDataDTO, u16 battleTowerTrainerID, int partySize, u16 *species, u16 *items, UnkStruct_0204B404 *param6, enum HeapID heapID);
|
||||
void BattleTower_CreateWiFiTrainerParty(SaveData *saveData, FrontierDataDTO *dto, const u8 opponentID);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleTower(BattleTower *battleTower, UnkStruct_ov104_02230BE4 *param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleTower(BattleTower *battleTower, FieldFrontierDTO *fieldData);
|
||||
void ov104_0223A734(BattleTower *battleTower, u16 param1);
|
||||
u16 ov104_0223A750(BattleTower *battleTower, const u16 *param1);
|
||||
int BattleTower_GetTrainerMessagesBankID(u8 challengeMode);
|
||||
|
||||
@@ -15,7 +15,7 @@ u8 BattleFactory_GetPlayerPartySize(u8 challengeType);
|
||||
u8 BattleFactory_GetOpponentPartySize(u8 challengeType, BOOL param1);
|
||||
void ov104_0223AAA0(u16 param0, u8 param1, u16 *param2, FrontierPokemonDataDTO *param3, u8 *param4, u32 *param5, u16 param6, u16 *param7, u16 *param8);
|
||||
void ov104_0223AB0C(u8 param0, u16 param1, u8 param2, FrontierPokemonDataDTO *param3, u16 *param4, FrontierPokemonDataDTO *param5, u8 *param6, u32 *param7, int param8);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleFactory(BattleFactory *battleFactory, UnkStruct_ov104_02230BE4 *param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleFactory(BattleFactory *battleFactory, FieldFrontierDTO *fieldData);
|
||||
u8 BattleFactory_GetPokemonLevel(BattleFactory *battleFactory);
|
||||
void ov104_0223ADB0(BattleFactory *battleFactory);
|
||||
void ov104_0223AE30(BattleFactory *battleFactory);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
void ov104_0223AF58(u8 param0, u8 param1, u8 param2, u8 param3, u16 param4[]);
|
||||
void ov104_0223AFB4(u8 param0, u8 param1, int param2, u8 param3, u8 param4, u16 param5[]);
|
||||
void ov104_0223B0C8(u8 param0, u8 param1, u8 param2, u8 param3, u16 param4, u16 param5[], u8 param6);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, UnkStruct_ov104_02230BE4 *param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, FieldFrontierDTO *fieldData);
|
||||
u8 BattleHall_GetPlayerPartySize(u8 challengeType);
|
||||
u8 BattleHall_GetOpponentPartySize(u8 challengeType);
|
||||
u8 BattleHall_CursorPosToType(u8 cursorPos);
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
void ov104_0223B760(u8 param0, int param1, u16 param2[], u8 param3);
|
||||
u8 BattleCastle_GetPlayerPartySize(u8 challengeType, BOOL includePartnersMons);
|
||||
u8 BattleCastle_GetOpponentPartySize(u8 challengeType, BOOL param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, UnkStruct_ov104_02230BE4 *param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, FieldFrontierDTO *fieldData);
|
||||
u8 BattleCastle_GetOpponentLevel(BattleCastle *battleCastle);
|
||||
BOOL BattleCastle_IsMultiPlayerChallenge(u8 challengeType);
|
||||
void ov104_0223BA24(Party *param0);
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
void ov104_0223BD28(u8 param0, int param1, u16 param2[], u8 param3);
|
||||
u8 BattleArcade_GetPlayerPartySize(u8 challengeType, BOOL includePartnerMons);
|
||||
u8 BattleArcade_GetOpponentPartySize(u8 challengeType, BOOL includeBothOpponents);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, UnkStruct_ov104_02230BE4 *param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, FieldFrontierDTO *fieldData);
|
||||
u8 BattleArcade_GetPokemonLevel(BattleArcade *battleArcade);
|
||||
BOOL BattleArcade_IsMultiPlayerChallenge(u8 challengeType);
|
||||
void ov104_0223C010(BattleArcade *battleArcade, Pokemon *param1);
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
#ifndef POKEPLATINUM_OV104_0223D860_H
|
||||
#define POKEPLATINUM_OV104_0223D860_H
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
void ov104_0223D860(UnkStruct_0209B75C *param0, u16 param1, u8 param2, s16 param3[], int param4);
|
||||
void ov104_0223D8C4(UnkStruct_0209B75C *param0);
|
||||
void ov104_0223D860(BattleFrontier *param0, u16 param1, u8 param2, s16 param3[], int param4);
|
||||
void ov104_0223D8C4(BattleFrontier *param0);
|
||||
|
||||
#endif // POKEPLATINUM_OV104_0223D860_H
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
#include "journal.h"
|
||||
#include "savedata.h"
|
||||
|
||||
typedef struct {
|
||||
typedef struct FieldFrontierDTO {
|
||||
void *unk_00;
|
||||
const Options *options;
|
||||
SaveData *saveData;
|
||||
@@ -20,6 +20,6 @@ typedef struct {
|
||||
u8 *subscreenCursorOn;
|
||||
u8 sceneID;
|
||||
FieldSystem *fieldSystem;
|
||||
} UnkStruct_ov104_02230BE4;
|
||||
} FieldFrontierDTO;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_OV104_02230BE4_H
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#ifndef POKEPLATINUM_STRUCT_0209B75C_DECL_H
|
||||
#define POKEPLATINUM_STRUCT_0209B75C_DECL_H
|
||||
|
||||
typedef struct UnkStruct_0209B75C_t UnkStruct_0209B75C;
|
||||
typedef struct BattleFrontier BattleFrontier;
|
||||
|
||||
#endif // POKEPLATINUM_STRUCT_0209B75C_DECL_H
|
||||
@@ -1,28 +0,0 @@
|
||||
#ifndef POKEPLATINUM_UNK_0209B6F8_H
|
||||
#define POKEPLATINUM_UNK_0209B6F8_H
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
|
||||
#include "functypes/funcptr_0209B988.h"
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
#include "overlay104/struct_ov104_0223C688.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0.h"
|
||||
|
||||
#include "overlay_manager.h"
|
||||
|
||||
UnkStruct_ov104_02230BE4 *sub_0209B970(UnkStruct_0209B75C *param0);
|
||||
FrontierGraphics *sub_0209B974(UnkStruct_0209B75C *param0);
|
||||
void *sub_0209B978(UnkStruct_0209B75C *param0);
|
||||
void sub_0209B980(UnkStruct_0209B75C *param0, void *param1);
|
||||
void sub_0209B988(UnkStruct_0209B75C *param0, const ApplicationManagerTemplate *param1, void *param2, int param3, UnkFuncPtr_0209B988 param4);
|
||||
void sub_0209B9B4(UnkStruct_0209B75C *param0);
|
||||
void sub_0209B9BC(UnkStruct_0209B75C *param0, u16 param1, u16 param2);
|
||||
UnkStruct_ov104_0223C688 *sub_0209B9CC(UnkStruct_0209B75C *param0);
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D0(UnkStruct_0209B75C *param0);
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D4(UnkStruct_0209B75C *param0, int param1);
|
||||
UnkStruct_ov104_0223D3B0 *sub_0209B9E0(UnkStruct_0209B75C *param0);
|
||||
void sub_0209B9EC(UnkStruct_0209B75C *param0);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0209B6F8_H
|
||||
@@ -1,9 +0,0 @@
|
||||
#ifndef POKEPLATINUM_UNK_0209BA18_H
|
||||
#define POKEPLATINUM_UNK_0209BA18_H
|
||||
|
||||
#include "field/field_system_decl.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
|
||||
UnkStruct_ov104_02230BE4 *sub_0209BA18(FieldSystem *fieldSystem, void *param1);
|
||||
|
||||
#endif // POKEPLATINUM_UNK_0209BA18_H
|
||||
@@ -362,8 +362,7 @@ Static main
|
||||
Object main.nef.p/src_unk_0209ACF4.c.o
|
||||
Object main.nef.p/src_unk_0209B344.c.o
|
||||
Object main.nef.p/src_error_message_reset.c.o
|
||||
Object main.nef.p/src_unk_0209B6F8.c.o
|
||||
Object main.nef.p/src_unk_0209BA18.c.o
|
||||
Object main.nef.p/src_battle_frontier.c.o
|
||||
Object main.nef.p/src_unk_0209BA80.c.o
|
||||
Object main.nef.p/src_unk_0209BDF8.c.o
|
||||
Object main.nef.p/src_unk_0209C194.c.o
|
||||
@@ -1538,7 +1537,7 @@ Overlay overlay104
|
||||
Object main.nef.p/src_overlay104_ov104_0222DCE0.c.o
|
||||
Object main.nef.p/src_overlay104_frontier_script_manager.c.o
|
||||
Object main.nef.p/src_overlay104_frontier_script_context.c.o
|
||||
Object main.nef.p/src_overlay104_ov104_0222EA90.c.o
|
||||
Object main.nef.p/src_overlay104_frontier_scenes.c.o
|
||||
Object main.nef.p/src_overlay104_ov104_0222ECE8.c.o
|
||||
Object main.nef.p/src_overlay104_frscrcmd.c.o
|
||||
Object main.nef.p/src_overlay104_ov104_02231F74.c.o
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# include "macros/frscrcmd.inc"
|
||||
# include "res/graphics/frontier/particles/frontier_particles.naix"
|
||||
# include "res/text/bank/battle_arcade_scene.h"
|
||||
# include "constants/battle_frontier.h"
|
||||
# include "constants/battle_arcade_functions.h"
|
||||
# include "constants/battle_frontier_emitters.h"
|
||||
|
||||
@@ -941,7 +942,7 @@ _0742:
|
||||
End
|
||||
|
||||
_0788:
|
||||
FrontierScrCmd_03 16
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_ARCADE_BATTLE_ROOM
|
||||
SetVar VAR_0x800D, 0
|
||||
CallBattleArcadeFunction BA_FUNC_IS_MULTIPLAYER_CHALLENGE, 0, 0, VAR_0x8008
|
||||
GoToIfEq VAR_0x8008, 1, _07BC
|
||||
@@ -3124,7 +3125,7 @@ _2E86:
|
||||
_2E90:
|
||||
FreeBattleRecording
|
||||
FrontierScrCmd_BA
|
||||
FrontierScrCmd_04 14, 1
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_14, 1
|
||||
End
|
||||
|
||||
_2E9C:
|
||||
|
||||
@@ -1017,7 +1017,7 @@ _0B36:
|
||||
FrontierScrCmd_25 3
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_23 217
|
||||
FrontierScrCmd_03 13
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_13
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _019C
|
||||
FrontierScrCmd_24 _01B0
|
||||
@@ -1036,7 +1036,7 @@ _0BBA:
|
||||
FrontierScrCmd_25 2
|
||||
FrontierScrCmd_25 3
|
||||
FrontierScrCmd_23 217
|
||||
FrontierScrCmd_03 13
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_13
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _01A4
|
||||
FrontierScrCmd_24 _01C8
|
||||
@@ -1094,7 +1094,7 @@ _0CAD:
|
||||
FrontierScrCmd_25 3
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_23 217
|
||||
FrontierScrCmd_03 12
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_CASTLE_BATTLE_ROOM
|
||||
Call _0E74
|
||||
FrontierScrCmd_22 _00DC
|
||||
FrontierScrCmd_24 _0100
|
||||
@@ -1131,7 +1131,7 @@ _0DA3:
|
||||
FrontierScrCmd_25 2
|
||||
FrontierScrCmd_25 3
|
||||
FrontierScrCmd_23 217
|
||||
FrontierScrCmd_03 12
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_CASTLE_BATTLE_ROOM
|
||||
Call _0E74
|
||||
FrontierScrCmd_22 _00E8
|
||||
FrontierScrCmd_24 _0124
|
||||
@@ -1829,7 +1829,7 @@ _1948:
|
||||
_1952:
|
||||
FreeBattleRecording
|
||||
FrontierScrCmd_99
|
||||
FrontierScrCmd_04 14, 1
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_14, 1
|
||||
End
|
||||
|
||||
_195E:
|
||||
@@ -1868,7 +1868,7 @@ _19E8:
|
||||
GoToIfEq VAR_0x8008, 1, _1A30
|
||||
FrontierScrCmd_25 0
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_03 11
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_CASTLE_CORRIDOR
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
SetVar FR_VAR_0x800F, 231
|
||||
FrontierScrCmd_22 _0008
|
||||
@@ -1879,7 +1879,7 @@ _19E8:
|
||||
_1A30:
|
||||
FrontierScrCmd_25 1
|
||||
FrontierScrCmd_25 2
|
||||
FrontierScrCmd_03 11
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_CASTLE_CORRIDOR
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
SetVar FR_VAR_0x800F, 232
|
||||
FrontierScrCmd_22 _0010
|
||||
|
||||
@@ -744,7 +744,7 @@ _084E:
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_23 30
|
||||
CallBattleFactoryFunction BF_FUNC_UNK_32, 0, 0, VAR_0x8008
|
||||
FrontierScrCmd_03 4
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_FACTORY_BATTLE_ROOM
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _00F8
|
||||
FrontierScrCmd_24 _0108
|
||||
@@ -781,7 +781,7 @@ _0927:
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_23 30
|
||||
CallBattleFactoryFunction BF_FUNC_UNK_32, 0, 0, VAR_0x8008
|
||||
FrontierScrCmd_03 4
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_FACTORY_BATTLE_ROOM
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _0100
|
||||
FrontierScrCmd_24 _0120
|
||||
@@ -1412,7 +1412,7 @@ _1368:
|
||||
CallBattleFactoryFunction BF_FUNC_UNK_32, 0, 0, VAR_0x8008
|
||||
FreeBattleRecording
|
||||
FrontierScrCmd_5E
|
||||
FrontierScrCmd_04 14, 1
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_14, 1
|
||||
End
|
||||
|
||||
_137B:
|
||||
@@ -1432,7 +1432,7 @@ _1391:
|
||||
GoToIfEq VAR_0x8008, 1, _13EA
|
||||
FrontierScrCmd_25 0
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_03 3
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_FACTORY_CORRIDOR
|
||||
CallBattleFactoryFunction BF_FUNC_UNK_31, 0, 0, VAR_0x8008
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _0008
|
||||
@@ -1444,7 +1444,7 @@ _13EA:
|
||||
FrontierScrCmd_25 1
|
||||
FrontierScrCmd_25 2
|
||||
FrontierScrCmd_25 4
|
||||
FrontierScrCmd_03 3
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_FACTORY_CORRIDOR
|
||||
CallBattleFactoryFunction BF_FUNC_UNK_31, 0, 0, VAR_0x8008
|
||||
GetPlayerObjEventGfx VAR_0x8007
|
||||
FrontierScrCmd_22 _0014
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# include "macros/frscrcmd.inc"
|
||||
# include "res/graphics/frontier/particles/frontier_particles.naix"
|
||||
# include "res/text/bank/battle_hall_scene.h"
|
||||
# include "constants/battle_frontier.h"
|
||||
# include "constants/battle_frontier_emitters.h"
|
||||
# include "constants/battle_hall_functions.h"
|
||||
|
||||
@@ -522,7 +523,7 @@ _0404:
|
||||
End
|
||||
|
||||
_044A:
|
||||
FrontierScrCmd_03 10
|
||||
FrontierScrCmd_03 FRONTIER_SCENE_HALL_BATTLE_ROOM
|
||||
CallBattleHallFunction BH_FUNC_IS_MULTIPLAYER_CHALLENGE, 0, 0, VAR_0x8008
|
||||
GoToIfEq VAR_0x8008, 1, _0476
|
||||
FrontierScrCmd_22 _0024
|
||||
@@ -1251,7 +1252,7 @@ _1071:
|
||||
_107B:
|
||||
FreeBattleRecording
|
||||
FreeBattleHall
|
||||
FrontierScrCmd_04 14, 1
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_14, 1
|
||||
End
|
||||
|
||||
_1087:
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# include "macros/frscrcmd.inc"
|
||||
# include "constants/battle_frontier.h"
|
||||
|
||||
.data
|
||||
|
||||
@@ -202,7 +203,7 @@ _0232:
|
||||
FrontierScrCmd_25 0
|
||||
FrontierScrCmd_25 1
|
||||
FrontierScrCmd_23 FR_VAR_0x800F
|
||||
FrontierScrCmd_04 7, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_TOWER_BATTLE_ROOM, 0
|
||||
End
|
||||
|
||||
.balign 4, 0
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
# include "macros/frscrcmd.inc"
|
||||
# include "constants/battle_frontier.h"
|
||||
|
||||
.data
|
||||
|
||||
@@ -248,7 +249,7 @@ _0250:
|
||||
End
|
||||
|
||||
_0270:
|
||||
FrontierScrCmd_04 8, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_TOWER_MULTI_BATTLE_ROOM, 0
|
||||
End
|
||||
|
||||
_0278:
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# include "macros/frscrcmd.inc"
|
||||
# include "res/text/bank/battle_tower_multi_battle_room.h"
|
||||
# include "res/text/bank/menu_entries.h"
|
||||
# include "constants/battle_frontier.h"
|
||||
|
||||
.data
|
||||
|
||||
@@ -393,7 +394,7 @@ _04D1:
|
||||
|
||||
_04D5:
|
||||
ClearTowerStruct
|
||||
FrontierScrCmd_04 14, 1
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_14, 1
|
||||
End
|
||||
|
||||
_04DF:
|
||||
|
||||
@@ -468,35 +468,35 @@ _0858:
|
||||
GoToIfEq VAR_0x8008, 0, _0858
|
||||
FrontierScrCmd_B5
|
||||
Call _08C9
|
||||
FrontierScrCmd_04 6, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_TOWER_MULTI_CORRIDOR, 0
|
||||
End
|
||||
|
||||
_0879:
|
||||
FrontierScrCmd_AB
|
||||
PlayBGM SEQ_PL_BF_FACTORY
|
||||
Call _08C9
|
||||
FrontierScrCmd_04 3, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_FACTORY_CORRIDOR, 0
|
||||
End
|
||||
|
||||
_088D:
|
||||
FrontierScrCmd_AB
|
||||
PlayBGM SEQ_PL_BF_STAGE
|
||||
Call _08C9
|
||||
FrontierScrCmd_04 9, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_HALL_CORRIDOR, 0
|
||||
End
|
||||
|
||||
_08A1:
|
||||
FrontierScrCmd_AB
|
||||
PlayBGM SEQ_PL_BF_CASTLE02
|
||||
Call _08C9
|
||||
FrontierScrCmd_04 11, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_CASTLE_CORRIDOR, 0
|
||||
End
|
||||
|
||||
_08B5:
|
||||
FrontierScrCmd_AB
|
||||
PlayBGM SEQ_PL_BF_ROULETTE
|
||||
Call _08C9
|
||||
FrontierScrCmd_04 15, 0
|
||||
FrontierScrCmd_04 FRONTIER_SCENE_ARCADE_CORRIDOR, 0
|
||||
End
|
||||
|
||||
_08C9:
|
||||
|
||||
@@ -291,7 +291,7 @@ BattleArcade_StartChallenge:
|
||||
IncrementGameRecord RECORD_TIMES_STARTED_BATTLE_FRONTIER_CHALLENGE
|
||||
CreateJournalEvent LOCATION_EVENT_BATTLE_ARCADE
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 15
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_ARCADE_CORRIDOR
|
||||
CallIfEq VAR_BATTLE_ARCADE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, BattleArcade_EndCommunication
|
||||
ReturnToField
|
||||
FadeScreenIn
|
||||
|
||||
@@ -288,7 +288,7 @@ BattleCastle_StartChallenge:
|
||||
IncrementGameRecord RECORD_TIMES_STARTED_BATTLE_FRONTIER_CHALLENGE
|
||||
CreateJournalEvent LOCATION_EVENT_BATTLE_CASTLE
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 11
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_CASTLE_CORRIDOR
|
||||
CallIfEq VAR_BATTLE_CASTLE_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, BattleCastle_EndCommunication
|
||||
ReturnToField
|
||||
FadeScreenIn
|
||||
|
||||
@@ -240,7 +240,7 @@ BattleFactory_StartChallenge:
|
||||
IncrementGameRecord RECORD_TIMES_STARTED_BATTLE_FRONTIER_CHALLENGE
|
||||
CreateJournalEvent LOCATION_EVENT_BATTLE_FACTORY
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 3
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_FACTORY_CORRIDOR
|
||||
CallIfEq VAR_BATTLE_FACTORY_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, BattleFactory_EndCommunication
|
||||
ReturnToField
|
||||
FadeScreenIn
|
||||
|
||||
@@ -408,7 +408,7 @@ BattleHall_StartChallenge:
|
||||
IncrementGameRecord RECORD_TIMES_STARTED_BATTLE_FRONTIER_CHALLENGE
|
||||
CreateJournalEvent LOCATION_EVENT_BATTLE_HALL
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 9
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_HALL_CORRIDOR
|
||||
CallIfEq VAR_BATTLE_HALL_CHALLENGE_TYPE, FRONTIER_CHALLENGE_MULTI, BattleHall_EndCommunication
|
||||
ReturnToField
|
||||
FadeScreenIn
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
#include "macros/scrcmd.inc"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "res/field/events/events_battle_tower_elevator.h"
|
||||
#include "generated/object_events_gfx.h"
|
||||
|
||||
@@ -45,7 +46,7 @@ BattleTowerElevator_BattleRoomCheckWiFi:
|
||||
GoToIfEq VAR_RESULT, BATTLE_TOWER_MODE_WIFI, BattleTowerElevator_WiFiBattleRoom
|
||||
GoToIfEq VAR_RESULT, BATTLE_TOWER_MODE_5, BattleTowerElevator_WiFiBattleRoom
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 5
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_TOWER_CORRIDOR
|
||||
ReturnToField
|
||||
Warp MAP_HEADER_BATTLE_TOWER, 15, 6, DIR_NORTH
|
||||
End
|
||||
@@ -54,7 +55,7 @@ BattleTowerElevator_MultiBattleRoom:
|
||||
FadeScreenOut
|
||||
WaitFadeScreen
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 6
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_TOWER_MULTI_CORRIDOR
|
||||
ReturnToField
|
||||
Warp MAP_HEADER_BATTLE_TOWER, 11, 6, DIR_NORTH
|
||||
End
|
||||
@@ -139,7 +140,7 @@ BattleTowerElevator_Movement_PlayerExit:
|
||||
|
||||
BattleTowerElevator_WiFiBattleRoom:
|
||||
WaitForTransition
|
||||
ScrCmd_2C4 5
|
||||
LaunchBattleFrontierScene FRONTIER_SCENE_TOWER_CORRIDOR
|
||||
ReturnToField
|
||||
Warp MAP_HEADER_BATTLE_TOWER, 19, 6, DIR_NORTH
|
||||
End
|
||||
|
||||
323
src/battle_frontier.c
Normal file
323
src/battle_frontier.c
Normal file
@@ -0,0 +1,323 @@
|
||||
#include "battle_frontier.h"
|
||||
|
||||
#include <nitro.h>
|
||||
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "functypes/funcptr_0209B988.h"
|
||||
#include "overlay104/defs.h"
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
#include "overlay104/frontier_script_manager.h"
|
||||
#include "overlay104/struct_ov104_0222E8C8.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
#include "overlay104/struct_ov104_0223C688.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0_sub1.h"
|
||||
#include "overlay104/struct_ov104_0223D8F0.h"
|
||||
|
||||
#include "field_system.h"
|
||||
#include "game_overlay.h"
|
||||
#include "heap.h"
|
||||
#include "overlay_manager.h"
|
||||
#include "save_player.h"
|
||||
#include "system.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(overlay63);
|
||||
FS_EXTERN_OVERLAY(overlay104);
|
||||
FS_EXTERN_OVERLAY(battle_factory_app);
|
||||
|
||||
typedef struct BattleFrontier {
|
||||
FieldFrontierDTO *fieldData;
|
||||
ApplicationManager *appMan;
|
||||
void *unk_08;
|
||||
UnkFuncPtr_0209B988 unk_0C;
|
||||
u8 unk_10;
|
||||
FrontierScriptManager *scriptMan;
|
||||
FrontierGraphics *graphics;
|
||||
u8 unk_1C;
|
||||
u8 isGraphicsInitialized;
|
||||
u8 unk_1E;
|
||||
u16 unk_20;
|
||||
u8 unk_22;
|
||||
UnkStruct_ov104_0223C688 unk_24[24];
|
||||
UnkStruct_ov104_0223C634 unk_6C[32];
|
||||
UnkStruct_ov104_0223D8F0 unk_78C[32];
|
||||
UnkStruct_ov104_0223D3B0 unk_98C;
|
||||
} BattleFrontier;
|
||||
|
||||
static BOOL BattleFrontier_Init(ApplicationManager *appMan, int *state);
|
||||
int BattleFrontier_Main(ApplicationManager *appMan, int *state);
|
||||
int BattleFrontier_Exit(ApplicationManager *appMan, int *state);
|
||||
static void InitFrontierGraphics(BattleFrontier *frontier);
|
||||
static void FreeFrontierGraphics(BattleFrontier *frontier);
|
||||
static void LoadBattleFrontierOverlays(void);
|
||||
static void UnloadBattleFrontierOverlays(void);
|
||||
static void sub_0209B8E8(BattleFrontier *frontier);
|
||||
|
||||
const ApplicationManagerTemplate gBattleFrontierAppTemplate = {
|
||||
BattleFrontier_Init,
|
||||
BattleFrontier_Main,
|
||||
BattleFrontier_Exit,
|
||||
FS_OVERLAY_ID_NONE
|
||||
};
|
||||
|
||||
static BOOL BattleFrontier_Init(ApplicationManager *appMan, int *state)
|
||||
{
|
||||
LoadBattleFrontierOverlays();
|
||||
|
||||
BattleFrontier *frontier = ApplicationManager_NewData(appMan, sizeof(BattleFrontier), HEAP_ID_FIELD2);
|
||||
MI_CpuClear8(frontier, sizeof(BattleFrontier));
|
||||
|
||||
sub_0209B8E8(frontier);
|
||||
sub_0209B9EC(frontier);
|
||||
|
||||
frontier->fieldData = ApplicationManager_Args(appMan);
|
||||
GF_ASSERT(frontier->fieldData != NULL);
|
||||
|
||||
frontier->scriptMan = FrontierScriptManager_New(frontier, HEAP_ID_FIELD2, frontier->fieldData->sceneID);
|
||||
FrontierScriptManager_Load(frontier->scriptMan, frontier->fieldData->sceneID, 0);
|
||||
|
||||
InitFrontierGraphics(frontier);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int BattleFrontier_Main(ApplicationManager *appMan, int *state)
|
||||
{
|
||||
BattleFrontier *frontier = ApplicationManager_Data(appMan);
|
||||
|
||||
switch (*state) {
|
||||
case 0:
|
||||
*state = 1;
|
||||
break;
|
||||
case 1:
|
||||
if (frontier->unk_22 == 1) {
|
||||
*state = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (!frontier->isGraphicsInitialized) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (frontier->unk_1E == 1) {
|
||||
*state = 5;
|
||||
break;
|
||||
}
|
||||
|
||||
if (FrontierScriptManager_RunScript(frontier->scriptMan) == TRUE) {
|
||||
if (JOY_NEW(PAD_BUTTON_B)) {
|
||||
*state = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (frontier->appMan != NULL) {
|
||||
*state = 3;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
return TRUE;
|
||||
case 3:
|
||||
ov104_0223C634(frontier->graphics);
|
||||
FreeFrontierGraphics(frontier);
|
||||
UnloadBattleFrontierOverlays();
|
||||
*state = 4;
|
||||
break;
|
||||
case 4:
|
||||
if (ApplicationManager_Exec(frontier->appMan) == TRUE) {
|
||||
ApplicationManager_Free(frontier->appMan);
|
||||
LoadBattleFrontierOverlays();
|
||||
|
||||
if (frontier->unk_0C != NULL) {
|
||||
frontier->unk_0C(frontier->unk_08);
|
||||
}
|
||||
|
||||
if (frontier->unk_08 != NULL && frontier->unk_10 == 1) {
|
||||
Heap_Free(frontier->unk_08);
|
||||
}
|
||||
|
||||
frontier->appMan = NULL;
|
||||
frontier->unk_0C = NULL;
|
||||
frontier->unk_08 = NULL;
|
||||
|
||||
InitFrontierGraphics(frontier);
|
||||
ov104_0223C688(frontier->graphics);
|
||||
*state = 1;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
FreeFrontierGraphics(frontier);
|
||||
sub_0209B8E8(frontier);
|
||||
*state = 6;
|
||||
break;
|
||||
case 6:
|
||||
InitFrontierGraphics(frontier);
|
||||
|
||||
if (frontier->unk_20 == 0xffff) {
|
||||
FrontierScriptManager_UpdateMessageLoader(frontier->scriptMan, frontier->fieldData->sceneID, HEAP_ID_FIELD2);
|
||||
} else {
|
||||
UnkStruct_ov104_0222E8C8 *v2;
|
||||
|
||||
v2 = ov104_0222E8C8(frontier->scriptMan, HEAP_ID_FIELD2);
|
||||
FrontierScriptManager_Free(frontier->scriptMan);
|
||||
|
||||
frontier->scriptMan = FrontierScriptManager_New(frontier, HEAP_ID_FIELD2, frontier->fieldData->sceneID);
|
||||
FrontierScriptManager_Load(frontier->scriptMan, frontier->fieldData->sceneID, frontier->unk_20);
|
||||
ov104_0222E8E8(frontier->scriptMan, v2);
|
||||
}
|
||||
|
||||
frontier->unk_1E = 0;
|
||||
*state = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
int BattleFrontier_Exit(ApplicationManager *appMan, int *state)
|
||||
{
|
||||
BattleFrontier *frontier = ApplicationManager_Data(appMan);
|
||||
|
||||
FrontierScriptManager_Free(frontier->scriptMan);
|
||||
|
||||
FreeFrontierGraphics(frontier);
|
||||
ApplicationManager_FreeData(appMan);
|
||||
UnloadBattleFrontierOverlays();
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void InitFrontierGraphics(BattleFrontier *frontier)
|
||||
{
|
||||
frontier->graphics = FrontierGraphics_New(frontier);
|
||||
frontier->isGraphicsInitialized = TRUE;
|
||||
}
|
||||
|
||||
static void FreeFrontierGraphics(BattleFrontier *frontier)
|
||||
{
|
||||
FrontierGraphics_Free(frontier->graphics);
|
||||
frontier->isGraphicsInitialized = FALSE;
|
||||
}
|
||||
|
||||
static void sub_0209B8E8(BattleFrontier *frontier)
|
||||
{
|
||||
for (int v0 = 0; v0 < 24; v0++) {
|
||||
frontier->unk_24[v0].unk_00 = 0xffff;
|
||||
}
|
||||
|
||||
MI_CpuClear8(frontier->unk_6C, sizeof(UnkStruct_ov104_0223C634) * 32);
|
||||
|
||||
for (int v0 = 0; v0 < 32; v0++) {
|
||||
frontier->unk_6C[v0].unk_08.unk_04 = 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadBattleFrontierOverlays(void)
|
||||
{
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(overlay104), OVERLAY_LOAD_ASYNC);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(battle_factory_app), OVERLAY_LOAD_ASYNC);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(overlay63), OVERLAY_LOAD_ASYNC);
|
||||
}
|
||||
|
||||
static void UnloadBattleFrontierOverlays(void)
|
||||
{
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(overlay104));
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(battle_factory_app));
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(overlay63));
|
||||
}
|
||||
|
||||
FieldFrontierDTO *BattleFrontier_GetFieldData(BattleFrontier *frontier)
|
||||
{
|
||||
return frontier->fieldData;
|
||||
}
|
||||
|
||||
FrontierGraphics *BattleFrontier_GetGraphics(BattleFrontier *frontier)
|
||||
{
|
||||
return frontier->graphics;
|
||||
}
|
||||
|
||||
void *sub_0209B978(BattleFrontier *frontier)
|
||||
{
|
||||
return frontier->fieldData->unk_00;
|
||||
}
|
||||
|
||||
void sub_0209B980(BattleFrontier *frontier, void *param1)
|
||||
{
|
||||
frontier->fieldData->unk_00 = param1;
|
||||
}
|
||||
|
||||
void sub_0209B988(BattleFrontier *frontier, const ApplicationManagerTemplate *param1, void *param2, int param3, UnkFuncPtr_0209B988 param4)
|
||||
{
|
||||
GF_ASSERT(frontier->appMan == NULL);
|
||||
frontier->appMan = ApplicationManager_New(param1, param2, HEAP_ID_FIELD2);
|
||||
frontier->unk_08 = param2;
|
||||
frontier->unk_10 = param3;
|
||||
frontier->unk_0C = param4;
|
||||
}
|
||||
|
||||
void sub_0209B9B4(BattleFrontier *frontier)
|
||||
{
|
||||
frontier->unk_22 = 1;
|
||||
}
|
||||
|
||||
void sub_0209B9BC(BattleFrontier *frontier, u16 sceneID, u16 param2)
|
||||
{
|
||||
frontier->fieldData->sceneID = sceneID;
|
||||
frontier->unk_1E = 1;
|
||||
frontier->unk_20 = param2;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C688 *sub_0209B9CC(BattleFrontier *frontier)
|
||||
{
|
||||
return frontier->unk_24;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D0(BattleFrontier *frontier)
|
||||
{
|
||||
return frontier->unk_6C;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D4(BattleFrontier *frontier, int param1)
|
||||
{
|
||||
return &frontier->unk_6C[param1];
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223D3B0 *sub_0209B9E0(BattleFrontier *frontier)
|
||||
{
|
||||
return &frontier->unk_98C;
|
||||
}
|
||||
|
||||
void sub_0209B9EC(BattleFrontier *frontier)
|
||||
{
|
||||
MI_CpuClear8(&frontier->unk_98C, sizeof(UnkStruct_ov104_0223D3B0_sub1));
|
||||
|
||||
for (int v0 = 0; v0 < 8; v0++) {
|
||||
frontier->unk_98C.unk_00[v0] = 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
FieldFrontierDTO *sub_0209BA18(FieldSystem *fieldSystem, void *param1)
|
||||
{
|
||||
FieldFrontierDTO *fieldData = Heap_AllocAtEnd(HEAP_ID_FIELD2, sizeof(FieldFrontierDTO));
|
||||
|
||||
MI_CpuClear8(fieldData, sizeof(FieldFrontierDTO));
|
||||
|
||||
fieldData->unk_00 = param1;
|
||||
fieldData->options = SaveData_GetOptions(fieldSystem->saveData);
|
||||
fieldData->saveData = fieldSystem->saveData;
|
||||
fieldData->journalEntry = fieldSystem->journalEntry;
|
||||
fieldData->bagCursor = fieldSystem->bagCursor;
|
||||
fieldData->subscreenCursorOn = fieldSystem->battleSubscreenCursorOn;
|
||||
fieldData->unk_14 = 0;
|
||||
fieldData->unk_18 = 0;
|
||||
fieldData->mapHeaderID = fieldSystem->location->mapId;
|
||||
fieldData->sceneID = FRONTIER_SCENE_14;
|
||||
fieldData->fieldSystem = fieldSystem;
|
||||
|
||||
FieldSystem_StartChildProcess(fieldSystem, &gBattleFrontierAppTemplate, fieldData);
|
||||
|
||||
return fieldData;
|
||||
}
|
||||
@@ -343,8 +343,7 @@ pokeplatinum_c = files(
|
||||
'pokedex_memory.c',
|
||||
'unk_0209ACF4.c',
|
||||
'unk_0209B344.c',
|
||||
'unk_0209B6F8.c',
|
||||
'unk_0209BA18.c',
|
||||
'battle_frontier.c',
|
||||
'unk_0209BA80.c',
|
||||
'unk_0209BDF8.c',
|
||||
'unk_0209C194.c',
|
||||
@@ -922,7 +921,7 @@ pokeplatinum_c = files(
|
||||
'overlay104/ov104_0222DCE0.c',
|
||||
'overlay104/frontier_script_manager.c',
|
||||
'overlay104/frontier_script_context.c',
|
||||
'overlay104/ov104_0222EA90.c',
|
||||
'overlay104/frontier_scenes.c',
|
||||
'overlay104/ov104_0222ECE8.c',
|
||||
'overlay104/frscrcmd.c',
|
||||
'overlay104/ov104_02231F74.c',
|
||||
|
||||
@@ -5,8 +5,9 @@
|
||||
#include "constants/field_base_tiles.h"
|
||||
#include "constants/graphics.h"
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "global/utility.h"
|
||||
#include "overlay063/ov63_0222BCE8.h"
|
||||
#include "overlay063/ov63_0222BE18.h"
|
||||
#include "overlay063/ov63_0222CA88.h"
|
||||
@@ -22,8 +23,8 @@
|
||||
#include "overlay065/struct_ov65_0223582C.h"
|
||||
#include "overlay065/struct_ov65_022376D0.h"
|
||||
#include "overlay104/frontier_particle_system.h"
|
||||
#include "overlay104/frontier_scenes.h"
|
||||
#include "overlay104/ov104_0222DCE0.h"
|
||||
#include "overlay104/ov104_0222EA90.h"
|
||||
#include "overlay104/ov104_0223D768.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
@@ -32,6 +33,7 @@
|
||||
#include "overlay104/struct_ov104_0223D3B0_1.h"
|
||||
#include "overlay104/struct_ov104_0223D570.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "bg_window.h"
|
||||
#include "g3d_pipeline.h"
|
||||
#include "game_options.h"
|
||||
@@ -54,7 +56,6 @@
|
||||
#include "touch_pad.h"
|
||||
#include "trainer_info.h"
|
||||
#include "unk_0202419C.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "vram_transfer.h"
|
||||
|
||||
#include "res/fonts/pl_font.naix"
|
||||
@@ -70,8 +71,6 @@ static void ov104_0223CEEC(FrontierGraphics *param0);
|
||||
static void LoadMessageBoxAndWindowGraphics(FrontierGraphics *graphics);
|
||||
static void InitSpriteSystem(FrontierGraphics *graphics);
|
||||
static void FreeSpriteSystem(FrontierGraphics *graphics);
|
||||
FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0);
|
||||
void FrontierGraphics_Free(FrontierGraphics *param0);
|
||||
static void ov104_0223C8E8(FrontierGraphics *param0);
|
||||
static void LoadSubScreenBackground(FrontierGraphics *graphics);
|
||||
static G3DPipelineBuffers *InitG3DPipeline(enum HeapID heapID);
|
||||
@@ -80,7 +79,7 @@ static void FreeG3DPipeline(G3DPipelineBuffers *g3dPipeline);
|
||||
static void ov104_0223D3B0(FrontierGraphics *param0);
|
||||
static void ov104_0223D498(FrontierGraphics *param0);
|
||||
static void ov104_0223D570(UnkStruct_ov104_0223C634 *param0, UnkStruct_ov104_0223D570 *param1);
|
||||
static void ov104_0223D584(UnkStruct_0209B75C *param0, int param1, UnkStruct_ov63_0222BEC0 *param2, UnkStruct_ov63_0222CE44 *param3, const UnkStruct_ov104_0223D570 *param4);
|
||||
static void ov104_0223D584(BattleFrontier *param0, int param1, UnkStruct_ov63_0222BEC0 *param2, UnkStruct_ov63_0222CE44 *param3, const UnkStruct_ov104_0223D570 *param4);
|
||||
static void ov104_0223C798(FrontierGraphics *param0);
|
||||
static void ov104_0223C7EC(FrontierGraphics *param0);
|
||||
|
||||
@@ -116,12 +115,12 @@ static const SpriteResourceCapacities sCapacities = {
|
||||
|
||||
static const UnkUnion_ov63_0222BDAC Unk_ov104_022413D8[256] = { 0 };
|
||||
|
||||
FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0)
|
||||
FrontierGraphics *FrontierGraphics_New(BattleFrontier *frontier)
|
||||
{
|
||||
FrontierGraphics *graphics;
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(param0);
|
||||
const TrainerInfo *playerInfo = SaveData_GetTrainerInfo(v3->saveData);
|
||||
int sceneID = v3->sceneID;
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(frontier);
|
||||
const TrainerInfo *playerInfo = SaveData_GetTrainerInfo(fieldData->saveData);
|
||||
int sceneID = fieldData->sceneID;
|
||||
|
||||
SetVBlankCallback(NULL, NULL);
|
||||
DisableHBlank();
|
||||
@@ -140,7 +139,7 @@ FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0)
|
||||
graphics = Heap_Alloc(HEAP_ID_94, sizeof(FrontierGraphics));
|
||||
MI_CpuClear8(graphics, sizeof(FrontierGraphics));
|
||||
|
||||
graphics->unk_08 = param0;
|
||||
graphics->frontier = frontier;
|
||||
graphics->sceneID = sceneID;
|
||||
|
||||
for (int i = 0; i < 8; i++) {
|
||||
@@ -181,7 +180,7 @@ FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0)
|
||||
GXLayers_TurnBothDispOn();
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_OBJ, TRUE);
|
||||
GXLayers_EngineBToggleLayers(GX_PLANEMASK_OBJ, TRUE);
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_FIELD, GetFrontierSceneValue(sceneID, FR_SCENE_BGM_ID), 1);
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_FIELD, FrontierScene_GetParam(sceneID, FR_SCENE_BGM_ID), 1);
|
||||
|
||||
RenderControlFlags_SetAutoScrollFlags(AUTO_SCROLL_ENABLED);
|
||||
RenderControlFlags_SetCanABSpeedUpPrint(FALSE);
|
||||
@@ -189,7 +188,7 @@ FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0)
|
||||
|
||||
SetVBlankCallback(VBlankCallback, graphics);
|
||||
graphics->dummyExecuteOnVBlank = SysTask_ExecuteOnVBlank(DummyExecuteOnVBlank, graphics, 10);
|
||||
ov104_0222EB8C(graphics, &graphics->unk_90, graphics->sceneID);
|
||||
FrontierScene_CallSetupFunc(graphics, &graphics->unk_90, graphics->sceneID);
|
||||
NetworkIcon_Init();
|
||||
|
||||
return graphics;
|
||||
@@ -197,8 +196,8 @@ FrontierGraphics *FrontierGraphics_New(UnkStruct_0209B75C *param0)
|
||||
|
||||
void FrontierGraphics_Free(FrontierGraphics *graphics)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(graphics->unk_08);
|
||||
ov104_0222EBA4(graphics, &graphics->unk_90, graphics->sceneID);
|
||||
UNUSED(BattleFrontier_GetFieldData(graphics->frontier));
|
||||
FrontierScene_CallDestroyFunc(graphics, &graphics->unk_90, graphics->sceneID);
|
||||
|
||||
ov104_0223CEEC(graphics);
|
||||
|
||||
@@ -262,7 +261,7 @@ void ov104_0223C634(FrontierGraphics *param0)
|
||||
UnkStruct_ov104_0223C634 *v1;
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
v1 = sub_0209B9D4(param0->unk_08, v0);
|
||||
v1 = sub_0209B9D4(param0->frontier, v0);
|
||||
|
||||
if (v1->unk_00 != NULL) {
|
||||
v1->unk_08.unk_0A = ov63_0222BF90(v1->unk_00, 6);
|
||||
@@ -284,7 +283,7 @@ void ov104_0223C688(FrontierGraphics *param0)
|
||||
{
|
||||
UnkStruct_ov104_0223C688 *v1;
|
||||
|
||||
v1 = sub_0209B9CC(param0->unk_08);
|
||||
v1 = sub_0209B9CC(param0->frontier);
|
||||
|
||||
for (v0 = 0; v0 < 24; v0++) {
|
||||
if (v1[v0].unk_00 != 0xffff) {
|
||||
@@ -298,7 +297,7 @@ void ov104_0223C688(FrontierGraphics *param0)
|
||||
UnkStruct_ov104_0223D570 v3;
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
v2 = sub_0209B9D4(param0->unk_08, v0);
|
||||
v2 = sub_0209B9D4(param0->frontier, v0);
|
||||
|
||||
if (v2->unk_08.unk_04 != 0xffff) {
|
||||
ov104_0223D570(v2, &v3);
|
||||
@@ -345,7 +344,7 @@ static void ov104_0223C738(SysTask *param0, void *param1)
|
||||
{
|
||||
UnkStruct_ov104_0223C634 *v1;
|
||||
|
||||
v1 = sub_0209B9D4(v0->unk_08, 32 - 1);
|
||||
v1 = sub_0209B9D4(v0->frontier, 32 - 1);
|
||||
|
||||
if (v1->unk_00 != NULL) {
|
||||
ov63_0222D160(&v0->unk_1C, v1->unk_00);
|
||||
@@ -379,9 +378,9 @@ static void ov104_0223C738(SysTask *param0, void *param1)
|
||||
static void ov104_0223C798(FrontierGraphics *param0)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(param0->unk_08);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->frontier);
|
||||
|
||||
v0 = GetFrontierSceneValue(v1->sceneID, FR_SCENE_FLAG_1);
|
||||
v0 = FrontierScene_GetParam(fieldData->sceneID, FR_SCENE_FLAG_1);
|
||||
|
||||
switch (v0) {
|
||||
case 0:
|
||||
@@ -390,7 +389,7 @@ static void ov104_0223C798(FrontierGraphics *param0)
|
||||
ov63_0222D228(param0->unk_24, ¶m0->unk_1C);
|
||||
}
|
||||
|
||||
if ((param0->unk_28 != NULL) && (GetFrontierSceneValue(v1->sceneID, FR_SCENE_FLAG_2) == 1)) {
|
||||
if ((param0->unk_28 != NULL) && (FrontierScene_GetParam(fieldData->sceneID, FR_SCENE_FLAG_2) == 1)) {
|
||||
ov63_0222D228(param0->unk_28, ¶m0->unk_1C);
|
||||
}
|
||||
break;
|
||||
@@ -404,7 +403,7 @@ static void ov104_0223C7EC(FrontierGraphics *param0)
|
||||
{
|
||||
s16 v0;
|
||||
s16 v1;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(param0->unk_08);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->frontier);
|
||||
|
||||
v1 = ov63_0222D1B0(¶m0->unk_1C) + param0->unk_A4.unk_06;
|
||||
v0 = ov63_0222D1B8(¶m0->unk_1C) + param0->unk_A4.unk_04;
|
||||
@@ -413,7 +412,7 @@ static void ov104_0223C7EC(FrontierGraphics *param0)
|
||||
Bg_ScheduleScroll(param0->bgConfig, 3, 0, v0);
|
||||
Bg_ScheduleScroll(param0->bgConfig, 3, 3, v1);
|
||||
|
||||
if ((GetFrontierSceneValue(v2->sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) && (GetFrontierSceneValue(v2->sceneID, FR_SCENE_FLAG_2) == 1)) {
|
||||
if ((FrontierScene_GetParam(fieldData->sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) && (FrontierScene_GetParam(fieldData->sceneID, FR_SCENE_FLAG_2) == 1)) {
|
||||
Bg_ScheduleScroll(param0->bgConfig, 2, 0, v0);
|
||||
Bg_ScheduleScroll(param0->bgConfig, 2, 3, v1);
|
||||
}
|
||||
@@ -440,7 +439,7 @@ static void ov104_0223C8E8(FrontierGraphics *param0)
|
||||
|
||||
static void InitBackgrounds(BgConfig *bgConfig, int sceneID)
|
||||
{
|
||||
GXBGMode bgMode = GetFrontierSceneValue(sceneID, FR_SCENE_BGMODE);
|
||||
GXBGMode bgMode = FrontierScene_GetParam(sceneID, FR_SCENE_BGMODE);
|
||||
GXLayers_DisableEngineALayers();
|
||||
|
||||
GXBanks banks = {
|
||||
@@ -525,10 +524,10 @@ static void InitBackgrounds(BgConfig *bgConfig, int sceneID)
|
||||
bgTemplates[2].bgExtPltt = GX_BG_EXTPLTT_01;
|
||||
}
|
||||
|
||||
u16 screenSize = GetFrontierSceneValue(sceneID, FR_SCENE_SCREEN_SIZE);
|
||||
u16 screenSize = FrontierScene_GetParam(sceneID, FR_SCENE_SCREEN_SIZE);
|
||||
bgTemplates[2].screenSize = screenSize;
|
||||
|
||||
if (GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
if (FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
bgTemplates[1].screenSize = screenSize;
|
||||
}
|
||||
|
||||
@@ -591,9 +590,9 @@ static void LoadMessageBoxAndWindowGraphics(FrontierGraphics *graphics)
|
||||
PaletteData_LoadBufferFromFileStart(graphics->plttData, NARC_INDEX_GRAPHIC__PL_FONT, font_NCLR, HEAP_ID_94, PLTTBUF_MAIN_BG, PALETTE_SIZE_BYTES, PLTT_DEST(14));
|
||||
PaletteData_LoadBufferFromFileStart(graphics->plttData, NARC_INDEX_GRAPHIC__PL_FONT, screen_indicators_NCLR, HEAP_ID_94, PLTTBUF_MAIN_BG, PALETTE_SIZE_BYTES, PLTT_DEST(13));
|
||||
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(graphics->unk_08);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(graphics->frontier);
|
||||
|
||||
LoadMessageBoxGraphics(graphics->bgConfig, BG_LAYER_MAIN_1, BASE_TILE_SCROLLING_MESSAGE_BOX, 11, Options_Frame(v0->options), HEAP_ID_94);
|
||||
LoadMessageBoxGraphics(graphics->bgConfig, BG_LAYER_MAIN_1, BASE_TILE_SCROLLING_MESSAGE_BOX, 11, Options_Frame(fieldData->options), HEAP_ID_94);
|
||||
PaletteData_LoadBufferFromHardware(graphics->plttData, PLTTBUF_MAIN_BG, 11 * SLOTS_PER_PALETTE, PALETTE_SIZE_BYTES);
|
||||
|
||||
LoadStandardWindowGraphics(graphics->bgConfig, BG_LAYER_MAIN_1, BASE_TILE_STANDARD_WINDOW_FRAME, 12, STANDARD_WINDOW_SYSTEM, HEAP_ID_94);
|
||||
@@ -635,16 +634,16 @@ static void ov104_0223CC74(FrontierGraphics *param0, int sceneID, const TrainerI
|
||||
};
|
||||
int v1;
|
||||
|
||||
v0.narcID = GetFrontierSceneValue(sceneID, FR_SCENE_NARC_ID);
|
||||
v0.unk_09 = GetFrontierSceneValue(sceneID, FR_SCENE_TILEMAP_IDX);
|
||||
v1 = GetFrontierSceneValue(sceneID, FR_SCENE_FLAG_1);
|
||||
v0.narcID = FrontierScene_GetParam(sceneID, FR_SCENE_NARC_ID);
|
||||
v0.unk_09 = FrontierScene_GetParam(sceneID, FR_SCENE_TILEMAP_IDX);
|
||||
v1 = FrontierScene_GetParam(sceneID, FR_SCENE_FLAG_1);
|
||||
|
||||
if (v1 == 0) {
|
||||
param0->unk_24 = ov63_0222D1C0(SpriteSystem_GetRenderer(param0->spriteSystem), param0->bgConfig, &v0, HEAP_ID_94);
|
||||
}
|
||||
|
||||
if (GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
v0.unk_09 = GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILEMAP_IDX);
|
||||
if (FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
v0.unk_09 = FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILEMAP_IDX);
|
||||
v0.unk_01 = 2;
|
||||
v0.unk_03 = (GX_BG_SCRBASE_0x0800);
|
||||
v0.unk_04 = (GX_BG_CHARBASE_0x20000);
|
||||
@@ -662,19 +661,19 @@ static void ov104_0223CC74(FrontierGraphics *param0, int sceneID, const TrainerI
|
||||
ov63_0222BD50(param0->unk_18, Unk_ov104_022413D8);
|
||||
|
||||
{
|
||||
GXBGMode bgMode = GetFrontierSceneValue(sceneID, FR_SCENE_BGMODE);
|
||||
GXBGMode bgMode = FrontierScene_GetParam(sceneID, FR_SCENE_BGMODE);
|
||||
|
||||
u32 narcID = GetFrontierSceneValue(sceneID, FR_SCENE_NARC_ID);
|
||||
u32 narcID = FrontierScene_GetParam(sceneID, FR_SCENE_NARC_ID);
|
||||
NARC *narc = NARC_ctor(narcID, HEAP_ID_94);
|
||||
|
||||
Graphics_LoadTilesToBgLayerFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_TILES_IDX), param0->bgConfig, 3, 0, 0, 1, HEAP_ID_94);
|
||||
Graphics_LoadTilesToBgLayerFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_TILES_IDX), param0->bgConfig, 3, 0, 0, 1, HEAP_ID_94);
|
||||
|
||||
if (bgMode == GX_BGMODE_0) {
|
||||
PaletteData_LoadBufferFromFileStart(param0->plttData, narcID, GetFrontierSceneValue(sceneID, FR_SCENE_PLTT_IDX), 94, 0, (10 - 0 + 1) * 0x20, 0 * 16);
|
||||
PaletteData_LoadBufferFromFileStart(param0->plttData, narcID, FrontierScene_GetParam(sceneID, FR_SCENE_PLTT_IDX), 94, 0, (10 - 0 + 1) * 0x20, 0 * 16);
|
||||
} else {
|
||||
NNSG2dPaletteData *plttData;
|
||||
|
||||
void *pltt = Graphics_GetPlttDataFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_PLTT_IDX), &plttData, HEAP_ID_94);
|
||||
void *pltt = Graphics_GetPlttDataFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_PLTT_IDX), &plttData, HEAP_ID_94);
|
||||
DC_FlushRange(plttData->pRawData, plttData->szByte);
|
||||
|
||||
GX_BeginLoadBGExtPltt();
|
||||
@@ -685,16 +684,16 @@ static void ov104_0223CC74(FrontierGraphics *param0, int sceneID, const TrainerI
|
||||
}
|
||||
|
||||
PaletteData_FillBufferRange(param0->plttData, 0, 2, 0x0, 0, 1);
|
||||
Graphics_LoadTilemapToBgLayerFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_TILEMAP_IDX), param0->bgConfig, 3, 0, 0, 1, HEAP_ID_94);
|
||||
Graphics_LoadTilemapToBgLayerFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_TILEMAP_IDX), param0->bgConfig, 3, 0, 0, 1, HEAP_ID_94);
|
||||
|
||||
if (GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
Graphics_LoadTilesToBgLayerFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILES_IDX), param0->bgConfig, 2, 0, 0, 1, HEAP_ID_94);
|
||||
Graphics_LoadTilemapToBgLayerFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_SUB_TILEMAP_IDX), param0->bgConfig, 2, 0, 0, 1, HEAP_ID_94);
|
||||
if (FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILEMAP_IDX) != 0xffff) {
|
||||
Graphics_LoadTilesToBgLayerFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILES_IDX), param0->bgConfig, 2, 0, 0, 1, HEAP_ID_94);
|
||||
Graphics_LoadTilemapToBgLayerFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_SUB_TILEMAP_IDX), param0->bgConfig, 2, 0, 0, 1, HEAP_ID_94);
|
||||
|
||||
if (bgMode != GX_BGMODE_0) {
|
||||
NNSG2dPaletteData *plttData;
|
||||
|
||||
void *pltt = Graphics_GetPlttDataFromOpenNARC(narc, GetFrontierSceneValue(sceneID, FR_SCENE_SUB_PLTT_IDX), &plttData, HEAP_ID_94);
|
||||
void *pltt = Graphics_GetPlttDataFromOpenNARC(narc, FrontierScene_GetParam(sceneID, FR_SCENE_SUB_PLTT_IDX), &plttData, HEAP_ID_94);
|
||||
DC_FlushRange(plttData->pRawData, plttData->szByte);
|
||||
|
||||
GX_BeginLoadBGExtPltt();
|
||||
@@ -717,7 +716,7 @@ static void ov104_0223CEEC(FrontierGraphics *param0)
|
||||
{
|
||||
UnkStruct_ov104_0223C634 *v1;
|
||||
|
||||
v1 = sub_0209B9D0(param0->unk_08);
|
||||
v1 = sub_0209B9D0(param0->frontier);
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
if (v1[v0].unk_00 != NULL) {
|
||||
@@ -817,7 +816,7 @@ void ov104_0223D0EC(FrontierGraphics *param0, const UnkStruct_ov104_0223C688 *pa
|
||||
UnkStruct_ov104_0223C688 *v0;
|
||||
int v1, v2;
|
||||
|
||||
v0 = sub_0209B9CC(param0->unk_08);
|
||||
v0 = sub_0209B9CC(param0->frontier);
|
||||
|
||||
for (v1 = 0; v1 < 24; v1++) {
|
||||
if (v0[v1].unk_00 == param1->unk_00) {
|
||||
@@ -842,7 +841,7 @@ void ov104_0223D0EC(FrontierGraphics *param0, const UnkStruct_ov104_0223C688 *pa
|
||||
void ov104_0223D148(FrontierGraphics *param0, int param1)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_0223C688 *v1 = sub_0209B9CC(param0->unk_08);
|
||||
UnkStruct_ov104_0223C688 *v1 = sub_0209B9CC(param0->frontier);
|
||||
|
||||
for (v0 = 0; v0 < 24; v0++) {
|
||||
if (v1[v0].unk_00 == param1) {
|
||||
@@ -861,7 +860,7 @@ UnkStruct_ov63_0222BEC0 *ov104_0223D180(FrontierGraphics *param0, const UnkStruc
|
||||
UnkStruct_ov63_0222BEC0 *v4;
|
||||
UnkStruct_ov63_0222CE44 *v5;
|
||||
|
||||
v0 = sub_0209B9D0(param0->unk_08);
|
||||
v0 = sub_0209B9D0(param0->frontier);
|
||||
|
||||
if (param2 == -1) {
|
||||
for (v1 = 0; v1 < 32; v1++) {
|
||||
@@ -887,7 +886,7 @@ UnkStruct_ov63_0222BEC0 *ov104_0223D180(FrontierGraphics *param0, const UnkStruc
|
||||
v5 = ov63_0222CE44(param0->unk_20, v4, 0, HEAP_ID_94);
|
||||
|
||||
ov63_0222D008(v5, param1->unk_0B);
|
||||
ov104_0223D584(param0->unk_08, v2, v4, v5, param1);
|
||||
ov104_0223D584(param0->frontier, v2, v4, v5, param1);
|
||||
|
||||
return v4;
|
||||
}
|
||||
@@ -895,7 +894,7 @@ UnkStruct_ov63_0222BEC0 *ov104_0223D180(FrontierGraphics *param0, const UnkStruc
|
||||
void ov104_0223D200(FrontierGraphics *param0, UnkStruct_ov63_0222BEC0 *param1)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_0223C634 *v1 = sub_0209B9D0(param0->unk_08);
|
||||
UnkStruct_ov104_0223C634 *v1 = sub_0209B9D0(param0->frontier);
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
if (v1[v0].unk_00 == param1) {
|
||||
@@ -914,7 +913,7 @@ void ov104_0223D200(FrontierGraphics *param0, UnkStruct_ov63_0222BEC0 *param1)
|
||||
void ov104_0223D258(FrontierGraphics *param0, u16 param1, UnkStruct_ov63_0222BEC0 **param2, UnkStruct_ov63_0222CE44 **param3)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_0223C634 *v1 = sub_0209B9D0(param0->unk_08);
|
||||
UnkStruct_ov104_0223C634 *v1 = sub_0209B9D0(param0->frontier);
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
if (v1[v0].unk_08.unk_04 == param1) {
|
||||
@@ -1006,7 +1005,7 @@ u32 ov104_0223D3A4(FrontierGraphics *param0, u16 param1)
|
||||
static void ov104_0223D3B0(FrontierGraphics *param0)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_0223D3B0 *v1 = sub_0209B9E0(param0->unk_08);
|
||||
UnkStruct_ov104_0223D3B0 *v1 = sub_0209B9E0(param0->frontier);
|
||||
UnkStruct_ov104_0223D3B0_1 *v2 = ¶m0->unk_3C;
|
||||
|
||||
for (v0 = 0; v0 < 8; v0++) {
|
||||
@@ -1038,7 +1037,7 @@ static void ov104_0223D498(FrontierGraphics *param0)
|
||||
UnkStruct_ov104_0223D3B0 *v2;
|
||||
ManagedSprite *v3;
|
||||
|
||||
v2 = sub_0209B9E0(param0->unk_08);
|
||||
v2 = sub_0209B9E0(param0->frontier);
|
||||
v1 = NARC_ctor(NARC_INDEX_RESOURCE__ENG__FRONTIER_GRAPHIC__FRONTIER_OBJ, HEAP_ID_94);
|
||||
|
||||
for (v0 = 0; v0 < 8; v0++) {
|
||||
@@ -1062,7 +1061,7 @@ static void ov104_0223D498(FrontierGraphics *param0)
|
||||
}
|
||||
|
||||
NARC_dtor(v1);
|
||||
sub_0209B9EC(param0->unk_08);
|
||||
sub_0209B9EC(param0->frontier);
|
||||
}
|
||||
|
||||
void ov104_0223D554(FrontierGraphics *param0, s16 *param1, s16 *param2)
|
||||
@@ -1076,7 +1075,7 @@ static void ov104_0223D570(UnkStruct_ov104_0223C634 *param0, UnkStruct_ov104_022
|
||||
*param1 = param0->unk_08;
|
||||
}
|
||||
|
||||
static void ov104_0223D584(UnkStruct_0209B75C *param0, int param1, UnkStruct_ov63_0222BEC0 *param2, UnkStruct_ov63_0222CE44 *param3, const UnkStruct_ov104_0223D570 *param4)
|
||||
static void ov104_0223D584(BattleFrontier *param0, int param1, UnkStruct_ov63_0222BEC0 *param2, UnkStruct_ov63_0222CE44 *param3, const UnkStruct_ov104_0223D570 *param4)
|
||||
{
|
||||
UnkStruct_ov104_0223C634 *v0 = sub_0209B9D4(param0, param1);
|
||||
|
||||
@@ -1085,7 +1084,7 @@ static void ov104_0223D584(UnkStruct_0209B75C *param0, int param1, UnkStruct_ov6
|
||||
v0->unk_08 = *param4;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C634 *ov104_0223D5A8(UnkStruct_0209B75C *param0, int param1)
|
||||
UnkStruct_ov104_0223C634 *ov104_0223D5A8(BattleFrontier *param0, int param1)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_0223C634 *v1 = sub_0209B9D0(param0);
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#include "overlay104/ov104_0222EA90.h"
|
||||
#include "overlay104/frontier_scenes.h"
|
||||
|
||||
#include <nitro.h>
|
||||
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "generated/sdat.h"
|
||||
#include "generated/text_banks.h"
|
||||
|
||||
@@ -15,12 +16,12 @@
|
||||
|
||||
#include "res/field/frontier_scripts/fr_script.naix"
|
||||
|
||||
typedef void (*UnkFuncPtr_ov104_0223F394)(FrontierGraphics *, void **);
|
||||
typedef void (*FrontierSceneSetupDestroyFunc)(FrontierGraphics *, void **);
|
||||
|
||||
typedef struct FrontierScene {
|
||||
GXBGMode bgMode;
|
||||
UnkFuncPtr_ov104_0223F394 unk_04;
|
||||
UnkFuncPtr_ov104_0223F394 unk_08;
|
||||
FrontierSceneSetupDestroyFunc setupFunc;
|
||||
FrontierSceneSetupDestroyFunc destroyFunc;
|
||||
u16 scriptID;
|
||||
u16 textBankID;
|
||||
u16 bgmID;
|
||||
@@ -37,28 +38,28 @@ typedef struct FrontierScene {
|
||||
u16 unused;
|
||||
} FrontierScene;
|
||||
|
||||
static void ov104_0222EBBC(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EBCC(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EBD8(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC0C(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC18(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC1C(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC20(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC58(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC5C(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC70(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC74(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC8C(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EC90(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222ECA0(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222ECAC(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222ECE4(FrontierGraphics *param0, void **param1);
|
||||
static void ov104_0222EBBC(FrontierGraphics *graphics, void **sceneData);
|
||||
static void ov104_0222EBCC(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleHallBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleHallBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleArcadeCorridorSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleArcadeCorridorSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleArcadeBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleArcadeBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleFactoryCorridorSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleFactoryCorridorSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleFactoryBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleFactoryBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
static void ov104_0222EC90(FrontierGraphics *graphics, void **sceneData);
|
||||
static void ov104_0222ECA0(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleCastleBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData);
|
||||
static void BattleCastleBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData);
|
||||
|
||||
static const FrontierScene sFrontierScenes[] = {
|
||||
{
|
||||
[FRONTIER_SCENE_0] = {
|
||||
.bgMode = GX_BGMODE_0,
|
||||
ov104_0222EBBC,
|
||||
ov104_0222EBCC,
|
||||
.setupFunc = ov104_0222EBBC,
|
||||
.destroyFunc = ov104_0222EBCC,
|
||||
0x4,
|
||||
.textBankID = 204,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -73,10 +74,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 0,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_1] = {
|
||||
.bgMode = GX_BGMODE_0,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
0x0,
|
||||
.textBankID = 0xCC,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -91,10 +92,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 0,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_2] = {
|
||||
.bgMode = GX_BGMODE_0,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
0x5,
|
||||
.textBankID = 206,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -109,10 +110,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 0,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_FACTORY_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EC5C,
|
||||
ov104_0222EC70,
|
||||
.setupFunc = BattleFactoryCorridorSceneSetup,
|
||||
.destroyFunc = BattleFactoryCorridorSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_factory,
|
||||
.textBankID = TEXT_BANK_BATTLE_FACTORY_SCENE,
|
||||
.bgmID = SEQ_PL_BF_FACTORY,
|
||||
@@ -127,10 +128,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 0,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_FACTORY_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EC74,
|
||||
ov104_0222EC8C,
|
||||
.setupFunc = BattleFactoryBattleRoomSceneSetup,
|
||||
.destroyFunc = BattleFactoryBattleRoomSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_factory,
|
||||
.textBankID = TEXT_BANK_BATTLE_FACTORY_SCENE,
|
||||
.bgmID = SEQ_PL_BF_FACTORY,
|
||||
@@ -145,10 +146,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_TOWER_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_tower_corridor,
|
||||
.textBankID = TEXT_BANK_BATTLE_TOWER,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -163,10 +164,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_TOWER_MULTI_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_tower_corridor_multi,
|
||||
.textBankID = TEXT_BANK_BATTLE_TOWER,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -181,10 +182,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_TOWER_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_tower_battle_room,
|
||||
.textBankID = TEXT_BANK_BATTLE_TOWER_BATTLE_ROOM,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -199,10 +200,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_TOWER_MULTI_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_tower_multi_battle_room,
|
||||
.textBankID = TEXT_BANK_BATTLE_TOWER_MULTI_BATTLE_ROOM,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -217,10 +218,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_HALL_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_hall,
|
||||
.textBankID = TEXT_BANK_BATTLE_HALL_SCENE,
|
||||
.bgmID = SEQ_PL_BF_STAGE,
|
||||
@@ -235,10 +236,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_HALL_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EBD8,
|
||||
ov104_0222EC0C,
|
||||
.setupFunc = BattleHallBattleRoomSceneSetup,
|
||||
.destroyFunc = BattleHallBattleRoomSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_hall,
|
||||
.textBankID = TEXT_BANK_BATTLE_HALL_SCENE,
|
||||
.bgmID = SEQ_PL_BF_STAGE,
|
||||
@@ -253,10 +254,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_CASTLE_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_castle,
|
||||
.textBankID = TEXT_BANK_BATTLE_CASTLE_SCENE,
|
||||
.bgmID = SEQ_PL_BF_CASTLE,
|
||||
@@ -271,10 +272,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_CASTLE_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222ECAC,
|
||||
ov104_0222ECE4,
|
||||
.setupFunc = BattleCastleBattleRoomSceneSetup,
|
||||
.destroyFunc = BattleCastleBattleRoomSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_castle,
|
||||
.textBankID = TEXT_BANK_BATTLE_CASTLE_SCENE,
|
||||
.bgmID = SEQ_PL_BF_CASTLE,
|
||||
@@ -289,10 +290,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_13] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
NULL,
|
||||
NULL,
|
||||
.setupFunc = NULL,
|
||||
.destroyFunc = NULL,
|
||||
.scriptID = frontier_scripts_battle_castle,
|
||||
.textBankID = TEXT_BANK_BATTLE_CASTLE_SCENE,
|
||||
.bgmID = SEQ_PL_BF_CASTLE,
|
||||
@@ -307,10 +308,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_14] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EC90,
|
||||
ov104_0222ECA0,
|
||||
.setupFunc = ov104_0222EC90,
|
||||
.destroyFunc = ov104_0222ECA0,
|
||||
.scriptID = frontier_scripts_unknown_10,
|
||||
.textBankID = TEXT_BANK_UNK_0015,
|
||||
.bgmID = SEQ_BF_TOWWER,
|
||||
@@ -325,10 +326,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_ARCADE_CORRIDOR] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EC18,
|
||||
ov104_0222EC1C,
|
||||
.setupFunc = BattleArcadeCorridorSceneSetup,
|
||||
.destroyFunc = BattleArcadeCorridorSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_arcade,
|
||||
.textBankID = TEXT_BANK_BATTLE_ARCADE_SCENE,
|
||||
.bgmID = SEQ_PL_BF_ROULETTE,
|
||||
@@ -343,10 +344,10 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
.unk_22 = 1,
|
||||
.unk_23 = 1,
|
||||
},
|
||||
{
|
||||
[FRONTIER_SCENE_ARCADE_BATTLE_ROOM] = {
|
||||
.bgMode = GX_BGMODE_5,
|
||||
ov104_0222EC20,
|
||||
ov104_0222EC58,
|
||||
.setupFunc = BattleArcadeBattleRoomSceneSetup,
|
||||
.destroyFunc = BattleArcadeBattleRoomSceneDestroy,
|
||||
.scriptID = frontier_scripts_battle_arcade,
|
||||
.textBankID = TEXT_BANK_BATTLE_ARCADE_SCENE,
|
||||
.bgmID = SEQ_PL_BF_ROULETTE,
|
||||
@@ -363,148 +364,134 @@ static const FrontierScene sFrontierScenes[] = {
|
||||
},
|
||||
};
|
||||
|
||||
int GetFrontierSceneValue(int scene, enum FrontierSceneParam sceneParam)
|
||||
int FrontierScene_GetParam(enum BattleFrontierScene sceneID, enum FrontierSceneParam sceneParam)
|
||||
{
|
||||
switch (sceneParam) {
|
||||
case FR_SCENE_BGMODE:
|
||||
return sFrontierScenes[scene].bgMode;
|
||||
return sFrontierScenes[sceneID].bgMode;
|
||||
case FR_SCENE_SCRIPT_ID:
|
||||
return sFrontierScenes[scene].scriptID;
|
||||
return sFrontierScenes[sceneID].scriptID;
|
||||
case FR_SCENE_BANK_ID:
|
||||
return sFrontierScenes[scene].textBankID;
|
||||
return sFrontierScenes[sceneID].textBankID;
|
||||
case FR_SCENE_BGM_ID:
|
||||
return sFrontierScenes[scene].bgmID;
|
||||
return sFrontierScenes[sceneID].bgmID;
|
||||
case FR_SCENE_SCREEN_SIZE:
|
||||
return sFrontierScenes[scene].screenSize;
|
||||
return sFrontierScenes[sceneID].screenSize;
|
||||
case FR_SCENE_NARC_ID:
|
||||
return sFrontierScenes[scene].narcID;
|
||||
return sFrontierScenes[sceneID].narcID;
|
||||
case FR_SCENE_TILEMAP_IDX:
|
||||
return sFrontierScenes[scene].tilemapIdx;
|
||||
return sFrontierScenes[sceneID].tilemapIdx;
|
||||
case FR_SCENE_TILES_IDX:
|
||||
return sFrontierScenes[scene].tilesIdx;
|
||||
return sFrontierScenes[sceneID].tilesIdx;
|
||||
case FR_SCENE_PLTT_IDX:
|
||||
return sFrontierScenes[scene].plttIdx;
|
||||
return sFrontierScenes[sceneID].plttIdx;
|
||||
case FR_SCENE_SUB_TILEMAP_IDX:
|
||||
return sFrontierScenes[scene].subTilemapIdx;
|
||||
return sFrontierScenes[sceneID].subTilemapIdx;
|
||||
case FR_SCENE_SUB_TILES_IDX:
|
||||
return sFrontierScenes[scene].subTilesIdx;
|
||||
return sFrontierScenes[sceneID].subTilesIdx;
|
||||
case FR_SCENE_SUB_PLTT_IDX:
|
||||
return sFrontierScenes[scene].subPlttIdx;
|
||||
return sFrontierScenes[sceneID].subPlttIdx;
|
||||
case FR_SCENE_FLAG_1:
|
||||
return sFrontierScenes[scene].unk_22;
|
||||
return sFrontierScenes[sceneID].unk_22;
|
||||
case FR_SCENE_FLAG_2:
|
||||
return sFrontierScenes[scene].unk_23;
|
||||
return sFrontierScenes[sceneID].unk_23;
|
||||
}
|
||||
|
||||
GF_ASSERT(FALSE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ov104_0222EB8C(FrontierGraphics *param0, void **param1, int sceneID)
|
||||
void FrontierScene_CallSetupFunc(FrontierGraphics *graphics, void **sceneData, enum BattleFrontierScene sceneID)
|
||||
{
|
||||
if (sFrontierScenes[sceneID].unk_04 != NULL) {
|
||||
sFrontierScenes[sceneID].unk_04(param0, param1);
|
||||
if (sFrontierScenes[sceneID].setupFunc != NULL) {
|
||||
sFrontierScenes[sceneID].setupFunc(graphics, sceneData);
|
||||
}
|
||||
}
|
||||
|
||||
void ov104_0222EBA4(FrontierGraphics *param0, void **param1, int param2)
|
||||
void FrontierScene_CallDestroyFunc(FrontierGraphics *graphics, void **sceneData, enum BattleFrontierScene sceneID)
|
||||
{
|
||||
if (sFrontierScenes[param2].unk_08 != NULL) {
|
||||
sFrontierScenes[param2].unk_08(param0, param1);
|
||||
if (sFrontierScenes[sceneID].destroyFunc != NULL) {
|
||||
sFrontierScenes[sceneID].destroyFunc(graphics, sceneData);
|
||||
}
|
||||
}
|
||||
|
||||
static void ov104_0222EBBC(FrontierGraphics *param0, void **param1)
|
||||
static void ov104_0222EBBC(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
*param1 = Heap_Alloc(HEAP_ID_94, 32);
|
||||
*sceneData = Heap_Alloc(HEAP_ID_94, 32);
|
||||
}
|
||||
|
||||
static void ov104_0222EBCC(FrontierGraphics *param0, void **param1)
|
||||
static void ov104_0222EBCC(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
Heap_Free(*param1);
|
||||
Heap_Free(*sceneData);
|
||||
}
|
||||
|
||||
static void ov104_0222EBD8(FrontierGraphics *param0, void **param1)
|
||||
static void BattleHallBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
*param1 = ov104_0223D9E4(param0->bgConfig, param0->plttData);
|
||||
*sceneData = ov104_0223D9E4(graphics->bgConfig, graphics->plttData);
|
||||
|
||||
Bg_SetPriority(BG_LAYER_MAIN_0, 1);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_2, 2);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_3, 3);
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0);
|
||||
|
||||
return;
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, FALSE);
|
||||
}
|
||||
|
||||
static void ov104_0222EC0C(FrontierGraphics *param0, void **param1)
|
||||
static void BattleHallBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
ov104_0223DA28(*param1);
|
||||
return;
|
||||
ov104_0223DA28(*sceneData);
|
||||
}
|
||||
|
||||
static void ov104_0222EC18(FrontierGraphics *param0, void **param1)
|
||||
static void BattleArcadeCorridorSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC1C(FrontierGraphics *param0, void **param1)
|
||||
static void BattleArcadeCorridorSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC20(FrontierGraphics *param0, void **param1)
|
||||
static void BattleArcadeBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
Bg_SetPriority(BG_LAYER_MAIN_0, 1);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_2, 2);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_3, 3);
|
||||
|
||||
G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG0, GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD, 20, 20);
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, 0);
|
||||
|
||||
return;
|
||||
GXLayers_EngineAToggleLayers(GX_PLANEMASK_BG2, FALSE);
|
||||
}
|
||||
|
||||
static void ov104_0222EC58(FrontierGraphics *param0, void **param1)
|
||||
static void BattleArcadeBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC5C(FrontierGraphics *param0, void **param1)
|
||||
static void BattleFactoryCorridorSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
Bg_SetPriority(BG_LAYER_MAIN_2, 3);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_3, 2);
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC70(FrontierGraphics *param0, void **param1)
|
||||
static void BattleFactoryCorridorSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC74(FrontierGraphics *param0, void **param1)
|
||||
static void BattleFactoryBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG0, GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD, 20, 20);
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC8C(FrontierGraphics *param0, void **param1)
|
||||
static void BattleFactoryBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222EC90(FrontierGraphics *param0, void **param1)
|
||||
static void ov104_0222EC90(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
*param1 = ov104_0223C164(param0->bgConfig);
|
||||
return;
|
||||
*sceneData = ov104_0223C164(graphics->bgConfig);
|
||||
}
|
||||
|
||||
static void ov104_0222ECA0(FrontierGraphics *param0, void **param1)
|
||||
static void ov104_0222ECA0(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
ov104_0223C23C(*param1);
|
||||
return;
|
||||
ov104_0223C23C(*sceneData);
|
||||
}
|
||||
|
||||
static void ov104_0222ECAC(FrontierGraphics *param0, void **param1)
|
||||
static void BattleCastleBattleRoomSceneSetup(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
Bg_SetPriority(BG_LAYER_MAIN_1, 0);
|
||||
Bg_SetPriority(BG_LAYER_MAIN_0, 2);
|
||||
@@ -512,10 +499,8 @@ static void ov104_0222ECAC(FrontierGraphics *param0, void **param1)
|
||||
Bg_SetPriority(BG_LAYER_MAIN_3, 3);
|
||||
|
||||
G2_SetBlendAlpha(GX_BLEND_PLANEMASK_BG0, GX_BLEND_PLANEMASK_BG2 | GX_BLEND_PLANEMASK_BG3 | GX_BLEND_PLANEMASK_OBJ | GX_BLEND_PLANEMASK_BD, 20, 20);
|
||||
return;
|
||||
}
|
||||
|
||||
static void ov104_0222ECE4(FrontierGraphics *param0, void **param1)
|
||||
static void BattleCastleBattleRoomSceneDestroy(FrontierGraphics *graphics, void **sceneData)
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -2,21 +2,21 @@
|
||||
|
||||
#include <nitro.h>
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "overlay104/defs.h"
|
||||
#include "overlay104/frontier_scenes.h"
|
||||
#include "overlay104/frontier_script_context.h"
|
||||
#include "overlay104/frscrcmd.h"
|
||||
#include "overlay104/ov104_0222EA90.h"
|
||||
#include "overlay104/ov104_0223D860.h"
|
||||
#include "overlay104/struct_ov104_0222E8C8.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "heap.h"
|
||||
#include "message.h"
|
||||
#include "narc.h"
|
||||
#include "string_gf.h"
|
||||
#include "string_template.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
|
||||
static BOOL FrontierScriptManager_SetContext(FrontierScriptManager *scriptMan, FrontierScriptContext *ctx);
|
||||
static void FrontierScriptContext_Free(FrontierScriptManager *scriptMan, FrontierScriptContext *ctx);
|
||||
@@ -24,12 +24,12 @@ static void Dummy(FrontierScriptManager *scriptMan, u16 scene, u32 *null1, void
|
||||
static void FrontierScriptManager_LoadScriptData(u8 **script, MessageLoader **msgLoader, int scene, enum HeapID heapID);
|
||||
static void FrontierScriptContext_JumpToOffsetID(FrontierScriptContext *ctx, int offsetID);
|
||||
|
||||
FrontierScriptManager *FrontierScriptManager_New(UnkStruct_0209B75C *param0, enum HeapID heapID, int scene)
|
||||
FrontierScriptManager *FrontierScriptManager_New(BattleFrontier *frontier, enum HeapID heapID, int scene)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = Heap_Alloc(heapID, sizeof(FrontierScriptManager));
|
||||
MI_CpuClear8(scriptMan, sizeof(FrontierScriptManager));
|
||||
|
||||
scriptMan->unk_00 = param0;
|
||||
scriptMan->frontier = frontier;
|
||||
scriptMan->heapID = heapID;
|
||||
scriptMan->scene = scene;
|
||||
|
||||
@@ -44,7 +44,7 @@ FrontierScriptManager *FrontierScriptManager_New(UnkStruct_0209B75C *param0, enu
|
||||
return scriptMan;
|
||||
}
|
||||
|
||||
BOOL ov104_0222E6A8(FrontierScriptManager *scriptMan)
|
||||
BOOL FrontierScriptManager_RunScript(FrontierScriptManager *scriptMan)
|
||||
{
|
||||
if (scriptMan->numSetContexts == 0) {
|
||||
return TRUE;
|
||||
@@ -55,7 +55,7 @@ BOOL ov104_0222E6A8(FrontierScriptManager *scriptMan)
|
||||
FrontierScriptContext *ctx = scriptMan->ctx[i];
|
||||
|
||||
if (ctx != NULL) {
|
||||
if (FrontierScriptContext_Run(ctx) == 0) {
|
||||
if (!FrontierScriptContext_Run(ctx)) {
|
||||
FrontierScriptContext_Free(scriptMan, ctx);
|
||||
scriptMan->ctx[i] = NULL;
|
||||
scriptMan->numSetContexts--;
|
||||
@@ -63,7 +63,7 @@ BOOL ov104_0222E6A8(FrontierScriptManager *scriptMan)
|
||||
}
|
||||
}
|
||||
|
||||
ov104_0223D8C4(scriptMan->unk_00);
|
||||
ov104_0223D8C4(scriptMan->frontier);
|
||||
}
|
||||
|
||||
return scriptMan->numSetContexts == 0;
|
||||
@@ -136,8 +136,8 @@ static void Dummy(FrontierScriptManager *scriptMan, u16 scene, u32 *null1, void
|
||||
|
||||
static void FrontierScriptManager_LoadScriptData(u8 **script, MessageLoader **msgLoader, int scene, enum HeapID heapID)
|
||||
{
|
||||
int scriptID = GetFrontierSceneValue(scene, FR_SCENE_SCRIPT_ID);
|
||||
int bankID = GetFrontierSceneValue(scene, FR_SCENE_BANK_ID);
|
||||
int scriptID = FrontierScene_GetParam(scene, FR_SCENE_SCRIPT_ID);
|
||||
int bankID = FrontierScene_GetParam(scene, FR_SCENE_BANK_ID);
|
||||
|
||||
*script = NARC_AllocAndReadWholeMemberByIndexPair(NARC_INDEX_FRONTIER__SCRIPT__FR_SCRIPT, scriptID, heapID);
|
||||
*msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, bankID, heapID);
|
||||
@@ -145,8 +145,8 @@ static void FrontierScriptManager_LoadScriptData(u8 **script, MessageLoader **ms
|
||||
|
||||
void FrontierScriptManager_UpdateMessageLoader(FrontierScriptManager *scriptMan, int scene, enum HeapID heapID)
|
||||
{
|
||||
int currentBankID = GetFrontierSceneValue(scriptMan->scene, FR_SCENE_BANK_ID);
|
||||
int newBankID = GetFrontierSceneValue(scene, FR_SCENE_BANK_ID);
|
||||
int currentBankID = FrontierScene_GetParam(scriptMan->scene, FR_SCENE_BANK_ID);
|
||||
int newBankID = FrontierScene_GetParam(scene, FR_SCENE_BANK_ID);
|
||||
|
||||
if (currentBankID == newBankID) {
|
||||
return;
|
||||
@@ -195,5 +195,5 @@ u16 *ov104_0222E91C(FrontierScriptManager *param0, int param1)
|
||||
|
||||
FrontierGraphics *FrontierScriptManager_GetGraphics(FrontierScriptManager *scriptMan)
|
||||
{
|
||||
return sub_0209B974(scriptMan->unk_00);
|
||||
return BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "overlay104/struct_ov104_0223F1B4.h"
|
||||
#include "savedata/save_table.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "battle_frontier_stats.h"
|
||||
#include "bg_window.h"
|
||||
#include "brightness_controller.h"
|
||||
@@ -87,7 +88,6 @@
|
||||
#include "unk_0202F1D4.h"
|
||||
#include "unk_02033200.h"
|
||||
#include "unk_020363E8.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "vars_flags.h"
|
||||
#include "wifi_list.h"
|
||||
|
||||
@@ -364,7 +364,7 @@ static BOOL FrontierScrCmd_End(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_02(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptContext_Stop(ctx);
|
||||
sub_0209B9B4(ctx->scriptMan->unk_00);
|
||||
sub_0209B9B4(ctx->scriptMan->frontier);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -372,9 +372,9 @@ static BOOL FrontierScrCmd_02(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_03(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
u16 v1 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 sceneID = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
sub_0209B9BC(v0->unk_00, v1, 0xFFFF);
|
||||
sub_0209B9BC(v0->frontier, sceneID, 0xFFFF);
|
||||
FrontierScriptContext_Pause(ctx, Resume);
|
||||
|
||||
return TRUE;
|
||||
@@ -388,10 +388,10 @@ static BOOL Resume(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_04(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
u16 v1 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 sceneID = FrontierScriptContext_GetVar(ctx);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
sub_0209B9BC(v0->unk_00, v1, v2);
|
||||
sub_0209B9BC(v0->frontier, sceneID, v2);
|
||||
FrontierScriptContext_Stop(ctx);
|
||||
|
||||
return FALSE;
|
||||
@@ -754,7 +754,7 @@ static BOOL WaitForYesNoResult(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_22(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
const u8 *currScriptPtr;
|
||||
UnkStruct_ov104_0223C688 v3;
|
||||
s32 offset = FrontierScriptContext_ReadWord(ctx);
|
||||
@@ -772,8 +772,8 @@ static BOOL FrontierScrCmd_22(FrontierScriptContext *ctx)
|
||||
v3.unk_02 = FrontierScriptContext_ReadByte(ctx);
|
||||
|
||||
if (v3.unk_00 == 0xEEEE) {
|
||||
UnkStruct_ov104_02230BE4 *v6 = sub_0209B970(v0->unk_00);
|
||||
const TrainerInfo *trainerInfo = SaveData_GetTrainerInfo(v6->saveData);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(v0->frontier);
|
||||
const TrainerInfo *trainerInfo = SaveData_GetTrainerInfo(fieldData->saveData);
|
||||
v3.unk_00 = BattleFrontier_GetPlayerObjEventGfx(trainerInfo);
|
||||
|
||||
ov104_0223D0EC(v1, &v3);
|
||||
@@ -802,7 +802,7 @@ static BOOL FrontierScrCmd_22(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_23(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
ov104_0223D148(v1, v2);
|
||||
|
||||
@@ -812,7 +812,7 @@ static BOOL FrontierScrCmd_23(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_24(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
const u8 *currScriptPtr;
|
||||
s32 offset = FrontierScriptContext_ReadWord(ctx);
|
||||
UnkStruct_ov104_0223D570 v4;
|
||||
@@ -840,10 +840,10 @@ static BOOL FrontierScrCmd_24(FrontierScriptContext *ctx)
|
||||
|
||||
if (v4.unk_00 == 0xEEEE) {
|
||||
const TrainerInfo *trainerInfo;
|
||||
UnkStruct_ov104_02230BE4 *v7;
|
||||
FieldFrontierDTO *fieldData;
|
||||
|
||||
v7 = sub_0209B970(v0->unk_00);
|
||||
trainerInfo = SaveData_GetTrainerInfo(v7->saveData);
|
||||
fieldData = BattleFrontier_GetFieldData(v0->frontier);
|
||||
trainerInfo = SaveData_GetTrainerInfo(fieldData->saveData);
|
||||
v4.unk_00 = BattleFrontier_GetPlayerObjEventGfx(trainerInfo);
|
||||
v5 = (32 - 1);
|
||||
} else if (v4.unk_00 == 0xEEEF) {
|
||||
@@ -864,7 +864,7 @@ static BOOL FrontierScrCmd_24(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_25(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
UnkStruct_ov63_0222BEC0 *v2;
|
||||
u16 v3 = FrontierScriptContext_GetVar(ctx);
|
||||
v2 = ov63_0222BF18(v1->unk_14, v3);
|
||||
@@ -877,7 +877,7 @@ static BOOL FrontierScrCmd_25(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_26(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
u8 v3 = FrontierScriptContext_ReadByte(ctx);
|
||||
UnkStruct_ov63_0222CE44 *v4 = NULL;
|
||||
@@ -897,10 +897,10 @@ static BOOL FrontierScrCmd_Dummy27(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_ApplyMovement(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = ctx->scriptMan;
|
||||
FrontierGraphics *graphics = sub_0209B974(scriptMan->unk_00);
|
||||
FrontierGraphics *graphics = BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
u16 localID = FrontierScriptContext_GetVar(ctx);
|
||||
u32 offset = FrontierScriptContext_ReadWord(ctx);
|
||||
UnkStruct_ov104_0223C634 *object = ov104_0223D5A8(scriptMan->unk_00, localID);
|
||||
UnkStruct_ov104_0223C634 *object = ov104_0223D5A8(scriptMan->frontier, localID);
|
||||
|
||||
if (object == NULL) {
|
||||
GF_ASSERT(FALSE);
|
||||
@@ -944,7 +944,7 @@ static BOOL WaitForMovement(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_2A(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
const u8 *currScriptPtr;
|
||||
s32 offset = FrontierScriptContext_ReadWord(ctx);
|
||||
u16 v4;
|
||||
@@ -974,7 +974,7 @@ static BOOL FrontierScrCmd_2A(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_2B(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
ov104_0223D7EC(v1->spriteMan, v2);
|
||||
@@ -986,7 +986,7 @@ static BOOL FrontierScrCmd_2B(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_2C(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
const u8 *currScriptPtr;
|
||||
s32 offset = FrontierScriptContext_ReadWord(ctx);
|
||||
u16 v4, x, y, draw, v8, v9;
|
||||
@@ -1023,7 +1023,7 @@ static BOOL FrontierScrCmd_2D(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
u16 v1;
|
||||
FrontierGraphics *v2 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v2 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
|
||||
v1 = FrontierScriptContext_GetVar(ctx);
|
||||
ov104_0223D348(v2, v1);
|
||||
@@ -1034,7 +1034,7 @@ static BOOL FrontierScrCmd_2D(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_2E(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
u8 draw = FrontierScriptContext_ReadByte(ctx);
|
||||
ManagedSprite *managedSprite = ov104_0223D370(v1, v2);
|
||||
@@ -1048,7 +1048,7 @@ static BOOL FrontierScrCmd_2E(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_2F(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(ctx);
|
||||
ManagedSprite *managedSprite = ov104_0223D370(v1, v2);
|
||||
|
||||
@@ -1062,7 +1062,7 @@ static BOOL FrontierScrCmd_30(FrontierScriptContext *ctx)
|
||||
{
|
||||
ManagedSprite *managedSprite;
|
||||
FrontierScriptManager *v1 = ctx->scriptMan;
|
||||
FrontierGraphics *v2 = sub_0209B974(v1->unk_00);
|
||||
FrontierGraphics *v2 = BattleFrontier_GetGraphics(v1->frontier);
|
||||
u16 v3 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 v4 = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
@@ -1083,7 +1083,7 @@ static BOOL FrontierScrCmd_31(FrontierScriptContext *ctx)
|
||||
u16 v0 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 animID = FrontierScriptContext_GetVar(ctx);
|
||||
ManagedSprite *managedSprite;
|
||||
FrontierGraphics *v3 = sub_0209B974(ctx->scriptMan->unk_00);
|
||||
FrontierGraphics *v3 = BattleFrontier_GetGraphics(ctx->scriptMan->frontier);
|
||||
|
||||
managedSprite = ov104_0223D370(v3, v0);
|
||||
|
||||
@@ -1096,7 +1096,7 @@ static BOOL FrontierScrCmd_31(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_32(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 v0 = FrontierScriptContext_GetVar(ctx);
|
||||
FrontierGraphics *v1 = sub_0209B974(ctx->scriptMan->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(ctx->scriptMan->frontier);
|
||||
|
||||
ov104_0223D378(v1, v0, 0);
|
||||
return FALSE;
|
||||
@@ -1115,7 +1115,7 @@ static BOOL FrontierScrCmd_33(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_02230850(FrontierScriptContext *ctx)
|
||||
{
|
||||
ManagedSprite *managedSprite;
|
||||
FrontierGraphics *v1 = sub_0209B974(ctx->scriptMan->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(ctx->scriptMan->frontier);
|
||||
|
||||
managedSprite = ov104_0223D370(v1, ctx->data[0]);
|
||||
|
||||
@@ -1142,14 +1142,14 @@ static void ov104_0223088C(FrontierScriptContext *ctx, int param1, int param2)
|
||||
v1[v3] = FrontierScriptContext_GetVar(ctx);
|
||||
}
|
||||
|
||||
ov104_0223D860(v0->unk_00, v2, 1, v1, 3);
|
||||
ov104_0223D860(v0->frontier, v2, 1, v1, 3);
|
||||
Heap_Free(v1);
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_53(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 v0 = FrontierScriptContext_GetVar(ctx);
|
||||
ov104_0223D860(ctx->scriptMan->unk_00, v0, 0, NULL, 0);
|
||||
ov104_0223D860(ctx->scriptMan->frontier, v0, 0, NULL, 0);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1162,10 +1162,10 @@ static BOOL FrontierScrCmd_54(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_34(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
void *namingScreenArgs = NamingScreenArgs_Init(HEAP_ID_FIELD2, NAMING_SCREEN_TYPE_PLAYER, 0, 8, (void *)v1->options);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
void *namingScreenArgs = NamingScreenArgs_Init(HEAP_ID_FIELD2, NAMING_SCREEN_TYPE_PLAYER, 0, 8, (void *)fieldData->options);
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gNamingScreenAppTemplate, namingScreenArgs, 0, ov104_02230950);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gNamingScreenAppTemplate, namingScreenArgs, 0, ov104_02230950);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1178,9 +1178,9 @@ static void ov104_02230950(void *namingScreenArgs)
|
||||
static BOOL FrontierScrCmd_InitNewBattleRecording(FrontierScriptContext *ctx)
|
||||
{
|
||||
int resultCode;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
BattleRecording_New(v1->saveData, HEAP_ID_FIELD2, &resultCode);
|
||||
BattleRecording_New(fieldData->saveData, HEAP_ID_FIELD2, &resultCode);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1209,8 +1209,8 @@ static BOOL FrontierScrCmd_6D(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_022309DC(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
int v2 = sub_0202F41C(v1->saveData, v0->unk_B4, v0->unk_B6, 0, &v0->unk_B0, &v0->unk_B2);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
int v2 = sub_0202F41C(fieldData->saveData, v0->unk_B4, v0->unk_B6, 0, &v0->unk_B0, &v0->unk_B2);
|
||||
|
||||
if ((v2 == 2) || (v2 == 3)) {
|
||||
if (v2 == 2) {
|
||||
@@ -1346,14 +1346,14 @@ static BOOL FrontierScrCmd_6E(FrontierScriptContext *ctx)
|
||||
{
|
||||
int v0;
|
||||
FieldBattleDTO *dto;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
dto = Heap_Alloc(HEAP_ID_FIELD2, sizeof(FieldBattleDTO));
|
||||
MI_CpuClear8(dto, sizeof(FieldBattleDTO));
|
||||
|
||||
sub_0202F298(v2->saveData, 11, &v0, dto, 0);
|
||||
sub_0202F298(fieldData->saveData, 11, &v0, dto, 0);
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_BATTLE, SEQ_BATTLE_TRAINER, 1);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 1, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 1, NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -1367,30 +1367,30 @@ static BOOL FrontierScrCmd_FreeBattleRecording(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_70(FrontierScriptContext *ctx)
|
||||
{
|
||||
int v0;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 *v2 = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
*v2 = sub_0202F330(v1->saveData, 11, &v0, 0);
|
||||
*v2 = sub_0202F330(fieldData->saveData, 11, &v0, 0);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_72(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 *unused = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
SaveData_Save(v0->saveData);
|
||||
SaveData_Save(fieldData->saveData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_73(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 *v2 = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
ResetLock(RESET_LOCK_SOFT_RESET);
|
||||
InitHeapCanary(v0->heapID);
|
||||
SaveData_SaveStateInit(v1->saveData, 2);
|
||||
SaveData_SaveStateInit(fieldData->saveData, 2);
|
||||
|
||||
FrontierScriptContext_Pause(ctx, WaitForSaveStateFinish);
|
||||
return TRUE;
|
||||
@@ -1398,8 +1398,8 @@ static BOOL FrontierScrCmd_73(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL WaitForSaveStateFinish(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
int saveResult = SaveData_SaveStateMain(v1->saveData);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
int saveResult = SaveData_SaveStateMain(fieldData->saveData);
|
||||
|
||||
if (saveResult == SAVE_RESULT_OK) {
|
||||
FreeHeapCanary();
|
||||
@@ -1418,18 +1418,18 @@ static BOOL WaitForSaveStateFinish(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_SaveDataExtraInit(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
SaveDataExtra_Init(v0->saveData);
|
||||
SaveDataExtra_Init(fieldData->saveData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_GetMiscSaveBlockInitFlag(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
*destVar = SaveData_MiscSaveBlock_InitFlag(v0->saveData);
|
||||
*destVar = SaveData_MiscSaveBlock_InitFlag(fieldData->saveData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1490,16 +1490,16 @@ static u16 GetNumberDigitCount(u32 number)
|
||||
|
||||
static BOOL FrontierScrCmd_BufferPlayerName(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u8 templateArg = FrontierScriptContext_ReadByte(ctx);
|
||||
|
||||
StringTemplate_SetPlayerName(ctx->scriptMan->strTemplate, templateArg, SaveData_GetTrainerInfo(v0->saveData));
|
||||
StringTemplate_SetPlayerName(ctx->scriptMan->strTemplate, templateArg, SaveData_GetTrainerInfo(fieldData->saveData));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_BufferPartnerName(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u8 templateArg = FrontierScriptContext_ReadByte(ctx);
|
||||
|
||||
StringTemplate_SetPlayerName(ctx->scriptMan->strTemplate, templateArg, CommInfo_TrainerInfo(CommSys_CurNetId() ^ 1));
|
||||
@@ -1548,44 +1548,44 @@ static BOOL FrontierScrCmd_BufferTypeName(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_BufferRivalName(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u8 templateArg = FrontierScriptContext_ReadByte(ctx);
|
||||
|
||||
StringTemplate_SetRivalName(ctx->scriptMan->strTemplate, templateArg, v0->saveData);
|
||||
StringTemplate_SetRivalName(ctx->scriptMan->strTemplate, templateArg, fieldData->saveData);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_GetNumBattlePoints(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
*destVar = BattlePoints_ApplyFuncAndGet(sub_0202D750(v0->saveData), 0, BATTLE_POINTS_FUNC_NONE);
|
||||
*destVar = BattlePoints_ApplyFuncAndGet(sub_0202D750(fieldData->saveData), 0, BATTLE_POINTS_FUNC_NONE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_GiveBattlePoints(FrontierScriptContext *ctx)
|
||||
{
|
||||
TVBroadcast *broadcast;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 battlePoints = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
broadcast = SaveData_GetTVBroadcast(v1->saveData);
|
||||
broadcast = SaveData_GetTVBroadcast(fieldData->saveData);
|
||||
|
||||
sub_0206D0C8(broadcast, battlePoints);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(v1->saveData), RECORD_BATTLE_POINTS_RECEIVED, battlePoints);
|
||||
BattlePoints_ApplyFuncAndGet(sub_0202D750(v1->saveData), battlePoints, BATTLE_POINTS_FUNC_ADD);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(fieldData->saveData), RECORD_BATTLE_POINTS_RECEIVED, battlePoints);
|
||||
BattlePoints_ApplyFuncAndGet(sub_0202D750(fieldData->saveData), battlePoints, BATTLE_POINTS_FUNC_ADD);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_RemoteBattlePoints(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
u16 battlePoints = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(v0->saveData), RECORD_BATTLE_POINTS_SPENT, battlePoints);
|
||||
BattlePoints_ApplyFuncAndGet(sub_0202D750(v0->saveData), battlePoints, BATTLE_POINTS_FUNC_SUB);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(fieldData->saveData), RECORD_BATTLE_POINTS_SPENT, battlePoints);
|
||||
BattlePoints_ApplyFuncAndGet(sub_0202D750(fieldData->saveData), battlePoints, BATTLE_POINTS_FUNC_SUB);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -1645,8 +1645,8 @@ static BOOL FrontierScrCmd_GetRandom(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_HealParty(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
Party_HealAllMembers(SaveData_GetParty(v0->saveData));
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
Party_HealAllMembers(SaveData_GetParty(fieldData->saveData));
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@@ -1690,9 +1690,9 @@ BOOL FrontierScrCmd_SetSystemVar(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 destVarID = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
u16 value = FrontierScriptContext_GetVar(ctx);
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
u16 *destVar = VarsFlags_GetVarAddress(SaveData_GetVarsFlags(v3->saveData), destVarID);
|
||||
u16 *destVar = VarsFlags_GetVarAddress(SaveData_GetVarsFlags(fieldData->saveData), destVarID);
|
||||
*destVar = value;
|
||||
|
||||
return FALSE;
|
||||
@@ -1702,9 +1702,9 @@ BOOL FrontierScrCmd_GetSystemVar(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 srcVarID = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
u16 *dest = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
u16 *srcVar = VarsFlags_GetVarAddress(SaveData_GetVarsFlags(v3->saveData), srcVarID);
|
||||
u16 *srcVar = VarsFlags_GetVarAddress(SaveData_GetVarsFlags(fieldData->saveData), srcVarID);
|
||||
*dest = *srcVar;
|
||||
|
||||
return FALSE;
|
||||
@@ -2146,21 +2146,21 @@ static BOOL ov104_022319CC(UnkStruct_ov104_02231148 *param0)
|
||||
|
||||
static BOOL FrontierScrCmd_3F(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
UnkStruct_ov104_02231148 *v1;
|
||||
|
||||
v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
ctx->data[0] = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_BATTLE, SEQ_BATTLE_TRAINER, 1);
|
||||
|
||||
v1 = Heap_Alloc(HEAP_ID_FIELD2, sizeof(UnkStruct_ov104_02231148));
|
||||
v1->unk_14 = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
v1->unk_14 = sub_0209B978(ctx->scriptMan->frontier);
|
||||
v1->unk_04 = 0;
|
||||
v1->unk_08 = ctx->data[0];
|
||||
v1->unk_00 = FrontierScriptManager_GetGraphics(ctx->scriptMan);
|
||||
|
||||
sub_0209B980(ctx->scriptMan->unk_00, v1);
|
||||
sub_0209B980(ctx->scriptMan->frontier, v1);
|
||||
FrontierScriptContext_Pause(ctx, ov104_02231AA8);
|
||||
PaletteData_FillBufferRange(v1->unk_00->plttData, 0, 2, 0x0, 0, 1);
|
||||
|
||||
@@ -2170,14 +2170,14 @@ static BOOL FrontierScrCmd_3F(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_02231AA8(FrontierScriptContext *ctx)
|
||||
{
|
||||
BOOL v0;
|
||||
UnkStruct_ov104_02231148 *v1 = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
UnkStruct_ov104_02231148 *v1 = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
v0 = Unk_ov104_0223F65C[v1->unk_08](v1);
|
||||
|
||||
if (v0 == 0) {
|
||||
SetScreenColorBrightness(DS_SCREEN_MAIN, COLOR_BLACK);
|
||||
SetScreenColorBrightness(DS_SCREEN_SUB, COLOR_BLACK);
|
||||
sub_0209B980(ctx->scriptMan->unk_00, v1->unk_14);
|
||||
sub_0209B980(ctx->scriptMan->frontier, v1->unk_14);
|
||||
Heap_Free(v1);
|
||||
}
|
||||
|
||||
@@ -2187,12 +2187,12 @@ static BOOL ov104_02231AA8(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_GetPlayerObjEventGfx(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 objEventGfx;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
if (TrainerInfo_Gender(SaveData_GetTrainerInfo(v1->saveData)) == GENDER_MALE) {
|
||||
if (TrainerInfo_Gender(SaveData_GetTrainerInfo(fieldData->saveData)) == GENDER_MALE) {
|
||||
objEventGfx = OBJ_EVENT_GFX_PLAYER_M;
|
||||
} else {
|
||||
objEventGfx = OBJ_EVENT_GFX_PLAYER_F;
|
||||
@@ -2205,7 +2205,7 @@ static BOOL FrontierScrCmd_GetPlayerObjEventGfx(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_InitParticleSystem(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = ctx->scriptMan;
|
||||
FrontierGraphics *graphics = sub_0209B974(scriptMan->unk_00);
|
||||
FrontierGraphics *graphics = BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
u16 index = FrontierScriptContext_GetVar(ctx);
|
||||
u16 narcIdx = FrontierScriptContext_GetVar(ctx);
|
||||
u16 projection = FrontierScriptContext_GetVar(ctx);
|
||||
@@ -2218,7 +2218,7 @@ static BOOL FrontierScrCmd_InitParticleSystem(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_FreeParticleSystem(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = ctx->scriptMan;
|
||||
FrontierGraphics *graphics = sub_0209B974(scriptMan->unk_00);
|
||||
FrontierGraphics *graphics = BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
u16 index = FrontierScriptContext_GetVar(ctx);
|
||||
FrontierParticleSystem_FreeParticleSystem(graphics->particleSys, index);
|
||||
|
||||
@@ -2228,7 +2228,7 @@ static BOOL FrontierScrCmd_FreeParticleSystem(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_CreateParticleSystemEmitter(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = ctx->scriptMan;
|
||||
FrontierGraphics *graphics = sub_0209B974(scriptMan->unk_00);
|
||||
FrontierGraphics *graphics = BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
u16 index = FrontierScriptContext_GetVar(ctx);
|
||||
u16 resourceID = FrontierScriptContext_GetVar(ctx);
|
||||
ParticleSystem *particleSystem = FrontierParticleSystem_GetParticleSystem(graphics->particleSys, index);
|
||||
@@ -2247,7 +2247,7 @@ static BOOL FrontierScrCmd_WaitForParticleSystemEmitters(FrontierScriptContext *
|
||||
static BOOL WaitForEmitters(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *scriptMan = ctx->scriptMan;
|
||||
FrontierGraphics *graphics = sub_0209B974(scriptMan->unk_00);
|
||||
FrontierGraphics *graphics = BattleFrontier_GetGraphics(scriptMan->frontier);
|
||||
|
||||
return FrontierParticleSystem_NoActiveEmitters(graphics->particleSys) == TRUE;
|
||||
}
|
||||
@@ -2255,7 +2255,7 @@ static BOOL WaitForEmitters(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_4C(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2, v3, v4, v5;
|
||||
UnkStruct_ov104_0223319C *v6 = &v1->unk_A4;
|
||||
|
||||
@@ -2289,7 +2289,7 @@ static BOOL FrontierScrCmd_4D(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_02231C54(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
|
||||
if (v1->unk_A4.unk_00 == NULL) {
|
||||
return TRUE;
|
||||
@@ -2301,7 +2301,7 @@ static BOOL ov104_02231C54(FrontierScriptContext *ctx)
|
||||
static BOOL FrontierScrCmd_4E(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
u16 v2, v3, v4, v5;
|
||||
UnkStruct_ov104_022331E8 *v6 = &v1->unk_B0;
|
||||
|
||||
@@ -2332,7 +2332,7 @@ static BOOL FrontierScrCmd_4F(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_02231CF4(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
|
||||
if (v1->unk_B0.unk_00 == NULL) {
|
||||
return TRUE;
|
||||
@@ -2352,7 +2352,7 @@ static BOOL FrontierScrCmd_45(FrontierScriptContext *ctx)
|
||||
{
|
||||
Party *party;
|
||||
Pokemon *mon;
|
||||
UnkStruct_ov104_02230BE4 *v2;
|
||||
FieldFrontierDTO *fieldData;
|
||||
FrontierGraphics *v3 = FrontierScriptManager_GetGraphics(ctx->scriptMan);
|
||||
u16 slot = FrontierScriptContext_GetVar(ctx);
|
||||
u16 x = FrontierScriptContext_GetVar(ctx);
|
||||
@@ -2361,8 +2361,8 @@ static BOOL FrontierScrCmd_45(FrontierScriptContext *ctx)
|
||||
u16 blendFraction = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
u16 blendTarget = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
|
||||
v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
party = SaveData_GetParty(v2->saveData);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
party = SaveData_GetParty(fieldData->saveData);
|
||||
mon = Party_GetPokemonBySlotIndex(party, slot);
|
||||
blendFraction = 8;
|
||||
blendTarget = GX_RGB(0, 0, 0);
|
||||
@@ -2397,7 +2397,7 @@ static BOOL FrontierScrCmd_47(FrontierScriptContext *ctx)
|
||||
static BOOL ov104_02231E14(FrontierScriptContext *ctx)
|
||||
{
|
||||
FrontierScriptManager *v0 = ctx->scriptMan;
|
||||
FrontierGraphics *v1 = sub_0209B974(v0->unk_00);
|
||||
FrontierGraphics *v1 = BattleFrontier_GetGraphics(v0->frontier);
|
||||
|
||||
if (ctx->data[0] == 1) {
|
||||
return TRUE;
|
||||
@@ -2408,45 +2408,45 @@ static BOOL ov104_02231E14(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_IncrementRecordValue(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 recordID = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
|
||||
v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
GameRecords_IncrementRecordValue(SaveData_GetGameRecords(v0->saveData), recordID);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
GameRecords_IncrementRecordValue(SaveData_GetGameRecords(fieldData->saveData), recordID);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_AddToRecordValue(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 recordID = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
u16 value = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(v0->saveData), recordID, value);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(fieldData->saveData), recordID, value);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_IncrementTrainerScore(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 scoreID = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
|
||||
v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
GameRecords_IncrementTrainerScore(SaveData_GetGameRecords(v0->saveData), scoreID);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
GameRecords_IncrementTrainerScore(SaveData_GetGameRecords(fieldData->saveData), scoreID);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL FrontierScrCmd_4B(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
*destVar = sub_0205E6D8(v0->saveData);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
*destVar = sub_0205E6D8(fieldData->saveData);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -2461,8 +2461,8 @@ static BOOL FrontierScrCmd_71(FrontierScriptContext *ctx)
|
||||
|
||||
static BOOL FrontierScrCmd_SetWiFiListHostFriendCurrentDate(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
WiFiList *wiFiList = SaveData_GetWiFiList(v1->saveData);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
WiFiList *wiFiList = SaveData_GetWiFiList(fieldData->saveData);
|
||||
|
||||
WiFiList_SetHostFriendCurrentDate(wiFiList, NintendoWFC_GetHostFriendIdx());
|
||||
return FALSE;
|
||||
@@ -2473,8 +2473,8 @@ static BOOL FrontierScrCmd_C8(FrontierScriptContext *ctx)
|
||||
u16 v0;
|
||||
TVBroadcast *broadcast;
|
||||
TrainerInfo *trainerInfo;
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
broadcast = SaveData_GetTVBroadcast(v3->saveData);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
broadcast = SaveData_GetTVBroadcast(fieldData->saveData);
|
||||
v0 = FrontierScriptContext_GetVar(ctx);
|
||||
trainerInfo = CommInfo_TrainerInfo(1 - CommSys_CurNetId());
|
||||
|
||||
|
||||
@@ -22,6 +22,7 @@
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "communication_information.h"
|
||||
#include "field_battle_data_transfer.h"
|
||||
#include "gx_layers.h"
|
||||
@@ -35,7 +36,6 @@
|
||||
#include "string_template.h"
|
||||
#include "trainer_info.h"
|
||||
#include "unk_02030494.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
#include "constdata/const_020EA358.h"
|
||||
@@ -53,7 +53,7 @@ static void StoreBattleArcadeAppResults(void *data);
|
||||
BOOL FrontierScrCmd_B8(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleArcade *v0;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v4 = FrontierScriptContext_GetVar(param0);
|
||||
@@ -61,10 +61,10 @@ BOOL FrontierScrCmd_B8(FrontierScriptContext *param0)
|
||||
u16 v6 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v7 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v0 = ov104_02237DD8(v1->saveData, v2, v3, v4, v5, v6, v7);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
v0 = ov104_02237DD8(fieldData->saveData, v2, v3, v4, v5, v6, v7);
|
||||
|
||||
sub_0209B980(param0->scriptMan->unk_00, v0);
|
||||
sub_0209B980(param0->scriptMan->frontier, v0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ BOOL FrontierScrCmd_B9(FrontierScriptContext *param0)
|
||||
BattleArcade *v0;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_0223806C(v0, v1);
|
||||
|
||||
return 0;
|
||||
@@ -81,7 +81,7 @@ BOOL FrontierScrCmd_B9(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_BA(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02238210(v0);
|
||||
|
||||
return 0;
|
||||
@@ -89,7 +89,7 @@ BOOL FrontierScrCmd_BA(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleArcadeApp(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_arcade_app);
|
||||
|
||||
@@ -100,14 +100,14 @@ BOOL FrontierScrCmd_OpenBattleArcadeApp(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_arcade_app)
|
||||
};
|
||||
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleArcadeAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleArcadeAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleArcadeAppArgs));
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
|
||||
SetupBattleArcadeAppArgs(args, battleArcade);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleArcadeAppTemplate, args, 0, StoreBattleArcadeAppResults);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleArcadeAppTemplate, args, 0, StoreBattleArcadeAppResults);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -116,7 +116,7 @@ BOOL FrontierScrCmd_BattleArcade_CleanupBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
int i, partyIdx1, partyIdx2, numMons, stat;
|
||||
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FieldBattleDTO *dto = battleArcade->dto;
|
||||
|
||||
battleArcade->unk_1D = ov104_02238538(battleArcade, dto->parties[0], dto->parties[2], dto->totalTurnsElapsed);
|
||||
@@ -184,13 +184,13 @@ BOOL FrontierScrCmd_BattleArcade_CleanupBattle(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_BattleArcade_StartBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleArcade(battleArcade, v2);
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleArcade(battleArcade, fieldData);
|
||||
battleArcade->dto = dto;
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -236,7 +236,7 @@ static void StoreBattleArcadeAppResults(void *data)
|
||||
|
||||
BOOL FrontierScrCmd_BD(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022384D4(v0);
|
||||
|
||||
return 0;
|
||||
@@ -244,7 +244,7 @@ BOOL FrontierScrCmd_BD(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_BE(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022384DC(v0);
|
||||
|
||||
return 0;
|
||||
@@ -259,8 +259,8 @@ BOOL FrontierScrCmd_CallBattleArcadeFunction(FrontierScriptContext *ctx)
|
||||
u8 arg2 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
UnkStruct_ov104_02230BE4 *v14 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
FrontierGraphics *graphics = FrontierScriptManager_GetGraphics(ctx->scriptMan);
|
||||
|
||||
switch (command) {
|
||||
@@ -306,7 +306,7 @@ BOOL FrontierScrCmd_CallBattleArcadeFunction(FrontierScriptContext *ctx)
|
||||
*destVar = battleArcade->activeEffect;
|
||||
break;
|
||||
case BA_FUNC_UNK_18: {
|
||||
Party *v2 = SaveData_GetParty(v14->saveData);
|
||||
Party *v2 = SaveData_GetParty(fieldData->saveData);
|
||||
|
||||
for (v11 = 0; v11 < 3; v11++) {
|
||||
v1 = Party_GetPokemonBySlotIndex(v2, battleArcade->unk_2C[v11]);
|
||||
@@ -426,7 +426,7 @@ BOOL FrontierScrCmd_CallBattleArcadeFunction(FrontierScriptContext *ctx)
|
||||
StringTemplate_SetFrontierTrainerName(ctx->scriptMan->strTemplate, arg1, battleArcade->trainerIDs[ov104_02238498(battleArcade, arg2)]);
|
||||
} else {
|
||||
if (BattleArcade_IsMultiPlayerChallenge(battleArcade->challengeType) == 0) {
|
||||
v16 = SaveData_GetTrainerInfo(v14->saveData);
|
||||
v16 = SaveData_GetTrainerInfo(fieldData->saveData);
|
||||
} else {
|
||||
v16 = CommInfo_TrainerInfo(arg2);
|
||||
}
|
||||
@@ -460,7 +460,7 @@ BOOL FrontierScrCmd_CallBattleArcadeFunction(FrontierScriptContext *ctx)
|
||||
UnkStruct_ov104_0223C634 *v26;
|
||||
Sprite *v27;
|
||||
|
||||
v26 = ov104_0223D5A8(ctx->scriptMan->unk_00, arg2);
|
||||
v26 = ov104_0223D5A8(ctx->scriptMan->frontier, arg2);
|
||||
v25 = ov63_0222D050(v26->sprite);
|
||||
|
||||
PaletteData_Blend(graphics->plttData, 2, v25 * 16, 16, arg1, 0x0);
|
||||
@@ -537,7 +537,7 @@ BOOL FrontierScrCmd_BattleArcade_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleArcade *battleArcade = sub_0209B978(ctx->scriptMan->frontier);
|
||||
*destVar = battleArcade->wonBattle;
|
||||
|
||||
return FALSE;
|
||||
@@ -550,7 +550,7 @@ BOOL FrontierScrCmd_C1(FrontierScriptContext *param0)
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v3 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v3 = ov104_02238B40(v0, v1, v2);
|
||||
|
||||
return 1;
|
||||
@@ -571,7 +571,7 @@ static BOOL ov104_02237D18(FrontierScriptContext *param0)
|
||||
BattleArcade *v0;
|
||||
u16 v1 = FrontierScriptContext_TryGetVar(param0, param0->data[0]);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_A7C >= 2) {
|
||||
v0->unk_A7C = 0;
|
||||
@@ -585,10 +585,10 @@ BOOL FrontierScrCmd_C4(FrontierScriptContext *param0)
|
||||
{
|
||||
u16 *v0;
|
||||
BattleArcade *v1;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v3 = FrontierScriptContext_ReadByte(param0);
|
||||
|
||||
v1 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1 == NULL) {
|
||||
return 0;
|
||||
@@ -602,7 +602,7 @@ BOOL FrontierScrCmd_C4(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_C5(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleArcade *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02238B88(v0, v0->activeEffect);
|
||||
|
||||
return 1;
|
||||
@@ -616,7 +616,7 @@ BOOL FrontierScrCmd_C6(FrontierScriptContext *param0)
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v4 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022389F4(v0, v1, v2, v3, v4);
|
||||
|
||||
return 0;
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "overlay104/struct_battle_castle.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "battle_frontier_save.h"
|
||||
#include "battle_frontier_stats.h"
|
||||
#include "communication_system.h"
|
||||
@@ -25,7 +26,6 @@
|
||||
#include "party.h"
|
||||
#include "pokemon.h"
|
||||
#include "unk_020302D0.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
#include "constdata/const_020EA358.h"
|
||||
@@ -42,7 +42,7 @@ static void StoreBattleCastleAppResult(void *data);
|
||||
BOOL FrontierScrCmd_97(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v4 = FrontierScriptContext_GetVar(param0);
|
||||
@@ -50,10 +50,10 @@ BOOL FrontierScrCmd_97(FrontierScriptContext *param0)
|
||||
u16 v6 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v7 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v0 = ov104_022361B4(v1->saveData, v2, v3, v4, v5, v6, v7);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
v0 = ov104_022361B4(fieldData->saveData, v2, v3, v4, v5, v6, v7);
|
||||
|
||||
sub_0209B980(param0->scriptMan->unk_00, v0);
|
||||
sub_0209B980(param0->scriptMan->frontier, v0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -63,7 +63,7 @@ BOOL FrontierScrCmd_98(FrontierScriptContext *param0)
|
||||
BattleCastle *v0;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02236514(v0, v1);
|
||||
|
||||
return 0;
|
||||
@@ -71,7 +71,7 @@ BOOL FrontierScrCmd_98(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_99(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022367AC(v0);
|
||||
|
||||
return 0;
|
||||
@@ -79,7 +79,7 @@ BOOL FrontierScrCmd_99(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleCastleSelfApp(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_castle_app);
|
||||
|
||||
@@ -90,20 +90,20 @@ BOOL FrontierScrCmd_OpenBattleCastleSelfApp(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_castle_app)
|
||||
};
|
||||
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleCastleAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleCastleAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleCastleAppArgs));
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
|
||||
SetupBattleCastleAppArgs(args, battleCastle);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleCastleSelfAppTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleCastleSelfAppTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_A4(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_castle_app);
|
||||
|
||||
@@ -114,21 +114,21 @@ BOOL FrontierScrCmd_A4(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_castle_app)
|
||||
};
|
||||
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleCastleAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleCastleAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleCastleAppArgs));
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
|
||||
SetupBattleCastleAppArgs(args, battleCastle);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleCastleNullTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleCastleNullTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_BattleCastle_CleanupBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FieldBattleDTO *dto = battleCastle->dto;
|
||||
|
||||
Pokemon *mon = Party_GetPokemonBySlotIndex(dto->parties[BATTLER_PLAYER_1], 0);
|
||||
@@ -155,19 +155,19 @@ BOOL FrontierScrCmd_BattleCastle_CleanupBattle(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_BattleCastle_StartBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleCastle(battleCastle, v2);
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleCastle(battleCastle, fieldData);
|
||||
battleCastle->dto = dto;
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleCastleOpponentApp(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_castle_app);
|
||||
|
||||
@@ -178,14 +178,14 @@ BOOL FrontierScrCmd_OpenBattleCastleOpponentApp(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_castle_app)
|
||||
};
|
||||
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleCastleAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleCastleAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleCastleAppArgs));
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
|
||||
SetupBattleCastleAppArgs(args, battleCastle);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleCastleOpponentAppTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleCastleOpponentAppTemplate, args, 0, StoreBattleCastleAppResult);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -214,7 +214,7 @@ static void StoreBattleCastleAppResult(void *data)
|
||||
|
||||
BOOL FrontierScrCmd_9E(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02236BF0(v0);
|
||||
|
||||
return 0;
|
||||
@@ -222,7 +222,7 @@ BOOL FrontierScrCmd_9E(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_9F(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02236BF8(v0);
|
||||
|
||||
return 0;
|
||||
@@ -230,14 +230,14 @@ BOOL FrontierScrCmd_9F(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_CallBattleCastleFunction(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v11;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u8 command = FrontierScriptContext_ReadByte(ctx);
|
||||
u8 arg1 = FrontierScriptContext_ReadByte(ctx);
|
||||
u8 arg2 = FrontierScriptContext_ReadByte(ctx);
|
||||
u16 *returnVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
v11 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleCastle *battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
switch (command) {
|
||||
case BC_FUNC_SET_CHALLENGE_TYPE:
|
||||
@@ -273,7 +273,7 @@ BOOL FrontierScrCmd_CallBattleCastleFunction(FrontierScriptContext *ctx)
|
||||
*returnVar = battleCastle->unk_288[arg1].moves[arg2];
|
||||
break;
|
||||
case BC_FUNC_UNK_18: {
|
||||
Party *v2 = SaveData_GetParty(v11->saveData);
|
||||
Party *v2 = SaveData_GetParty(fieldData->saveData);
|
||||
|
||||
for (int v8 = 0; v8 < 3; v8++) {
|
||||
Pokemon *v1 = Party_GetPokemonBySlotIndex(v2, battleCastle->unk_24[v8]);
|
||||
@@ -340,7 +340,7 @@ BOOL FrontierScrCmd_CallBattleCastleFunction(FrontierScriptContext *ctx)
|
||||
}
|
||||
|
||||
if (v10 == 1) {
|
||||
ov104_0223BC2C(SaveData_GetBattleFrontier(v11->saveData), battleCastle->challengeType, 50);
|
||||
ov104_0223BC2C(SaveData_GetBattleFrontier(fieldData->saveData), battleCastle->challengeType, 50);
|
||||
} else {
|
||||
battleCastle->partnersCP -= 50;
|
||||
}
|
||||
@@ -382,9 +382,9 @@ BOOL FrontierScrCmd_CallBattleCastleFunction(FrontierScriptContext *ctx)
|
||||
break;
|
||||
case BC_FUNC_UNK_39: {
|
||||
u8 v13[4];
|
||||
*returnVar = (u16)sub_02030470(sub_0203041C(v11->saveData), 10, 0, 0, NULL);
|
||||
*returnVar = (u16)sub_02030470(sub_0203041C(fieldData->saveData), 10, 0, 0, NULL);
|
||||
v13[0] = 1;
|
||||
sub_02030430(sub_0203041C(v11->saveData), 10, 0, 0, v13);
|
||||
sub_02030430(sub_0203041C(fieldData->saveData), 10, 0, 0, v13);
|
||||
} break;
|
||||
case BC_FUNC_UNK_40:
|
||||
*returnVar = 0;
|
||||
@@ -410,10 +410,10 @@ BOOL FrontierScrCmd_CallBattleCastleFunction(FrontierScriptContext *ctx)
|
||||
case BC_FUNC_UNK_44:
|
||||
if (battleCastle->challengeType == 3) {
|
||||
if (arg1 == 0) {
|
||||
battleCastle->unk_22 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(v11->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType));
|
||||
BattleFrontierSave_SetStatAutoHostIdx(SaveData_GetBattleFrontier(v11->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType), battleCastle->unk_20);
|
||||
battleCastle->unk_22 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType));
|
||||
BattleFrontierSave_SetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType), battleCastle->unk_20);
|
||||
} else {
|
||||
BattleFrontierSave_SetStatAutoHostIdx(SaveData_GetBattleFrontier(v11->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType), battleCastle->unk_22);
|
||||
BattleFrontierSave_SetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), BattleFrontierStats_GetCastleLatestCPIndex(battleCastle->challengeType), battleCastle->unk_22);
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -427,7 +427,7 @@ BOOL FrontierScrCmd_BattleCastle_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
BattleCastle *battleCastle;
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
battleCastle = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
battleCastle = sub_0209B978(ctx->scriptMan->frontier);
|
||||
*destVar = battleCastle->wonBattle;
|
||||
|
||||
return FALSE;
|
||||
@@ -440,7 +440,7 @@ BOOL FrontierScrCmd_A2(FrontierScriptContext *param0)
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v3 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v3 = ov104_02236F70(v0, v1, v2);
|
||||
|
||||
return 1;
|
||||
@@ -461,7 +461,7 @@ static BOOL ov104_02236008(FrontierScriptContext *param0)
|
||||
BattleCastle *v0;
|
||||
u16 v1 = FrontierScriptContext_TryGetVar(param0, param0->data[0]);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_A1A >= 2) {
|
||||
v0->unk_A1A = 0;
|
||||
@@ -486,7 +486,7 @@ static BOOL ov104_02236058(FrontierScriptContext *param0)
|
||||
BattleCastle *v0;
|
||||
u16 *v1 = FrontierScriptContext_GetVarPointer(param0, param0->data[0]);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_A1B == 0) {
|
||||
return 0;
|
||||
@@ -500,7 +500,7 @@ static BOOL ov104_02236058(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_50(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02236FC0(param0->scriptMan, v0);
|
||||
|
||||
return 0;
|
||||
@@ -508,7 +508,7 @@ BOOL FrontierScrCmd_50(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_51(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022370E0(param0->scriptMan, v0);
|
||||
|
||||
return 0;
|
||||
@@ -516,7 +516,7 @@ BOOL FrontierScrCmd_51(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_52(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleCastle *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02237180(param0->scriptMan, v0);
|
||||
|
||||
return 0;
|
||||
@@ -524,24 +524,24 @@ BOOL FrontierScrCmd_52(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_A6(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v2 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
*v2 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(v0->saveData), BattleFrontierStats_GetCastleLatestCPIndex(v1));
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
*v2 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), BattleFrontierStats_GetCastleLatestCPIndex(v1));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_A7(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
ov104_0223BC2C(SaveData_GetBattleFrontier(v0->saveData), v1, v2);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
ov104_0223BC2C(SaveData_GetBattleFrontier(fieldData->saveData), v1, v2);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -549,12 +549,12 @@ BOOL FrontierScrCmd_A7(FrontierScriptContext *param0)
|
||||
BOOL FrontierScrCmd_A8(FrontierScriptContext *param0)
|
||||
{
|
||||
u16 v0;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
ov104_02236ED8(v1->saveData, v2, v3);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
ov104_02236ED8(fieldData->saveData, v2, v3);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -563,10 +563,10 @@ BOOL FrontierScrCmd_A9(FrontierScriptContext *param0)
|
||||
{
|
||||
u16 *v0;
|
||||
BattleCastle *v1;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v3 = FrontierScriptContext_ReadByte(param0);
|
||||
|
||||
v1 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1 == NULL) {
|
||||
return 0;
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
#include "overlay104/struct_battle_factory.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "bg_window.h"
|
||||
#include "field_battle_data_transfer.h"
|
||||
#include "heap.h"
|
||||
@@ -25,7 +26,6 @@
|
||||
#include "sys_task.h"
|
||||
#include "sys_task_manager.h"
|
||||
#include "unk_0202FF4C.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
#include "constdata/const_020EA358.h"
|
||||
@@ -41,15 +41,15 @@ static void StoreBattleFactoryAppResult(void *data);
|
||||
BOOL FrontierScrCmd_5C(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v4 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v0 = ov104_022339B4(v1->saveData, v2, v3, v4);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
v0 = ov104_022339B4(fieldData->saveData, v2, v3, v4);
|
||||
|
||||
sub_0209B980(param0->scriptMan->unk_00, v0);
|
||||
sub_0209B980(param0->scriptMan->frontier, v0);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@@ -59,7 +59,7 @@ BOOL FrontierScrCmd_5D(FrontierScriptContext *param0)
|
||||
BattleFactory *v0;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02233B98(v0, v1);
|
||||
|
||||
return 0;
|
||||
@@ -67,7 +67,7 @@ BOOL FrontierScrCmd_5D(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_5E(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022340D0(v0);
|
||||
|
||||
return 0;
|
||||
@@ -75,7 +75,7 @@ BOOL FrontierScrCmd_5E(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleFactoryAppInitial(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_factory_app);
|
||||
|
||||
@@ -86,12 +86,12 @@ BOOL FrontierScrCmd_OpenBattleFactoryAppInitial(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_factory_app)
|
||||
};
|
||||
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleFactoryAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleFactoryAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleFactoryAppArgs));
|
||||
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
args->challengeType = battleFactory->challengeType;
|
||||
args->unk_05 = battleFactory->unk_05;
|
||||
args->isExchangeMode = FALSE;
|
||||
@@ -99,13 +99,13 @@ BOOL FrontierScrCmd_OpenBattleFactoryAppInitial(FrontierScriptContext *ctx)
|
||||
args->receivableParty = battleFactory->opponentsParty;
|
||||
args->battleFactory = battleFactory;
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleFactoryAppTemplate, args, 0, StoreBattleFactoryAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleFactoryAppTemplate, args, 0, StoreBattleFactoryAppResult);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_BattleFactory_CleanupBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FieldBattleDTO *dto = battleFactory->dto;
|
||||
|
||||
battleFactory->wonBattle = CheckPlayerWonBattle(dto->resultMask);
|
||||
@@ -116,20 +116,20 @@ BOOL FrontierScrCmd_BattleFactory_CleanupBattle(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_BattleFactory_StartBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleFactory(battleFactory, v2);
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleFactory(battleFactory, fieldData);
|
||||
battleFactory->dto = dto;
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleFactoryAppForTrade(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_factory_app);
|
||||
|
||||
@@ -140,7 +140,7 @@ BOOL FrontierScrCmd_OpenBattleFactoryAppForTrade(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_factory_app)
|
||||
};
|
||||
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
for (int i = 0; i < 6; i++) {
|
||||
battleFactory->unk_4DC[i] = 0;
|
||||
@@ -149,7 +149,7 @@ BOOL FrontierScrCmd_OpenBattleFactoryAppForTrade(FrontierScriptContext *ctx)
|
||||
BattleFactoryAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleFactoryAppArgs));
|
||||
MI_CpuClear8(args, sizeof(BattleFactoryAppArgs));
|
||||
|
||||
args->saveData = v3->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
args->challengeType = battleFactory->challengeType;
|
||||
args->unk_05 = battleFactory->unk_05;
|
||||
args->isExchangeMode = TRUE;
|
||||
@@ -157,7 +157,7 @@ BOOL FrontierScrCmd_OpenBattleFactoryAppForTrade(FrontierScriptContext *ctx)
|
||||
args->receivableParty = battleFactory->opponentsParty;
|
||||
args->battleFactory = battleFactory;
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleFactoryAppTradeTemplate, args, 0, StoreBattleFactoryAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleFactoryAppTradeTemplate, args, 0, StoreBattleFactoryAppResult);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@@ -170,7 +170,7 @@ static void StoreBattleFactoryAppResult(void *data)
|
||||
|
||||
BOOL FrontierScrCmd_63(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_0223449C(v0);
|
||||
|
||||
return 0;
|
||||
@@ -178,7 +178,7 @@ BOOL FrontierScrCmd_63(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_64(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02234570(v0);
|
||||
|
||||
return 0;
|
||||
@@ -186,7 +186,7 @@ BOOL FrontierScrCmd_64(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_65(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022346A4(v0);
|
||||
|
||||
return 0;
|
||||
@@ -194,7 +194,7 @@ BOOL FrontierScrCmd_65(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_66(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleFactory *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_0223470C(v0);
|
||||
|
||||
return 0;
|
||||
@@ -208,7 +208,7 @@ BOOL FrontierScrCmd_CallBattleFactoryFunction(FrontierScriptContext *ctx)
|
||||
u8 arg2 = FrontierScriptContext_ReadByte(ctx);
|
||||
u16 *returnVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FrontierGraphics *graphics = FrontierScriptManager_GetGraphics(ctx->scriptMan);
|
||||
|
||||
switch (command) {
|
||||
@@ -409,7 +409,7 @@ BOOL FrontierScrCmd_BattleFactory_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleFactory *battleFactory = sub_0209B978(ctx->scriptMan->frontier);
|
||||
*destVar = battleFactory->wonBattle;
|
||||
|
||||
return FALSE;
|
||||
@@ -422,7 +422,7 @@ BOOL FrontierScrCmd_69(FrontierScriptContext *param0)
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v3 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v3 = ov104_022347A4(v0, v1, v2);
|
||||
|
||||
return 1;
|
||||
@@ -443,7 +443,7 @@ static BOOL ov104_0223394C(FrontierScriptContext *param0)
|
||||
BattleFactory *v0;
|
||||
u16 v1 = FrontierScriptContext_TryGetVar(param0, param0->data[0]);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_702 >= 2) {
|
||||
v0->unk_702 = 0;
|
||||
@@ -457,10 +457,10 @@ BOOL FrontierScrCmd_6B(FrontierScriptContext *param0)
|
||||
{
|
||||
u16 *v0;
|
||||
BattleFactory *v1;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v3 = FrontierScriptContext_ReadByte(param0);
|
||||
|
||||
v1 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1 == NULL) {
|
||||
return 0;
|
||||
|
||||
@@ -19,6 +19,7 @@
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "savedata/save_table.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "battle_hall_save.h"
|
||||
#include "field_battle_data_transfer.h"
|
||||
#include "gx_layers.h"
|
||||
@@ -27,7 +28,6 @@
|
||||
#include "pokemon.h"
|
||||
#include "sound.h"
|
||||
#include "tv_segment.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
#include "constdata/const_020EA358.h"
|
||||
@@ -46,10 +46,10 @@ BOOL FrontierScrCmd_InitBattleHall(FrontierScriptContext *ctx)
|
||||
u16 partySlot1 = FrontierScriptContext_GetVar(ctx);
|
||||
u16 partySlot2 = FrontierScriptContext_GetVar(ctx);
|
||||
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = BattleHall_Init(v1->saveData, resumingFromSave, challengeType, partySlot1, partySlot2);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleHall *battleHall = BattleHall_Init(fieldData->saveData, resumingFromSave, challengeType, partySlot1, partySlot2);
|
||||
|
||||
sub_0209B980(ctx->scriptMan->unk_00, battleHall);
|
||||
sub_0209B980(ctx->scriptMan->frontier, battleHall);
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
@@ -59,7 +59,7 @@ BOOL FrontierScrCmd_8C(FrontierScriptContext *param0)
|
||||
BattleHall *v0;
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_022350B0(v0, v1);
|
||||
|
||||
return 0;
|
||||
@@ -67,7 +67,7 @@ BOOL FrontierScrCmd_8C(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_FreeBattleHall(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleHall_Free(battleHall);
|
||||
|
||||
return FALSE;
|
||||
@@ -75,7 +75,7 @@ BOOL FrontierScrCmd_FreeBattleHall(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_OpenBattleHallApp(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v5 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
FS_EXTERN_OVERLAY(battle_hall_app);
|
||||
|
||||
@@ -86,12 +86,12 @@ BOOL FrontierScrCmd_OpenBattleHallApp(FrontierScriptContext *ctx)
|
||||
FS_OVERLAY_ID(battle_hall_app)
|
||||
};
|
||||
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleHallAppArgs *args = Heap_Alloc(HEAP_ID_FIELD2, sizeof(BattleHallAppArgs));
|
||||
|
||||
MI_CpuClear8(args, sizeof(BattleHallAppArgs));
|
||||
|
||||
args->saveData = v5->saveData;
|
||||
args->saveData = fieldData->saveData;
|
||||
args->challengeType = battleHall->challengeType;
|
||||
args->battleHall = battleHall;
|
||||
args->typeRanks = &battleHall->typeRanks[battleHall->challengeType][0];
|
||||
@@ -102,7 +102,7 @@ BOOL FrontierScrCmd_OpenBattleHallApp(FrontierScriptContext *ctx)
|
||||
|
||||
Party_Init(args->party);
|
||||
|
||||
Party *party = SaveData_GetParty(v5->saveData);
|
||||
Party *party = SaveData_GetParty(fieldData->saveData);
|
||||
Pokemon *mon = Party_GetPokemonBySlotIndex(party, battleHall->partySlots[0]);
|
||||
|
||||
Party_AddPokemon(args->party, mon);
|
||||
@@ -114,13 +114,13 @@ BOOL FrontierScrCmd_OpenBattleHallApp(FrontierScriptContext *ctx)
|
||||
Party_AddPokemon(args->party, battleHall->partnersMon);
|
||||
}
|
||||
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &sBattleHallAppTemplate, args, 0, StoreBattleHallAppResult);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &sBattleHallAppTemplate, args, 0, StoreBattleHallAppResult);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_BattleHall_CleanupBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
FieldBattleDTO *dto = battleHall->dto;
|
||||
|
||||
battleHall->wonBattle = CheckPlayerWonBattle(dto->resultMask);
|
||||
@@ -131,14 +131,14 @@ BOOL FrontierScrCmd_BattleHall_CleanupBattle(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_BattleHall_StartBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleHall(battleHall, v2);
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleHall(battleHall, fieldData);
|
||||
battleHall->dto = dto;
|
||||
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_BATTLE, SEQ_BATTLE_TRAINER, 1);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
@@ -159,8 +159,8 @@ BOOL FrontierScrCmd_CallBattleHallFunction(FrontierScriptContext *ctx)
|
||||
u8 arg2 = FrontierScriptContext_ReadByte(ctx);
|
||||
u16 *returnVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
UnkStruct_ov104_02230BE4 *v0 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
switch (command) {
|
||||
case BH_FUNC_SET_CHALLENGE_TYPE:
|
||||
@@ -212,7 +212,7 @@ BOOL FrontierScrCmd_CallBattleHallFunction(FrontierScriptContext *ctx)
|
||||
*returnVar = battleHall->unk_D88;
|
||||
break;
|
||||
case BH_FUNC_RESTORE_HELD_ITEMS: {
|
||||
Party *party = SaveData_GetParty(v0->saveData);
|
||||
Party *party = SaveData_GetParty(fieldData->saveData);
|
||||
partySize = BattleHall_GetPlayerPartySize(battleHall->challengeType);
|
||||
|
||||
for (int i = 0; i < partySize; i++) {
|
||||
@@ -254,7 +254,7 @@ BOOL FrontierScrCmd_CallBattleHallFunction(FrontierScriptContext *ctx)
|
||||
*returnVar = ov104_02235578(battleHall);
|
||||
break;
|
||||
case BH_FUNC_UNK_15: {
|
||||
Party *v2 = SaveData_GetParty(v0->saveData);
|
||||
Party *v2 = SaveData_GetParty(fieldData->saveData);
|
||||
Pokemon *v1 = Party_GetPokemonBySlotIndex(v2, battleHall->partySlots[0]);
|
||||
*returnVar = Pokemon_GetValue(v1, MON_DATA_SPECIES, NULL);
|
||||
} break;
|
||||
@@ -286,7 +286,7 @@ BOOL FrontierScrCmd_BattleHall_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
*destVar = battleHall->wonBattle;
|
||||
|
||||
return FALSE;
|
||||
@@ -299,7 +299,7 @@ BOOL FrontierScrCmd_93(FrontierScriptContext *param0)
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v3 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v3 = ov104_02235534(v0, v1, v2);
|
||||
|
||||
return 1;
|
||||
@@ -320,7 +320,7 @@ static BOOL ov104_02234CEC(FrontierScriptContext *param0)
|
||||
BattleHall *v0;
|
||||
u16 v1 = FrontierScriptContext_TryGetVar(param0, param0->data[0]);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_D90 >= 2) {
|
||||
v0->unk_D90 = 0;
|
||||
@@ -334,10 +334,10 @@ BOOL FrontierScrCmd_95(FrontierScriptContext *param0)
|
||||
{
|
||||
u16 *v0;
|
||||
BattleHall *v1;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v3 = FrontierScriptContext_ReadByte(param0);
|
||||
|
||||
v1 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1 == NULL) {
|
||||
return 0;
|
||||
@@ -352,7 +352,7 @@ BOOL FrontierScrCmd_95(FrontierScriptContext *param0)
|
||||
BOOL FrontierScrCmd_BattleHall_UpdateWinRecord(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleHall *battleHall = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleHall_UpdateWinRecordForCurrentMon(battleHall, destVar);
|
||||
|
||||
return TRUE;
|
||||
@@ -365,15 +365,15 @@ BOOL FrontierScrCmd_C7(FrontierScriptContext *param0)
|
||||
Party *v2;
|
||||
Pokemon *v3;
|
||||
BattleHall *v4;
|
||||
UnkStruct_ov104_02230BE4 *v5 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
|
||||
v4 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v2 = SaveData_GetParty(v5->saveData);
|
||||
v4 = sub_0209B978(param0->scriptMan->frontier);
|
||||
v2 = SaveData_GetParty(fieldData->saveData);
|
||||
v3 = Party_GetPokemonBySlotIndex(v2, v4->partySlots[0]);
|
||||
v1 = Pokemon_GetValue(v3, MON_DATA_SPECIES, NULL);
|
||||
|
||||
if (v4->challengeType == 0) {
|
||||
broadcast = SaveData_GetTVBroadcast(v5->saveData);
|
||||
broadcast = SaveData_GetTVBroadcast(fieldData->saveData);
|
||||
sub_0206D048(broadcast, v3);
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "savedata/save_table.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "communication_system.h"
|
||||
#include "field_battle_data_transfer.h"
|
||||
#include "game_records.h"
|
||||
@@ -29,7 +30,6 @@
|
||||
#include "tv_segment.h"
|
||||
#include "unk_020363E8.h"
|
||||
#include "unk_02049D08.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
|
||||
#include "constdata/const_020EA358.h"
|
||||
|
||||
@@ -41,12 +41,12 @@ BOOL FrontierScrCmd_CallBattleTowerFunction(FrontierScriptContext *ctx)
|
||||
{
|
||||
u16 functionIndex, functionArgument;
|
||||
u16 *destVar;
|
||||
UnkStruct_ov104_02230BE4 *v8 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
functionIndex = FrontierScriptContext_ReadHalfWord(ctx);
|
||||
functionArgument = FrontierScriptContext_GetVar(ctx);
|
||||
destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
switch (functionIndex) {
|
||||
case BT_FUNC_RESET_SYSTEM:
|
||||
@@ -54,9 +54,9 @@ BOOL FrontierScrCmd_CallBattleTowerFunction(FrontierScriptContext *ctx)
|
||||
break;
|
||||
case BT_FUNC_UNK_46:
|
||||
*destVar = BattleTower_GiveBattlePointsReward(battleTower);
|
||||
TVBroadcast *broadcast = SaveData_GetTVBroadcast(v8->saveData);
|
||||
TVBroadcast *broadcast = SaveData_GetTVBroadcast(fieldData->saveData);
|
||||
sub_0206D0C8(broadcast, *destVar);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(v8->saveData), RECORD_BATTLE_POINTS_RECEIVED, *destVar);
|
||||
GameRecords_AddToRecordValue(SaveData_GetGameRecords(fieldData->saveData), RECORD_BATTLE_POINTS_RECEIVED, *destVar);
|
||||
break;
|
||||
case BT_FUNC_GET_PARTNER_PARAM:
|
||||
*destVar = BattleTower_GetPartnerParam(battleTower, functionArgument);
|
||||
@@ -77,7 +77,7 @@ BOOL FrontierScrCmd_CallBattleTowerFunction(FrontierScriptContext *ctx)
|
||||
*destVar = (u16)BattleTower_GetChallengeMode(battleTower);
|
||||
break;
|
||||
case BT_FUNC_SET_OPPONENT_TEAMS:
|
||||
BattleTower_CreateOpponentParties(battleTower, v8->saveData);
|
||||
BattleTower_CreateOpponentParties(battleTower, fieldData->saveData);
|
||||
break;
|
||||
case BT_FUNC_GET_OPPONENT_OBJECT_ID:
|
||||
*destVar = BattleTower_GetObjectIDFromOpponentIDInFrontierScript(battleTower, functionArgument);
|
||||
@@ -86,10 +86,10 @@ BOOL FrontierScrCmd_CallBattleTowerFunction(FrontierScriptContext *ctx)
|
||||
BattleTower_SetBeatPalmer(battleTower, functionArgument);
|
||||
break;
|
||||
case BT_FUNC_UPDATE_GAME_RECORDS:
|
||||
BattleTower_UpdateGameRecords(battleTower, v8->saveData);
|
||||
BattleTower_UpdateGameRecords(battleTower, fieldData->saveData);
|
||||
break;
|
||||
case BT_FUNC_UPDATE_GAME_RECORDS_AND_JOURNAL:
|
||||
BattleTower_UpdateGameRecordsAndJournal(battleTower, v8->saveData, v8->journalEntry);
|
||||
BattleTower_UpdateGameRecordsAndJournal(battleTower, fieldData->saveData, fieldData->journalEntry);
|
||||
break;
|
||||
case BT_FUNC_UNK_39:
|
||||
sub_0204A8C8(battleTower);
|
||||
@@ -153,10 +153,10 @@ BOOL FrontierScrCmd_85(FrontierScriptContext *param0)
|
||||
u8 v0;
|
||||
u16 *v1;
|
||||
BattleTower *battleTower;
|
||||
UnkStruct_ov104_02230BE4 *v3 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v4 = FrontierScriptContext_ReadByte(param0);
|
||||
|
||||
battleTower = sub_0209B978(param0->scriptMan->unk_00);
|
||||
battleTower = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (battleTower == NULL) {
|
||||
return 0;
|
||||
@@ -170,7 +170,7 @@ BOOL FrontierScrCmd_85(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_FreeTowerStruct(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleTower_Free(battleTower);
|
||||
|
||||
return FALSE;
|
||||
@@ -178,21 +178,21 @@ BOOL FrontierScrCmd_FreeTowerStruct(FrontierScriptContext *ctx)
|
||||
|
||||
BOOL FrontierScrCmd_BattleTower_StartBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->frontier);
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleTower(battleTower, v2);
|
||||
FieldBattleDTO *dto = FieldBattleDTO_NewBattleTower(battleTower, fieldData);
|
||||
battleTower->dto = dto;
|
||||
|
||||
Sound_SetSceneAndPlayBGM(SOUND_SCENE_BATTLE, SEQ_BATTLE_TRAINER, 1);
|
||||
sub_0209B988(ctx->scriptMan->unk_00, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
sub_0209B988(ctx->scriptMan->frontier, &gBattleApplicationTemplate, dto, 0, NULL);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_BattleTower_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->frontier);
|
||||
u16 *destVar = FrontierScriptContext_TryGetVarPointer(ctx);
|
||||
FieldBattleDTO *dto = battleTower->dto;
|
||||
|
||||
@@ -206,12 +206,12 @@ BOOL FrontierScrCmd_BattleTower_CheckWonBattle(FrontierScriptContext *ctx)
|
||||
BOOL FrontierScrCmd_89(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleTower *battleTower;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v4 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
battleTower = sub_0209B978(param0->scriptMan->unk_00);
|
||||
battleTower = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
switch (v2) {
|
||||
case 2:
|
||||
@@ -247,11 +247,11 @@ BOOL FrontierScrCmd_8A(FrontierScriptContext *param0)
|
||||
static BOOL ov104_0223942C(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleTower *battleTower;
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
|
||||
battleTower = sub_0209B978(param0->scriptMan->unk_00);
|
||||
battleTower = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (ov104_02239464(param0, battleTower, v1->saveData, param0->data[0], param0->data[1]) == 1) {
|
||||
if (ov104_02239464(param0, battleTower, fieldData->saveData, param0->data[0], param0->data[1]) == 1) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -21,6 +21,7 @@
|
||||
#include "overlay104/struct_ov104_0223319C.h"
|
||||
#include "overlay104/struct_ov104_022331E8.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "bg_window.h"
|
||||
#include "character_sprite.h"
|
||||
#include "easy_chat_sentence.h"
|
||||
@@ -49,7 +50,6 @@
|
||||
#include "sys_task_manager.h"
|
||||
#include "system.h"
|
||||
#include "text.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
|
||||
#define LIST_MENU_ENTRY_NO_ALT_TEXT 0xFF
|
||||
#define LIST_MENU_BUILDER_HEADER 0xFA
|
||||
@@ -95,9 +95,9 @@ void FrontierShowMessage(FrontierScriptManager *scriptMan, const MessageLoader *
|
||||
|
||||
if (msgOptions == NULL) {
|
||||
FrontierGraphics *graphics = FrontierScriptManager_GetGraphics(scriptMan);
|
||||
UnkStruct_ov104_02230BE4 *v4 = sub_0209B970(graphics->unk_08);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(graphics->frontier);
|
||||
|
||||
renderDelay = Options_TextFrameDelay(v4->options);
|
||||
renderDelay = Options_TextFrameDelay(fieldData->options);
|
||||
autoScroll = AUTO_SCROLL_DISABLED;
|
||||
font = FONT_MESSAGE;
|
||||
} else {
|
||||
@@ -952,7 +952,7 @@ void ov104_022330FC(FrontierScriptContext *ctx, u16 *args)
|
||||
void ov104_0223310C(FrontierScriptContext *ctx, u16 *args, u32 bankID)
|
||||
{
|
||||
MessageLoader *msgLoader;
|
||||
UnkStruct_ov104_02230BE4 *v2 = sub_0209B970(ctx->scriptMan->unk_00);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(ctx->scriptMan->frontier);
|
||||
|
||||
if (args[0] == 0xFFFF) {
|
||||
msgLoader = MessageLoader_Init(MSG_LOADER_LOAD_ON_DEMAND, NARC_INDEX_MSGDATA__PL_MSG, bankID, HEAP_ID_FIELD3);
|
||||
@@ -960,7 +960,7 @@ void ov104_0223310C(FrontierScriptContext *ctx, u16 *args, u32 bankID)
|
||||
FrontierShowMessage(ctx->scriptMan, msgLoader, args[1], 1, NULL);
|
||||
MessageLoader_Free(msgLoader);
|
||||
} else {
|
||||
u8 frameDelay = Options_TextFrameDelay(SaveData_GetOptions(v2->saveData));
|
||||
u8 frameDelay = Options_TextFrameDelay(SaveData_GetOptions(fieldData->saveData));
|
||||
ShowSentence(ctx->scriptMan, frameDelay, args[0], args[1], args[2], args[3], TRUE);
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include "overlay104/ov104_0223C164.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "battle_frontier_save.h"
|
||||
#include "battle_frontier_stats.h"
|
||||
#include "battle_hall_save.h"
|
||||
@@ -27,7 +28,6 @@
|
||||
#include "unk_0202D05C.h"
|
||||
#include "unk_02049D08.h"
|
||||
#include "unk_0204FA34.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
static BOOL ov104_02239680(FrontierScriptContext *param0);
|
||||
@@ -35,16 +35,16 @@ static BOOL ov104_02239C20(FrontierScriptContext *param0);
|
||||
|
||||
BOOL FrontierScrCmd_AA(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
UnkStruct_0209BBA4 *v0 = ov104_02239C58(v1->saveData);
|
||||
FieldFrontierDTO *fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
UnkStruct_0209BBA4 *v0 = ov104_02239C58(fieldData->saveData);
|
||||
|
||||
sub_0209B980(param0->scriptMan->unk_00, v0);
|
||||
sub_0209B980(param0->scriptMan->frontier, v0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
BOOL FrontierScrCmd_AB(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_0209BBA4 *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
UnkStruct_0209BBA4 *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
ov104_02239C7C(v0);
|
||||
|
||||
return 0;
|
||||
@@ -58,7 +58,7 @@ BOOL FrontierScrCmd_AC(FrontierScriptContext *param0)
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v4 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v4 = ov104_02239C88(v0, v1, v2, v3);
|
||||
|
||||
return 1;
|
||||
@@ -76,7 +76,7 @@ BOOL FrontierScrCmd_AD(FrontierScriptContext *param0)
|
||||
|
||||
static BOOL ov104_02239680(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_0209BBA4 *v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
UnkStruct_0209BBA4 *v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v0->unk_6F >= 2) {
|
||||
v0->unk_6F = 0;
|
||||
@@ -92,7 +92,7 @@ BOOL FrontierScrCmd_AE(FrontierScriptContext *param0)
|
||||
u16 v1 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v2 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1 == v0->unk_6E) {
|
||||
*v2 = 1;
|
||||
@@ -106,18 +106,18 @@ BOOL FrontierScrCmd_AE(FrontierScriptContext *param0)
|
||||
BOOL FrontierScrCmd_AF(FrontierScriptContext *param0)
|
||||
{
|
||||
UnkStruct_0209BBA4 *v0;
|
||||
UnkStruct_ov104_02230BE4 *v1;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u16 v2 = FrontierScriptContext_GetVar(param0);
|
||||
u16 v3 = FrontierScriptContext_GetVar(param0);
|
||||
u16 *v4 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
|
||||
v0->fieldSystem = v1->fieldSystem;
|
||||
v0->fieldSystem = fieldData->fieldSystem;
|
||||
v0->unk_B0 = v4;
|
||||
|
||||
ov104_02239CD0(param0->scriptMan->unk_00, v0, v3);
|
||||
ov104_02239CD0(param0->scriptMan->frontier, v0, v3);
|
||||
|
||||
return 1;
|
||||
}
|
||||
@@ -130,7 +130,7 @@ BOOL FrontierScrCmd_B0(FrontierScriptContext *param0)
|
||||
u16 *v3 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
u16 *v4 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v1 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v1 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (v1->partyMenu->selectedMonSlot == 7) {
|
||||
*v3 = 0xff;
|
||||
@@ -160,7 +160,7 @@ BOOL FrontierScrCmd_B1(FrontierScriptContext *param0)
|
||||
UnkStruct_0209BBA4 *v0;
|
||||
u16 *v1 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v0 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v0 = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v1 = v0->unk_59;
|
||||
|
||||
return 0;
|
||||
@@ -172,14 +172,14 @@ BOOL FrontierScrCmd_B2(FrontierScriptContext *param0)
|
||||
u16 v1, v2;
|
||||
UnkStruct_0202D750 *v3;
|
||||
UnkStruct_0209BBA4 *v4;
|
||||
UnkStruct_ov104_02230BE4 *v5;
|
||||
FieldFrontierDTO *fieldData;
|
||||
u8 v6 = FrontierScriptContext_ReadByte(param0);
|
||||
u8 v7 = FrontierScriptContext_ReadByte(param0);
|
||||
u8 v8 = FrontierScriptContext_ReadByte(param0);
|
||||
u16 *v9 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
v4 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
v5 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v4 = sub_0209B978(param0->scriptMan->frontier);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
|
||||
switch (v6) {
|
||||
case 0:
|
||||
@@ -220,16 +220,16 @@ BOOL FrontierScrCmd_B2(FrontierScriptContext *param0)
|
||||
break;
|
||||
|
||||
case 3:
|
||||
*v9 = (u16)BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(v5->saveData), STAT_HALL_WFC_STREAK_ACTIVE);
|
||||
*v9 = (u16)BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), STAT_HALL_WFC_STREAK_ACTIVE);
|
||||
break;
|
||||
case 4:
|
||||
*v9 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(v5->saveData), BattleFrontierStats_GetHallLatestSpeciesIndex(3));
|
||||
*v9 = BattleFrontierSave_GetStatAutoHostIdx(SaveData_GetBattleFrontier(fieldData->saveData), BattleFrontierStats_GetHallLatestSpeciesIndex(3));
|
||||
break;
|
||||
case 5:
|
||||
*v9 = v4->unk_76[v7];
|
||||
break;
|
||||
case 6:
|
||||
sub_0204FA50(v5->saveData, BattleHallStreakFlags_Get(v5->saveData), 3);
|
||||
sub_0204FA50(fieldData->saveData, BattleHallStreakFlags_Get(fieldData->saveData), 3);
|
||||
break;
|
||||
case 7:
|
||||
v4->unk_A0 = v7;
|
||||
@@ -302,21 +302,21 @@ BOOL FrontierScrCmd_B3(FrontierScriptContext *param0)
|
||||
{
|
||||
int v0;
|
||||
BattleTower *battleTower;
|
||||
UnkStruct_ov104_02230BE4 *v2;
|
||||
FieldFrontierDTO *fieldData;
|
||||
UnkStruct_0209BBA4 *v3;
|
||||
UnkStruct_0209BBA4 v4;
|
||||
|
||||
v2 = sub_0209B970(param0->scriptMan->unk_00);
|
||||
v3 = sub_0209B978(param0->scriptMan->unk_00);
|
||||
fieldData = BattleFrontier_GetFieldData(param0->scriptMan->frontier);
|
||||
v3 = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
v4 = *v3;
|
||||
ov104_02239C7C(v3);
|
||||
|
||||
battleTower = BattleTower_Init(v2->saveData, 0, BATTLE_TOWER_MODE_6);
|
||||
sub_0209B980(param0->scriptMan->unk_00, battleTower);
|
||||
battleTower = BattleTower_Init(fieldData->saveData, 0, BATTLE_TOWER_MODE_6);
|
||||
sub_0209B980(param0->scriptMan->frontier, battleTower);
|
||||
|
||||
if (battleTower->challengeMode == BATTLE_TOWER_MODE_6) {
|
||||
BattleFrontier_FlagGeonetLinkInfo(v2->saveData);
|
||||
BattleFrontier_FlagGeonetLinkInfo(fieldData->saveData);
|
||||
}
|
||||
|
||||
for (v0 = 0; v0 < battleTower->partySize; v0++) {
|
||||
@@ -331,10 +331,10 @@ BOOL FrontierScrCmd_B3(FrontierScriptContext *param0)
|
||||
battleTower->partnerID = BT_PARTNERS_COUNT + battleTower->partnerGender;
|
||||
|
||||
if (CommSys_CurNetId() == 0) {
|
||||
sub_0204A4C8(battleTower, v2->saveData);
|
||||
sub_0204A4C8(battleTower, fieldData->saveData);
|
||||
}
|
||||
|
||||
Party_HealAllMembers(SaveData_GetParty(v2->saveData));
|
||||
Party_HealAllMembers(SaveData_GetParty(fieldData->saveData));
|
||||
sub_0209BA80(battleTower);
|
||||
|
||||
battleTower->unk_8D4 = 0;
|
||||
@@ -347,7 +347,7 @@ BOOL FrontierScrCmd_B4(FrontierScriptContext *param0)
|
||||
BattleTower *battleTower;
|
||||
u16 *v1 = FrontierScriptContext_TryGetVarPointer(param0);
|
||||
|
||||
battleTower = sub_0209B978(param0->scriptMan->unk_00);
|
||||
battleTower = sub_0209B978(param0->scriptMan->frontier);
|
||||
*v1 = sub_0209BB08(battleTower);
|
||||
|
||||
return 1;
|
||||
@@ -361,7 +361,7 @@ BOOL FrontierScrCmd_B5(FrontierScriptContext *param0)
|
||||
|
||||
static BOOL ov104_02239C20(FrontierScriptContext *param0)
|
||||
{
|
||||
BattleTower *battleTower = sub_0209B978(param0->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(param0->scriptMan->frontier);
|
||||
|
||||
if (battleTower->unk_8D4 < 2) {
|
||||
return 0;
|
||||
@@ -373,7 +373,7 @@ static BOOL ov104_02239C20(FrontierScriptContext *param0)
|
||||
|
||||
BOOL FrontierScrCmd_ClearTowerStruct(FrontierScriptContext *ctx)
|
||||
{
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->unk_00);
|
||||
BattleTower *battleTower = sub_0209B978(ctx->scriptMan->frontier);
|
||||
BattleTower_Free(battleTower);
|
||||
battleTower = NULL;
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
#include "struct_defs/struct_0209BBA4.h"
|
||||
|
||||
#include "applications/party_menu/defs.h"
|
||||
@@ -12,6 +12,7 @@
|
||||
#include "field/field_system.h"
|
||||
|
||||
#include "bag.h"
|
||||
#include "battle_frontier.h"
|
||||
#include "dexmode_checker.h"
|
||||
#include "heap.h"
|
||||
#include "mail.h"
|
||||
@@ -19,18 +20,17 @@
|
||||
#include "save_player.h"
|
||||
#include "savedata.h"
|
||||
#include "unk_0202D778.h"
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "unk_0209BA80.h"
|
||||
|
||||
#include "constdata/const_020F410C.h"
|
||||
|
||||
void ov104_02239C7C(UnkStruct_0209BBA4 *param0);
|
||||
BOOL ov104_02239C88(UnkStruct_0209BBA4 *param0, u16 param1, u16 param2, u16 param3);
|
||||
void ov104_02239CD0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, u16 param2);
|
||||
static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
static void ov104_02239F38(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
static void ov104_02239FB0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, enum HeapID heapID);
|
||||
static void ov104_0223A090(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
void ov104_02239CD0(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, u16 param2);
|
||||
static void ov104_02239D1C(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
static void ov104_02239F38(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
static void ov104_02239FB0(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, enum HeapID heapID);
|
||||
static void ov104_0223A090(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3);
|
||||
|
||||
UnkStruct_0209BBA4 *ov104_02239C58(SaveData *saveData)
|
||||
{
|
||||
@@ -78,7 +78,7 @@ BOOL ov104_02239C88(UnkStruct_0209BBA4 *param0, u16 param1, u16 param2, u16 para
|
||||
return v0;
|
||||
}
|
||||
|
||||
void ov104_02239CD0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, u16 param2)
|
||||
void ov104_02239CD0(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, u16 param2)
|
||||
{
|
||||
FieldSystem *fieldSystem = param1->fieldSystem;
|
||||
|
||||
@@ -100,7 +100,7 @@ void ov104_02239CD0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, u16
|
||||
}
|
||||
}
|
||||
|
||||
static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
static void ov104_02239D1C(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
{
|
||||
u8 v0;
|
||||
|
||||
@@ -155,7 +155,7 @@ static void ov104_02239D1C(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
|
||||
sub_0209B988(param0, &gPokemonPartyAppTemplate, param1->partyMenu, 0, NULL);
|
||||
}
|
||||
|
||||
static void ov104_02239F38(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
static void ov104_02239F38(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
{
|
||||
switch (param1->partyMenu->selectedMonSlot) {
|
||||
case 7:
|
||||
@@ -179,7 +179,7 @@ static void ov104_02239F38(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
|
||||
param1->unk_9D = 2;
|
||||
}
|
||||
|
||||
static void ov104_02239FB0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, enum HeapID heapID)
|
||||
static void ov104_02239FB0(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, enum HeapID heapID)
|
||||
{
|
||||
static const u8 visiblePages[] = {
|
||||
SUMMARY_PAGE_INFO,
|
||||
@@ -212,7 +212,7 @@ static void ov104_02239FB0(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param
|
||||
sub_0209B988(param0, &gPokemonSummaryScreenApp, param1->unk_AC, 0, NULL);
|
||||
}
|
||||
|
||||
static void ov104_0223A090(UnkStruct_0209B75C *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
static void ov104_0223A090(BattleFrontier *param0, UnkStruct_0209BBA4 *param1, FieldSystem *fieldSystem, int param3)
|
||||
{
|
||||
param1->unk_9F = param1->unk_AC->monIndex;
|
||||
Heap_Free(param1->unk_AC);
|
||||
|
||||
@@ -630,7 +630,6 @@ static const UnkStruct_ov104_0223FCB4 Unk_ov104_0223FCB4[] = {
|
||||
|
||||
void FieldBattleDTO_CopyPlayerInfoToTrainerData(FieldBattleDTO *dto);
|
||||
void BattleTower_CreateWiFiTrainerParty(SaveData *saveData, FrontierDataDTO *dto, const u8 opponentID);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleTower(BattleTower *battleTower, UnkStruct_ov104_02230BE4 *param1);
|
||||
void ov104_0223A734(BattleTower *battleTower, u16 param1);
|
||||
u16 ov104_0223A750(BattleTower *battleTower, const u16 *param1);
|
||||
int BattleTower_GetPokemonDataNarcID(u8 challengeMode);
|
||||
@@ -889,15 +888,15 @@ static u32 BattleTower_CopySetToPokemonDataDTO(BattleTower *battleTower, Frontie
|
||||
return randomPersonality;
|
||||
}
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleTower(BattleTower *battleTower, UnkStruct_ov104_02230BE4 *param1)
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleTower(BattleTower *battleTower, FieldFrontierDTO *fieldData)
|
||||
{
|
||||
int i;
|
||||
|
||||
FieldBattleDTO *dto = FieldBattleDTO_New(battleTower->heapID, BattleTower_GetBattleTypeFromChallengeMode(battleTower->challengeMode));
|
||||
SaveData *saveData = param1->saveData;
|
||||
SaveData *saveData = fieldData->saveData;
|
||||
Party *party = SaveData_GetParty(saveData);
|
||||
|
||||
FieldBattleDTO_InitFromGameState(dto, NULL, param1->saveData, param1->mapHeaderID, param1->journalEntry, param1->bagCursor, param1->subscreenCursorOn);
|
||||
FieldBattleDTO_InitFromGameState(dto, NULL, fieldData->saveData, fieldData->mapHeaderID, fieldData->journalEntry, fieldData->bagCursor, fieldData->subscreenCursorOn);
|
||||
|
||||
dto->background = BACKGROUND_BATTLE_TOWER;
|
||||
dto->terrain = TERRAIN_BATTLE_TOWER;
|
||||
|
||||
@@ -331,7 +331,7 @@ void ov104_0223AB0C(u8 param0, u16 param1, u8 param2, FrontierPokemonDataDTO *pa
|
||||
return;
|
||||
}
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleFactory(BattleFactory *battleFactory, UnkStruct_ov104_02230BE4 *param1)
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleFactory(BattleFactory *battleFactory, FieldFrontierDTO *fieldData)
|
||||
{
|
||||
int i;
|
||||
FrontierTrainerDataDTO trDataDTO;
|
||||
@@ -343,7 +343,7 @@ FieldBattleDTO *FieldBattleDTO_NewBattleFactory(BattleFactory *battleFactory, Un
|
||||
Party_HealAllMembers(battleFactory->opponentsParty);
|
||||
|
||||
FieldBattleDTO *battleDTO = FieldBattleDTO_New(HEAP_ID_FIELD2, BattleFactory_GetBattleType(battleFactory->challengeType));
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, param1->saveData, param1->mapHeaderID, param1->journalEntry, param1->bagCursor, param1->subscreenCursorOn);
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, fieldData->saveData, fieldData->mapHeaderID, fieldData->journalEntry, fieldData->bagCursor, fieldData->subscreenCursorOn);
|
||||
|
||||
battleDTO->background = BACKGROUND_BATTLE_FACTORY;
|
||||
battleDTO->terrain = TERRAIN_BATTLE_FACTORY;
|
||||
|
||||
@@ -38,7 +38,6 @@ void ov104_0223AFB4(u8 param0, u8 param1, int param2, u8 param3, u8 param4, u16
|
||||
void ov104_0223B0C8(u8 param0, u8 param1, u8 param2, u8 param3, u16 param4, u16 param5[], u8 param6);
|
||||
u8 BattleHall_GetPlayerPartySize(u8 challengeType);
|
||||
u8 BattleHall_GetOpponentPartySize(u8 challengeType);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, UnkStruct_ov104_02230BE4 *param1);
|
||||
static u32 BattleHall_GetBattleType(u8 challengeType);
|
||||
static void ov104_0223B518(FrontierPokemonDataDTO *param0, u8 param1, u16 param2, u16 param3[], int param4, int param5, int param6);
|
||||
static u32 BattleHall_GetOpponentLevel(BattleHall *battleHall, u8 param1);
|
||||
@@ -1563,7 +1562,7 @@ void ov104_0223B0C8(u8 param0, u8 param1, u8 param2, u8 param3, u16 param4, u16
|
||||
return;
|
||||
}
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, UnkStruct_ov104_02230BE4 *param1)
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, FieldFrontierDTO *fieldData)
|
||||
{
|
||||
int i;
|
||||
u8 rank;
|
||||
@@ -1578,7 +1577,7 @@ FieldBattleDTO *FieldBattleDTO_NewBattleHall(BattleHall *battleHall, UnkStruct_o
|
||||
Party_HealAllMembers(party);
|
||||
|
||||
FieldBattleDTO *battleDTO = FieldBattleDTO_New(HEAP_ID_FIELD2, BattleHall_GetBattleType(battleHall->challengeType));
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, param1->saveData, param1->mapHeaderID, param1->journalEntry, param1->bagCursor, param1->subscreenCursorOn);
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, fieldData->saveData, fieldData->mapHeaderID, fieldData->journalEntry, fieldData->bagCursor, fieldData->subscreenCursorOn);
|
||||
|
||||
battleDTO->background = BACKGROUND_BATTLE_HALL;
|
||||
battleDTO->terrain = TERRAIN_BATTLE_HALL;
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
static int ov104_0223B6F4(u8 param0, int param1, int param2);
|
||||
void ov104_0223B760(u8 param0, int param1, u16 param2[], u8 param3);
|
||||
u8 BattleCastle_GetOpponentPartySize(u8 challengeType, BOOL param1);
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, UnkStruct_ov104_02230BE4 *param1);
|
||||
static u32 BattleCastle_GetBattleType(u8 challengeType);
|
||||
u8 BattleCastle_GetOpponentLevel(BattleCastle *battleCastle);
|
||||
void ov104_0223BA24(Party *param0);
|
||||
@@ -153,7 +152,7 @@ u8 BattleCastle_GetOpponentPartySize(u8 challengeType, BOOL param1)
|
||||
return 3;
|
||||
}
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, UnkStruct_ov104_02230BE4 *param1)
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, FieldFrontierDTO *fieldData)
|
||||
{
|
||||
int i;
|
||||
u8 baseSlotID;
|
||||
@@ -165,7 +164,7 @@ FieldBattleDTO *FieldBattleDTO_NewBattleCastle(BattleCastle *battleCastle, UnkSt
|
||||
|
||||
Party_HealAllMembers(battleCastle->opponentsParty);
|
||||
FieldBattleDTO *battleDTO = FieldBattleDTO_New(HEAP_ID_FIELD2, BattleCastle_GetBattleType(battleCastle->challengeType));
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, param1->saveData, param1->mapHeaderID, param1->journalEntry, param1->bagCursor, param1->subscreenCursorOn);
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, fieldData->saveData, fieldData->mapHeaderID, fieldData->journalEntry, fieldData->bagCursor, fieldData->subscreenCursorOn);
|
||||
|
||||
battleDTO->background = BACKGROUND_BATTLE_CASTLE;
|
||||
battleDTO->terrain = TERRAIN_BATTLE_CASTLE;
|
||||
|
||||
@@ -26,7 +26,6 @@
|
||||
#include "string_gf.h"
|
||||
#include "trainer_info.h"
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, UnkStruct_ov104_02230BE4 *param1);
|
||||
static u32 BattleArcade_GetBattleType(u8 challengeType);
|
||||
u8 BattleArcade_GetPokemonLevel(BattleArcade *battleArcade);
|
||||
void ov104_0223C04C(BattleArcade *battleArcade);
|
||||
@@ -157,7 +156,7 @@ u8 BattleArcade_GetOpponentPartySize(u8 challengeType, BOOL includeBothOpponents
|
||||
return ARCADE_PARTY_SIZE_SOLO;
|
||||
}
|
||||
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, UnkStruct_ov104_02230BE4 *param1)
|
||||
FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, FieldFrontierDTO *fieldData)
|
||||
{
|
||||
int i;
|
||||
u8 baseSlotID;
|
||||
@@ -167,7 +166,7 @@ FieldBattleDTO *FieldBattleDTO_NewBattleArcade(BattleArcade *battleArcade, UnkSt
|
||||
u8 opponentPartySize = BattleArcade_GetOpponentPartySize(battleArcade->challengeType, 0);
|
||||
FieldBattleDTO *battleDTO = FieldBattleDTO_New(HEAP_ID_FIELD2, BattleArcade_GetBattleType(battleArcade->challengeType));
|
||||
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, param1->saveData, param1->mapHeaderID, param1->journalEntry, param1->bagCursor, param1->subscreenCursorOn);
|
||||
FieldBattleDTO_InitFromGameState(battleDTO, NULL, fieldData->saveData, fieldData->mapHeaderID, fieldData->journalEntry, fieldData->bagCursor, fieldData->subscreenCursorOn);
|
||||
|
||||
battleDTO->background = BACKGROUND_BATTLE_ARCADE;
|
||||
battleDTO->terrain = TERRAIN_BATTLE_ARCADE;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "struct_decls/struct_0209B75C_decl.h"
|
||||
#include "struct_decls/battle_frontier_decl.h"
|
||||
|
||||
#include "overlay063/ov63_0222D77C.h"
|
||||
#include "overlay063/struct_ov63_0222CCB8.h"
|
||||
@@ -12,21 +12,21 @@
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
#include "overlay104/struct_ov104_0223D8F0.h"
|
||||
|
||||
#include "unk_0209B6F8.h"
|
||||
#include "battle_frontier.h"
|
||||
|
||||
typedef BOOL (*UnkFuncPtr_ov104_022418A8)(UnkStruct_0209B75C *, UnkStruct_ov104_0223C634 *);
|
||||
typedef BOOL (*UnkFuncPtr_ov104_022418A8)(BattleFrontier *, UnkStruct_ov104_0223C634 *);
|
||||
|
||||
static void ov104_0223D898(UnkStruct_0209B75C *param0, UnkStruct_ov104_0223C634 *param1);
|
||||
void ov104_0223D860(UnkStruct_0209B75C *param0, u16 param1, u8 param2, s16 param3[], int param4);
|
||||
void ov104_0223D8C4(UnkStruct_0209B75C *param0);
|
||||
static BOOL ov104_0223D8F0(UnkStruct_0209B75C *param0, UnkStruct_ov104_0223C634 *param1);
|
||||
static void ov104_0223D898(BattleFrontier *param0, UnkStruct_ov104_0223C634 *param1);
|
||||
void ov104_0223D860(BattleFrontier *param0, u16 param1, u8 param2, s16 param3[], int param4);
|
||||
void ov104_0223D8C4(BattleFrontier *param0);
|
||||
static BOOL ov104_0223D8F0(BattleFrontier *param0, UnkStruct_ov104_0223C634 *param1);
|
||||
|
||||
static const UnkFuncPtr_ov104_022418A8 Unk_ov104_022418A8[] = {
|
||||
NULL,
|
||||
ov104_0223D8F0
|
||||
};
|
||||
|
||||
void ov104_0223D860(UnkStruct_0209B75C *param0, u16 param1, u8 param2, s16 param3[], int param4)
|
||||
void ov104_0223D860(BattleFrontier *param0, u16 param1, u8 param2, s16 param3[], int param4)
|
||||
{
|
||||
UnkStruct_ov104_0223C634 *v0;
|
||||
int v1;
|
||||
@@ -41,7 +41,7 @@ void ov104_0223D860(UnkStruct_0209B75C *param0, u16 param1, u8 param2, s16 param
|
||||
}
|
||||
}
|
||||
|
||||
static void ov104_0223D898(UnkStruct_0209B75C *param0, UnkStruct_ov104_0223C634 *param1)
|
||||
static void ov104_0223D898(BattleFrontier *param0, UnkStruct_ov104_0223C634 *param1)
|
||||
{
|
||||
int v0;
|
||||
|
||||
@@ -56,7 +56,7 @@ static void ov104_0223D898(UnkStruct_0209B75C *param0, UnkStruct_ov104_0223C634
|
||||
}
|
||||
}
|
||||
|
||||
void ov104_0223D8C4(UnkStruct_0209B75C *param0)
|
||||
void ov104_0223D8C4(BattleFrontier *param0)
|
||||
{
|
||||
UnkStruct_ov104_0223C634 *v0;
|
||||
int v1;
|
||||
@@ -72,11 +72,11 @@ void ov104_0223D8C4(UnkStruct_0209B75C *param0)
|
||||
}
|
||||
}
|
||||
|
||||
static BOOL ov104_0223D8F0(UnkStruct_0209B75C *param0, UnkStruct_ov104_0223C634 *param1)
|
||||
static BOOL ov104_0223D8F0(BattleFrontier *param0, UnkStruct_ov104_0223C634 *param1)
|
||||
{
|
||||
UnkStruct_ov104_0223D8F0 *v0 = ¶m1->unk_26;
|
||||
UnkStruct_ov63_0222CCB8 v1;
|
||||
FrontierGraphics *v2 = sub_0209B974(param0);
|
||||
FrontierGraphics *v2 = BattleFrontier_GetGraphics(param0);
|
||||
|
||||
if (v0->unk_02[2] > 0) {
|
||||
v0->unk_02[2]--;
|
||||
|
||||
39
src/scrcmd.c
39
src/scrcmd.c
@@ -6,6 +6,7 @@
|
||||
|
||||
#include "constants/accessories.h"
|
||||
#include "constants/battle.h"
|
||||
#include "constants/battle_frontier.h"
|
||||
#include "constants/daycare.h"
|
||||
#include "constants/field/dynamic_map_features.h"
|
||||
#include "constants/field/window.h"
|
||||
@@ -92,6 +93,7 @@
|
||||
|
||||
#include "appearance.h"
|
||||
#include "bag.h"
|
||||
#include "battle_frontier.h"
|
||||
#include "bg_window.h"
|
||||
#include "binoculars_vista_lighthouse.h"
|
||||
#include "camera.h"
|
||||
@@ -220,7 +222,6 @@
|
||||
#include "vars_flags.h"
|
||||
#include "wifi_list.h"
|
||||
|
||||
#include "constdata/const_020F8BE0.h"
|
||||
#include "res/text/bank/mystery_gift_phrase.h"
|
||||
#include "res/text/bank/tough_words.h"
|
||||
|
||||
@@ -702,7 +703,7 @@ static BOOL ScrCmd_CloseSaveInfo(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_Unused_2C3(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_SetMenuXOriginSide(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_SetMenuYOriginSide(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_2C4(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_LaunchBattleFrontierScene(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_2C6(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_IsCommGameCodePlatinum(ScriptContext *ctx);
|
||||
static BOOL ScrCmd_AdvanceEternaGymClock(ScriptContext *ctx);
|
||||
@@ -6568,31 +6569,31 @@ static BOOL ScrCmd_Unused_2C3(ScriptContext *ctx)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
static BOOL ScrCmd_2C4(ScriptContext *ctx)
|
||||
static BOOL ScrCmd_LaunchBattleFrontierScene(ScriptContext *ctx)
|
||||
{
|
||||
void **v0 = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
|
||||
u8 v1 = ScriptContext_ReadByte(ctx);
|
||||
UnkStruct_ov104_02230BE4 *v2 = Heap_AllocAtEnd(HEAP_ID_FIELD2, sizeof(UnkStruct_ov104_02230BE4));
|
||||
void **dataPtr = FieldSystem_GetScriptMemberPtr(ctx->fieldSystem, SCRIPT_MANAGER_PARTY_MANAGEMENT_DATA);
|
||||
u8 sceneID = ScriptContext_ReadByte(ctx);
|
||||
FieldFrontierDTO *fieldData = Heap_AllocAtEnd(HEAP_ID_FIELD2, sizeof(FieldFrontierDTO));
|
||||
|
||||
MI_CpuClear8(v2, sizeof(UnkStruct_ov104_02230BE4));
|
||||
MI_CpuClear8(fieldData, sizeof(FieldFrontierDTO));
|
||||
|
||||
*v0 = v2;
|
||||
*dataPtr = fieldData;
|
||||
|
||||
if (v1 == 5 || v1 == 6) {
|
||||
v2->unk_00 = ctx->fieldSystem->battleTower;
|
||||
if (sceneID == FRONTIER_SCENE_TOWER_CORRIDOR || sceneID == FRONTIER_SCENE_TOWER_MULTI_CORRIDOR) {
|
||||
fieldData->unk_00 = ctx->fieldSystem->battleTower;
|
||||
} else {
|
||||
v2->unk_00 = NULL;
|
||||
fieldData->unk_00 = NULL;
|
||||
}
|
||||
|
||||
v2->options = SaveData_GetOptions(ctx->fieldSystem->saveData);
|
||||
v2->sceneID = v1;
|
||||
v2->saveData = ctx->fieldSystem->saveData;
|
||||
v2->mapHeaderID = ctx->fieldSystem->location->mapId;
|
||||
v2->journalEntry = ctx->fieldSystem->journalEntry;
|
||||
v2->bagCursor = ctx->fieldSystem->bagCursor;
|
||||
v2->subscreenCursorOn = ctx->fieldSystem->battleSubscreenCursorOn;
|
||||
fieldData->options = SaveData_GetOptions(ctx->fieldSystem->saveData);
|
||||
fieldData->sceneID = sceneID;
|
||||
fieldData->saveData = ctx->fieldSystem->saveData;
|
||||
fieldData->mapHeaderID = ctx->fieldSystem->location->mapId;
|
||||
fieldData->journalEntry = ctx->fieldSystem->journalEntry;
|
||||
fieldData->bagCursor = ctx->fieldSystem->bagCursor;
|
||||
fieldData->subscreenCursorOn = ctx->fieldSystem->battleSubscreenCursorOn;
|
||||
|
||||
FieldTask_RunApplication(ctx->task, &Unk_020F8BE0, v2);
|
||||
FieldTask_RunApplication(ctx->task, &gBattleFrontierAppTemplate, fieldData);
|
||||
ScriptContext_Pause(ctx, sub_02041CC8);
|
||||
|
||||
return TRUE;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include "overlay117/struct_ov117_02260440.h"
|
||||
#include "wfc_settings/wfc_settings.h"
|
||||
|
||||
#include "battle_frontier.h"
|
||||
#include "communication_system.h"
|
||||
#include "encounter.h"
|
||||
#include "field_system.h"
|
||||
@@ -31,7 +32,6 @@
|
||||
#include "unk_02038FFC.h"
|
||||
#include "unk_0203D1B8.h"
|
||||
#include "unk_02099604.h"
|
||||
#include "unk_0209BA18.h"
|
||||
#include "vars_flags.h"
|
||||
#include "wifi_overlays.h"
|
||||
|
||||
|
||||
@@ -1,305 +0,0 @@
|
||||
#include "unk_0209B6F8.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "functypes/funcptr_0209B988.h"
|
||||
#include "overlay104/defs.h"
|
||||
#include "overlay104/frontier_graphics.h"
|
||||
#include "overlay104/frontier_script_manager.h"
|
||||
#include "overlay104/struct_ov104_0222E8C8.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
#include "overlay104/struct_ov104_0223C634.h"
|
||||
#include "overlay104/struct_ov104_0223C688.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0.h"
|
||||
#include "overlay104/struct_ov104_0223D3B0_sub1.h"
|
||||
#include "overlay104/struct_ov104_0223D8F0.h"
|
||||
|
||||
#include "game_overlay.h"
|
||||
#include "heap.h"
|
||||
#include "overlay_manager.h"
|
||||
#include "system.h"
|
||||
|
||||
#include "constdata/const_020F8BE0.h"
|
||||
|
||||
FS_EXTERN_OVERLAY(overlay63);
|
||||
FS_EXTERN_OVERLAY(overlay104);
|
||||
FS_EXTERN_OVERLAY(battle_factory_app);
|
||||
|
||||
typedef struct UnkStruct_0209B75C_t {
|
||||
UnkStruct_ov104_02230BE4 *unk_00;
|
||||
ApplicationManager *appMan;
|
||||
void *unk_08;
|
||||
UnkFuncPtr_0209B988 unk_0C;
|
||||
u8 unk_10;
|
||||
FrontierScriptManager *unk_14;
|
||||
FrontierGraphics *graphics;
|
||||
u8 unk_1C;
|
||||
u8 isGraphicsInitialized;
|
||||
u8 unk_1E;
|
||||
u16 unk_20;
|
||||
u8 unk_22;
|
||||
UnkStruct_ov104_0223C688 unk_24[24];
|
||||
UnkStruct_ov104_0223C634 unk_6C[32];
|
||||
UnkStruct_ov104_0223D8F0 unk_78C[32];
|
||||
UnkStruct_ov104_0223D3B0 unk_98C;
|
||||
} UnkStruct_0209B75C;
|
||||
|
||||
static BOOL sub_0209B6F8(ApplicationManager *appMan, int *state);
|
||||
int sub_0209B75C(ApplicationManager *appMan, int *param1);
|
||||
int sub_0209B8A4(ApplicationManager *appMan, int *param1);
|
||||
static void InitFrontierGraphics(UnkStruct_0209B75C *param0);
|
||||
static void FreeFrontierGraphics(UnkStruct_0209B75C *param0);
|
||||
static void LoadBattleFrontierOverlays(void);
|
||||
static void UnloadBattleFrontierOverlays(void);
|
||||
static void sub_0209B8E8(UnkStruct_0209B75C *param0);
|
||||
|
||||
const ApplicationManagerTemplate Unk_020F8BE0 = {
|
||||
sub_0209B6F8,
|
||||
sub_0209B75C,
|
||||
sub_0209B8A4,
|
||||
0xffffffff
|
||||
};
|
||||
|
||||
static BOOL sub_0209B6F8(ApplicationManager *appMan, int *state)
|
||||
{
|
||||
|
||||
LoadBattleFrontierOverlays();
|
||||
|
||||
UnkStruct_0209B75C *v0 = ApplicationManager_NewData(appMan, sizeof(UnkStruct_0209B75C), HEAP_ID_FIELD2);
|
||||
MI_CpuClear8(v0, sizeof(UnkStruct_0209B75C));
|
||||
|
||||
sub_0209B8E8(v0);
|
||||
sub_0209B9EC(v0);
|
||||
|
||||
v0->unk_00 = ApplicationManager_Args(appMan);
|
||||
GF_ASSERT(v0->unk_00 != NULL);
|
||||
|
||||
v0->unk_14 = FrontierScriptManager_New(v0, HEAP_ID_FIELD2, v0->unk_00->sceneID);
|
||||
FrontierScriptManager_Load(v0->unk_14, v0->unk_00->sceneID, 0);
|
||||
|
||||
InitFrontierGraphics(v0);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int sub_0209B75C(ApplicationManager *appMan, int *param1)
|
||||
{
|
||||
UnkStruct_0209B75C *v0 = ApplicationManager_Data(appMan);
|
||||
int v1;
|
||||
|
||||
switch (*param1) {
|
||||
case 0:
|
||||
*param1 = 1;
|
||||
break;
|
||||
case 1:
|
||||
if (v0->unk_22 == 1) {
|
||||
*param1 = 2;
|
||||
break;
|
||||
}
|
||||
|
||||
if (v0->isGraphicsInitialized == 0) {
|
||||
break;
|
||||
}
|
||||
|
||||
if (v0->unk_1E == 1) {
|
||||
*param1 = 5;
|
||||
break;
|
||||
}
|
||||
|
||||
if (ov104_0222E6A8(v0->unk_14) == 1) {
|
||||
if (gSystem.pressedKeys & PAD_BUTTON_B) {
|
||||
*param1 = 2;
|
||||
}
|
||||
}
|
||||
|
||||
if (v0->appMan != NULL) {
|
||||
*param1 = 3;
|
||||
}
|
||||
break;
|
||||
case 2:
|
||||
return 1;
|
||||
case 3:
|
||||
ov104_0223C634(v0->graphics);
|
||||
FreeFrontierGraphics(v0);
|
||||
UnloadBattleFrontierOverlays();
|
||||
*param1 = 4;
|
||||
break;
|
||||
case 4:
|
||||
if (ApplicationManager_Exec(v0->appMan) == 1) {
|
||||
ApplicationManager_Free(v0->appMan);
|
||||
LoadBattleFrontierOverlays();
|
||||
|
||||
if (v0->unk_0C != NULL) {
|
||||
v0->unk_0C(v0->unk_08);
|
||||
}
|
||||
|
||||
if ((v0->unk_08 != NULL) && (v0->unk_10 == 1)) {
|
||||
Heap_Free(v0->unk_08);
|
||||
}
|
||||
|
||||
v0->appMan = NULL;
|
||||
v0->unk_0C = NULL;
|
||||
v0->unk_08 = NULL;
|
||||
|
||||
InitFrontierGraphics(v0);
|
||||
ov104_0223C688(v0->graphics);
|
||||
*param1 = 1;
|
||||
}
|
||||
break;
|
||||
case 5:
|
||||
FreeFrontierGraphics(v0);
|
||||
sub_0209B8E8(v0);
|
||||
*param1 = 6;
|
||||
break;
|
||||
case 6:
|
||||
InitFrontierGraphics(v0);
|
||||
|
||||
if (v0->unk_20 == 0xffff) {
|
||||
FrontierScriptManager_UpdateMessageLoader(v0->unk_14, v0->unk_00->sceneID, HEAP_ID_FIELD2);
|
||||
} else {
|
||||
UnkStruct_ov104_0222E8C8 *v2;
|
||||
|
||||
v2 = ov104_0222E8C8(v0->unk_14, HEAP_ID_FIELD2);
|
||||
FrontierScriptManager_Free(v0->unk_14);
|
||||
|
||||
v0->unk_14 = FrontierScriptManager_New(v0, HEAP_ID_FIELD2, v0->unk_00->sceneID);
|
||||
FrontierScriptManager_Load(v0->unk_14, v0->unk_00->sceneID, v0->unk_20);
|
||||
ov104_0222E8E8(v0->unk_14, v2);
|
||||
}
|
||||
|
||||
v0->unk_1E = 0;
|
||||
*param1 = 1;
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int sub_0209B8A4(ApplicationManager *appMan, int *param1)
|
||||
{
|
||||
UnkStruct_0209B75C *v0 = ApplicationManager_Data(appMan);
|
||||
|
||||
FrontierScriptManager_Free(v0->unk_14);
|
||||
|
||||
FreeFrontierGraphics(v0);
|
||||
ApplicationManager_FreeData(appMan);
|
||||
UnloadBattleFrontierOverlays();
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void InitFrontierGraphics(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
param0->graphics = FrontierGraphics_New(param0);
|
||||
param0->isGraphicsInitialized = TRUE;
|
||||
}
|
||||
|
||||
static void FreeFrontierGraphics(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
FrontierGraphics_Free(param0->graphics);
|
||||
param0->isGraphicsInitialized = FALSE;
|
||||
}
|
||||
|
||||
static void sub_0209B8E8(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
for (v0 = 0; v0 < 24; v0++) {
|
||||
param0->unk_24[v0].unk_00 = 0xffff;
|
||||
}
|
||||
|
||||
MI_CpuClear8(param0->unk_6C, sizeof(UnkStruct_ov104_0223C634) * 32);
|
||||
|
||||
for (v0 = 0; v0 < 32; v0++) {
|
||||
param0->unk_6C[v0].unk_08.unk_04 = 0xffff;
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadBattleFrontierOverlays(void)
|
||||
{
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(overlay104), OVERLAY_LOAD_ASYNC);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(battle_factory_app), OVERLAY_LOAD_ASYNC);
|
||||
Overlay_LoadByID(FS_OVERLAY_ID(overlay63), OVERLAY_LOAD_ASYNC);
|
||||
}
|
||||
|
||||
static void UnloadBattleFrontierOverlays(void)
|
||||
{
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(overlay104));
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(battle_factory_app));
|
||||
Overlay_UnloadByID(FS_OVERLAY_ID(overlay63));
|
||||
}
|
||||
|
||||
UnkStruct_ov104_02230BE4 *sub_0209B970(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return param0->unk_00;
|
||||
}
|
||||
|
||||
FrontierGraphics *sub_0209B974(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return param0->graphics;
|
||||
}
|
||||
|
||||
void *sub_0209B978(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return param0->unk_00->unk_00;
|
||||
}
|
||||
|
||||
void sub_0209B980(UnkStruct_0209B75C *param0, void *param1)
|
||||
{
|
||||
param0->unk_00->unk_00 = param1;
|
||||
}
|
||||
|
||||
void sub_0209B988(UnkStruct_0209B75C *param0, const ApplicationManagerTemplate *param1, void *param2, int param3, UnkFuncPtr_0209B988 param4)
|
||||
{
|
||||
GF_ASSERT(param0->appMan == NULL);
|
||||
param0->appMan = ApplicationManager_New(param1, param2, HEAP_ID_FIELD2);
|
||||
param0->unk_08 = param2;
|
||||
param0->unk_10 = param3;
|
||||
param0->unk_0C = param4;
|
||||
}
|
||||
|
||||
void sub_0209B9B4(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
param0->unk_22 = 1;
|
||||
}
|
||||
|
||||
void sub_0209B9BC(UnkStruct_0209B75C *param0, u16 param1, u16 param2)
|
||||
{
|
||||
param0->unk_00->sceneID = param1;
|
||||
param0->unk_1E = 1;
|
||||
param0->unk_20 = param2;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C688 *sub_0209B9CC(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return param0->unk_24;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D0(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return param0->unk_6C;
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223C634 *sub_0209B9D4(UnkStruct_0209B75C *param0, int param1)
|
||||
{
|
||||
return ¶m0->unk_6C[param1];
|
||||
}
|
||||
|
||||
UnkStruct_ov104_0223D3B0 *sub_0209B9E0(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
return ¶m0->unk_98C;
|
||||
}
|
||||
|
||||
void sub_0209B9EC(UnkStruct_0209B75C *param0)
|
||||
{
|
||||
int v0;
|
||||
|
||||
MI_CpuClear8(¶m0->unk_98C, sizeof(UnkStruct_ov104_0223D3B0_sub1));
|
||||
|
||||
for (v0 = 0; v0 < 8; v0++) {
|
||||
param0->unk_98C.unk_00[v0] = 0xffff;
|
||||
}
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
#include "unk_0209BA18.h"
|
||||
|
||||
#include <nitro.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "constants/heap.h"
|
||||
|
||||
#include "field/field_system.h"
|
||||
#include "overlay104/struct_ov104_02230BE4.h"
|
||||
|
||||
#include "field_system.h"
|
||||
#include "heap.h"
|
||||
#include "save_player.h"
|
||||
|
||||
#include "constdata/const_020F8BE0.h"
|
||||
|
||||
UnkStruct_ov104_02230BE4 *sub_0209BA18(FieldSystem *fieldSystem, void *param1)
|
||||
{
|
||||
UnkStruct_ov104_02230BE4 *v0 = Heap_AllocAtEnd(HEAP_ID_FIELD2, sizeof(UnkStruct_ov104_02230BE4));
|
||||
|
||||
MI_CpuClear8(v0, sizeof(UnkStruct_ov104_02230BE4));
|
||||
|
||||
v0->unk_00 = param1;
|
||||
v0->options = SaveData_GetOptions(fieldSystem->saveData);
|
||||
v0->saveData = fieldSystem->saveData;
|
||||
v0->journalEntry = fieldSystem->journalEntry;
|
||||
v0->bagCursor = fieldSystem->bagCursor;
|
||||
v0->subscreenCursorOn = fieldSystem->battleSubscreenCursorOn;
|
||||
v0->unk_14 = 0;
|
||||
v0->unk_18 = 0;
|
||||
v0->mapHeaderID = fieldSystem->location->mapId;
|
||||
v0->sceneID = 14;
|
||||
v0->fieldSystem = fieldSystem;
|
||||
|
||||
FieldSystem_StartChildProcess(fieldSystem, &Unk_020F8BE0, v0);
|
||||
|
||||
return v0;
|
||||
}
|
||||
Reference in New Issue
Block a user