pokeheartgold/include/launch_application.h
2024-08-31 15:52:01 -04:00

184 lines
8.7 KiB
C

#ifndef POKEHEARTGOLD_FIELD_LAUNCH_APPLICATION_H
#define POKEHEARTGOLD_FIELD_LAUNCH_APPLICATION_H
#include "battle/battle_setup.h"
#include "credits/credits.h"
#include "voltorb_flip/voltorb_flip.h"
#include "alph_puzzle.h"
#include "bag.h"
#include "certificates_app.h"
#include "choose_starter_app.h"
#include "fashion_case.h"
#include "mail.h"
#include "mail_misc.h"
#include "move_relearner.h"
#include "overlay_02.h"
#include "overlay_103.h"
#include "overlay_108.h"
#include "overlay_109.h"
#include "overlay_111.h"
#include "overlay_113.h"
#include "overlay_14.h"
#include "overlay_16.h"
#include "overlay_18.h"
#include "overlay_41.h"
#include "overlay_43.h"
#include "overlay_54.h"
#include "overlay_58.h"
#include "overlay_67.h"
#include "overlay_72.h"
#include "overlay_73.h"
#include "overlay_86.h"
#include "overlay_87.h"
#include "overlay_96.h"
#include "overlay_99.h"
#include "overlay_trainer_card.h"
#include "party_menu.h"
#include "pokemon_types_def.h"
#include "register_hall_of_fame.h"
#include "sav_system_info.h"
#include "save_palpad.h"
#include "save_pokeathlon.h"
#include "save_special_ribbons.h"
#include "save_wifi_history.h"
#include "script.h"
#include "unk_02088288.h"
#include "unk_02092BE8.h"
#include "unk_02097B78.h"
#include "unk_02097D3C.h"
typedef enum NameScreenType {
NAME_SCREEN_PLAYER,
NAME_SCREEN_POKEMON,
NAME_SCREEN_BOX,
NAME_SCREEN_RIVAL,
NAME_SCREEN_UNK4,
NAME_SCREEN_GROUP,
NAME_SCREEN_UNK6,
NAME_SCREEN_UNK7,
} NameScreenType;
typedef enum PocketType {
POCKET_TYPE_ITEMS,
POCKET_TYPE_BERRIES,
} PocketType;
struct UnkStruct_ScrCmd230 {
u8 filler_00[0x30];
u8 unk_30[6];
};
typedef struct UnkStruct_0203E600 {
u8 unk0[0x14];
u8 unk14;
u8 unk15;
u8 unk16;
} UnkStruct_0203E600;
typedef struct UnkStruct_0203E8C8 {
u16 unk0;
u16 unk2;
} UnkStruct_0203E8C8;
static inline void InitUnkStructScrCmd408(UnkOv67Args *data, u16 a1, u16 a2, ScriptContext *ctx) {
MI_CpuClear8(data, sizeof(UnkOv67Args));
data->unk_4 = a1;
data->unk_6 = a2;
data->saveData = ctx->fieldSystem->saveData;
}
static inline PCBoxArgs *PCBoxAppData_New(ScriptContext *ctx) {
PCBoxArgs *ret = AllocFromHeap(HEAP_ID_FIELD, sizeof(PCBoxArgs));
ret->saveData = ctx->fieldSystem->saveData;
ret->unk8 = ScriptReadByte(ctx);
ret->menuInputStatePtr = &ctx->fieldSystem->menuInputState;
return ret;
}
UseMailArgs *UseMail_CreateArgs(FieldSystem *fieldSystem, int n, u8 mailId, HeapID heapId);
ApricornBoxArgs *ApricornBox_LaunchApp(FieldSystem *fieldSystem, int a1);
PalPadArgs *PalPad_LaunchApp(FieldSystem *fieldSystem, SaveData *saveData, HeapID heapId);
BerryPotsArgs *BerryPots_LaunchApp(FieldSystem *fieldSystem);
UnownReportArgs *UnownReport_LaunchApp(FieldSystem *fieldSystem);
PartyMenuArgs *PartyMenu_LaunchApp_Gracidea(FieldSystem *fieldSystem, HeapID heapId, u16 itemId);
PartyMenuArgs *PartyMenu_LaunchApp_Unk2(HeapID heapId, FieldSystem *fieldSystem); // todo: party select screen
PartyMenuArgs *PartyMenu_LaunchApp_InGameTrade(HeapID heapId, FieldSystem *fieldSystem); // todo: party trade screen
PartyMenuArgs *SelectPartyMonAndLearnMove(TaskManager *taskManager, HeapID heapId); // todo: union party select screen
int PartyMenuArgs_GetSlot(struct PartyMenuArgs *partyWork);
int sub_0203E5F8(struct PartyMenuArgs *partyWork);
void sub_0203F570(FieldSystem *fieldSystem, SaveData *saveData);
SafariDecorationArgs *SafariDecoration_LaunchApp(FieldSystem *fieldSystem);
void GeonetGlobe_LaunchApp(FieldSystem *fieldSystem);
void ChooseStarter_LaunchApp(FieldSystem *fieldSystem, ChooseStarterArgs *args);
u16 sub_0203E864(UnkStruct_0203E600 *a0);
u16 sub_0203E600(UnkStruct_0203E600 *a0);
PokemonSummaryArgs *LearnForgetMove_LaunchApp(HeapID heapId, FieldSystem *fieldSystem, u8 partySlot, u16 moveToLearn);
ApricornBoxArgs *sub_0203ED80(FieldSystem *fieldSystem, u32 a1, u16 *a2);
BugContestSwapMonArgs *BugContestSwapMon_LaunchApp(FieldSystem *fieldSystem, Pokemon *a1, Pokemon *a2, BOOL a3);
PokemonSummaryArgs *PokemonSummary_LaunchApp(HeapID heapId, FieldSystem *fieldSystem, u16 partySlot, u16 moveToLearn);
void sub_0203F198(TaskManager *taskManager, u16 *ret, SaveData *saveData, u16 a3, u16 a4);
BOOL AccessoryPortrait_LaunchApp(FieldSystem *fieldSystem, FashionAppData *fashionData);
void sub_0203F0A8(FieldSystem *fieldSystem, UnkOv67Args *unk);
void PCBox_LaunchApp(FieldSystem *fieldSystem, PCBoxArgs *pcBoxData);
void CallTask_WirelessTrade(TaskManager *taskManager);
void sub_0203F4C8(FieldSystem *fieldSystem);
UnkStruct_0203F4F8 *sub_0203F4F8(FieldSystem *fieldSystem);
HallOfFame *HallOfFameShowcase_LaunchApp(FieldSystem *fieldSystem);
void sub_0203F844(FieldSystem *fieldSystem, u16 a1);
BagView *Bag_LaunchApp_WithPocket(FieldSystem *fieldSystem, u8 pocketType);
int BagView_SelectResult(BagView *bagView);
void MoveRelearner_LaunchApp(FieldSystem *fieldSystem, MoveRelearnerArgs *moveRelearner);
BagView *sub_0203E3FC(FieldSystem *fieldSystem, ItemCheckUseData *itemCheckUseData);
void Bag_LaunchApp(FieldSystem *fieldSystem, BagView *bagView);
void PokemonSummary_LearnForget_LaunchApp(FieldSystem *fieldSystem, PokemonSummaryArgs *pokemonSummayArgs);
PokemonSummaryArgs *PokemonSummary_CreateArgs(FieldSystem *fieldSystem, HeapID heapId, int a2);
PartyMenuArgs *TaskManager_LaunchPartyMenu_UnionRoomBattleSelect(TaskManager *taskman, HeapID heapId);
PartyMenuArgs *PartyMenu_LaunchApp_Unk5(FieldSystem *fieldSystem, int partySlot);
void EasyChat_LaunchApp(FieldSystem *fieldSystem, EasyChatArgs *args);
PokegearArgs *PokegearTownMap_LaunchApp(FieldSystem *fieldSystem, int kind);
SafariAreaCustomizerArgs *SafariAreaCustomizer_LaunchApp(FieldSystem *fieldSystem);
PhotoAlbumArgs *PhotoAlbum_LaunchApp(FieldSystem *fieldSystem, int unused, int initialCursorPos);
OptionsMenuArgs *OptionsMenu_LaunchApp(FieldSystem *fieldSystem);
UseMailArgs *sub_0203EFEC(FieldSystem *fieldSystem, u16 a1, u8 partyIdx, u8 mailType, HeapID heapId);
UseMailArgs *sub_0203F050(FieldSystem *fieldSystem, Pokemon *mon, HeapID heapId);
void TrainerCard_LaunchApp(FieldSystem *fieldSystem, TrainerCardAppArgs *a1);
int Pokedex_LaunchApp(FieldSystem *fieldSystem, PokedexArgs *a1);
NintendoWifiConnectArgs *NintendoWifiConnection_LaunchApp(FieldSystem *fieldSystem, u16 a1, u16 a2);
void PokeathlonCourse_LaunchApp(FieldSystem *fieldSystem, PokeathlonCourseArgs *args);
void sub_0203FC68(FieldSystem *fieldSystem, void *args);
void sub_0203FC90(FieldSystem *fieldSystem, void *args);
LegendaryCinematicArgs *LegendaryCinematic_LaunchApp(FieldSystem *a0, UnkStruct_0203FCC4 *a1, u16 a2, u16 a3, HeapID a4);
void LaunchApp_ViewRankings(FieldSystem *fieldSystem, ViewRankingsArgs *args);
PartyMenuArgs *PartyMenu_LaunchApp_Unk1(FieldSystem *fieldSystem, FieldMoveCheckData *fieldMoveCheckData, u8 partySlot);
void CallTask_NamingScreen(TaskManager *taskManager, NameScreenType type, int species, int maxLen, int initPos, const u16 *defaultStr, u16 *retVar);
void sub_0203E960(TaskManager *a0, int a1, UnkStruct_0203E8C8 *a2, u16 *a3, u16 *a4);
void TrainerCardSignature_LaunchApp(FieldSystem *fieldSystem);
void HatchEggInParty(FieldSystem *fieldSystem);
UnkStruct_0203F074 *sub_0203F074(FieldSystem *fieldSystem, HeapID heapId);
CertificatesArgs *Certificates_LaunchApp(FieldSystem *fieldSystem, HeapID heapId, u16 certificateId);
PartyMenuArgs *PartyMenu_LaunchApp_Unk4(HeapID heapId, FieldSystem *fieldSystem, u16 partySlot);
UnkStruct_0203FAB4 *sub_0203FAB4(FieldSystem *fieldSystem, u8 a1, u8 a2, u16 a3, HeapID heapId);
ScratchOffCardsArgs *ScratchOffCards_LaunchApp(FieldSystem *fieldSystem, HeapID heapId);
void sub_0203FC14(FieldSystem *fieldSystem, u16 a1, u16 a2);
PokegearArgs *PokegearPhone_LaunchApp(FieldSystem *fieldSystem);
PokeathlonMedalsArgs *PokeathlonMedals_LaunchApp(FieldSystem *fieldSystem);
PokeathlonEventRecordArgs *PokeathlonEventRecord_LaunchApp(FieldSystem *fieldSystem);
UnkStruct_0203EFA0 *PokeathlonUnk_LaunchApp(FieldSystem *fieldSystem);
PokeathlonCourseRecordArgs *PokeathlonCourseRecord_LaunchApp(FieldSystem *fieldSystem);
AlphPuzzleArgs *AlphPuzzle_LaunchApp(FieldSystem *fieldSystem, u8 puzzle);
void RegisterHallOfFame_LaunchApp(FieldSystem *fieldSystem, RegisterHallOfFameArgs *args);
void Credits_LaunchApp(FieldSystem *fieldSystem, CreditsArgs *args);
void Battle_LaunchApp(FieldSystem *fieldSystem, BattleSetup *battleSetup);
VoltorbFlipArgs *VoltorbFlip_LaunchApp(FieldSystem *fieldSystem, u32 luck);
BOOL Battle_Init(OVY_MANAGER *man, int *state);
BOOL Battle_Main(OVY_MANAGER *man, int *state);
BOOL Battle_Exit(OVY_MANAGER *man, int *state);
void LaunchApplication_DeadstrippedFunction(FieldSystem *fieldSystem);
extern const OVY_MGR_TEMPLATE gOverlayTemplate_UnownReport;
extern const OVY_MGR_TEMPLATE gOverlayTemplate_Battle;
#endif // POKEHEARTGOLD_FIELD_LAUNCH_APPLICATION_H