mirror of
https://github.com/zeldaret/st
synced 2026-07-08 14:26:24 -04:00
Decompile overlay 24 (Part 1) (#65)
* GameModeAdventure_001 OK * GameModeAdventure_024 17% * GameModeAdventure_024 73% * GameModeAdventure_024 99% * jp region differences * rename GameModeAdventure_024 and GameModeAdventure + UnkStruct_ov000_020d8660_024 OK * UnkActorSystem1OK * UnkActorSystem2 OK * delink more of ov024 & UnkStruct_027e0998_024 OK * improve instance stuff & UnkStruct_027e0cf8_024 OK * AdventureModeManager_160_024 OK & GameModeStartUp OK * fix regressions * fix regressions 2 * AdventureModeManager_170 OK * AdventureModeManager_174_Base OK * AdventureModeManager_174 OK * mark GameModeAdventure_024 as complete * AdventureModeManager_178 OK * AdventureModeManager_180 OK * AdventureModeManager_184_024 OK * AdventureModeManager_18C_024 OK & AdventureModeManager_190_024 OK * AdventureModeManager_15C_20_00 61% * AdventureModeManager_15C_20_00 OK * jp version differences * delink what's left in the overlay * fix regressions * AdventureModeManager_1B8_Base_024 98% * AdventureModeManager_1B8 48% and link AdventureModeManager_024 * AdventureModeManager_1B8_Base and AdventureModeManager_1B8 OK * oops * mark statics as local
This commit is contained in:
@@ -14,7 +14,7 @@ struct UnkStruct_func_ov001_020bb018_param2 {
|
||||
/* 08 */ u16 mUnk_0A;
|
||||
};
|
||||
|
||||
class ActorManager : public SysObject {
|
||||
class ActorManager : public AutoInstance<ActorManager> {
|
||||
public:
|
||||
/* 00 */ Actor **mActorTable;
|
||||
/* 04 */ Actor **mActorTableEnd;
|
||||
@@ -50,7 +50,6 @@ public:
|
||||
unk32 func_ov000_0209704c();
|
||||
unk32 func_ov000_020970c8(u16 param1, unk32 *param2);
|
||||
|
||||
int ClearInstance();
|
||||
void func_ov001_020bafdc();
|
||||
void func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *param1);
|
||||
void func_ov001_020bb488();
|
||||
@@ -60,7 +59,6 @@ public:
|
||||
void func_ov001_020bb7b0(ZeldaObjectList *pObjList);
|
||||
void func_ov001_020bb7f0();
|
||||
|
||||
static void SetInstance(ActorManager *instance);
|
||||
static ActorManager *Create();
|
||||
static void Destroy();
|
||||
static void func_ov001_020bb414(ActorManager *instance);
|
||||
|
||||
@@ -27,7 +27,6 @@ public:
|
||||
/* 4C */ virtual ~ActorUnkTUTO() override;
|
||||
|
||||
void func_ov037_02120a10(void);
|
||||
void func_ov037_02120a64(void);
|
||||
void func_ov037_02120afc(void);
|
||||
void func_ov037_02120b10(void);
|
||||
void func_ov037_02120ba8(void);
|
||||
@@ -58,6 +57,8 @@ public:
|
||||
void func_ov037_02121ab0(void);
|
||||
void func_ov037_02121af0(void);
|
||||
void func_ov037_02121b2c(void);
|
||||
|
||||
static unk32 func_ov037_02120a64(void);
|
||||
};
|
||||
|
||||
class ActorProfileUnkTUTO : public ActorProfile {
|
||||
|
||||
@@ -15,11 +15,11 @@ public:
|
||||
/* 16 */ unk16 mUnk_16;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ unk8 mUnk_20;
|
||||
/* 21 */ unk8 mUnk_21;
|
||||
/* 20 */ bool mUnk_20;
|
||||
/* 21 */ bool mUnk_21;
|
||||
/* 22 */ unk8 mUnk_22;
|
||||
/* 23 */ unk8 mUnk_23;
|
||||
/* 24 */ void *mUnk_24;
|
||||
/* 24 */ Actor *mpActor;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */ unk16 mUnk_30;
|
||||
|
||||
@@ -55,6 +55,26 @@ enum FileSelectExitMode_ {
|
||||
/* 0x03 */ FileSelectExitMode_Unk_3 = 3,
|
||||
};
|
||||
|
||||
class FileSelectMain_UnkSubStruct1 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
}
|
||||
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
class FileSelectMain : public GameModeManagerBase_104 { // 022E5F70
|
||||
public:
|
||||
/* 0000 (base) */
|
||||
@@ -65,7 +85,7 @@ public:
|
||||
/* 0026 */ unk8 mUnk_0026;
|
||||
/* 0027 */ unk8 mUnk_0027;
|
||||
/* 0028 */ unk32 mUnk_0028;
|
||||
/* 002C */ UnkSubStruct1 mUnk_002C;
|
||||
/* 002C */ FileSelectMain_UnkSubStruct1 mUnk_002C;
|
||||
/* 005C */ UnkSystem2_UnkSubSystem1_Derived1 mUnk_005C;
|
||||
/* 00BC */ UnkSystem2_UnkSubSystem9 mUnk_00BC;
|
||||
|
||||
|
||||
@@ -17,11 +17,11 @@ public:
|
||||
/* 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();
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2);
|
||||
/* 14 */ virtual void vfunc_14(unk32 param1);
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1);
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1);
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 20 */ virtual void vfunc_20(unk32 param1, unk32 param2);
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */
|
||||
};
|
||||
@@ -42,11 +42,11 @@ public:
|
||||
/* 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;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2) override;
|
||||
/* 14 */ virtual void vfunc_14(unk32 param1) override;
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1) override;
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 20 */ virtual void vfunc_20(unk32 param1, unk32 param2) override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */
|
||||
};
|
||||
@@ -66,11 +66,11 @@ public:
|
||||
/* 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;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2) override;
|
||||
/* 14 */ virtual void vfunc_14(unk32 param1) override;
|
||||
/* 18 */ virtual void vfunc_18(unk32 param1) override;
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1) override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 20 */ virtual void vfunc_20(unk32 param1, unk32 param2) override;
|
||||
|
||||
static void func_ov019_020d02f4();
|
||||
};
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameMode.hpp"
|
||||
// #include "Unknown/UnkStruct_0204a060.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class GameModeAdventure : public GameModeBase {
|
||||
public:
|
||||
GameModeAdventure();
|
||||
|
||||
// data_ov024_020d7b68 vtable
|
||||
/* 00 */ virtual ~GameModeAdventure() override;
|
||||
/* 08 */ virtual void vfunc_08() override; // Init
|
||||
/* 0C */ virtual void vfunc_0C() override; // Update
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
};
|
||||
@@ -26,6 +26,8 @@ public:
|
||||
void func_0201bfec();
|
||||
void func_0201c00c(unk32 param1, unk32 param2);
|
||||
void func_0201c068(unk16 param1);
|
||||
void func_0201c0c4(unk32 param1);
|
||||
void func_0201c0e4();
|
||||
void func_0201c19c();
|
||||
void func_0201c124(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201c1e4();
|
||||
@@ -44,22 +46,67 @@ public:
|
||||
GameModeLinkListNode();
|
||||
~GameModeLinkListNode();
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (node != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNext() {
|
||||
GameModeLinkListNode *next = mNext;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNext3() {
|
||||
GameModeLinkListNode *next = this;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return next;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this + 2);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk2() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this + 1);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetPrev() {
|
||||
GameModeLinkListNode *prev = mPrev;
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
template <typename T> T *GetTarget() {
|
||||
return (T *) this;
|
||||
}
|
||||
|
||||
void func_020166cc(GameModeLinkListNode *param1);
|
||||
void func_020166f4(GameModeLinkListNode *param1);
|
||||
unk32 func_0201673c();
|
||||
|
||||
static void func_020166ac(GameModeLinkListNode *param1);
|
||||
};
|
||||
|
||||
template <typename T> class GameModeLinkList : public GameModeLinkListNode {
|
||||
public:
|
||||
GameModeLinkList *GetNext() {
|
||||
GameModeLinkListNode *next = mNext;
|
||||
if (next != NULL) {
|
||||
next = (GameModeLinkListNode *) ((u32 *) next - 1);
|
||||
}
|
||||
return (GameModeLinkList *) next;
|
||||
}
|
||||
|
||||
GameModeLinkList *GetNext2() {
|
||||
GameModeLinkListNode *next = (GameModeLinkListNode *) *((u8 **) this + 2);
|
||||
if (next != NULL) {
|
||||
@@ -68,12 +115,12 @@ public:
|
||||
return (GameModeLinkList *) next;
|
||||
}
|
||||
|
||||
GameModeLinkList *GetPrev() {
|
||||
GameModeLinkListNode *prev = mPrev;
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return (GameModeLinkList *) prev;
|
||||
GameModeLinkList *GetNextList() {
|
||||
return (GameModeLinkList *) this->GetNext();
|
||||
}
|
||||
|
||||
GameModeLinkList *GetPrevList() {
|
||||
return (GameModeLinkList *) this->GetPrev();
|
||||
}
|
||||
|
||||
T *GetTarget() {
|
||||
@@ -89,6 +136,14 @@ public:
|
||||
return (GameModeLinkList<GameModeManagerBase_104_0C> *) this;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetUnk3() {
|
||||
GameModeLinkListNode *prev = (GameModeLinkListNode *) *((u32 *) this - 1);
|
||||
if (prev != NULL) {
|
||||
prev = (GameModeLinkListNode *) ((u32 *) prev - 1);
|
||||
}
|
||||
return prev;
|
||||
}
|
||||
|
||||
// data_ov000_020b1e48 vtable
|
||||
/* 00 */ virtual ~GameModeManagerBase_104_0C();
|
||||
/* 08 */ virtual void vfunc_08(void *param1);
|
||||
@@ -103,19 +158,30 @@ public:
|
||||
/* 0C */ GameModeManagerBase_104_0C mUnk_0C;
|
||||
};
|
||||
|
||||
class AdventureModeManager_160_14;
|
||||
class AdventureModeManager_160_18;
|
||||
class AdventureModeManager_1B8;
|
||||
|
||||
class GameModeManagerBase_104 : public GameModeManagerBase_104_00 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ bool mUnk_19;
|
||||
/* 1A */ bool mUnk_1A;
|
||||
/* 1B */ unk8 mUnk_1B;
|
||||
/* 1C */
|
||||
|
||||
GameModeLinkList<GameModeManagerBase_104> *GetOrigin() {
|
||||
return (GameModeLinkList<GameModeManagerBase_104> *) this;
|
||||
}
|
||||
|
||||
GameModeLinkListNode *GetNode() {
|
||||
GameModeLinkListNode *node = (GameModeLinkListNode *) this;
|
||||
if (node != NULL) {
|
||||
node = (GameModeLinkListNode *) ((u32 *) node + 1);
|
||||
}
|
||||
return node;
|
||||
}
|
||||
|
||||
GameModeManagerBase_104();
|
||||
|
||||
// data_ov000_020b1e60 vtable
|
||||
@@ -125,6 +191,8 @@ public:
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1);
|
||||
/* 14 */ virtual void vfunc_14(unk8 *param1);
|
||||
/* 18 */ virtual void vfunc_18(void);
|
||||
|
||||
void func_ov088_0217230c();
|
||||
};
|
||||
|
||||
class GameModeManagerBase : public SysObject {
|
||||
@@ -180,10 +248,11 @@ public:
|
||||
bool func_02018af0(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b54(GameModeLinkList<GameModeManagerBase_104> *param1);
|
||||
bool func_02018b90(GameModeLinkList<GameModeManagerBase_104> *param1, unk8 *param2);
|
||||
void func_02018bc4(unk32 param1);
|
||||
|
||||
// data_02044064 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 04 */ virtual void vfunc_04(unk32 param1);
|
||||
/* 08 */ virtual ~GameModeManagerBase();
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3);
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
@@ -199,32 +268,29 @@ public:
|
||||
static GameModeManagerBase *Create(unk32 param1);
|
||||
};
|
||||
|
||||
class TitleScreen;
|
||||
class MainGame;
|
||||
|
||||
class TitleScreenManager_Base : public GameModeManagerBase {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */ GameModeBase *mpGameMode;
|
||||
/* 154 */
|
||||
|
||||
TitleScreenManager_Base();
|
||||
|
||||
TitleScreen *GetTitleScreen() {
|
||||
return (TitleScreen *) this->mpGameMode;
|
||||
}
|
||||
|
||||
MainGame *GetMainGame() {
|
||||
return (MainGame *) this->mpGameMode;
|
||||
}
|
||||
|
||||
// data_ov000_020b1d14 vtable
|
||||
/* 08 */ virtual ~TitleScreenManager_Base() override;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4);
|
||||
/* 3C */ virtual void vfunc_3C();
|
||||
/* 40 */ virtual void vfunc_40();
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
/* 48 */
|
||||
|
||||
void func_ov000_02060fc8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
};
|
||||
|
||||
extern TitleScreenManager_Base *data_027e0994;
|
||||
|
||||
class AdventureModeManager;
|
||||
|
||||
static inline AdventureModeManager *GetAdventureModeManager() {
|
||||
return (AdventureModeManager *) data_027e0994;
|
||||
}
|
||||
|
||||
@@ -19,7 +19,7 @@ public:
|
||||
GameModeStartUp();
|
||||
|
||||
// data_ov018_020c5b28 vtable
|
||||
/* 00 */ virtual ~GameModeStartUp() override {}
|
||||
// /* 00 */ virtual ~GameModeStartUp() override {}
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@ public:
|
||||
static AdventureFlag GetAdvFlagFromItem(ItemId itemId);
|
||||
};
|
||||
|
||||
class TreasureManager : public ItemManager {
|
||||
class TreasureManager : public AutoInstance<TreasureManager>, public ItemManager {
|
||||
public:
|
||||
/* 28 */ unk8 mUnk_28[0x3C - 0x28];
|
||||
/* 3C */ s16 mUnk_3C[TreasureType_Max]; // treasures
|
||||
@@ -145,11 +145,9 @@ public:
|
||||
static unk32 func_ov000_020a9f4c(unk32 param1);
|
||||
ItemId func_ov000_020aa02c(ItemId itemId);
|
||||
void func_ov000_020aa0ac(ItemId itemId);
|
||||
void func_ov000_020aa200();
|
||||
bool func_ov000_020aa210();
|
||||
};
|
||||
|
||||
extern TreasureManager *data_ov000_020b6510;
|
||||
extern TreasureManager *gpTreasureManager;
|
||||
extern UnkStruct_ov000_020afc48 data_ov000_020afc48[ItemFlag_EQUIP_COUNT];
|
||||
extern const u8 gQuiverCapacities[UpgradeCapacity_Max];
|
||||
extern const u8 gBombBagCapacities[UpgradeCapacity_Max];
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -52,8 +52,6 @@ public:
|
||||
|
||||
void func_ov001_020bf830();
|
||||
|
||||
static void SetInstance(CargoManager *pInstance);
|
||||
static bool ClearInstance();
|
||||
static void Destroy(); // func_ov001_020bf428
|
||||
|
||||
// overlay 17
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameModeManager.hpp"
|
||||
|
||||
class MainGameManager : public TitleScreenManager_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */
|
||||
|
||||
// data_ov024_020d7c18 vtable
|
||||
/* 08 */ virtual ~MainGameManager() override;
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 30 */ virtual void vfunc_30(unk32 param1) override;
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2) override;
|
||||
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override;
|
||||
};
|
||||
@@ -59,7 +59,7 @@ enum StampType_ {
|
||||
/* 20 */ StampType_Max = 20,
|
||||
};
|
||||
|
||||
class MiscAdvManager {
|
||||
class MiscAdvManager : public AutoInstance<MiscAdvManager> {
|
||||
public:
|
||||
/* 00 */ u16 mStampDates[StampType_Max];
|
||||
/* 28 */ u16 mUnk_28;
|
||||
@@ -105,8 +105,6 @@ public:
|
||||
void func_ov024_020d6610();
|
||||
|
||||
static MiscAdvManager *Create();
|
||||
static void SetInstance(MiscAdvManager *pInstance);
|
||||
static int ClearInstance();
|
||||
};
|
||||
|
||||
extern MiscAdvManager *gpMiscAdvManager;
|
||||
|
||||
@@ -56,8 +56,6 @@ public:
|
||||
bool func_ov001_020bfa1c();
|
||||
|
||||
static bool func_ov001_020bf870();
|
||||
static void SetInstance(PassengerManager *pInstance); // func_ov001_020bfa38
|
||||
static bool ClearInstance(); // func_ov001_020bfa44
|
||||
|
||||
// overlay 24
|
||||
void func_ov024_020d41bc(UnkStruct_Param1 *pActorId);
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkAdventureModeSystem1 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkSystem2_UnkSubSystem9 mUnk_04;
|
||||
/* 48 */
|
||||
|
||||
UnkAdventureModeSystem1(unk16 *param1, unk16 *param2, unk32 param3);
|
||||
UnkAdventureModeSystem1(unk32 param3);
|
||||
|
||||
// data_ov024_020d7f7c
|
||||
/* 00 */ virtual void vfunc_00() = 0;
|
||||
|
||||
void func_ov024_020cab58();
|
||||
void func_ov024_020caba4();
|
||||
void func_ov024_020cad7c();
|
||||
};
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Message/BMGEnums.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
@@ -0,0 +1,213 @@
|
||||
#pragma once
|
||||
|
||||
#include "versions.h"
|
||||
|
||||
enum MsgIndex_ {
|
||||
// BMGGroup_maingame
|
||||
MsgIndex_ViewTrain,
|
||||
MsgIndex_GetItemNothing,
|
||||
MsgIndex_GetItemNormalShield,
|
||||
MsgIndex_GetItemBombBag,
|
||||
MsgIndex_Empty_04,
|
||||
MsgIndex_GetItemSmallKey,
|
||||
MsgIndex_Empty_06,
|
||||
MsgIndex_GetItemGreenRupee,
|
||||
MsgIndex_GetItemBlueRupee,
|
||||
MsgIndex_GetItemRedRupee,
|
||||
MsgIndex_GetItemBigGreenRupee,
|
||||
MsgIndex_GetItemBigRedRupee,
|
||||
MsgIndex_GetItemBigGoldRupee,
|
||||
MsgIndex_GetItemForceGem_18,
|
||||
MsgIndex_GetItemForceGem_19,
|
||||
MsgIndex_GetItemForceGem_20,
|
||||
MsgIndex_GetItemFinalTrack,
|
||||
MsgIndex_Empty_11,
|
||||
MsgIndex_Empty_12,
|
||||
MsgIndex_Empty_13,
|
||||
MsgIndex_Empty_14,
|
||||
MsgIndex_GetItemForceGem_35,
|
||||
MsgIndex_GetItemForceGem_36,
|
||||
MsgIndex_GetItemForceGem_37,
|
||||
MsgIndex_GetItemLetter,
|
||||
MsgIndex_GetItemHeartContainer,
|
||||
MsgIndex_GetItemMediumQuiver,
|
||||
MsgIndex_GetItemMediumBombBag,
|
||||
MsgIndex_GetItemForceGem_43,
|
||||
MsgIndex_GetItemForceGem_44,
|
||||
MsgIndex_GetItemForceGem_45,
|
||||
MsgIndex_GetItemForceGem_46,
|
||||
MsgIndex_GetItemForceGem_47,
|
||||
MsgIndex_GetItemForceGem_48,
|
||||
MsgIndex_GetItemForceGem_49,
|
||||
MsgIndex_GetItemForceGem_50,
|
||||
MsgIndex_GetItemForceGem_51,
|
||||
MsgIndex_GetItemForceGem_52,
|
||||
MsgIndex_GetItemForceGem_53,
|
||||
MsgIndex_GetItemForceGem_54,
|
||||
MsgIndex_GetItemForceGem_55,
|
||||
MsgIndex_GetItemForceGem_56,
|
||||
MsgIndex_GetItemForceGem_57,
|
||||
MsgIndex_Empty_2B,
|
||||
MsgIndex_Empty_2C,
|
||||
MsgIndex_Empty_2D,
|
||||
MsgIndex_Empty_2E,
|
||||
MsgIndex_Empty_2F,
|
||||
MsgIndex_Empty_30,
|
||||
MsgIndex_GetItemTenPriceCard,
|
||||
MsgIndex_GetItemRedPotion,
|
||||
MsgIndex_GetItemPurplePotion,
|
||||
MsgIndex_GetItemYellowPotion,
|
||||
MsgIndex_GetItemDemonFossil,
|
||||
MsgIndex_GetItemStalfosSkull,
|
||||
MsgIndex_GetItemStarFragment,
|
||||
MsgIndex_GetItemBeeLarvae,
|
||||
MsgIndex_GetItemWoodHeart,
|
||||
MsgIndex_GetItemDarkPearlLoop,
|
||||
MsgIndex_GetItemWhitePearlLoop,
|
||||
MsgIndex_GetItemRutoCrown,
|
||||
MsgIndex_GetItemDragonScale,
|
||||
MsgIndex_GetItemPirateNecklace,
|
||||
MsgIndex_GetItemPalaceDish,
|
||||
MsgIndex_GetItemGoronAmber,
|
||||
MsgIndex_GetItemMysticJade,
|
||||
MsgIndex_GetItemAncientCoin,
|
||||
MsgIndex_GetItemPricelessStone,
|
||||
MsgIndex_GetItemRegalRing,
|
||||
MsgIndex_Empty_45,
|
||||
MsgIndex_Empty_46,
|
||||
MsgIndex_Empty_47,
|
||||
MsgIndex_GetItemLargeQuiver,
|
||||
MsgIndex_GetItemLargeBombBag,
|
||||
MsgIndex_Empty_4A,
|
||||
MsgIndex_Empty_4B,
|
||||
MsgIndex_Empty_4C,
|
||||
MsgIndex_Empty_4D,
|
||||
MsgIndex_GetItemScrollSpinAttack,
|
||||
MsgIndex_GetItemScrollBeam,
|
||||
MsgIndex_GetItemRabbitNet,
|
||||
MsgIndex_GetItemBeedleCard,
|
||||
MsgIndex_GetItemSilverCard,
|
||||
MsgIndex_GetItemGoldCard,
|
||||
MsgIndex_GetItemPlatinumCard,
|
||||
MsgIndex_GetItemDiamondCard,
|
||||
MsgIndex_GetItemFreebieCard,
|
||||
MsgIndex_GetItemQuintupleCard,
|
||||
MsgIndex_GetItemCarbenLetter,
|
||||
#if !IS_JP
|
||||
MsgIndex_GetItemRecruitUniform2,
|
||||
MsgIndex_GetItemEngineerUniform,
|
||||
#endif
|
||||
MsgIndex_Empty_5B,
|
||||
MsgIndex_Empty_5C,
|
||||
MsgIndex_ShopSell,
|
||||
MsgIndex_ShopQuit,
|
||||
MsgIndex_ShopOK,
|
||||
MsgIndex_Empty_60,
|
||||
MsgIndex_Empty_61,
|
||||
MsgIndex_Continue1,
|
||||
MsgIndex_SaveAndQuit1,
|
||||
MsgIndex_Continue2,
|
||||
MsgIndex_SaveAndQuit2,
|
||||
MsgIndex_Skip1,
|
||||
MsgIndex_Skip2,
|
||||
MsgIndex_Empty_68,
|
||||
MsgIndex_Empty_69,
|
||||
MsgIndex_Empty_6A,
|
||||
MsgIndex_Empty_6B,
|
||||
MsgIndex_Empty_6C,
|
||||
MsgIndex_Empty_6D,
|
||||
MsgIndex_MapPaintNotAllowed,
|
||||
MsgIndex_SaveAsk,
|
||||
MsgIndex_SaveProgress,
|
||||
MsgIndex_SaveDone,
|
||||
MsgIndex_CantReadSign,
|
||||
MsgIndex_Empty_73,
|
||||
MsgIndex_SaveAskQuit,
|
||||
#if IS_JP
|
||||
MsgIndex_TooDarkToRead,
|
||||
#endif
|
||||
MsgIndex_MiniGameQuit,
|
||||
MsgIndex_ItLooksDifferent,
|
||||
MsgIndex_NothingHappened,
|
||||
MsgIndex_AskDrinkPotion,
|
||||
MsgIndex_PlayedSongAwakening,
|
||||
MsgIndex_PlayedSongRecovery,
|
||||
MsgIndex_PlayedSongBirds,
|
||||
MsgIndex_PlayedSongLight,
|
||||
MsgIndex_PlayedSongDiscovery,
|
||||
MsgIndex_CantHealMore,
|
||||
MsgIndex_NothingToWake,
|
||||
MsgIndex_CantHealHere,
|
||||
MsgIndex_NoBirds,
|
||||
MsgIndex_NoLight,
|
||||
MsgIndex_NothingHidden,
|
||||
MsgIndex_Empty_84,
|
||||
MsgIndex_Empty_85,
|
||||
MsgIndex_Empty_86,
|
||||
MsgIndex_Empty_87,
|
||||
MsgIndex_Empty_88,
|
||||
MsgIndex_FairyHeal,
|
||||
MsgIndex_FairyHealFirstTimePart1,
|
||||
MsgIndex_FairyHealFirstTimePart2,
|
||||
MsgIndex_Undefined,
|
||||
MsgIndex_GossipStoneAskTreasures,
|
||||
MsgIndex_GossipStoneNoTreasures,
|
||||
MsgIndex_GossipStoneChoice2,
|
||||
MsgIndex_GossipStoneChoice1SaidNo,
|
||||
MsgIndex_GossipStoneChoice2SaidNo,
|
||||
MsgIndex_GossipStoneNoMoney,
|
||||
MsgIndex_GossipStonePaid,
|
||||
MsgIndex_StampStand,
|
||||
MsgIndex_StampStandNoBook,
|
||||
MsgIndex_Empty_96,
|
||||
MsgIndex_Empty_97,
|
||||
MsgIndex_ForestLand,
|
||||
MsgIndex_SnowLand,
|
||||
MsgIndex_OceanLand,
|
||||
MsgIndex_FireLand,
|
||||
MsgIndex_TowerOfSpirits,
|
||||
MsgIndex_TunnelToTheTower,
|
||||
MsgIndex_WoodedTemple,
|
||||
MsgIndex_BlizzardTemple,
|
||||
MsgIndex_MarineTemple,
|
||||
MsgIndex_MountainTemple,
|
||||
MsgIndex_DesertTemple,
|
||||
MsgIndex_PirateHideout,
|
||||
MsgIndex_HyruleCastle,
|
||||
MsgIndex_CastleTown,
|
||||
MsgIndex_Mayscore,
|
||||
MsgIndex_AnoukiVillage,
|
||||
MsgIndex_PapuziaVillage,
|
||||
MsgIndex_GoronVillage,
|
||||
MsgIndex_TradingPost,
|
||||
MsgIndex_IcySpring,
|
||||
MsgIndex_OutsetVillage,
|
||||
MsgIndex_WoodlandSanctuary,
|
||||
MsgIndex_SnowfallSanctuary,
|
||||
MsgIndex_IslandSanctuary,
|
||||
MsgIndex_ValleySanctuary,
|
||||
MsgIndex_DuneSanctuary,
|
||||
MsgIndex_BridgeWorkersHouse,
|
||||
MsgIndex_BossStagnox,
|
||||
MsgIndex_BossFraaz,
|
||||
MsgIndex_BossCactops,
|
||||
MsgIndex_BossVulcano,
|
||||
MsgIndex_BossCapbone,
|
||||
MsgIndex_BossGhostTrain,
|
||||
MsgIndex_BossStaven,
|
||||
MsgIndex_BossMalladus1,
|
||||
MsgIndex_BossMalladus2,
|
||||
MsgIndex_GoronTargetRange,
|
||||
MsgIndex_SnowdriftStation,
|
||||
MsgIndex_LostAtSeaStation,
|
||||
MsgIndex_DisorientationStation,
|
||||
MsgIndex_EndsOfTheEarthStation,
|
||||
MsgIndex_DarOreMine,
|
||||
MsgIndex_RabbitHaven,
|
||||
MsgIndex_SlipperyStation,
|
||||
MsgIndex_ThreeQuestionMarks,
|
||||
MsgIndex_Floor1,
|
||||
MsgIndex_Floor2,
|
||||
MsgIndex_Floor3,
|
||||
MsgIndex_ZeldaPhantomTooFar,
|
||||
};
|
||||
@@ -181,8 +181,8 @@ public:
|
||||
/* 00C */ unk32 mUnk_00C;
|
||||
/* 010 */ unk32 mUnk_010;
|
||||
/* 014 */ unk16 mUnk_014;
|
||||
/* 016 */ unk16 mSceneIndex;
|
||||
/* 018 */ u8 mInteriorIndex; // "house" index but could be more?
|
||||
/* 016 */ u16 mSceneIndex;
|
||||
/* 018 */ u8 mRoomIndex; // "house" index but could be more?
|
||||
/* 019 */ u8 mSpawnIndex;
|
||||
/* 01A */ unk16 mUnk_01A;
|
||||
/* 01C */ unk32 mUnk_01C;
|
||||
@@ -374,7 +374,8 @@ struct SaveManager_36 {
|
||||
struct SaveManager_00 {
|
||||
/* 000 */ STRUCT_PAD(0x00, 0x36);
|
||||
/* 036 */ SaveManager_36 mUnk_36[0x60];
|
||||
/* 336 */
|
||||
/* 336 */ STRUCT_PAD(0x336, 0xB30);
|
||||
/* B30 */ unk32 mUnk_B30[1]; // flags, at least 1
|
||||
/* BB8 */
|
||||
};
|
||||
|
||||
@@ -398,11 +399,11 @@ public:
|
||||
/* 244 */ unk32 mUnk_244;
|
||||
|
||||
bool IsUnk20A() {
|
||||
return mUnk_20A == 0;
|
||||
return this->mUnk_20A == 0;
|
||||
}
|
||||
|
||||
unk32 IsUnk210() {
|
||||
return mUnk_210 == 0;
|
||||
BOOL IsUnk210() {
|
||||
return this->mUnk_210 == 0;
|
||||
}
|
||||
|
||||
SaveSlot *GetSaveSlot(int saveSlotIndex) {
|
||||
@@ -416,7 +417,13 @@ public:
|
||||
SaveManager();
|
||||
|
||||
void func_ov000_020a0b2c(UnkCallback param1, unk32 param2);
|
||||
void func_ov000_020ba7c8(u16 saveSlotIndex);
|
||||
bool func_ov000_020a0b70(void *param1, unk32 param2);
|
||||
|
||||
void func_ov001_020ba670();
|
||||
void func_ov001_020ba7a8();
|
||||
void func_ov001_020ba7c8(u16 saveSlotIndex);
|
||||
|
||||
void func_ov017_020c3040(void *param1, unk32 param2);
|
||||
|
||||
void func_ov019_020d08fc(unk32 param1, PTMF<SaveFile>::PTMFCallback param2);
|
||||
bool func_ov019_020d0964(void);
|
||||
|
||||
@@ -387,6 +387,14 @@ public:
|
||||
/* 00 */ OverlayIndex mLoadedOverlays[OverlaySlot_COUNT];
|
||||
/* 48 */
|
||||
|
||||
bool IsPlayerSub() {
|
||||
return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub;
|
||||
}
|
||||
|
||||
bool IsMapA6() {
|
||||
return this->mLoadedOverlays[OverlaySlot_13] == OverlayIndex_MapA6;
|
||||
}
|
||||
|
||||
void Load(OverlaySlot slot, OverlayIndex index);
|
||||
void LoadIfNotLoaded(OverlaySlot slot, OverlayIndex index);
|
||||
void Unload(OverlaySlot slot);
|
||||
|
||||
@@ -40,6 +40,10 @@ public:
|
||||
|
||||
void *operator new(size_t length, u32 id, u32 idLength = 4);
|
||||
void *operator new[](size_t length, u32 id, u32 idLength = 4);
|
||||
static inline void *operator new(size_t length, void *ptr = nullptr) {
|
||||
#pragma unused(length)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
class UnkStruct_02011e10_Sub1 {
|
||||
public:
|
||||
@@ -79,8 +83,9 @@ public:
|
||||
/* 82 */ unk8 mUnk_82;
|
||||
/* 83 */ unk8 mUnk_83;
|
||||
|
||||
void func_02013014();
|
||||
void func_02013070();
|
||||
unk32 func_02013014();
|
||||
bool func_02013070();
|
||||
void func_020130d4(unk32 param1);
|
||||
|
||||
void func_ov001_020ba588(unk32 param1, unk32 param2);
|
||||
|
||||
|
||||
@@ -46,82 +46,30 @@ public:
|
||||
};
|
||||
|
||||
// similar to UnkSubStruct1
|
||||
class TitleScreen_Sub3 {
|
||||
class TitleScreen_Sub3 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ u16 mUnk_04;
|
||||
/* 04 */ u16 mUnk_06;
|
||||
/* 08 */ u16 mUnk_08; // 220
|
||||
/* 08 */ bool mUnk_0A; // 222
|
||||
/* 08 */ bool mUnk_0B; // 223
|
||||
/* 0C */ bool mUnk_0C; // 224
|
||||
/* 0C */ bool mUnk_0D;
|
||||
/* 0C */ bool mUnk_0E;
|
||||
/* 0C */ bool mUnk_0F;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 00 (base) */
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */
|
||||
|
||||
TitleScreen_Sub3();
|
||||
void func_0201effc(unk32 param1, unk32 param2, unk32 param3);
|
||||
bool func_0201f04c();
|
||||
|
||||
// data_020442d4 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
|
||||
void UnkOperations() {
|
||||
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_18;
|
||||
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_14;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
}
|
||||
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
class TitleScreen : public SysObject, public GameModeManagerBase_104 { // 0233c6d4
|
||||
@@ -181,6 +129,7 @@ public:
|
||||
class TitleScreenManager : public TitleScreenManager_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 154 */ GameModeBase *mpGameMode;
|
||||
/* 158 */
|
||||
|
||||
TitleScreenManager(unk32 param1) NO_INLINE {
|
||||
@@ -200,7 +149,7 @@ public:
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void vfunc_2C(unk8 *param1) override;
|
||||
/* 38 */ virtual void vfunc_38(unk32 param1, unk32 param2, unk32 param3, unk32 param4) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
|
||||
static TitleScreenManager *Create(unk32 param1);
|
||||
};
|
||||
|
||||
+218
-200
@@ -11,31 +11,116 @@
|
||||
|
||||
extern "C" void func_0201e8d4(void *param1, void *param2);
|
||||
|
||||
class UnkSubStruct1 : public SysObject {
|
||||
//! TODO: make this work with templates?
|
||||
#define UnkSubStruct1_Methods \
|
||||
int GetUnkValue1(bool isAdding) { \
|
||||
int targetLimit; \
|
||||
int nextValue; \
|
||||
\
|
||||
targetLimit = this->mUnk_06; \
|
||||
\
|
||||
if (isAdding) { \
|
||||
nextValue = this->mUnk_04 + this->mUnk_0D; \
|
||||
} else { \
|
||||
nextValue = this->mUnk_04 - this->mUnk_0D; \
|
||||
} \
|
||||
\
|
||||
if (nextValue > targetLimit) { \
|
||||
nextValue = targetLimit; \
|
||||
} else if (nextValue < 0) { \
|
||||
nextValue = 0; \
|
||||
} \
|
||||
\
|
||||
return nextValue; \
|
||||
} \
|
||||
\
|
||||
void Subprocess1() { \
|
||||
if (this->mUnk_04 < this->mUnk_06) { \
|
||||
this->mUnk_04 = this->GetUnkValue1(true); \
|
||||
this->vfunc_00(); \
|
||||
\
|
||||
if (this->mUnk_04 >= this->mUnk_06) { \
|
||||
this->Subprocess1_UnkValueSets(); \
|
||||
this->mUnk_0A = false; \
|
||||
this->mUnk_0C = true; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
void Subprocess2() { \
|
||||
if (this->mUnk_0B) { \
|
||||
if (this->mUnk_04 != 0) { \
|
||||
this->mUnk_04 = this->GetUnkValue1(false); \
|
||||
this->vfunc_04(); \
|
||||
\
|
||||
if (this->mUnk_04 == 0) { \
|
||||
this->Subprocess2_UnkValueSets(); \
|
||||
this->mUnk_0B = false; \
|
||||
this->mUnk_0C = true; \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
bool UnkCheck1() { \
|
||||
bool value = true; \
|
||||
\
|
||||
if (this->mUnk_0A == false && this->mUnk_0B == false) { \
|
||||
value = false; \
|
||||
} \
|
||||
\
|
||||
return value; \
|
||||
} \
|
||||
\
|
||||
void UpdateLogic() { \
|
||||
s32 diff; \
|
||||
\
|
||||
if (this->mUnk_08 != 0) { \
|
||||
diff = this->mUnk_08 - this->mUnk_0D; \
|
||||
\
|
||||
if (diff > 0xFFFF) { \
|
||||
diff = 0xFFFF; \
|
||||
} else if (diff < 0) { \
|
||||
diff = 0; \
|
||||
} \
|
||||
\
|
||||
this->mUnk_08 = diff; \
|
||||
} else { \
|
||||
if (this->mUnk_0A) { \
|
||||
this->Subprocess1(); \
|
||||
} else { \
|
||||
this->Subprocess2(); \
|
||||
} \
|
||||
} \
|
||||
} \
|
||||
\
|
||||
void UpdatePosition(Vec2s *pOutPos) { \
|
||||
Vec2us fetch; \
|
||||
func_0201e8d4(&fetch, this); \
|
||||
Vec2s_SetU(pOutPos, &fetch); \
|
||||
} \
|
||||
\
|
||||
void Update(Vec2s *pOutPos) { \
|
||||
this->UpdateLogic(); \
|
||||
this->UpdatePosition(pOutPos); \
|
||||
}
|
||||
|
||||
class UnkSubStruct1_Base {
|
||||
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;
|
||||
/* 0D */ u8 mUnk_0D;
|
||||
/* 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 */
|
||||
/* 20 */
|
||||
|
||||
UnkSubStruct1();
|
||||
void func_0201ea68(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
u16 func_0201eaa0();
|
||||
UnkSubStruct1_Base();
|
||||
|
||||
// data_02044330 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
@@ -43,197 +128,54 @@ public:
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */
|
||||
|
||||
bool UnkCheck1() {
|
||||
bool value = true;
|
||||
void func_0201ea68(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
u16 func_0201eaa0();
|
||||
unk32 func_0201edbc();
|
||||
};
|
||||
|
||||
if (mUnk_0A == false && mUnk_0B == false) {
|
||||
value = false;
|
||||
}
|
||||
class UnkSubStruct1 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
return value;
|
||||
UnkSubStruct1() {}
|
||||
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_20;
|
||||
this->mUnk_14 = this->mUnk_24;
|
||||
}
|
||||
|
||||
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;
|
||||
func_0201e8d4(&local_4c, this);
|
||||
|
||||
u16 x = local_4c.x;
|
||||
u16 y = local_4c.y;
|
||||
|
||||
// necessary to flip r1 and r2
|
||||
pPos->x = 0;
|
||||
pPos->y = 0;
|
||||
|
||||
pPos->x = x;
|
||||
pPos->y = y;
|
||||
}
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
this->mUnk_14 = this->mUnk_1C;
|
||||
}
|
||||
|
||||
void UnkOperations2(Vec2s *pPos, bool doSetPos) {
|
||||
int iVar1;
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
if (this->mUnk_08 != 0) {
|
||||
iVar1 = this->mUnk_08 - this->mUnk_0D;
|
||||
this->mUnk_08 = CLAMP2(iVar1, 0, 0xFFFF);
|
||||
} else {
|
||||
if (this->mUnk_0A) {
|
||||
if (this->mUnk_04 < this->mUnk_06) {
|
||||
iVar1 = this->mUnk_04 + this->mUnk_0D;
|
||||
class UnkSubStruct1_Derived1 : public UnkSubStruct1_Base {
|
||||
public:
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
if (iVar1 > this->mUnk_06) {
|
||||
iVar1 = this->mUnk_06;
|
||||
} else if (iVar1 < 0) {
|
||||
iVar1 = 0;
|
||||
}
|
||||
UnkSubStruct1_Derived1();
|
||||
|
||||
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;
|
||||
func_0201e8d4(&local_4c, this);
|
||||
|
||||
u16 x = local_4c.x;
|
||||
u16 y = local_4c.y;
|
||||
|
||||
// necessary to flip r1 and r2
|
||||
pPos->x = 0;
|
||||
pPos->y = 0;
|
||||
|
||||
pPos->x = x;
|
||||
pPos->y = y;
|
||||
}
|
||||
void Subprocess1_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_18;
|
||||
}
|
||||
|
||||
void UnkOperations3() {
|
||||
int test;
|
||||
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_18;
|
||||
this->mUnk_0A = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (this->mUnk_0B && this->mUnk_04 != 0) {
|
||||
int 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_14;
|
||||
this->mUnk_0B = false;
|
||||
this->mUnk_0C = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
void Subprocess2_UnkValueSets() {
|
||||
this->mUnk_10 = this->mUnk_14;
|
||||
}
|
||||
|
||||
UnkSubStruct1_Methods;
|
||||
};
|
||||
|
||||
struct UnkStruct_ov019_020d24c8_28_258_00 {
|
||||
@@ -254,7 +196,7 @@ public:
|
||||
Vec2s mPos;
|
||||
Vec2us mPosU;
|
||||
};
|
||||
/* 0E */ unk16 mUnk_0E;
|
||||
/* 0E */ s16 mUnk_0E;
|
||||
/* 10 */ unk16 mUnk_10;
|
||||
/* 12 */ unk16 mUnk_12;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
@@ -364,6 +306,8 @@ public:
|
||||
#define BTN_ID_RAIL_MAP_OCEAN_LOST_AT_SEA_STATION 0x77
|
||||
#define BTN_ID_RAIL_MAP_SNOW_SLIPPERY_STATION 0x78
|
||||
|
||||
#define BTN_ID_UNK_80 0x80
|
||||
|
||||
#define BTN_ID_SHOP_QUIT 0x81 // quit shop
|
||||
#define BTN_ID_SHOP_RETURN 0x82 // quit item preview
|
||||
#define BTN_ID_SHOP_BUY 0x83
|
||||
@@ -469,14 +413,15 @@ public:
|
||||
#define BTN_ID_BATTLE_MENU_JOIN_GROUP 0xBB
|
||||
#define BTN_ID_BATTLE_MENU_PLAYER_LIST 0xBD
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Base {
|
||||
class UnkSystem2_UnkSubSystem1_Base : public GameModeLinkList<UnkSystem2_UnkSubSystem1_Base> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeLinkList<UnkSystem2_UnkSubSystem1_Base> mUnk_04;
|
||||
/* 0C */ void *mUnk_0C;
|
||||
/* 10 */ unk32 mButtonID;
|
||||
/* 14 */ Vec2s mPos; // image position (among other things)
|
||||
/* 18 */ STRUCT_PAD(0x18, 0x24);
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 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
|
||||
@@ -513,13 +458,30 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem7 {
|
||||
class UnkSystem2_UnkSubSystem7_Base {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 (vtable) */
|
||||
|
||||
// data_ov000_020b1c88
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 00 */ virtual void vfunc_04();
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem7 : public UnkSystem2_UnkSubSystem7_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
~UnkSystem2_UnkSubSystem7();
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem7_Derived2 {
|
||||
public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem7 mUnk_00;
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x64);
|
||||
|
||||
UnkSystem2_UnkSubSystem7_Derived2();
|
||||
};
|
||||
|
||||
//! TODO: conflicts with UnkSystem2_UnkSubSystem1_Derived1? mUnk_34 type differs for some reasons
|
||||
class UnkSystem2_UnkSubSystem1_Derived2 : public UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
@@ -549,6 +511,30 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Derived3 : public UnkSystem2_UnkSubSystem1_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 30 */ unk32 mUnk_30;
|
||||
/* 34 */
|
||||
|
||||
UnkSystem2_UnkSubSystem1_Derived3();
|
||||
|
||||
// data_ov000_020b1f5c
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem1_Derived3() override {}
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
|
||||
void func_ov000_02063a3c(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5, unk32 param6);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem1_Derived4 : public UnkSystem2_UnkSubSystem1_Derived3 {
|
||||
public:
|
||||
UnkSystem2_UnkSubSystem1_Derived4() {}
|
||||
|
||||
// data_ov000_020b1f2c
|
||||
/* 00 */ virtual ~UnkSystem2_UnkSubSystem1_Derived4() override {}
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem5_Base_10 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
@@ -687,15 +673,17 @@ public:
|
||||
/* 00 */ UnkSystem2_UnkSubSystem1_Base *mUnk_00;
|
||||
/* 04 */ UnkSystem2_UnkSubSystem5 mUnk_04;
|
||||
|
||||
UnkSystem2_UnkSubSystem3();
|
||||
UnkSystem2_UnkSubSystem3(UnkSystem2_UnkSubSystem1_Base *param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
|
||||
void func_ov000_02062f30();
|
||||
void func_ov000_02062f18(void *param1, unk32 param2, unk32 param3);
|
||||
};
|
||||
|
||||
class UnkSystem2_UnkSubSystem8_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkSystem2_UnkSubSystem1_Derived2 *mUnk_04;
|
||||
/* 04 */ UnkSystem2_UnkSubSystem1_Base *mUnk_04;
|
||||
/* 08 */ bool mUnk_08;
|
||||
/* 09 */ unk8 mUnk_09;
|
||||
/* 0A */ unk8 mUnk_0A;
|
||||
@@ -850,7 +838,7 @@ public:
|
||||
void func_ov000_02060950();
|
||||
void func_ov000_020609b0();
|
||||
void func_ov000_020609c4(void);
|
||||
void func_ov000_02060a98();
|
||||
bool func_ov000_02060a98(unk32 param1);
|
||||
void func_ov000_02060ad0();
|
||||
unk32 func_ov000_02060af8(void);
|
||||
void func_ov000_02060b50();
|
||||
@@ -1115,3 +1103,33 @@ public:
|
||||
UnkStruct_PlayerGet_ec();
|
||||
~UnkStruct_PlayerGet_ec();
|
||||
};
|
||||
|
||||
class UnkActorSystem2 : public GameModeManagerBase_104 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 01B */ bool mUnk_01B;
|
||||
/* 01C */ UnkSubStruct19 mUnk_01C;
|
||||
/* 094 */ UnkSubStruct19 mUnk_094;
|
||||
/* 10C */ bool mUnk_10C;
|
||||
/* 10C */ bool mUnk_10D;
|
||||
|
||||
UnkActorSystem2(bool param1);
|
||||
|
||||
// data_ov024_020d7bd0
|
||||
/* 00 */ virtual ~UnkActorSystem2() override;
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
|
||||
|
||||
void func_ov024_020c4ec0();
|
||||
void func_ov024_020c4ed8();
|
||||
void func_ov024_020c4ef0();
|
||||
void func_ov024_020c4f08();
|
||||
void func_ov024_020c4f18();
|
||||
void func_ov024_020c4f28();
|
||||
void func_ov024_020c4f4c();
|
||||
void func_ov024_020c4f5c();
|
||||
void func_ov024_020c4f6c();
|
||||
bool func_ov024_020c4f7c();
|
||||
bool func_ov024_020c510c();
|
||||
void func_ov024_020c5120(bool param1);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_02049f8c {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_02049f8c();
|
||||
~UnkStruct_02049f8c();
|
||||
};
|
||||
|
||||
extern UnkStruct_02049f8c data_02049f8c;
|
||||
@@ -12,7 +12,7 @@ class GameModeFileSelect;
|
||||
class UnkStruct_0204a060_Base3 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ GameModeLinkListNode mUnk_04;
|
||||
/* 04 */ GameModeLinkList<UnkStruct_0204a060_Base3> mUnk_04;
|
||||
/* 0C */ bool mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
@@ -35,6 +35,9 @@ public:
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_0204a060_Base2();
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base2() override;
|
||||
|
||||
void func_0201ba68();
|
||||
};
|
||||
|
||||
@@ -42,8 +45,8 @@ class UnkStruct_0204a060_Base : public UnkStruct_0204a060_Base2 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */ unk8 mUnk_18;
|
||||
/* 19 */ unk8 mUnk_19;
|
||||
/* 18 */ bool mUnk_18;
|
||||
/* 19 */ bool mUnk_19;
|
||||
/* 1A */ u16 mUnk_1A;
|
||||
/* 1C */ unk16 mUnk_1C;
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
@@ -54,10 +57,10 @@ public:
|
||||
UnkStruct_0204a060_Base();
|
||||
void func_0201bb84(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_0201bba4(unk32 param1, unk32 param2);
|
||||
void func_0201bbcc();
|
||||
void func_0201bbcc(unk32 param1, unk32 param2);
|
||||
|
||||
// data_02044108 vtable
|
||||
/* 00 */ virtual ~UnkStruct_0204a060_Base() override;
|
||||
/* 00 */ WEAK 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);
|
||||
|
||||
@@ -4,9 +4,6 @@
|
||||
#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();
|
||||
@@ -22,12 +19,18 @@ public:
|
||||
/* 00C */ FileSelectManager_UnkDrawBase mUnk_0C[23]; // 23 possible overlays
|
||||
/* 120 */ u16 mUnk_120;
|
||||
/* 122 */ unk16 mUnk_122;
|
||||
/* 123 */ unk8 mUnk_123;
|
||||
/* 124 */ unk8 mUnk_124;
|
||||
/* 125 */ unk8 mUnk_125;
|
||||
/* 126 */ unk8 mUnk_126;
|
||||
/* 127 */ bool mUnk_127;
|
||||
/* 128 */ unk16 mUnk_128;
|
||||
|
||||
void func_ov000_02061098(void);
|
||||
void func_ov000_020611dc(void *param1, unk32 param2);
|
||||
void func_ov000_020611fc(unk32 param2); // sets new index
|
||||
void func_ov000_02061224(void);
|
||||
bool func_ov000_020611fc(unk32 param2); // sets new index
|
||||
bool func_ov000_02061224(void);
|
||||
void func_ov000_02061230(void);
|
||||
void func_ov000_02061248(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204a088 *data_0204a088;
|
||||
|
||||
@@ -104,6 +104,10 @@ public:
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
|
||||
UnkStruct_0204a110_Sub5();
|
||||
|
||||
void func_0201c494(unk32 param1);
|
||||
void func_0201c4d8(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_0201c504(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110_Sub6 {
|
||||
@@ -122,12 +126,17 @@ public:
|
||||
// data_020442b4 vtable
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
|
||||
void func_0201ced8();
|
||||
void func_0201cf30();
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110_Sub7_08 : public SysObject {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x30);
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x0A);
|
||||
/* 0A */ bool mUnk_0A;
|
||||
/* 0B */ STRUCT_PAD(0x0B, 0x30);
|
||||
/* 30 */
|
||||
|
||||
UnkStruct_0204a110_Sub7_08();
|
||||
@@ -136,6 +145,8 @@ public:
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
|
||||
unk32 func_0201ec30();
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0120 {
|
||||
@@ -147,7 +158,7 @@ extern UnkStruct_027e0120 data_027e0120;
|
||||
|
||||
class UnkStruct_0204a110_Sub7 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 00 */ bool mUnk_00;
|
||||
/* 01 */ unk8 mUnk_01;
|
||||
/* 02 */ unk8 mUnk_02;
|
||||
/* 03 */ unk8 mUnk_03;
|
||||
@@ -157,6 +168,11 @@ public:
|
||||
/* 1C */
|
||||
|
||||
UnkStruct_0204a110_Sub7();
|
||||
|
||||
void func_0201db14(unk32 param1, unk32 param2, Vec2s *param3, Vec2s *param4, unk32 param5, unk32 param6);
|
||||
void func_0201dd58(unk32 param1, unk32 param2);
|
||||
void func_0201dc10(s16 *param1, unk32 param2, unk32 param3);
|
||||
void func_0201d628();
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110_Sub8 {
|
||||
@@ -169,7 +185,14 @@ public:
|
||||
/* 08 */ unk8 mUnk_0B;
|
||||
/* 0C */ UnkSystem2_UnkSubSystem9 *mUnk_0C;
|
||||
|
||||
UnkSystem2_UnkSubSystem9 *GetUnk0C() {
|
||||
return this->mUnk_0C;
|
||||
}
|
||||
|
||||
UnkStruct_0204a110_Sub8();
|
||||
|
||||
void func_0201e588(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_0201e698(void);
|
||||
};
|
||||
|
||||
class UnkStruct_0204a110 {
|
||||
@@ -189,31 +212,44 @@ public:
|
||||
/* DA6 */ unk8 mUnk_DA6;
|
||||
/* DA7 */ unk8 mUnk_DA7;
|
||||
/* DA8 */ UnkStruct_0204a110_Sub6 mUnk_DA8;
|
||||
/* DAC */ STRUCT_PAD(0xDBC, 0xDC0);
|
||||
/* DBC */ STRUCT_PAD(0xDBC, 0xDC0);
|
||||
/* DC0 */ UnkStruct_0204a110_Sub7 mUnk_DC0;
|
||||
/* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC;
|
||||
/* DEC */ GameModeManagerBase *mUnk_DEC;
|
||||
/* DF0 */ unk16 mUnk_DF0;
|
||||
/* DF0 */ u16 mUnk_DF0;
|
||||
/* DF2 */ unk8 mUnk_DF2;
|
||||
/* DF3 */ unk8 mUnk_DF3;
|
||||
/* DF4 */ unk32 mUnk_DF4;
|
||||
/* DF8 */ unk32 mUnk_DF8;
|
||||
/* DFC */ unk8 mUnk_DFC;
|
||||
/* DFD */ unk8 mUnk_DFD;
|
||||
/* DFE */ unk8 mUnk_DFE;
|
||||
/* DFE */ bool mUnk_DFE;
|
||||
/* DFF */ unk8 mUnk_DFF;
|
||||
/* E00 */ unk8 mUnk_E00;
|
||||
/* E00 */ unk8 mUnk_E01;
|
||||
/* E02 */ unk16 mUnk_E02;
|
||||
/* E04 */ unk16 mUnk_E04;
|
||||
/* E06 */ unk16 mUnk_E06; // pad?
|
||||
/* E08 */
|
||||
|
||||
UnkStruct_0204a110_Sub5 *GetUnkD9C() {
|
||||
return &this->mUnk_D9C;
|
||||
}
|
||||
|
||||
UnkStruct_0204a110_Sub8 *GetUnkDDC() {
|
||||
return &this->mUnk_DDC;
|
||||
}
|
||||
|
||||
UnkStruct_0204a110();
|
||||
|
||||
unk32 func_01ff9b50();
|
||||
|
||||
void func_02018be0(unk32 param1);
|
||||
void func_02018c2c();
|
||||
void func_02018c78(unk32 param1);
|
||||
void func_02018c90(unk32 param1);
|
||||
void func_02018d34();
|
||||
void func_02018d78(unk32 param1);
|
||||
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);
|
||||
@@ -223,6 +259,8 @@ public:
|
||||
void func_02019408();
|
||||
void func_02019454();
|
||||
unk32 func_02019514();
|
||||
void func_02019528();
|
||||
bool func_02019548();
|
||||
|
||||
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
void func_ov001_020bd58c(void);
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204aeac {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_0204aeac();
|
||||
~UnkStruct_0204aeac();
|
||||
void func_0201c494(unk32 param1);
|
||||
void func_0201c4d8(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_0201c504(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204aeac data_0204aeac;
|
||||
@@ -1,11 +0,0 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/SysNew.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_0204aeec : public SysObject {
|
||||
public:
|
||||
void func_0201e698(void);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204aeec data_0204aeec;
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
#include "types.h"
|
||||
|
||||
class UnkSubStruct19;
|
||||
|
||||
class UnkStruct_0204af1c_00 {
|
||||
public:
|
||||
/* 0000 */ unk8 mUnk_0000[0x1490];
|
||||
@@ -20,7 +22,7 @@ public:
|
||||
UnkStruct_0204af1c();
|
||||
void func_0201a800();
|
||||
void func_0201aa44(void *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aad0(void *param1, void *param2, unk32 param3, void *param4);
|
||||
void func_0201aad0(UnkSubStruct19 *param1, void *param2, unk32 param3, void *param4);
|
||||
};
|
||||
|
||||
extern UnkStruct_0204af1c data_0204af1c;
|
||||
|
||||
@@ -1,16 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "Item/Item.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_020d8698 {
|
||||
class UnkStruct_020d8698 : public GameModeManagerBase_104 {
|
||||
public:
|
||||
void func_ov024_020cd458(ItemFlag itemFlag, unk32 param2);
|
||||
void func_ov024_020cd094();
|
||||
void func_ov024_020cd150();
|
||||
void func_ov024_020cd368(bool param1, bool param2);
|
||||
void func_ov024_020cd3d0();
|
||||
void func_ov024_020cd3e0(unk32 param1);
|
||||
void func_ov024_020cd3f0(unk32 param1);
|
||||
void func_ov024_020cd410();
|
||||
void func_ov024_020cd420();
|
||||
void func_ov024_020cd458(ItemFlag itemFlag, unk32 param2);
|
||||
void func_ov024_020cd4e4(u16 param1);
|
||||
bool func_ov024_020cd5c0(u16 param1);
|
||||
void func_ov024_020cd3a4();
|
||||
void func_ov024_020cd400();
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_020d8698();
|
||||
/* 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();
|
||||
};
|
||||
|
||||
extern UnkStruct_020d8698 *data_ov024_020d8698;
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e095c : public AutoInstance<UnkStruct_027e095c> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_027e095c();
|
||||
~UnkStruct_027e095c();
|
||||
|
||||
void func_ov000_020592ec();
|
||||
void func_ov000_020592a0();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e095c *data_027e095c;
|
||||
@@ -4,17 +4,51 @@
|
||||
#include "types.h"
|
||||
#include <nitro/math.h>
|
||||
|
||||
class UnkStruct_027e0998 {
|
||||
class UnkStruct_027e0998_Base {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ unk16 mUnk_04;
|
||||
/* 06 */ STRUCT_PAD(0x06, 0x42);
|
||||
/* 42 */ unk16 mUnk_42;
|
||||
/* 44 */ unk32 mUnk_44;
|
||||
/* 48 */ unk16 mUnk_48;
|
||||
/* 4A */ unk16 mUnk_4A; // pad?
|
||||
/* 4C */
|
||||
|
||||
UnkStruct_027e0998();
|
||||
~UnkStruct_027e0998();
|
||||
UnkStruct_027e0998_Base();
|
||||
|
||||
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, void *param2, void *param3);
|
||||
// data_ov000_020b1e08
|
||||
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, Vec2s *param2, u16 *param3);
|
||||
/* 04 */
|
||||
|
||||
void func_ov000_02061760();
|
||||
void func_ov000_02061764();
|
||||
void func_ov000_02061768();
|
||||
void func_ov000_02061850(unk32 param1);
|
||||
unk32 func_ov000_02061a70();
|
||||
|
||||
static void SetInstance(UnkStruct_027e0998_Base *pInstance);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0998 : public UnkStruct_027e0998_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkStruct_027e0998();
|
||||
~UnkStruct_027e0998(); // ClearInstance
|
||||
|
||||
// data_ov024_020d7c98
|
||||
/* 00 */ virtual bool vfunc_00(Vec3p *pPos, Vec2s *param2, u16 *param3) override;
|
||||
/* 04 */
|
||||
|
||||
bool func_ov024_020c716c();
|
||||
bool func_ov024_020c7214(Vec3p *pPos, Vec2s *param2, u16 *param3);
|
||||
bool func_ov024_020c727c(Vec2s *param1, u16 *param2);
|
||||
bool func_ov024_020c7300(unk32 param1);
|
||||
bool func_ov024_020c7354();
|
||||
|
||||
static void Destroy();
|
||||
static UnkStruct_027e0998 *Create();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0998 *data_027e0998;
|
||||
|
||||
@@ -80,14 +80,26 @@ struct UnkStruct_func_ov000_020702a8 {
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
};
|
||||
|
||||
class CourseEntry {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x17);
|
||||
struct CourseRoomEntry {
|
||||
u8 roomIndex;
|
||||
u8 mapPaintIndex;
|
||||
u8 unk_02;
|
||||
u8 unk_03;
|
||||
};
|
||||
|
||||
struct CourseEntry {
|
||||
/* 00 */ const char name[16];
|
||||
/* 10 */ unk32 unk_10;
|
||||
/* 14 */ unk8 mNumRooms;
|
||||
/* 15 */ unk8 unk_15;
|
||||
/* 16 */ unk8 unk_16;
|
||||
/* 17 */ u8 mSaveCourseIndex;
|
||||
/* 18 */ STRUCT_PAD(0x18, 0x1D);
|
||||
/* 1D */ u8 mUnk_1D;
|
||||
/* 1E */ STRUCT_PAD(0x1E, 0x2C);
|
||||
/* 2C */
|
||||
/* 1D */ u8 unk_1D;
|
||||
/* 1E */ u8 unk_1E;
|
||||
/* 1F */ u8 unk_1F;
|
||||
/* 20 */ u8 defaultMapPaintIndex;
|
||||
/* 24 */ CourseRoomEntry roomEntries[];
|
||||
};
|
||||
|
||||
class UnkStruct_027e09a0 {
|
||||
@@ -97,8 +109,11 @@ public:
|
||||
UnkStruct_027e09a0();
|
||||
~UnkStruct_027e09a0();
|
||||
|
||||
CourseEntry *func_ov000_0207029c(unk32 param1);
|
||||
CourseEntry *GetCourseEntry(u32 sceneIndex);
|
||||
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(unk32 param1);
|
||||
unk32 GetRoomEntryIndex();
|
||||
CourseRoomEntry *GetRoomEntry(u32 sceneIndex, unk32 param2);
|
||||
bool func_ov000_02070378(u32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09a0 *data_027e09a0;
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
struct SaveFile;
|
||||
|
||||
/*
|
||||
naming scheme:
|
||||
- test_xxx: debug area
|
||||
@@ -18,6 +20,7 @@ naming scheme:
|
||||
typedef u32 SceneIndex;
|
||||
typedef u16 SceneIndex_Half;
|
||||
enum SceneIndex_ {
|
||||
/* -1 */ SceneIndex_None = -1,
|
||||
/* 0 */ SceneIndex_test_trn = 0x00, //
|
||||
/* 1 */ SceneIndex_test_trn2 = 0x01, //
|
||||
/* 2 */ SceneIndex_test_pre = 0x02, //
|
||||
@@ -152,16 +155,19 @@ struct UnkStruct_func_01ffd400 {
|
||||
/* 1B */ u8 mUnk_1B;
|
||||
};
|
||||
|
||||
struct UnkStruct_SceneChange1 {
|
||||
/* 00 */ unk32 mNextSceneIndex;
|
||||
struct UnkStruct_SceneChange1_Base {
|
||||
/* 00 */ unk32 mSceneIndex;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 0A */ u8 mRoomIndex;
|
||||
/* 0B */ u8 mSpawnIndex;
|
||||
/* 0C */ bool mNextIsCS;
|
||||
/* 0C */ bool mIsCS;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mCutsceneIndex;
|
||||
/* 0E */ u8 mCutsceneIndex;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
};
|
||||
|
||||
struct UnkStruct_SceneChange1 : public UnkStruct_SceneChange1_Base {
|
||||
/* 10 */ unk8 mUnk_10;
|
||||
/* 11 */ unk8 mUnk_11;
|
||||
/* 12 */ unk8 mUnk_12;
|
||||
@@ -169,13 +175,13 @@ struct UnkStruct_SceneChange1 {
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_SceneChange1() {
|
||||
this->mNextSceneIndex = SceneIndex_Max;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = 0xFF; // this changes when you enter a house, it's not clear if it has another purpose yet
|
||||
this->mSpawnIndex = 0; // changing this then saving will change your spawn location after opening the save again
|
||||
// (not the area)
|
||||
this->mNextIsCS = false;
|
||||
this->mSceneIndex = SceneIndex_Max;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = 0xFF; // this changes when you enter a house, it's not clear if it has another purpose yet
|
||||
this->mSpawnIndex = 0; // changing this then saving will change your spawn location after opening the save again
|
||||
// (not the area)
|
||||
this->mIsCS = false;
|
||||
this->mUnk_0D = 0;
|
||||
this->mCutsceneIndex = CutsceneIndex_None;
|
||||
this->mUnk_0F = 0;
|
||||
@@ -188,16 +194,16 @@ struct UnkStruct_SceneChange1 {
|
||||
u8 spawnIndex = pEntry->mSpawnIndex;
|
||||
u8 roomIndex = pEntry->mRoomIndex;
|
||||
|
||||
this->mNextSceneIndex = sceneIndex;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = roomIndex;
|
||||
this->mSpawnIndex = spawnIndex;
|
||||
this->mNextIsCS = nextIsCS;
|
||||
this->mUnk_0D = 0;
|
||||
this->mCutsceneIndex = cutsceneIndex;
|
||||
this->mUnk_0F = 0;
|
||||
this->mUnk_10 = 0;
|
||||
this->mSceneIndex = sceneIndex;
|
||||
this->mUnk_04 = 0;
|
||||
this->mUnk_08 = 0;
|
||||
this->mRoomIndex = roomIndex;
|
||||
this->mSpawnIndex = spawnIndex;
|
||||
this->mIsCS = nextIsCS;
|
||||
this->mUnk_0D = 0;
|
||||
this->mCutsceneIndex = cutsceneIndex;
|
||||
this->mUnk_0F = 0;
|
||||
this->mUnk_10 = 0;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -213,16 +219,14 @@ public:
|
||||
|
||||
class UnkStruct_027e09a4 : public SysObject {
|
||||
public:
|
||||
/* 00 */ unk32 mSceneIndex; // the scene index of the current area, this isn't saved when you save the game
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ u8 mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ u8 mCutsceneIndex;
|
||||
/* 0F */ unk8 mUnk_0F;
|
||||
/* 00 */ UnkStruct_SceneChange1_Base mUnk_00; // the infos of the current area, this isn't saved when you save the game
|
||||
/* 10 */ unk32 *mUnk_10;
|
||||
/* 14 */ UnkStruct_SceneChange1 mUnk_14;
|
||||
/* 32 */ STRUCT_PAD(0x28, 0x54);
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ s16 mUnk_2C;
|
||||
/* 2C */ unk16 mUnk_2E;
|
||||
/* 30 */ Vec3p mUnk_30;
|
||||
/* 3C */ STRUCT_PAD(0x3C, 0x54);
|
||||
/* 54 */ void *mUnk_54; // vtable
|
||||
/* 58 */ UnkStruct_WarpUnk1 *mpWarpUnk1;
|
||||
/* 5C */ unk32 mUnk_5C;
|
||||
@@ -230,6 +234,18 @@ public:
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */
|
||||
|
||||
bool IsCutscene() {
|
||||
return this->mUnk_00.mIsCS == true;
|
||||
}
|
||||
|
||||
bool IsNotCutscene() {
|
||||
return this->mUnk_00.mIsCS != true;
|
||||
}
|
||||
|
||||
u8 CurrentCSIndex() {
|
||||
return this->mUnk_00.mCutsceneIndex;
|
||||
}
|
||||
|
||||
bool UnkCheck(unk32 sceneIndex) {
|
||||
switch (sceneIndex) {
|
||||
case SceneIndex_test_iwa:
|
||||
@@ -253,9 +269,25 @@ public:
|
||||
return false;
|
||||
}
|
||||
|
||||
SceneIndex CurrentSceneIndex() {
|
||||
return this->mUnk_00.mSceneIndex;
|
||||
}
|
||||
|
||||
bool IsDarkRealm() {
|
||||
return this->mUnk_00.mSceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.mSceneIndex >= SceneIndex_t_eviltrain;
|
||||
}
|
||||
|
||||
bool IsPirate() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_pirate;
|
||||
}
|
||||
|
||||
bool IsPassenger() {
|
||||
return this->mUnk_00.mSceneIndex == SceneIndex_f_passenger;
|
||||
}
|
||||
|
||||
~UnkStruct_027e09a4();
|
||||
|
||||
unk32 func_01ffd3d8();
|
||||
bool func_01ffd3d8();
|
||||
UnkStruct_func_01ffd400 *func_01ffd400();
|
||||
|
||||
unk8 func_ov000_02070bd0(unk32 csIndex, unk32 param2);
|
||||
@@ -270,12 +302,15 @@ public:
|
||||
unk16 *func_ov000_02070538();
|
||||
bool func_ov000_02070a9c(UnkStruct_SceneChange1 *param1);
|
||||
bool func_ov000_02072154(UnkStruct_SceneChange1 *param1, unk32 param2);
|
||||
void func_ov000_0207056c();
|
||||
void func_ov000_020705e8(SaveFile *param1, unk32 param2);
|
||||
|
||||
void func_ov017_020bb994(void *param1);
|
||||
void func_ov017_020bb994(unk32 param1);
|
||||
void func_ov017_020bb994(void *, void *);
|
||||
|
||||
static void func_ov025_020c4a60();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09a4 *data_027e09a4;
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/UnkMemFuncs.h"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
struct UnkStruct_027e09ac_Base_00 {
|
||||
/* 00 */ unk16 mUnk_00[2];
|
||||
/* 04 */ unk16 mUnk_04[3];
|
||||
/* 0A */ unk16 mUnk_0A;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09ac_Base {
|
||||
public:
|
||||
/* 000 */ UnkStruct_027e09ac_Base_00 mUnk_000;
|
||||
/* 010 */ bool mUnk_010;
|
||||
/* 011 */ unk8 mUnk_011; // pad?
|
||||
/* 012 */ unk8 mUnk_012; // pad?
|
||||
/* 013 */ unk8 mUnk_013; // pad?
|
||||
/* 014 */
|
||||
|
||||
UnkStruct_027e09ac_Base();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09ac_14 {
|
||||
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 */ u16 mUnk_24;
|
||||
/* 26 */ u16 mUnk_26;
|
||||
/* 28 */ u16 mUnk_28;
|
||||
/* 2A */ u16 mUnk_2A[10];
|
||||
/* 3E */ u16 mUnk_3E;
|
||||
/* 40 */ u32 mUnk_40[8];
|
||||
/* 60 */ u16 mUnk_60;
|
||||
/* 62 */ u16 mUnk_62;
|
||||
/* 64 */ u16 mUnk_64;
|
||||
/* 66 */ u16 mUnk_66;
|
||||
/* 68 */
|
||||
|
||||
void func_ov000_02071f98();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09ac : public AutoInstance<UnkStruct_027e09ac>, public UnkStruct_027e09ac_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 014 */ UnkStruct_027e09ac_14 mUnk_014;
|
||||
/* 07C */ UnkStruct_027e09ac_14 mUnk_07C; //! TODO: type unsure but the size is consistent with the gap
|
||||
/* 0E4 */ UnkStruct_027e09ac_14 mUnk_0E4;
|
||||
/* 14C */ u16 mUnk_14C;
|
||||
/* 14E */ u16 mUnk_14E;
|
||||
/* 150 */ s16 mUnk_150;
|
||||
/* 152 */ s16 mUnk_152;
|
||||
/* 154 */ unk16 mUnk_154;
|
||||
/* 156 */ bool mUnk_156;
|
||||
/* 157 */ unk8 mUnk_157; // pad?
|
||||
/* 158 */
|
||||
|
||||
UnkStruct_027e09ac();
|
||||
~UnkStruct_027e09ac();
|
||||
|
||||
void func_ov000_020726f0(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09ac *data_027e09ac;
|
||||
@@ -1,20 +1,94 @@
|
||||
#pragma once
|
||||
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "types.h"
|
||||
#include "versions.h"
|
||||
|
||||
struct stack_ov000_02073578 {
|
||||
unk8 unk_00;
|
||||
unk32 unk_04;
|
||||
unk32 unk_08;
|
||||
|
||||
stack_ov000_02073578();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_00 {
|
||||
public:
|
||||
/* 000 */ STRUCT_PAD(0x000, 0xFD4);
|
||||
/* FD4 */
|
||||
|
||||
UnkStruct_027e09b8_00();
|
||||
~UnkStruct_027e09b8_00();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_04 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x64);
|
||||
/* 64 */
|
||||
|
||||
UnkStruct_027e09b8_04();
|
||||
~UnkStruct_027e09b8_04();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_08 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x00);
|
||||
/* 00 */
|
||||
|
||||
UnkStruct_027e09b8_08();
|
||||
~UnkStruct_027e09b8_08();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_0C {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0xC4);
|
||||
/* C4 */ MapObjectId mMapObjId;
|
||||
/* C8 */
|
||||
|
||||
UnkStruct_027e09b8_0C();
|
||||
~UnkStruct_027e09b8_0C();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_10 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x18);
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_027e09b8_10();
|
||||
~UnkStruct_027e09b8_10();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8 {
|
||||
public:
|
||||
/* 00 */ unk8 mUnk_00[0x14];
|
||||
/* 00 */ UnkStruct_027e09b8_00 *mUnk_00;
|
||||
/* 04 */ UnkStruct_027e09b8_04 *mUnk_04;
|
||||
/* 08 */ UnkStruct_027e09b8_08 *mUnk_08;
|
||||
/* 0C */ UnkStruct_027e09b8_0C *mUnk_0C;
|
||||
/* 10 */ UnkStruct_027e09b8_10 *mUnk_10;
|
||||
/* 14 */ u32 mAdventureFlags[32]; //! TODO
|
||||
#if IS_JP
|
||||
//! TODO: figure out if the other versions got these too
|
||||
/* 94 */ u16 mUnk_94;
|
||||
#endif
|
||||
|
||||
bool HasAdventureFlag(AdventureFlag flag) {
|
||||
return GET_FLAG(this->mAdventureFlags, flag);
|
||||
}
|
||||
|
||||
unk32 func_01ffd420();
|
||||
|
||||
unk32 func_ov000_020732ec(unk32 param1);
|
||||
unk32 func_ov000_020732fc(unk32 param1);
|
||||
unk32 func_ov000_020732dc(unk32 param1);
|
||||
bool func_ov000_020732dc(unk32 param1);
|
||||
unk32 func_ov000_0207330c();
|
||||
unk32 func_ov000_02073470(void *param1, unk32 param2);
|
||||
unk32 func_ov000_02073388(void *param1, unk32 param2);
|
||||
void func_ov000_02073578(void *param1, unk32 param2);
|
||||
|
||||
#if IS_JP
|
||||
void func_ov000_02074d78(unk32 param1);
|
||||
#endif
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09b8 *data_027e09b8;
|
||||
|
||||
@@ -134,7 +134,9 @@ public:
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; // related to train?
|
||||
/* 10 */ MapObjectManager *mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x4C);
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x24);
|
||||
/* 24 */ Vec3p mUnk_24;
|
||||
/* 34 */ STRUCT_PAD(0x34, 0x4C);
|
||||
/* 4C */
|
||||
|
||||
bool func_ov000_02081e30(unk32 param1, unk32 param2);
|
||||
@@ -143,6 +145,8 @@ public:
|
||||
void func_ov000_02081eec(unk16 param1, unk32 param2, unk32 param3);
|
||||
bool func_ov000_02081f3c(unk16 param1, unk32 param2);
|
||||
unk32 func_ov000_02081d5c();
|
||||
bool func_ov000_02082124();
|
||||
bool func_ov000_02081c28();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cd8 *data_027e0cd8;
|
||||
|
||||
@@ -11,6 +11,7 @@ public:
|
||||
~UnkStruct_027e0cdc();
|
||||
|
||||
unk32 func_ov000_02082a28(unk32 param1);
|
||||
unk32 func_ov000_02082a48(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cdc *data_027e0cdc;
|
||||
|
||||
@@ -22,6 +22,8 @@ public:
|
||||
/* 2C */ unk32 mUnk_2C;
|
||||
/* 30 */
|
||||
|
||||
void func_ov008_020b6a50();
|
||||
|
||||
void func_ov024_020d3d98(unk32 param1, unk32 param2);
|
||||
void func_ov024_020d3ee8(unk32 param1, u16 param2, unk32 param3);
|
||||
unk32 func_ov024_020d3dcc();
|
||||
@@ -29,6 +31,26 @@ public:
|
||||
void func_ov110_02185d3c(ItemId itemId);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_38_10 {
|
||||
public:
|
||||
void func_ov026_020f4870();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_38_158 {
|
||||
public:
|
||||
void func_ov026_020dc2d0();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_38 {
|
||||
public:
|
||||
/* 000 */ STRUCT_PAD(0x00, 0x10);
|
||||
/* 010 */ UnkStruct_027e0ce0_38_10 *mUnk_010;
|
||||
/* 014 */ STRUCT_PAD(0x14, 0x158);
|
||||
/* 158 */ UnkStruct_027e0ce0_38_158 *mUnk_158;
|
||||
|
||||
// data_ov026_0213562c
|
||||
};
|
||||
|
||||
// PlayerManager?
|
||||
class UnkStruct_027e0ce0 {
|
||||
public:
|
||||
@@ -49,7 +71,7 @@ public:
|
||||
/* 2C */ ItemManager *mUnk_2C; // same as above
|
||||
/* 30 */ unk32 *mUnk_30; // ?
|
||||
/* 34 */ UnkStruct_027e0ce0_34 *mUnk_34;
|
||||
/* 38 */ unk32 *mUnk_38; // pointer to data_027e0478 when on the train
|
||||
/* 38 */ UnkStruct_027e0ce0_38 *mUnk_38; // pointer to data_027e0478 when on the train
|
||||
/* 3C */ unk32 mUnk_3C;
|
||||
/* 40 */ unk32 *mUnk_40; // pointer to data_027e0478 when not on the train
|
||||
/* 44 */
|
||||
@@ -57,12 +79,16 @@ public:
|
||||
Vec3p *func_01fff148(unk32 param1);
|
||||
bool func_01fff1a4();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, u16 param3);
|
||||
|
||||
void func_ov000_0208bbd4(unk32 param1, Vec3p *param2, void *param3);
|
||||
|
||||
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
|
||||
|
||||
// overlay 17
|
||||
void func_ov017_020bd69c();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0ce0 *data_027e0ce0;
|
||||
|
||||
@@ -1,16 +1,115 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cf8 {
|
||||
struct UnkStruct_027e0cf8_00_18 {
|
||||
/* 00 */ UnkSubStruct19 mUnk_00;
|
||||
/* 78 */ unk32 mUnk_78;
|
||||
/* 7C */ unk32 mUnk_7C;
|
||||
/* 80 */ unk32 mUnk_80;
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cf8_00 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 0000 */ STRUCT_PAD(0x00, 0x18);
|
||||
/* 0018 */ UnkStruct_027e0cf8_00_18 mUnk_0018[48];
|
||||
/* 18D8 */ STRUCT_PAD(0x18D8, 0x2258);
|
||||
/* 2258 */
|
||||
|
||||
UnkStruct_027e0cf8_00();
|
||||
~UnkStruct_027e0cf8_00();
|
||||
|
||||
void func_ov024_020cfb7c(void *param1, Vec2s *param2, unk32 param3, u16 param4, unk32 param5, unk32 param6);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cf8_04 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x1C);
|
||||
|
||||
UnkStruct_027e0cf8_04();
|
||||
|
||||
void func_ov026_020dc300();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cf8_08 {
|
||||
public:
|
||||
/* 000 */ STRUCT_PAD(0x00, 0x26C);
|
||||
|
||||
UnkStruct_027e0cf8_08();
|
||||
~UnkStruct_027e0cf8_08();
|
||||
|
||||
void func_ov024_020d32d8();
|
||||
void func_ov024_020d32e8(Vec2s *param1);
|
||||
void func_ov024_020d3324(void *param1);
|
||||
void func_ov024_020d3348(void *param1, unk32 param2, u16 param3, unk32 param4, unk32 param5);
|
||||
void func_ov024_020d340c();
|
||||
void func_ov024_020d341c(unk32 param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cf8_0C {
|
||||
public:
|
||||
/* 000 */ STRUCT_PAD(0x00, 0x170);
|
||||
|
||||
UnkStruct_027e0cf8_0C();
|
||||
~UnkStruct_027e0cf8_0C();
|
||||
|
||||
void func_ov024_020cff8c(void *param1, Vec2s *param2);
|
||||
void func_ov024_020d0004();
|
||||
void func_ov024_020d02e0();
|
||||
void func_ov024_020d0340();
|
||||
void func_ov024_020d03f8(Vec2s *param1);
|
||||
void func_ov024_020d041c(Vec2s *param1);
|
||||
void func_ov024_020d05d0(unk32 param1, unk32 param2);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cf8 : AutoInstance<UnkStruct_027e0cf8> {
|
||||
public:
|
||||
/* 00 */ UnkStruct_027e0cf8_00 *mUnk_00;
|
||||
/* 04 */ UnkStruct_027e0cf8_04 *mUnk_04;
|
||||
/* 08 */ UnkStruct_027e0cf8_08 *mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0cf8_0C *mUnk_0C;
|
||||
/* 10 */ Vec2s mUnk_10;
|
||||
/* 14 */ Vec2s mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ bool mUnk_1C;
|
||||
/* 1D */ unk8 mUnk_1D;
|
||||
/* 1E */ unk8 mUnk_1E;
|
||||
/* 1F */ unk8 mUnk_1F;
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ u16 mUnk_28;
|
||||
/* 2A */ u16 mUnk_2A;
|
||||
/* 2C */
|
||||
|
||||
UnkStruct_027e0cf8();
|
||||
~UnkStruct_027e0cf8();
|
||||
|
||||
void func_ov017_020c390c();
|
||||
void func_ov017_020c397c();
|
||||
void func_ov017_020c39d4();
|
||||
|
||||
void func_ov024_020c755c(void *param1);
|
||||
void func_ov024_020c75d0(void *param1, unk32 param2, u16 param3);
|
||||
void func_ov024_020c7724();
|
||||
void func_ov024_020c7750();
|
||||
void func_ov024_020c7780();
|
||||
void func_ov024_020c77b0(unk32 param1);
|
||||
void func_ov024_020c77c0();
|
||||
void func_ov024_020c77d0();
|
||||
void func_ov024_020c77e0(Vec2s *param1);
|
||||
void func_ov024_020c7804(Vec2s *param1);
|
||||
void func_ov024_020c7828(unk32 param1);
|
||||
void func_ov024_020c7878(unk32 param1, u16 param2);
|
||||
void func_ov024_020c7884();
|
||||
void func_ov024_020c7898();
|
||||
bool func_ov024_020c78ac(unk32 *param1, unk16 *param2);
|
||||
void func_ov024_020c78d0();
|
||||
void func_ov024_020c78e4(unk32 param1);
|
||||
void func_ov024_020c7900(unk32 param1);
|
||||
|
||||
static UnkStruct_027e0cf8 *Create();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cf8 *data_027e0cf8;
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0d00 {
|
||||
class UnkStruct_027e0d00 : public AutoInstance<UnkStruct_027e0d00> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ public:
|
||||
UnkStruct_027e0d34();
|
||||
~UnkStruct_027e0d34();
|
||||
|
||||
bool func_ov031_020d97e4();
|
||||
bool func_ov031_020d97f4();
|
||||
void func_ov031_020d9844();
|
||||
bool TryItemGive(ItemId itemId);
|
||||
};
|
||||
|
||||
@@ -101,6 +101,20 @@ public:
|
||||
void func_ov000_020676f8(const char *bmgFileName, unk32 param2);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b504c_Sub4_00 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 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(unk32 param1);
|
||||
};
|
||||
|
||||
class UnkStruct_ov000_020b504c_Sub4 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
@@ -130,6 +144,11 @@ public:
|
||||
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkStruct_ov000_02067bc4::UnkStruct1 *param3); // ShowText?
|
||||
void func_ov000_02067e60(u8 param1, unk32 param2);
|
||||
unk32 func_ov000_020682c0(unk32 param1);
|
||||
void func_ov000_02067f5c(unk32 param1);
|
||||
unk32 func_ov000_02067f88(unk32 param1, unk32 param2);
|
||||
UnkStruct_ov000_020b504c_Sub4_00 *func_ov000_02067bf0();
|
||||
void func_ov000_02067b20();
|
||||
void func_ov000_02068068(unk32 param1);
|
||||
|
||||
//! TODO: figure this out
|
||||
void func_ov000_0206807c(unk32 param1, void *param2, unk32 param3, unk32 param4);
|
||||
@@ -137,9 +156,9 @@ public:
|
||||
void func_ov000_0206807c(unk32 param1, void *param2);
|
||||
void func_ov000_0206807c(void *param1, void *param2);
|
||||
void func_ov000_0206807c(void *param1, unk32 param2);
|
||||
void func_ov000_02067b60();
|
||||
|
||||
unk32 func_ov000_02067f88(unk32 param1, unk32 param2);
|
||||
|
||||
void func_ov001_020be510();
|
||||
void func_ov001_020be668(void);
|
||||
void func_ov001_020be6f4(void);
|
||||
};
|
||||
|
||||
@@ -9,6 +9,8 @@ public:
|
||||
/* 84 */
|
||||
|
||||
UnkStruct_ov000_020b4eec();
|
||||
|
||||
SaveFile *func_ov001_020be12c();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b4eec data_ov000_020b4eec;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov000_020b4f70 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov000_020b4f70();
|
||||
~UnkStruct_ov000_020b4f70();
|
||||
|
||||
void func_ov000_020662e8();
|
||||
void func_ov000_02066370();
|
||||
void func_ov000_0206645c(unk8 *param1);
|
||||
void func_ov000_0206654c();
|
||||
void func_ov000_020665b8();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b4f70 *data_ov000_020b4f70;
|
||||
@@ -44,15 +44,17 @@ public:
|
||||
UnkStruct_ov000_020b50c0();
|
||||
|
||||
void func_ov000_02069d3c(unk32 param1);
|
||||
void func_ov000_02069d7c(void);
|
||||
void func_ov000_02069d7c(unk32 param1);
|
||||
void func_ov000_02069f58(void);
|
||||
unk32 func_ov000_0206a5d8(unk32 param1);
|
||||
void func_ov000_0206a6a4(unk32 param1);
|
||||
void func_ov000_0206a758(void);
|
||||
void func_ov000_0206a77c(void);
|
||||
|
||||
void func_ov001_020bd8ac(void);
|
||||
void func_ov001_020bd854();
|
||||
void func_ov001_020bd87c(void);
|
||||
void func_ov001_020bd8dc(void);
|
||||
void func_ov001_020bd8ac(void);
|
||||
|
||||
UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void);
|
||||
};
|
||||
|
||||
@@ -51,4 +51,5 @@ public:
|
||||
void func_ov000_0206e7e8(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b5214 data_ov000_020b5214;
|
||||
extern UnkStruct_ov000_020b5214 data_ov000_020b5214_eur;
|
||||
#define data_ov000_020b5214 data_ov000_020b5214_eur
|
||||
|
||||
@@ -19,6 +19,7 @@ public:
|
||||
~UnkStruct_ov000_020b52b4();
|
||||
|
||||
void func_ov000_0206f6ac();
|
||||
void func_ov000_0206f778(unk32 param1, unk32 param2, unk32 param3);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov000_020b52b4 data_ov000_020b52b4;
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov017_020c3f70 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov017_020c3f70();
|
||||
|
||||
// data_ov017_020c3f08
|
||||
/* 00 */ virtual ~UnkStruct_ov017_020c3f70();
|
||||
/* 08 */ virtual void vfunc_08(); //! TODO: probably inherited?
|
||||
|
||||
void func_ov017_020bba78();
|
||||
void func_ov017_020bba94();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov017_020c3f70 data_ov017_020c3f70;
|
||||
@@ -0,0 +1,67 @@
|
||||
#pragma once
|
||||
|
||||
#include "Actor/ActorId.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkActorSystem1 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ bool mUnk_04;
|
||||
|
||||
UnkActorSystem1();
|
||||
|
||||
// data_ov024_020d7b98
|
||||
/* 00 */ virtual ~UnkActorSystem1();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10(unk32 param1);
|
||||
/* 14 */ virtual void vfunc_14(unk32 param1);
|
||||
/* 18 */ virtual void vfunc_18(unk8 *param1);
|
||||
/* 1C */ virtual void vfunc_1C(unk32 param1);
|
||||
/* 20 */ virtual void vfunc_20(unk32 param1);
|
||||
/* 24 */ virtual unk32 vfunc_24() = 0;
|
||||
/* 28 */ virtual unk32 vfunc_28() = 0;
|
||||
/* 2C */ virtual bool vfunc_2C();
|
||||
/* 30 */
|
||||
};
|
||||
|
||||
struct UnkActorSystem_Infos1 {
|
||||
/* 0C */ s16 mUnk_00;
|
||||
/* 0E */ unk16 mUnk_02;
|
||||
/* 10 */ unk32 mUnk_04;
|
||||
/* 14 */ unk32 mUnk_08;
|
||||
/* 18 */ bool mUnk_0C;
|
||||
/* 19 */ bool mUnk_0D;
|
||||
/* 1A */ unk8 mUnk_0E; // pad?
|
||||
/* 1B */ unk8 mUnk_0F; // pad?
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8660 : public AutoInstance<UnkStruct_ov024_020d8660> {
|
||||
public:
|
||||
/* 00 */ UnkActorSystem1 *mUnk_00;
|
||||
/* 04 */ ActorId mActorId;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ UnkActorSystem_Infos1 mUnk_0C;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
|
||||
UnkStruct_ov024_020d8660();
|
||||
~UnkStruct_ov024_020d8660();
|
||||
|
||||
void func_ov024_020c4a8c(UnkActorSystem1 *param1);
|
||||
void func_ov024_020c4ac0();
|
||||
void func_ov024_020c4b10();
|
||||
void func_ov024_020c4b24();
|
||||
void func_ov024_020c4b4c(unk32 param1);
|
||||
void func_ov024_020c4ba0();
|
||||
void func_ov024_020c4cc8();
|
||||
bool func_ov024_020c4d74();
|
||||
void func_ov024_020c4d88(ActorId actorId, unk32 param2);
|
||||
void func_ov024_020c4dac(ActorId actorId, unk32 param2, UnkActorSystem_Infos1 *param3);
|
||||
|
||||
static void SetInstance(UnkStruct_ov024_020d8660 *pInstance);
|
||||
static bool ClearInstance();
|
||||
};
|
||||
|
||||
// related to minigames
|
||||
extern UnkStruct_ov024_020d8660 *data_ov024_020d8660;
|
||||
@@ -0,0 +1,171 @@
|
||||
#pragma once
|
||||
|
||||
#include "Player/TouchControl.hpp"
|
||||
#include "TitleScreen/TitleScreen.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkStruct_0204a110.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/button.h>
|
||||
|
||||
class UnkTitleCardSystem1 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ unk16 mUnk_004;
|
||||
/* 006 */ unk16 mUnk_006; // pad?
|
||||
/* 008 */ unk32 mUnk_008;
|
||||
/* 00C */ unk32 mUnk_00C;
|
||||
/* 010 */ unk32 mUnk_010;
|
||||
/* 014 */ GameModeManagerBase_004 *mUnk_014;
|
||||
/* 018 */ unk32 mUnk_018;
|
||||
/* 01C */ unk32 mUnk_01C;
|
||||
/* 020 */ unk16 mUnk_020;
|
||||
/* 022 */ unk16 mUnk_022;
|
||||
/* 024 */ unk16 mUnk_024;
|
||||
/* 026 */ unk16 mUnk_026;
|
||||
/* 028 */ unk32 mUnk_028;
|
||||
/* 02C */ unk32 mUnk_02C;
|
||||
/* 030 */ unk16 mUnk_030;
|
||||
/* 034 */ unk16 mUnk_034;
|
||||
/* 036 */ unk16 mUnk_036;
|
||||
/* 038 */ unk16 mUnk_038;
|
||||
/* 03A */ unk16 mUnk_03A;
|
||||
/* 03C */ unk16 mUnk_03C;
|
||||
/* 03E */ unk16 mUnk_03E;
|
||||
/* 040 */ unk32 mUnk_040;
|
||||
/* 044 */ unk32 mUnk_044;
|
||||
/* 048 */ unk16 mUnk_048;
|
||||
/* 04A */ unk16 mUnk_04A;
|
||||
/* 04C */ unk16 mUnk_04C;
|
||||
/* 04E */ unk16 mUnk_04E;
|
||||
/* 050 */ unk16 mUnk_050;
|
||||
/* 052 */ unk16 mUnk_052;
|
||||
/* 054 */ unk16 mUnk_054;
|
||||
/* 056 */ unk16 mUnk_056;
|
||||
/* 058 */ unk32 mUnk_058;
|
||||
/* 05C */ unk32 mUnk_05C;
|
||||
/* 060 */ unk32 mUnk_060;
|
||||
/* 064 */ UnkSystem2_UnkSubSystem9 mUnk_064;
|
||||
/* 0A8 */ UnkSystem2_UnkSubSystem9 mUnk_0A8;
|
||||
/* 0EC */ UnkSystem2_UnkSubSystem9 mUnk_0EC;
|
||||
/* 130 */ unk32 mUnk_130;
|
||||
/* 134 */ bool mUnk_134;
|
||||
/* 135 */ unk8 mUnk_135; // pad?
|
||||
/* 136 */ unk8 mUnk_136; // pad?
|
||||
/* 137 */ unk8 mUnk_137; // pad?
|
||||
/* 138 */
|
||||
|
||||
UnkTitleCardSystem1(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d7fd0
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 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 */
|
||||
};
|
||||
|
||||
class UnkTitleCardSystem1_Derived1 : public UnkTitleCardSystem1 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 138 */ unk32 mUnk_138;
|
||||
/* 13C */ unk16 mUnk_13C;
|
||||
/* 13E */ unk16 mUnk_13E;
|
||||
/* 140 */ bool mUnk_140;
|
||||
/* 141 */ unk8 mUnk_141; // pad?
|
||||
/* 142 */ unk8 mUnk_142; // pad?
|
||||
/* 143 */ unk8 mUnk_143; // pad?
|
||||
/* 144 */
|
||||
|
||||
UnkTitleCardSystem1_Derived1(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d8044
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_01C : public UnkTitleCardSystem1_Derived1 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 144 */ TitleScreen_Sub3 mUnk_144;
|
||||
/* 168 */ bool mUnk_168;
|
||||
/* 169 */ unk8 mUnk_169; // pad?
|
||||
/* 16A */ unk8 mUnk_16A; // pad?
|
||||
/* 16B */ unk8 mUnk_16B; // pad?
|
||||
/* 16C */
|
||||
|
||||
UnkStruct_ov024_020d8694_01C(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d7ff4
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_188 : public UnkTitleCardSystem1_Derived1 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 144 */ UnkStruct_0204a110_Sub7_08 mUnk_144;
|
||||
/* 174 */
|
||||
|
||||
UnkStruct_ov024_020d8694_188(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d801c
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 1C */ virtual void vfunc_1C() override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694_2FC : public UnkTitleCardSystem1 {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 138 */
|
||||
|
||||
UnkStruct_ov024_020d8694_2FC(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d7fac
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov024_020d8694 : public AutoInstance<UnkStruct_ov024_020d8694>, public GameModeManagerBase_104 {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 01C */ UnkStruct_ov024_020d8694_01C mUnk_01C;
|
||||
/* 188 */ UnkStruct_ov024_020d8694_188 mUnk_188;
|
||||
/* 2FC */ UnkStruct_ov024_020d8694_2FC mUnk_2FC;
|
||||
/* 440 */
|
||||
|
||||
UnkStruct_ov024_020d8694(GameModeManagerBase_004 *param1);
|
||||
|
||||
// data_ov024_020d7f88
|
||||
/* 00 */ virtual ~UnkStruct_ov024_020d8694();
|
||||
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl);
|
||||
/* 10 */ virtual void vfunc_10(unk8 *param1);
|
||||
|
||||
void func_ov024_020cafb8();
|
||||
void func_ov024_020cafd8();
|
||||
void func_ov024_020cb000();
|
||||
void func_ov024_020cb020();
|
||||
void func_ov024_020cb040();
|
||||
void func_ov024_020cb054();
|
||||
void func_ov024_020cb0ac();
|
||||
void func_ov024_020cb0c4();
|
||||
void func_ov024_020cb178();
|
||||
void func_ov024_020cb194();
|
||||
|
||||
static UnkStruct_ov024_020d8694 *Create(GameModeManagerBase_004 *param1);
|
||||
};
|
||||
|
||||
// related to title cards
|
||||
extern UnkStruct_ov024_020d8694 *data_ov024_020d8694;
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov024_020d86a0 : public AutoInstance<UnkStruct_ov024_020d86a0> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ unk8 mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D;
|
||||
/* 0E */ unk8 mUnk_0E;
|
||||
/* 0F */ bool mUnk_0F;
|
||||
|
||||
UnkStruct_ov024_020d86a0();
|
||||
~UnkStruct_ov024_020d86a0();
|
||||
|
||||
void func_ov001_020bd818();
|
||||
|
||||
void func_ov024_020d167c();
|
||||
|
||||
static void Destroy();
|
||||
static void SetInstance(UnkStruct_ov024_020d86a0 *pInstance);
|
||||
static bool ClearInstance();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov024_020d86a0 *data_ov024_020d86a0;
|
||||
@@ -0,0 +1,19 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov026_02138d10 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov026_02138d10();
|
||||
~UnkStruct_ov026_02138d10();
|
||||
|
||||
unk32 func_ov026_020e13f4();
|
||||
unk32 func_ov026_020e18fc();
|
||||
void func_ov026_020e1440();
|
||||
bool func_ov026_020e6a6c();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov026_02138d10 *data_ov026_02138d10;
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov026_0213f578 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov026_0213f578();
|
||||
~UnkStruct_ov026_0213f578();
|
||||
|
||||
void func_ov026_020f4844();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov026_0213f578 *data_ov026_0213f578;
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov026_0213f590 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov026_0213f590();
|
||||
~UnkStruct_ov026_0213f590();
|
||||
|
||||
unk32 func_ov026_020f7cc0();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov026_0213f590 data_ov026_0213f590;
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov031_02118fa4 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_ov031_02118fa4();
|
||||
~UnkStruct_ov031_02118fa4();
|
||||
|
||||
unk32 func_ov009_020b670c(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_ov031_02118fa4 *data_ov031_02118fa4;
|
||||
@@ -0,0 +1,15 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov088_02177218 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
|
||||
UnkStruct_ov088_02177218();
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_ov088_02177218();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov088_02177218 *data_ov088_02177218;
|
||||
@@ -16,6 +16,10 @@
|
||||
#define UNSET_FLAG(arr, pos) ((arr)[((u32) (pos)) >> 5] &= ~(1 << ((pos) & 0x1F)))
|
||||
#define FLAG(index, pos) (((index) << 5) | ((pos) & 0x1F))
|
||||
|
||||
#define GET_FLAG_ALT(arr, pos) (((arr)[(pos) >> 5] & (1 << ((0x1F - ((pos) & 0x1F))))) != 0)
|
||||
#define SET_FLAG_ALT(arr, pos) ((arr)[(pos) >> 5] |= 1 << ((0x1F - ((pos) & 0x1F))))
|
||||
#define UNSET_FLAG_ALT(arr, pos) ((arr)[(pos) >> 5] &= ~(1 << ((0x1F - ((pos) & 0x1F)))))
|
||||
|
||||
//! TODO: improve or remove? idk
|
||||
#define VA_NARGS_IMPL(_1, _2, _3, _4, N, ...) N
|
||||
#define VA_NARGS(...) VA_NARGS_IMPL(__VA_ARGS__, 4, 3, 2, 1)
|
||||
|
||||
+19
-8
@@ -68,16 +68,27 @@ typedef s32 unk32;
|
||||
DECL_PTMF(PTMF);
|
||||
typedef void (*UnkCallback)(u16 param1);
|
||||
|
||||
template <typename T> class AutoInstance {
|
||||
template <typename T> class Instance {
|
||||
public:
|
||||
AutoInstance() {
|
||||
T::SetInstance((T *) this);
|
||||
}
|
||||
|
||||
~AutoInstance() {
|
||||
T::ClearInstance();
|
||||
}
|
||||
Instance();
|
||||
~Instance();
|
||||
};
|
||||
|
||||
template <typename T> class AutoInstance : public Instance<T> {
|
||||
public:
|
||||
AutoInstance() {}
|
||||
~AutoInstance() {}
|
||||
};
|
||||
|
||||
#define DECL_INSTANCE(T, gpInstance) \
|
||||
template <typename T> Instance<T>::Instance() { \
|
||||
gpInstance = (T *) this; \
|
||||
} \
|
||||
template <typename T> Instance<T>::~Instance() { \
|
||||
gpInstance = NULL; \
|
||||
} \
|
||||
template class Instance<T>
|
||||
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user