mirror of
https://github.com/pret/pokeheartgold.git
synced 2026-04-26 08:32:37 -05:00
107 lines
5.1 KiB
C
107 lines
5.1 KiB
C
#ifndef POKEHEARTGOLD_SAVE_GS_PLAYER_MISC_H
|
|
#define POKEHEARTGOLD_SAVE_GS_PLAYER_MISC_H
|
|
|
|
#include "constants/phone_contacts.h"
|
|
#include "constants/pokegear_card.h"
|
|
|
|
#include "save.h"
|
|
#include "unk_0202F370.h"
|
|
|
|
#define MOMS_BALANCE_GET 0
|
|
#define MOMS_BALANCE_SET 1
|
|
#define MOMS_BALANCE_ADD 2
|
|
#define MOMS_BALANCE_SUB 3
|
|
|
|
#define MOMS_BALANCE_MAX 999999
|
|
|
|
typedef struct PhoneContact {
|
|
u8 id;
|
|
} PhoneContact;
|
|
|
|
typedef struct PhoneRematch {
|
|
u16 seeking : 1;
|
|
u16 hasGift : 1;
|
|
u16 unk_0_2 : 6;
|
|
u16 giftItem;
|
|
} PhoneRematch; // size=0x4
|
|
|
|
typedef struct PhoneCallPersistentState {
|
|
PhoneRematch rematches[NUM_PHONE_CONTACTS];
|
|
u16 momGiftQueue[5][2];
|
|
u32 bankBalance; // 140
|
|
u16 unk_144;
|
|
u8 kenjiWaitDays : 7;
|
|
u8 kenjiActive : 1;
|
|
u8 numSafariAreas;
|
|
u8 safariAreas[6];
|
|
u8 callTriggerFlags[2];
|
|
u8 filler_150[4];
|
|
} PhoneCallPersistentState; // size=0x154
|
|
|
|
typedef struct SavePokegear {
|
|
u8 lastUsedApp;
|
|
u8 unk_1;
|
|
u8 unk_2;
|
|
u8 unk_3;
|
|
u32 unlockedSkins : 9;
|
|
u32 unk_4_9 : 9;
|
|
u32 skin : 7;
|
|
u32 registeredCards : 2;
|
|
// mapUnlockLevel
|
|
// 0: only Johto
|
|
// 1: add Routes 26-28, Victory Road, and Indigo Plateau
|
|
// 2: the rest of Kanto
|
|
u32 mapUnlockLevel : 2;
|
|
u32 unk_4_29 : 3;
|
|
MapMarkingsSaveArray unk_8;
|
|
PhoneCallPersistentState callPersistentState; // 4B8
|
|
PhoneContact phoneContacts[NUM_PHONE_CONTACTS]; // 60C
|
|
} SavePokegear; // size=0x658
|
|
|
|
u32 SaveData_Pokegear_sizeof(void);
|
|
SavePokegear *SaveData_Pokegear_Get(SaveData *saveData);
|
|
PhoneCallPersistentState *SaveData_GetPhoneCallPersistentState(SaveData *saveData);
|
|
void SaveData_Pokegear_Init(SavePokegear *pokegear);
|
|
MapMarkingsSaveArray *SavePokegear_GetMapMarkingsArray(SavePokegear *pokegear);
|
|
u8 SavePokegear_GetLastUsedApp(SavePokegear *pokegear);
|
|
void SavePokegear_SetLastUsedApp(SavePokegear *pokegear, u8 appID);
|
|
void SavePokegear_RegisterCard(SavePokegear *pokegear, int card);
|
|
u8 Pokegear_GetRegisteredCardsArray(SavePokegear *pokegear);
|
|
void Pokegear_SetMapUnlockLevel(SavePokegear *pokegear, u8 mapUnlockMenu);
|
|
u8 Pokegear_GetMapUnlockLevel(SavePokegear *pokegear);
|
|
u32 Pokegear_GetSkin(SavePokegear *pokegear);
|
|
void Pokegear_SetSkin(SavePokegear *pokegear, u32 skin);
|
|
u16 Pokegear_GetUnlockedSkins(SavePokegear *pokegear);
|
|
BOOL sub_0202EEA4(SavePokegear *pokegear);
|
|
void sub_0202EEA8(SavePokegear *pokegear, u8 a1);
|
|
void Pokegear_SetRadioCursorCoords(SavePokegear *pokegear, u8 x, u8 y);
|
|
void Pokegear_GetRadioCursorCoords(SavePokegear *pokegear, s16 *px, s16 *py);
|
|
u8 SavePokegear_FindEmptyPhonebookSlot(SavePokegear *pokegear);
|
|
u8 SavePokegear_IsNumberRegistered(SavePokegear *pokegear, u8 contact);
|
|
void SavePokegear_RegisterPhoneNumber(SavePokegear *pokegear, u8 contact);
|
|
PhoneContact *SavePokegear_AllocAndCopyPhonebook(SavePokegear *pokegear, enum HeapID heapID);
|
|
void SavePokegear_SetPhonebookFromBuffer(SavePokegear *pokegear, PhoneContact *contacts, u8 num);
|
|
|
|
void PhoneCallPersistentState_SetCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
void PhoneCallPersistentState_ClearCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
BOOL PhoneCallPersistentState_CheckCallTriggerFlag(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
void PhoneCallPersistentState_PhoneRematches_SetSeeking(PhoneCallPersistentState *callPersistentState, u8 idx, BOOL state);
|
|
BOOL PhoneCallPersistentState_PhoneRematches_IsSeeking(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
void PhoneCallPersistentState_PhoneRematches_GiftItemIdSet(PhoneCallPersistentState *callPersistentState, u8 idx, u16 itemId);
|
|
u16 PhoneCallPersistentState_PhoneRematches_GiftItemIdGet(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
u32 PhoneCallPersistentState_MomSavings_BalanceAction(PhoneCallPersistentState *callPersistentState, int action, u32 operand);
|
|
void sub_0202F198(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
BOOL sub_0202F1B4(PhoneCallPersistentState *callPersistentState, u8 idx);
|
|
void PhoneCallPersistentState_MomGiftQueue_Put(PhoneCallPersistentState *callPersistentState, u16 itemID, u16 quantity);
|
|
void PhoneCallPersistentState_MomGiftQueue_Get(PhoneCallPersistentState *callPersistentState);
|
|
u16 PhoneCallPersistentState_MomGiftQueue_Peek(PhoneCallPersistentState *callPersistentState, u8 idx, u16 *pItemID);
|
|
BOOL PhoneCallPersistentState_MomGiftQueue_IsFull(PhoneCallPersistentState *callPersistentState);
|
|
void PhoneCallPersistentState_BlackBeltKenji_SetActiveFlag(PhoneCallPersistentState *callPersistentState, BOOL flag);
|
|
BOOL PhoneCallPersistentState_BlackBeltKenji_GetActiveFlag(PhoneCallPersistentState *callPersistentState);
|
|
int PhoneCallPersistentState_BlackBeltKenji_GetWaitDays(PhoneCallPersistentState *callPersistentState);
|
|
void sub_0202F294(PhoneCallPersistentState *callPersistentState, int a1);
|
|
void PhoneCallPersistentState_SafariZoneArrangement_Set(PhoneCallPersistentState *callPersistentState, u8 *areas, u8 numAreas);
|
|
u8 *PhoneCallPersistentState_SafariZoneArrangement_AllocAndGet(PhoneCallPersistentState *callPersistentState, u8 *numAreasRet, enum HeapID heapID);
|
|
|
|
#endif // POKEHEARTGOLD_SAVE_GS_PLAYER_MISC_H
|