mirror of
https://github.com/zeldaret/st
synced 2026-07-09 06:43:27 -04:00
Decompile MainSelect overlay (#8)
* Decompile MainSelect overlay (~90%) * cleanup * jp delinks * fixed build and linking errors
This commit is contained in:
@@ -22,11 +22,9 @@ public:
|
||||
|
||||
class UnkStruct_ov000_020b539c {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x30];
|
||||
/* 00 */ Actor_5c mUnk_00[3];
|
||||
/* 30 */ ActorType *mUnk_30;
|
||||
/* 34 */
|
||||
|
||||
void func_02028cdc(Actor_5c *param1, unk32 param2);
|
||||
};
|
||||
|
||||
typedef u32 ActorFlags;
|
||||
|
||||
@@ -0,0 +1,488 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
extern "C" void func_0201e8d4(void *param1, void *param2);
|
||||
|
||||
struct Vec2s_cpp {
|
||||
/* 0 */ s16 x;
|
||||
/* 1 */ s16 y;
|
||||
/* 2 */
|
||||
|
||||
Vec2s_cpp() {};
|
||||
Vec2s_cpp(s16 __x, s16 __y) {
|
||||
x = __x;
|
||||
y = __y;
|
||||
}
|
||||
|
||||
void operator=(Vec2s_cpp &from) {
|
||||
x = from.x;
|
||||
y = from.y;
|
||||
}
|
||||
|
||||
void operator+=(Vec2s_cpp &from) {
|
||||
x = from.x + x;
|
||||
y = from.y + y;
|
||||
}
|
||||
|
||||
Vec2s_cpp &operator+(Vec2s_cpp &from) {
|
||||
Vec2s_cpp vec(x + from.x, y + from.y);
|
||||
return vec;
|
||||
}
|
||||
|
||||
Vec2s_cpp *operator&() {
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
struct Vec2us_cpp {
|
||||
/* 0 */ u16 x;
|
||||
/* 1 */ u16 y;
|
||||
/* 2 */
|
||||
|
||||
Vec2us_cpp() {};
|
||||
Vec2us_cpp(u16 __x, u16 __y) {
|
||||
x = __x;
|
||||
y = __y;
|
||||
}
|
||||
|
||||
void operator=(Vec2us_cpp &from) {
|
||||
x = from.x;
|
||||
y = from.y;
|
||||
}
|
||||
|
||||
void operator+=(Vec2us_cpp &from) {
|
||||
x += from.x;
|
||||
y += from.y;
|
||||
}
|
||||
|
||||
Vec2us_cpp &operator+(Vec2us_cpp &from) {
|
||||
Vec2us_cpp vec(x + from.x, y + from.y);
|
||||
return vec;
|
||||
}
|
||||
|
||||
Vec2us_cpp *operator&() {
|
||||
return this;
|
||||
}
|
||||
};
|
||||
|
||||
class UnkSubStruct1 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ u16 mUnk_04;
|
||||
/* 06 */ u16 mUnk_06;
|
||||
/* 08 */ u16 mUnk_08;
|
||||
/* 0A */ bool mUnk_0A;
|
||||
/* 0B */ bool mUnk_0B;
|
||||
/* 0C */ bool mUnk_0C;
|
||||
/* 0D */ bool mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
/* 10 */ unk32 mUnk_10; // brightness (in this context: of the background)
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
UnkSubStruct1();
|
||||
void func_0201ea68(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
u16 func_0201eaa0();
|
||||
|
||||
// data_02044330 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */
|
||||
|
||||
void UnkOperations(Vec2s *pPos, bool doSetPos) {
|
||||
int iVar1;
|
||||
|
||||
if (this->mUnk_08 != 0) {
|
||||
iVar1 = this->mUnk_08 - this->mUnk_0D;
|
||||
this->mUnk_08 = CLAMP(iVar1, 0, 0xFFFF);
|
||||
} else {
|
||||
if (this->mUnk_0A) {
|
||||
if (this->mUnk_04 < this->mUnk_06) {
|
||||
iVar1 = this->mUnk_04 + this->mUnk_0D;
|
||||
|
||||
if (iVar1 > this->mUnk_06) {
|
||||
iVar1 = this->mUnk_06;
|
||||
} else if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
|
||||
this->mUnk_04 = iVar1;
|
||||
this->vfunc_00();
|
||||
|
||||
if (this->mUnk_04 >= this->mUnk_06) {
|
||||
this->mUnk_10 = this->mUnk_20;
|
||||
this->mUnk_14 = this->mUnk_24;
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this->mUnk_0B && this->mUnk_04 != 0) {
|
||||
iVar1 = this->mUnk_04 - this->mUnk_0D;
|
||||
|
||||
if (iVar1 > this->mUnk_06) {
|
||||
iVar1 = this->mUnk_06;
|
||||
} else if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
|
||||
this->mUnk_04 = iVar1;
|
||||
this->vfunc_04();
|
||||
|
||||
if (this->mUnk_04 == 0) {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
this->mUnk_14 = this->mUnk_1C;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (doSetPos) {
|
||||
Vec2us local_4c_copy;
|
||||
Vec2us local_4c;
|
||||
func_0201e8d4(&local_4c_copy, this);
|
||||
local_4c.x = local_4c_copy.y;
|
||||
local_4c.y = local_4c_copy.x;
|
||||
pPos->x = local_4c.x;
|
||||
pPos->y = local_4c.y;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */ void *mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ Vec2s mPos; // image position (among other things)
|
||||
/* 18 */ STRUCT_PAD(0x18, 0x24);
|
||||
/* 24 */ Vec2us mPosOffset; // used to shift the button when selected
|
||||
/* 28 */ bool mUnk_28; // selected highlight effect when set to true
|
||||
/* 29 */ bool mUnk_29; // related to having the button selected
|
||||
/* 2A */ bool mUnk_2A; // disables button action
|
||||
/* 2A */ bool mUnk_2B;
|
||||
/* 2C */ bool mUnk_2C;
|
||||
/* 2D */ unk8 mUnk_2D;
|
||||
/* 2E */ unk8 mUnk_2E;
|
||||
/* 2F */ unk8 mUnk_2F;
|
||||
|
||||
UnkSystem2_UnkSubSystem1_Base();
|
||||
|
||||
// data_ov000_020b1ecc vtable
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem1_Base();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
};
|
||||
|
||||
// this class is related to the selectable buttons (actually more related to texture with things on top)
|
||||
class UnkSystem2_UnkSubSystem1_Derived1 : public UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 30 */ void *mUnk_30; // related to the background texture draw (idle)
|
||||
/* 34 */ unk32 mUnk_34; // related to the texture draw
|
||||
/* 38 */ unk16 mUnk_38; // related to the texture draw
|
||||
/* 3C */ Vec2us mUnk_3A; // overlaid elements position (text, icons etc...), relative to background position
|
||||
/* 40 */ unk16 mUnk_3E;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ unk32 mUnk_44;
|
||||
/* 48 */ void *mUnk_48; // related to the background texture draw (selected)
|
||||
/* 4C */ unk32 mUnk_4C;
|
||||
/* 50 */ unk16 mUnk_50; // related to the texture draw
|
||||
/* 50 */ unk16 mUnk_52;
|
||||
/* 54 */ unk32 mUnk_54;
|
||||
/* 58 */ unk32 mUnk_58;
|
||||
/* 5C */ unk32 mUnk_5C;
|
||||
/* 60 */
|
||||
|
||||
UnkSystem2_UnkSubSystem1_Derived1();
|
||||
UnkSystem2_UnkSubSystem1_Derived1(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
void func_ov000_020633c0(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
|
||||
// data_ov000_020b1efc vtable
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem1_Derived1() override {}
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem7 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
~UnkSystem2_UnkSubSystem7();
|
||||
};
|
||||
|
||||
//! TODO: conflicts with UnkSystem2_UnkSubSystem1_Derived1? mUnk_34 type differs for some reasons
|
||||
class UnkSystem2_UnkSubSystem1_Derived2 : public UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 30 */ void *mUnk_30; // related to the background texture draw (idle)
|
||||
/* 34 */ UnkSystem2_UnkSubSystem7 mUnk_34; // related to the texture draw
|
||||
/* 38 */ unk16 mUnk_38; // related to the texture draw
|
||||
/* 3C */ Vec2us mUnk_3A; // overlaid elements position (text, icons etc...), relative to background position
|
||||
/* 40 */ unk16 mUnk_3E;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ unk32 mUnk_44;
|
||||
/* 48 */ void *mUnk_48; // related to the background texture draw (selected)
|
||||
/* 4C */ unk32 mUnk_4C;
|
||||
/* 50 */ unk16 mUnk_50; // related to the texture draw
|
||||
/* 50 */ unk16 mUnk_52;
|
||||
/* 54 */ unk32 mUnk_54;
|
||||
/* 58 */ unk32 mUnk_58;
|
||||
/* 5C */ unk32 mUnk_5C;
|
||||
/* 60 */
|
||||
|
||||
UnkSystem2_UnkSubSystem1_Derived2(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
void func_ov000_020633c0(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
|
||||
// data_ov000_020b1efc vtable
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem1_Derived2() override {}
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem3 {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem1_Base *mUnk_00;
|
||||
/* 04 */
|
||||
|
||||
UnkSystem2_UnkSubSystem3(UnkSystem2_UnkSubSystem1_Base *param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
|
||||
void func_ov000_02062f30();
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem5_Base_10 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 014 */ void *mUnk_014;
|
||||
/* 018 */ unk32 mUnk_018;
|
||||
/* 01C */ void *mUnk_01C;
|
||||
/* 020 */ unk32 mUnk_020;
|
||||
/* 024 */ unk32 mUnk_024;
|
||||
/* 028 */ unk8 mUnk_028;
|
||||
/* 029 */ unk8 mUnk_029;
|
||||
/* 02A */ unk8 mUnk_02A;
|
||||
/* 02B */ unk8 mUnk_02B;
|
||||
/* 02C */ unk32 mUnk_02C;
|
||||
/* 030 */ unk32 mUnk_030;
|
||||
/* 034 */ unk32 mUnk_034;
|
||||
/* 038 */ unk32 mUnk_038;
|
||||
/* 03C */ unk32 mUnk_03C;
|
||||
/* 040 */ unk32 mUnk_040;
|
||||
/* 044 */ unk32 mUnk_044;
|
||||
/* 048 */ unk32 mUnk_048;
|
||||
/* 04C */ unk32 mUnk_04C;
|
||||
/* 050 */ STRUCT_PAD(0x50, 0x130);
|
||||
|
||||
// data_ov000_020b20fc (vtable)
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem5_Base_10();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 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();
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2C */ virtual void vfunc_2C();
|
||||
/* 30 */ virtual void vfunc_30();
|
||||
/* 34 */ virtual void vfunc_34();
|
||||
/* 38 */ virtual void vfunc_38();
|
||||
/* 3C */ virtual void vfunc_3C();
|
||||
/* 40 */ virtual void vfunc_40();
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
/* 48 */ virtual void vfunc_48();
|
||||
/* 4C */
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem5_Base {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ wchar_t *mpString; // in this context it points to the player's name
|
||||
/* 008 */ unk16 mUnk_008;
|
||||
/* 00A */ unk16 mUnk_00A;
|
||||
/* 00C */ void *mUnk_00C;
|
||||
/* 010 */ UnkSystem2_UnkSubSystem5_Base_10 mUnk_010;
|
||||
|
||||
~UnkSystem2_UnkSubSystem5_Base();
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem11 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ void *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ void *mUnk_18;
|
||||
/* 1C */ void *mUnk_1C;
|
||||
/* 20 */
|
||||
|
||||
void func_ov000_02061f60();
|
||||
~UnkSystem2_UnkSubSystem11();
|
||||
|
||||
// data_ov000_020b1e9c vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
};
|
||||
|
||||
// this class seems related to drawing strings?
|
||||
class UnkSystem2_UnkSubSystem5 : public UnkSystem2_UnkSubSystem5_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 130 */ STRUCT_PAD(0x130, 0x140);
|
||||
/* 140 */ unk16 mUnk_140;
|
||||
/* 142 */ unk16 mUnk_142;
|
||||
/* 144 */ unk16 mUnk_144;
|
||||
/* 146 */ unk16 mUnk_146;
|
||||
/* 148 */ unk32 mUnk_148;
|
||||
/* 14C */ unk8 mUnk_14C; // 0x544
|
||||
/* 14D */ unk8 mUnk_14D; // 0x545
|
||||
/* 14E */ unk8 mUnk_14E; // 0x546
|
||||
/* 14F */ unk8 mUnk_14F; // 0x547
|
||||
/* 150 */ UnkSystem2_UnkSubSystem11 mUnk_150;
|
||||
/* 170 */ void *mUnk_170;
|
||||
/* 144 */ STRUCT_PAD(0x174, 0x238);
|
||||
/* 238 */
|
||||
|
||||
UnkSystem2_UnkSubSystem5() {}
|
||||
UnkSystem2_UnkSubSystem5(unk32 param1, unk32 param2);
|
||||
~UnkSystem2_UnkSubSystem5() {}
|
||||
|
||||
void func_0201f498();
|
||||
void func_0201f4b4(unk32 param1);
|
||||
void func_0201f500(void *param1);
|
||||
void func_0201f730(unk32 param1);
|
||||
void func_0201f9c4();
|
||||
void func_0201fb78(wchar_t *param1);
|
||||
void func_0201fa70(unk32 param1);
|
||||
|
||||
// data_0204439c vtable
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem8_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkSystem2_UnkSubSystem1_Derived2 *mUnk_04;
|
||||
/* 08 */ bool mUnk_08;
|
||||
/* 09 */ unk8 mUnk_09;
|
||||
/* 0A */ unk8 mUnk_0A;
|
||||
/* 0B */ unk8 mUnk_0B;
|
||||
/* 0C */
|
||||
|
||||
UnkSystem2_UnkSubSystem8_Base(UnkSystem2_UnkSubSystem1_Derived2 *param1);
|
||||
|
||||
// data_ov000_020b1fac vtable
|
||||
/* 00 */ virtual void vfunc_00() = 0;
|
||||
/* 04 */ virtual void vfunc_04() = 0;
|
||||
};
|
||||
|
||||
// seems to be related to the animations of the ui elements
|
||||
class UnkSystem2_UnkSubSystem9 : public UnkSubStruct1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 30 */ unk32 mUnk_30;
|
||||
/* 34 */ unk32 mUnk_34;
|
||||
/* 38 */ unk32 mUnk_38;
|
||||
/* 3C */ unk32 mUnk_3C;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */
|
||||
|
||||
UnkSystem2_UnkSubSystem9();
|
||||
|
||||
// data_020442f4 vtable
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */
|
||||
|
||||
//! TODO: conflict with UnkStruct_ov019_020d24c8_28_304
|
||||
void func_0201e874(unk32 param1, void *param2, void *param3, unk32 param4);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem8 : public UnkSystem2_UnkSubSystem8_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */ UnkSystem2_UnkSubSystem9 mUnk_0C;
|
||||
/* 50 */
|
||||
|
||||
UnkSystem2_UnkSubSystem8() :
|
||||
UnkSystem2_UnkSubSystem8_Base(NULL) {}
|
||||
|
||||
UnkSystem2_UnkSubSystem8(UnkSystem2_UnkSubSystem1_Derived2 *param1) :
|
||||
UnkSystem2_UnkSubSystem8_Base(param1) {}
|
||||
|
||||
UnkSystem2_UnkSubSystem8(UnkSystem2_UnkSubSystem1_Derived1 *param1) :
|
||||
UnkSystem2_UnkSubSystem8_Base((UnkSystem2_UnkSubSystem1_Derived2 *) param1) {}
|
||||
|
||||
void func_ov000_02064080(void *param1, void *param2, unk32 param3, u16 param4);
|
||||
void func_ov000_0206415c(void *param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
void func_ov000_02063f64();
|
||||
|
||||
// data_ov000_020b1f8c vtable
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
};
|
||||
|
||||
class UnkSystem3 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */
|
||||
|
||||
UnkSystem3(const char *path, unk32 param2);
|
||||
~UnkSystem3();
|
||||
void func_02015410(const char *path, unk32 param2);
|
||||
void func_02015460(const char *param1, void *param2, unk32 param3);
|
||||
};
|
||||
|
||||
class UnkSystem4 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */
|
||||
|
||||
~UnkSystem4();
|
||||
};
|
||||
|
||||
class UnkSystem5 {
|
||||
public:
|
||||
/* 00 */ char *mUnk_00;
|
||||
/* 04 */ char *mUnk_04;
|
||||
/* 08 */ char *mUnk_08;
|
||||
/* 10 */ UnkSystem4 mUnk_0F00;
|
||||
/* 20 */ UnkSystem4 mUnk_0F10;
|
||||
/* 30 */ UnkSystem4 mUnk_0F20;
|
||||
/* 40 */
|
||||
|
||||
UnkSystem5() {}
|
||||
~UnkSystem5() {}
|
||||
void func_020171e4();
|
||||
void func_02017520(const char *nscrPath, const char *ncgrPath, const char *nclrPath);
|
||||
};
|
||||
@@ -0,0 +1,257 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelectMain.hpp"
|
||||
#include "FileSelect/FileSelectUnkDraw.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkSystem1.hpp"
|
||||
#include "global.h"
|
||||
#include "iterator.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "regs.h"
|
||||
#include "types.h"
|
||||
|
||||
extern const unk16 data_ov019_020d1bb0[];
|
||||
extern "C" void func_ov001_020bd6a8();
|
||||
|
||||
class UnkStructSub2 {
|
||||
public:
|
||||
UnkStructSub2();
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
};
|
||||
|
||||
class UnkStructSub4 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x18];
|
||||
/* 18 */ unk32 mUnk_0018;
|
||||
/* 1C */ unk32 mUnk_001C;
|
||||
/* 20 */ unk32 mUnk_0020;
|
||||
/* 20 */ unk32 mUnk_0024;
|
||||
/* 28 */ u8 mUnk_0028; // bool?
|
||||
/* 28 */ unk8 mUnk_0029;
|
||||
/* 28 */ unk8 mUnk_002A;
|
||||
/* 28 */ unk8 mUnk_002B;
|
||||
/* 2C */ UnkStructSub2 mUnk_002C;
|
||||
/* 30 */ STRUCT_PAD(0x30, 0x5C);
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5C */ unk16 mUnk_5E;
|
||||
/* 60 */ STRUCT_PAD(0x60, 0x6E);
|
||||
/* 6E */ unk8 mUnk_6E;
|
||||
/* 6F */ unk8 mUnk_6F;
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ unk16 mUnk_74;
|
||||
/* 76 */ unk16 mUnk_76;
|
||||
/* 78 */
|
||||
|
||||
void func_ov000_02060b64(void);
|
||||
};
|
||||
|
||||
// related to UnkStructSub2 but unsure how
|
||||
class FileSelect_UnkClass7 {
|
||||
public:
|
||||
class Sub5 {
|
||||
public:
|
||||
u16 one;
|
||||
u16 two;
|
||||
};
|
||||
|
||||
/* 0000 (vtable) */
|
||||
/* 0004 */ UnkStructSub4 mUnk_0004[30];
|
||||
/* 0E14 */ Sub5 mUnk_0E14[30];
|
||||
|
||||
// data_ov019_020d22a8 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
};
|
||||
|
||||
class FileSelect_UnkClass2_Sub4_Base : public GameModeManagerBase_104 {
|
||||
public:
|
||||
/* 0000 (vtable) */
|
||||
|
||||
FileSelect_UnkClass2_Sub4_Base() {}
|
||||
|
||||
/* 00 */ virtual ~FileSelect_UnkClass2_Sub4_Base() override {}
|
||||
};
|
||||
|
||||
class FileSelectSubScreen : public FileSelect_UnkClass2_Sub4_Base {
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
/* 001C */ unk32 mUnk_001C;
|
||||
/* 0020 */ unk32 mUnk_0020;
|
||||
/* 0020 */ unk32 mUnk_0024;
|
||||
/* 0028 */ u8 mUnk_0028; // bool?
|
||||
/* 0028 */ unk8 mUnk_0029;
|
||||
/* 0028 */ unk8 mUnk_002A;
|
||||
/* 0028 */ unk8 mUnk_002B;
|
||||
/* 002C */ UnkStructSub2 mUnk_002C;
|
||||
/* 007C */ STRUCT_PAD(0x30, 0xEB8);
|
||||
/* 0EB8 */ UnkSystem3 mUnk_0EB8;
|
||||
/* 0EC4 */ UnkSystem3 mUnk_0EC4;
|
||||
/* 0ED0 */ UnkSystem3 mUnk_0ED0;
|
||||
/* 0EDC */ UnkSystem3 mUnk_0EDC;
|
||||
/* 0EE8 */ UnkSystem3 mUnk_0EE8;
|
||||
/* 0EF4 */ UnkSystem5 mUnk_0EF4;
|
||||
/* 0F30 */ UnkSystem5 mUnk_0F30;
|
||||
/* 0F6C */ UnkSystem5 mUnk_0F6C;
|
||||
/* 0FA8 */ UnkSystem5 mUnk_0FA8;
|
||||
/* 0FE4 */ UnkSystem5 mUnk_0FE4;
|
||||
/* 1020 */
|
||||
|
||||
FileSelectSubScreen();
|
||||
void func_ov019_020cf73c(unk32 param1, unk32 param2);
|
||||
|
||||
// data_ov019_020d22b8 vtable
|
||||
/* 00 */ virtual ~FileSelectSubScreen() override {}
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
};
|
||||
|
||||
class FileSelectManager : public GameModeManagerBase { // 0x02262dbc
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */ GameModeManagerBase_104 *mUnk_154;
|
||||
/* 158 */ FileSelectMain *mUnk_158;
|
||||
/* 15C */ FileSelectSubScreen *mUnk_15C;
|
||||
/* 160 */ FileSelectManager_160 *mUnk_160;
|
||||
/* 164 */ FileSelectManager_164 *mUnk_164;
|
||||
/* 168 */ UnkSystem1_ov019_Derived2 mUnk_168;
|
||||
/* 180 */
|
||||
|
||||
// clang-format off
|
||||
FileSelectManager(unk32 param1) NO_INLINE :
|
||||
mUnk_154(&this->mUnk_104),
|
||||
mUnk_158(NULL),
|
||||
mUnk_15C(NULL),
|
||||
mUnk_160(NULL),
|
||||
mUnk_164(NULL) {
|
||||
REG_DISPCNT &= 0xFFCFFFEF;
|
||||
REG_DISPCNT |= 0x00200010;
|
||||
|
||||
REG_DISPCNT_SUB &= 0xFFCFFFEF;
|
||||
REG_DISPCNT_SUB |= 0x00200010;
|
||||
|
||||
this->mUnk_004.func_ov001_020bd734((unk32*)data_ov019_020d1bb0);
|
||||
func_ov001_020bd6a8();
|
||||
}
|
||||
// clang-format on
|
||||
|
||||
void func_ov019_020c5038();
|
||||
void func_ov019_020c503c();
|
||||
void func_ov019_020c51a8();
|
||||
|
||||
// data_ov019_020d1dc0 vtable
|
||||
/* 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;
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
|
||||
// static initializers classes
|
||||
|
||||
class UnkStruct_ov019_020d1d80 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov019_020d1d80(unk32 param1) {
|
||||
this->mUnk_00 = param1;
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d1e4c {
|
||||
public:
|
||||
/* 00 */ unk16 mUnk_00;
|
||||
/* 00 */ u16 mUnk_02;
|
||||
/* 04 */ u16 mUnk_04[2];
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ Vec2s mUnk_1C;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d1e94 {
|
||||
public:
|
||||
/* 00 */ u16 mUnk_00;
|
||||
/* 02 */ u16 mUnk_02;
|
||||
/* 04 */ u16 mUnk_04;
|
||||
/* 06 */ u16 mUnk_06;
|
||||
/* 08 */ u16 mUnk_08;
|
||||
/* 0A */ u16 mUnk_0A;
|
||||
/* 0C */ u16 mUnk_0C;
|
||||
/* 0E */ u16 mUnk_0E;
|
||||
/* 10 */ u16 mUnk_10;
|
||||
/* 12 */ u16 mUnk_12;
|
||||
/* 14 */ u16 mUnk_14;
|
||||
/* 16 */ u16 mUnk_16;
|
||||
/* 18 */ u16 mUnk_18;
|
||||
/* 1A */ u16 mUnk_1A;
|
||||
/* 1C */ u16 mUnk_1C;
|
||||
/* 1E */ u16 mUnk_1E;
|
||||
/* 20 */ u16 mUnk_20;
|
||||
/* 22 */ u16 mUnk_22;
|
||||
/* 24 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d1e70 {
|
||||
public:
|
||||
/* 00 */ Vec2s mUnk_00;
|
||||
/* 04 */ Vec2s mUnk_04;
|
||||
/* 08 */ Vec2s mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ Vec2s mUnk_10;
|
||||
/* 14 */ Vec2s mUnk_14;
|
||||
/* 18 */ Vec2s mUnk_18;
|
||||
/* 1C */ Vec2s mUnk_1C;
|
||||
/* 20 */ Vec2s mUnk_20;
|
||||
/* 24 */
|
||||
|
||||
static UnkStruct_ov019_020d1e4c data_ov019_020d1e4c;
|
||||
static UnkStruct_ov019_020d1e94 data_ov019_020d1e94;
|
||||
|
||||
UnkStruct_ov019_020d1e70() {
|
||||
this->mUnk_00.x = 0x80;
|
||||
this->mUnk_00.y = 0x60;
|
||||
|
||||
data_ov019_020d1e94.mUnk_00 = 0x80;
|
||||
data_ov019_020d1e94.mUnk_02 = 0x60;
|
||||
|
||||
this->mUnk_20.x = 0x00;
|
||||
this->mUnk_20.y = 0x100;
|
||||
|
||||
this->mUnk_1C.x = 0x00;
|
||||
this->mUnk_1C.y = -0x1E;
|
||||
|
||||
this->mUnk_18.x = 0x00;
|
||||
this->mUnk_18.y = 0x64;
|
||||
|
||||
this->mUnk_14.x = 0x00;
|
||||
this->mUnk_14.y = 0x64;
|
||||
|
||||
this->mUnk_10.x = 0x00;
|
||||
this->mUnk_10.y = 0x32;
|
||||
|
||||
data_ov019_020d1e4c.mUnk_1C.x = 0x00;
|
||||
data_ov019_020d1e4c.mUnk_1C.y = 0x100;
|
||||
|
||||
this->mUnk_08.x = 0x00;
|
||||
this->mUnk_08.y = 0x100;
|
||||
|
||||
this->mUnk_04.x = 0x00;
|
||||
this->mUnk_04.y = 0x32;
|
||||
|
||||
this->mUnk_00.x = 0x00;
|
||||
this->mUnk_00.y = 0x32;
|
||||
|
||||
data_ov019_020d1e4c.mUnk_10 = 0x20003;
|
||||
this->mUnk_0C = 0x20004;
|
||||
}
|
||||
};
|
||||
|
||||
extern const UnkStruct_ov019_020d1e70 data_ov019_020d1e70;
|
||||
@@ -0,0 +1,299 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/UnkSubStruct9.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Save/SaveManager.hpp"
|
||||
#include "Unknown/UnkSystem1.hpp"
|
||||
#include "global.h"
|
||||
#include "iterator.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef Iterator<UnkSubStruct9, MAX_SAVE_SLOTS> FileSlotIterator;
|
||||
|
||||
/*
|
||||
- "Slot Select" refers to the screen where you choose which file to use
|
||||
- "File Manager" refers to the screen with the "start", "copy" and "erase" buttons
|
||||
- "Choose Mode" refers to the screen with the "adventure" and "battle" buttons (it also hosts "contact mode" and "options")
|
||||
- "Enter Game Mode" refers to the transition from the file select to battle mode or adventure mode
|
||||
- "From" means "load the elements from that screen when coming from the previous one"
|
||||
- "To" means "unload the elements from that screen and load the next one"
|
||||
*/
|
||||
typedef u32 FileSelectState;
|
||||
enum FileSelectState_ {
|
||||
/* 0x00 */ FileSelectState_Unk_00 = 0, // none or pre-init?
|
||||
/* 0x01 */ FileSelectState_Init = 1,
|
||||
/* 0x02 */ FileSelectState_SlotSelectIdle = 2,
|
||||
/* 0x03 */ FileSelectState_SlotSelectToFileManager = 3,
|
||||
/* 0x04 */ FileSelectState_FileManagerFromSlotSelect = 4,
|
||||
/* 0x05 */ FileSelectState_FileManagerToSlotSelect = 5,
|
||||
/* 0x06 */ FileSelectState_SlotSelectFromFileManager = 6,
|
||||
/* 0x07 */ FileSelectState_FileManagerIdle = 7,
|
||||
/* 0x08 */ FileSelectState_FileManagerToChooseMode = 8,
|
||||
/* 0x09 */ FileSelectState_ChooseModeFromFileManager = 9,
|
||||
/* 0x0A */ FileSelectState_ChooseModeToFileManager = 10,
|
||||
/* 0x0B */ FileSelectState_FileManagerFromChooseMode = 11,
|
||||
/* 0x0C */ FileSelectState_ChooseModeIdle = 12,
|
||||
/* 0x0D */ FileSelectState_ChooseModeToEnterGameMode = 13,
|
||||
/* 0x0E */ FileSelectState_EnterGameMode = 14,
|
||||
/* 0x0F */ FileSelectState_SlotSelectToNewFile = 15,
|
||||
/* 0x10 */ FileSelectState_NewFileToSlotSelect = 16,
|
||||
/* 0x11 */ FileSelectState_FileManagerToCopyErase = 17,
|
||||
/* 0x12 */ FileSelectState_CopyEraseFromFileManager = 18,
|
||||
/* 0x13 */ FileSelectState_ChooseModeToContactMode = 19, // contact mode is another overlay to there's no "from" variant
|
||||
/* 0x14 */ FileSelectState_OptionsToChooseMode = 20,
|
||||
/* 0x15 */ FileSelectState_NewFileFromSlotSelect = 21,
|
||||
/* 0x16 */ FileSelectState_OptionsFromChooseMode = 22,
|
||||
/* 0x17 */ FileSelectState_Max = 23
|
||||
};
|
||||
|
||||
typedef u32 FileSelectExitMode;
|
||||
enum FileSelectExitMode_ {
|
||||
/* 0x00 */ FileSelectExitMode_AdventureMode = 0,
|
||||
/* 0x01 */ FileSelectExitMode_BattleMode = 1,
|
||||
/* 0x02 */ FileSelectExitMode_Unk_2 = 2,
|
||||
/* 0x03 */ FileSelectExitMode_Unk_3 = 3,
|
||||
};
|
||||
|
||||
// used to draw the swords from the adventure and battle buttons
|
||||
class UnkSubStruct19 {
|
||||
public:
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ void *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C; // pause the animation timer (in this context: pause the shiny animation on the sword)
|
||||
/* 10 */ unk32 mUnk_10; // animation timer
|
||||
/* 14 */ unk32 mUnk_14; // animation speed (also affects above timer)
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ void *mUnk_1C; // pointer to animation bank ("ABNK")
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */ void *mUnk_30; // pointer to somewhere inside "CEBK"
|
||||
/* 34 */ void *mUnk_34;
|
||||
/* 38 */ unk32 mUnk_38;
|
||||
/* 3C */ unk32 mUnk_3C;
|
||||
/* 40 */ unk32 mUnk_40; // related to the width of the texture (scaling matrix?)
|
||||
/* 44 */ unk32 mUnk_44; // related to the height of the texture
|
||||
/* 48 */ Vec2us mUnk_48;
|
||||
/* 4C */ unk32 mUnk_4C;
|
||||
/* 50 */ unk32 mUnk_50;
|
||||
/* 54 */ unk32 mUnk_54;
|
||||
/* 58 */ unk32 mUnk_58; // another timer?
|
||||
/* 5C */ Vec2us mUnk_5C; // position of the animated texture
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */ unk32 mUnk_68;
|
||||
/* 6C */ unk32 mUnk_6C;
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ unk32 mUnk_74;
|
||||
/* 78 */
|
||||
|
||||
UnkSubStruct19();
|
||||
};
|
||||
|
||||
class FileSelectMain : public GameModeManagerBase_104 { // 022E5F70
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
/* 001C */ FileSelectState mState;
|
||||
/* 0020 */ FileSelectExitMode mExitMode;
|
||||
/* 0024 */ s8 mSaveSlotIndex;
|
||||
/* 0025 */ unk8 mUnk_0025;
|
||||
/* 0026 */ unk8 mUnk_0026;
|
||||
/* 0027 */ unk8 mUnk_0027;
|
||||
/* 0028 */ unk32 mUnk_0028;
|
||||
/* 002C */ UnkSubStruct1 mUnk_002C;
|
||||
/* 005C */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_005C;
|
||||
/* 00BC */ UnkSystem2_UnkSubSystem9 mUnk_00BC;
|
||||
|
||||
// upper "select file"
|
||||
/* 0100 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_0100;
|
||||
/* 0160 */ UnkSystem2_UnkSubSystem3 mUnk_0160;
|
||||
/* 0164 */ UnkSystem2_UnkSubSystem5 mUnk_0164;
|
||||
/* 039C */ UnkSystem2_UnkSubSystem9 mUnk_039C;
|
||||
|
||||
/* 03E0 */ FileSlotIterator mUnk_03E0;
|
||||
/* 03E8 */ UnkSystem2_UnkSubSystem8 mUnk_03E8[2]; // "1" and "2" icons
|
||||
|
||||
// "start" button
|
||||
/* 0488 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_0488;
|
||||
/* 04E8 */ unk8 mUnk_04E8[0x38];
|
||||
/* 0520 */ UnkSystem2_UnkSubSystem3 mUnk_0520;
|
||||
/* 0524 */ UnkSystem2_UnkSubSystem5 mUnk_0524;
|
||||
/* 075C */ UnkSystem2_UnkSubSystem9 mUnk_075C;
|
||||
|
||||
/* 07A0 */ UnkSystem2_UnkSubSystem9 mUnk_07A0;
|
||||
|
||||
// "copy" button
|
||||
/* 07E4 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_07E4;
|
||||
/* 0844 */ UnkSystem2_UnkSubSystem3 mUnk_0844;
|
||||
/* 0848 */ UnkSystem2_UnkSubSystem5 mUnk_0848;
|
||||
/* 0A80 */ UnkSystem2_UnkSubSystem9 mUnk_0A80;
|
||||
|
||||
// "erase" button
|
||||
/* 0AC4 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_0AC4;
|
||||
/* 0B24 */ UnkSystem2_UnkSubSystem3 mUnk_0B24;
|
||||
/* 0B28 */ UnkSystem2_UnkSubSystem5 mUnk_0B28;
|
||||
/* 0D60 */ UnkSystem2_UnkSubSystem9 mUnk_0D60;
|
||||
|
||||
// "adventure" button
|
||||
/* 0DA4 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_0DA4;
|
||||
/* 0E04 */ unk8 mUnk_0E04[0x38];
|
||||
/* 0E3C */ UnkSystem2_UnkSubSystem3 mUnk_0E3C;
|
||||
/* 0E40 */ UnkSystem2_UnkSubSystem5 mUnk_0E40;
|
||||
/* 1078 */ UnkSystem2_UnkSubSystem9 mUnk_1078;
|
||||
|
||||
// adventure mode animated sword icon
|
||||
/* 10BC */ UnkSystem2_UnkSubSystem9 mUnk_10BC;
|
||||
/* 1100 */ UnkSystem2_UnkSubSystem9 mUnk_1100;
|
||||
/* 1144 */ UnkSubStruct19 mUnk_1144;
|
||||
|
||||
// "battle" button
|
||||
/* 11BC */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_11BC;
|
||||
/* 121C */ unk8 mUnk_121C[0x38];
|
||||
/* 1254 */ UnkSystem2_UnkSubSystem3 mUnk_1254;
|
||||
/* 1258 */ UnkSystem2_UnkSubSystem5 mUnk_1258;
|
||||
/* 1490 */ UnkSystem2_UnkSubSystem9 mUnk_1490;
|
||||
|
||||
// battle mode animated sword icon
|
||||
/* 14D4 */ UnkSystem2_UnkSubSystem9 mUnk_14D4;
|
||||
/* 1518 */ UnkSystem2_UnkSubSystem9 mUnk_1518;
|
||||
/* 155C */ UnkSubStruct19 mUnk_155C;
|
||||
|
||||
// "contact mode" button
|
||||
/* 15D4 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_15D4;
|
||||
/* 1634 */ unk8 mUnk_1634[0x38];
|
||||
/* 166C */ UnkSystem2_UnkSubSystem3 mUnk_166C;
|
||||
/* 1670 */ UnkSystem2_UnkSubSystem5 mUnk_1670;
|
||||
/* 18A8 */ UnkSystem2_UnkSubSystem9 mUnk_18A8;
|
||||
|
||||
// "options" button
|
||||
/* 18EC */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_18EC;
|
||||
/* 194C */ unk8 mUnk_194C[0x38];
|
||||
/* 1984 */ UnkSystem2_UnkSubSystem3 mUnk_1984;
|
||||
/* 1988 */ UnkSystem2_UnkSubSystem5 mUnk_1988;
|
||||
/* 1BC0 */ UnkSystem2_UnkSubSystem9 mUnk_1BC0;
|
||||
|
||||
/* 1C04 */ UnkSystem1_ov019_Derived3 mUnk_1C04;
|
||||
/* 1C28 */
|
||||
|
||||
UnkSubStruct9 &GetUnk03E0(int saveSlotIndex) {
|
||||
return this->mUnk_03E0.GetRef(saveSlotIndex);
|
||||
}
|
||||
|
||||
UnkSubStruct9 &GetUnk03E0() {
|
||||
return this->GetUnk03E0(this->mSaveSlotIndex);
|
||||
}
|
||||
|
||||
FileSelectMain();
|
||||
void func_ov019_020c61dc();
|
||||
void func_ov019_020c63dc();
|
||||
void func_ov019_020c6c14();
|
||||
void func_ov019_020c6c18();
|
||||
void func_ov019_020c6c54();
|
||||
void func_ov019_020c6c9c();
|
||||
void func_ov019_020c6ca0();
|
||||
void func_ov019_020c6cd0();
|
||||
void func_ov019_020c6d10();
|
||||
void func_ov019_020c6e3c();
|
||||
void func_ov019_020c7000();
|
||||
void func_ov019_020c72a0();
|
||||
void func_ov019_020c757c();
|
||||
void func_ov019_020c7a44();
|
||||
void func_ov019_020c7dc8();
|
||||
void func_ov019_020c8524();
|
||||
void func_ov019_020c854c();
|
||||
void func_ov019_020c8c4c();
|
||||
void func_ov019_020c92dc();
|
||||
void func_ov019_020ca6a4();
|
||||
void func_ov019_020ca940();
|
||||
bool func_ov019_020cb238();
|
||||
void func_ov019_020cb2a8();
|
||||
void func_ov019_020cb2dc();
|
||||
void func_ov019_020cb324();
|
||||
void SetState(FileSelectState state);
|
||||
void func_ov019_020cb6e8();
|
||||
void func_ov019_020cb5dc();
|
||||
void func_ov019_020cb664();
|
||||
void func_ov019_020cb718();
|
||||
bool func_ov019_020cb748();
|
||||
|
||||
// data_ov019_020d1edc
|
||||
void func_ov019_020c6d08();
|
||||
void func_ov019_020c6d0c();
|
||||
void func_ov019_020c6d48();
|
||||
void func_ov019_020c6e14();
|
||||
void func_ov019_020c717c();
|
||||
void func_ov019_020c71d0();
|
||||
void func_ov019_020c71f0();
|
||||
void func_ov019_020c7210();
|
||||
void func_ov019_020c7274();
|
||||
void func_ov019_020c7768();
|
||||
void func_ov019_020c77b8();
|
||||
void func_ov019_020c7804();
|
||||
void func_ov019_020c7858();
|
||||
void func_ov019_020c7878();
|
||||
void func_ov019_020c78ac();
|
||||
void func_ov019_020c7910();
|
||||
void func_ov019_020c7c3c();
|
||||
void func_ov019_020c7c48();
|
||||
void func_ov019_020c7c70();
|
||||
void func_ov019_020c7d3c();
|
||||
void func_ov019_020c80dc();
|
||||
void func_ov019_020c80e8();
|
||||
|
||||
// data_ov019_020d1f94
|
||||
void func_ov019_020c8290();
|
||||
void func_ov019_020c82c4();
|
||||
void func_ov019_020c8454();
|
||||
void func_ov019_020c8aac();
|
||||
void func_ov019_020c8ad8();
|
||||
void func_ov019_020c8b10();
|
||||
void func_ov019_020c8b48();
|
||||
void func_ov019_020c8b74();
|
||||
void func_ov019_020c9b28();
|
||||
void func_ov019_020c9b70();
|
||||
void func_ov019_020c9bcc();
|
||||
void func_ov019_020c9c18();
|
||||
void func_ov019_020c9c70();
|
||||
void func_ov019_020c9d88();
|
||||
void func_ov019_020c9e08();
|
||||
void func_ov019_020ca80c();
|
||||
void func_ov019_020ca844();
|
||||
void func_ov019_020ca87c();
|
||||
void func_ov019_020ca8b4();
|
||||
void func_ov019_020cb180();
|
||||
void func_ov019_020cb1dc();
|
||||
void func_ov019_020c80f4();
|
||||
|
||||
// data_ov019_020d204c
|
||||
void func_ov019_020cb26c();
|
||||
void func_ov019_020cb4bc();
|
||||
void func_ov019_020cb4c8();
|
||||
void func_ov019_020cb4d4();
|
||||
void func_ov019_020cb4e0();
|
||||
void func_ov019_020cb4ec();
|
||||
void func_ov019_020cb4f8();
|
||||
void func_ov019_020cb504();
|
||||
void func_ov019_020cb510();
|
||||
void func_ov019_020cb51c();
|
||||
void func_ov019_020cb528();
|
||||
void func_ov019_020cb534();
|
||||
void func_ov019_020cb540();
|
||||
void func_ov019_020cb54c();
|
||||
void func_ov019_020cb558();
|
||||
void func_ov019_020cb564();
|
||||
void func_ov019_020cb570();
|
||||
void func_ov019_020cb57c();
|
||||
void func_ov019_020cb588();
|
||||
void func_ov019_020cb5b0();
|
||||
void func_ov019_020cb5bc();
|
||||
void func_ov019_020cb268();
|
||||
|
||||
// data_ov019_020d1ec0 vtable
|
||||
/* 00 */ virtual ~FileSelectMain() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 18 */ virtual void vfunc_18(void) override;
|
||||
};
|
||||
@@ -0,0 +1,128 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/Common.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
#define MAX_MIC_LEVELS 4
|
||||
#define MIC_LEVEL_1 0 // green bar
|
||||
#define MIC_LEVEL_2 1 // yellow bar
|
||||
#define MIC_LEVEL_3 2 // orange bar
|
||||
#define MIC_LEVEL_4 3 // red bar
|
||||
|
||||
typedef u32 FSMicTestState;
|
||||
enum FSMicTestState_ {
|
||||
/* 0x00 */ FSMicTestState_MicTestIdle = 0,
|
||||
/* 0x01 */ FSMicTestState_OptionsToMicTest = 1,
|
||||
/* 0x02 */ FSMicTestState_MicTestToOptions = 2,
|
||||
/* 0x03 */ FSMicTestState_OptionsIdle = 3,
|
||||
/* 0x04 */ FSMicTestState_Max = 4
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_28_258 {
|
||||
public:
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 0A */ Vec2us_cpp mPos;
|
||||
/* 0E */ unk16 mUnk_0E;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258() {
|
||||
mUnk_00 = NULL;
|
||||
mUnk_04 = 0;
|
||||
mPos.x = 0;
|
||||
mPos.y = 0;
|
||||
};
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_258(unk32 param1, unk32 param2) :
|
||||
mUnk_00(0),
|
||||
mUnk_04(0) {
|
||||
this->UnknownAction(param1, param2);
|
||||
}
|
||||
|
||||
void UnknownAction(unk32 param1, unk32 param2) {
|
||||
this->func_ov000_0205fc20(param1, param2, &this->mPos, &this->mUnk_0E);
|
||||
this->mUnk_12 = param1;
|
||||
this->mUnk_14 = param2;
|
||||
}
|
||||
|
||||
void func_ov000_0205fc20(unk32 param1, unk32 param2, void *param3, void *param4);
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_28_270_18 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00[MAX_MIC_LEVELS];
|
||||
/* 60 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_28_270 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_ov019_020d24c8_28_258 mUnk_00;
|
||||
/* 18 */ UnkStruct_ov019_020d24c8_28_270_18 mUnk_18;
|
||||
/* 78 */ bool mUnk_78[MAX_MIC_LEVELS];
|
||||
/* 7C */ u8 mUnk_7C[15];
|
||||
/* 8B */ unk8 mUnk_8B;
|
||||
/* 8C */ u16 mUnk_8C;
|
||||
/* 8E */ Vec2s mUnk_8E; // mic test's background rectangles position
|
||||
/* 90 */ unk16 mUnk_92;
|
||||
/* 94 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_270();
|
||||
void func_ov019_020cf130();
|
||||
void func_ov019_020cf168();
|
||||
void func_ov019_020cf21c();
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_28_304 {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem9 mUnk_000;
|
||||
/* 44 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_044;
|
||||
/* A4 */ UnkSystem2_UnkSubSystem8 mUnk_0A4;
|
||||
/* F4 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_28_304(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6) :
|
||||
mUnk_044(param1, param2, param3, param4, param5, param6),
|
||||
mUnk_0A4(&mUnk_044) {}
|
||||
void func_0201e874(unk32 param1, void *param2, void *param3, unk32 param4);
|
||||
};
|
||||
|
||||
// defines the mic test screen (0x022e9b84)
|
||||
class FileSelectMicTest : public GameModeManagerBase_104 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 01C */ FSMicTestState mState;
|
||||
/* 020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // "mic test" string
|
||||
/* 258 */ UnkStruct_ov019_020d24c8_28_258 mUnk_258; // "mic test" background
|
||||
/* 270 */ UnkStruct_ov019_020d24c8_28_270 mUnk_270; // microphone level display (green to red bars + background)
|
||||
/* 304 */ UnkStruct_ov019_020d24c8_28_304 mUnk_304; // "go back" arrow
|
||||
/* 3F8 */ UnkSystem2_UnkSubSystem5 mUnk_3F8; // "please face the mic" string
|
||||
/* 630 */ bool mUnk_630;
|
||||
/* 631 */ unk8 mUnk_631;
|
||||
/* 632 */ unk8 mUnk_632;
|
||||
/* 633 */ unk8 mUnk_633;
|
||||
/* 634 */
|
||||
|
||||
FileSelectMicTest();
|
||||
void func_ov019_020cea74();
|
||||
void func_ov019_020cefe4();
|
||||
void func_ov019_020ceff8();
|
||||
|
||||
// data_ov019_020d225c
|
||||
void func_ov019_020cea6c();
|
||||
void func_ov019_020cea70();
|
||||
void func_ov019_020ceaac();
|
||||
void func_ov019_020cebcc();
|
||||
|
||||
// data_ov019_020d2284 vtable
|
||||
/* 00 */ virtual ~FileSelectMicTest() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
};
|
||||
@@ -0,0 +1,173 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/Common.hpp"
|
||||
#include "FileSelect/FileSelectMicTest.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef u32 FSOptionsState;
|
||||
enum FSOptionsState_ {
|
||||
/* 0x00 */ FSOptionsState_Idle = 0,
|
||||
/* 0x01 */ FSOptionsState_OptionsFromChooseMode = 1,
|
||||
/* 0x02 */ FSOptionsState_OptionsToChooseMode = 2,
|
||||
/* 0x03 */ FSOptionsState_OptionsToMicTest = 3,
|
||||
/* 0x04 */ FSOptionsState_MicTestIdle = 4,
|
||||
/* 0x05 */ FSOptionsState_OptionsFromMicTest = 5,
|
||||
/* 0x06 */ FSOptionsState_SaveSettings = 6,
|
||||
/* 0x07 */ FSOptionsState_Max = 7
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FC3 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 01 */ unk8 mUnk_01;
|
||||
/* 02 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_2C_24_FC3() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB0 : public SysObject {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem5 *mUnk_00[6];
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_2C_24_FB0() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24_FB8 : public SysObject {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem1_Derived1 *mUnk_00[6];
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_2C_24_FB8() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov019_020d24c8_2C_24 {
|
||||
public:
|
||||
/* 0000 */ s32 mSaveSlotIndex;
|
||||
/* 0004 */ Vec2s mUnk_004;
|
||||
/* 0008 */ UnkStruct_ov019_020d24c8_28_258 mUnk_008;
|
||||
|
||||
// message speed
|
||||
/* 0020 */ UnkSystem2_UnkSubSystem5 mUnk_020; // label
|
||||
/* 0258 */ UnkSystem2_UnkSubSystem5 mUnk_258; // current string
|
||||
/* 0490 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_490; // left arrow
|
||||
/* 04F0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_4F0; // right arrow
|
||||
|
||||
// sound settings
|
||||
/* 0550 */ UnkSystem2_UnkSubSystem5 mUnk_550; // label
|
||||
/* 0788 */ UnkSystem2_UnkSubSystem5 mUnk_788; // current string
|
||||
/* 09C0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_9C0; // left arrow
|
||||
/* 0A20 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_A20; // right arrow
|
||||
|
||||
// handedness
|
||||
/* 0A80 */ UnkSystem2_UnkSubSystem5 mUnk_A80; // label
|
||||
/* 0CB8 */ UnkSystem2_UnkSubSystem5 mUnk_CB8; // current type string
|
||||
/* 0EF0 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_EF0; // left arrow
|
||||
/* 0F50 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_F50; // right arrow
|
||||
|
||||
/* 0FB0 */ UnkStruct_ov019_020d24c8_2C_24_FB0 *mUnk_FB0;
|
||||
/* 0FB4 */ UnkStruct_ov019_020d24c8_2C_24_FB0 *mUnk_FB4;
|
||||
/* 0FB8 */ UnkStruct_ov019_020d24c8_2C_24_FB8 *mUnk_FB8;
|
||||
/* 0FBC */ UnkStruct_ov019_020d24c8_2C_24_FB8 *mUnk_FBC;
|
||||
/* 0FC0 */ u8 mUnk_FC0;
|
||||
/* 0FC1 */ u8 mUnk_FC1;
|
||||
/* 0FC2 */ u8 mUnk_FC2;
|
||||
/* 0FC3 */ STRUCT_PAD(0xFC3, 0x103E);
|
||||
/* 103E */ unk16 mUnk_103E;
|
||||
/* 1040 */
|
||||
|
||||
UnkStruct_ov019_020d24c8_2C_24(GameModeManagerBase_104_0C *param1, s32 saveSlotIndex);
|
||||
~UnkStruct_ov019_020d24c8_2C_24();
|
||||
|
||||
void func_ov019_020ce414();
|
||||
void func_ov019_020ce4dc();
|
||||
void func_ov019_020ce61c(bool decrement);
|
||||
void func_ov019_020ce668(bool decrement);
|
||||
void func_ov019_020ce6c8();
|
||||
unk32 func_ov019_020ce704(u8 param1);
|
||||
unk32 func_ov019_020ce74c(u8 param1);
|
||||
unk32 func_ov019_020ce7a0(u8 param1);
|
||||
void func_ov019_020ce7d4(unk32 param1);
|
||||
};
|
||||
|
||||
// defines the options screen (022ea1c8)
|
||||
class FileSelectOptions : public GameModeManagerBase_104 {
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
/* 001C */ FSOptionsState mState;
|
||||
/* 0020 */ u8 mUnk_0020; // bool?
|
||||
/* 0020 */ unk8 mUnk_0021;
|
||||
/* 0020 */ unk8 mUnk_0022;
|
||||
/* 0020 */ unk8 mUnk_0023;
|
||||
/* 0024 */ UnkStruct_ov019_020d24c8_2C_24 mUnk_0024;
|
||||
/* 1064 */ UnkSystem2_UnkSubSystem9 mUnk_1064;
|
||||
|
||||
// "options" string
|
||||
/* 10A8 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_10A8;
|
||||
/* 1108 */ UnkSystem2_UnkSubSystem3 mUnk_1108;
|
||||
/* 110C */ UnkSystem2_UnkSubSystem5 mUnk_110C;
|
||||
/* 1344 */ UnkSystem2_UnkSubSystem9 mUnk_1344;
|
||||
|
||||
// "mic test" button
|
||||
/* 1388 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_1388;
|
||||
/* 13E8 */ unk8 mUnk_13E8[0x38];
|
||||
/* 1420 */ UnkSystem2_UnkSubSystem8 mUnk_1420;
|
||||
/* 1470 */ UnkSystem2_UnkSubSystem3 mUnk_1470;
|
||||
/* 1474 */ UnkSystem2_UnkSubSystem5 mUnk_1474;
|
||||
|
||||
// "ok" button
|
||||
/* 16AC */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_16AC;
|
||||
/* 170C */ unk8 mUnk_170C[0x38];
|
||||
/* 1744 */ UnkSystem2_UnkSubSystem8 mUnk_1744;
|
||||
/* 1794 */ UnkSystem2_UnkSubSystem3 mUnk_1794;
|
||||
/* 1798 */ UnkSystem2_UnkSubSystem5 mUnk_1798;
|
||||
|
||||
// "cancel" button
|
||||
/* 19D0 */ UnkSystem2_UnkSubSystem1_Derived2 mUnk_19D0;
|
||||
/* 1A30 */ unk8 mUnk_1A30[0x38];
|
||||
/* 1A68 */ UnkSystem2_UnkSubSystem8 mUnk_1A68;
|
||||
/* 1AB8 */ UnkSystem2_UnkSubSystem3 mUnk_1AB8;
|
||||
/* 1ABC */ UnkSystem2_UnkSubSystem5 mUnk_1ABC;
|
||||
|
||||
/* 1CF4 */ unk8 mUnk_1CF4;
|
||||
/* 1CF5 */ bool mUnk_1CF5;
|
||||
/* 1CF6 */ unk8 mUnk_1CF6;
|
||||
/* 1CF7 */ unk8 mUnk_1CF7;
|
||||
/* 1CF8 */
|
||||
|
||||
FileSelectOptions(s32 saveSlotIndex);
|
||||
void func_ov019_020ccd40();
|
||||
void func_ov019_020ccdf4();
|
||||
void func_ov019_020cd8d4();
|
||||
bool func_ov019_020cdbdc();
|
||||
void func_ov019_020cde8c(FSOptionsState state);
|
||||
void func_ov019_020cde9c();
|
||||
|
||||
// data_ov019_020d2188
|
||||
void func_ov019_020cd7f8(void);
|
||||
void func_ov019_020cdc0c(void);
|
||||
void func_ov019_020cdc38(void);
|
||||
void func_ov019_020cdc60(void);
|
||||
void func_ov019_020cdc5c(void);
|
||||
void func_ov019_020cdc8c(void);
|
||||
void func_ov019_020cdcb8(void);
|
||||
|
||||
// data_ov019_020d21c0
|
||||
void func_ov019_020cce04(void);
|
||||
void func_ov019_020cce30(void);
|
||||
void func_ov019_020cd16c(void);
|
||||
void func_ov019_020cd41c(void);
|
||||
void func_ov019_020cd5f8(void);
|
||||
void func_ov019_020cd614(void);
|
||||
void func_ov019_020cd788(void);
|
||||
|
||||
// data_ov019_020d2200 vtable
|
||||
/* 00 */ virtual ~FileSelectOptions() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
};
|
||||
@@ -0,0 +1,43 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/Common.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class FileSelectOptions;
|
||||
class FileSelectMicTest;
|
||||
|
||||
class OptionsManagerAssessor {
|
||||
public:
|
||||
OptionsManagerAssessor();
|
||||
~OptionsManagerAssessor();
|
||||
};
|
||||
|
||||
class FileSelectOptionsManager : public OptionsManagerAssessor,
|
||||
public GameModeManagerBase_104 { // 0x022E9B44
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ u8 mUnk_20; // bool?
|
||||
/* 21 */ unk8 mUnk_21;
|
||||
/* 22 */ unk8 mUnk_22;
|
||||
/* 23 */ unk8 mUnk_23;
|
||||
/* 24 */ GameModeManagerBase_104 *mUnk_24;
|
||||
/* 28 */ FileSelectMicTest *mpMicTest;
|
||||
/* 2C */ FileSelectOptions *mpOptions;
|
||||
/* 30 */
|
||||
|
||||
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() override;
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
};
|
||||
|
||||
extern FileSelectOptionsManager *gpFSOptionsManager;
|
||||
@@ -0,0 +1,76 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelectMain.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
|
||||
class FileSelectManager_UnkDrawBase : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */
|
||||
|
||||
FileSelectManager_UnkDrawBase();
|
||||
|
||||
// data_ov000_020b1dd8 vtable
|
||||
/* 00 */ virtual ~FileSelectManager_UnkDrawBase();
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1);
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1);
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1);
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1);
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */
|
||||
};
|
||||
|
||||
class FileSelectManager_160 : public FileSelectManager_UnkDrawBase {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ FileSelectMain *mUnk_10;
|
||||
/* 14 */ GameModeManagerBase_104 *mUnk_14;
|
||||
/* 18 */ GameModeManagerBase_104 *mUnk_18;
|
||||
/* 1C */ void *mUnk_1C;
|
||||
/* 20 */
|
||||
|
||||
FileSelectManager_160(GameModeManagerBase_104 *param1, FileSelectMain *param2);
|
||||
|
||||
// data_ov019_020d23e0 vtable
|
||||
/* 00 */ virtual ~FileSelectManager_160() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override;
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1) override;
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */
|
||||
};
|
||||
|
||||
class FileSelectManager_164 : public FileSelectManager_UnkDrawBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ FileSelectMain *mUnk_10;
|
||||
/* 14 */ GameModeManagerBase_104 *mUnk_14;
|
||||
/* 18 */ GameModeManagerBase_104 *mUnk_18;
|
||||
/* 1C */
|
||||
|
||||
FileSelectManager_164(GameModeManagerBase_104 *param1, FileSelectMain *param2);
|
||||
|
||||
// data_ov019_020d2410 vtable
|
||||
/* 04 */ virtual ~FileSelectManager_164() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override;
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1) override;
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
|
||||
static void func_ov019_020d02f4();
|
||||
};
|
||||
@@ -0,0 +1,88 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelectMicTest.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "iterator.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStructSub4_2 {
|
||||
public:
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ void *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 08 */ 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 */ u8 mUnk_28; // bool?
|
||||
/* 29 */ unk8 mUnk_29;
|
||||
/* 2A */ unk8 mUnk_2A;
|
||||
/* 2B */ unk8 mUnk_2B;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */ STRUCT_PAD(0x30, 0x5C);
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5E */ unk16 mUnk_5E;
|
||||
/* 60 */ STRUCT_PAD(0x60, 0x6E);
|
||||
/* 6E */ unk8 mUnk_6E;
|
||||
/* 6F */ unk8 mUnk_6F;
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ unk16 mUnk_74;
|
||||
/* 76 */ unk16 mUnk_76;
|
||||
/* 78 */
|
||||
|
||||
void func_ov000_02060b64(void);
|
||||
};
|
||||
|
||||
// file tab manager?
|
||||
class UnkSubStruct9 : public SysObject {
|
||||
public:
|
||||
/* 000 */ u8 mSaveSlotIndex; // save slot index, 0 for file 1 and 1 for file 2
|
||||
/* 001 */ unk8 mUnk_001;
|
||||
/* 002 */ unk8 mUnk_002;
|
||||
/* 003 */ unk8 mUnk_003;
|
||||
/* 004 */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_004;
|
||||
/* 064 */ UnkSystem2_UnkSubSystem5 mUnk_064;
|
||||
/* 29C */ UnkStruct_ov019_020d24c8_28_258 mUnk_29C; // top-left 1 and 2 icons
|
||||
/* 2B4 */ UnkStruct_ov019_020d24c8_28_258 mUnk_2B4; // static hearts (hearts before beating heart)
|
||||
/* 2CC */ UnkStructSub4_2 mUnk_2CC;
|
||||
/* 344 */ UnkStructSub4_2 mUnk_344;
|
||||
/* 3BC */ UnkStructSub4_2 mUnk_3BC;
|
||||
/* 434 */ UnkStructSub4_2 mUnk_434;
|
||||
/* 4AC */ UnkStructSub4_2 mUnk_4AC;
|
||||
/* 524 */ UnkStructSub4_2 mUnk_524; // forest dungeon icon
|
||||
/* 59C */ UnkStructSub4_2 mUnk_59C; // snow dungeon icon
|
||||
/* 614 */ UnkStructSub4_2 mUnk_614; // ocean dungeon icon
|
||||
/* 68C */ UnkStructSub4_2 mUnk_68C; // fire dungeon icon
|
||||
/* 704 */ UnkStructSub4_2 mUnk_704; // desert dungeon icon
|
||||
/* 77C */ Vec2us mUnk_77C;
|
||||
// int pad[10];
|
||||
/* 780 */
|
||||
|
||||
struct stack_struct2 {
|
||||
u16 param1;
|
||||
u16 param2;
|
||||
|
||||
void operator=(stack_struct2 &from) {
|
||||
this->param1 = from.param1;
|
||||
this->param2 = from.param2;
|
||||
}
|
||||
};
|
||||
|
||||
UnkSubStruct9();
|
||||
UnkSubStruct9(stack_struct1 param1);
|
||||
void Init();
|
||||
void Init(stack_struct1 param1);
|
||||
void func_ov019_020cbaec();
|
||||
bool IsPlayerNameSet();
|
||||
void func_ov019_020cbb40();
|
||||
void func_ov019_020cbb94();
|
||||
void func_ov019_020cbc0c();
|
||||
void func_ov019_020cc5ac(Vec2us *param1);
|
||||
|
||||
void func_ov000_02062be0();
|
||||
};
|
||||
@@ -0,0 +1,26 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeBase : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
GameModeBase();
|
||||
|
||||
// data_02044018 vtable
|
||||
/* 00 */ virtual ~GameModeBase();
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3);
|
||||
/* 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();
|
||||
/* 28 */
|
||||
|
||||
void func_02018374(void);
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelect.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Unknown/UnkStruct_02049a2c.hpp"
|
||||
#include "Unknown/UnkStruct_02049bd4.hpp"
|
||||
#include "Unknown/UnkStruct_0204a110.hpp"
|
||||
|
||||
class GameModeFileSelect : public GameModeBase {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkSystem1_ov019_Derived1 mUnk_04;
|
||||
/* 20 */ u16 mSaveSlotIndex;
|
||||
/* 20 */ unk16 mUnk_22;
|
||||
/* 24 */
|
||||
|
||||
GameModeFileSelect() NO_INLINE {
|
||||
this->mSaveSlotIndex = 0;
|
||||
data_02049bd4.func_02014cdc(2);
|
||||
data_02049bd4.mUnk_02 &= 0xFFFB;
|
||||
data_02049a2c.func_02013370(1);
|
||||
data_0204999c.mUnk_60 = 0xD6D8;
|
||||
data_ov000_020b504c.func_ov001_020be668();
|
||||
data_0204a110.func_ov001_020bd514(2, FileSelectManager::Create, 0, 1);
|
||||
}
|
||||
|
||||
void LoadAdventureMode(u16 saveSlotIndex);
|
||||
void LoadBattleMode(u16 saveSlotIndex);
|
||||
void LoadContactMode(u16 saveSlotIndex);
|
||||
|
||||
// data_ov019_020d1d8c vtable
|
||||
/* 00 */ virtual ~GameModeFileSelect() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 30 */
|
||||
|
||||
static GameModeFileSelect *Create();
|
||||
};
|
||||
@@ -0,0 +1,118 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "nitro/math.h"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeManagerBase_004 : public SysObject {
|
||||
public:
|
||||
void func_ov001_020bd734(unk32 *param1);
|
||||
void func_ov001_020bd784();
|
||||
void func_0201c00c(unk32 param1, unk32 param2, unk32 param3);
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_04 {
|
||||
public:
|
||||
/* 00 */ void *mUnk_00;
|
||||
/* 04 */ void *mUnk_04;
|
||||
|
||||
void func_020166ac(void);
|
||||
void func_020166cc(void *param1);
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_0C_04 {
|
||||
public:
|
||||
/* 00 */ GameModeManagerBase_104_04 mUnk_00;
|
||||
|
||||
GameModeManagerBase_104_0C_04();
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104_0C {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_0C_04 mUnk_04;
|
||||
|
||||
// data_ov000_020b1e48 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104_0C();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
};
|
||||
|
||||
class GameModeManagerBase_104 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
/* 18 */ u32 mUnk_18;
|
||||
/* 1C */
|
||||
|
||||
GameModeManagerBase_104();
|
||||
|
||||
// data_ov000_020b1e60 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18(void);
|
||||
|
||||
static GameModeManagerBase_104 *Create(void *param1, s32 saveSlotIndex);
|
||||
};
|
||||
|
||||
class GameModeManagerBase : public SysObject {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ GameModeManagerBase_004 mUnk_004;
|
||||
/* 008 */ void *mUnk_008;
|
||||
/* 00C */ unk8 mUnk_00C[0x0E0 - 0x00C];
|
||||
/* 0E0 */ void *mUnk_0E0;
|
||||
/* 0E4 */ void *mUnk_0E4;
|
||||
/* 0E8 */ void *mUnk_0E8;
|
||||
/* 0EC */ unk32 mUnk_0EC;
|
||||
/* 0F0 */ unk32 mUnk_0F0;
|
||||
/* 0F4 */ unk32 mUnk_0F4;
|
||||
/* 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;
|
||||
/* 148 */ unk32 mUnk_148;
|
||||
/* 14C */ unk32 mUnk_14C;
|
||||
/* 150 */ unk32 mUnk_150;
|
||||
/* 154 */
|
||||
|
||||
GameModeManagerBase();
|
||||
void func_0201875c(void);
|
||||
void func_02018908(void);
|
||||
void func_02018a14(unk32 param2);
|
||||
void func_02018830(unk32 param2);
|
||||
void func_02018984(unk32 param1);
|
||||
|
||||
// data_02044064 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual ~GameModeManagerBase();
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3);
|
||||
/* 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();
|
||||
/* 28 */ virtual void vfunc_28(unk32 param1);
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1);
|
||||
/* 30 */ virtual void vfunc_30();
|
||||
/* 34 */ virtual void vfunc_34();
|
||||
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Item/Item.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#define IS_ITEM_RESTRICTED(restrictions, itemFlag) (((restrictions) & (1 << (itemFlag))) != 0)
|
||||
@@ -22,16 +23,16 @@ public:
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
|
||||
virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8
|
||||
virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4
|
||||
virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8
|
||||
virtual void vfunc_0c(); //! TODO: name symbol func_ov000_02067434
|
||||
virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474
|
||||
virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc
|
||||
virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8
|
||||
virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02067234
|
||||
virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c
|
||||
virtual ~UnkStruct_ItemManager_20_14(); //! TODO: name symbols func_ov000_020672ac, func_ov000_020672f4
|
||||
/* 00 */ virtual void vfunc_00(); //! TODO: name symbol func_ov000_020667d8
|
||||
/* 04 */ virtual void vfunc_04(); //! TODO: name symbol func_ov000_020667f4
|
||||
/* 08 */ virtual void vfunc_08(); //! TODO: name symbol func_ov000_020673c8
|
||||
/* 0c */ virtual void vfunc_0c(); //! TODO: name symbol func_ov000_02067434
|
||||
/* 10 */ virtual void vfunc_10(); //! TODO: name symbol func_ov000_02067474
|
||||
/* 14 */ virtual void vfunc_14(); //! TODO: name symbol func_ov000_02066dfc
|
||||
/* 18 */ virtual void vfunc_18(); //! TODO: name symbol func_ov000_020669d8
|
||||
/* 1c */ virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02067234
|
||||
/* 20 */ virtual void vfunc_20(); //! TODO: name symbol func_ov000_0206723c
|
||||
/* 24 */ virtual ~UnkStruct_ItemManager_20_14(); //! TODO: name symbols func_ov000_020672ac, func_ov000_020672f4
|
||||
|
||||
UnkStruct_ItemManager_20_14();
|
||||
|
||||
@@ -115,8 +116,12 @@ public:
|
||||
class TreasureManager : public ItemManager {
|
||||
public:
|
||||
/* 28 */ unk8 mUnk_28[0x3C - 0x28];
|
||||
/* 3c */ s16 mUnk_3c[TreasureType_Max]; // treasures
|
||||
/* 5c */
|
||||
/* 3C */ s16 mUnk_3c[TreasureType_Max]; // treasures
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5E */ unk16 mUnk_5E;
|
||||
/* 60 */ STRUCT_PAD(0x60, 0x7E);
|
||||
/* 7E */ u16 mUnk_7E;
|
||||
/* 80 */
|
||||
|
||||
TreasureManager();
|
||||
~TreasureManager();
|
||||
|
||||
@@ -54,14 +54,14 @@ class UnkStruct_PlayerGet_8c {
|
||||
public:
|
||||
// /* 00 */ unk32 *mUnk_00;
|
||||
|
||||
virtual ~UnkStruct_PlayerGet_8c();
|
||||
virtual void vfunc_08(unk32 param1); //! TODO: name symbol func_ov000_02057bf4
|
||||
virtual void vfunc_0c(); //! TODO: name symbol func_01ffc57c
|
||||
virtual void vfunc_10(); //! TODO: name symbol func_ov000_02057dc8
|
||||
virtual void vfunc_14(); //! TODO: name symbol func_ov000_02057e44
|
||||
virtual void vfunc_18(); //! TODO: name symbol func_ov000_02057ea8
|
||||
virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02057c34
|
||||
virtual void vfunc_20(); //! TODO: name symbol func_ov000_02057d84
|
||||
/* 00 */ virtual ~UnkStruct_PlayerGet_8c();
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1); //! TODO: name symbol func_ov000_02057bf4
|
||||
/* 0c */ virtual void vfunc_0c(); //! TODO: name symbol func_01ffc57c
|
||||
/* 10 */ virtual void vfunc_10(); //! TODO: name symbol func_ov000_02057dc8
|
||||
/* 14 */ virtual void vfunc_14(); //! TODO: name symbol func_ov000_02057e44
|
||||
/* 18 */ virtual void vfunc_18(); //! TODO: name symbol func_ov000_02057ea8
|
||||
/* 1c */ virtual void vfunc_1c(); //! TODO: name symbol func_ov000_02057c34
|
||||
/* 20 */ virtual void vfunc_20(); //! TODO: name symbol func_ov000_02057d84
|
||||
|
||||
UnkStruct_PlayerGet_8c(unk32 param1);
|
||||
};
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,406 @@
|
||||
#pragma once
|
||||
|
||||
#include "Item/ItemManager.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkMemFuncs.h"
|
||||
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
//! TODO: kinda draft state for now
|
||||
|
||||
// probably related to the map data?
|
||||
#define NUM_UNK_BLOCKS 120
|
||||
#define SIZE_UNK_BLOCK 0x1000
|
||||
|
||||
#define LENGTH_PLAYER_NAME 8
|
||||
#define COUNT_DATA 2 // main data + backup (?)
|
||||
|
||||
#define SAVE_DATA_SIZE (sizeof(SaveSlot) + sizeof(u8) * NUM_UNK_BLOCKS * SIZE_UNK_BLOCK)
|
||||
#define MAX_SAVE_SLOTS 2
|
||||
|
||||
enum {
|
||||
SaveDataIndex_SaveInfo,
|
||||
SaveDataIndex_Treasures,
|
||||
SaveDataIndex_02,
|
||||
SaveDataIndex_03,
|
||||
SaveDataIndex_04,
|
||||
};
|
||||
|
||||
class SaveAdventureFlags {
|
||||
public:
|
||||
/* 00 */ u32 data[32];
|
||||
/* 80 */
|
||||
|
||||
SaveAdventureFlags() {
|
||||
Fill32(0, this, sizeof(SaveAdventureFlags));
|
||||
};
|
||||
};
|
||||
|
||||
class SaveInventory {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ u32 mUnk_04[2];
|
||||
/* 0C */ u16 mNumRupees;
|
||||
/* 0E */ u16 mUnk_12;
|
||||
/* 10 */ ItemFlag mEquippedItem;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */
|
||||
|
||||
SaveInventory() {
|
||||
Fill32(0, this->mUnk_04, sizeof(mUnk_04));
|
||||
this->mUnk_12 = 0;
|
||||
};
|
||||
};
|
||||
|
||||
class TreasureData {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x3C];
|
||||
/* 3C */ s16 mUnk_3C[TreasureType_Max];
|
||||
/* 5C */ unk16 mUnk_5C;
|
||||
/* 5E */ unk16 mUnk_5E;
|
||||
/* 60 */ unsigned char _pad_0x60[(0x7E) - (0x60)];
|
||||
/* 7E */ u16 mUnk_7E;
|
||||
/* 80 */
|
||||
|
||||
TreasureData() :
|
||||
mUnk_5C(0) {}
|
||||
};
|
||||
|
||||
class SaveTreasures {
|
||||
public:
|
||||
/* 000 */ TreasureData mTreasureData[2];
|
||||
/* 100 */
|
||||
|
||||
SaveTreasures() {}
|
||||
void func_ov019_020d1600();
|
||||
};
|
||||
|
||||
class SaveInfoSub5 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
SaveInfoSub5();
|
||||
};
|
||||
|
||||
class SaveUnknown158 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x0C];
|
||||
SaveUnknown158() {
|
||||
Fill32(0, this, sizeof(SaveUnknown158));
|
||||
};
|
||||
};
|
||||
|
||||
class SaveUnknown164 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x20];
|
||||
SaveUnknown164() {
|
||||
Fill32(0, this, sizeof(SaveUnknown164));
|
||||
};
|
||||
};
|
||||
|
||||
class Sub1Test {
|
||||
public:
|
||||
int a;
|
||||
short b;
|
||||
short p;
|
||||
Sub1Test() {
|
||||
a = 0;
|
||||
b = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class Sub2Test {
|
||||
public:
|
||||
int a;
|
||||
int b;
|
||||
Sub2Test() {
|
||||
a = 0;
|
||||
b = 0;
|
||||
}
|
||||
};
|
||||
class Sub2Test2 {
|
||||
public:
|
||||
Sub2Test tab2[0xE0];
|
||||
/* C84 */ unk32 mUnk_00_SaveInfoSub10[4];
|
||||
|
||||
Sub2Test2() {
|
||||
Fill32(0, this->mUnk_00_SaveInfoSub10, 16);
|
||||
}
|
||||
};
|
||||
|
||||
class SaveUnknown184_Sub {
|
||||
public:
|
||||
/* */ u8 pad1[390];
|
||||
/* */ Sub1Test tab1[0x4F];
|
||||
/* */ Sub2Test2 tab2;
|
||||
|
||||
SaveUnknown184_Sub() {}
|
||||
};
|
||||
|
||||
class SaveUnknown184 {
|
||||
public:
|
||||
/* 184 */ SaveUnknown184_Sub mUnk_184;
|
||||
|
||||
SaveUnknown184() {}
|
||||
};
|
||||
|
||||
class SaveUnknown14C {
|
||||
public:
|
||||
/* 14C */ unk32 mSpiritTrackFlags[1];
|
||||
/* 150 */ unk32 mUnk_150;
|
||||
/* 154 */ unk32 mUnk_154;
|
||||
/* 158 */ SaveUnknown158 mUnk_158;
|
||||
/* 164 */ SaveUnknown164 mUnk_164;
|
||||
|
||||
/* 184 */ SaveUnknown184 mUnk_184;
|
||||
|
||||
/* C94 */ unk8 mUnk_C94[0x84];
|
||||
/* D18 */ unk32 mUnk_D18;
|
||||
/* D1C */ unk32 mUnk_D1C;
|
||||
/* D20 */ unk16 mSongs;
|
||||
/* D22 */ unk16 mUnk_D22;
|
||||
/* D24 */ unk8 mUnk_00_SaveUnknownD24[0x48];
|
||||
/* D6C */ unk8 mUnk_48_SaveUnknownD24[8];
|
||||
/* D74 */ unk16 mUnk_50_SaveUnknownD24;
|
||||
/* D76 */ unk16 mUnk_52_SaveUnknownD24;
|
||||
/* D78 */ STRUCT_PAD(0xD78, 0xD8C);
|
||||
/* D8C */
|
||||
|
||||
SaveUnknown14C() {
|
||||
mUnk_D18 = 0;
|
||||
mUnk_D1C = 0;
|
||||
mSongs = 0;
|
||||
Fill32(0, this->mUnk_48_SaveUnknownD24, sizeof(this->mUnk_48_SaveUnknownD24));
|
||||
this->mUnk_50_SaveUnknownD24 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
class SaveInfoData {
|
||||
public:
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
/* 004 */ unk32 mUnk_004;
|
||||
/* 008 */ unk32 mUnk_008;
|
||||
/* 00C */ unk32 mUnk_00C;
|
||||
/* 010 */ unk32 mUnk_010;
|
||||
/* 014 */ unk16 mUnk_014;
|
||||
/* 016 */ unk16 mSceneIndex;
|
||||
/* 018 */ u8 mInteriorIndex; // "house" index but could be more?
|
||||
/* 019 */ u8 mSpawnIndex;
|
||||
/* 01A */ unk16 mUnk_01A;
|
||||
/* 01C */ unk32 mUnk_01C;
|
||||
/* 020 */ unk32 mUnk_020;
|
||||
/* 024 */ unk32 mUnk_024;
|
||||
/* 028 */ STRUCT_PAD(0x28, 0x40);
|
||||
/* 040 */ SaveAdventureFlags mAdventureFlags;
|
||||
/* 0C0 */ SaveInventory mInventory;
|
||||
/* 0D8 */ SaveInfoSub5 mUnk_0D8;
|
||||
/* 0DC */ STRUCT_PAD(0xDC, 0x144);
|
||||
/* 144 */ u32 mTrackFlags[2];
|
||||
/* 14C */ SaveUnknown14C mUnk_14C;
|
||||
/* D8C */ STRUCT_PAD(0xD8C, 0xDA2);
|
||||
/* DA2 */ wchar_t mPlayerName[LENGTH_PLAYER_NAME + 1];
|
||||
/* DB4 */ STRUCT_PAD(0xDB4, 0xDFE);
|
||||
/* DFE */ u16 mUnk_DFE;
|
||||
/* E00 */
|
||||
|
||||
SaveInfoData() :
|
||||
mUnk_014(0) {}
|
||||
};
|
||||
|
||||
class SaveInfo {
|
||||
public:
|
||||
/* 0000 */ SaveInfoData mSaveInfoData[COUNT_DATA];
|
||||
/* 1C00 */
|
||||
|
||||
SaveInfo() {}
|
||||
|
||||
void func_ov000_020a1028(void);
|
||||
void func_ov019_020d14fc(void);
|
||||
};
|
||||
|
||||
class SaveSub15 {
|
||||
public:
|
||||
/* 000 */ unk8 mUnk_000[(0x3C4) - (0x000)];
|
||||
/* 3C4 */ wchar_t mUnk_3C4[LENGTH_PLAYER_NAME + 1];
|
||||
/* 3D6 */ STRUCT_PAD(0x3D6, 0x3FE);
|
||||
/* 3FE */ u16 mUnk_3FE;
|
||||
/* 400 */
|
||||
|
||||
// SaveSub15() {}
|
||||
};
|
||||
|
||||
class SaveSub5 {
|
||||
public:
|
||||
/* 000 */ SaveSub15 mUnk_000[COUNT_DATA];
|
||||
/* 800 */
|
||||
|
||||
void func_ov000_020a12a0();
|
||||
void func_ov019_020d14c0();
|
||||
};
|
||||
|
||||
class SaveSub16 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x7E];
|
||||
/* 7E */ u16 mUnk_7E;
|
||||
/* 80 */
|
||||
};
|
||||
|
||||
class SaveSub6 {
|
||||
public:
|
||||
/* 000 */ SaveSub16 mUnk_00[COUNT_DATA];
|
||||
/* 100 */
|
||||
|
||||
void func_ov019_020d15cc();
|
||||
};
|
||||
|
||||
class SaveSub17 {
|
||||
public:
|
||||
// /* 00 */ unk8 mUnk_00[0x7E];
|
||||
/* 00 */ u8 mUnk_00;
|
||||
/* 01 */ u8 mUnk_01;
|
||||
/* 02 */ u8 mUnk_02;
|
||||
/* 03 */ u8 mUnk_03; // bool?
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x7E);
|
||||
/* 7E */ u16 mUnk_7E;
|
||||
};
|
||||
|
||||
class SaveSub7 {
|
||||
public:
|
||||
/* 000 */ SaveSub17 mUnk_00[COUNT_DATA];
|
||||
/* 100 */
|
||||
|
||||
void func_ov000_020a10f4();
|
||||
void func_ov019_020d1400();
|
||||
};
|
||||
|
||||
class SaveSlot {
|
||||
public:
|
||||
/* 0000 */ SaveInfo mSaveInfo;
|
||||
/* 1C00 */ SaveTreasures mTreasures;
|
||||
// /* 1D00 */ u8 mUnk_1D00[0x2500 - 0x1D00];
|
||||
// /* 2500 */ u8 mUnk_2500[0x100];
|
||||
// /* 2600 */ u8 mUnk_2600[0x100];
|
||||
/* 1D00 */ SaveSub5 mUnk_1D00;
|
||||
/* 2500 */ SaveSub6 mUnk_2500;
|
||||
/* 2600 */ SaveSub7 mUnk_2600;
|
||||
/* 2700 */
|
||||
|
||||
SaveSlot() {}
|
||||
void func_ov000_020a1124(void);
|
||||
|
||||
bool GetAdventureFlag(AdventureFlag flag) {
|
||||
return GET_FLAG(this->mSaveInfo.mSaveInfoData[0].mAdventureFlags.data, flag);
|
||||
}
|
||||
|
||||
wchar_t *GetPlayerName() {
|
||||
return this->mSaveInfo.mSaveInfoData[0].mPlayerName;
|
||||
}
|
||||
|
||||
bool IsPlayerNameSet() {
|
||||
return this->mSaveInfo.mSaveInfoData[0].mPlayerName[0] != L'\0';
|
||||
}
|
||||
|
||||
SaveSub17 *Get2600Ptr() {
|
||||
return this->mUnk_2600.mUnk_00;
|
||||
}
|
||||
|
||||
u8 Get2600_00() {
|
||||
return this->mUnk_2600.mUnk_00[0].mUnk_00;
|
||||
}
|
||||
|
||||
u8 Get2600_01() {
|
||||
return this->mUnk_2600.mUnk_00[0].mUnk_01;
|
||||
}
|
||||
|
||||
u8 Get2600_02() {
|
||||
return this->mUnk_2600.mUnk_00[0].mUnk_02;
|
||||
}
|
||||
};
|
||||
|
||||
class SaveFileSub1 {
|
||||
public:
|
||||
u16 mUnk_00;
|
||||
|
||||
SaveFileSub1() :
|
||||
mUnk_00(0) {}
|
||||
};
|
||||
|
||||
// save data
|
||||
class SaveFile : public SysObject {
|
||||
public:
|
||||
/* 00000 */ SaveSlot mSlots[MAX_SAVE_SLOTS];
|
||||
/* 04E00 */ SaveFileSub1 mUnk_04E00[2][2];
|
||||
/* 04E08 */ unk16 mUnk_04E08;
|
||||
/* 04E0A */ u16 mSaveSlotIndex;
|
||||
/* 04E0C */ u8 mUnk_04E0C[NUM_UNK_BLOCKS * SIZE_UNK_BLOCK];
|
||||
/* 7CE0C */
|
||||
|
||||
SaveFile();
|
||||
|
||||
unk16 func_ov019_020d0c4c(unk32 param1, unk32 param2);
|
||||
unk16 func_ov019_020d0c90(unk32 param1);
|
||||
void func_ov019_020d0d50();
|
||||
void func_ov019_020d0e18(unk32 param1);
|
||||
void func_ov019_020d0ea8();
|
||||
void func_ov019_020d1108();
|
||||
void func_ov019_020d127c();
|
||||
void func_ov019_020d13b8();
|
||||
void func_ov019_020d1434();
|
||||
void func_ov019_020d1538();
|
||||
void func_ov019_020d1634();
|
||||
void func_ov019_020d16d0();
|
||||
void func_ov019_020d17e0();
|
||||
void func_ov019_020d1808(unk32 param1);
|
||||
void func_ov019_020d1aac(unk32 param1, const wchar_t *param2);
|
||||
void func_ov019_020d1b14(unk32 param1);
|
||||
};
|
||||
|
||||
class SaveManager {
|
||||
public:
|
||||
/* 000 */ void *mUnk_000; // related to mUnk_184
|
||||
/* 000 */ unk8 mUnk_004[0x204 - 0x004];
|
||||
/* 204 */ unk16 mUnk_204;
|
||||
/* 206 */ unk16 mUnk_206;
|
||||
/* 208 */ unk8 mUnk_208;
|
||||
/* 208 */ unk8 mUnk_209;
|
||||
/* 20A */ u8 mUnk_20A; // bool?
|
||||
/* 20B */ unk8 mUnk_20B;
|
||||
/* 20C */ unk32 mUnk_20C;
|
||||
/* 210 */ unk32 mUnk_210;
|
||||
/* 214 */ unk32 mUnk_214;
|
||||
/* 218 */ SaveFile *mpSaveFile;
|
||||
/* 21C */ unk8 mUnk_21C[0x23C - 0x21C];
|
||||
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
|
||||
// /* 240 */ void* mUnk_240;
|
||||
|
||||
bool IsUnk20A() {
|
||||
return mUnk_20A == 0;
|
||||
}
|
||||
|
||||
unk32 IsUnk210() {
|
||||
return mUnk_210 == 0;
|
||||
}
|
||||
|
||||
SaveSlot *GetSaveSlot(int saveSlotIndex) {
|
||||
return &this->mpSaveFile->mSlots[saveSlotIndex];
|
||||
}
|
||||
|
||||
SaveSlot *GetSaveSlots() {
|
||||
return this->mpSaveFile->mSlots;
|
||||
}
|
||||
|
||||
void func_ov000_020a0b2c(UnkCallback param1, unk32 param2);
|
||||
void func_ov000_020ba7c8(u16 saveSlotIndex);
|
||||
|
||||
void func_ov019_020d08fc(unk32 param1, PTMF<SaveFile>::PTMFCallback param2);
|
||||
bool func_ov019_020d0964(void);
|
||||
void func_ov019_020d09dc(u16 saveSlotIndex);
|
||||
void func_ov019_020d0a04(u16 saveSlotIndex);
|
||||
void func_ov019_020d0ae0(unk32 param1);
|
||||
|
||||
static void func_ov019_020d086c(u16 param1);
|
||||
static void func_ov019_020d0a2c(u16 param1);
|
||||
};
|
||||
|
||||
extern SaveManager gSaveManager;
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
typedef u32 UnkId;
|
||||
@@ -10,21 +11,43 @@ enum __UnkId {
|
||||
UnkId_UNSH = 'UNSH',
|
||||
};
|
||||
|
||||
struct UnkStruct_02011e10 {
|
||||
/* 00 */ UnkId mId;
|
||||
/* 04 */ unk8 mUnk_04[0x28];
|
||||
/* 2C */
|
||||
typedef u32 HeapIndex;
|
||||
enum HeapIndex_ {
|
||||
HeapIndex_0 = 0,
|
||||
HeapIndex_1 = 1,
|
||||
HeapIndex_2 = 2,
|
||||
HeapIndex_3 = 3,
|
||||
HeapIndex_Max = 4
|
||||
};
|
||||
|
||||
void *SysNew(UnkStruct_02011e10 *param1, s32 length, s32 param3);
|
||||
class UnkStruct_02011e10_Sub1 {
|
||||
public:
|
||||
/* 00 */ UnkId mId;
|
||||
/* 04 */ unk8 mUnk_04[0x28];
|
||||
/* 2C */ unk8 mUnk_2C[0x60 - 0x2C];
|
||||
};
|
||||
|
||||
class UnkStruct_02011e10 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max];
|
||||
/* 10 */ STRUCT_PAD(0x10, 0x60);
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
|
||||
void func_02013014();
|
||||
void func_02013070();
|
||||
};
|
||||
|
||||
extern UnkStruct_02011e10 data_0204999c;
|
||||
|
||||
void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3);
|
||||
void SysDelete(void *ptr);
|
||||
void *func_02011f10(s32 length);
|
||||
void *func_02011f30(s32 length);
|
||||
|
||||
class SysObject {
|
||||
public:
|
||||
static void *operator new(unsigned long length, u32 id, u32 idLength);
|
||||
static void *operator new[](unsigned long length, u32 *id, u32 idLength);
|
||||
static void *operator new(unsigned long length, u32 id, u32 idLength = 4);
|
||||
static void *operator new[](unsigned long length, u32 *id, u32 idLength = 4);
|
||||
static void operator delete(void *ptr);
|
||||
static void operator delete[](void *ptr);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
//! TODO: temporary place until this is documented properly
|
||||
|
||||
extern "C" {
|
||||
void Fill16(int value, u16 *dst, size_t size);
|
||||
void Copy16(u16 *src, u16 *dest, size_t size);
|
||||
void Fill32(int value, void *dest, size_t size);
|
||||
// Copy32
|
||||
// Stream32
|
||||
void Fill256(int value, void *dst, size_t size);
|
||||
void Copy256(void *src, void *dest, size_t size);
|
||||
// CopySingle256
|
||||
// CopySingle288
|
||||
// CopySingle384
|
||||
// CopySingle512
|
||||
void Fill(u8 *dst, int value, size_t size);
|
||||
// Copy
|
||||
// Zero288
|
||||
// Swap32
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeFileSelect;
|
||||
|
||||
class UnkStruct_02049a2c {
|
||||
public:
|
||||
/* 00 */ GameModeBase *mUnk_00;
|
||||
/* 04 */ unk8 mUnk_04[0xE8 - 0x04];
|
||||
/* E8 */
|
||||
|
||||
void Run(void);
|
||||
void func_02013370(unk32 param1);
|
||||
|
||||
GameModeFileSelect *GetUnk00_FileSelect() {
|
||||
return (GameModeFileSelect *) this->mUnk_00;
|
||||
}
|
||||
};
|
||||
|
||||
extern UnkStruct_02049a2c data_02049a2c;
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_02049b80 {
|
||||
public:
|
||||
void func_02013ecc(unk32 param1, UnkCallback param2, unk32 param3);
|
||||
void func_02013ee8(unk32 param1, unk32 param2);
|
||||
};
|
||||
|
||||
extern UnkStruct_02049b80 data_02049b80;
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_02049bd4 {
|
||||
public:
|
||||
/* 00 */ unk16 mUnk_00;
|
||||
/* 02 */ u16 mUnk_02;
|
||||
/* 04 */ u16 mUnk_04;
|
||||
|
||||
void func_02014c60(unk32 param1);
|
||||
void func_02014cdc(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_02049bd4 data_02049bd4;
|
||||
@@ -0,0 +1,73 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/Common.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204a060_Base2 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeManagerBase_104_04 mUnk_04;
|
||||
/* 0C */ unk8 mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_0204a060_Base2();
|
||||
void func_0201ba68();
|
||||
void func_0201bacc();
|
||||
|
||||
// data_020440f4 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base2();
|
||||
/* 08 */ virtual bool vfunc_08(unk32 param1);
|
||||
/* 0C */
|
||||
};
|
||||
|
||||
class UnkStruct_0204a060_Base : public UnkStruct_0204a060_Base2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 1A */ unk16 mUnk_1A;
|
||||
/* 1C */ unk16 mUnk_1C;
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
/* 22 */ unk16 mUnk_22;
|
||||
/* 24 */
|
||||
|
||||
UnkStruct_0204a060_Base();
|
||||
void func_0201bb38();
|
||||
void func_0201bb84(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
void func_0201bba4();
|
||||
void func_0201bbcc();
|
||||
|
||||
// data_02044108 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base() override;
|
||||
/* 08 */ virtual bool vfunc_08(unk32 param1) override;
|
||||
/* 0C */ virtual bool vfunc_0C(void);
|
||||
/* 10 */ virtual bool vfunc_10(void);
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class UnkStruct_0204a060 : public UnkStruct_0204a060_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 24 */ void *callback; //! TODO: is it a PTMF?
|
||||
|
||||
UnkStruct_0204a060();
|
||||
|
||||
bool func_020183d4(bool param1, void *param2, unk32 param3);
|
||||
|
||||
// data_02044048 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060() override;
|
||||
/* 0C */ virtual bool vfunc_0C(void) override;
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
extern UnkStruct_0204a060 data_0204a060;
|
||||
@@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "FileSelect/FileSelectUnkDraw.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204a088;
|
||||
extern UnkStruct_0204a088 *data_0204a088;
|
||||
|
||||
class UnkStruct_0204a088_Base : public SysObject {
|
||||
public:
|
||||
UnkStruct_0204a088_Base();
|
||||
~UnkStruct_0204a088_Base(); //! TODO: most likely inlined but can't make it work for some reasons
|
||||
};
|
||||
|
||||
class UnkStruct_0204a088 : public UnkStruct_0204a088_Base {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 */ unk32 mUnk_04;
|
||||
/* 00 */ unk32 mUnk_08;
|
||||
/* 0C */ FileSelectManager_UnkDrawBase mUnk_0C[23];
|
||||
|
||||
void func_ov000_02061098(void);
|
||||
void func_ov000_020611dc(void *param1, unk32 param2);
|
||||
void func_ov000_020611fc(unk32 param2);
|
||||
void func_ov000_02061224(void);
|
||||
void func_ov000_02061230(void);
|
||||
void func_ov000_02061248(void);
|
||||
};
|
||||
@@ -0,0 +1,41 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204a110_Sub1 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x0A];
|
||||
/* 0A */ u8 mUnk_0A; // bools?
|
||||
/* 0B */ u8 mUnk_0B; // bools?
|
||||
|
||||
bool UnkCheck1() {
|
||||
bool value = true;
|
||||
|
||||
if (mUnk_0A == 0 && mUnk_0B == 0) {
|
||||
value = false;
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110 {
|
||||
public:
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
/* 004 */ STRUCT_PAD(0x04, 0xDA4);
|
||||
/* DA4 */ unk8 mUnk_DA4;
|
||||
/* DA5 */ unk8 mUnk_DA5;
|
||||
/* DA6 */ unk8 mUnk_DA6;
|
||||
/* DA7 */ unk8 mUnk_DA7;
|
||||
/* DA8 */ unk8 mUnk_DA8[0xDE8 - 0xDA8];
|
||||
/* DE8 */ UnkStruct_0204a110_Sub1 *mUnk_DE8;
|
||||
|
||||
unk32 func_01ff9b50();
|
||||
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
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);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204a110 data_0204a110;
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204aeec : public SysObject {
|
||||
public:
|
||||
void func_0201e698(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204aeec data_0204aeec;
|
||||
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204af1c {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
void func_0201aa44(void *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aad0(void *param1, void *param2, unk32 param3, void *param4);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204af1c data_0204af1c;
|
||||
@@ -3,14 +3,79 @@
|
||||
#include "Item/Item.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_02067bc4_Sub1 {
|
||||
public:
|
||||
unk32 func_02022128(void);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_02067bc4_Sub2 {
|
||||
public:
|
||||
unk8 mUnk_00[0x10];
|
||||
unk32 mUnk_10;
|
||||
unk8 mUnk_14[0x40];
|
||||
unk32 mUnk_54;
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_02067bc4 {
|
||||
public:
|
||||
class UnkStruct1 {
|
||||
public:
|
||||
unk16 mUnk_00;
|
||||
unk16 mUnk_02;
|
||||
unk32 mUnk_04;
|
||||
unk32 mUnk_08;
|
||||
unk8 mUnk_0C;
|
||||
unk8 mUnk_0D;
|
||||
unk8 mUnk_0E;
|
||||
unk8 mUnk_0F;
|
||||
|
||||
UnkStruct1(unk32 param1) {
|
||||
mUnk_00 = 0;
|
||||
mUnk_08 = -1;
|
||||
mUnk_0C = 0;
|
||||
mUnk_0D = 0;
|
||||
mUnk_04 = 0;
|
||||
}
|
||||
|
||||
UnkStruct1() {
|
||||
mUnk_00 = 0;
|
||||
mUnk_08 = -1;
|
||||
mUnk_0C = 0;
|
||||
mUnk_0D = 0;
|
||||
mUnk_04 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ unk32 mUnk_004;
|
||||
/* 004 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
|
||||
/* 004 */ unk8 mUnk_00C[0x30 - 0x00C];
|
||||
/* 030 */ unk32 mUnk_030;
|
||||
/* 034 */ unk8 mUnk_034[0x160 - 0x034];
|
||||
/* 160 */ UnkStruct_ov000_02067bc4_Sub1 mUnk_160;
|
||||
|
||||
/* 00 */ virtual unk32 vfunc_00();
|
||||
/* 04 */ virtual unk32 vfunc_04();
|
||||
/* 08 */ virtual unk32 vfunc_08();
|
||||
|
||||
void func_02021bec(unk16 param1);
|
||||
void func_02021c08();
|
||||
void func_02021c2c();
|
||||
|
||||
UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32);
|
||||
void func_ov000_02067cf8(ItemId itemId, unk32 param2, unk32 *param3);
|
||||
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct1 *param3);
|
||||
void *func_ov000_02067bb4(unk32 param1);
|
||||
void func_ov000_02067e60(u8 param1, unk32 param2);
|
||||
void func_ov000_0206807c(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
void func_ov000_0206807c(unk32 param1, void *param2, unk32 param3);
|
||||
void func_ov000_0206807c(unk32 param1, void *param2);
|
||||
void func_ov000_0206807c(void *param1, void *param2);
|
||||
void func_ov000_0206807c(void *param1, unk32 param2);
|
||||
unk32 func_ov000_020682c0(unk32 param1);
|
||||
|
||||
void func_ov001_020be668(void);
|
||||
void func_ov001_020be6f4(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_02067bc4 data_ov000_020b504c;
|
||||
|
||||
@@ -138,7 +138,7 @@ public:
|
||||
this->mItemId = itemId;
|
||||
}
|
||||
|
||||
UnkStruct_ov000_0208f820_04() {};
|
||||
UnkStruct_ov000_0208f820_04() {}
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_0208f820 : public SysObject {
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_020b50c0 {
|
||||
public:
|
||||
void func_ov000_0206a6a4(unk32 param1);
|
||||
void func_ov000_0206a758(void);
|
||||
void func_ov000_0206a77c(void);
|
||||
void func_ov000_020bd8ac(void);
|
||||
void func_ov001_020bd8dc(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b50c0 data_ov000_020b50c0;
|
||||
@@ -10,9 +10,11 @@ public:
|
||||
/* 0c */ unk32 mUnk_0c;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
|
||||
void func_ov000_0206d0bc(unk32 param1);
|
||||
void func_ov000_0206d274(unk32 param1);
|
||||
void func_ov000_0206c96c(unk32 param1);
|
||||
void func_ov000_0206c9a8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
void func_ov000_0206c608(unk32 param1, unk32 param2, unk32 param3);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b51b8 data_ov000_020b51b8;
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_020b5214 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
void func_ov000_0206db44(unk32 param1);
|
||||
void func_ov000_0206d6b4(unk32 param1, unk32 param2);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b5214 data_ov000_020b5214;
|
||||
@@ -0,0 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov003_020ba740 {
|
||||
public:
|
||||
/* 000 */ unk8 mUnk_000[0x9D0];
|
||||
/* 9D0 */ wchar_t mUnk_9D0[9];
|
||||
|
||||
void func_ov003_020b69d8(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov003_020ba740 *data_ov003_020ba740;
|
||||
@@ -0,0 +1,292 @@
|
||||
#pragma once
|
||||
|
||||
#include "Save/SaveManager.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
// seems to be a filesystem targeting the save file
|
||||
|
||||
// data_ov000_020b2078
|
||||
class UnkSystem1_ov000_Base : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
|
||||
UnkSystem1_ov000_Base(unk32 param1, unk32 param2);
|
||||
|
||||
/* 00 */ virtual void vfunc_00(); // func_ov000_020667d8
|
||||
/* 04 */ virtual void vfunc_04(); // func_ov000_020667f4
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1); // func_ov000_020669cc
|
||||
/* 0C */ virtual void vfunc_0C(); // func_ov000_020669d0
|
||||
/* 10 */ virtual void vfunc_10(); // func_ov000_02066a5c
|
||||
/* 14 */ virtual void vfunc_14(); // func_ov000_02066dfc
|
||||
/* 18 */ virtual void vfunc_18(); // func_ov000_020669d8
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3); // func_ov000_02067234
|
||||
/* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3); // func_ov000_0206723c
|
||||
/* 24 */
|
||||
};
|
||||
|
||||
// data_ov000_020b20a4
|
||||
class UnkSystem1_ov000_Derived1 : public UnkSystem1_ov000_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ unk16 mUnk_04;
|
||||
/* 06 */ unk16 mUnk_06;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk8 mUnk_12; // file slot index
|
||||
/* 13 */ unk8 mUnk_13;
|
||||
/* 14 */
|
||||
|
||||
UnkSystem1_ov000_Derived1();
|
||||
UnkSystem1_ov000_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_020673c8
|
||||
/* 0C */ virtual void vfunc_0C() override; // func_ov000_02067434
|
||||
/* 10 */ virtual void vfunc_10() override; // func_ov000_02067474
|
||||
/* 24 */ virtual ~UnkSystem1_ov000_Derived1(); // func_ov000_020672ac & func_ov000_020672f4
|
||||
};
|
||||
|
||||
// data_ov000_020b489c
|
||||
class UnkSystem1_ov000_Derived2 : public UnkSystem1_ov000_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov000_Derived2(unk32 param1, unk32 param2);
|
||||
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_0209fbec
|
||||
/* 0C */ virtual void vfunc_0C() override; // func_ov000_0209fcdc
|
||||
/* 24 */ virtual ~UnkSystem1_ov000_Derived2() override; // func_ov000_0209fb18 & func_ov000_0209fb5c
|
||||
};
|
||||
|
||||
// data_ov010_020b8e10
|
||||
class UnkSystem1_ov010 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov010(unk32 param1, unk32 param2);
|
||||
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov010_020b8844
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov010_020b8878
|
||||
/* 24 */ virtual ~UnkSystem1_ov010() override; // func_ov010_020b65f0
|
||||
};
|
||||
|
||||
class UnkSystem1_ov010_Derived1 : public UnkSystem1_ov010 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov010_Derived1(unk32 param1, unk32 param2);
|
||||
/* 24 */ virtual ~UnkSystem1_ov010_Derived1() override; // func_ov010_020b88b0
|
||||
};
|
||||
|
||||
// data_ov016_020b8278
|
||||
class UnkSystem1_ov016 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov016(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov016() override; // func_ov016_020b7650
|
||||
};
|
||||
|
||||
class UnkSystem1_ov016_Derived1 : public UnkSystem1_ov016 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov016_Derived1(unk32 param1, unk32 param2);
|
||||
/* 24 */ virtual ~UnkSystem1_ov016_Derived1() override; // func_ov016_020b7664
|
||||
/* 2C */ virtual void vfunc_2C(); // func_ov016_020b776c
|
||||
};
|
||||
|
||||
// data_ov019_020d1e00
|
||||
class UnkSystem1_ov019_1 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov019_1();
|
||||
UnkSystem1_ov019_1(unk32 param1, unk32 param2) :
|
||||
UnkSystem1_ov000_Derived1(param1, param2) {}
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov019_1() override {} // func_ov019_020c4914
|
||||
};
|
||||
|
||||
class UnkSystem1_ov019_Derived1 : public UnkSystem1_ov019_1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ SaveFile *mUnk_14;
|
||||
/* 18 */ unk16 mUnk_18;
|
||||
/* 1A */ unk8 mUnk_1A; // bool?
|
||||
/* 1B */ u8 mUnk_1B; // bool?
|
||||
/* 1C */
|
||||
|
||||
UnkSystem1_ov019_Derived1();
|
||||
UnkSystem1_ov019_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
void func_ov019_020c5200();
|
||||
unk32 func_ov019_020c5540(bool param1, unk16 param2);
|
||||
void func_ov019_020c5590(unk32 param1, unk32 param2, unk32 param3);
|
||||
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020c523c
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov019_020c5284
|
||||
/* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3) override; // func_ov019_020c5430
|
||||
/* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived1() override {} // func_ov019_020c5614
|
||||
};
|
||||
|
||||
class UnkSystem1_ov019_2 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov019_2(unk32 param1, unk32 param2) :
|
||||
UnkSystem1_ov000_Derived1(param1, param2) {}
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov019_2() override {} // func_ov019_020c4c38
|
||||
};
|
||||
|
||||
// used to create new files
|
||||
class UnkSystem1_ov019_Derived2 : public UnkSystem1_ov019_2 { // 0x02262F24
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ bool mUnk_14;
|
||||
/* 15 */ u8 mUnk_15;
|
||||
/* 16 */ unk8 mUnk_16;
|
||||
/* 17 */ unk8 mUnk_17;
|
||||
/* 18 */
|
||||
|
||||
UnkSystem1_ov019_Derived2();
|
||||
|
||||
// data_ov019_020d2440 vtable
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov019_020d035c
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov019_020d03a4
|
||||
/* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived2() override {} // func_ov019_020d0594
|
||||
};
|
||||
|
||||
class UnkSystem1_ov019_3 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */
|
||||
|
||||
UnkSystem1_ov019_3(unk32 param1, unk32 param2) :
|
||||
UnkSystem1_ov000_Derived1(param1, param2) {}
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov019_3() override {} // func_ov019_020c5fd0
|
||||
};
|
||||
|
||||
// used to copy and delete files
|
||||
class UnkSystem1_ov019_Derived3 : public UnkSystem1_ov019_3 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ bool mUnk_14;
|
||||
/* 15 */ unk8 mUnk_15;
|
||||
/* 16 */ unk8 mUnk_16;
|
||||
/* 17 */ unk8 mUnk_17;
|
||||
/* 18 */ unk32 mUnk_18; // operating mode: 0 for copy and 1 for erase
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ u8 mUnk_20; // bool?
|
||||
/* 21 */ bool mUnk_21;
|
||||
/* 22 */ unk8 mUnk_22;
|
||||
/* 22 */ unk8 mUnk_23;
|
||||
|
||||
UnkSystem1_ov019_Derived3();
|
||||
|
||||
// data_ov019_020d2474 vtable
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override;
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 24 */ WEAK virtual ~UnkSystem1_ov019_Derived3() override {}
|
||||
};
|
||||
|
||||
// data_ov036_021225f4
|
||||
class UnkSystem1_ov036 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov036(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov036() override; // func_ov036_0211eb68
|
||||
};
|
||||
|
||||
class UnkSystem1_ov036_Derived1 : public UnkSystem1_ov036 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov036_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov036_Derived1() override; // func_ov036_02120c18
|
||||
};
|
||||
|
||||
// data_ov056_0213ec20
|
||||
class UnkSystem1_ov056 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov056(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov056() override; // func_ov056_0213b910
|
||||
};
|
||||
|
||||
class UnkSystem1_ov056_Derived1 : public UnkSystem1_ov056 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov056_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov056_Derived1() override; // func_ov056_0213d4dc
|
||||
};
|
||||
|
||||
// data_ov059_02163a28
|
||||
class UnkSystem1_ov059 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov059(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov059() override; // func_ov059_021605c8 (?)
|
||||
};
|
||||
|
||||
class UnkSystem1_ov059_Derived1 : public UnkSystem1_ov059 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov059_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov059_Derived1() override; // func_ov059_02160d98
|
||||
};
|
||||
|
||||
// data_ov062_021608e8
|
||||
class UnkSystem1_ov062 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov062(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov062() override; // func_ov062_0215cf18
|
||||
};
|
||||
|
||||
class UnkSystem1_ov062_Derived1 : public UnkSystem1_ov062 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov062_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov062_Derived1() override; // func_ov062_0215e734
|
||||
};
|
||||
|
||||
// data_ov063_02163714
|
||||
class UnkSystem1_ov063 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov063(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov063() override; // func_ov063_0215f1c0
|
||||
};
|
||||
|
||||
class UnkSystem1_ov063_Derived1 : public UnkSystem1_ov063 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkSystem1_ov063_Derived1(unk32 param1, unk32 param2);
|
||||
|
||||
/* 24 */ virtual ~UnkSystem1_ov063_Derived1() override; // func_ov063_0215f29c
|
||||
};
|
||||
@@ -26,4 +26,22 @@
|
||||
#define SBSS_BEGIN _Pragma("section sbss begin")
|
||||
#define SBSS_END _Pragma("section sbss end")
|
||||
|
||||
#define NO_INLINE __attribute__((never_inline))
|
||||
|
||||
#ifdef __MWERKS__
|
||||
#define AT_ADDRESS(xyz) : (xyz)
|
||||
#define DECL_SECTION(x) __declspec(section x)
|
||||
#define EXPORT __declspec(export)
|
||||
#define WEAK __declspec(weak)
|
||||
#define ASM asm
|
||||
#else
|
||||
#define AT_ADDRESS(xyz)
|
||||
#define DECL_SECTION(x)
|
||||
#define EXPORT
|
||||
#define WEAK
|
||||
#define ASM
|
||||
#endif
|
||||
|
||||
#define STRUCT_PAD(from, to) unsigned char _pad_##from[(to) - (from)]
|
||||
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,78 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
struct stack_struct1 {
|
||||
void *param1;
|
||||
int param2;
|
||||
};
|
||||
|
||||
template <typename T, int arrayLength> class Iterator {
|
||||
public:
|
||||
class ListData : public SysObject {
|
||||
public:
|
||||
u8 data[sizeof(T) * arrayLength];
|
||||
};
|
||||
|
||||
ListData *begin;
|
||||
ListData *end;
|
||||
|
||||
Iterator() {}
|
||||
|
||||
~Iterator() {
|
||||
this->Destroy();
|
||||
}
|
||||
|
||||
void Init(stack_struct1 *param1) {
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->end;
|
||||
|
||||
do {
|
||||
(--it)->~T();
|
||||
} while (it != (T *) this->begin);
|
||||
|
||||
delete this->begin;
|
||||
}
|
||||
|
||||
ListData *ptr = new(HeapIndex_1) ListData();
|
||||
this->begin = ptr;
|
||||
this->end = ptr + (arrayLength - 1);
|
||||
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->begin;
|
||||
stack_struct1 *p;
|
||||
|
||||
do {
|
||||
if (it != NULL) {
|
||||
it->Init(*p);
|
||||
}
|
||||
|
||||
it++;
|
||||
p++;
|
||||
} while (it != (T *) this->end);
|
||||
}
|
||||
}
|
||||
|
||||
void Destroy() {
|
||||
if (this->begin != this->end) {
|
||||
T *it = (T *) this->end;
|
||||
|
||||
do {
|
||||
(--it)->~T();
|
||||
} while (it != (T *) this->begin);
|
||||
|
||||
delete this->begin;
|
||||
}
|
||||
}
|
||||
|
||||
void Reset() {
|
||||
this->Destroy();
|
||||
this->begin = NULL;
|
||||
this->end = NULL;
|
||||
}
|
||||
|
||||
T &GetRef(int index) {
|
||||
return ((T *) this->begin)[index];
|
||||
}
|
||||
};
|
||||
+16
-9
@@ -9,6 +9,7 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#define ABS(x) ((x) < 0 ? -(x) : (x))
|
||||
#define CLAMP(x, min, max) ((x) > (max) ? (max) : (x) < (min) ? (min) : (x))
|
||||
|
||||
// Q20.12 fixed point number
|
||||
typedef s32 q20;
|
||||
@@ -50,32 +51,38 @@ bool Approach(unk32 *src, unk32 dest, unk32 step);
|
||||
bool Approach_thunk(unk32 *src, unk32 dest, unk32 step);
|
||||
extern q4 gSinCosTable[];
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec2b {
|
||||
/* 0 */ u8 x;
|
||||
/* 1 */ u8 y;
|
||||
/* 2 */
|
||||
} Vec2b;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec2s {
|
||||
/* 0 */ s16 x;
|
||||
/* 1 */ s16 y;
|
||||
/* 2 */
|
||||
} Vec2s;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec2us {
|
||||
/* 0 */ u16 x;
|
||||
/* 2 */ u16 y;
|
||||
/* 4 */
|
||||
} Vec2us;
|
||||
|
||||
typedef struct Vec2p {
|
||||
/* 0 */ q20 x;
|
||||
/* 4 */ q20 y;
|
||||
/* 8 */
|
||||
} Vec2p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec3p {
|
||||
/* 0 */ q20 x;
|
||||
/* 4 */ q20 y;
|
||||
/* 8 */ q20 z;
|
||||
/* c */
|
||||
} Vec3p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Vec4p {
|
||||
/* 00 */ q20 x;
|
||||
/* 04 */ q20 y;
|
||||
/* 08 */ q20 z;
|
||||
@@ -83,20 +90,20 @@ typedef struct {
|
||||
/* 10 */
|
||||
} Vec4p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Mat2p {
|
||||
/* 00 */ Vec2p xColumn;
|
||||
/* 08 */ Vec2p yColumn;
|
||||
/* 10 */
|
||||
} Mat2p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Mat3p {
|
||||
/* 00 */ Vec3p xColumn;
|
||||
/* 0c */ Vec3p yColumn;
|
||||
/* 18 */ Vec3p zColumn;
|
||||
/* 24 */
|
||||
} Mat3p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Mat4x3p {
|
||||
/* 00 */ Vec3p xColumn;
|
||||
/* 0c */ Vec3p yColumn;
|
||||
/* 18 */ Vec3p zColumn;
|
||||
@@ -104,7 +111,7 @@ typedef struct {
|
||||
/* 30 */
|
||||
} Mat4x3p;
|
||||
|
||||
typedef struct {
|
||||
typedef struct Mat4p {
|
||||
/* 00 */ Vec4p xColumn;
|
||||
/* 10 */ Vec4p yColumn;
|
||||
/* 20 */ Vec4p zColumn;
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
#pragma once
|
||||
|
||||
#define REG_WORD_PTR(addr) ((u32 *) (addr))
|
||||
#define REG_WORD(addr) (*(REG_WORD_PTR(addr)))
|
||||
|
||||
#define REG_HALFWORD_PTR(addr) ((u16 *) (addr))
|
||||
#define REG_HALFWORD(addr) (*(REG_HALFWORD_PTR(addr)))
|
||||
|
||||
#define REG_IME REG_WORD(*(u32 *) 0x04000208)
|
||||
#define REG_VCOUNT REG_WORD_PTR(*(u32 *) 0x04000006)
|
||||
#define RAM_PALETTES REG_WORD_PTR((u32 *) 0x05000000)
|
||||
#define RAM_OAM REG_WORD_PTR((u32 *) 0x07000000)
|
||||
|
||||
#define ARM9_IO_BASE 0x04000000
|
||||
#define REG_DISPCNT REG_WORD(ARM9_IO_BASE)
|
||||
#define REG_DISPCNT_SUB REG_WORD(ARM9_IO_BASE | 0x00001000)
|
||||
|
||||
#define REG_BLDCNT REG_WORD(ARM9_IO_BASE | 0x00000050)
|
||||
#define REG_BLDCNT_SUB REG_WORD(ARM9_IO_BASE | 0x00001050)
|
||||
|
||||
#define REG_BG1HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x00001014)
|
||||
#define REG_BG2HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x00001018)
|
||||
#define REG_BG3HOFS_SUB REG_WORD(ARM9_IO_BASE | 0x0000101C)
|
||||
|
||||
#define REG_BLDALPHA REG_HALFWORD(ARM9_IO_BASE | 0x00000052)
|
||||
@@ -22,4 +22,32 @@ typedef s32 unk32;
|
||||
|
||||
#define CEIL_DIV(a, b) (((a) + (b) - 1) / (b))
|
||||
|
||||
#ifdef __cplusplus
|
||||
template <typename T> struct PTMF {
|
||||
typedef void (T::*PTMFCallback)();
|
||||
|
||||
PTMFCallback callback;
|
||||
|
||||
#define CALL_PTMF(cls, data, ...) \
|
||||
{ \
|
||||
PTMF<cls> &ptr = (data); \
|
||||
(this->*ptr.callback)(__VA_ARGS__); \
|
||||
}
|
||||
|
||||
#define STATIC_CALL_PTMF(cls, data, thisx, ...) \
|
||||
{ \
|
||||
PTMF<cls> &ptr = (data); \
|
||||
((thisx)->*ptr.callback)(__VA_ARGS__); \
|
||||
}
|
||||
|
||||
#define STATIC_PTMFCALLBACK(cls, data, thisx, ...) \
|
||||
{ \
|
||||
PTMF<cls>::PTMFCallback &ptr = (data); \
|
||||
((thisx)->*ptr)(__VA_ARGS__); \
|
||||
}
|
||||
};
|
||||
|
||||
typedef void (*UnkCallback)(u16 param1);
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user