Files
af/include/m_private.h
T
2024-05-21 09:21:23 -07:00

174 lines
7.6 KiB
C

#ifndef M_PRIVATE_H
#define M_PRIVATE_H
#include "ultra64.h"
#include "m_mail.h"
#include "m_quest.h"
#include "m_private_internals.h"
#include "m_npc.h"
#include "m_museum.h"
#include "unk.h"
struct PakInfo;
#define mPr_FOREIGN_MAP_COUNT 8
#define mPr_INVENTORY_MAIL_COUNT 10
#define PLAYER_NUM 4
#define mPR_FOREIGNER_NUMBER 4
typedef enum mPr_SEX {
/* 0 */ mPr_SEX_MALE,
/* 1 */ mPr_SEX_FEMALE,
/* 2 */ mPr_SEX_NUM
} mPr_SEX;
typedef enum mPr_ITEM_COND{
/* 0 */ mPr_ITEM_COND_NORMAL,
/* 1 */ mPr_ITEM_COND_PRESENT,
/* 2 */ mPr_ITEM_COND_QUEST,
/* 3 */ mPr_ITEM_COND_NUM
} mPr_ITEM_COND;
#define mPr_GET_ITEM_COND(allCond, slot) (((allCond) >> (((u32)(slot)) << 1)) & mPr_ITEM_COND_NUM)
typedef enum mPr_FACE_TYPE {
/* 0 */ mPr_FACE_TYPE0,
/* 1 */ mPr_FACE_TYPE1,
/* 2 */ mPr_FACE_TYPE2,
/* 3 */ mPr_FACE_TYPE3,
/* 4 */ mPr_FACE_TYPE4,
/* 5 */ mPr_FACE_TYPE5,
/* 6 */ mPr_FACE_TYPE6,
/* 7 */ mPr_FACE_TYPE7,
/* 8 */ mPr_FACE_TYPE_NUM
} mPr_FACE_TYPE;
typedef struct PrivateInfo {
/* 0x000 */ PersonalID_c playerId;
/* 0x010 */ s8 gender;
/* 0x011 */ s8 face;
/* 0x012 */ s8 resetCount;
/* 0x013 */ MuseumRecord museumRecord;
/* 0x014 */ PrivateInventory inventory;
/* 0x040 */ mQst_delivery_c deliveries[mPr_DELIVERY_QUEST_NUM]; /* delivery quests */
/* 0x25C */ QuestErrand errands[mPr_ERRAND_QUEST_NUM]; /* errand quests */
/* 0x3EC */ UNK_TYPE1 unk_3EC[0x2];
/* 0x3EE */ MailHeaderCommon savedMailHeader;
/* 0x40A */ Mail_c mail[mPr_INVENTORY_MAIL_COUNT];
/* 0xA72 */ u16 backgroundTextureId;
/* 0xA74 */ u8 exists;
/* 0xA75 */ u8 hintCount;
/* 0xA76 */ PrivateCloth cloth;
/* 0xA7A */ AnmPersonalID_c storedAnmId;
/* 0xA86 */ PrivateDestiny destiny;
/* 0xA90 */ PrivateBirthday birthday;
/* 0xA94 */ UNK_TYPE1 unk_A94[0x28];
/* 0xABC */ s32 completedFish;
/* 0xAC0 */ s32 completedInsect;
/* 0xAC4 */ UNK_TYPE1 unk_AC4[0x8];
/* 0xACC */ Anmremail remail;
/* 0xADE */ UNK_TYPE1 unk_ADE[0x6];
/* 0xAE4 */ PrivateAnimalMemory animalMemory;
/* 0xAEC */ u8 completeFishInsectFlags;
/* 0xAEF */ UNK_TYPE1 unk_AEF[0x2];
/* 0x108 */ u32 catalogFurniture[30];
/* 0x1B4 */ u32 catalogWallpaper[2];
/* 0x1C0 */ u32 catalogCarpet[2];
/* 0x1CC */ u32 catalogPaper[2];
/* 0x1D4 */ u32 catalogMusic[2];
/* 0xB88 */ mPr_map_info_c maps[mPr_FOREIGN_MAP_COUNT];
/* 0xBC8 */ UNK_TYPE1 unk_BC8[0x8];
} PrivateInfo; // size = 0xBD0
void mPr_ClearPlayerName(char* buf);
void mPr_CopyPlayerName(char* dst, char* src);
s32 mPr_NullCheckPlayerName(char* name);
s32 mPr_CheckCmpPlayerName(char* name0, char* name1);
s32 mPr_GetPlayerName(char* buf, s32 playerNumber);
s32 mPr_NullCheckPersonalID(PersonalID_c* pid);
void mPr_ClearPersonalID(PersonalID_c* pid);
void mPr_ClearAnyPersonalID(PersonalID_c* pid, s32 count);
void mPr_CopyPersonalID(PersonalID_c* dst, PersonalID_c* src);
s32 mPr_CheckCmpPersonalID(PersonalID_c* pid0, PersonalID_c* pid1);
void mPr_ClearPrivateBirthday(PrivateBirthday* birthday);
void mPr_ClearAnimalMemory(PrivateAnimalMemory* memory);
void mPr_ClearPrivateInfo(PrivateInfo* info);
s32 mPr_GetRandomFace(void);
s32 mPr_GetRandomOriginalFace(void);
u16 mPr_GetRandomCloth(u8 sex);
void mPr_SetNowPrivateCloth(void);
void mPr_InitPrivateInfo(PrivateInfo* priv);
void mPr_InitAnyPrivates(PrivateInfo* info, s32 amount);
void mPr_CopyPrivateInfo(PrivateInfo* dst, PrivateInfo* src);
s32 mPr_CheckPrivate(PrivateInfo* priv);
s32 mPr_CheckCmpPrivate(PrivateInfo* priv0, PrivateInfo* priv1);
s32 mPr_GetPrivateIdx(PersonalID_c* pid);
s32 mPr_GetPossessionItemIdx(PrivateInfo* priv, u16 item);
s32 mPr_GetPossessionItemIdxWithCond(PrivateInfo* priv, u16 item, u32 cond);
s32 mPr_GetPossessionItemIdxFGTypeWithCond_cancel(PrivateInfo* priv, u16 fg_type, u32 cond);
s32 mPr_GetPossessionItemIdxItem1Category(PrivateInfo* priv, u8 type);
s32 mPr_GetPossessionItemIdxItem1CategoryWithCond_cancel(PrivateInfo* priv, u8 itemType, u32 cond);
s32 mPr_GetPossessionItemIdxKindWithCond(PrivateInfo* priv, u16 kind_start, u16 kind_end, u32 cond);
s32 mPr_GetPossessionItemSum(PrivateInfo* priv, u16 item);
s32 mPr_GetPossessionItemSumWithCond(PrivateInfo* priv, u16 item, u32 cond);
s32 mPr_GetPossessionItemSumFGTypeWithCond_cancel(PrivateInfo* priv, u16 fg_type, u32 cond);
s32 mPr_GetPossessionItemSumItemCategoryWithCond_cancel(PrivateInfo* priv, u8 itemType, u32 cond);
void mPr_SetItemCollectBit(u16 item);
u16 mPr_DummyPresentToTruePresent(void);
void mPr_SetPossessionItem(PrivateInfo* priv, s32 idx, u16 item, u32 cond);
s32 mPr_SetFreePossessionItem(PrivateInfo* priv, u16 item, u32 cond);
void mPr_AddFirstJobHint(PrivateInfo* priv);
s32 mPr_GetFirstJobHintTime(PrivateInfo* priv);
s32 mPr_CheckFirstJobHint(PrivateInfo* priv);
s16 mPr_GetMoneyPower(void);
s16 mPr_GetGoodsPower(void);
s32 mPr_CheckMuseumAddress(PrivateInfo* priv);
s32 mPr_CheckMuseumInfoMail(PrivateInfo* priv);
s32 mPr_LoadPak_and_SetPrivateInfo2(u8 player, struct PakInfo* pak);
void mPr_ClearMotherMailInfo(PrivateMotherMail* motherMail);
s32 mPr_GetMotherMailPaperType(s32 month, s32 day);
void mPr_GetMotherMail(Mail_c* mail, PersonalID_c* pid, u16 present, s32 stationery, s32 mailNumber);
s32 mPr_SendMotherMailPost(PersonalID_c* pid, s32 playerNumber, u16 present, s32 stationery, s32 mailNumber);
s32 mPr_SendMotherMailDate(PrivateMotherMail* motherMail, lbRTC_time_c* sendTime);
s32 mPr_CheckMotherMailMonthly(PrivateMotherMailData* sendData, s32 month, s32 idx);
s32 mPr_GetMotherMailMonthlyNotSendNum(PrivateMotherMailData* sendData, s32 month);
void mPr_SetMotherMailMonthly(PrivateMotherMailData* sendData, s32 month, s32 idx);
void mPr_GetMotherMailMonthlyData(PrivateMotherMailData* sendData, s32* mailNumber, u16* present,
s32* eventNumber, s32 month, s32 notSendNum);
s32 mPr_GetMotherMailNormalNotSendNum(PrivateMotherMailData* sendData);
void mPr_SetMotherMailNormal(PrivateMotherMailData* sendData, s32 idx);
s32 mPr_CheckMotherMailNormal(PrivateMotherMailData* sendData, s32 idx);
void mPr_GetMotherMailNormalData(PrivateMotherMailData* sendData, s32* mailNumber, u16* present, s32* eventNumber,
s32 noSendNum);
void mPr_SendMotherMailNormal(PrivateMotherMail* motherMail, lbRTC_time_c* sendTime);
void mPr_SendMotherMail(PrivateMotherMail* motherMail, lbRTC_time_c* sendTime);
void mPr_SendMailFromMother(void);
void mPr_GetForeingerAnimalMail(Mail_c* mail, PrivateInfo* priv, PrivateAnimalMemory* animalMemory);
void mPr_SendForeingerAnimalMail(PrivateInfo* priv);
void mPr_StartSetCompleteTalkInfo(void);
void mPr_SetCompleteTalk(u8* flags, s32 type);
s32 mPr_GetCompleteTalk(u8 flags, s32 type);
void mPr_SetFishCompleteTalk(void);
s32 mPr_CheckFishCompleteTalk(u8 playerNumber);
void mPr_SetInsectCompleteTalk(void);
s32 mPr_CheckInsectCompleteTalk(u8 playerNumber);
s32 mPr_GetTalkPermission(u8 flags, s32 type);
s32 mPr_GetFishCompTalkPermission(void);
s32 mPr_GetInsectCompTalkPermission(void);
void mPr_ClearMapInfo(mPr_map_info_c* mapInfo, s32 max);
void mPr_CopyMapInfo(mPr_map_info_c* dst, mPr_map_info_c* src);
void mPr_SetMapThisLand(mPr_map_info_c* mapInfo);
s32 mPr_GetMapFreeIdx(mPr_map_info_c* mapInfo, s32 max);
s32 mPr_GetLandMapIdx(mPr_map_info_c* mapInfo, s32 max, LandInfo* landInfo);
s32 mPr_GetThisLandMapIdx(mPr_map_info_c* map_info, s32 max);
void mPr_PushMapInfo(mPr_map_info_c* map_info, s32 max);
void mPr_SetNewMap(mPr_map_info_c* map_info, s32 max);
void mPr_SetUseMap(mPr_map_info_c* map_info, s32 max);
void mPr_RenewalMapInfo(mPr_map_info_c* mapInfo, s32 max, LandInfo* landInfo);
void mPr_RandomSetPlayerData_title_demo(void);
void mPr_PrintMapInfo_debug(gfxprint* gfxprint);
#endif