summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorSeth Barberee <seth.barberee@gmail.com>2021-02-19 16:01:53 -0800
committerGitHub <noreply@github.com>2021-02-19 18:01:53 -0600
commitc754c2a0466d8394c7ffcb3a515199d5703e47be (patch)
tree42463d69e3642a4ada17614cac4653a02dac9338 /include
parent8dfd044ef3a6ea8da204265b4560716aa67391d1 (diff)
Decomp more of personality_test (#27)
* decomp most of personality_test * just gonna move the funcs to src in assembly for now so I can combine stuff * label another func and some cleanup * one func of personality test left in asm * small cleanups and labeling of funcs
Diffstat (limited to 'include')
-rw-r--r--include/constants/emotions.h22
-rw-r--r--include/constants/friend_area.h6
-rw-r--r--include/constants/personality_test.h12
-rw-r--r--include/personality_test.h95
4 files changed, 135 insertions, 0 deletions
diff --git a/include/constants/emotions.h b/include/constants/emotions.h
new file mode 100644
index 0000000..72db73c
--- /dev/null
+++ b/include/constants/emotions.h
@@ -0,0 +1,22 @@
+#ifndef GUARD_CONSTANTS_EMOTIONS_H
+#define GUARD_CONSTANTS_EMOTIONS_H
+
+#define EMOTION_NORMAL 0
+#define EMOTION_HAPPY 2
+#define EMOTION_PAINED 4
+#define EMOTION_ANGRY 6
+#define EMOTION_WORRIED 8
+#define EMOTION_SAD 10
+#define EMOTION_CRYING 12
+#define EMOTION_SHOUTING 14
+#define EMOTION_TEARY_EYE 16
+#define EMOTION_DETERMINED 18
+#define EMOTION_JOYOUS 20
+#define EMOTION_INSPIRED 22
+#define EMOTION_SUPRISED 24
+#define EMOTION_DIZZY 26
+#define EMOTION_SIGH 32
+#define EMOTION_STUNNED 34
+#define MAX_EMOTIONS 40
+
+#endif // GUARD_CONSTANTS_EMOTIONS_H
diff --git a/include/constants/friend_area.h b/include/constants/friend_area.h
index 3d0a9c5..061e1ae 100644
--- a/include/constants/friend_area.h
+++ b/include/constants/friend_area.h
@@ -1,3 +1,7 @@
+#ifndef GUARD_CONSTANTS_FRIEND_AREA_H
+#define GUARD_CONSTANTS_FRIEND_AREA_H
+
+
#define NUM_FRIEND_AREAS 58
#define NONE 0
@@ -58,3 +62,5 @@
#define SOUTHERN_ISLAND 55
#define ENCLOSED_ISLAND 56
#define FINAL_ISLAND 57
+
+#endif
diff --git a/include/constants/personality_test.h b/include/constants/personality_test.h
new file mode 100644
index 0000000..c711b3c
--- /dev/null
+++ b/include/constants/personality_test.h
@@ -0,0 +1,12 @@
+#ifndef GUARD_CONSTANTS_PERSONALITY_TEST_H
+#define GUARD_CONSTANTS_PERSONALITY_TEST_H
+
+#define NUM_PARTNERS 10
+#define NUM_PERSONALITIES 13
+#define NUM_QUIZ_QUESTIONS 55
+#define MAX_ASKED_QUESTIONS 8
+
+#define MALE 0
+#define FEMALE 1
+
+#endif
diff --git a/include/personality_test.h b/include/personality_test.h
new file mode 100644
index 0000000..49f6c6b
--- /dev/null
+++ b/include/personality_test.h
@@ -0,0 +1,95 @@
+#ifndef GUARD_PERSONALITY_TEST_H
+#define GUARD_PERSONALITY_TEST_H
+
+#include "constants/personality_test.h"
+
+struct unkData
+{
+ u8 unk0[24];
+};
+
+extern const struct unkData gUnknown_80F4244;
+
+struct PersonalityStruct_203B400
+{
+ s32 FrameCounter;
+ u32 unk4;
+ /* 0x8 */ s16 StarterID;
+ /* 0xA */ s16 PartnerID;
+ u8 padding[0x20 - 0xC];
+ s32 unk20;
+ u8 padding2[0x34 - 0x24];
+ /* 0x34 */ u32 TestState;
+ /* 0x38 */ s32 QuestionCounter;
+ /* 0x3C */ u32 currQuestionIndex;
+ /* 0x40 */ u8 playerNature;
+ u8 padding3[3];
+ /* 0x44 */ s32 NatureTotals[13];
+ /* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS];
+ /* 0xB0 */ u32 playerGender; // 1 = Female, 0 = Male
+ u32 unkb4;
+ u32 unkb8;
+ u32 unkbc;
+};
+extern struct PersonalityStruct_203B400 *gUnknown_203B400;
+
+struct PersonalitySubStruct
+{
+ u8 unkb4;
+ u8 unkb5;
+ u8 unkb6;
+ u8 unkb7;
+};
+
+struct PersonalityStruct_203B404
+{
+ // Size: 0xB8
+ /* 0x0 */ s16 StarterID;
+ /* 0x2 */ s16 PartnerArray[NUM_PARTNERS];
+ u8 unk16;
+ u8 unk17;
+ /* 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 unkData *unk50;
+ /* 0x54 */ struct unkData unk54[4];
+ /* 0xB4 */ struct PersonalitySubStruct sub;
+};
+extern struct PersonalityStruct_203B404 *gUnknown_203B404;
+
+
+
+
+void InitializeTestStats(void);
+void GenerateNewQuestionOrGender(void);
+void CallPromptNewQuestion(void);
+void PrintPersonalityTypeDescription(void);
+void SetPlayerGender(void);
+void RevealPersonality(void);
+void RevealStarter(void);
+void sub_803CA8C(void);
+void PromptPickPartner(void);
+void sub_803CAD4(void);
+void CallCreatePartnerSelectionMenu(void);
+void PromptForPartnerNickname(void);
+void sub_803CB5C(void);
+void sub_803CB7C(void);
+void PrintEndIntroText(void);
+void sub_803CBE4(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_803CECC(void);
+void nullsub_135(void);
+
+
+#endif