blob: 0351bd1fa7f0049ff31f61392b2a44069b653ad1 (
plain)
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
|
#ifndef GUARD_PERSONALITY_TEST_H
#define GUARD_PERSONALITY_TEST_H
#include "constants/personality_test.h"
#include "text.h"
// Definitely wrong but need to figure out better structure later
struct FaceData
{
/* 0x0 */ u8 *unk0[5];
};
struct PersonalityAnswer
{
const char * text;
int effect;
};
struct PersonalityQuestion
{
const char * question;
const struct PersonalityAnswer * answers;
const u8 (*effects);
};
struct PersonalityStruct_203B400
{
/* 0x0 */ s32 FrameCounter;
/* 0x4 */ u32 unk4;
/* 0x8 */ s16 StarterID;
/* 0xA */ s16 PartnerID;
u8 padding[0x20 - 0xC];
/* 0x20 */ char PartnerNick[0x14];
/* 0x34 */ u32 TestState;
/* 0x38 */ s32 QuestionCounter;
/* 0x3C */ u32 currQuestionIndex;
/* 0x40 */ u8 playerNature;
/* 0x44 */ s32 NatureTotals[NUM_PERSONALITIES];
/* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS];
/* 0xB0 */ u32 playerGender; // 1 = Female, 0 = Male
u32 unkb4;
u32 unkb8;
u32 unkbc;
};
struct PersonalityStruct_203B404
{
// Size: 0xB8
/* 0x0 */ s16 StarterID;
/* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
u8 unk16;
/* 0x18 */ struct UnkInputStruct *unk18; // something menu related (seems to be some struct)
u8 padding[0x30 - 0x1C];
/* 0x30 */ s16 currPartnerSelection;
s16 unk32;
u8 padding2[0x3A - 0x34];
/* 0x3A */ s16 numPartners;
u8 padding3[0x4C - 0x3C];
u32 unk4C;
/* 0x50 */ struct UnkTextStruct2 *unk50;
/* 0x54 */ struct UnkTextStruct2 unk54[4];
/* 0xB4 */ u8 unkb4[4];
};
void InitializeTestStats(void);
void GenerateNewQuestionOrGender(void);
void CallPromptNewQuestion(void);
void PrintPersonalityTypeDescription(void);
void SetPlayerGender(void);
void RevealPersonality(void);
void RevealStarter(void);
void AdvanceToPickPartnerPrompt(void);
void PromptPickPartner(void);
void AdvanceToPartnerSelection(void);
void CallCreatePartnerSelectionMenu(void);
void PromptForPartnerNickname(void);
void AdvanceToPartnerNickhameScreen(void);
void NicknamePartner(void);
void PrintEndIntroText(void);
void AdvanceToTestEnd(void);
s32 GetValidPartners(void);
void UpdateNatureTotals(void);
void PromptNewQuestion(void);
void PersonalityTest_DisplayPartnerSprite(void);
u16 HandlePartnerSelectionInput(void);
void PersonalityTest_DisplayStarterSprite(void);
void CreatePartnerSelectionMenu(s16);
void sub_803CE6C(void);
void sub_803CEAC(void);
void sub_803CECC(void);
void nullsub_135(void);
#endif
|