mirror of
https://github.com/zeldaret/st
synced 2026-06-28 19:00:54 -04:00
Decompile overlay 1 (Part 2) (#91)
* UnkStruct_027e09b8_001 OK * match func_ov001_020b7830 * fix build issues * UnkStruct_027e0cd8_001 49% * UnkStruct_027e0cd8_001 OK * fix build issues * UnkStruct_027e0cd8_0C_001 92% * port some MSL C++ headers from rb3 and key decomps * fix build issues * UnkStruct_027e0cd8_0C_001 98%
This commit is contained in:
@@ -9,12 +9,6 @@
|
||||
|
||||
class UnkStruct_SceneChange1;
|
||||
|
||||
struct UnkStruct_func_ov001_020bb018_param2 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x08);
|
||||
/* 08 */ u16 mUnk_08;
|
||||
/* 08 */ u16 mUnk_0A;
|
||||
};
|
||||
|
||||
class ActorManager : public AutoInstance<ActorManager> {
|
||||
public:
|
||||
/* 00 */ Actor **mActorTable;
|
||||
@@ -55,7 +49,8 @@ public:
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bafdc();
|
||||
void func_ov001_020bb018(UnkStruct_func_ov001_020bb018_param2 *param1);
|
||||
void func_ov001_020bb018(ZOBHeader *pHeader);
|
||||
void func_ov001_020bb414();
|
||||
void func_ov001_020bb488();
|
||||
void func_ov001_020bb548();
|
||||
void func_ov001_020bb630();
|
||||
@@ -65,7 +60,6 @@ public:
|
||||
|
||||
static ActorManager *Create();
|
||||
static void Destroy();
|
||||
static void func_ov001_020bb414(ActorManager *instance);
|
||||
static bool func_ov001_020bb728(s32 param1);
|
||||
static void func_ov001_020bb824();
|
||||
static void func_ov001_020bb844();
|
||||
|
||||
@@ -67,7 +67,7 @@ struct CutsceneParamsEntry {
|
||||
/* 0B */ u8 mNextCutsceneIndex;
|
||||
/* 0C */ bool mNextIsCS; // doesn't makes sense with the array's data
|
||||
/* 0C */ bool mUnk_0D;
|
||||
/* 0E */ unk16 mUnk_0E;
|
||||
/* 0E */ u16 mUnk_0E;
|
||||
/* 10 */ AdventureFlag_Half mFlag;
|
||||
/* 12 */ unk16 mUnk_12; // pad?
|
||||
/* 14 */ u32 mUnk_14;
|
||||
|
||||
@@ -166,7 +166,7 @@ public:
|
||||
// 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(u32 param1, u8 param2, unk16 param3, unk16 param4);
|
||||
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4);
|
||||
/* 3C */ virtual void vfunc_3C();
|
||||
/* 40 */ virtual void vfunc_40();
|
||||
/* 44 */ virtual void vfunc_44();
|
||||
|
||||
@@ -953,7 +953,7 @@ public:
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1) override;
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1, unk32 param2) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) override;
|
||||
|
||||
void func_ov001_020c08b8();
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "Unknown/UnkStruct_ov000_020b34c4.hpp"
|
||||
#include "files.h"
|
||||
#include "types.h"
|
||||
|
||||
#include "math.hpp"
|
||||
@@ -33,7 +34,6 @@ public:
|
||||
MapObject *func_01fff498(Vec2b param1);
|
||||
void func_01fff4cc(UnkCallback_func_01fff4cc param1, void *param2);
|
||||
MapObject **func_01fff520(UnkStruct_ov000_020b34c4 *param1, MapObject **param2);
|
||||
void func_01fff6d0(VecFx32 *param1, s32 *param2, s32 *param3);
|
||||
|
||||
// overlay 0
|
||||
MapObjectId func_ov000_0209c3a8(Vec2b *param1);
|
||||
@@ -43,6 +43,17 @@ public:
|
||||
static void func_ov000_0209c490();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bac9c();
|
||||
void func_ov001_020bacd8(ZOBHeader *pHeader);
|
||||
void func_ov001_020bad80();
|
||||
void func_ov001_020bada0();
|
||||
void func_ov001_020badb4();
|
||||
void func_ov001_020bade0();
|
||||
void func_ov001_020baea0(Vec2s *param1);
|
||||
void func_ov001_020bae40(ZeldaObjectList *pObjList);
|
||||
void func_ov001_020bae6c();
|
||||
void func_ov001_020baf28();
|
||||
|
||||
static MapObjectManager *Create();
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
struct AABB {
|
||||
VecFx32 min;
|
||||
VecFx32 max;
|
||||
};
|
||||
@@ -110,8 +110,8 @@ struct SaveInventory {
|
||||
};
|
||||
|
||||
struct SaveFile_00000_0000_Data_158 {
|
||||
/* 00 */ unk8 unk_00[0x0C];
|
||||
/* 0C */ unk8 unk_0C[0x20];
|
||||
/* 00 */ u32 unk_00[3];
|
||||
/* 0C */ u32 unk_0C[8];
|
||||
/* 2C */
|
||||
|
||||
SaveFile_00000_0000_Data_158() {
|
||||
|
||||
@@ -52,7 +52,7 @@ public:
|
||||
/* 218 */ SaveFile *mpSaveFile;
|
||||
/* 21C */ SaveFile_00000_0000_Data_D9C mUnk_21C;
|
||||
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
|
||||
/* 244 */ unk32 mUnk_244;
|
||||
/* 244 */ void *mUnk_244;
|
||||
|
||||
bool IsUnk20A() {
|
||||
return this->mUnk_20A == 0;
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <new>
|
||||
#include <stddef.h>
|
||||
|
||||
#define GAME_ASSERT(cond, line, msg, ...) \
|
||||
@@ -35,12 +36,6 @@ enum HeapIndex_ {
|
||||
|
||||
void *operator new(size_t length, u32 id, u32 idLength = 4);
|
||||
void *operator new[](size_t length, u32 id, u32 idLength = 4);
|
||||
void operator delete[](void *ptr);
|
||||
|
||||
inline void *operator new(size_t length, void *ptr = nullptr) {
|
||||
#pragma unused(length)
|
||||
return ptr;
|
||||
}
|
||||
|
||||
class UnkStruct_02011e10_Sub1 {
|
||||
public:
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual void vfunc_28(unk8 *param1) override;
|
||||
/* 2C */ virtual void DrawUI(unk8 *param1) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 param1, u8 param2, unk16 param3, unk16 param4) override;
|
||||
/* 38 */ virtual void vfunc_38(u32 sceneIndex, u8 roomIndex, unk16 param3, unk16 param4) override;
|
||||
|
||||
static TitleScreenManager *Create(unk32 param1);
|
||||
};
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Animation/CellAnimObject.hpp"
|
||||
#include "Game/GameModeManager.hpp"
|
||||
#include "LinkList.hpp"
|
||||
#include "System/SysNew.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "global.h"
|
||||
@@ -850,6 +851,7 @@ public:
|
||||
~UnkSystem3();
|
||||
|
||||
void func_02015410(const char *path, unk32 param2);
|
||||
void func_0201541c(const char *param1, unk32 param2);
|
||||
void func_02015460(const char *param1, void *param2, unk32 param3);
|
||||
};
|
||||
|
||||
@@ -1275,3 +1277,13 @@ struct TrainSpeedPreset {
|
||||
/* 3C */ fx32 unk_3C;
|
||||
/* 40 */
|
||||
};
|
||||
|
||||
class UnkSystem8 : public LinkList<UnkSystem8> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
/* 0C */
|
||||
|
||||
// data_ov000_020b2940
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
|
||||
@@ -11,6 +11,7 @@ public:
|
||||
~UnkStruct_02049bac();
|
||||
|
||||
void func_02014a34(void *param1);
|
||||
u64 func_02014b00();
|
||||
};
|
||||
|
||||
// some time system?
|
||||
|
||||
@@ -291,6 +291,8 @@ public:
|
||||
void func_ov001_020bd58c(void);
|
||||
void func_ov001_020bd638(void);
|
||||
void func_ov001_020bd5b0(void);
|
||||
void func_ov001_020bd678(void);
|
||||
void func_ov001_020bd68c(void);
|
||||
|
||||
// overlay 18
|
||||
void func_ov018_020c5300(void);
|
||||
|
||||
@@ -74,8 +74,10 @@ public:
|
||||
static UnkStruct_027e0960 *Create();
|
||||
|
||||
// overlay 1
|
||||
void func_ov000_0205a164();
|
||||
void func_ov000_0205a11c();
|
||||
void func_ov000_0205a120();
|
||||
void func_ov000_0205a160();
|
||||
void func_ov000_0205a164();
|
||||
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
@@ -4,10 +4,13 @@
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "files.h"
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
struct UnkStruct_func_ov000_020702a8 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x20);
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x10);
|
||||
/* 10 */ Vec2s mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x20);
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
};
|
||||
|
||||
@@ -30,11 +33,12 @@ public:
|
||||
~UnkStruct_027e09a0();
|
||||
|
||||
CourseListEntry *GetCourseEntry(u32 sceneIndex);
|
||||
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(unk32 param1);
|
||||
UnkStruct_func_ov000_020702a8 *func_ov000_020702a8(u32 sceneIndex);
|
||||
unk32 GetRoomEntryIndex();
|
||||
CourseListRoomEntry *GetRoomEntry(u32 sceneIndex, unk32 param2);
|
||||
u32 GetSceneIndexFromName(const char *sceneName);
|
||||
bool func_ov000_02070378(u32 param1);
|
||||
void func_ov000_02070310(u32 sceneIndex, u8 roomIndex, void *param3);
|
||||
|
||||
// overlay 1
|
||||
void InitCourseTable();
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include "iterator.hpp"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/mi.h>
|
||||
|
||||
struct SaveFile;
|
||||
class UnkStruct_027e09a4;
|
||||
|
||||
@@ -60,6 +62,10 @@ struct UnkStruct_SceneChange1 {
|
||||
this->mUnk_10 = 0;
|
||||
}
|
||||
|
||||
UnkStruct_SceneChange1(const UnkStruct_SceneChange1 *pSource) {
|
||||
MI_CpuCopy32((void *) pSource, this, sizeof(UnkStruct_SceneChange1));
|
||||
}
|
||||
|
||||
UnkStruct_SceneChange1(s32) {}
|
||||
};
|
||||
|
||||
|
||||
@@ -79,7 +79,7 @@ public:
|
||||
~UnkStruct_027e09ac();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020726f0(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_020726f0(u16 param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_020729c4(UnkStruct_027e09ac_14 *param1, u16 param2, u16 param3, s16 param4, s16 param5);
|
||||
|
||||
// overlay 1
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09b0 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
UnkStruct_027e09b0();
|
||||
~UnkStruct_027e09b0();
|
||||
|
||||
void func_ov000_02072cc4(unk32 param1, unk32 param2);
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09b0 *data_027e09b0;
|
||||
@@ -3,6 +3,8 @@
|
||||
#include "Cutscene/Cutscene.hpp"
|
||||
#include "MapObject/MapObject.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a4.hpp"
|
||||
#include "Unknown/UnkSystem1.hpp"
|
||||
#include "types.h"
|
||||
#include "versions.h"
|
||||
|
||||
@@ -22,60 +24,135 @@ public:
|
||||
/* FD4 */
|
||||
|
||||
UnkStruct_027e09b8_00();
|
||||
~UnkStruct_027e09b8_00();
|
||||
|
||||
void func_ov000_02073b5c();
|
||||
void func_ov000_02073bc0();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_04 {
|
||||
class UnkStruct_027e09b8_04_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x64);
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_027e09b8_04_Base();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10() = 0;
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_04 : public UnkStruct_027e09b8_04_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x14);
|
||||
/* 14 */ UnkStruct_0204a060_Base mUnk_14;
|
||||
/* 38 */ UnkStruct_WarpUnk1_50 mUnk_38;
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
/* 64 */
|
||||
|
||||
UnkStruct_027e09b8_04();
|
||||
~UnkStruct_027e09b8_04();
|
||||
UnkStruct_027e09b8_04() {
|
||||
this->vfunc_0C();
|
||||
}
|
||||
|
||||
// data_ov000_020b22c0
|
||||
/* 00 */ virtual ~UnkStruct_027e09b8_04() override;
|
||||
/* 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() override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_08 {
|
||||
class UnkStruct_027e09b8_08 : public UnkStruct_027e09b8_04_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x00);
|
||||
/* 00 */
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x30);
|
||||
/* 30 */
|
||||
|
||||
UnkStruct_027e09b8_08();
|
||||
UnkStruct_027e09b8_08(void *param1);
|
||||
~UnkStruct_027e09b8_08();
|
||||
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_0C {
|
||||
class UnkStruct_027e09b8_0C : public UnkStruct_027e09b8_04_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0xC4);
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x0C);
|
||||
/* 0C */ UnkSystem1_ov000_Derived3 mUnk_0C;
|
||||
/* 20 */ STRUCT_PAD(0x20, 0x98);
|
||||
/* 98 */ UnkStruct_WarpUnk1_50 mUnk_98;
|
||||
/* C0 */ unk32 mUnk_C4;
|
||||
/* C4 */ MapObjectId mMapObjId;
|
||||
/* C8 */
|
||||
|
||||
UnkStruct_027e09b8_0C();
|
||||
~UnkStruct_027e09b8_0C();
|
||||
UnkStruct_027e09b8_0C() {
|
||||
this->vfunc_0C();
|
||||
}
|
||||
|
||||
// data_ov000_020b234c
|
||||
/* 00 */ virtual ~UnkStruct_027e09b8_0C() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_10 {
|
||||
class UnkStruct_027e09b8_10 : public UnkStruct_027e09b8_04_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x18);
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x18);
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_027e09b8_10();
|
||||
~UnkStruct_027e09b8_10();
|
||||
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8_98 {
|
||||
public:
|
||||
/* 0000 */ STRUCT_PAD(0x00, 0x151C);
|
||||
/* 151C */
|
||||
|
||||
UnkStruct_027e09b8_98();
|
||||
~UnkStruct_027e09b8_98();
|
||||
|
||||
void func_ov000_020a7b34();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09b8 : public AutoInstance<UnkStruct_027e09b8> {
|
||||
public:
|
||||
/* 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;
|
||||
/* 04 */ UnkStruct_027e09b8_04_Base *mUnk_04[4];
|
||||
/* 14 */ u32 mAdventureFlags[32]; //! TODO
|
||||
#if IS_JP
|
||||
//! TODO: figure out if the other versions got these too
|
||||
/* 94 */ u16 mUnk_94;
|
||||
#endif
|
||||
/* 96 */ bool mUnk_96;
|
||||
/* 97 */ bool mUnk_97;
|
||||
/* 98 */ UnkStruct_027e09b8_98 *mUnk_98;
|
||||
/* 9C */
|
||||
|
||||
UnkStruct_027e09b8_04 *GetUnk04() {
|
||||
return (UnkStruct_027e09b8_04 *) this->mUnk_04[0];
|
||||
}
|
||||
|
||||
UnkStruct_027e09b8_08 *GetUnk08() {
|
||||
return (UnkStruct_027e09b8_08 *) this->mUnk_04[1];
|
||||
}
|
||||
|
||||
UnkStruct_027e09b8_0C *GetUnk0C() {
|
||||
return (UnkStruct_027e09b8_0C *) this->mUnk_04[2];
|
||||
}
|
||||
|
||||
UnkStruct_027e09b8_10 *GetUnk10() {
|
||||
return (UnkStruct_027e09b8_10 *) this->mUnk_04[3];
|
||||
}
|
||||
|
||||
bool HasAdventureFlag(AdventureFlag flag) {
|
||||
return GET_FLAG(this->mAdventureFlags, flag);
|
||||
@@ -92,18 +169,21 @@ public:
|
||||
unk32 func_ov000_020732fc(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);
|
||||
void func_ov000_0207332c();
|
||||
unk32 func_ov000_02073388(void *param1, unk32 param2);
|
||||
unk32 func_ov000_02073470(void *param1, unk32 param2);
|
||||
void func_ov000_02073578(void *param1, unk32 param2);
|
||||
void func_ov000_02073610(void *param1, unk32 param2);
|
||||
|
||||
#if IS_JP
|
||||
void func_ov000_02074d78(unk32 param1);
|
||||
#endif
|
||||
|
||||
// overlay 1
|
||||
void ImportAdventureFlags(AdventureFlag *pAdventureFlags);
|
||||
void func_ov001_020b76c0(CutsceneIndex csIndex);
|
||||
void func_ov001_020b7700();
|
||||
void func_ov001_020b7728();
|
||||
|
||||
static UnkStruct_027e09b8 *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
@@ -20,13 +21,20 @@ public:
|
||||
/* 04 */ UnkStruct_027e09bc_0C *mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ UnkStruct_027e09bc_0C *mUnk_0C;
|
||||
/* 10 */ STRUCT_PAD(0x10, 0x48);
|
||||
/* 48 */ UnkSystem8 mUnk_48;
|
||||
|
||||
UnkStruct_027e09bc();
|
||||
~UnkStruct_027e09bc();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020771c8();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020babc8();
|
||||
void func_ov001_020bab5c();
|
||||
void func_ov001_020babc8();
|
||||
void func_ov001_020babe8();
|
||||
void func_ov001_020bac08();
|
||||
|
||||
static UnkStruct_027e09bc *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
|
||||
#include "Actor/ActorRef.hpp"
|
||||
#include "Actor/ActorShotArrow.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base;
|
||||
|
||||
class UnkStruct_027e09c0 : public AutoInstance<UnkStruct_027e09c0> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
@@ -13,11 +16,14 @@ public:
|
||||
~UnkStruct_027e09c0();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_0207da40();
|
||||
void func_ov000_0207e58c(ActorRef param1, unk32 param2, u8 param3, ActorShotArrow_194 *param4);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020be3c4();
|
||||
void func_ov001_020be394();
|
||||
void func_ov001_020be3c4();
|
||||
void func_ov001_020be3dc(UnkFileSystem3 *param1, UnkStruct_027e0cd8_0C_Base *param2);
|
||||
void func_ov001_020be400();
|
||||
|
||||
static UnkStruct_027e09c0 *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -5,108 +5,295 @@
|
||||
#include "types.h"
|
||||
|
||||
#include "MapObject/MapObjectManager.hpp"
|
||||
#include "Render/ModelRender.hpp"
|
||||
#include "Save/SaveFile.hpp"
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "Unknown/UnkStruct_027e09a4.hpp"
|
||||
|
||||
class MapObject_20;
|
||||
#include <algorithm>
|
||||
#include <vector>
|
||||
|
||||
class UnkStruct_027e0cd8_0c_160 {
|
||||
class MapObject_20;
|
||||
class UnkStruct_027e0cd8;
|
||||
|
||||
template <typename T> class FixedVector {
|
||||
private:
|
||||
/* 00 */ T *mpBegin;
|
||||
/* 04 */ T *mpEnd;
|
||||
/* 08 */ size_t mCapacity;
|
||||
|
||||
public:
|
||||
FixedVector() :
|
||||
mpBegin(NULL),
|
||||
mpEnd(NULL),
|
||||
mCapacity(0) {}
|
||||
|
||||
void Init(T *pFrom, size_t capacity) {
|
||||
this->mpBegin = pFrom;
|
||||
this->mpEnd = pFrom;
|
||||
this->mCapacity = capacity;
|
||||
}
|
||||
|
||||
T *begin() {
|
||||
return this->mpBegin;
|
||||
}
|
||||
|
||||
T *end() {
|
||||
return this->mpEnd;
|
||||
}
|
||||
|
||||
void grow_by(int n) {
|
||||
this->mpEnd += n;
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_ov001_020c40f4 {
|
||||
public:
|
||||
/* 00 */ VecFx32 mUnk_00;
|
||||
/* 0C */ unk16 mUnk_0C;
|
||||
/* 0E */ u8 mUnk_0E;
|
||||
/* 0F */ u8 mUnk_0F;
|
||||
/* 10 */ unk32 mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_ov001_020c40f4() {
|
||||
this->mUnk_0E = -1;
|
||||
this->mUnk_0F = 0;
|
||||
this->mUnk_10 = 0;
|
||||
this->mUnk_14 = 0;
|
||||
}
|
||||
|
||||
~UnkStruct_ov001_020c40f4() {}
|
||||
|
||||
public:
|
||||
struct Predicate {
|
||||
unk32 type;
|
||||
unk32 id;
|
||||
Predicate(unk32 t, unk32 i) :
|
||||
type(t),
|
||||
id(i) {}
|
||||
|
||||
bool operator()(const UnkStruct_ov001_020c40f4 &elem) const {
|
||||
return type == elem.mUnk_0E && id == elem.mUnk_14;
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_160 {
|
||||
public:
|
||||
bool func_ov026_02106aa8();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0c {
|
||||
class UnkStruct_027e0cd8_0C_Base_88 {
|
||||
public:
|
||||
/* 00 */ VecFx32 mUnk_00;
|
||||
/* 0C */ bool mUnk_0C;
|
||||
/* 0D */ unk8 mUnk_0D; // pad?
|
||||
/* 0E */ unk8 mUnk_0E; // pad?
|
||||
/* 0F */ unk8 mUnk_0F; // pad?
|
||||
/* 10 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_88();
|
||||
|
||||
void func_ov000_020823a8(unk32 param1);
|
||||
void func_ov000_0208261c();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base_98 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0xB0);
|
||||
/* B0 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_98();
|
||||
~UnkStruct_027e0cd8_0C_Base_98();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base_148_00_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x14);
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_148_00_Base();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base_148_00 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x14, 0x2C);
|
||||
/* 2C */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_148_00(ZMBEntryARAB *pARAB);
|
||||
~UnkStruct_027e0cd8_0C_Base_148_00();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base_148_01 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x14, 0x28);
|
||||
/* 28 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_148_01(ZMBEntryARAB *pARAB);
|
||||
~UnkStruct_027e0cd8_0C_Base_148_01();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base_148_02 : public UnkStruct_027e0cd8_0C_Base_148_00_Base {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x14, 0x34);
|
||||
/* 34 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_148_02(ZMBEntryARAB *pARAB);
|
||||
~UnkStruct_027e0cd8_0C_Base_148_02();
|
||||
};
|
||||
|
||||
// UnkStruct_ov001_020c2a40 ?
|
||||
class UnkStruct_027e0cd8_0C_Base_154_00 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x14);
|
||||
/* 14 */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Base_154_00(const UnkStruct_027e0cd8_0C_Base_154_00 &ref) {
|
||||
MI_CpuCopy32((void *) &ref, this, sizeof(UnkStruct_027e0cd8_0C_Base_154_00));
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Base {
|
||||
public:
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ unk32 *mUnk_04;
|
||||
/* 008 */ unk32 *mUnk_08;
|
||||
/* 00C */ unk32 mUnk_0C;
|
||||
/* 010 */ unk32 *mUnk_10;
|
||||
/* 014 */ unk32 *mUnk_14;
|
||||
/* 018 */ unk32 mUnk_18;
|
||||
/* 01C */ unk32 *mUnk_1C;
|
||||
/* 020 */ unk32 mUnk_20;
|
||||
/* 024 */ unk32 *mUnk_24;
|
||||
/* 028 */ unk32 mUnk_28;
|
||||
/* 02C */ unk32 *mUnk_2C;
|
||||
/* 030 */ unk32 mUnk_30;
|
||||
/* 034 */ unk32 *mUnk_34;
|
||||
/* 038 */ unk32 mUnk_38;
|
||||
/* 03C */ unk32 mUnk_3C;
|
||||
/* 040 */ unk32 mUnk_40;
|
||||
/* 044 */ unk32 mUnk_44;
|
||||
/* 048 */ unk32 mUnk_48;
|
||||
/* 04C */ unk32 mUnk_4C;
|
||||
/* 050 */ unk32 mUnk_50;
|
||||
/* 054 */ unk32 mUnk_54;
|
||||
/* 058 */ unk32 mUnk_58;
|
||||
/* 05C */ unk32 mUnk_5C;
|
||||
/* 060 */ unk32 mUnk_60;
|
||||
/* 064 */ unk32 mUnk_64;
|
||||
/* 068 */ unk32 mUnk_68;
|
||||
/* 06C */ unk32 mUnk_6C;
|
||||
/* 070 */ unk32 *mUnk_70;
|
||||
/* 074 */ unk32 *mUnk_74;
|
||||
/* 078 */ unk32 *mUnk_78;
|
||||
/* 07C */ unk32 mUnk_7C;
|
||||
/* 080 */ unk32 mUnk_80;
|
||||
/* 084 */ unk32 mUnk_84;
|
||||
/* 088 */ unk32 *mUnk_88;
|
||||
/* 08C */ unk32 *mUnk_8C;
|
||||
/* 090 */ unk32 mUnk_90;
|
||||
/* 094 */ unk32 mUnk_94;
|
||||
/* 098 */ unk32 mUnk_98;
|
||||
/* 09C */ unk32 mUnk_9C;
|
||||
/* 0A0 */ unk32 mUnk_A0;
|
||||
/* 0A4 */ unk32 mUnk_A4;
|
||||
/* 0A8 */ unk32 mUnk_A8;
|
||||
/* 0AC */ unk32 mUnk_AC;
|
||||
/* 0B0 */ unk32 mUnk_B0;
|
||||
/* 0B4 */ ZeldaObjectList *mUnk_B4;
|
||||
/* 0B8 */ ZeldaObjectList *mUnk_B8;
|
||||
/* 0BC */ ZeldaObjectList *mUnk_BC;
|
||||
/* 0C0 */ ZeldaObjectList *mUnk_C0;
|
||||
/* 0C4 */ ZeldaObjectList *mUnk_C4;
|
||||
/* 0C8 */ ZeldaObjectList *mUnk_C8;
|
||||
/* 0CC */ ZeldaObjectList *mUnk_CC;
|
||||
/* 0D0 */ ZeldaObjectList *mUnk_D0;
|
||||
/* 0D4 */ ZeldaObjectList *mUnk_D4;
|
||||
/* 0D8 */ ZeldaObjectList *mUnk_D8;
|
||||
/* 0DC */ ZeldaObjectList *mUnk_DC[8];
|
||||
/* 0FC */ STRUCT_PAD(0xFC, 0x128);
|
||||
/* 004 */ UnkSystem3 mUnk_004;
|
||||
/* 010 */ ModelRender mSceneRender;
|
||||
/* 070 */ UnkFileSystem5 mUnk_070;
|
||||
/* 084 */ union {
|
||||
/* 84 */ wchar_t mUnk_084[2];
|
||||
struct {
|
||||
/* 084 */ u16 mUnk_084_00;
|
||||
/* 086 */ u16 mUnk_084_01;
|
||||
};
|
||||
};
|
||||
/* 088 */ UnkStruct_027e0cd8_0C_Base_88 mUnk_088;
|
||||
/* 098 */ UnkStruct_027e0cd8_0C_Base_98 *mUnk_098;
|
||||
/* 09C */ Vec2s mUnk_09C;
|
||||
/* 0A0 */ unk32 mUnk_0A0;
|
||||
/* 0A4 */ unk32 mUnk_0A4;
|
||||
/* 0A8 */ unk32 mUnk_0A8;
|
||||
/* 0AC */ bool mUnk_0AC;
|
||||
/* 0AC */ bool mUnk_0AD;
|
||||
/* 0AC */ bool mUnk_0AE;
|
||||
/* 0AC */ bool mUnk_0AF;
|
||||
/* 0B0 */ unk32 mUnk_0B0;
|
||||
/* 0B4 */ ZeldaObjectList *mUnk_0B4;
|
||||
/* 0B8 */ ZeldaObjectList *mUnk_0B8[8]; // map objects
|
||||
/* 0D8 */ ZeldaObjectList *mUnk_0D8;
|
||||
/* 0DC */ ZeldaObjectList *mUnk_0DC[8]; // actors
|
||||
/* 0FC */ unk32 mUnk_0FC;
|
||||
/* 100 */ volatile BOOL mIsCS;
|
||||
/* 104 */ unk16 mUnk_104;
|
||||
/* 108 */ unk32 mUnk_108;
|
||||
/* 10C */ unk32 mUnk_10C;
|
||||
/* 110 */ unk32 mUnk_110;
|
||||
/* 114 */ unk32 mUnk_114;
|
||||
/* 118 */ unk32 mUnk_118;
|
||||
/* 11C */ unk32 mUnk_11C;
|
||||
/* 120 */ unk32 mUnk_120;
|
||||
/* 124 */ unk32 mUnk_124;
|
||||
/* 128 */ u16 mUnk_128;
|
||||
/* 12A */ STRUCT_PAD(0x12A, 0x160);
|
||||
/* 160 */ UnkStruct_027e0cd8_0c_160 *mUnk_160;
|
||||
/* 164 */ STRUCT_PAD(0x164, 0x1E0);
|
||||
/* 1E0 */
|
||||
/* 12A */ bool mUnk_12A;
|
||||
/* 12B */ bool mUnk_12B;
|
||||
/* 12C */ bool mUnk_12C;
|
||||
/* 12D */ bool mUnk_12D;
|
||||
/* 12E */ bool mUnk_12E;
|
||||
/* 130 */ unk32 mUnk_130;
|
||||
/* 134 */ unk32 mUnk_134;
|
||||
/* 138 */ unk32 mUnk_138;
|
||||
/* 13C */ FixedVector<UnkStruct_ov001_020c40f4> mUnk_13C;
|
||||
/* 148 */ CustomVector<UnkStruct_027e0cd8_0C_Base_148_00_Base *> mUnk_148;
|
||||
/* 154 */ CustomVector<UnkStruct_027e0cd8_0C_Base_154_00> mUnk_154;
|
||||
/* 160 */
|
||||
|
||||
// data_ov031_02112a0c
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
UnkStruct_027e0cd8_0C_Base(UnkStruct_027e0cd8 *param1);
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_027e0cd8_0C_Base();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 1C */ virtual void vfunc_1C(const UnkStruct_SceneChange1 *param1, bool param2, bool param3);
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3);
|
||||
/* 2C */ virtual void vfunc_2C();
|
||||
/* 30 */ virtual void LoadSceneModel(const UnkStruct_SceneChange1 *param1);
|
||||
/* 34 */ virtual void vfunc_34(unk32 param1);
|
||||
/* 38 */ virtual void vfunc_38();
|
||||
/* 3C */ virtual void vfunc_3C();
|
||||
/* 40 */ virtual void vfunc_40(u8 spawnIndex);
|
||||
|
||||
// itcm
|
||||
fx32 func_01ffedf4(Vec2b *pPos);
|
||||
|
||||
// overlay 0
|
||||
unk32 func_ov000_02080180(void *param1);
|
||||
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
|
||||
bool func_ov000_020802ec(u16 param1, VecFx32 *param2);
|
||||
void func_ov000_020803ec(u16 param1);
|
||||
void func_ov000_0208053c(u16 param1);
|
||||
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
|
||||
void func_ov000_020808f4(void *param1, void *param2, unk32 param3);
|
||||
unk32 func_ov000_02080a44();
|
||||
void func_ov000_020801b0(Vec2b *param1, unk32 param2, unk32 param3);
|
||||
void func_ov000_0208053c(u16 param1);
|
||||
void func_ov000_020803ec(u16 param1);
|
||||
bool func_ov000_020802ec(u16 param1, VecFx32 *param2);
|
||||
void func_ov000_02080a5c(VecFx32 *param1);
|
||||
void func_ov000_02080a78(VecFx32 *param1);
|
||||
|
||||
VecFx32 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
|
||||
// overlay 1
|
||||
void func_ov001_020b85d0(const UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020b88c0(unk32 param1);
|
||||
void func_ov001_020b88ec();
|
||||
const UnkStruct_ov001_020c40f4 *func_ov001_020b8a5c(unk32 spawnIndex, unk32 param1);
|
||||
void func_ov001_020b8aec();
|
||||
void func_ov001_020b8b94(ZMBEntryARAB *pARAB);
|
||||
void func_ov001_020b8c30(const UnkStruct_027e0cd8_0C_Base_154_00 ¶m1);
|
||||
void *func_ov001_020b8c80(unk32 param1);
|
||||
void func_ov001_020b8c90(unk32 param1);
|
||||
void func_ov001_020b8c98(unk32 param1);
|
||||
void func_ov001_020b8db8();
|
||||
void func_ov001_020b8e24();
|
||||
void func_ov001_020b8e54();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C : public UnkStruct_027e0cd8_0C_Base {
|
||||
public:
|
||||
/* 000 (base) */
|
||||
/* 160 */ UnkStruct_027e0cd8_0C_160 *mUnk_160;
|
||||
/* 164 */ STRUCT_PAD(0x164, 0x1E0);
|
||||
/* 1E0 */
|
||||
|
||||
UnkStruct_027e0cd8_0C(UnkStruct_027e0cd8 *param1);
|
||||
|
||||
// data_ov031_02112a0c
|
||||
/* 00 */ virtual ~UnkStruct_027e0cd8_0C() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
/* 10 */ virtual void vfunc_10() override;
|
||||
/* 14 */ virtual void vfunc_14() override;
|
||||
/* 18 */ virtual void vfunc_18() override;
|
||||
/* 1C */ virtual void vfunc_1C(const UnkStruct_SceneChange1 *param1, bool param2, bool param3) override;
|
||||
/* 20 */ virtual void vfunc_20() override;
|
||||
/* 24 */ virtual void vfunc_24() override;
|
||||
/* 28 */ virtual fx32 vfunc_28(VecFx32 *param1, unk32 param2, unk32 param3) override;
|
||||
/* 2C */ virtual void vfunc_2C() override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Derived2 : public UnkStruct_027e0cd8_0C_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x160, 0x4F8);
|
||||
UnkStruct_027e0cd8_0C_Derived2(UnkStruct_027e0cd8 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_0C_Derived3 : public UnkStruct_027e0cd8_0C_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
|
||||
UnkStruct_027e0cd8_0C_Derived3(UnkStruct_027e0cd8 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_04_0C {
|
||||
@@ -114,7 +301,8 @@ public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ s16 mUnk_08;
|
||||
/* 0C */ STRUCT_PAD(0x0C, 0x50);
|
||||
/* 0C */ volatile u32 mUnk_0C;
|
||||
/* 10 */ STRUCT_PAD(0x10, 0x50);
|
||||
/* 50 */
|
||||
|
||||
UnkStruct_027e0cd8_04_0C();
|
||||
@@ -122,28 +310,57 @@ public:
|
||||
|
||||
class UnkStruct_027e0cd8_04 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 */ unk8 mUnk_00;
|
||||
/* 00 */ bool mUnk_01;
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0cd8_04_0C *mUnk_0C;
|
||||
/* 10 */
|
||||
/* 10 */ u8 mUnk_10;
|
||||
/* 11 */ u8 mUnk_11;
|
||||
/* 12 */ STRUCT_PAD(0x12, 0x40);
|
||||
/* 40 */ u8 mUnk_40[1][10]; // at least one
|
||||
STRUCT_PAD(0x4C, 0xB4);
|
||||
/* B4 */
|
||||
|
||||
UnkStruct_027e0cd8_04();
|
||||
~UnkStruct_027e0cd8_04();
|
||||
|
||||
void func_ov000_02081354(const CourseListEntry *pEntry, const UnkStruct_func_ov000_020702a8 *pUnk1,
|
||||
SaveFile_00000_0000_Data_184 *param3, bool param4);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8_10 : public UnkDataStruct4 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* D0 */ unk32 mUnk_D0;
|
||||
/* D4 */
|
||||
|
||||
UnkStruct_027e0cd8_10();
|
||||
~UnkStruct_027e0cd8_10();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cd8 : public AutoInstance<UnkStruct_027e0cd8> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 */ Vec2s mUnk_00;
|
||||
/* 04 */ UnkStruct_027e0cd8_04 *mUnk_04; // stage flags
|
||||
/* 08 */ unk32 mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0cd8_0c *mUnk_0C; // related to train?
|
||||
/* 10 */ MapObjectManager *mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x24);
|
||||
/* 08 */ UnkStruct_027e0cd8_04 *mUnk_08;
|
||||
/* 0C */ UnkStruct_027e0cd8_0C_Base *mUnk_0C; // related to train?
|
||||
/* 10 */ UnkStruct_027e0cd8_10 *mUnk_10;
|
||||
/* 14 */ unk16 mUnk_14;
|
||||
/* 16 */ bool mUnk_16;
|
||||
/* 16 */ bool mUnk_17;
|
||||
/* 18 */ UnkSystem8 mUnk_18;
|
||||
/* 24 */ VecFx32 mUnk_24;
|
||||
/* 34 */ STRUCT_PAD(0x34, 0x4C);
|
||||
/* 30 */ unk32 mUnk_30; // scene index but unknown purpose
|
||||
/* 34 */ unk32 mUnk_34; // scene index but unknown purpose
|
||||
/* 38 */ s64 mUnk_38[2];
|
||||
/* 48 */ bool mUnk_48[2];
|
||||
/* 4C */
|
||||
|
||||
UnkStruct_027e0cd8_0C *GetUnk0C() {
|
||||
return (UnkStruct_027e0cd8_0C *) this->mUnk_0C;
|
||||
}
|
||||
|
||||
UnkStruct_027e0cd8();
|
||||
~UnkStruct_027e0cd8();
|
||||
|
||||
@@ -156,11 +373,20 @@ public:
|
||||
u32 func_ov000_02081d5c(); // returns current room index?
|
||||
bool func_ov000_02082124();
|
||||
bool func_ov000_02081c28();
|
||||
void func_ov000_02081ca0();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020b7830(const UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020b7a7c();
|
||||
void func_ov001_020b7830(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020b7c08(UnkStruct_SceneChange1 *param1, UnkStruct_WarpUnk1_A0 *param2);
|
||||
void func_ov001_020b7b38(const CourseListEntry *pEntry, const UnkStruct_func_ov000_020702a8 *pUnk1);
|
||||
void func_ov001_020b7c08(const UnkStruct_SceneChange1 *param1, const UnkStruct_WarpUnk1_A0 *param2);
|
||||
void func_ov001_020b7d64(const UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020b7e50();
|
||||
void func_ov001_020b7e68(const UnkStruct_SceneChange1 *param1, bool param2);
|
||||
void func_ov001_020b803c();
|
||||
bool func_ov001_020b80fc(SceneIndex sceneIndex);
|
||||
void func_ov001_020b8120(SceneIndex sceneIndex);
|
||||
void func_ov001_020b818c();
|
||||
|
||||
static UnkStruct_027e0cd8 *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -14,6 +14,8 @@
|
||||
|
||||
#include <nitro/math.h>
|
||||
|
||||
class UnkStruct_ov001_020c40f4;
|
||||
|
||||
class UnkStruct_027e0ce0_34 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00[4];
|
||||
@@ -442,8 +444,14 @@ public:
|
||||
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bc5f8();
|
||||
void func_ov001_020bc524(bool param1);
|
||||
void func_ov001_020bc5f8();
|
||||
void func_ov001_020bc65c();
|
||||
void func_ov001_020bc69c();
|
||||
void func_ov001_020bc6d8(unk32 param1, const UnkStruct_ov001_020c40f4 *param2);
|
||||
void func_ov001_020bc6e8(const UnkStruct_ov001_020c40f4 *param1);
|
||||
void func_ov001_020bc6fc(const UnkStruct_ov001_020c40f4 *param1, const UnkStruct_ov001_020c40f4 *param2, unk32 param3,
|
||||
unk32 param4);
|
||||
|
||||
static UnkStruct_027e0ce0 *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -15,6 +15,7 @@ public:
|
||||
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, VecFx32 *param4, unk32 param5);
|
||||
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
|
||||
void func_ov000_020a0220(void *param1, void *param2);
|
||||
void func_ov001_020bf028();
|
||||
|
||||
// overlay 1
|
||||
static UnkStruct_027e0cec *Create();
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
#include "types.h"
|
||||
#include <nitro/pad.h>
|
||||
|
||||
class UnkStruct_027e0cd8_04_0C;
|
||||
|
||||
class UnkStruct_ov000_02067bc4_Sub1 {
|
||||
public:
|
||||
unk32 func_02022128(void);
|
||||
@@ -163,10 +165,14 @@ public:
|
||||
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?
|
||||
|
||||
@@ -63,8 +63,10 @@ public:
|
||||
void func_ov001_020bd87c(void);
|
||||
void func_ov001_020bd8dc(void);
|
||||
void func_ov001_020bd8ac(void);
|
||||
void func_ov001_020bde04(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020bd970(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020bde5c(void);
|
||||
void func_ov001_020bde04(UnkStruct_SceneChange1 *param1);
|
||||
void func_ov001_020bde4c(const UnkStruct_SceneChange1 *param1);
|
||||
|
||||
// overlay 18
|
||||
UnkStruct_ov018_020c5ac0 *func_ov018_020c5718(void);
|
||||
|
||||
@@ -10,6 +10,10 @@ public:
|
||||
UnkStruct_ov026_02138d10();
|
||||
~UnkStruct_ov026_02138d10();
|
||||
|
||||
// overlay 0
|
||||
void func_ov026_020dca14();
|
||||
|
||||
// overlay 26
|
||||
unk32 func_ov026_020e13f4();
|
||||
unk32 func_ov026_020e18fc();
|
||||
void func_ov026_020e1440();
|
||||
|
||||
@@ -85,6 +85,23 @@ public:
|
||||
/* 24 */ virtual ~UnkSystem1_ov000_Derived2() override;
|
||||
};
|
||||
|
||||
// data_ov000_020b23a0
|
||||
class UnkSystem1_ov000_Derived3 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 14 */
|
||||
|
||||
UnkSystem1_ov000_Derived3();
|
||||
|
||||
/* 00 */ virtual void vfunc_00(unk32 param1) override;
|
||||
/* 08 */ virtual void vfunc_08(unk32 param1) override;
|
||||
/* 10 */ virtual unk32 vfunc_10(u16 *param1) override;
|
||||
/* 14 */ virtual bool vfunc_14(FLW1Instr *param1) override;
|
||||
/* 1C */ virtual unk32 vfunc_1C(u32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 20 */ virtual unk32 vfunc_20(unk32 param1, unk32 param2, unk32 param3) override;
|
||||
/* 24 */ virtual ~UnkSystem1_ov000_Derived3() override;
|
||||
};
|
||||
|
||||
// data_ov010_020b8e10
|
||||
class UnkSystem1_ov010 : public UnkSystem1_ov000_Derived1 {
|
||||
public:
|
||||
|
||||
+34
-3
@@ -24,13 +24,17 @@ typedef struct FileInfos {
|
||||
} FileInfos;
|
||||
|
||||
// .zob
|
||||
typedef struct ZeldaObjectList {
|
||||
typedef struct ZOBHeader {
|
||||
/* 00 */ FileType type; // always "ZOLB"
|
||||
/* 04 */ unk32 nSize; // file size?
|
||||
/* 08 */ unk16 unk_08;
|
||||
/* 0A */ unk16 unk_0a;
|
||||
/* 0A */ unk16 unk_0A;
|
||||
/* 0C */ u16 nEntries; // number of entries
|
||||
/* 0E */ unk16 unk_0e;
|
||||
/* 0E */ unk16 unk_0E;
|
||||
} ZOBHeader; // size = 0x10
|
||||
|
||||
typedef struct ZeldaObjectList {
|
||||
/* 00 */ ZOBHeader header;
|
||||
/* 10 */ u32 aIdList[]; // actor id or map object id
|
||||
} ZeldaObjectList;
|
||||
|
||||
@@ -140,6 +144,15 @@ enum ZMBSectionType_ {
|
||||
ZMBSectionType_NPCA = 'NPCA', // actor list, same as above
|
||||
};
|
||||
|
||||
typedef struct ZMBFileInfos {
|
||||
/* 00 */ void *pFile;
|
||||
/* 04 */ size_t size;
|
||||
/* 08 */ unk16 unk_08;
|
||||
/* 0C */ unk16 unk_0C;
|
||||
/* 10 */ unk16 unk_10;
|
||||
/* 14 */ unk16 unk_14;
|
||||
} ZMBFileInfos;
|
||||
|
||||
typedef struct ZMBHeader {
|
||||
/* 00 */ u32 magic; // 'MAPB'
|
||||
/* 04 */ FileType type; // always "ZMB1"
|
||||
@@ -169,6 +182,23 @@ typedef struct ZMBSectionRALB {
|
||||
/* 0C */ ZMBEntryRALB entries[];
|
||||
} ZMBSectionRALB;
|
||||
|
||||
typedef struct ZMBEntryARAB {
|
||||
/* 00 */ u8 unk_00;
|
||||
/* 01 */ u8 unk_01;
|
||||
/* 02 */ u8 unk_02;
|
||||
/* 03 */ u8 unk_03;
|
||||
/* 04 */ unk32 unk_04;
|
||||
/* 08 */ unk32 unk_08;
|
||||
/* 0C */ u8 unk_0C;
|
||||
/* 0D */ u8 unk_0D;
|
||||
/* 0E */ unk8 unk_0E;
|
||||
/* 0F */ unk8 unk_0F;
|
||||
} ZMBEntryARAB; // size = 0x10
|
||||
|
||||
struct UnkStruct_027e0cd8_0C_Base;
|
||||
|
||||
extern BOOL ZMB_ParseFile(ZMBFileInfos *pFileInfos, UnkStruct_027e0cd8_0C_Base *pDst, BOOL param3);
|
||||
|
||||
// .cib
|
||||
typedef struct CourseInitEntry {
|
||||
/* 00 */ const char name[16];
|
||||
@@ -206,6 +236,7 @@ typedef struct CourseListEntry {
|
||||
/* 1E */ u8 unk_1E;
|
||||
/* 1F */ u8 unk_1F;
|
||||
/* 20 */ u8 defaultMapPaintIndex;
|
||||
/* 21 */ s8 unk_21; // scene index but unknown purpose
|
||||
/* 24 */ CourseListRoomEntry roomEntries[];
|
||||
} CourseListEntry; // size >= 0x28
|
||||
|
||||
|
||||
@@ -76,6 +76,12 @@
|
||||
#define ALIGN_NEXT(X, N) ALIGN_PREV(((X) + (N) - 1), N)
|
||||
#define ALIGN(X, N) ((X + N) & ~N)
|
||||
|
||||
#define STACK_PAD(N) \
|
||||
struct __StackPad { \
|
||||
char pad[(N)]; \
|
||||
~__StackPad() {} \
|
||||
} __stack_pad
|
||||
|
||||
#define VTABLE_PAD(name) \
|
||||
class _VTABLE_PAD_##name { \
|
||||
public: \
|
||||
@@ -90,4 +96,11 @@
|
||||
} \
|
||||
(void) 0
|
||||
|
||||
#define DELETE_ARRAY(ptr) \
|
||||
{ \
|
||||
delete[] ptr; \
|
||||
ptr = NULL; \
|
||||
} \
|
||||
(void) 0
|
||||
|
||||
#endif
|
||||
|
||||
@@ -39,6 +39,16 @@ union Vec2s {
|
||||
}
|
||||
|
||||
Vec2s() {}
|
||||
|
||||
Vec2s(Vec2s *from) {
|
||||
#if __MWERKS__
|
||||
this->coords = from->coords;
|
||||
#else
|
||||
this->x = from->x;
|
||||
this->y = from->y;
|
||||
#endif
|
||||
}
|
||||
|
||||
Vec2s(s16 X, s16 Y) {
|
||||
x = X;
|
||||
y = Y;
|
||||
|
||||
Reference in New Issue
Block a user