mirror of
https://github.com/zeldaret/st
synced 2026-08-16 13:16:51 -04:00
Match GameModeManager and nearby/related functions (#22)
* match GameModeManager and surroundings * add small comment about data_ov000_020b1e48 * minor fixes * overlay 0 gamemode stuff * tool hotfix
This commit is contained in:
@@ -12,15 +12,13 @@ public:
|
||||
|
||||
// data_02044018 vtable
|
||||
/* 00 */ virtual ~GameModeBase();
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3);
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C() = 0;
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 24 */ virtual unk32 vfunc_24();
|
||||
/* 28 */
|
||||
|
||||
void func_02018374(void);
|
||||
};
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
// data_ov019_020d1d8c vtable
|
||||
/* 00 */ virtual ~GameModeFileSelect() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
|
||||
@@ -2,75 +2,128 @@
|
||||
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
#include "Unknown/UnkStruct_02049b4c.hpp"
|
||||
#include "nitro/button.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeManagerBase;
|
||||
class GameModeManagerBase_104;
|
||||
class GameModeManagerBase_104_0C;
|
||||
|
||||
class GameModeManagerBase_004 : public SysObject {
|
||||
public:
|
||||
unk32 *mUnk_00;
|
||||
|
||||
GameModeManagerBase_004();
|
||||
~GameModeManagerBase_004();
|
||||
|
||||
void func_0201bf24();
|
||||
void func_0201bf54();
|
||||
void func_0201bf90();
|
||||
void func_0201bfec();
|
||||
void func_0201c00c(unk32 param1, unk32 param2);
|
||||
void func_0201c068(unk16 param1);
|
||||
void func_0201c19c();
|
||||
void func_0201c124(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201c1e4();
|
||||
void func_0201c22c();
|
||||
|
||||
void func_ov001_020bd734(unk32 *param1);
|
||||
void func_ov001_020bd784();
|
||||
void func_0201c00c(unk32 param1, unk32 param2);
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_04 {
|
||||
class GameModeLinkListNode {
|
||||
public:
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ void *mUnk_04;
|
||||
/* 00 */ GameModeLinkListNode *mNext;
|
||||
/* 04 */ GameModeLinkListNode *mPrev;
|
||||
/* 08 */
|
||||
|
||||
void func_020166ac(void);
|
||||
void func_020166cc(void *param1);
|
||||
void func_020166f4(void *param1);
|
||||
GameModeLinkListNode();
|
||||
~GameModeLinkListNode();
|
||||
|
||||
GameModeManagerBase_104_04();
|
||||
~GameModeManagerBase_104_04();
|
||||
void func_020166cc(GameModeLinkListNode *param1);
|
||||
void func_020166f4(GameModeLinkListNode *param1);
|
||||
|
||||
static void func_020166ac(GameModeLinkListNode *param1);
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_0C_04 {
|
||||
template <typename T> class GameModeLinkList : public GameModeLinkListNode {
|
||||
public:
|
||||
/* 00 */ GameModeManagerBase_104_04 mUnk_00;
|
||||
GameModeLinkList *GetNext() {
|
||||
GameModeLinkListNode *next = mNext;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return (GameModeLinkList *) next;
|
||||
}
|
||||
|
||||
GameModeManagerBase_104_0C_04();
|
||||
GameModeLinkList *GetNext2() {
|
||||
GameModeLinkListNode *next = (GameModeLinkListNode *) *((u8 **) this + 2);
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return (GameModeLinkList *) next;
|
||||
}
|
||||
|
||||
GameModeLinkList *GetPrev() {
|
||||
GameModeLinkListNode *prev = mPrev;
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return (GameModeLinkList *) prev;
|
||||
}
|
||||
|
||||
T *GetTarget() {
|
||||
return (T *) this;
|
||||
}
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_0C {
|
||||
class GameModeManagerBase_104_0C : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_0C_04 mUnk_04;
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> mList;
|
||||
|
||||
GameModeLinkList<GameModeManagerBase_104_0C> *GetOrigin() {
|
||||
return (GameModeLinkList<GameModeManagerBase_104_0C> *) this;
|
||||
}
|
||||
|
||||
// data_ov000_020b1e48 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104_0C();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 08 */ virtual void vfunc_08(void *param1);
|
||||
/* 0C */ virtual void vfunc_0C(void *param1);
|
||||
};
|
||||
|
||||
struct GameModePTMFParam2Struct {
|
||||
/* 00 */ unk16 mUnk_00;
|
||||
/* 00 */ volatile u16 mButtons;
|
||||
class GameModeManagerBase_104_00 : public SysObject {
|
||||
public:
|
||||
GameModeManagerBase_104_00() {}
|
||||
|
||||
/* 04 */ GameModeLinkList<GameModeManagerBase_104> mList;
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104 : public SysObject {
|
||||
class GameModeManagerBase_104 : public GameModeManagerBase_104_00 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 1A */ unk8 mUnk_1A;
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ bool mUnk_19;
|
||||
/* 1A */ bool mUnk_1A;
|
||||
/* 1B */ unk8 mUnk_1B;
|
||||
/* 1C */
|
||||
|
||||
GameModeLinkList<GameModeManagerBase_104> *GetOrigin() {
|
||||
return (GameModeLinkList<GameModeManagerBase_104> *) this;
|
||||
}
|
||||
|
||||
GameModeManagerBase_104();
|
||||
|
||||
// data_ov000_020b1e60 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104();
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl);
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1);
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1);
|
||||
/* 14 */ virtual void vfunc_14(unk8 *param1);
|
||||
/* 18 */ virtual void vfunc_18(void);
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
};
|
||||
|
||||
class GameModeManagerBase : public SysObject {
|
||||
@@ -78,40 +131,54 @@ public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ GameModeManagerBase_004 mUnk_004;
|
||||
/* 008 */ void *mUnk_008;
|
||||
/* 00C */ unk8 mUnk_00C[0x0E0 - 0x00C];
|
||||
/* 00C */ STRUCT_PAD(0x0C, 0x1A);
|
||||
/* 01A */ bool mUnk_01A;
|
||||
/* 01C */ STRUCT_PAD(0x1C, 0xE0);
|
||||
/* 0E0 */ void *mUnk_0E0;
|
||||
/* 0E4 */ void *mUnk_0E4;
|
||||
/* 0E8 */ void *mUnk_0E8;
|
||||
/* 0EC */ unk32 mUnk_0EC;
|
||||
/* 0F0 */ unk32 mUnk_0F0;
|
||||
/* 0F4 */ unk32 mUnk_0F4;
|
||||
/* 0F4 */ bool mUnk_0F4;
|
||||
/* 0F4 */ bool mUnk_0F5;
|
||||
/* 0F4 */ unk8 mUnk_0F6;
|
||||
/* 0F4 */ unk8 mUnk_0F7;
|
||||
/* 0F8 */ unk32 mUnk_0F8;
|
||||
/* 0FC */ unk32 mUnk_0FC;
|
||||
/* 100 */ void *mUnk_100;
|
||||
/* 104 */ GameModeManagerBase_104 mUnk_104;
|
||||
/* 120 */ unk32 mUnk_120;
|
||||
/* 124 */ unk32 mUnk_124;
|
||||
/* 128 */ unk16 mUnk_128;
|
||||
/* 12A */ unk16 mUnk_12A; // timer that resets after the touchscreen was touched
|
||||
/* 12C */ unk32 mUnk_12C;
|
||||
/* 130 */ unk8 mUnk_130;
|
||||
/* 131 */ unk8 mUnk_131;
|
||||
/* 132 */ u8 mUnk_132; // bool?
|
||||
/* 133 */ unk8 mUnk_133;
|
||||
/* 134 */ Vec3p mUnk_134; // position of where the touchscreen is touched
|
||||
/* 140 */ unk32 mUnk_140;
|
||||
/* 144 */ unk32 mUnk_144;
|
||||
/* 120 */ Input mButtons;
|
||||
/* 126 */ TouchControl mTouchControl;
|
||||
/* 148 */ unk32 mUnk_148;
|
||||
/* 14C */ unk32 mUnk_14C;
|
||||
/* 150 */ unk32 mUnk_150;
|
||||
/* 150 */ bool mUnk_150;
|
||||
/* 150 */ unk8 mUnk_151;
|
||||
/* 150 */ unk8 mUnk_152;
|
||||
/* 150 */ unk8 mUnk_153;
|
||||
/* 154 */
|
||||
|
||||
GameModeManagerBase();
|
||||
GameModeManagerBase(unk32 param1);
|
||||
void func_02018550(void);
|
||||
void func_02018554(void);
|
||||
void func_02018634(unk32 param1);
|
||||
void *func_020186f8(unk32 param1);
|
||||
void func_02018704(void);
|
||||
void func_02018714(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201873c(void);
|
||||
void func_0201874c(void);
|
||||
void func_0201875c(void);
|
||||
void func_02018908(void);
|
||||
void func_02018a14(unk32 param2);
|
||||
void func_02018830(unk32 param2);
|
||||
void func_02018984(unk32 param1);
|
||||
void func_02018830(unk8 *param1);
|
||||
void func_02018908();
|
||||
void func_02018984(unk8 *param1);
|
||||
void func_02018a14(unk8 *param1);
|
||||
void func_02018a8c(void);
|
||||
void func_02018a9c(unk32 param1, unk32 param2);
|
||||
void func_02018aac(unk32 param1);
|
||||
void func_02018ac4(void);
|
||||
bool func_02018ad4(void);
|
||||
bool func_02018af0(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b54(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b90(GameModeLinkList<GameModeManagerBase_104> *param1, unk8 *param2);
|
||||
|
||||
// data_02044064 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
@@ -123,9 +190,9 @@ public:
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28(unk32 param1);
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1);
|
||||
/* 30 */ virtual void vfunc_30();
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1);
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1);
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1);
|
||||
/* 34 */ virtual void vfunc_34();
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
|
||||
@@ -14,7 +14,7 @@ public:
|
||||
|
||||
// data_ov025_020c5a68 vtable
|
||||
/* 00 */ virtual ~GameModeTitleScreen() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
|
||||
Reference in New Issue
Block a user