1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
|
#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"
#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, void* 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
|