pokeheartgold/include/pokemon_storage_system.h
Adrienn Tindall ef830ff24c
cleanup encounter.c
Up to Battle Random functions

start cleaning up encounter.c

fix build

fix build again

remove two files from bad rebase

switch fully to battle type constants

rename TRAINER to Trainer

few more funcs

finish cleanup

address some review comments

de-capitalise std_script
2023-09-23 14:48:45 +01:00

62 lines
2.8 KiB
C

#ifndef POKEHEARTGOLD_POKEMON_STORAGE_SYSTEM_H
#define POKEHEARTGOLD_POKEMON_STORAGE_SYSTEM_H
#include "pm_string.h"
#include "pokemon_types_def.h"
#include "constants/pokemon.h"
#include "constants/box_wallpaper.h"
typedef struct PokemonStorageSystem PCStorage;
typedef struct PC_Box {
BoxPokemon mons[MONS_PER_BOX];
u8 unk_FF0[16];
} PC_BOX;
struct PokemonStorageSystem {
/* 00000 */ PC_BOX boxes[NUM_BOXES];
/* 12000 */ int curBox;
/* 12004 */ u32 boxModifiedFlag;
/* 12008 */ u16 box_names[NUM_BOXES][BOX_NAME_LENGTH];
/* 122D8 */ u8 wallpapers[NUM_BOXES];
/* 122EA */ u8 unlockedWallpapers;
/* 122EB */ u8 filler_122EB[0x11];
};
#define BOX_ALL_MODIFIED_FLAG ((u32)((1<<NUM_BOXES)-1))
void PCStorage_GetBoxName(PCStorage *pcStorage, u32 boxno, String *dest);
BOOL PCStorage_PlaceMonInFirstEmptySlotInAnyBox(PCStorage *storage, BoxPokemon *boxMon);
void PCStorage_Init(PCStorage *storage);
u32 PCStorage_sizeof(void);
void PCStorage_InitializeBoxes(PCStorage *storage);
BOOL PCStorage_PlaceMonInBoxFirstEmptySlot(PCStorage* storage, u32 boxno, BoxPokemon *boxMon);
BOOL PCStorage_PlaceMonInBoxByIndexPair(PCStorage* storage, u32 boxno, u32 slotno, BoxPokemon *boxMon);
void PCStorage_SwapMonsInBoxByIndexPair(PCStorage* storage, u32 boxno, u32 from, u32 to);
void PCStorage_DeleteBoxMonByIndexPair(PCStorage* storage, u32 boxno, u32 slotno);
int PCStorage_GetActiveBox(PCStorage *storage);
int PCStorage_FindFirstBoxWithEmptySlot(PCStorage *storage);
BOOL PCStorage_FindFirstEmptySlot(PCStorage* storage, int* boxno_p, int* slotno_p);
int PCStorage_CountEmptySpotsInAllBoxes(PCStorage* storage);
int PCStorage_CountEmptySpotsInBox(PCStorage* storage, u32 boxno);
void PCStorage_SetActiveBox(PCStorage* storage, u32 boxno);
u8 PCStorage_GetBoxWallpaper(PCStorage* storage, u32 boxno);
BOOL PCStorage_IsValidWallpaperId(u8 wallpaperno);
void PCStorage_SetBoxWallpaper(PCStorage* storage, u32 boxno, u8 wallpaperno);
void PCStorage_SetBoxName(PCStorage* storage, u32 boxno, const String* src);
int PCStorage_CountMonsAndEggsInBox(PCStorage* storage, u32 boxno);
int PCStorage_CountMonsInBox(PCStorage* storage, u32 boxno);
int PCStorage_CountMonsInAllBoxes(PCStorage* storage);
u32 PCStorage_GetMonDataByIndexPair(PCStorage* storage, u32 boxno, u32 slotno, int attr, void *ptr);
BoxPokemon *PCStorage_GetMonByIndexPair(PCStorage* storage, u32 boxno, u32 slotno);
void PCStorage_UnlockBonusWallpaper(PCStorage* storage, u32 wallpaper);
BOOL PCStorage_IsBonusWallpaperUnlocked(PCStorage* storage, u32 wallpaper);
void PCStorage_SetBoxModified(PCStorage* storage, u8 boxno);
void PCStorage_SetAllBoxesModified(PCStorage* storage);
void PCStorage_ResetBoxModifiedFlags(PCStorage* storage);
u32 PCStorage_GetBoxModifiedFlags(PCStorage* storage);
u32 sub_02074120(void);
void sub_02074128(PCStorage* storage);
#endif //POKEHEARTGOLD_POKEMON_STORAGE_SYSTEM_H