Decompile overlay 1 (Part 7) (#106)

* run ninja format

* delink what's left from overlay 1 (except dsprotect)

* fix regressions

* UnkStruct_027e0ce0_1C_001 97%

* UnkStruct_0204a110_001 OK

* UnkStruct_ov024_020d86a0_001 OK

* UnkStruct_ov000_020b50c0_001 OK

* GameModeCreate OK

* AdventureModeManager_001 OK

* GameModeAdventure_001 OK

* AdventureModeManager_001 OKn't because weak issues

* ZeldaCollisionBinary OK

* UnkStruct_027e09c0_001 OK

* UnkStruct_ov000_020b504c_001 OK

* UnkStruct_ov000_02067bc4.hpp -> UnkStruct_ov000_020b504c.hpp

* match overlay 97

* match overlay 100

* run ninja format
This commit is contained in:
Yanis
2026-07-13 18:41:32 +02:00
committed by GitHub
parent 4daa8d8e86
commit 8d759ee331
138 changed files with 3528 additions and 1057 deletions
+4 -4
View File
@@ -11,7 +11,7 @@
#include "types.h"
#include <nitro/reg.h>
extern const unk16 data_ov019_020d1bb0[];
extern const s16 data_ov019_020d1bb0[];
extern "C" void func_ov001_020bd6a8();
class FileSelect_UnkClass7_04 {
@@ -87,7 +87,7 @@ public:
/* 180 */
// clang-format off
FileSelectManager(unk32 param1) NO_INLINE :
FileSelectManager(UnkStruct_0204a110_Sub2* param1) NO_INLINE :
GameModeManagerBase(param1),
mUnk_154(&this->mUnk_104),
mUnk_158(NULL),
@@ -100,7 +100,7 @@ public:
REG_DISPCNT_SUB &= 0xFFCFFFEF;
REG_DISPCNT_SUB |= 0x00200010;
this->mUnk_004.func_ov001_020bd734((unk32*)data_ov019_020d1bb0);
this->mUnk_004.func_ov001_020bd734(data_ov019_020d1bb0);
func_ov001_020bd6a8();
}
// clang-format on
@@ -116,7 +116,7 @@ public:
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
/* 2C */ virtual void DrawUI(unk8 *param1) override;
static GameModeManagerBase *Create(unk32 param1);
static GameModeManagerBase *Create(UnkStruct_0204a110_Sub2 *param1);
};
// static initializers classes
+6 -1
View File
@@ -1,12 +1,14 @@
#pragma once
#include "Game/GameMode.hpp"
// #include "Unknown/UnkStruct_0204a060.hpp"
#include "global.h"
#include "types.h"
class GameModeAdventure : public GameModeBase {
public:
/* 00 (base) */
/* 04 */
GameModeAdventure();
// data_ov024_020d7b68 vtable
@@ -18,4 +20,7 @@ public:
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
// overlay 1
static GameModeBase *Create();
};
+27
View File
@@ -0,0 +1,27 @@
#pragma once
#include "Game/GameMode.hpp"
#include "global.h"
#include "types.h"
class GameModeBattle : public GameModeBase {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x4C);
/* 4C */
GameModeBattle(unk32 param1);
/* 00 */ virtual ~GameModeBattle() 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;
/* 24 */ virtual unk32 vfunc_24() override;
// overlay 1
static GameModeBase *Create();
};
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Unknown/UnkStruct_0204a060.hpp"
#include "global.h"
#include "types.h"
class GameModeContactMode : public GameModeBase {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x20);
/* 20 */
GameModeContactMode();
/* 00 */ virtual ~GameModeContactMode() override;
// overlay 1
static GameModeBase *Create();
// overlay 23
static GameModeBase *CreateInstance();
};
+23
View File
@@ -0,0 +1,23 @@
#pragma once
#include "Game/GameMode.hpp"
#include "Unknown/UnkStruct_0204a060.hpp"
#include "global.h"
#include "types.h"
class GameModeDownloadPlay : public GameModeBase {
public:
/* 00 (base) */
/* 04 */ STRUCT_PAD(0x04, 0x6C);
/* 6C */
GameModeDownloadPlay();
/* 00 */ virtual ~GameModeDownloadPlay() override;
// overlay 1
static GameModeBase *Create();
// overlay 22
static GameModeBase *CreateInstance();
};
+18 -14
View File
@@ -14,14 +14,26 @@
class GameModeManagerBase;
class GameModeManagerBase_104;
class GameModeManagerBase_104_0C;
class UnkStruct_0204a110_Sub2;
class GameModeManagerBase_004_00 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x38);
/* 38 */
GameModeManagerBase_004_00(s16 param1);
~GameModeManagerBase_004_00();
};
class GameModeManagerBase_004 {
public:
unk32 *mUnk_00;
/* 00 */ GameModeManagerBase_004_00 *mUnk_00[60];
/* F0 */
GameModeManagerBase_004();
~GameModeManagerBase_004();
// main
void func_0201bf24();
void func_0201bf54();
void func_0201bf90();
@@ -36,7 +48,8 @@ public:
void func_0201c22c();
bool func_0201c2b0(unk32 param1);
void func_ov001_020bd734(unk32 *param1);
// overlay 1
void func_ov001_020bd734(const s16 *param1);
void func_ov001_020bd784();
};
@@ -83,22 +96,13 @@ class GameModeManagerBase {
public:
/* 000 (vtable) */
/* 004 */ GameModeManagerBase_004 mUnk_004;
/* 008 */ void *mUnk_008;
/* 00C */ STRUCT_PAD(0x0C, 0x1A);
/* 01A */ bool mUnk_01A;
/* 01C */ STRUCT_PAD(0x1C, 0xE0);
/* 0E0 */ void *mUnk_0E0;
/* 0E4 */ void *mUnk_0E4;
/* 0E8 */ void *mUnk_0E8;
/* 0EC */ unk32 mUnk_0EC;
/* 0F0 */ unk32 mUnk_0F0;
/* 0F4 */ bool mUnk_0F4;
/* 0F4 */ bool mUnk_0F5;
/* 0F4 */ unk8 mUnk_0F6;
/* 0F4 */ unk8 mUnk_0F7;
/* 0F8 */ unk32 mUnk_0F8;
/* 0FC */ unk32 mUnk_0FC;
/* 100 */ void *mUnk_100;
/* 100 */ UnkStruct_0204a110_Sub2 *mUnk_100;
/* 104 */ GameModeManagerBase_104 mUnk_104;
/* 120 */ Input mButtons;
/* 126 */ TouchControl mTouchControl;
@@ -114,7 +118,7 @@ public:
return this->mUnk_150;
}
GameModeManagerBase(unk32 param1);
GameModeManagerBase(UnkStruct_0204a110_Sub2 *param1);
void func_02018550(void);
void func_02018554(void);
void func_02018634(u16 speed);
@@ -153,7 +157,7 @@ public:
/* 30 */ virtual void vfunc_30(unk32 param1);
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2);
static GameModeManagerBase *Create(unk32 param1);
static GameModeManagerBase *Create(UnkStruct_0204a110_Sub2 *param1);
};
class TitleScreenManager_Base : public GameModeManagerBase {
+3
View File
@@ -21,6 +21,9 @@ public:
/* 18 */ virtual void vfunc_18() override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20() override;
// overlay 1
static GameModeBase *Create();
};
extern void func_ov018_020c4b08(unk16 *param1);
+2 -2
View File
@@ -947,7 +947,7 @@ public:
/* 1C4 */ SceneInfos mUnk_1CC;
/* 1D4 */
AdventureModeManager(unk32 param1);
AdventureModeManager(UnkStruct_0204a110_Sub2 *param1);
// data_ov024_020d7c18 vtable
/* 08 */ virtual ~AdventureModeManager() override;
@@ -1007,7 +1007,7 @@ public:
bool func_ov024_020c6dec();
void func_ov024_020c699c();
static AdventureModeManager *Create(unk32 param1);
static GameModeManagerBase *Create(UnkStruct_0204a110_Sub2 *param1);
static void func_ov001_020c00d4();
static void func_ov001_020c0104();
static void func_ov001_020c0194();
+18 -2
View File
@@ -5,7 +5,6 @@
#include "Render/ModelRender.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_027e09a4.hpp"
#include "Unknown/UnkStruct_ov000_0208f820.hpp"
#include "math.hpp"
#include "types.h"
@@ -38,7 +37,10 @@ struct UnkStruct_ov000_020ab4dc {
/* 66 */ unk16 mUnk_70;
/* 66 */ unk16 mUnk_72;
/* 74 */ s16 mUnk_74;
/* 78 */ STRUCT_PAD(0x78, 0x9C);
/* 78 */ STRUCT_PAD(0x76, 0x86);
/* 86 */ u8 mUnk_86[7];
/* 8D */ STRUCT_PAD(0x8D, 0x98);
/* 98 */ unk32 mUnk_98;
/* 9C */
};
extern const UnkStruct_ov000_020ab4dc data_ov000_020ab4dc[PlayerCharacter_Max];
@@ -66,6 +68,20 @@ inline bool PlayerCharacter_IsNotLink2(PlayerCharacter character) {
return ret;
}
class UnkStruct_PlayerGet_64 {
public:
/* 00 */ ActorRef *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ u16 mUnk_08; // makes link invisible when set
/* 0A */ unk16 mUnk_0A;
/* 0C */
UnkStruct_PlayerGet_64(void *param1);
~UnkStruct_PlayerGet_64();
void func_ov000_0208a100();
};
class ModelRender_Derived3 : public ModelRender {
public:
/* 00 (base) */
+109 -2
View File
@@ -5,6 +5,81 @@
class UnkStruct_027e0ce0_40;
class PlayerLinkActor_A0_38;
class PlayerLinkActor_A0_04 {
public:
/* 00 */ unk32 mUnk_00;
// overlay 0
void func_ov000_02088268();
};
class PlayerLinkActor_A0_10 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 00 */ virtual ~PlayerLinkActor_A0_10();
// overlay 31
void func_ov031_020e076c();
};
class PlayerLinkActor_A0_14 {
public:
/* 00 */ unk32 mUnk_00;
/* 00 */ virtual ~PlayerLinkActor_A0_14();
};
class PlayerLinkActor_A0_18 {
public:
/* 00 */ unk32 mUnk_00;
~PlayerLinkActor_A0_18();
// overlay 82
void func_ov082_02157bb8();
};
class PlayerLinkActor_A0_1C {
public:
/* 00 */ unk32 mUnk_00;
// overlay 101
void func_ov101_02183290();
};
class PlayerLinkActor_A0_28 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */
PlayerLinkActor_A0_28(PlayerLinkActor_A0_10 *param1, PlayerLinkActor_A0_14 *param2);
~PlayerLinkActor_A0_28();
};
class PlayerLinkActor_A0_2C {
public:
/* 00 */ unk32 mUnk_00;
PlayerLinkActor_A0_2C();
// overlay 0
void func_ov000_0208e704();
};
class PlayerLinkActor_A0_34 {
public:
/* 00 */ unk32 mUnk_00;
PlayerLinkActor_A0_34();
// overlay 0
void func_ov000_02082748();
};
class PlayerLinkActor_A0_38_04_Base : public LinkList<PlayerLinkActor_A0_38_04_Base> {
public:
/* 00 (vtable) */
@@ -69,17 +144,49 @@ public:
class PlayerLinkActor_A0 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x38);
/* 00 */ unk32 mUnk_00;
/* 04 */ PlayerLinkActor_A0_04 *mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ PlayerLinkActor_A0_10 *mUnk_10;
/* 14 */ PlayerLinkActor_A0_14 *mUnk_14;
/* 18 */ PlayerLinkActor_A0_18 *mUnk_18;
/* 1C */ PlayerLinkActor_A0_1C *mUnk_1C;
/* 20 */ PlayerLinkActor_A0_38 *mUnk_20;
/* 24 */ void *mUnk_24;
/* 28 */ PlayerLinkActor_A0_28 *mUnk_28;
/* 2C */ PlayerLinkActor_A0_2C mUnk_2C;
/* 30 */ unk32 mUnk_30;
/* 34 */ PlayerLinkActor_A0_34 mUnk_34;
/* 38 */ PlayerLinkActor_A0_38 *mUnk_38;
/* 3C */ STRUCT_PAD(0x3C, 0x94);
/* 3C */ STRUCT_PAD(0x3C, 0x5C);
/* 5C */ UnkStruct_PlayerGet_64 mUnk_5C;
/* 68 */ unk32 mUnk_68;
/* 6C */ unk32 mUnk_6C;
/* 70 */ u32 mUnk_70;
/* 74 */ unk32 mUnk_74;
/* 78 */ bool mUnk_78;
/* 79 */ STRUCT_PAD(0x79, 0x7D);
/* 7D */ bool mUnk_7D;
/* 7E */ bool mUnk_7E;
/* 80 */ void *mUnk_80;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8C */ unk32 mUnk_8C;
/* 90 */ unk32 mUnk_90;
/* 94 */
PlayerLinkActor_A0(unk32 param1, UnkStruct_027e0ce0_40 *param2, PlayerActorBase *pPlayer, PlayerLinkActor_9C *param4);
~PlayerLinkActor_A0();
// overlay 0
bool func_ov000_02091f08(unk32 param1);
void func_ov000_020921e4(unk32 param1);
void func_ov000_02091ea0();
void func_ov000_020936ec();
u32 func_ov000_02093718();
u8 func_ov000_0209378c(); // bool?
void func_ov000_02093a04();
// overlay 1
void func_ov001_020bd2e0();
+1 -1
View File
@@ -5,7 +5,7 @@
#include "Save/AdventureFlags.hpp"
#include "Save/SaveFile.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "Unknown/UnkStruct_ov000_020b504c.hpp"
#include "global.h"
#include "types.h"
+6
View File
@@ -394,16 +394,22 @@ public:
const bool IsBossLast1() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossLast1; }
const bool IsBossLast2() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossLast2; }
const bool IsDungeonForest() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_DgnForest; }
const bool IsDungeonDesert() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_DgnDesert; }
const bool IsPirateHideout() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_FldAjito; }
const bool IsASR() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_ASR; }
const bool IsPlayerSub() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub; }
const bool IsPlayerPhantom() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerPhantom; }
const bool IsPlayerZelda() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerZelda; }
const bool IsMapLava() const { return this->mLoadedOverlays[OverlaySlot_12] == OverlayIndex_MapLava; }
const bool IsMapA6() const { return this->mLoadedOverlays[OverlaySlot_13] == OverlayIndex_MapA6; }
const bool IsMapB3() const { return this->mLoadedOverlays[OverlaySlot_14] == OverlayIndex_MapB3; }
const bool IsMapC1() const { return this->mLoadedOverlays[OverlaySlot_15] == OverlayIndex_MapC1; }
// clang-format on
void Load(OverlaySlot slot, OverlayIndex index);
+2 -2
View File
@@ -117,7 +117,7 @@ public:
/* 154 */ GameModeBase *mpGameMode;
/* 158 */
TitleScreenManager(unk32 param1) NO_INLINE {
TitleScreenManager(UnkStruct_0204a110_Sub2 *param1) NO_INLINE {
this->mpGameMode = NULL;
GX_SetGraphicsMode(1, 0, 1);
GXS_SetGraphicsMode(5);
@@ -136,5 +136,5 @@ public:
/* 2C */ virtual void DrawUI(unk8 *param1) override;
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) override;
static TitleScreenManager *Create(unk32 param1);
static GameModeManagerBase *Create(UnkStruct_0204a110_Sub2 *param1);
};
+25
View File
@@ -944,6 +944,19 @@ public:
void func_ov000_020a0334();
};
class UnkSystem7_Derived2 : public UnkSystem7 {
public:
/* 00 (base) */
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */
UnkSystem7_Derived2(UnkSystem7_UnkStruct_00 *param1, unk32 param2, unk32 param3) :
UnkSystem7(param1),
mUnk_04(param2),
mUnk_08(param3) {}
};
class UnkStruct_PlayerGet_ec : public UnkSystem7 {
public:
/* 00 (base) */
@@ -1237,3 +1250,15 @@ public:
UnkStruct_PlayerGet_74_base();
};
struct UnkStruct_ov000_020aa88c {
/* 00 */ bool mUnk_00;
/* 01 */ bool mUnk_01;
/* 02 */ bool mUnk_02;
/* 03 */ bool mUnk_03;
/* 04 */ bool mUnk_04;
/* 05 */ unk8 mUnk_05;
/* 06 */ u16 mUnk_06;
/* 08 */
};
extern UnkStruct_ov000_020aa88c data_ov000_020aa88c[];
+1 -1
View File
@@ -5,7 +5,7 @@
#include "LinkList.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_ov000_02067bc4.hpp"
#include "Unknown/UnkStruct_ov000_020b504c.hpp"
#include "types.h"
class GameModeFileSelect;
+15 -11
View File
@@ -4,33 +4,37 @@
#include "System/SysNew.hpp"
#include "types.h"
class UnkStruct_0204a088_Base {
public:
UnkStruct_0204a088_Base();
~UnkStruct_0204a088_Base(); //! TODO: most likely inlined but can't make it work for some reasons
};
// members 00 04 and 08 are used in data_ov000_020b1d74 to figure out which overlay to load next in slot 1
class UnkStruct_0204a088 : public UnkStruct_0204a088_Base {
class UnkStruct_0204a088 : public AutoInstance<UnkStruct_0204a088> {
public:
/* 000 */ unk32 mUnk_00; // current index
/* 000 */ unk32 mUnk_04; // prev index
/* 000 */ unk32 mUnk_08; // next index
/* 00C */ FileSelectManager_UnkDrawBase mUnk_0C[23]; // 23 possible overlays
/* 120 */ u16 mUnk_120;
/* 122 */ unk16 mUnk_122;
/* 124 */ unk8 mUnk_124;
/* 125 */ unk8 mUnk_125;
/* 126 */ unk8 mUnk_126;
/* 122 */ bool mUnk_122;
/* 123 */ bool mUnk_123;
/* 124 */ bool mUnk_124;
/* 125 */ bool mUnk_125;
/* 126 */ bool mUnk_126;
/* 127 */ bool mUnk_127;
/* 128 */ unk16 mUnk_128;
/* 12C */
UnkStruct_0204a088();
// overlay 0
void func_ov000_02061098(void);
void func_ov000_020611dc(void *param1, unk32 param2);
bool func_ov000_020611fc(unk32 param2); // sets new index
bool func_ov000_02061224(void);
void func_ov000_02061230(void);
void func_ov000_02061248(void);
// overlay 1
void func_ov001_020bd6f8();
static UnkStruct_0204a088 *Create();
};
extern UnkStruct_0204a088 *data_0204a088;
+13 -4
View File
@@ -8,6 +8,9 @@
#include <nitro/mi.h>
class GameModeManagerBase;
class UnkStruct_0204a110_Sub2;
typedef GameModeManagerBase *(*GameModeMgrCreateCallback)(UnkStruct_0204a110_Sub2 *param1);
struct UnkStruct_0204a110_Sub2_000_158 {
u32 mUnk_00[3];
@@ -60,8 +63,13 @@ public:
/* 360 */
UnkStruct_0204a110_Sub2();
void func_0201c890(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
// main
void func_0201c890(unk32 param1, unk32 param2, bool param3, bool param4, bool param5);
void func_0201ca28(unk32 param1);
// overlay 1
void func_ov001_020bd7c0();
};
class UnkStruct_0204a110_Sub3_00 {
@@ -197,6 +205,7 @@ public:
UnkStruct_0204a110_Sub8();
void func_0201de24(void);
void func_0201e588(unk32 param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
void func_0201e698(void);
};
@@ -236,7 +245,7 @@ public:
/* DBC */ STRUCT_PAD(0xDBC, 0xDC0);
/* DC0 */ UnkStruct_0204a110_Sub7 mUnk_DC0;
/* DDC */ UnkStruct_0204a110_Sub8 mUnk_DDC;
/* DEC */ GameModeManagerBase *mUnk_DEC;
/* DEC */ GameModeManagerBase *mpManager;
/* DF0 */ u16 mUnk_DF0;
/* DF2 */ unk8 mUnk_DF2;
/* DF3 */ unk8 mUnk_DF3;
@@ -287,10 +296,10 @@ public:
UnkStruct_func_02019590 *func_02019590(unk16 param1, unk32 param2);
// overlay 1
void func_ov001_020bd514(unk32 param1, void *param2, unk32 param3, unk32 param4);
void func_ov001_020bd514(unk32 param1, GameModeMgrCreateCallback createCallback, bool param3, bool param4);
void func_ov001_020bd58c(void);
void func_ov001_020bd638(void);
void func_ov001_020bd5b0(void);
void func_ov001_020bd638(void);
void func_ov001_020bd678(void);
void func_ov001_020bd68c(void);
+3 -1
View File
@@ -10,7 +10,9 @@
struct UnkStruct_func_ov000_020702a8 {
/* 00 */ STRUCT_PAD(0x00, 0x10);
/* 10 */ Vec2s mUnk_10;
/* 14 */ STRUCT_PAD(0x14, 0x20);
/* 14 */ u8 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk16 mUnk_20;
/* 22 */ unk16 mUnk_22;
};
+3 -2
View File
@@ -12,7 +12,7 @@
#include <nitro/mi.h>
struct SaveFile;
struct GameSaveSlot;
class UnkStruct_027e09a4;
#define ROOM_INDEX_NONE 0xFF
@@ -315,7 +315,8 @@ public:
bool func_ov000_02070a9c(EntranceInfo *param1);
bool func_ov000_02072154(EntranceInfo *param1, unk32 param2);
bool func_ov000_0207056c();
void func_ov000_020705e8(SaveFile *param1, unk32 param2);
bool func_ov000_0207059c();
void func_ov000_020705e8(GameSaveSlot *param1, unk32 param2);
// overlay 1
void func_ov001_020b662c();
+47 -2
View File
@@ -8,12 +8,56 @@
class UnkStruct_027e0cd8_0C_Base;
class UnkStruct_027e09c0 : public AutoInstance<UnkStruct_027e09c0> {
class UnkStruct_027e09c0_60 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */
UnkStruct_027e09c0_60() {
this->mUnk_00 = 0;
this->mUnk_10 = 0;
this->mUnk_04 = 0;
this->mUnk_08 = 0;
this->mUnk_0C = 0;
}
};
class UnkStruct_027e09c0_04 {
public:
void func_ov000_0207f4d4();
};
class UnkStruct_027e09c0 : public AutoInstance<UnkStruct_027e09c0> {
public:
/* 000 */ unk32 mUnk_000;
/* 004 */ UnkStruct_027e09c0_04 *mUnk_004[16];
/* 044 */ UnkStruct_027e09c0_04 **mUnk_044;
/* 048 */ void *mUnk_048;
/* 04C */ void *mUnk_04C;
/* 050 */ unk32 mUnk_050;
/* 054 */ void *mUnk_054;
/* 058 */ void *mUnk_058;
/* 05C */ unk32 mUnk_05C;
/* 060 */ UnkStruct_027e09c0_60 mUnk_060[64];
/* 760 */ void *mUnk_760;
/* 764 */ void *mUnk_764;
/* 768 */ unk32 mUnk_768;
/* 76C */ void *mUnk_76C;
/* 770 */ void *mUnk_770;
/* 774 */ unk32 mUnk_774;
/* 778 */ unk32 mUnk_778;
/* 77C */ STRUCT_PAD(0x77C, 0x878);
/* 878 */ unk32 mUnk_878;
/* 87C */ STRUCT_PAD(0x87C, 0x978);
/* 978 */
UnkStruct_027e09c0();
~UnkStruct_027e09c0();
// overlay 0
void func_ov000_0207da40();
@@ -27,6 +71,7 @@ public:
static UnkStruct_027e09c0 *Create();
static void Destroy();
static void DestroyImpl();
};
extern UnkStruct_027e09c0 *data_027e09c0;
+36
View File
@@ -0,0 +1,36 @@
#pragma once
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "files.h"
#include "global.h"
#include "types.h"
class UnkStruct_027e09e8 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ STRUCT_PAD(0x04, 0x24);
/* 24 */ ZCBEntryPLCB *mpPolyClassTable;
/* 28 */ ZCBEntryPLCB *mpPolyClassTableEnd;
/* 2C */ u32 mNumPolyClasses;
/* 30 */ VecFx32 *mpVerticesTable;
/* 34 */ VecFx32 *mpVerticesTableEnd;
/* 38 */ u32 mNumVertices;
/* 3C */ ZCBEntryNRMB *mpNormalTable;
/* 40 */ ZCBEntryNRMB *mpNormalTableEnd;
/* 44 */ u32 mNumNormals;
/* 48 */ VecFx32 mUnk_48;
/* 54 */ VecFx32 mUnk_54;
/* 60 */
UnkStruct_027e09e8();
~UnkStruct_027e09e8();
// overlay 0
void func_ov000_0207ba84(UnkFileSystem1 *param1, UnkStruct_027e0cd8_0C_Base *param2); // calls `ZCB_ParseFile`
void func_ov000_0207baa0();
void func_ov000_0207bab4(ZCBEntryTRIB *pEntries, u16 nEntries);
void func_ov000_0207e99c(ZCBSectionGRDB *pSection, UnkStruct_027e0cd8_0C_Base *param2);
};
//! TODO: gCollisionManager? also not a pointer?
extern UnkStruct_027e09e8 data_027e09e8;
+22
View File
@@ -0,0 +1,22 @@
#pragma once
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "global.h"
#include "types.h"
class UnkStruct_027e0a48 {
public:
/* 00 */ unk32 mUnk_00;
UnkStruct_027e0a48();
~UnkStruct_027e0a48();
// overlay 0
void func_ov000_0207ef30();
void func_ov000_0207f048();
void func_ov000_0207f1f0();
void func_ov000_0207f280(UnkStruct_027e0cd8_0C_Base *param1);
void func_ov000_0207f2d8();
};
extern UnkStruct_027e0a48 data_027e0a48;
+34
View File
@@ -0,0 +1,34 @@
#pragma once
#include "global.h"
#include "iterator.hpp"
#include "types.h"
class UnkStruct_027e0b48_IteratorEntry {
public:
/* 00 */ STRUCT_PAD(0x00, 0x70);
/* 70 */ void *mUnk_70;
/* 74 */
UnkStruct_027e0b48_IteratorEntry() {
this->mUnk_70 = this;
}
~UnkStruct_027e0b48_IteratorEntry() {}
};
class UnkStruct_027e0b48 {
public:
/* 000 */ Iterator<UnkStruct_027e0b48_IteratorEntry> mUnk_000;
/* 008 */ unk8 mUnk_008[0x140];
/* 148 */
UnkStruct_027e0b48();
~UnkStruct_027e0b48();
// overlay 1
void func_ov001_020be474();
void func_ov001_020be4e4();
};
extern UnkStruct_027e0b48 data_027e0b48;
+1 -3
View File
@@ -194,9 +194,7 @@ public:
/* 088 */ UnkStruct_027e0cd8_0C_Base_88 mUnk_088;
/* 098 */ UnkStruct_027e0cd8_0C_Base_98 *mUnk_098;
/* 09C */ Vec2us mUnk_09C;
/* 0A0 */ unk32 mUnk_0A0;
/* 0A4 */ unk32 mUnk_0A4;
/* 0A8 */ unk32 mUnk_0A8;
/* 0A0 */ VecFx32 mUnk_0A0;
/* 0AC */ bool mUnk_0AC;
/* 0AC */ bool mUnk_0AD;
/* 0AC */ bool mUnk_0AE;
+62 -4
View File
@@ -34,11 +34,57 @@ public:
/* 00 */ virtual void vfunc_00(unk32 param1);
};
class UnkStruct_027e0ce0_1C_00 {
public:
/* 00 */ u16 mUnk_00;
UnkStruct_027e0ce0_1C_00() {
this->mUnk_00 = 0;
}
};
class UnkStruct_027e0ce0_1C_08 : public MapObjectProfile_Derived2_20_Base {
public:
/* 00 (base) */
/* 94 */
UnkStruct_027e0ce0_1C_08(unk32 param1, unk32 param2, unk32 param3);
};
class UnkStruct_027e0ce0_1C_C8 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x20);
/* 20 */
UnkStruct_027e0ce0_1C_C8(unk32 param1, unk32 param2);
~UnkStruct_027e0ce0_1C_C8();
};
class UnkStruct_027e0ce0_1C_D4 {
public:
/* 0000 */ STRUCT_PAD(0x00, 0x6AD8);
/* 6AD8 */
UnkStruct_027e0ce0_1C_D4();
};
class UnkStruct_027e0ce0_1C_D8 {
public:
/* 0000 */ STRUCT_PAD(0x00, 0x6AB0);
/* 6AB0 */
UnkStruct_027e0ce0_1C_D8();
};
class UnkStruct_027e0ce0_1C {
public:
/* 00 */ STRUCT_PAD(0x00, 0x0C);
/* 0C */ MapObjectProfile_Derived2_20_Base *mUnk_0C;
/* 10 */ STRUCT_PAD(0x10, 0xDC);
/* 00 */ UnkStruct_027e0ce0_1C_00 mUnk_00[PlayerCharacter_Max];
/* 06 */ unk16 mUnk_06; // pad?
/* 08 */ UnkStruct_027e0ce0_1C_08 *mUnk_08[PlayerCharacter_Max][7];
/* 5C */ UnkFileSystem5 *mUnk_5C[PlayerCharacter_Max][9];
/* C8 */ UnkStruct_027e0ce0_1C_C8 *mUnk_C8[PlayerCharacter_Max];
/* D4 */ UnkStruct_027e0ce0_1C_D4 *mUnk_D4;
/* D8 */ UnkStruct_027e0ce0_1C_D8 *mUnk_D8;
/* DC */
UnkStruct_027e0ce0_1C();
@@ -424,9 +470,21 @@ public:
~UnkStruct_027e0ce0_40_Base_78();
};
class UnkStruct_027e0ce0_40_Base_7C_04 {
public:
/* 00 */ STRUCT_PAD(0x00, 0xB4);
/* B4 */
UnkStruct_027e0ce0_40_Base_7C_04();
~UnkStruct_027e0ce0_40_Base_7C_04();
};
class UnkStruct_027e0ce0_40_Base_7C {
public:
/* 00 */ STRUCT_PAD(0x00, 0x18);
/* 00 */ unk32 mUnk_00;
/* 04 */ UnkStruct_027e0ce0_40_Base_7C_04 *mUnk_04;
/* 08 */ UnkSystem7_Derived2 mUnk_08;
/* 14 */ unk32 mUnk_14;
/* 18 */
UnkStruct_027e0ce0_40_Base_7C(unk32 param1);
+4
View File
@@ -31,6 +31,10 @@ public:
UnkStruct_027e0d08();
~UnkStruct_027e0d08();
// overlay 1
static void Destroy();
// overlay 24
void func_ov024_020d5d10(unk32 param1);
void func_ov024_020d5d18(unk32 param1);
void func_ov024_020d5d34(unk32 param1);
@@ -1,185 +0,0 @@
#pragma once
#include "Game/GameModeManager.hpp"
#include "Item/Item.hpp"
#include "Message/BMG.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_02049b18.hpp"
#include "global.h"
#include "types.h"
#include <nitro/pad.h>
class UnkStruct_027e0cd8_04_0C;
class UnkStruct_ov000_02067bc4_Sub1 {
public:
unk32 func_02022128(void);
};
class UnkStruct_ov000_02067bc4_Sub2 {
public:
unk8 mUnk_00[0x10];
unk32 mUnk_10;
unk8 mUnk_14[0x40];
unk32 mUnk_54;
};
class UnkStruct_ov000_02067bc4 {
public:
class UnkStruct1 {
public:
union {
struct {
unk16 mUnk_00;
unk16 mUnk_02;
unk32 mUnk_04;
unk32 mUnk_08;
u8 mUnk_0C;
unk8 mUnk_0D;
unk8 mUnk_0E;
unk8 mUnk_0F;
};
u32 data[4];
};
UnkStruct1(unk32 param1, unk32 param2) {
mUnk_00 = 0;
mUnk_08 = param1;
mUnk_0C = 0;
mUnk_0D = 0;
mUnk_04 = 0;
}
UnkStruct1(unk32 param1) {
mUnk_00 = 0;
mUnk_04 = param1;
mUnk_08 = param1;
mUnk_0C = 0;
mUnk_0D = 0;
}
UnkStruct1() {
mUnk_00 = 0;
mUnk_08 = -1;
mUnk_0C = 0;
mUnk_0D = 0;
mUnk_04 = 0;
}
};
public:
/* 000 (vtable) */
/* 004 */ unk32 mUnk_004;
/* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
/* 00C */ STRUCT_PAD(0x0C, 0x28);
/* 028 */ UnkStruct1 mUnk_028;
/* 038 */ STRUCT_PAD(0x38, 0x160);
/* 160 */ UnkStruct_ov000_02067bc4_Sub1 mUnk_160;
/* 00 */ virtual unk32 vfunc_00();
/* 04 */ virtual unk32 vfunc_04();
/* 08 */ virtual bool vfunc_08();
void func_02021bec(unk16 param1);
void func_02021c08();
void func_02021c2c();
};
typedef void (*UnkCallback2)();
class BMGEntry {
public:
/* 00 */ SectionINF1 *mpINF1;
/* 04 */ SectionFLW1 *mpFLW1;
/* 08 */ SectionFLI1 *mpFLI1;
/* 0C */ SectionDAT1 *mpDAT1;
/* 10 */ unk32 mBMGGroup;
/* 14 */
};
class UnkStruct_ov000_020b504c_Sub3 {
public:
/* 00 */ BMGEntry **mpBMGTable;
/* 04 */ BMGHeader **mUnk_04;
/* 08 */ BMGHeader **mUnk_08;
/* 0C */ SectionINF1 *mUnk_0C;
/* 10 */ unk32 mUnk_10;
/* 14 */
UnkStruct_ov000_020b504c_Sub3(unk32 param1);
void func_ov000_020676f8(const char *bmgFileName, unk32 param2);
EntryINF1 *func_ov000_02067a2c(u32 msgId);
};
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;
/* 04 */
};
class UnkStruct_ov000_020b504c {
public:
/* 000 */ UnkStruct_ov000_020b504c_Sub3 *mUnk_000;
/* 004 */ GameModeManagerBase_004 *mUnk_004;
/* 008 */ UnkStruct_ov000_02067bc4_Sub2 *mUnk_008;
/* 00C */ UnkStruct_ov000_020b504c_Sub4 mUnk_00C[7];
/* 028 */ unk32 mUnk_028; // pointer to the subsystem that handles drawing the textboxes
/* 02C */ unk32 mUnk_02C;
/* 030 */ unk32 mUnk_030;
/* 034 */ Input mButtons;
/* 03A */ TouchControl mTouchControl;
/* 05C */ unk8 mUnk_05C[0x10];
/* 06C */ unk8 mUnk_06C[2];
/* 06E */ unk8 mUnk_06E;
/* 06F */ unk8 mUnk_06F;
UnkStruct_ov000_020b504c();
// overlay 0
void *func_ov000_02067bb4(unk32 param1);
UnkStruct_ov000_02067bc4 *func_ov000_02067bc4(unk32);
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);
bool 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);
bool func_ov000_0206807c(unk32 param1, void *param2);
void func_ov000_02067b60();
// overlay 1
void func_ov001_020be504(void);
void func_ov001_020be510();
void func_ov001_020be668(void);
void func_ov001_020be6f4(void);
void func_ov001_020be8e0(void);
void func_ov001_020be92c(UnkStruct_027e0cd8_04_0C *param1);
void func_ov001_020be94c(void);
void func_ov001_020be998(void);
};
// gMessageManager?
extern UnkStruct_ov000_020b504c data_ov000_020b504c;
struct UnkMsgDataStruct1 {
unk32 mUnk_00;
void func_ov000_02067a60(void *, int);
};
+2 -42
View File
@@ -5,6 +5,7 @@
#include "Actor/ActorRef.hpp"
#include "Item/ItemManager.hpp"
#include "Player/PlayerLink.hpp"
#include "System/SysNew.hpp"
#include "math.hpp"
@@ -24,20 +25,6 @@ public:
/* 90 */
};
class UnkStruct_PlayerGet_64 {
public:
/* 00 */ ActorRef *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ u16 mUnk_08; // makes link invisible when set
/* 0A */ unk16 mUnk_0A;
/* 0C */
UnkStruct_PlayerGet_64(void *param1);
~UnkStruct_PlayerGet_64();
void func_ov000_0208a100();
};
class UnkStruct_PlayerGet_64_2 {
public:
/* 00 */ unk32 mUnk_00;
@@ -98,33 +85,6 @@ public:
/* 150 */ ActorRef mUnk_150;
};
class UnkStruct_ov000_0208f820_30_10 {
public:
void func_ov031_020e076c();
};
class UnkStruct_ov000_0208f820_30 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk32 mUnk_0C;
/* 10 */ UnkStruct_ov000_0208f820_30_10 *mUnk_10;
/* 14 */ unk32 mUnk_14;
/* 18 */ unk32 mUnk_18;
/* 1C */ unk32 mUnk_1C;
/* 20 */ unk32 mUnk_20;
/* 24 */ unk32 mUnk_24;
/* 28 */ STRUCT_PAD(0x28, 0x68);
/* 68 */ unk32 mUnk_68;
/* 6C */ unk32 mUnk_6C;
/* 70 */ u32 mUnk_70;
void func_ov000_020921e4(unk32 param1);
void func_ov000_020936ec();
void func_ov000_02093a04();
};
class UnkStruct_ov000_0208f820_40 {
public:
/* 00 */ u16 mUnk_00;
@@ -196,7 +156,7 @@ public:
/* 24 */ UnkStruct_ov000_0208f820_24 *mUnk_24;
/* 28 */ UnkStruct_ov000_0208f820_28 *mUnk_28;
/* 2C */ UnkStruct_ov000_0208f820_2c *mUnk_2C;
/* 30 */ UnkStruct_ov000_0208f820_30 *mUnk_30;
/* 30 */ PlayerLinkActor_A0 *mUnk_30;
/* 34 */ VecFx32 *mUnk_34;
/* 38 */ VecFx32 *mUnk_38;
/* 3C */ VecFx32 *mUnk_3C;
+2 -1
View File
@@ -1,5 +1,6 @@
#pragma once
#include "Save/SaveFile.hpp"
#include "types.h"
class UnkStruct_ov000_020b4eec {
@@ -10,7 +11,7 @@ public:
UnkStruct_ov000_020b4eec();
SaveFile *func_ov001_020be12c();
GameSaveSlot *func_ov001_020be12c();
};
extern UnkStruct_ov000_020b4eec data_ov000_020b4eec;
@@ -0,0 +1,413 @@
#pragma once
#include "Animation/CellAnimObject.hpp"
#include "Game/GameModeManager.hpp"
#include "Item/Item.hpp"
#include "Message/BMG.hpp"
#include "System/SysNew.hpp"
#include "Unknown/Common.hpp"
#include "Unknown/UnkStruct_02049b18.hpp"
#include "global.h"
#include "types.h"
#include <nitro/pad.h>
class UnkStruct_027e0cd8_04_0C;
class UnkTextStruct1 {
public:
/* 00 */ union {
struct {
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ u8 mUnk_0C;
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mUnk_0E;
/* 0F */ unk8 mUnk_0F;
};
/* 00 */ u32 data[4];
};
/* 10 */
UnkTextStruct1(unk32 param1, unk32 param2) {
this->mUnk_00 = 0;
this->mUnk_08 = param1;
this->mUnk_0C = 0;
this->mUnk_0D = 0;
this->mUnk_04 = 0;
}
UnkTextStruct1(unk32 param1) {
this->mUnk_00 = 0;
this->mUnk_04 = param1;
this->mUnk_08 = param1;
this->mUnk_0C = 0;
this->mUnk_0D = 0;
}
UnkTextStruct1() {}
};
typedef void (*UnkCallback2)();
class BMGEntry {
public:
/* 00 */ SectionINF1 *mpINF1;
/* 04 */ SectionFLW1 *mpFLW1;
/* 08 */ SectionFLI1 *mpFLI1;
/* 0C */ SectionDAT1 *mpDAT1;
/* 10 */ unk32 mBMGGroup;
/* 14 */
};
class UnkStruct_ov000_020b504c_Sub3 {
public:
/* 00 */ BMGEntry **mpBMGTable;
/* 04 */ BMGHeader **mUnk_04;
/* 08 */ BMGHeader **mUnk_08;
/* 0C */ SectionINF1 *mUnk_0C;
/* 10 */ s16 mUnk_10;
/* 12 */ unk16 mUnk_12;
/* 14 */
UnkStruct_ov000_020b504c_Sub3(unk32 param1);
// overlay 0
void func_ov000_020676f8(const char *bmgFileName, HeapIndex heapIndex);
void func_ov000_020677b0(const char *bmgFileName, HeapIndex heapIndex);
void func_ov000_02067804(const char *bmgFileName, void *pDst, size_t size); // load BMG at specified address
EntryINF1 *func_ov000_02067a2c(u32 msgId);
void func_ov000_02068f0c();
};
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_08_18C {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk16 mUnk_08;
/* 0A */ unk16 mUnk_0A;
/* 0C */ unk16 mUnk_0C;
/* 0E */ STRUCT_PAD(0x0E, 0x18);
/* 18 */
UnkStruct_ov000_020b504c_08_18C() {
this->mUnk_00 = 0;
this->mUnk_04 = 0;
this->mUnk_0A = 0;
this->mUnk_0C = 0;
}
};
class UnkStruct_ov000_020b504c_08 : public GameModeManagerBase_104 {
public:
/* 000 (base) */
/* 01C */ unk32 mUnk_01C;
/* 020 */ CellAnimObject mUnk_020;
/* 098 */ CellAnimObject mUnk_098;
/* 110 */ CellAnimObject mUnk_110;
/* 188 */ bool mUnk_188;
/* 189 */ STRUCT_PAD(0x189, 0x18C);
/* 18C */ UnkStruct_ov000_020b504c_08_18C mUnk_18C[2];
/* 1BC */ STRUCT_PAD(0x1BC, 0x1C4);
/* 1C4 */ bool mUnk_1C4;
/* 1C5 */ STRUCT_PAD(0x1C5, 0x1C8);
/* 1C8 */ CellAnimObject mUnk_1C8[2];
/* 2B8 */ unk32 mUnk_2B8;
/* 2BC */ unk32 mUnk_2BC;
/* 2C0 */ bool mUnk_2C0;
/* 2C1 */ STRUCT_PAD(0x2C1, 0x2C4);
/* 2C4 */
UnkStruct_ov000_020b504c_08();
// data_ov000_020b1e60 vtable
/* 00 */ virtual ~UnkStruct_ov000_020b504c_08() override;
/* 08 */ virtual void vfunc_08(Input *pButtons, TouchControl *pTouchControl) override;
/* 10 */ virtual void vfunc_10(unk8 *param1) override;
// overlay 0
void func_ov000_020a4764();
};
class UnkStruct_ov000_020b504c_0C_Base {
public:
/* 04 */ UnkSystem2_UnkSubSystem11_Derived2 *mUnk_04;
/* 08 */ UnkStruct_ov000_020b504c_08 *mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x1C);
/* 1C */
UnkStruct_ov000_020b504c_0C_Base();
// data_020443e8
/* 00 */ virtual ~UnkStruct_ov000_020b504c_0C_Base();
/* 08 */ virtual bool vfunc_08();
/* 0C */ virtual void vfunc_0C();
/* 10 */ virtual void vfunc_10();
/* 14 */ virtual void vfunc_14();
/* 18 */ virtual void vfunc_18(unk32 param1);
/* 1C */ virtual void vfunc_1C();
/* 20 */
void func_02021bec(unk16 param1);
void func_02021c08();
void func_02021c2c();
};
class UnkStruct_ov000_020b504c_0C_Derived1 : public UnkStruct_ov000_020b504c_0C_Base {
public:
/* 000 (base) */
/* 01C */ STRUCT_PAD(0x1C, 0x194);
/* 194 */
UnkStruct_ov000_020b504c_0C_Derived1(unk32 param1);
};
class UnkStruct_ov000_020b504c_0C_Derived2 : public UnkStruct_ov000_020b504c_0C_Base {
public:
/* 00 (base) */
/* 1C */ STRUCT_PAD(0x1C, 0xCC);
/* CC */
UnkStruct_ov000_020b504c_0C_Derived2();
};
class UnkStruct_ov000_020b504c_0C_Derived3 : public UnkStruct_ov000_020b504c_0C_Base {
public:
/* 000 (base) */
/* 01C */ STRUCT_PAD(0x1C, 0x194);
/* 194 */
UnkStruct_ov000_020b504c_0C_Derived3(unk32 param1);
};
class UnkStruct_ov000_020b504c_0C_Derived4 : public UnkStruct_ov000_020b504c_0C_Base {
public:
/* 00 (base) */
/* 1C */ STRUCT_PAD(0x1C, 0x28);
/* 28 */
UnkStruct_ov000_020b504c_0C_Derived4();
};
class UnkStruct_ov000_020b504c_28_Base_160 {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ bool mUnk_04;
/* 05 */ STRUCT_PAD(0x05, 0x08);
/* 08 */ CellAnimObject mUnk_08;
/* 80 */
UnkStruct_ov000_020b504c_28_Base_160();
// main
unk32 func_02022128(void);
};
class UnkStruct_ov000_020b504c_28_Base_25C {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk16 mUnk_04;
/* 06 */ unk16 mUnk_06;
/* 08 */ unk16 mUnk_08;
/* 0A */ unk16 mUnk_0A;
/* 0C */
UnkStruct_ov000_020b504c_28_Base_25C() {
this->mUnk_00 = 0;
this->mUnk_04 = 0;
this->mUnk_06 = 0;
this->mUnk_08 = 0;
this->mUnk_0A = 0;
}
};
class UnkStruct_ov000_020b504c_28_Base_310 {
public:
/* 00 */ unk16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ unk16 mUnk_04;
/* 06 */ unk16 mUnk_06;
/* 08 */
UnkStruct_ov000_020b504c_28_Base_310() {
this->mUnk_00 = 0;
this->mUnk_02 = 0;
this->mUnk_04 = 0;
this->mUnk_06 = 0;
}
};
class UnkStruct_ov000_020b504c_28_Base : public UnkStruct_ov000_020b504c_0C_Base {
public:
/* 000 (vtable) */
/* 01C */ unk32 mUnk_01C;
/* 020 */ bool mUnk_020;
/* 024 */ unk32 mUnk_024;
/* 028 */ UnkTextStruct1 mUnk_028; //! TODO: confirm
/* 038 */ unk32 mUnk_038;
/* 03C */ unk32 mUnk_03C;
/* 040 */ unk16 mUnk_040;
/* 042 */ unk16 mUnk_042;
/* 044 */ unk16 mUnk_044;
/* 046 */ unk16 mUnk_046;
/* 048 */ unk32 mUnk_048;
/* 04C */ unk32 mUnk_04C;
/* 050 */ CellAnimObject mUnk_050;
/* 0C8 */ CellAnimObject mUnk_0C8;
/* 140 */ unk16 mUnk_140;
/* 142 */ unk16 mUnk_142;
/* 144 */ unk32 mUnk_144;
/* 148 */ unk32 mUnk_148;
/* 14C */ unk16 mUnk_14C;
/* 14E */ unk16 mUnk_14E;
/* 150 */ unk16 mUnk_150;
/* 152 */ unk16 mUnk_152;
/* 154 */ unk32 mUnk_154;
/* 158 */ unk32 mUnk_158;
/* 15C */ bool mUnk_15C;
/* 15D */ bool mUnk_15D;
/* 15E */ STRUCT_PAD(0x15E, 0x160);
/* 160 */ UnkStruct_ov000_020b504c_28_Base_160 mUnk_160;
/* 1E0 */ unk32 mUnk_1E0;
/* 1E4 */ bool mUnk_1E4;
/* 1E5 */ STRUCT_PAD(0x1E5, 0x1E8);
/* 1E8 */ UnkSystem2_UnkSubSystem9 mUnk_1E8;
/* 22C */ UnkSubStruct1 mUnk_22C;
/* 25C */ UnkStruct_ov000_020b504c_28_Base_25C mUnk_25C[15];
/* 310 */ UnkStruct_ov000_020b504c_28_Base_310 mUnk_310[15];
/* 388 */ unk32 mUnk_388;
/* 38C */ unk32 mUnk_38C;
/* 390 */ unk32 mUnk_390;
/* 394 */ unk16 mUnk_394;
/* 396 */ unk8 mUnk_396;
/* 397 */ bool mUnk_397;
/* 398 */ unk32 mUnk_398;
/* 39C */ unk32 mUnk_39C;
/* 3A0 */ unk32 mUnk_3A0;
/* 3A4 */ unk32 mUnk_3A4;
/* 3A8 */ bool mUnk_3A8;
/* 3A9 */ unk8 mUnk_3A9; // pad?
/* 3AA */ unk16 mUnk_3AA;
/* 3AC */ bool mUnk_3AC;
/* 3AD */ STRUCT_PAD(0x3AD, 0x3B8);
/* 3B8 */
UnkStruct_ov000_020b504c_28_Base();
// data_020444e8
/* 00 */ virtual ~UnkStruct_ov000_020b504c_28_Base() override;
/* 08 */ virtual bool vfunc_08() override;
/* 0C */ virtual void vfunc_0C() override;
/* 10 */ virtual void vfunc_10() override;
/* 14 */ virtual void vfunc_14() override;
/* 18 */ virtual void vfunc_18(unk32 param1) override;
/* 1C */ virtual void vfunc_1C() override;
/* 20 */ virtual void vfunc_20();
/* 24 */ virtual void vfunc_24();
/* 28 */ virtual void vfunc_28();
/* 2C */ virtual void vfunc_2C();
/* 30 */ virtual void vfunc_30();
/* 34 */ virtual void vfunc_34();
/* 38 */ virtual void vfunc_38();
/* 3C */ virtual void vfunc_3C();
/* 40 */ virtual void vfunc_40();
/* 44 */ virtual void vfunc_44();
/* 48 */
};
class UnkStruct_ov000_020b504c_28 : public UnkStruct_ov000_020b504c_28_Base {
public:
/* 000 (base) */
/* 3B8 */
UnkStruct_ov000_020b504c_28(unk32 param1);
// data_02044448
/* 00 */ virtual ~UnkStruct_ov000_020b504c_28() override;
};
class UnkStruct_ov000_020b504c_2C : public UnkStruct_ov000_020b504c_28_Base {
public:
/* 000 (base) */
/* 3B8 */
UnkStruct_ov000_020b504c_2C(unk32 param1);
/* 00 */ virtual ~UnkStruct_ov000_020b504c_2C() override;
};
class UnkStruct_ov000_020b504c {
public:
/* 000 */ UnkStruct_ov000_020b504c_Sub3 *mUnk_000;
/* 004 */ GameModeManagerBase_004 *mUnk_004;
/* 008 */ UnkStruct_ov000_020b504c_08 *mUnk_008;
/* 00C */ UnkStruct_ov000_020b504c_0C_Base *mUnk_00C[7];
/* 028 */ UnkStruct_ov000_020b504c_28 *mUnk_028; // pointer to the subsystem that handles drawing the textboxes
/* 02C */ UnkStruct_ov000_020b504c_2C *mUnk_02C;
/* 030 */ unk32 mUnk_030;
/* 034 */ Input mButtons;
/* 03A */ TouchControl mTouchControl;
/* 05C */ unk8 mUnk_05C[0x10];
/* 06C */ unk8 mUnk_06C[2];
/* 06E */ unk8 mUnk_06E;
/* 06F */ bool mUnk_06F;
UnkStruct_ov000_020b504c();
// overlay 0
void *func_ov000_02067bb4(unk32 param1);
UnkStruct_ov000_020b504c_28 *func_ov000_02067bc4(unk32 param1);
unk8 func_ov000_02067cf8(unk32 param1, unk32 param2, UnkTextStruct1 *param3); // ShowText?
void func_ov000_02067e60(u8 param1, unk32 param2);
unk32 func_ov000_020682c0(unk32 param1);
void func_ov000_02067f5c(unk32 param1);
bool 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);
bool func_ov000_0206807c(unk32 param1, void *param2);
void func_ov000_02067b60();
// overlay 1
void func_ov001_020be504(void);
void func_ov001_020be5e8(void);
void func_ov001_020be510(void);
void func_ov001_020be668(void);
void func_ov001_020be6d8(void);
void func_ov001_020be6f4(void);
void func_ov001_020be79c(u32 sceneIndex);
void func_ov001_020be82c(u32 sceneIndex);
void func_ov001_020be880(u32 sceneIndex);
void func_ov001_020be8e0(void);
void func_ov001_020be92c(UnkStruct_027e0cd8_04_0C *param1);
void func_ov001_020be94c(void);
void func_ov001_020be998(void);
void func_ov001_020be9fc(void);
void func_ov001_020bea2c(void);
};
// gMessageManager?
extern UnkStruct_ov000_020b504c data_ov000_020b504c;
struct UnkMsgDataStruct1 {
unk32 mUnk_00;
void func_ov000_02067a60(void *, int);
};
+28 -8
View File
@@ -5,13 +5,26 @@
class EntranceInfo;
//! TODO: use AutoInstance
class UnkStruct_ov018_020c5ac0 {
public:
/* 00 */ unk8 mUnk_00;
/* 00 */ unk8 mUnk_01;
/* 00 */ unk16 mUnk_02;
/* 00 */ bool mUnk_00;
/* 00 */ bool mUnk_01;
/* 00 */ u16 mUnk_02;
/* 04 */
// overlay 0
void func_ov000_0206f61c(unk32 param1);
// overlay 1
void func_ov001_020bde6c();
void func_ov001_020bde7c();
void func_ov001_020bde90(const EntranceInfo *param1);
void func_ov001_020bdfa0(const EntranceInfo *param1);
void func_ov001_020bdfb8(const EntranceInfo *param1);
void func_ov001_020be030();
// overlay 18
UnkStruct_ov018_020c5ac0();
void SetInstance();
@@ -46,26 +59,33 @@ public:
UnkStruct_ov000_020b50c0();
// overlay 0
void func_ov000_02069c78(void);
void func_ov000_02069d3c(unk32 param1);
void func_ov000_02069d7c(unk32 param1);
void func_ov000_02069f58(void);
void func_ov000_0206a014(void);
void func_ov000_0206a260(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0206a52c(unk32 param1);
bool func_ov000_0206a5cc(unk32 param1);
void *func_ov000_0206a5d8(unk32 param1);
void func_ov000_0206a5fc(void);
void func_ov000_0206a6a4(unk32 param1);
void func_ov000_0206a704(unk32 param1);
void func_ov000_0206a740(void);
void func_ov000_0206a758(void);
void func_ov000_0206a77c(void);
void func_ov000_0206a014(void);
// overlay 1
void func_ov001_020bd854();
void func_ov001_020bd854(void);
void func_ov001_020bd87c(void);
void func_ov001_020bd8dc(void);
void func_ov001_020bd8ac(void);
void func_ov001_020bd970(EntranceInfo *param1);
void func_ov001_020bd8dc(void);
void func_ov001_020bd8e8(void);
void func_ov001_020bd910(void);
void func_ov001_020bd934(bool param1);
void func_ov001_020bd970(const EntranceInfo *param1);
void func_ov001_020bde5c(void);
void func_ov001_020bde04(EntranceInfo *param1);
void func_ov001_020bde04(const EntranceInfo *param1);
void func_ov001_020bde4c(const EntranceInfo *param1);
// overlay 18
@@ -62,6 +62,7 @@ public:
UnkStruct_ov000_020b51b8();
~UnkStruct_ov000_020b51b8();
// overlay 0
void func_ov000_0206c608(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_0206c96c(unk32 param1);
void func_ov000_0206c9a8(unk32 param1, unk32 param2, unk32 param3, unk32 param4);
@@ -70,6 +71,11 @@ public:
void func_ov000_0206d134(unk32 param1);
void func_ov000_0206d274(unk32 param1); // play seq?
// overlay 1
void func_ov000_0206bbfc(unk32 param1);
void func_ov000_0206c4ec(unk32 param1);
// overlay 18
void func_ov018_020c5940();
};
@@ -45,8 +45,11 @@ public:
UnkStruct_ov000_020b5214();
void func_ov000_0206d43c();
void func_ov000_0206d6b4(unk32 param1, unk32 param2);
void func_ov000_0206d83c(unk32 param1);
void func_ov000_0206d960();
void func_ov000_0206d984();
void func_ov000_0206db44(unk32 param1); // play sfx?
void func_ov000_0206dc4c(unk32 param1);
void func_ov000_0206e7e8(unk32 param1);
@@ -19,6 +19,7 @@ public:
// overlay 0
ActorUnkMLCK_B4_00 *func_ov000_0206f980(unk32 param1);
void func_ov000_0206f994();
};
extern UnkStruct_ov000_020b52e8 data_ov000_020b52e8;
+1 -1
View File
@@ -49,7 +49,6 @@ public:
~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);
@@ -59,6 +58,7 @@ public:
void func_ov024_020c4d88(ActorId actorId, unk32 param2);
void func_ov024_020c4dac(ActorId actorId, unk32 param2, UnkActorSystem_Infos1 *param3);
static void func_ov024_020c4ac0();
static void SetInstance(UnkStruct_ov024_020d8660 *pInstance);
static bool ClearInstance();
};
+4 -4
View File
@@ -24,11 +24,11 @@ public:
/* 00 */ UnkStruct_ov024_020d86a0_00 *mUnk_00;
/* 04 */ unk32 mUnk_04;
/* 08 */ unk32 mUnk_08;
/* 0C */ unk8 mUnk_0C;
/* 0D */ unk8 mUnk_0D;
/* 0E */ unk8 mUnk_0E;
/* 0C */ bool mUnk_0C;
/* 0D */ bool mUnk_0D;
/* 0E */ bool mUnk_0E;
/* 0F */ bool mUnk_0F;
/* 10 */ unk8 mUnk_10;
/* 10 */ bool mUnk_10;
/* 11 */ bool mUnk_11;
/* 14 */
+20 -20
View File
@@ -45,14 +45,14 @@ public:
class UnkSystem1_ov000_Derived1 : public UnkSystem1_ov000_Base {
public:
/* 00 (base) */
/* 0C */ UnkStruct_ov000_02067bc4::UnkStruct1 *mUnk_0C;
/* 0C */ UnkTextStruct1 *mUnk_0C;
/* 10 */ unk16 mUnk_10;
/* 12 */ unk8 mUnk_12; // file slot index
/* 13 */ unk8 mUnk_13;
/* 14 */
UnkSystem1_ov000_Derived1();
UnkSystem1_ov000_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov000_Derived1(unk32 param1, UnkTextStruct1 *param2);
void func_ov000_0206738c();
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov000_020673c8
@@ -107,7 +107,7 @@ class UnkSystem1_ov010 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov010(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov010(unk32 param1, UnkTextStruct1 *param2);
/* 08 */ virtual void vfunc_08(unk32 param1) override; // func_ov010_020b8844
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override; // func_ov010_020b8878
@@ -118,7 +118,7 @@ class UnkSystem1_ov010_Derived1 : public UnkSystem1_ov010 {
public:
/* 00 (base) */
UnkSystem1_ov010_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov010_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov010_Derived1() override; // func_ov010_020b88b0
};
@@ -127,7 +127,7 @@ class UnkSystem1_ov016 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov016(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov016(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov016() override; // func_ov016_020b7650
};
@@ -136,7 +136,7 @@ class UnkSystem1_ov016_Derived1 : public UnkSystem1_ov016 {
public:
/* 00 (base) */
UnkSystem1_ov016_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov016_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov016_Derived1() override; // func_ov016_020b7664
/* 2C */ virtual void vfunc_2C(); // func_ov016_020b776c
};
@@ -147,7 +147,7 @@ public:
/* 00 (base) */
UnkSystem1_ov019_1();
UnkSystem1_ov019_1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2) :
UnkSystem1_ov019_1(unk32 param1, UnkTextStruct1 *param2) :
UnkSystem1_ov000_Derived1(param1, param2) {}
/* 24 */ virtual ~UnkSystem1_ov019_1() override {} // func_ov019_020c4914
@@ -163,7 +163,7 @@ public:
/* 1C */
UnkSystem1_ov019_Derived1();
UnkSystem1_ov019_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov019_Derived1(unk32 param1, UnkTextStruct1 *param2);
void func_ov019_020c5200();
unk32 func_ov019_020c5540(bool param1, unk16 param2);
@@ -179,7 +179,7 @@ class UnkSystem1_ov019_2 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov019_2(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2) :
UnkSystem1_ov019_2(unk32 param1, UnkTextStruct1 *param2) :
UnkSystem1_ov000_Derived1(param1, param2) {}
/* 24 */ virtual ~UnkSystem1_ov019_2() override {} // func_ov019_020c4c38
@@ -208,7 +208,7 @@ public:
/* 00 (base) */
/* 14 */
UnkSystem1_ov019_3(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2) :
UnkSystem1_ov019_3(unk32 param1, UnkTextStruct1 *param2) :
UnkSystem1_ov000_Derived1(param1, param2) {}
/* 24 */ virtual ~UnkSystem1_ov019_3() override {} // func_ov019_020c5fd0
@@ -243,7 +243,7 @@ class UnkSystem1_ov036 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov036(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov036(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov036() override; // func_ov036_0211eb68
};
@@ -252,7 +252,7 @@ class UnkSystem1_ov036_Derived1 : public UnkSystem1_ov036 {
public:
/* 00 (base) */
UnkSystem1_ov036_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov036_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov036_Derived1() override; // func_ov036_02120c18
};
@@ -262,7 +262,7 @@ class UnkSystem1_ov056 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov056(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov056(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov056() override; // func_ov056_0213b910
};
@@ -271,7 +271,7 @@ class UnkSystem1_ov056_Derived1 : public UnkSystem1_ov056 {
public:
/* 00 (base) */
UnkSystem1_ov056_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov056_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov056_Derived1() override; // func_ov056_0213d4dc
};
@@ -281,7 +281,7 @@ class UnkSystem1_ov059 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov059(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov059(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov059() override; // func_ov059_021605c8 (?)
};
@@ -290,7 +290,7 @@ class UnkSystem1_ov059_Derived1 : public UnkSystem1_ov059 {
public:
/* 00 (base) */
UnkSystem1_ov059_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov059_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov059_Derived1() override; // func_ov059_02160d98
};
@@ -300,7 +300,7 @@ class UnkSystem1_ov062 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov062(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov062(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov062() override; // func_ov062_0215cf18
};
@@ -309,7 +309,7 @@ class UnkSystem1_ov062_Derived1 : public UnkSystem1_ov062 {
public:
/* 00 (base) */
UnkSystem1_ov062_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov062_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov062_Derived1() override; // func_ov062_0215e734
};
@@ -319,7 +319,7 @@ class UnkSystem1_ov063 : public UnkSystem1_ov000_Derived1 {
public:
/* 00 (base) */
UnkSystem1_ov063(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov063(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov063() override; // func_ov063_0215f1c0
};
@@ -328,7 +328,7 @@ class UnkSystem1_ov063_Derived1 : public UnkSystem1_ov063 {
public:
/* 00 (base) */
UnkSystem1_ov063_Derived1(unk32 param1, UnkStruct_ov000_02067bc4::UnkStruct1 *param2);
UnkSystem1_ov063_Derived1(unk32 param1, UnkTextStruct1 *param2);
/* 24 */ virtual ~UnkSystem1_ov063_Derived1() override; // func_ov063_0215f29c
};
+92 -10
View File
@@ -20,6 +20,7 @@ enum FileType_ {
FileType_ZMBv2 = 'ZMB2',
FileType_CIB = 'ZCIB',
FileType_CLB = 'ZCLB',
FileType_ZCB = 'ZCB1',
};
typedef struct FileInfos {
@@ -238,19 +239,19 @@ extern BOOL ZAB_GetRoomEntry(FileInfos *pFileInfos, u8 param2, const CourseListE
// .zmb
typedef u32 ZMBSectionType;
enum ZMBSectionType_ {
enum ZMBSectionType_ { // clang-format off
ZMBSectionType_ROMB = 'ROMB', // unknown
ZMBSectionType_ROOM = 'ROOM', // room settings
ZMBSectionType_LDLB = 'LDLB', // related to script triggers
ZMBSectionType_MapObjects = 'MPOB', // map object list, parameters are stored here
ZMBSectionType_ARAB = 'ARAB', // locations? (?)
ZMBSectionType_RALB = 'RALB', // paths?
ZMBSectionType_NPCA = 'NPCA', // actor list, same as above
ZMBSectionType_PLYR = 'PLYR', // player entrances?
ZMBSectionType_WARP = 'WARP', // exits?
ZMBSectionType_CAME = 'CAME', // camera settings?
ZMBSectionType_CMPT = 'CMPT', // ?
};
ZMBSectionType_MapObjects = 'MPOB', // map object list
ZMBSectionType_ARAB = 'ARAB', // "area block", used to define an area (X1-X2-Y1-Y2 for a cubic area, or can simply be a radius)
ZMBSectionType_RALB = 'RALB', // "rail block", paths
ZMBSectionType_NPCA = 'NPCA', // actor list
ZMBSectionType_PLYR = 'PLYR', // player entrances?
ZMBSectionType_WARP = 'WARP', // exits?
ZMBSectionType_CAME = 'CAME', // camera settings (like fixed camera points used by shops for instance)
ZMBSectionType_CMPT = 'CMPT', // ?
}; // clang-format on
typedef struct ZMBFileInfos {
/* 00 */ void *pFile;
@@ -478,6 +479,87 @@ extern BOOL ZMB_ParsePLYR(ZMBFileInfos *pFileInfos, ZMBSectionPLYR *pPLYR, UnkSt
extern BOOL ZMB_ParseCAME(ZMBFileInfos *pFileInfos, ZMBSectionCAME *pCAME, UnkStruct_027e0cd8_0C_Base *pDst);
extern BOOL ZMB_ParseCMPT(ZMBFileInfos *pFileInfos, ZMBSectionCMPT *pCMPT, UnkStruct_027e0cd8_0C_Base *pDst);
// .zcb
struct UnkStruct_027e09e8;
struct UnkFileSystem1;
typedef u32 ZCBSectionType;
enum ZCBSectionType_ {
ZCBSectionType_VTXB = 'VTXB', // vertices
ZCBSectionType_NRMB = 'NRMB', // normals
ZCBSectionType_PCLB = 'PCLB', // polygon classes
ZCBSectionType_TRIB = 'TRIB', // triangles
ZCBSectionType_GRDB = 'GRDB', // grid
};
typedef struct ZCBFileInfos {
/* 00 */ UnkFileSystem1 *pFile;
/* 04 */ size_t size;
} ZCBFileInfos;
typedef struct ZCBHeader {
/* 00 */ u32 magic; // 'BLCM'
/* 04 */ FileType type; // always "ZCB1"
/* 08 */ size_t nSize;
/* 0C */ u32 nSections;
/* 10 */ u8 unused[0x10];
} ZCBHeader; // size = 0x20
typedef struct ZCBSectionHeader {
/* 00 */ ZCBSectionType type;
/* 04 */ size_t nSize;
/* 08 */ u16 nEntries;
/* 0A */ u8 unk_0A;
/* 0B */ u8 unk_0B;
} ZCBSectionHeader; // size = 0x0C
typedef struct ZCBSectionVTXB {
/* 00 */ ZCBSectionHeader header;
/* 0C */ VecFx32 entries[];
} ZCBSectionVTXB;
typedef struct ZCBEntryNRMB {
/* 00 */ unk32 unk_00;
/* 04 */ unk16 unk_04;
} ZCBEntryNRMB; // size = 0x06
typedef struct ZCBSectionNRMB {
/* 00 */ ZCBSectionHeader header;
/* 0C */ ZCBEntryNRMB entries[];
} ZCBSectionNRMB;
typedef struct ZCBEntryPLCB {
/* 00 */ unk32 unk_00;
} ZCBEntryPLCB; // size = 0x04
typedef struct ZCBSectionPCLB {
/* 00 */ ZCBSectionHeader header;
/* 0C */ ZCBEntryPLCB entries[];
} ZCBSectionPCLB;
typedef struct ZCBEntryTRIB {
/* 00 */ unk32 unk_00;
} ZCBEntryTRIB; // size = ?
typedef struct ZCBSectionTRIB {
/* 00 */ ZCBSectionHeader header;
/* 0C */ ZCBEntryTRIB entries[];
} ZCBSectionTRIB;
typedef struct ZCBSectionGRDB {
/* 00 */ ZCBSectionHeader header;
/* 0C */
} ZCBSectionGRDB;
extern BOOL ZCB_ParseFile(ZCBFileInfos *pFileInfos, UnkStruct_027e09e8 *pDst, UnkStruct_027e0cd8_0C_Base *param3);
extern void ZCB_ParseVTXB(ZCBFileInfos *pFileInfos, ZCBSectionVTXB *pSection, UnkStruct_027e09e8 *pDst,
UnkStruct_027e0cd8_0C_Base *param3);
extern void ZCB_ParseNRMB(ZCBFileInfos *pFileInfos, ZCBSectionNRMB *pSection, UnkStruct_027e09e8 *pDst);
extern void ZCB_ParsePCLB(ZCBFileInfos *pFileInfos, ZCBSectionPCLB *pSection, UnkStruct_027e09e8 *pDst);
extern void ZCB_ParseTRIB(ZCBFileInfos *pFileInfos, ZCBSectionTRIB *pSection, UnkStruct_027e09e8 *pDst);
extern void ZCB_ParseGRDB(ZCBFileInfos *pFileInfos, ZCBSectionGRDB *pSection, UnkStruct_027e09e8 *pDst,
UnkStruct_027e0cd8_0C_Base *param3);
#ifdef __cplusplus
} // extern "C"
#endif
+2 -2
View File
@@ -28,9 +28,9 @@ public:
}
// allocate the list and run the constructors for each element
void Init(size_t arrayLength) {
void Init(size_t arrayLength, size_t factor = 4) {
this->Destroy();
this->Set(arrayLength * 4);
this->Set(arrayLength * factor);
if (this->begin != this->end) {
T *it = (T *) this->begin;