diff options
| author | Yanis002 <35189056+Yanis002@users.noreply.github.com> | 2025-07-01 00:47:38 +0200 |
|---|---|---|
| committer | Yanis002 <35189056+Yanis002@users.noreply.github.com> | 2025-07-01 00:47:38 +0200 |
| commit | cc90ddb8ee3911bfbb50f5fe275827af11f54a90 (patch) | |
| tree | 2ab537ceeabaf83a55ef6b93af02654f6839de66 /include | |
| parent | bc0f222f68b170111c96a0e1997e084019123c2d (diff) | |
| parent | cfb0123c4a582a7cd28e1a49e7642cba0260cc6f (diff) | |
Merge remote-tracking branch 'upstream/main' into displaytext
Diffstat (limited to 'include')
| -rw-r--r-- | include/DTCM/UnkStruct_027e103c.hpp | 7 | ||||
| -rw-r--r-- | include/Item/ItemManager.hpp | 6 | ||||
| -rw-r--r-- | include/Message/BMG.hpp | 208 | ||||
| -rw-r--r-- | include/Message/MessageManager.hpp | 78 | ||||
| -rw-r--r-- | include/Message/MsgProc.hpp | 186 | ||||
| -rw-r--r-- | include/Player/LinkStateCutscene.hpp | 2 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_0202e1a0.hpp | 1 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_02032f0c.hpp | 112 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_02035064.hpp | 36 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_02037750.hpp | 65 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_02038aa0.hpp | 125 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_020397f8.hpp | 168 | ||||
| -rw-r--r-- | include/Unknown/UnkStruct_0203dae0.hpp | 115 | ||||
| -rw-r--r-- | include/Unknown/func_ov000_020d0644.hpp | 19 |
14 files changed, 1026 insertions, 102 deletions
diff --git a/include/DTCM/UnkStruct_027e103c.hpp b/include/DTCM/UnkStruct_027e103c.hpp index 0538e54e..02f58f4c 100644 --- a/include/DTCM/UnkStruct_027e103c.hpp +++ b/include/DTCM/UnkStruct_027e103c.hpp @@ -57,7 +57,7 @@ struct UnkStruct_027e103c { void func_ov000_020cf3f0(); void func_ov000_020cf404(); void func_ov000_020cf414(); - void func_ov000_020cf42c(); + bool func_ov000_020cf42c(); bool func_ov000_020cf444(); bool func_ov000_020cf488(); bool func_ov000_020cf4bc(); @@ -80,7 +80,10 @@ struct UnkStruct_027e103c { unk8 func_ov000_020cfab0(); void func_ov000_020cfabc(s32 param1, s32 param2); void func_ov000_020cfae8(s32 param1, s32 param2); - void func_ov000_020cfb20(unk32 param1); + + //! TODO: find out if the type is always `UnkStruct_020397f8*` + void func_ov000_020cfb20(void *); + void func_ov000_020cfb38(); void func_ov000_020cfb48(); void func_ov000_020cfb58(); diff --git a/include/Item/ItemManager.hpp b/include/Item/ItemManager.hpp index 34d5a636..3de57def 100644 --- a/include/Item/ItemManager.hpp +++ b/include/Item/ItemManager.hpp @@ -8,7 +8,8 @@ extern "C" { #include "nds/math.h"
#include "types.h"
-#include "Actor/Navi/ActorNaviBase.hpp"
+#include "Actor/Navi/ActorNavi.hpp"
+#include "DTCM/UnkStruct_027e0d38.hpp"
#include "Item/Item.hpp"
#include "Player/EquipItem.hpp"
#include "Render/ModelRender.hpp"
@@ -186,6 +187,9 @@ public: // Rupees
s32 GetMaxRupees() const;
void GiveRupees(s32 amount, bool param2);
+ inline u16 GetNumRupees(void) {
+ return this->mNumRupees;
+ }
// Potion
void SetPotion(u32 index, Potion potion);
diff --git a/include/Message/BMG.hpp b/include/Message/BMG.hpp new file mode 100644 index 00000000..c3d4479d --- /dev/null +++ b/include/Message/BMG.hpp @@ -0,0 +1,208 @@ +#pragma once + +#include "System/SysNew.hpp" +#include "global.h" +#include "types.h" + +#define BMG_MAGIC "MESGbmg1" +#define BMG_GET_INF1(pGroups, flags) ((pGroups)->entries[(flags) >> 0x10].func_02037258((flags) & 0xFFFF)) +#define BMG_GET_MSG_OFFSET(pGroups, flags) (BMG_GET_INF1((pGroups), (flags))->offset) +#define BMG_GET_MSG_ADDR(pGroups, flags) \ + ((u32) (pGroups)->entries[(flags) >> 0x10].pDAT1 + (BMG_GET_MSG_OFFSET((pGroups), (flags)) & ~1)) + +enum BMGTag { + /* "INF1" */ BMG_TAG_INF1 = '1FNI', + /* "FLW1" */ BMG_TAG_FLW1 = '1WLF', + /* "FLI1" */ BMG_TAG_FLI1 = '1ILF', + /* "DAT1" */ BMG_TAG_DAT1 = '1TAD', + /* "MID1" */ BMG_TAG_MID1 = '1DIM', + /* "STR1" */ BMG_TAG_STR1 = '1RTS', +}; + +enum BMGEncoding { + /* 1 */ BMG_ENCODING_CP1252 = 1, + /* 2 */ BMG_ENCODING_UTF16_BE, + /* 3 */ BMG_ENCODING_SHIFT_JIS, + /* 4 */ BMG_ENCODING_UTF8, + /* 5 */ BMG_ENCODING_MAX +}; + +typedef enum BMGFileIndex { + /* 0 */ BMG_FILE_INDEX_SYSTEM, + /* 1 */ BMG_FILE_INDEX_REGULAR, + /* 2 */ BMG_FILE_INDEX_BATTLE, + /* 3 */ BMG_FILE_INDEX_TEST, + /* 4 */ BMG_FILE_INDEX_DEFAULT, + /* 5 */ BMG_FILE_INDEX_SEA, + /* 6 */ BMG_FILE_INDEX_KAITEI, + /* 7 */ BMG_FILE_INDEX_MAIN_ISL, + /* 8 */ BMG_FILE_INDEX_BRAVE, + /* 9 */ BMG_FILE_INDEX_FLAME, + /* 10 */ BMG_FILE_INDEX_WIND, + /* 11 */ BMG_FILE_INDEX_FROST, + /* 12 */ BMG_FILE_INDEX_POWER, + /* 13 */ BMG_FILE_INDEX_WISDOM, + /* 14 */ BMG_FILE_INDEX_GHOST, + /* 15 */ BMG_FILE_INDEX_HIDARI, + /* 16 */ BMG_FILE_INDEX_SENNIN, + /* 17 */ BMG_FILE_INDEX_SHIP, + /* 18 */ BMG_FILE_INDEX_COLLECT, + /* 19 */ BMG_FILE_INDEX_MAINSELECT, + /* 20 */ BMG_FILE_INDEX_FIELD, + /* 21 */ BMG_FILE_INDEX_WISDOM_DNGN, + /* 22 */ BMG_FILE_INDEX_DEMO, + /* 23 */ BMG_FILE_INDEX_BATTLECOMMON, + /* 24 */ BMG_FILE_INDEX_BOSSLAST1, + /* 25 */ BMG_FILE_INDEX_BOSSLAST3, + /* 26 */ BMG_FILE_INDEX_TORII, + /* 27 */ BMG_FILE_INDEX_MYOU, + /* 28 */ BMG_FILE_INDEX_KOJIMA1, + /* 29 */ BMG_FILE_INDEX_KOJIMA2, + /* 30 */ BMG_FILE_INDEX_KOJIMA5, + /* 31 */ BMG_FILE_INDEX_KOJIMA3, + /* 32 */ BMG_FILE_INDEX_STAFF, + /* 33 */ BMG_FILE_INDEX_KAITEI_F, + /* 34 */ BMG_FILE_INDEX_MAX +} BMGFileIndex; + +struct SectionBase { + /* 00 */ u32 tag; // "INF1", "DAT1", ... + /* 04 */ u32 size; // the size of the section + /* 08 */ +}; + +struct BMGHeader { + /* 00 */ char magic[8]; // always "MESGbmg1" + /* 08 */ u32 fileSize; // the size of the BMG file + /* 0c */ u32 numSections; // the number of sections (INF1, DAT1, ...) + /* 10 */ u8 encoding; // see `BMGEncoding` + /* 11 */ u8 unk_11[0xF]; // alignment padding? + /* 20 */ +}; + +struct EntryINF1 { + /* 00 */ u32 offset; // relative to the end of the DAT1 header + /* 04 */ u8 mUnk_04; // flags/attributes? (+0x04 to +0x06) + /* 05 */ u8 mUnk_05; + /* 06 */ u8 mUnk_06; + /* 07 */ u8 mUnk_07; + /* 08 */ +}; + +struct SectionINF1 { + /* 00 */ SectionBase base; + /* 08 */ u16 numEntries; + /* 0a */ u16 entrySize; + /* 0c */ u16 groupId; + /* 0e */ u8 colorId; + /* 0f */ u8 mUnk_0F[0x1]; // alignment padding? + /* 10 */ EntryINF1 *entries; + /* 14 */ +}; + +enum InstrType { + /* 1 */ FLW1_TYPE_SHOW_MSG = 1, + /* 2 */ FLW1_TYPE_BRANCH = 2, + /* 3 */ FLW1_TYPE_EVENT = 3, + /* 4 */ +}; + +struct InstrShowMsg { + /* 01 */ u8 bmgFileIndex; // index into sBMGFiles + /* 02 */ u16 msgIndex; // index of INF1 entry + /* 04 */ s16 nextIndex; // index of FLW1 entry, 0xFFFF stops the conversation + /* 06 */ s16 nextBMGFileIndex; // index into sBMGFiles + /* 08 */ +}; + +struct InstrBranch { + /* 01 */ u8 mUnk_01; + /* 02 */ u16 funcIndex; // index of the query function to run + /* 04 */ u16 funcArg; // the argument to use in the function + /* 06 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. + /* 08 */ +}; + +struct InstrEvent { + /* 01 */ u8 funcIndex; // index of the query function to run + /* 02 */ u16 flwEntry; // the index of the second section table to be used next in the conversation. + /* 04 */ u32 funcArg; // the argument to use in the function + /* 08 */ +}; + +struct FLW1Instr { + /* 00 */ u8 type; // see InstrType + /* 01 */ union { + InstrShowMsg showMsg; + InstrBranch branch; + InstrEvent event; + }; + /* 09 */ +}; + +struct SectionFLW1 { + /* 00 */ SectionBase base; + /* 04 */ u16 numInstructions; + /* 08 */ u16 numLabels; + /* 0c */ u32 mUnk_0c; // always zero? + /* 10 */ FLW1Instr *instructions; + /* 14 */ s16 *flwEntries; + /* 18 */ s8 *bmgFileIndices; + /* 1c */ +}; + +struct EntryFLI1 { + /* 00 */ u32 msgFlowID; + /* 04 */ u32 msgFlowNodeIndex; + /* 08 */ +}; + +struct SectionFLI1 { + /* 00 */ SectionBase base; + /* 04 */ u16 numEntries; + /* 08 */ u16 entrySize; + /* 0c */ u32 mUnk_0c; // always zero? + /* 10 */ EntryFLI1 *entries; + /* 14 */ +}; + +struct EntryDAT1 { + /* 00 */ char *text; + /* 04 */ +}; + +struct SectionDAT1 { + /* 00 */ SectionBase base; + /* 08 */ EntryDAT1 *entries; + /* 0c */ +}; + +struct BMGFileInfo { + /* 00 */ BMGHeader *pHeader; // pointer to the file's header + /* 04 */ SectionINF1 *pINF1; // pointer to the data informations (INF -> informations) + /* 08 */ SectionFLW1 *pFLW1; // pointer to the message flow data (FLW -> flow) + /* 0c */ SectionFLI1 *pFLI1; // pointer to the message flow index table (FLI -> flow index table) + /* 10 */ SectionDAT1 *pDAT1; // pointer to the data (DAT -> data) + /* 14 */ BMGHeader *mUnk_14; // same as pHeader (?) + /* 18 */ s16 mUnk_18; // stores `func_020372f0`->param_3 value (currently undetermined purpose) + /* 1a */ s16 groupId; // stores the group id + /* 1c */ + + void func_020371b4(); + u16 func_020371c8(u32 *pFile, s16 unk_18); + EntryINF1 *func_02037258(u16 param_2); + u16 func_0203728c(unk32 param_2); +}; + +class BMGGroups : public SysObject { +public: + /* 00 */ BMGFileInfo *entries; // accessed with `groupId` + /* 04 */ s32 numEntries; + /* 08 */ + + BMGGroups(); + ~BMGGroups(); + void func_020372f0(BMGFileIndex eIndex, s16 unk_18); + void func_020373b4(s16 unk_18); + u32 func_020373ec(unk32 param_2); +}; diff --git a/include/Message/MessageManager.hpp b/include/Message/MessageManager.hpp new file mode 100644 index 00000000..ed4ddcd2 --- /dev/null +++ b/include/Message/MessageManager.hpp @@ -0,0 +1,78 @@ +#pragma once + +#include "global.h" +#include "types.h" + +#include "Debug/DebugHierarchy.hpp" +#include "Message/BMG.hpp" +#include "Message/MsgProc.hpp" +#include "System/SysNew.hpp" +#include "nds/math.h" + +#include "Unknown/UnkStruct_0202e1a0.hpp" +#include "Unknown/UnkStruct_02032f0c.hpp" +#include "Unknown/UnkStruct_02035064.hpp" +#include "Unknown/UnkStruct_02037750.hpp" +#include "Unknown/UnkStruct_02038aa0.hpp" +#include "Unknown/UnkStruct_020397f8.hpp" +#include "Unknown/UnkStruct_0203dae0.hpp" + +class MessageManager : public SysObject { +public: + /* 0x00 */ u8 mUnk_00[2]; + /* 0x02 */ u8 mUnk_02; + /* 0x03 */ u8 mUnk_03; + /* 0x04 */ u8 mUnk_04; // halts actors and hides the item menu + /* 0x05 */ u8 mUnk_05; + /* 0x06 */ unk16 mUnk_06; + /* 0x08 */ UnkStruct_020397f8 *mUnk_08; + /* 0x0C */ u8 mUnk_0c; + /* 0x0C */ u8 mUnk_0d; + /* 0x0C */ unk16 mUnk_0e; + /* 0x10 */ unk16 mUnk_10; + /* 0x10 */ unk16 mUnk_12; + /* 0x14 */ BMGGroups *pGroups; + /* 0x18 */ UnkStruct_020386d8 *mUnk_18[2]; + /* 0x20 */ UnkStruct_02037750 *mUnk_20[2]; + /* 0x28 */ UnkStruct_02038aa0 *mUnk_28[6]; //! TODO: is it the right type? + /* 0x40 */ UnkStruct_020397f8 *mUnk_40[2]; // is array size 6? + /* 0x48 */ DebugHierarchy *mDebug; + /* 0x4C */ + + static void func_0203643c(u32 *param_1, MessageManager *param_2, u32 param_3); + void func_02036490(unk32 param_2, unk32 param_3, unk32 param_4); + void func_0203665c(void); + MessageManager(); + ~MessageManager(); + UnkStruct_020397f8 *func_020366c4(void); + UnkStruct_020397f8 *func_02036700(void); + UnkStruct_020386d8 *func_0203673c(void); + bool func_02036770(u32 param_2); + unk32 func_02036798(void); + bool func_020367dc(int param_2); + bool MessageManager::func_020367ec(void); + bool func_02036808(void); + bool func_02036824(void); + bool func_02036850(void); + void func_02036888(UnkStruct_020386d8 *param_2); + bool func_020368f4(UnkStruct_02037750 *param_2); + void func_0203690c(unk32 param_2, unk32 param_3, unk32 param_4); + void func_02036bbc(void); + void func_02036c50(unk32 param_2); + void func_02036ca4(unk32 param_2); + bool func_02036ce4(UnkStruct_020386d8 *param_2, unk32 param_3); + bool func_02036d30(UnkStruct_02037750 *param_2); + bool func_02036d4c(UnkStruct_02037750 *param_2); + void func_02036d6c(void); + UnkStruct_02038aa0 *func_02036da8(u32 param_2, s16 *param_3); + void func_02036edc(u32 param_2, u8 param_3); + UnkStruct_020397f8 *func_02036f68(u32 param_2, u8 *param_3); + UnkStruct_020386d8 *func_020370d0(unk32 param_2, unk32 param_3); + UnkStruct_020386d8 *func_020370e8(unk32 param_2, unk16 param_3, unk16 param_4, unk32 param_5); + void func_02037158(UnkSubClass1_02256FF8 *param_2); + UnkStruct_02038aa0 *func_02037178(UnkSubClass1_02256FF8 *param_2); + + void func_ov004_021069c4(void); +}; + +extern MessageManager gMessageManager; diff --git a/include/Message/MsgProc.hpp b/include/Message/MsgProc.hpp new file mode 100644 index 00000000..bfdbc86b --- /dev/null +++ b/include/Message/MsgProc.hpp @@ -0,0 +1,186 @@ +#pragma once + +#include "Message/BMG.hpp" +#include "System/SysNew.hpp" +#include "Unknown/func_ov000_020d0644.hpp" +#include "nds/math.h" + +// temp +#define UNK_TYPE void + +#define ESCAPE_SEQUENCE_MARKER '\x1A' +#define CHECK_UNK_FLAGS(val) (((data_02056be4[data_027e077c.mUnk_0] & (val)) != 0)) + +typedef struct UnkStruct_0203b264 { + /* 0 */ u8 mUnk_0[0x4]; + /* 4 */ u16 *mUnk_4; + /* 8 */ +} UnkStruct_0203b264; + +class UnkStruct_020397f8_410 { +public: + /* 0x00 */ struct UnkStruct_020397f8 *mUnk_00; + /* 0x04 */ + + void func_0203ec34(void); + void func_0203ebe0(void); + void func_0203ebf8(void); + void func_0203ec4c(UnkStruct_0203b264 *param_2, unk32 param_3, s32 param_4, s32 param_5); +}; + +// same as UnkStruct_020397f8_410? +class UnkStruct_020397f8_424 { +public: + /* 0x00 */ struct UnkStruct_020397f8 *mUnk_00; + /* 0x04 */ + + void func_0203ee80(unk32); + void func_0203ef78(unk16, u16, unk8); + void func_0203ef78(unk16); // overload? + void func_0203ee48(void); + UnkStruct_0203b264 *func_0203eeb0(unk32 param_2, unk32 param_3); +}; + +class UnkStruct_0203dae0_114 : public SysObject { +public: + /* 0x00 (vtable) */ + /* 0x04 */ unk32 *mUnk_04; + /* 0x08 */ + + UnkStruct_0203dae0_114(); + /* 0x00 */ virtual ~UnkStruct_0203dae0_114() override; + /* 0x08 */ virtual unk32 vfunc_08(void *); + /* 0x08 */ virtual unk32 vfunc_0c(void); + /* 0x0C */ + + unk32 *func_0203d1b4(void); +}; + +struct func_02038f44_param4 { + u8 mUnk_00; + u8 mUnk_01; + u8 mUnk_02; + u8 mUnk_03; + unk32 mUnk_04; + unk32 mUnk_08; + unk32 mUnk_0c; + unk32 mUnk_10; + unk8 mUnk_14; + u8 mUnk_15; +}; + +// TEMPORARY + +extern "C" u32 func_01ff9b4c(unk32, unk32); +extern "C" unk32 func_0203c084(void); +extern "C" unk32 func_ov000_02079e04(void); +extern "C" unk32 func_02016fcc(unk32); +extern "C" void func_02032304(unk32 *, char *, unk32, unk32, unk32); +extern "C" unk32 func_0202d5b4(char *, char *, unk32, unk32, unk32); +extern unk32 data_020691a0; +extern unk32 *data_02068894; +extern unk32 data_02056af0; +extern unk32 *data_02056a00; +extern char *data_02057f08; // "MSP" +extern char *data_02057eec; // "Menu/UI_main/opening.bin" +extern char *data_02057ed8; // "MSP:opening.nclr" + +struct Struct_027e0db0 { + /* 0x00 */ unk32 mUnk_00; + /* 0x04 */ unk32 mUnk_04; +}; +extern Struct_027e0db0 data_027e0db0; + +// see Actor.cpp +struct UnkStruct2 { + /* 0 */ u32 mUnk_0; + /* 4 */ u32 mUnk_4; + /* 8 */ +}; +extern UnkStruct2 data_027e077c; +extern u8 data_02056be4[]; + +class UnkClass_027e0cbc { +public: + unk32 func_0203d7e0(unk32); + unk32 func_0203d77c(unk32, s32, s32); +}; +extern UnkClass_027e0cbc data_027e0cbc; +extern unk16 data_02056a10[]; +extern unk16 data_02056a16[]; +extern unk32 data_02056a04[]; +extern unk32 data_027e0c38[]; +extern "C" void func_0203489c(unk32, unk16, unk32 *, unk32 *); +extern "C" void func_020347b0(unk32, unk16, unk32 *, unk32 *, unk32, unk32); +extern THUMB unk32 func_0202ab48(void); +extern "C" void func_02034984(unk32, u8, unk32, unk32); +extern "C" void func_02034698(unk32, unk32, unk32 *, unk32 *); +extern struct TouchControl gTouchControl; + +class UnkClass_027e0e28 { +public: + unk32 func_ov000_0207bc48(); +}; +extern UnkClass_027e0e28 *data_027e0e28; +extern u8 data_027e0c54; +extern unk32 *data_ov009_0211f5b4; +extern "C" unk32 func_ov003_020f3f94(unk32 *); +extern unk32 *data_02057ed4; + +// see Actor.cpp +typedef struct UnkStruct_01ffbe34 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk8 mUnk_08; + /* 09 */ unk8 mUnk_09; + /* 0a */ unk8 mUnk_0a; + /* 0b */ unk8 mUnk_0b; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk8 mUnk_14; + /* 15 */ unk8 mUnk_15; + /* 16 */ unk16 mUnk_16; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ +} UnkStruct_01ffbe34; +extern "C" void func_01ffbe34(UnkStruct_01ffbe34 *param1); + +struct UnkClass_027e1054_unk_00_unk00 { + /* 0x00 */ u8 mUnk_00[0x95]; + /* 0x95 */ u8 mUnk_95; +}; +struct UnkClass_027e1054_unk_00 { + /* 0x00 */ unk32 mUnk_04; + /* 0x00 */ UnkClass_027e1054_unk_00_unk00 *mUnk_00; +}; +class UnkClass_027e1054 { +public: + UnkClass_027e1054_unk_00 *mUnk_00; + unk32 mUnk_04; + + void func_ov003_020f4874(void); + void func_ov003_020f4760(u8, unk32); +}; +extern UnkClass_027e1054 data_027e1054; + +class UnkClass_ov000_020eec9c { +public: + void func_ov000_020d77e4(unk32); + unk32 func_ov000_020d7f18(unk32); +}; +extern UnkClass_ov000_020eec9c data_ov000_020eec9c; + +class UnkClass_ov000_027e0d04 { +public: + /* 0x00 */ unk16 mUnk_00; + + void func_0203fe60(unk32); +}; +extern UnkClass_ov000_027e0d04 data_027e0d04; + +class UnkClass_data_027e0f7c { +public: + u8 *func_ov000_0209d90c(s8, s8); +}; +extern UnkClass_data_027e0f7c data_027e0f7c; diff --git a/include/Player/LinkStateCutscene.hpp b/include/Player/LinkStateCutscene.hpp index 224350fd..750f1b8a 100644 --- a/include/Player/LinkStateCutscene.hpp +++ b/include/Player/LinkStateCutscene.hpp @@ -16,7 +16,7 @@ public: /* 00 */ virtual ~UnkStruct_ov004_0210abb8() override; /* 08 */ virtual void vfunc_08(unk32 param1) override; - /* 24 */ virtual void vfunc_24(unk32 param1) override; + /* 24 */ virtual bool vfunc_24(unk32 param1) override; /* 2c */ virtual unk32 vfunc_2c(s32 param1) override; /* 34 */ }; diff --git a/include/Unknown/UnkStruct_0202e1a0.hpp b/include/Unknown/UnkStruct_0202e1a0.hpp index a99956bc..d6d6a793 100644 --- a/include/Unknown/UnkStruct_0202e1a0.hpp +++ b/include/Unknown/UnkStruct_0202e1a0.hpp @@ -3,6 +3,7 @@ #include "global.h" #include "types.h" +// astruct_11 struct UnkStruct_0202e1a0 { /* 00 */ unk16 mUnk_00; /* 02 */ unk16 mUnk_02; diff --git a/include/Unknown/UnkStruct_02032f0c.hpp b/include/Unknown/UnkStruct_02032f0c.hpp index 602861bd..ec589e51 100644 --- a/include/Unknown/UnkStruct_02032f0c.hpp +++ b/include/Unknown/UnkStruct_02032f0c.hpp @@ -3,10 +3,13 @@ #include "global.h" #include "types.h" -class UnkStruct_02032e7c { +#include "Message/BMG.hpp" +#include "System/SysNew.hpp" + +class UnkStruct_02032e7c : public SysObject { public: /* 00 (vtable) */ - /* 04 */ unk32 mUnk_04; + /* 04 */ u16 *mUnk_04; // pointer to the current position in the message to display /* 08 */ unk16 mUnk_08; /* 0a */ unk16 mUnk_0a; /* 0c */ unk16 mUnk_0c; @@ -20,20 +23,80 @@ public: UnkStruct_02032e7c(); }; -class UnkStruct_02032f0c { +class UnkSubClass1_02256FF8 { public: /* 00 (vtable) */ /* 04 */ unk32 mUnk_04; /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ u8 mUnk_1c; + /* 20 */ + + UnkSubClass1_02256FF8(); + /* 00 */ virtual ~UnkSubClass1_02256FF8() override; + /* 08 */ virtual void vfunc_08(void) override; + /* 0c */ virtual void vfunc_0c(void) override; + /* 10 */ virtual void vfunc_10(void) override; + /* 14 */ virtual void vfunc_14(void) override; + /* 18 */ virtual void vfunc_18(void) override; + /* 1c */ virtual void vfunc_1c(void) override; + /* 20 */ virtual void vfunc_20(void) override; + /* 24 */ virtual void vfunc_24(void) override; + /* 28 */ virtual void vfunc_28(void) override; + /* 2c */ virtual void vfunc_2c(void) override; + /* 30 */ virtual void vfunc_30(void) override; + /* 34 */ virtual void vfunc_34(void) override; + /* 38 */ virtual void vfunc_38(void) override; + /* 3c */ +}; + +struct UnkStruct_MsgProc_Base_unk_2C { + /* 00 */ s8 mUnk_00; + /* 01 */ s8 mUnk_01; + /* 02 */ s8 mUnk_02; + /* 03 */ s8 mUnk_03; + /* 04 */ unk32 mUnk_04; + /* 08 */ u8 *mUnk_08; + /* 0c */ +}; + +struct func_0203b410_param1 { + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk16 mUnk_10; + /* 12 */ unk16 mUnk_12; + /* 14 */ +}; + +// astruct_8, MsgProc_Base +class UnkStruct_02032f0c : public SysObject { +public: + /* 00 (vtable) */ + /* 04 */ unk32 *mUnk_04; + /* 08 */ UnkSubClass1_02256FF8 *mUnk_08; /* 0c */ u16 *mUnk_0c; - /* 10 */ unk32 mUnk_10[6]; - /* 28 */ unk32 mUnk_28; - /* 2c */ s32 **mUnk_2c; + /* 10 */ unk32 *mUnk_10; + /* 14 */ s32 mUnk_14; + /* 18 */ s32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 *mUnk_24; + /* 28 */ unk32 *mUnk_28; + /* 2c */ UnkStruct_MsgProc_Base_unk_2C **mUnk_2c; /* 30 */ s32 mUnk_30; /* 34 */ s32 mUnk_34; /* 38 */ unk32 mUnk_38; /* 3c */ unk16 mUnk_3c; - /* 3e */ unk16 mUnk_3e[6]; + /* 3e */ unk16 mUnk_3e; + /* 40 */ unk32 mUnk_40; + /* 44 */ unk32 mUnk_44; + /* 48 */ u8 mUnk_48; + /* 49 */ u8 mUnk_49; /* 4a */ u16 mUnk_4a; /* 4c */ u8 mUnk_4c; /* 4d */ bool mUnk_4d; @@ -54,12 +117,47 @@ public: /* 24 */ virtual bool vfunc_24(s16 **param1); /* 28 */ + // /* 0x08 */ /* func_02033030 */ virtual void vfunc_08(unk32* param_2, unk32* param_3); + // /* 0x0C */ /* func_02033190 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); + // /* 0x10 */ /* func_020331c4 */ virtual void vfunc_10(u8 param_2, u8 param_3); + // /* 0x14 */ /* func_02032fcc */ virtual bool vfunc_14(u16 param_2, u8 param_3); + // /* 0x18 */ /* func_020332e4 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4); + // /* 0x1C */ /* func_02033360 */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 + // param_5); + // /* 0x20 */ /* func_020333e0 */ virtual UNK_TYPE vfunc_20(UNK_TYPE); + // /* 0x24 */ /* func_02033af4 */ virtual UNK_TYPE vfunc_24(UNK_TYPE); + + //! TODO: fake? + /* 28 */ virtual bool vfunc_28(void); + /* 2c */ virtual void vfunc_2C(void); + /* 30 */ virtual void vfunc_30(void); + /* 34 */ virtual unk32 vfunc_34(unk32 param_2); + /* 38 */ virtual bool vfunc_38(void); + /* 3c */ virtual void vfunc_3C(unk32 param_2); + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3); + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); + /* 48 */ virtual void vfunc_48(void); + /* 4c */ virtual void vfunc_4C(void); + /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5); + /* 54 */ virtual void vfunc_54(void); + /* 58 */ virtual void vfunc_58(void); + /* 5c */ virtual void vfunc_5C(void); + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4); + /* 64 */ virtual void vfunc_64(s16 *param_2); + /* 68 */ virtual unk32 vfunc_68(unk32 param_2); + /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3); + /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3); + /* 74 */ + UnkStruct_02032f0c(); void func_02032f94(); + unk32 *func_02032f98(unk32 param_2); u16 **SetUnk_0c(u16 *value); u8 func_02032fa4(); s32 func_02032fb4(); + void func_02032fcc(unk32, unk32); void func_02033214(unk32 param1, unk32 param2, unk32 param3, u8 param4, unk32 param5); + unk32 func_02033360(void); void func_020334b4(u32 param1, s32 param2, s32 param3, s32 param4); void func_02033628(unk32 param1, u16 *param2); u32 func_0203369c(u16 *param1, s32 param2); diff --git a/include/Unknown/UnkStruct_02035064.hpp b/include/Unknown/UnkStruct_02035064.hpp index 69011e21..a55b8808 100644 --- a/include/Unknown/UnkStruct_02035064.hpp +++ b/include/Unknown/UnkStruct_02035064.hpp @@ -8,19 +8,33 @@ class UnkStruct_02035064 { public: /* 00 (vtable) */ - /* 04 */ unk32 mUnk_04; - /* 08 */ unk8 mUnk_08[0xc]; + /* 04 */ unk16 mUnk_04; + /* 04 */ unk16 mUnk_06; + /* 08 */ u32 *mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; /* 14 */ u32 mUnk_14; - /* 18 */ unk8 mUnk_18[0x4]; + /* 18 */ unk32 mUnk_18; /* 1c */ unk32 mUnk_1c; - /* 20 */ u32 mUnk_20; - /* 24 */ unk8 mUnk_24[0x28]; + /* 20 */ u32 *mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2c */ unk32 mUnk_2c; + /* 30 */ unk32 mUnk_30; + /* 34 */ u32 *mUnk_34; + /* 38 */ u32 *mUnk_38; + /* 3c */ unk32 mUnk_3c; + /* 40 */ unk32 mUnk_40; + /* 44 */ unk32 mUnk_44; + /* 48 */ unk32 mUnk_48; /* 4c */ s16 mUnk_4c; /* 4e */ s16 mUnk_4e; - /* 50 */ unk8 mUnk_50[0xc]; + /* 50 */ unk32 mUnk_50; + /* 54 */ unk32 mUnk_54; + /* 58 */ unk32 mUnk_58; /* 5c */ UnkStruct_0202e1a0 mUnk_5c; /* 74 */ u16 *mUnk_74; - /* 78 */ s32 mUnk_78; + /* 78 */ s32 *mUnk_78; /* 7c */ u32 mUnk_7c; /* 80 */ u16 mUnk_80; /* 82 */ unk16 mUnk_82; @@ -29,13 +43,17 @@ public: /* 87 */ unk8 mUnk_87; /* 88 */ - /* 0 */ virtual s32 vfunc_0(); - /* 4 */ virtual s32 vfunc_4(); + /* 0 */ virtual s32 vfunc_00(); // func_020351a8 + /* 4 */ virtual s32 vfunc_04(); // func_020351b0 /* 8 */ UnkStruct_02035064(); ~UnkStruct_02035064(); + static u8 func_02035428(u8 param1); + + void func_02034a1c(unk32, unk32, struct UnkStruct_01ffbe34 *); + void func_02034b0c(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5, unk32 param_6); void func_020350b0(); void func_020350b4(s32 param1, unk32 param2, unk8 param3, unk16 param4, unk16 param5); void func_0203516c(); diff --git a/include/Unknown/UnkStruct_02037750.hpp b/include/Unknown/UnkStruct_02037750.hpp index 2e5ea7b6..a480c1a3 100644 --- a/include/Unknown/UnkStruct_02037750.hpp +++ b/include/Unknown/UnkStruct_02037750.hpp @@ -4,50 +4,77 @@ #include "types.h" #include "Player/LinkStateInteract.hpp" +#include "System/SysNew.hpp" -class UnkStruct_02037750 { +class UnkStruct_020397f8; +typedef unk32 (*UnkStruct_02037750_Callback1)(unk32); + +// astruct_14 +class UnkStruct_02037750 : public SysObject { public: /* 00 (vtable) */ - /* 04 */ unk32 mUnk_04[0x4]; + /* 04 */ UnkStruct_02037750_Callback1 mUnk_04[0x4]; /* 14 */ unk32 mUnk_14; - /* 18 */ unk32 mUnk_18; + /* 18 */ u32 mUnk_18; /* 1c */ u8 mUnk_1c; - /* 1d */ unk8 mUnk_1d; + /* 1d */ u8 mUnk_1d; /* 1e */ u16 mUnk_1e; /* 20 */ /* 00 */ virtual ~UnkStruct_02037750(); - /* 08 */ virtual void vfunc_08(unk32 param1); - /* 0c */ virtual void vfunc_0c(s32 param1); + /* 08 */ virtual void vfunc_08(u32 param1); + /* 0c */ virtual void vfunc_0c(class UnkStruct_020397f8 *param1); /* 10 */ virtual void vfunc_10(); /* 14 */ virtual void vfunc_14(); - /* 18 */ virtual void vfunc_18(); - /* 1c */ virtual unk32 vfunc_1c(); + /* 18 */ virtual void vfunc_18(unk32 *param1); + /* 1c */ virtual bool vfunc_1c(); /* 20 */ virtual void vfunc_20(); - /* 24 */ virtual void vfunc_24(unk32 param1); - /* 28 */ virtual void vfunc_28(s32 param1); + /* 24 */ virtual bool vfunc_24(unk32 param1); + /* 28 */ virtual unk32 vfunc_28(s32 param1); /* 2c */ virtual unk32 vfunc_2c(s32 param1); - /* 30 */ virtual unk32 vfunc_30(); + /* 30 */ virtual bool vfunc_30(); /* 34 */ UnkStruct_02037750(unk32 param1, unk32 param2); static LinkStateInteract *GetLinkStateInteract(); - void func_020385d0(s32 param1, unk32 *param2); + unk32 func_020385d0(s32 param1, u8 *param2); +}; + +class UnkStruct_020386d8_24 { +public: + /* 00 */ u8 mUnk_00; + /* 00 */ u8 mUnk_01; + /* 00 */ u8 mUnk_02; + /* 00 */ u8 mUnk_03; + /* 04 */ + + void func_020376c0(const Vec3p *param_2); }; +// astruct_15 class UnkStruct_020386d8 : public UnkStruct_02037750 { public: /* 00 (base) */ /* 20 */ unk8 mUnk_20; - /* 21 */ unk8 mUnk_21[0x3]; - /* 24 */ unk32 mUnk_24; - /* 28 */ + /* 21 */ unk8 mUnk_21; + /* 21 */ unk8 mUnk_22; + /* 21 */ unk8 mUnk_23; + /* 24 */ UnkStruct_020386d8_24 mUnk_24; + /* 28 */ unk32 mUnk_28; + /* 2C */ unk32 mUnk_2C; + /* 30 */ unk32 mUnk_30; + /* 34 */ unk16 mUnk_34; + /* 36 */ unk16 mUnk_36; + /* 38 */ u8 mUnk_38; + /* 39 */ u8 mUnk_39; + /* 3A */ unk16 mUnk_3A; + /* 3C */ UnkStruct_020386d8(); /* 00 */ virtual ~UnkStruct_020386d8(); - /* 08 */ virtual void vfunc_08(unk32 param1); - /* 24 */ virtual void vfunc_24(unk32 param1); - /* 28 */ virtual void vfunc_28(); - /* 30 */ virtual unk32 vfunc_30(); + /* 08 */ virtual void vfunc_08(u32 param1); + /* 24 */ virtual bool vfunc_24(unk32 param1); + /* 28 */ virtual unk32 vfunc_28(s32 param1); + /* 30 */ virtual bool vfunc_30(); /* 34 */ }; diff --git a/include/Unknown/UnkStruct_02038aa0.hpp b/include/Unknown/UnkStruct_02038aa0.hpp index 63d63fe2..c0f31f16 100644 --- a/include/Unknown/UnkStruct_02038aa0.hpp +++ b/include/Unknown/UnkStruct_02038aa0.hpp @@ -3,17 +3,21 @@ #include "global.h" #include "types.h" +#include "Message/MsgProc.hpp" +#include "System/SysNew.hpp" #include "Unknown/UnkStruct_0203dae0.hpp" +#include "nds/math.h" class UnkStruct_02038aa0; +typedef bool (*UnknownCallback)(class UnkStruct_020397f8 *); class UnkStruct_0203881c : public UnkStruct_02032e7c { public: /* 00 (base) */ /* 14 */ unk32 mUnk_14; /* 18 */ unk32 mUnk_18; - /* 1c */ unk32 mUnk_1c; - /* 20 */ unk32 mUnk_20; + /* 1c */ UnknownCallback mUnk_1c; + /* 20 */ class UnkStruct_020397f8 *mUnk_20; /* 24 */ unk32 mUnk_24; /* 28 */ @@ -27,45 +31,65 @@ public: void func_02038a80(s32 param1); }; +class UnkSubClass1_unk_124 { +public: + /* 00 */ void *mUnk_00; // pointer to MsgProc_Main (well, the first members of the base class) + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + /* 0c */ unk32 mUnk_0c; + /* 10 */ unk32 mUnk_10; + /* 14 */ unk32 mUnk_14; + /* 18 */ unk32 mUnk_18; + /* 1c */ unk32 mUnk_1c; + /* 20 */ unk32 mUnk_20; + /* 24 */ unk32 mUnk_24; + /* 28 */ unk8 mUnk_28; + /* 29 */ unk8 mUnk_29; + /* 2a */ unk8 mUnk_2a; + /* 2b */ unk8 mUnk_2b; + /* 2c */ + + void func_0203f020(s16 *, unk32); +}; + +struct UnkStruct_0203b264; +struct func_02038f44_param4; + +// astruct_6, MsgProc_Main class UnkStruct_02038aa0 : public UnkStruct_0203dae0 { public: /* 000 (base) */ /* 123 */ unk8 mUnk_123; - /* 124 */ unk32 mUnk_124; - /* 128 */ unk32 mUnk_128; - /* 12c */ unk32 mUnk_12c; - /* 130 */ unk8 mUnk_130[0x20]; - /* 150 */ unk8 mUnk_150; - /* 151 */ unk8 mUnk_151; - /* 152 */ unk8 mUnk_152; - /* 153 */ unk8 mUnk_153; - /* 154 */ unk32 mUnk_154; - /* 158 */ unk8 mUnk_158[0x2]; - /* 15a */ unk16 mUnk_15a; - /* 15c */ unk16 mUnk_15c; - /* 15e */ u8 mUnk_15e; - /* 15f */ u8 mUnk_15f; + /* 124 */ UnkSubClass1_unk_124 *mUnk_124; + /* 128 */ UnkStruct_0203881c mUnk_128; + /* 150 */ u8 mUnk_150[4]; + /* 154 */ EntryINF1 *pInfoEntry; + /* 158 */ Vec2s mUnk_158; // textbox position? + /* 15c */ s16 mUnk_15c; + /* 15e */ s8 mUnk_15e; + /* 15f */ s8 mUnk_15f; /* 160 */ u8 mUnk_160; /* 161 */ /* 00 */ virtual ~UnkStruct_02038aa0(); - /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); - /* 10 */ virtual void vfunc_10(unk32 param1); + /* 08 */ virtual void vfunc_08(s32 param1, unk32 *param2, s16 *param3, unk32 param4); + /* 0c */ virtual void vfunc_0c(u8 param_2, u8 param_3, u8 param_4, unk32 param_5); + /* 10 */ virtual void vfunc_10(); /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); /* 2c */ virtual void vfunc_2c(); - /* 30 */ virtual void vfunc_30(); + /* 30 */ virtual void vfunc_30(unk32 param_2, unk32 param_3); /* 34 */ virtual unk32 vfunc_34(s32 param1); - /* 38 */ virtual unk32 vfunc_38(); - /* 3c */ virtual void vfunc_3c() = 0; - /* 40 */ virtual void vfunc_40() = 0; - /* 44 */ virtual void vfunc_44(); + /* 38 */ virtual bool vfunc_38(); + /* 3c */ virtual void vfunc_3c(); + /* 40 */ virtual void vfunc_40(); + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); /* 48 */ virtual void vfunc_48(); - /* 4c */ virtual void vfunc_4c(); - /* 50 */ virtual void vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4); + /* 4c */ virtual void vfunc_4c(u32 param1, unk32 param2); + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, u32 param2, s16 *param3, UnkSubClass1_02256FF8 *param4); /* 54 */ virtual void vfunc_54(); /* 58 */ virtual void vfunc_58(); - /* 5c */ virtual void vfunc_5c(); + /* 5c */ virtual void vfunc_5c(u16 *param_2, struct UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); /* 60 */ virtual void vfunc_60(); /* 64 */ virtual void vfunc_64(); /* 68 */ virtual s32 vfunc_68(unk32 param1); @@ -73,6 +97,21 @@ public: /* 70 */ virtual void vfunc_70(s32 *param1, s32 *param2); /* 74 */ + // /* 0x08 */ /* func_02039228 */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; + // /* 0x0C */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; + // /* 0x10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? + // /* 0x14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; + // /* 0x18 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) override; + // /* 0x1C */ /* func_0203905c */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 + // param_5) override; + // /* 0x20 */ /* func_020390a4 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; + // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; + // /* 0x28 */ virtual bool vfunc_28(void) override; + // /* 0x2C */ /* func_02038d20 */ virtual void vfunc_2C(void) override; + // /* 0x30 */ /* func_02038ed0 */ virtual void vfunc_30(void) override; + // /* 0x34 */ /* func_02038c34 */ virtual unk32 vfunc_34(unk32 param_2) override; + // /* 0x38 */ /* func_02039570 */ virtual bool vfunc_38(void) override; + UnkStruct_02038aa0(u8 param1, u8 param2); void func_02038b40(); bool func_02038b78(); @@ -84,4 +123,38 @@ public: unk32 func_02039250(); void func_02039440(unk32 param1, unk32 param2); bool func_0203951c(); + + static void func_020387e0(u8 *param_2); + + unk32 func_02032fb4(void); + u16 *func_02037604(u16 **); + void func_02038b28(void); + void func_02038b74(void); // is this a dtor? + void func_02038f40(void); + void func_02038f44(EntryINF1 *param_2, u32 param_3, struct func_02038f44_param4 *param_4, UnkSubClass1_02256FF8 *param_5, + unk32 param_6); + void func_02039058(void); + unk32 func_0203905c(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5); + void func_02038d20(void); + void func_020392b4(void); + void func_02039398(void); + void func_020393a8(s16 *param_2); + void func_0203a188(unk32, unk32); + unk32 func_0203a3e0(void); + unk32 func_0203cb5c(unk8, s16); + + void func_0203dcfc(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); + unk32 func_0203de14(unk32); + void func_0203e090(void); + void func_0203e1b0(unk32, unk32, unk32); + + //! TODO: not sure it belongs to this class: + + void func_02033190(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5); + void func_020331c4(unk32, unk32); + void func_0203947c(void); + void func_0203cabc(unk32); + unk32 func_0203e284(UnkStruct_0203b264 *, unk32, unk32); + void func_0203e2ac(unk32 *param_2); + s16 func_0203d318(s16, s16); }; diff --git a/include/Unknown/UnkStruct_020397f8.hpp b/include/Unknown/UnkStruct_020397f8.hpp index 53c37017..668f1922 100644 --- a/include/Unknown/UnkStruct_020397f8.hpp +++ b/include/Unknown/UnkStruct_020397f8.hpp @@ -3,42 +3,72 @@ #include "global.h" #include "types.h" +#include "Message/MsgProc.hpp" +#include "System/SysNew.hpp" #include "Unknown/UnkStruct_02035064.hpp" #include "Unknown/UnkStruct_02038aa0.hpp" +// does it host both choices? +struct UnknownMsgChoiceStruct { + /* 00 */ UnkStruct_0203b264 *mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ +}; + +class UnkStruct_020397f8_410; + +// astruct_2, MsgProc_Type1 class UnkStruct_020397f8 : public UnkStruct_02038aa0 { public: /* 000 (base) */ /* 161 */ unk8 mUnk_161[0x3]; - /* 164 */ unk32 mUnk_164; + /* 164 */ UnkStruct_020397f8 *mUnk_164; /* 168 */ UnkStruct_02035064 mUnk_168; /* 1f0 */ UnkStruct_02035064 mUnk_1f0; /* 278 */ UnkStruct_02035064 mUnk_278; /* 300 */ UnkStruct_02035064 mUnk_300; /* 388 */ UnkStruct_02035064 mUnk_388; - /* 410 */ unk32 *mUnk_410; + /* 410 */ UnkStruct_020397f8_410 mUnk_410; /* 414 */ unk32 mUnk_414; - /* 418 */ unk32 mUnk_418; + /* 418 */ UnkStruct_02038aa0 *mUnk_418; /* 41c */ unk16 mUnk_41c; /* 41e */ unk16 mUnk_41e; /* 420 */ unk16 mUnk_420; - /* 422 */ unk8 mUnk_422[0x2]; - /* 424 */ unk32 *mUnk_424; - /* 428 */ unk32 mUnk_428; - /* 42c */ unk8 mUnk_42c[0x124]; + /* 422 */ unk16 mUnk_422; + /* 424 */ UnkStruct_020397f8_424 mUnk_424; + /* 428 */ UnknownMsgChoiceStruct mUnk_428[0x20]; + /* 528 */ unk16 mUnk_528[4]; // number of choices? + /* 530 */ unk32 mUnk_530; + /* 534 */ unk16 mUnk_534; + /* 536 */ unk16 mUnk_536; + /* 538 */ unk16 mUnk_538; + /* 53a */ unk16 mUnk_53a; + /* 53c */ unk32 mUnk_53c; + /* 540 */ unk32 mUnk_540; + /* 544 */ unk8 mUnk_544; + /* 545 */ unk8 mUnk_545; + /* 546 */ unk8 mUnk_546; + /* 547 */ unk8 mUnk_547; + /* 548 */ unk16 mUnk_548; + /* 54a */ unk16 mUnk_54a; + /* 54c */ unk16 mUnk_54c; + /* 54e */ unk16 mUnk_54e; /* 550 */ unk32 mUnk_550; /* 554 */ unk32 mUnk_554; - /* 558 */ unk8 mUnk_558[0x4]; + /* 558 */ unk8 mUnk_558; + /* 559 */ unk8 mUnk_559; + /* 55a */ unk8 mUnk_55a; + /* 55b */ unk8 mUnk_55b; /* 55c */ unk32 mUnk_55c; /* 560 */ unk32 mUnk_560; - /* 564 */ unk8 mUnk_564[0x8]; + /* 564 */ u16 mUnk_564[4]; /* 56c */ unk16 mUnk_56c; /* 56e */ unk16 mUnk_56e; /* 570 */ unk16 mUnk_570; - /* 572 */ unk16 mUnk_572; - /* 574 */ unk16 mUnk_574; + /* 572 */ u16 mUnk_572; + /* 574 */ s16 mUnk_574; /* 576 */ unk16 mUnk_576; - /* 578 */ unk16 mUnk_578; + /* 578 */ s16 mUnk_578; /* 57a */ u8 mUnk_57a; /* 57b */ u8 mUnk_57b; /* 57c */ u8 mUnk_57c; @@ -53,44 +83,130 @@ public: /* 585 */ u8 mUnk_585; /* 586 */ u8 mUnk_586; /* 587 */ unk8 mUnk_587; - /* 588 */ unk32 mUnk_588; - /* 58c */ + /* 588 */ UnkSubClass1_unk_124 mUnk_588; + /* 5b4 */ UnkStruct_020397f8(); /* 4c */ virtual void vfunc_4c(); /* 2c */ virtual void vfunc_2c(); void func_02039ca8(); - /* 3c */ virtual void vfunc_3c(); + /* 3c */ virtual void vfunc_3c(unk32 param1); /* 40 */ virtual void vfunc_40(s32 param1, s32 param2); - void func_0203a188(s32 param1, s32 param2); + void func_0203a188(s32 param1, s32 param2); // void func_0203a188(unk32 param_2, unk32 param_3, unk32 param_4); bool func_0203a2c0(); unk32 func_0203a30c(); /* 48 */ virtual void vfunc_48(); void func_0203a35c(); bool func_0203a3e0(); - /* 44 */ virtual void vfunc_44(s32 param1, s32 param2); - bool func_0203a6d0(unk32 param1); - /* 50 */ virtual void vfunc_50(unk32 param1, unk32 param2, s32 param3, unk32 param4); + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY); + bool func_0203a6d0(unk32 param1, unk32 param2); + /* 50 */ virtual void vfunc_50(EntryINF1 *param1, unk32 param2, s32 *param3, unk32 param4); /* 54 */ virtual void vfunc_54(); /* 5c */ virtual void vfunc_5c(); /* 58 */ virtual void vfunc_58(); bool func_0203b0bc(); s32 func_0203b0ec(u32 param1); - /* 18 */ virtual unk32 vfunc_18(s32 param1); - /* 1c */ virtual unk32 vfunc_1c(s32 param1, unk32 *param2, unk32 param3, unk32 param4); - /* 60 */ virtual void vfunc_60(s32 param1); - /* 64 */ virtual void vfunc_64(unk32 param1); + /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param1, unk32 param2, unk32 param3); + /* 1c */ virtual unk32 vfunc_1c(u16 *param1, UnkStruct_0203b264 *param2, unk8 param3, unk32 param4); + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param1, unk32 param2, unk32 param3); + /* 64 */ virtual void vfunc_64(s16 *param1); void func_0203b764(); /* 20 */ virtual unk32 vfunc_20(s32 param1, s32 *param2); - void func_0203bd8c(s32 param1); + void func_0203bd8c(s32 param1); // void func_0203bd8c(u16 param_2); /* 6c */ virtual void vfunc_6c(s32 *param1, s32 *param2); void func_0203be08(); void func_0203be64(); bool func_0203c084(); bool func_0203c13c(); bool func_0203c1a0(); - bool func_0203c25c(); + static bool func_0203c25c(class UnkStruct_020397f8 *param1); /* 00 */ virtual ~UnkStruct_020397f8(); - /* 38 */ virtual unk32 vfunc_38(); + /* 38 */ virtual bool vfunc_38(); + /* 74 */ + + //! TODO: check if this is really here + void func_02039a3c(void); + unk32 func_02039250(void); +}; + +class MsgProc_Type3 : public UnkStruct_02038aa0 { +public: + /* 000 (base) */ + /* 161 */ unk8 mUnk_161; + /* 162 */ unk16 mUnk_162; + /* 164 */ unk16 mUnk_164; + /* 166 */ unk16 mUnk_166; + /* 168 */ unk16 mUnk_168; + /* 16a */ unk16 mUnk_16a; + /* 16c */ unk16 mUnk_16c; + /* 16e */ unk16 mUnk_16e; + /* 170 */ unk16 mUnk_170; + /* 172 */ unk16 mUnk_172; + /* 174 */ unk16 mUnk_174; + /* 178 */ unk32 mUnk_178; + /* 17c */ unk32 mUnk_17c; + /* 180 */ UnkClass_func_ov000_020d0644 mUnk_180[4]; + /* 1c0 */ + + MsgProc_Type3(); + MsgProc_Type3(unk32 param_2, unk16 param_3, unk32 param_4); + //! TODO: remove the function declarations that are not overridden + /* 00 */ virtual ~MsgProc_Type3(); + /* 08 */ virtual void vfunc_08(unk32 *param_2, unk32 *param_3) override; + /* 0c */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; + /* 10 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? + /* 14 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; + /* 18 */ virtual unk32 vfunc_18(UnkStruct_0203b264 *param_2, unk32 param_3, unk32 param_4) override; + /* 1c */ virtual unk32 vfunc_1C(u16 *param_2, UnkStruct_0203b264 *param_3, unk8 param_4, unk32 param_5) override; + /* 20 */ virtual void vfunc_20(void) override; + /* 24 */ virtual void vfunc_24(void) override; + /* 28 */ virtual bool vfunc_28(void) override; + /* 2c */ virtual void vfunc_2C(void) override; + /* 30 */ virtual void vfunc_30(void) override; + /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; + /* 38 */ virtual bool vfunc_38(void) override; + /* 3c */ virtual void vfunc_3C(unk32 param_2) override; + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 48 */ virtual void vfunc_48(void) override; + /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? + /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; + /* 54 */ virtual void vfunc_54(void) override; + /* 58 */ virtual void vfunc_58(void) override; + /* 5c */ virtual void vfunc_5C(void) override; + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; + /* 64 */ virtual void vfunc_64(s16 *param_2) override; + /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; + /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; + /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; /* 74 */ + + static void func_0203c83c(void); +}; + +class MsgProc_Type2 : public UnkStruct_02038aa0 { +public: + /* 000 (base) */ + /* 161 */ unk8 mUnk_161; + /* 162 */ unk16 mUnk_162; + /* 164 */ unk16 mUnk_164; + /* 166 */ unk16 mUnk_166; + /* 168 */ unk16 mUnk_168; + /* 16a */ unk16 mUnk_16a; + /* 16c */ unk16 mUnk_16c; + /* 16e */ unk16 mUnk_16e; + /* 170 */ + + MsgProc_Type2(); + MsgProc_Type2(unk32 param_2, unk16 param_3, unk32 param_4); + /* 00 */ virtual ~MsgProc_Type2(); + /* 14 */ /* func_0203c5c4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; + /* 3c */ /* func_0203c414 */ virtual void vfunc_3C(unk32 param_2) override; + /* 40 */ /* func_0203c460 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 4c */ /* func_0203c39c */ virtual void vfunc_4C(void) override; // func_02039a3c? + + //! TODO: vfunc_4C? + void func_0203c39c(unk32 param_2, unk32 param_3); + + void func_0203c4ac(unk32, unk32); }; diff --git a/include/Unknown/UnkStruct_0203dae0.hpp b/include/Unknown/UnkStruct_0203dae0.hpp index cfda7368..7cb67a00 100644 --- a/include/Unknown/UnkStruct_0203dae0.hpp +++ b/include/Unknown/UnkStruct_0203dae0.hpp @@ -3,22 +3,80 @@ #include "global.h" #include "types.h" +#include "Message/MsgProc.hpp" #include "Unknown/UnkStruct_02032f0c.hpp" +class UnkStruct_0203dae0_114; + +// astruct_7, MsgProc_Base2 class UnkStruct_0203dae0 : public UnkStruct_02032f0c { public: /* 000 (base) */ - /* 052 */ unk8 mUnk_052[0x2]; - /* 054 */ unk32 mUnk_054[0x30]; - /* 114 */ void *mUnk_114; - /* 118 */ unk32 mUnk_118; - /* 11c */ unk16 mUnk_11c; + /* 052 */ unk16 mUnk_52; + /* 054 */ unk16 mUnk_54; + /* 054 */ unk16 mUnk_56; + /* 058 */ unk32 mUnk_58; + /* 05c */ s16 mUnk_5c; + /* 05e */ s16 mUnk_5e; + /* 060 */ unk32 mUnk_60; + /* 064 */ unk32 mUnk_64; + /* 068 */ unk32 mUnk_68; + /* 06c */ unk32 mUnk_6c; + /* 070 */ unk32 mUnk_70; + /* 074 */ unk32 mUnk_74; + /* 078 */ unk32 mUnk_78; + /* 07c */ unk32 mUnk_7c; + /* 080 */ unk32 mUnk_80; + /* 084 */ unk32 mUnk_84; + /* 088 */ unk32 mUnk_88; + /* 08c */ unk32 mUnk_8c; + /* 090 */ unk32 mUnk_90; + /* 094 */ unk32 mUnk_94; + /* 098 */ unk32 mUnk_98; + /* 09c */ unk32 mUnk_9c; + /* 0a0 */ unk32 mUnk_a0; + /* 0a4 */ unk32 mUnk_a4; + /* 0a8 */ unk32 mUnk_a8; + /* 0ac */ unk32 mUnk_ac; + /* 0b0 */ unk32 mUnk_b0; + /* 0b4 */ unk32 mUnk_b4; + /* 0b8 */ unk32 mUnk_b8; + /* 0bc */ unk32 mUnk_bc; + /* 0c0 */ unk32 mUnk_c0; + /* 0c4 */ unk32 mUnk_c4; + /* 0c8 */ unk32 mUnk_c8; + /* 0cc */ unk32 mUnk_cc; + /* 0d0 */ unk32 mUnk_d0; + /* 0d4 */ unk32 mUnk_d4; + /* 0d8 */ unk32 mUnk_d8; + /* 0dc */ unk32 mUnk_dc; + /* 0e0 */ unk32 mUnk_e0; + /* 0e4 */ unk32 mUnk_e4; + /* 0e8 */ unk8 mUnk_e8; + /* 0e8 */ unk8 mUnk_e9; + /* 0e8 */ unk8 mUnk_ea; + /* 0e8 */ unk8 mUnk_eb; + /* 0ec */ unk32 mUnk_ec; + /* 0f0 */ unk32 mUnk_f0; + /* 0f4 */ unk32 mUnk_f4; + /* 0f8 */ unk32 mUnk_f8; + /* 0fc */ unk32 mUnk_fc; + /* 100 */ unk32 mUnk_100; + /* 104 */ unk32 mUnk_104; + /* 108 */ unk8 mUnk_108; + /* 108 */ unk8 mUnk_109; + /* 108 */ unk8 mUnk_10a; + /* 108 */ unk8 mUnk_10b; + /* 10c */ unk32 mUnk_10c; + /* 110 */ unk32 mUnk_110; + /* 114 */ UnkStruct_0203dae0_114 *mUnk_114; + /* 118 */ s32 mUnk_118; + /* 11c */ u16 mUnk_11c; /* 11e */ u8 mUnk_11e; /* 11f */ u8 mUnk_11f; /* 120 */ u8 mUnk_120; - /* 121 */ u8 mUnk_121; - /* 122 */ u8 mUnk_122; - /* 123 */ + /* 121 */ s8 mUnk_121; + /* 123 */ u8 mUnk_122; /* 00 */ virtual ~UnkStruct_0203dae0(); /* 08 */ virtual void vfunc_08(s32 param1, unk32 param2, s16 *param3, unk32 param4); @@ -31,19 +89,54 @@ public: /* 30 */ virtual void vfunc_30(); /* 34 */ + // /* 0x08 */ /* func_0203e2ac */ virtual void vfunc_08(unk32* param_2, unk32* param_3) override; + // /* 0x0C */ /* func_02039578 */ virtual void vfunc_0C(u8 param_2, u8 param_3, u8 param_4, unk32 param_5) override; + // /* 0x10 */ /* func_0203e060 */ virtual void vfunc_10(u8 param_2, u8 param_3) override; // func_0203e060? + // /* 0x14 */ /* func_0203dcb4 */ virtual bool vfunc_14(unk32 param_2, unk32 param_3) override; + // /* 0x18 */ /* func_0203e284 */ virtual unk32 vfunc_18(UnkStruct_0203b264* param_2, unk32 param_3, unk32 param_4) + // override; + // /* 0x1C */ virtual unk32 vfunc_1C(u16* param_2, UnkStruct_0203b264* param_3, unk8 param_4, unk32 param_5) override; + // /* 0x20 */ virtual UNK_TYPE vfunc_20(UNK_TYPE) override; + // /* 0x24 */ virtual UNK_TYPE vfunc_24(UNK_TYPE) override; + // /* 0x28 */ /* func_0203e0c8 */ virtual bool vfunc_28(void) override; + // /* 0x2C */ /* func_0203e19c */ virtual void vfunc_2C(void) override; + // /* 0x30 */ /* func_0203e090 */ virtual void vfunc_30(void) override; + + //! TODO: fake? + /* 34 */ virtual unk32 vfunc_34(unk32 param_2) override; + /* 38 */ virtual bool vfunc_38(void) override; + /* 3c */ virtual void vfunc_3C(unk32 param_2) override; + /* 40 */ virtual void vfunc_40(unk32 param_2, unk32 param_3) override; + /* 44 */ virtual void vfunc_44(s32 touchLastX, s32 touchLastY) override; + /* 48 */ virtual void vfunc_48(void) override; + /* 4c */ virtual void vfunc_4C(void) override; // func_02039a3c? + /* 50 */ virtual void vfunc_50(EntryINF1 *param_2, u32 param_3, s16 *param_4, UnkSubClass1_02256FF8 *param_5) override; + /* 54 */ virtual void vfunc_54(void) override; + /* 58 */ virtual void vfunc_58(void) override; + /* 5c */ virtual void vfunc_5C(void) override; + /* 60 */ virtual void vfunc_60(func_0203b410_param1 *param_2, unk32 param_3, unk32 param_4) override; + /* 64 */ virtual void vfunc_64(s16 *param_2) override; + /* 68 */ virtual unk32 vfunc_68(unk32 param_2) override; + /* 6c */ virtual void vfunc_6C(unk32 *param_2, unk32 *param_3) override; + /* 70 */ virtual void vfunc_70(unk32 *param_2, unk32 *param_3) override; + /* 74 */ + UnkStruct_0203dae0(u8 param1); - void func_0203dc10(s32 param1); + void func_0203dc10(unk32 param1); + void func_0203dc10(unk32 param_2, unk32 param_3); bool func_0203dc74(s32 param1, s32 param2); void func_0203dcfc(u8 param1, unk32 param2, unk32 param3, s32 param4); - void func_0203ddec(); + unk32 *func_0203ddec(); void func_0203ddfc(); void func_0203de14(); s32 func_0203de24(); bool func_0203de58(s32 param1); - bool func_0203e0f8(unk32 param1, s32 param2); + bool func_0203e0f8(); bool func_0203e1b0(unk32 param1, unk32 param2, s32 param3); void func_0203e2e8(s32 param1, s32 param2, unk32 param3, u32 param4); void func_0203e510(s32 *param1, s32 param2, s32 param3); void func_0203e62c(s32 *param1, s32 param2); bool func_0203e6e4(u32 param1, u32 param2, s32 param3); + + void func_ov003_020f13b0(unk32 param1); }; diff --git a/include/Unknown/func_ov000_020d0644.hpp b/include/Unknown/func_ov000_020d0644.hpp new file mode 100644 index 00000000..74b88be3 --- /dev/null +++ b/include/Unknown/func_ov000_020d0644.hpp @@ -0,0 +1,19 @@ +#pragma once + +#include "System/SysNew.hpp" +#include "global.h" + +class UnkClass_func_ov000_020d0644 { +public: + /* 00 */ unk32 mUnk_00; + /* 04 */ unk32 mUnk_04; + /* 08 */ unk32 mUnk_08; + // /* 0c */ unk32 mUnk_0c; + /* 0x10 */ + + static void func_020d060c(void); + + UnkClass_func_ov000_020d0644(); + virtual ~UnkClass_func_ov000_020d0644(); + void func_ov000_020d0644(unk32 param_2, unk32 param_3, unk32 param_4, unk32 param_5, unk32 param_6); +}; |
