pmd-red/include/personality_test.h
Seth Barberee 0d3b11e81a
Data work and decomp some mail/pelipper board (#54)
* data work and decomp some mail/pelipper board

* resuce -> rescue

* label more data
2021-09-24 00:49:43 -05:00

97 lines
2.5 KiB
C

#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;
};
EWRAM_DATA struct PersonalityStruct_203B400 *gUnknown_203B400;
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];
};
EWRAM_DATA 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 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