mirror of
https://github.com/pret/pokeplatinum.git
synced 2026-03-21 17:55:13 -05:00
116 lines
4.0 KiB
C
116 lines
4.0 KiB
C
#ifndef POKEPLATINUM_FIELD_BATTLE_DATA_TRANSFER_H
|
|
#define POKEPLATINUM_FIELD_BATTLE_DATA_TRANSFER_H
|
|
|
|
#include "constants/battle.h"
|
|
#include "generated/evolution_methods.h"
|
|
#include "generated/map_headers.h"
|
|
|
|
#include "struct_defs/chatot_cry.h"
|
|
#include "struct_defs/trainer.h"
|
|
#include "struct_defs/wi_fi_history.h"
|
|
|
|
#include "field/field_system_decl.h"
|
|
|
|
#include "bag.h"
|
|
#include "game_options.h"
|
|
#include "game_records.h"
|
|
#include "journal.h"
|
|
#include "pal_pad.h"
|
|
#include "party.h"
|
|
#include "pc_boxes.h"
|
|
#include "pokedex.h"
|
|
#include "poketch.h"
|
|
#include "rtc.h"
|
|
#include "savedata.h"
|
|
#include "trainer_info.h"
|
|
|
|
typedef struct BattleRecords {
|
|
int totalTurns;
|
|
int totalFainted;
|
|
int totalDamage;
|
|
} BattleRecords;
|
|
|
|
typedef struct CaptureAttempt {
|
|
int resultMask;
|
|
u16 ballsThrown;
|
|
u16 species;
|
|
u8 gender;
|
|
u8 language;
|
|
u8 metGame;
|
|
u8 hasNickname;
|
|
u16 nickname[11];
|
|
u16 pokeballItemID;
|
|
} CaptureAttempt;
|
|
|
|
typedef struct FieldBattleDTO {
|
|
u32 battleType;
|
|
Party *parties[MAX_BATTLERS];
|
|
int resultMask;
|
|
int trainerIDs[MAX_BATTLERS];
|
|
Trainer trainer[MAX_BATTLERS];
|
|
TrainerInfo *trainerInfo[MAX_BATTLERS];
|
|
Bag *bag;
|
|
BagCursor *bagCursor;
|
|
Pokedex *pokedex;
|
|
PCBoxes *pcBoxes;
|
|
ChatotCry *chatotCries[MAX_BATTLERS];
|
|
Poketch *poketch;
|
|
WiFiHistory *wiFiHistory;
|
|
Options *options;
|
|
CaptureAttempt *captureAttempt;
|
|
BattleRecords battleRecords;
|
|
GameRecords *records;
|
|
JournalEntry *journalEntry;
|
|
PalPad *palPad;
|
|
enum BattleBackground background;
|
|
enum BattleTerrain terrain;
|
|
int mapLabelTextID;
|
|
int mapHeaderID;
|
|
enum TimeOfDay timeOfDay;
|
|
enum EvolutionMethod mapEvolutionMethod;
|
|
BOOL visitedContestHall;
|
|
BOOL metBebe;
|
|
int caughtBattlerIdx;
|
|
int fieldWeather;
|
|
int leveledUpMonsMask;
|
|
u32 systemVersion[MAX_BATTLERS];
|
|
u32 battleStatusMask;
|
|
int countSafariBalls;
|
|
u32 rulesetMask;
|
|
void *unk_170;
|
|
u32 seed;
|
|
int unk_178[MAX_BATTLERS];
|
|
u16 networkID;
|
|
u8 unk_18A;
|
|
u8 dummy18B;
|
|
int totalTurnsElapsed;
|
|
u8 *subscreenCursorOn;
|
|
u8 unk_194[MAX_BATTLERS];
|
|
SaveData *saveData;
|
|
u32 unk_19C;
|
|
} FieldBattleDTO;
|
|
|
|
FieldBattleDTO *FieldBattleDTO_New(enum HeapID heapID, u32 battleType);
|
|
FieldBattleDTO *FieldBattleDTO_NewSafari(enum HeapID heapID, int countSafariBalls);
|
|
FieldBattleDTO *FieldBattleDTO_NewPalPark(enum HeapID heapID, int countParkBalls);
|
|
FieldBattleDTO *FieldBattleDTO_NewCatchingTutorial(enum HeapID heapID, const FieldSystem *fieldSystem);
|
|
void FieldBattleDTO_Free(FieldBattleDTO *dto);
|
|
void FieldBattleDTO_AddPokemonToBattler(FieldBattleDTO *dto, Pokemon *src, int battler);
|
|
void FieldBattleDTO_CopyPartyToBattler(FieldBattleDTO *dto, const Party *src, int battler);
|
|
void FieldBattleDTO_CopyTrainerInfoToBattler(FieldBattleDTO *dto, const TrainerInfo *src, int battler);
|
|
void FieldBattleDTO_CopyChatotCryToBattler(FieldBattleDTO *dto, const ChatotCry *src, int battler);
|
|
void FieldBattleDTO_InitFromGameState(FieldBattleDTO *dto, const FieldSystem *fieldSystem, SaveData *save, enum MapHeader mapHeaderID, JournalEntry *journalEntry, BagCursor *bagCursor, u8 *subscreenCursorOn);
|
|
void FieldBattleDTO_Init(FieldBattleDTO *dto, const FieldSystem *fieldSystem);
|
|
void FieldBattleDTO_InitWithNormalizedMonLevels(FieldBattleDTO *dto, const FieldSystem *fieldSystem, int level);
|
|
void FieldBattleDTO_InitWithPartyOrder(FieldBattleDTO *dto, const FieldSystem *fieldSystem, const Party *party, const u8 *partyOrder);
|
|
void FieldBattleDTO_InitWithPartyOrderFromSave(FieldBattleDTO *dto, const FieldSystem *fieldSystem, const u8 *partyOrder);
|
|
void FieldBattleDTO_UpdateFieldSystem(const FieldBattleDTO *dto, FieldSystem *fieldSystem);
|
|
void FieldBattleDTO_UpdatePokedex(const FieldBattleDTO *dto, FieldSystem *fieldSystem);
|
|
void FieldBattleDTO_SetWaterTerrain(FieldBattleDTO *dto);
|
|
BOOL CheckPlayerWonBattle(u32 battleResult);
|
|
BOOL CheckPlayerLostBattle(u32 battleResult);
|
|
BOOL CheckPlayerDidNotCaptureWildMon(u32 battleResult);
|
|
void FieldBattleDTO_CopyPlayerInfoToTrainerData(FieldBattleDTO *dto);
|
|
|
|
#endif // POKEPLATINUM_FIELD_BATTLE_DATA_TRANSFER_H
|