mirror of
https://github.com/zeldaret/st
synced 2026-07-10 15:03:58 -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:
@@ -41,7 +41,7 @@ public:
|
||||
/* 00 */ virtual ~FileSelect_UnkClass2_Sub4_Base() override {}
|
||||
};
|
||||
|
||||
class FileSelectSubScreen : public FileSelect_UnkClass2_Sub4_Base {
|
||||
class FileSelectSubScreen : public SysObject, public FileSelect_UnkClass2_Sub4_Base {
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
/* 001C */ unk32 mUnk_001C;
|
||||
@@ -65,12 +65,20 @@ public:
|
||||
/* 0FE4 */ UnkSystem5 mUnk_0FE4;
|
||||
/* 1020 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectSubScreen();
|
||||
void func_ov019_020cf73c(unk32 param1, unk32 param2);
|
||||
|
||||
// data_ov019_020d22b8 vtable
|
||||
/* 00 */ virtual ~FileSelectSubScreen() override {}
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
};
|
||||
|
||||
@@ -87,6 +95,7 @@ public:
|
||||
|
||||
// clang-format off
|
||||
FileSelectManager(unk32 param1) NO_INLINE :
|
||||
GameModeManagerBase(param1),
|
||||
mUnk_154(&this->mUnk_104),
|
||||
mUnk_158(NULL),
|
||||
mUnk_15C(NULL),
|
||||
@@ -111,8 +120,8 @@ public:
|
||||
/* 08 */ virtual ~FileSelectManager() override;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk32 param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
|
||||
@@ -148,6 +148,14 @@ public:
|
||||
return this->GetUnk03E0(this->mSaveSlotIndex);
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectMain();
|
||||
void func_ov019_020c61dc();
|
||||
void func_ov019_020c63dc();
|
||||
@@ -255,7 +263,7 @@ public:
|
||||
|
||||
// data_ov019_020d1ec0 vtable
|
||||
/* 00 */ virtual ~FileSelectMain() override;
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
/* 18 */ virtual void vfunc_18(void) override;
|
||||
};
|
||||
|
||||
@@ -74,6 +74,14 @@ public:
|
||||
/* 633 */ unk8 mUnk_633;
|
||||
/* 634 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectMicTest();
|
||||
void func_ov019_020cea74();
|
||||
void func_ov019_020cefe4();
|
||||
@@ -87,7 +95,7 @@ public:
|
||||
|
||||
// data_ov019_020d2284 vtable
|
||||
/* 00 */ virtual ~FileSelectMicTest() override;
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
/* 14 */ virtual void vfunc_14(unk8 *param1) override;
|
||||
};
|
||||
|
||||
@@ -138,6 +138,14 @@ public:
|
||||
/* 1CF7 */ unk8 mUnk_1CF7;
|
||||
/* 1CF8 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectOptions(s32 saveSlotIndex);
|
||||
void func_ov019_020ccd40();
|
||||
void func_ov019_020ccdf4();
|
||||
@@ -166,7 +174,7 @@ public:
|
||||
|
||||
// data_ov019_020d2200 vtable
|
||||
/* 00 */ virtual ~FileSelectOptions() override;
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
|
||||
@@ -29,13 +29,21 @@ public:
|
||||
/* 2C */ FileSelectOptions *mpOptions;
|
||||
/* 30 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
FileSelectOptionsManager(void *param1, unk32 param2);
|
||||
void func_ov019_020cc85c(unk32 param1);
|
||||
unk32 func_ov019_020cc874();
|
||||
|
||||
// data_ov019_020d2224 vtable
|
||||
/* 00 */ virtual ~FileSelectOptionsManager() override;
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
};
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
class FileSelectManager_UnkDrawBase : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 04 */ GameModeLinkListNode mUnk_04;
|
||||
/* 0C */
|
||||
|
||||
FileSelectManager_UnkDrawBase();
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/UnkStruct_02049b4c.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef u16 TouchFlags;
|
||||
@@ -13,14 +15,23 @@ enum TouchFlag_ {
|
||||
|
||||
class TouchControl {
|
||||
public:
|
||||
/* 00 */ u16 mUnk_00;
|
||||
/* 00 */ u16 mUnk_02;
|
||||
/* 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;
|
||||
/* 00 */ u16 mSpeed;
|
||||
/* 02 */ u16 mTimeBetweenTouches; // gets set to mTimeSinceTouch when touching the screen
|
||||
/* 04 */ u16 mTimeSinceTouch; // increases by mSpeed every frame
|
||||
/* 06 */ unk16 mRepeatStart;
|
||||
/* 08 */ unk16 mRepeatLoop;
|
||||
// mRepeatTimer starts at mRepeatStart, decreases by mSpeed while touching the screen.
|
||||
// if equal to 0, mRepeatTimer gets set to mRepeatLoop and the Repeat flag is set
|
||||
/* 0A */ unk16 mRepeatTimer;
|
||||
/* 0C */ bool mTouch;
|
||||
/* 10 */ Vec2s mTouchPos;
|
||||
/* 14 */ bool mTouchPrev;
|
||||
/* 16 */ Vec2s mTouchPosPrev;
|
||||
/* 18 */ Vec2s mTouchPosLast;
|
||||
/* 1C */ Vec2s mTouchPosStart;
|
||||
/* 20 */ TouchFlags mFlags;
|
||||
/* 22 */
|
||||
|
||||
TouchControl();
|
||||
void func_02014478(UnkStruct_02049b4c *param1, unk32 param2);
|
||||
};
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysFault.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/Overlay.h>
|
||||
// #include "Item/Item.hpp"
|
||||
|
||||
typedef u32 ItemFlag;
|
||||
|
||||
EXTERN_OVERLAY_ID(0);
|
||||
@@ -394,6 +395,7 @@ public:
|
||||
|
||||
void LoadEquipItem(ItemFlag equipId);
|
||||
|
||||
SysFault *func_020148d0(unk32 param1);
|
||||
void func_02014994(unk32 param1);
|
||||
};
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ void GX_SetGraphicsMode(unk32 param1, unk32 param2, unk32 param3);
|
||||
void GXS_SetGraphicsMode(unk32 param1);
|
||||
}
|
||||
|
||||
DECL_PTMF(TitleScreenPTMF, GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
DECL_PTMF(TitleScreenPTMF, Input *pButtons, TouchControl *pTouchControl);
|
||||
|
||||
typedef u32 TitleScreenState;
|
||||
enum TitleScreenState_ {
|
||||
@@ -40,15 +40,7 @@ public:
|
||||
/* 48 */
|
||||
};
|
||||
|
||||
class TitleScreen_Sub2_Base {
|
||||
public:
|
||||
/* 00 */ GameModeManagerBase_104_04 mUnk_00;
|
||||
/* 08 */
|
||||
|
||||
TitleScreen_Sub2_Base() {}
|
||||
};
|
||||
|
||||
class TitleScreen_Sub2 : public TitleScreen_Sub2_Base {
|
||||
class TitleScreen_Sub2 : public GameModeLinkListNode {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
@@ -61,6 +53,10 @@ public:
|
||||
mUnk_0C(0),
|
||||
mUnk_10(false) {}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
return this;
|
||||
}
|
||||
|
||||
// data_ov025_020c5b24 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
@@ -144,7 +140,7 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
class TitleScreen : public GameModeManagerBase_104 { // 0233c6d4
|
||||
class TitleScreen : public SysObject, public GameModeManagerBase_104 { // 0233c6d4
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 01C */ TitleScreenState mState;
|
||||
@@ -164,6 +160,14 @@ public:
|
||||
/* 344 */ unk32 mUnk_344;
|
||||
/* 348 */
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (this != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
TitleScreen();
|
||||
|
||||
void func_ov025_020c4e54();
|
||||
@@ -175,16 +179,16 @@ public:
|
||||
void func_ov025_020c5988();
|
||||
|
||||
// data_ov025_020c5aec
|
||||
void func_ov025_020c5200(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c5204(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c5240(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c53d0(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c55a4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c55e4(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl);
|
||||
void func_ov025_020c5200(Input *pButtons, TouchControl *pTouchControl);
|
||||
void func_ov025_020c5204(Input *pButtons, TouchControl *pTouchControl);
|
||||
void func_ov025_020c5240(Input *pButtons, TouchControl *pTouchControl);
|
||||
void func_ov025_020c53d0(Input *pButtons, TouchControl *pTouchControl);
|
||||
void func_ov025_020c55a4(Input *pButtons, TouchControl *pTouchControl);
|
||||
void func_ov025_020c55e4(Input *pButtons, TouchControl *pTouchControl);
|
||||
|
||||
// data_ov025_020c5b30 vtable
|
||||
/* 00 */ virtual ~TitleScreen() override;
|
||||
/* 08 */ virtual void vfunc_08(GameModePTMFParam2Struct *param1, TouchControl *pTouchControl) override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
/* 14 */ virtual void vfunc_14(unk8 *param1) override;
|
||||
@@ -211,8 +215,8 @@ public:
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk32 param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 38 */ virtual void vfunc_38() override;
|
||||
|
||||
static TitleScreenManager *Create(unk32 param1);
|
||||
|
||||
@@ -175,7 +175,7 @@ public:
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 04 */ GameModeLinkList<UnkSystem2_UnkSubSystem1_Base> mUnk_04;
|
||||
/* 0C */ void *mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ Vec2s mPos; // image position (among other things)
|
||||
|
||||
@@ -22,7 +22,7 @@ public:
|
||||
class UnkStruct_02049a2c {
|
||||
public:
|
||||
/* 00 */ GameModeBase *mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 04 */ void *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
|
||||
void Run(void);
|
||||
void func_02013370(unk32 param1);
|
||||
void func_02013724(void *param1);
|
||||
bool func_02013724(void *param1);
|
||||
|
||||
void func_ov018_020c48a4(unk32 param1);
|
||||
void func_ov018_020c48f8(); // loads overlay 0
|
||||
|
||||
@@ -1,29 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/button.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_02049b18_06 {
|
||||
public:
|
||||
/* 00 */ unk16 mUnk_00;
|
||||
/* 00 */ unk16 mUnk_02;
|
||||
/* 00 */ TouchControl mTouchControl;
|
||||
/* 22 */
|
||||
|
||||
UnkStruct_02049b18_06();
|
||||
};
|
||||
|
||||
class UnkStruct_02049b18_00 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_02049b18_00();
|
||||
};
|
||||
|
||||
class UnkStruct_02049b18 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_02049b18_00 mUnk_00;
|
||||
/* 04 */ unk16 mUnk_04;
|
||||
/* 00 */ Input mButtons;
|
||||
/* 06 */ UnkStruct_02049b18_06 mUnk_06;
|
||||
/* 0A */ STRUCT_PAD(0x0A, 0x58);
|
||||
/* 28 */ unk16 mUnk_28;
|
||||
/* 2A */ STRUCT_PAD(0x2A, 0x58);
|
||||
/* 58 */ unk16 mUnk_58;
|
||||
/* 5A */ unk16 mUnk_5A;
|
||||
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_02049b4c {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_02049b4c();
|
||||
~UnkStruct_02049b4c();
|
||||
};
|
||||
|
||||
extern UnkStruct_02049b4c data_02049b4c;
|
||||
@@ -9,8 +9,8 @@
|
||||
class UnkStruct_0204a060_Base3 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */ unk8 mUnk_0C;
|
||||
/* 04 */ GameModeLinkListNode mUnk_04;
|
||||
/* 0C */ bool mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
@@ -39,10 +39,9 @@ class UnkStruct_0204a060_Base : public UnkStruct_0204a060_Base2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
// /* 14 */ unk16 mUnk_16;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 1A */ unk16 mUnk_1A;
|
||||
/* 1A */ u16 mUnk_1A;
|
||||
/* 1C */ unk16 mUnk_1C;
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
@@ -69,12 +68,16 @@ public:
|
||||
|
||||
UnkStruct_0204a060();
|
||||
|
||||
void func_020183c0(void);
|
||||
bool func_020183d4(bool param1, void *param2, unk32 param3);
|
||||
static void func_02018424(void); //! TODO: is it a PTMF?
|
||||
|
||||
// data_02044048 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060() override;
|
||||
/* 0C */ virtual bool vfunc_0C(void) override;
|
||||
/* 14 */
|
||||
|
||||
static void func_020183b8(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204a060 data_0204a060;
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkMemFuncs.h"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeManagerBase;
|
||||
|
||||
struct UnkStruct_0204a110_Sub2_000_158 {
|
||||
u32 mUnk_00[3];
|
||||
unk8 mUnk_0C;
|
||||
@@ -188,7 +191,7 @@ public:
|
||||
/* DAC */ STRUCT_PAD(0xDBC, 0xDC0);
|
||||
/* DC0 */ UnkStruct_0204a110_Sub7 mUnk_DC0;
|
||||
/* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC;
|
||||
/* DEC */ unk32 mUnk_DEC;
|
||||
/* DEC */ GameModeManagerBase *mUnk_DEC;
|
||||
/* DF0 */ unk16 mUnk_DF0;
|
||||
/* DF2 */ unk8 mUnk_DF2;
|
||||
/* DF3 */ unk8 mUnk_DF3;
|
||||
@@ -204,14 +207,18 @@ public:
|
||||
/* E04 */ unk16 mUnk_E04;
|
||||
|
||||
UnkStruct_0204a110();
|
||||
|
||||
unk32 func_01ff9b50();
|
||||
|
||||
void func_02018c78(unk32 param1);
|
||||
void func_02018c90(unk32 param1);
|
||||
void func_02018d34();
|
||||
void func_020195a0(const char *param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
void func_0201967c(unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
void func_02019538(unk32 param1, unk32 param2);
|
||||
void func_02018c78(unk32 param1);
|
||||
|
||||
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
void func_ov001_020bd58c(void);
|
||||
|
||||
void func_ov018_020c5300(void);
|
||||
};
|
||||
|
||||
@@ -5,19 +5,20 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204e5f8_1C_Base {
|
||||
class UnkStruct_0204e5f8_1C_Base : GameModeLinkListNode {
|
||||
public:
|
||||
/* 20 */ GameModeManagerBase_104_04 mUnk_20;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 00 (base) */
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */
|
||||
|
||||
UnkStruct_0204e5f8_1C_Base() :
|
||||
mUnk_28(0) {}
|
||||
mUnk_08(0) {}
|
||||
};
|
||||
|
||||
class UnkStruct_0204e5f8_1C : UnkStruct_0204e5f8_1C_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
/* 0C */
|
||||
|
||||
// data_020440e8 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204e5f8_1C();
|
||||
@@ -26,9 +27,9 @@ public:
|
||||
class UnkStruct_0204e5f8 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_0204a060_Base3 mUnk_00;
|
||||
/* 14 */ unk32 mUnk_10;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 1A */ unk8 mUnk_1A;
|
||||
/* 1B */ unk8 mUnk_1B;
|
||||
@@ -36,6 +37,10 @@ public:
|
||||
/* 2C */ STRUCT_PAD(0x2C, 0x38);
|
||||
/* 38 */ unk8 mUnk_38;
|
||||
/* 39 */ unk8 mUnk_39;
|
||||
/* 3A */ u16 mUnk_3A;
|
||||
/* 3C */ unk8 mUnk_3C;
|
||||
/* 3D */ unk8 mUnk_3D;
|
||||
/* 3E */ u16 mUnk_3E;
|
||||
|
||||
UnkStruct_0204e5f8();
|
||||
void func_0201b9a8(void *param1);
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/button.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204e64c_00 {
|
||||
@@ -29,8 +30,7 @@ public:
|
||||
class UnkStruct_0204e64c {
|
||||
public:
|
||||
/* 00 */ UnkStruct_0204e64c_00 mUnk_00;
|
||||
/* 10 */ UnkStruct_02049b18_00 mUnk_10;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 10 */ Input mButtons;
|
||||
/* 16 */ unk8 mUnk_16;
|
||||
|
||||
UnkStruct_0204e64c();
|
||||
|
||||
@@ -11,7 +11,7 @@ public:
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ GameModeManagerBase_104_04 mUnk_14;
|
||||
/* 14 */ GameModeLinkListNode mUnk_14;
|
||||
|
||||
UnkStruct_027e0954();
|
||||
~UnkStruct_027e0954();
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_02049b18.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/button.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_02067bc4_Sub1 {
|
||||
@@ -89,16 +91,14 @@ public:
|
||||
class UnkStruct_ov000_020b504c {
|
||||
public:
|
||||
/* 000 */ UnkStruct_ov000_020b504c_Sub3 *mUnk_000;
|
||||
/* 004 */ unk32 mUnk_004;
|
||||
/* 004 */ GameModeManagerBase_004 *mUnk_004;
|
||||
/* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
|
||||
/* 00C */ UnkStruct_ov000_020b504c_Sub4 mUnk_00C[7];
|
||||
/* 028 */ unk32 mUnk_028;
|
||||
/* 02C */ unk32 mUnk_02C;
|
||||
/* 030 */ unk32 mUnk_030;
|
||||
/* 034 */ UnkStruct_02049b18_00 mUnk_034;
|
||||
/* 038 */ unk16 mUnk_038;
|
||||
/* 03A */ unk16 mUnk_03A;
|
||||
/* 03C */ STRUCT_PAD(0x3C, 0x5C);
|
||||
/* 034 */ Input mButtons;
|
||||
/* 03A */ TouchControl mTouchControl;
|
||||
/* 05C */ unk8 mUnk_05C[0x10];
|
||||
/* 06C */ unk8 mUnk_06C[2];
|
||||
/* 06E */ unk8 mUnk_06E;
|
||||
|
||||
@@ -45,11 +45,13 @@ public:
|
||||
|
||||
void func_0200381c(const char *soundDataPath, unk32 param2, unk32 param3);
|
||||
|
||||
void func_ov000_02069d3c(unk32 param1);
|
||||
void func_ov000_02069d7c(void);
|
||||
unk32 func_ov000_0206a5d8(unk32 param1);
|
||||
void func_ov000_0206a6a4(unk32 param1);
|
||||
void func_ov000_0206a758(void);
|
||||
void func_ov000_0206a77c(void);
|
||||
void func_ov000_020bd8ac(void);
|
||||
void func_ov001_020bd8ac(void);
|
||||
|
||||
void func_ov001_020bd8dc(void);
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
#define BTN_A (1 << 0) // 0x0001
|
||||
#define BTN_B (1 << 1) // 0x0002
|
||||
#define BTN_SELECT (1 << 2) // 0x0004
|
||||
@@ -12,3 +14,14 @@
|
||||
#define BTN_L (1 << 9) // 0x0200
|
||||
|
||||
#define CHECK_BUTTON_COMBO(value, btn) ((value) & (btn))
|
||||
|
||||
struct Input {
|
||||
/* 00 */ u16 cur;
|
||||
/* 02 */ volatile u16 press;
|
||||
/* 04 */ u16 release;
|
||||
/* 06 */
|
||||
|
||||
Input();
|
||||
unk32 func_02013c08(u16 param1);
|
||||
unk32 func_02013b24(unk32 param1);
|
||||
};
|
||||
|
||||
@@ -48,8 +48,8 @@ struct Vec2b {
|
||||
|
||||
struct Vec2s {
|
||||
/* 0 */ s16 x;
|
||||
/* 1 */ s16 y;
|
||||
/* 2 */
|
||||
/* 2 */ s16 y;
|
||||
/* 4 */
|
||||
|
||||
Vec2s() {}
|
||||
Vec2s(s16 X, s16 Y) {
|
||||
|
||||
Reference in New Issue
Block a user