diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-02-19 16:01:53 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-19 18:01:53 -0600 |
commit | c754c2a0466d8394c7ffcb3a515199d5703e47be (patch) | |
tree | 42463d69e3642a4ada17614cac4653a02dac9338 /include | |
parent | 8dfd044ef3a6ea8da204265b4560716aa67391d1 (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.h | 22 | ||||
-rw-r--r-- | include/constants/friend_area.h | 6 | ||||
-rw-r--r-- | include/constants/personality_test.h | 12 | ||||
-rw-r--r-- | include/personality_test.h | 95 |
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 |