mirror of
https://github.com/zeldaret/st
synced 2026-09-02 09:51:55 -04:00
Decompile overlay 1 (Part 8) (#108)
* UnkStruct_027e09b4_001 OK * UnkStruct_027e09ac_001 OK * UnkStruct_027e0cec_001 OK * SysNew OK * UnkStruct_027e0cec_18_001 OK * UnkStruct_027e0ce0_34_001 OK * UnkStruct_027e0d00_001 OK * PassengerManager_001 OK * UnkStruct_027e0cf8_08_00_001 OK * UnkStruct_ov020_020e8544_001 OK * code_020bfdd0 OK and code_020bfeec OK * code_020c099c OK
This commit is contained in:
@@ -2,8 +2,8 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include "Actor/Actor.hpp"
|
||||
#include "Actor/ActorProfile.hpp"
|
||||
#include "Actor/Actor_Derived1.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
@@ -17,7 +17,7 @@ public:
|
||||
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
|
||||
};
|
||||
|
||||
class ActorUnkLBCK : public Actor {
|
||||
class ActorUnkLBCK : public Actor_Derived1 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 94 */
|
||||
@@ -25,7 +25,12 @@ public:
|
||||
ActorUnkLBCK();
|
||||
|
||||
/* 4C */ virtual ~ActorUnkLBCK() override;
|
||||
/* 58 */ virtual void vfunc_58(unk32 param1) override;
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bff34();
|
||||
|
||||
// overlay 62
|
||||
void func_ov062_02159044(void);
|
||||
void func_ov062_02159078(void);
|
||||
void func_ov062_02159248(void);
|
||||
|
||||
@@ -182,6 +182,9 @@ public:
|
||||
|
||||
static void func_ov000_020a9804();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bff2c();
|
||||
|
||||
// overlay 31
|
||||
void func_ov031_020e3ca4();
|
||||
};
|
||||
|
||||
@@ -23,5 +23,7 @@ public:
|
||||
/* 24 */ virtual unk32 vfunc_24() override;
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bfd84(unk32 param1);
|
||||
|
||||
static GameModeBase *Create();
|
||||
};
|
||||
|
||||
@@ -5,10 +5,25 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov001_020c46fc {
|
||||
public:
|
||||
/* 00000 (vtable) */
|
||||
/* 00004 */ STRUCT_PAD(0x04, 0xAF054);
|
||||
/* AF054 */
|
||||
|
||||
UnkStruct_ov001_020c46fc();
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_ov001_020c46fc();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov001_020c46fc *data_ov001_020c46fc;
|
||||
|
||||
class GameModeDownloadPlay : public GameModeBase {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x6C);
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x48);
|
||||
/* 48 */ UnkStruct_ov001_020c46fc *mUnk_48;
|
||||
/* 4C */ STRUCT_PAD(0x4C, 0x6C);
|
||||
/* 6C */
|
||||
|
||||
GameModeDownloadPlay();
|
||||
@@ -16,6 +31,8 @@ public:
|
||||
/* 00 */ virtual ~GameModeDownloadPlay() override;
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020c09dc();
|
||||
|
||||
static GameModeBase *Create();
|
||||
|
||||
// overlay 22
|
||||
|
||||
@@ -69,7 +69,7 @@ public:
|
||||
|
||||
void func_ov001_020bf830();
|
||||
|
||||
static void Destroy(); // func_ov001_020bf428
|
||||
static void Destroy();
|
||||
|
||||
// overlay 17
|
||||
void Update();
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
#include "Item/Item.hpp"
|
||||
#include "Save/AdventureFlags.hpp"
|
||||
#include "Unknown/UnkStruct_02049bac.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
@@ -61,9 +62,9 @@ enum StampType_ {
|
||||
|
||||
class MiscAdvManager : public AutoInstance<MiscAdvManager> {
|
||||
public:
|
||||
/* 00 */ u16 mStampDates[StampType_Max];
|
||||
/* 28 */ u16 mUnk_28;
|
||||
/* 2A */ u16 mPostDate;
|
||||
/* 00 */ Date mStampDates[StampType_Max];
|
||||
/* 28 */ Date mUnk_28;
|
||||
/* 2A */ Date mPostDate;
|
||||
/* 2C */ union {
|
||||
Vec2bCpp mStampPositions[StampType_Max];
|
||||
u16 mStampPos[StampType_Max];
|
||||
|
||||
@@ -56,6 +56,7 @@ public:
|
||||
void func_ov001_020bf910();
|
||||
bool func_ov001_020bfa1c();
|
||||
|
||||
static void Destroy();
|
||||
static bool func_ov001_020bf870();
|
||||
|
||||
// overlay 24
|
||||
|
||||
@@ -36,6 +36,9 @@ struct SaveFile_00000_0000_Data_D8 {
|
||||
/* 80 */
|
||||
|
||||
SaveFile_00000_0000_Data_D8();
|
||||
|
||||
// overlay 0
|
||||
s32 func_ov000_020a0cf4();
|
||||
};
|
||||
|
||||
// related to scene flags?
|
||||
@@ -92,20 +95,25 @@ struct SaveMiscAdvManager {
|
||||
songs(0) {}
|
||||
};
|
||||
|
||||
struct SaveInventoryData {
|
||||
/* 00 */ unk32 unk_00;
|
||||
/* 04 */ u32 unk_04[2];
|
||||
/* 0C */ u16 numRupees;
|
||||
/* 0E */ u16 unk_0E;
|
||||
/* 10 */ ItemFlag equippedItem;
|
||||
/* 14 */ unk32 unk_14;
|
||||
/* 18 */
|
||||
};
|
||||
|
||||
struct SaveInventory {
|
||||
/* 00 */ u32 adventureFlags[32];
|
||||
/* 80 */ unk32 unk_80;
|
||||
/* 84 */ u32 unk_84[2];
|
||||
/* 8C */ u16 numRupees;
|
||||
/* 8E */ u16 unk_8E;
|
||||
/* 90 */ ItemFlag equippedItem;
|
||||
/* 94 */ unk32 unk_94;
|
||||
/* 80 */ SaveInventoryData data;
|
||||
/* 98 */
|
||||
|
||||
SaveInventory() {
|
||||
MI_CpuFill32(0, this->adventureFlags, sizeof(this->adventureFlags));
|
||||
MI_CpuFill32(0, this->unk_84, sizeof(this->unk_84));
|
||||
this->unk_8E = 0;
|
||||
MI_CpuFill32(0, this->data.unk_04, sizeof(this->data.unk_04));
|
||||
this->data.unk_0E = 0;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -388,6 +388,8 @@ public:
|
||||
/* 48 */
|
||||
|
||||
// clang-format off
|
||||
const bool IsField() const { return this->mLoadedOverlays[OverlaySlot_7] == OverlayIndex_Field; }
|
||||
|
||||
const bool IsTower() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_Tower; }
|
||||
const bool IsBossDesert() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossDesert; }
|
||||
const bool IsBossDeago() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_BossDeago; }
|
||||
@@ -399,6 +401,7 @@ public:
|
||||
|
||||
const bool IsASR() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_ASR; }
|
||||
const bool IsPlayerSub() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub; }
|
||||
const bool IsTrainDark() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_TrainDark; }
|
||||
|
||||
const bool IsPlayerPhantom() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerPhantom; }
|
||||
const bool IsPlayerZelda() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerZelda; }
|
||||
|
||||
@@ -117,7 +117,7 @@ public:
|
||||
|
||||
extern UnkStruct_02011e10 data_0204999c;
|
||||
|
||||
void *SysNew(UnkStruct_02011e10_Sub1 *param1, s32 length, s32 param3);
|
||||
void *SysNew(UnkStruct_02011e10_Sub1 *param1, u32 length, u32 idLength);
|
||||
void SysDelete(void *ptr);
|
||||
void *func_02011f10(s32 length);
|
||||
void *func_02011f30(s32 length);
|
||||
|
||||
@@ -3,6 +3,39 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
union Date {
|
||||
struct {
|
||||
u16 day : 5;
|
||||
u16 month : 4;
|
||||
u16 year : 7;
|
||||
};
|
||||
u16 data[1];
|
||||
|
||||
void operator=(Date &from) {
|
||||
this->data = from.data;
|
||||
}
|
||||
|
||||
void operator=(s16 from) {
|
||||
this->data[0] = from;
|
||||
}
|
||||
|
||||
bool operator==(u16 other) {
|
||||
return other == this->data[0];
|
||||
}
|
||||
|
||||
bool operator!=(u16 other) {
|
||||
return !(*this == other);
|
||||
}
|
||||
|
||||
bool operator==(Date &other) {
|
||||
return this->data[0] == other.data[0];
|
||||
}
|
||||
|
||||
bool operator!=(Date &other) {
|
||||
return !(*this == other);
|
||||
}
|
||||
};
|
||||
|
||||
class UnkStruct_02049bac {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
@@ -10,7 +43,7 @@ public:
|
||||
UnkStruct_02049bac();
|
||||
~UnkStruct_02049bac();
|
||||
|
||||
void func_02014a34(void *param1);
|
||||
void func_02014a34(Date *param1);
|
||||
u64 func_02014b00();
|
||||
};
|
||||
|
||||
|
||||
@@ -11,8 +11,11 @@ struct UnkStruct_func_ov000_020702a8 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x10);
|
||||
/* 10 */ Vec2s mUnk_10;
|
||||
/* 14 */ u8 mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk32 mUnk_1C;
|
||||
/* 15 */ STRUCT_PAD(0x15, 0x18);
|
||||
/* 18 */ u16 mUnk_18;
|
||||
/* 1A */ u16 mUnk_1A;
|
||||
/* 1C */ u16 mUnk_1C;
|
||||
/* 1E */ u16 mUnk_1E;
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
/* 22 */ unk16 mUnk_22;
|
||||
};
|
||||
|
||||
@@ -244,7 +244,7 @@ public:
|
||||
const u8 CurrentCSIndex() const { return this->mUnk_00.csIndex; }
|
||||
const SceneIndex CurrentSceneIndex() const { return this->mUnk_00.sceneIndex; }
|
||||
|
||||
const bool IsDarkRealm() const {
|
||||
const bool IsDarkRealm() {
|
||||
return this->mUnk_00.sceneIndex <= SceneIndex_t_eviltrain3 && this->mUnk_00.sceneIndex >= SceneIndex_t_eviltrain;
|
||||
}
|
||||
|
||||
|
||||
@@ -3,11 +3,18 @@
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09a8 {
|
||||
class UnkStruct_027e09a8 : public AutoInstance<UnkStruct_027e09a8> {
|
||||
public:
|
||||
// overlay 0
|
||||
void func_ov000_020713bc();
|
||||
void func_ov000_02071b30(unk32 param1, VecFx32 *pPos, unk32 param3);
|
||||
void func_ov000_02071d34(void *param1, unk32 param2, VecFx32 *pPos, unk32 param4);
|
||||
void func_ov000_02071eac(VecFx32 *pPos);
|
||||
|
||||
static UnkStruct_027e09a8 *Create();
|
||||
|
||||
// overlay 1
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09a8 *data_027e09a8;
|
||||
|
||||
@@ -8,9 +8,8 @@
|
||||
|
||||
struct UnkStruct_027e09ac_Base_00 {
|
||||
/* 00 */ unk16 mUnk_00[2];
|
||||
/* 04 */ unk16 mUnk_04[3];
|
||||
/* 0A */ unk16 mUnk_0A;
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
/* 04 */ unk16 mUnk_04[6];
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
class UnkStruct_027e09ac_Base {
|
||||
@@ -81,10 +80,11 @@ public:
|
||||
// overlay 0
|
||||
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);
|
||||
void func_ov000_02072b08(unk32 param1, unk32 param2);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bec8c();
|
||||
void func_ov001_020bebb8();
|
||||
void func_ov001_020bec8c();
|
||||
|
||||
static UnkStruct_027e09ac *Create();
|
||||
static void Destroy();
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09b0 {
|
||||
class UnkStruct_027e09b0 : public AutoInstance<UnkStruct_027e09b0> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
|
||||
@@ -11,6 +11,11 @@ public:
|
||||
~UnkStruct_027e09b0();
|
||||
|
||||
void func_ov000_02072cc4(unk32 param1, unk32 param2);
|
||||
|
||||
static UnkStruct_027e09b0 *Create();
|
||||
|
||||
// overlay 1
|
||||
static void Destroy();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e09b0 *data_027e09b0;
|
||||
|
||||
@@ -1,16 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09b4 {
|
||||
class UnkStruct_027e09b4 : public AutoInstance<UnkStruct_027e09b4> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
/* 004 */ STRUCT_PAD(0x04, 0x300);
|
||||
/* 300 */ void *mUnk_300;
|
||||
/* 304 */ unk32 mUnk_304;
|
||||
/* 308 */ unk16 mUnk_308;
|
||||
/* 30A */ unk16 mUnk_30A;
|
||||
/* 30C */
|
||||
|
||||
UnkStruct_027e09b4();
|
||||
~UnkStruct_027e09b4();
|
||||
|
||||
// main
|
||||
void func_01fff60c(VecFx32 *param1, unk32 param2, unk32 param3, u8 param4, unk32 param5, unk32 param6);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bea84();
|
||||
|
||||
static UnkStruct_027e09b4 *Create();
|
||||
static void Destroy();
|
||||
|
||||
// overlay 17
|
||||
void func_ov017_020c08c4(VecFx32 *param1, unk32 param2, unk32 param3, s32 param4, s32 param5, s32 param6);
|
||||
};
|
||||
|
||||
|
||||
@@ -181,29 +181,46 @@ public:
|
||||
void func_ov001_020bbff4(UnkStruct_027e0ce0_38 *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_34_20 {
|
||||
public:
|
||||
/* 000 */ STRUCT_PAD(0x00, 0x960);
|
||||
/* 960 */
|
||||
|
||||
UnkStruct_027e0ce0_34_20();
|
||||
~UnkStruct_027e0ce0_34_20();
|
||||
|
||||
// overlay 26
|
||||
void func_ov026_020eb5b8();
|
||||
void func_ov026_020eb6a8();
|
||||
};
|
||||
|
||||
class UnkStruct_027e0ce0_34 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00[4];
|
||||
/* 10 */ unk32 mUnk_10[4];
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 20 */ UnkStruct_027e0ce0_34_20 *mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */ unk32 mUnk_28;
|
||||
/* 2C */ s32 mUnk_2C;
|
||||
/* 30 */ u32 mSpiritTrackFlags;
|
||||
/* 30 */ u32 mSpiritTrackFlags; //! TODO: rename (actually handles train parts?)
|
||||
/* 34 */ unk32 mUnk_34;
|
||||
/* 38 */ u32 mTrackFlags[3];
|
||||
/* 44 */ STRUCT_PAD(0x44, 0xF4);
|
||||
/* 44 */ STRUCT_PAD(0x44, 0xE8);
|
||||
/* E8 */ unk32 mUnk_E8;
|
||||
/* EC */ unk32 mUnk_EC;
|
||||
/* F0 */ unk32 mUnk_F0;
|
||||
/* F4 */
|
||||
|
||||
UnkStruct_027e0ce0_34();
|
||||
~UnkStruct_027e0ce0_34();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bf22c(unk32 param1, unk32 param2);
|
||||
void func_ov001_020bf22c(SaveFile_00000_0000_Data_D8 *param1, unk32 param2);
|
||||
void func_ov001_020bf2b8(bool param1);
|
||||
void func_ov001_020bf378();
|
||||
void func_ov001_020bf3bc();
|
||||
void func_ov001_020bf3cc();
|
||||
void func_ov001_020bf3fc();
|
||||
|
||||
// overlay 8
|
||||
void func_ov008_020b6a50();
|
||||
@@ -736,7 +753,7 @@ public:
|
||||
static UnkStruct_027e0ce0_34 *func_ov000_0205c904();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bc4d8(InvImportData *pInvData, unk32 param2, unk32 param3);
|
||||
void func_ov001_020bc4d8(InvImportData *pInvData, SaveFile_00000_0000_Data_D8 *param2, unk32 param3);
|
||||
void func_ov001_020bc524(bool param1);
|
||||
void func_ov001_020bc5f8();
|
||||
void func_ov001_020bc65c();
|
||||
|
||||
@@ -1,13 +1,77 @@
|
||||
#pragma once
|
||||
|
||||
#include "LinkList.hpp"
|
||||
#include "Unknown/UnkFileSystem.hpp"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e0cec_00_00 : public LinkList<UnkStruct_027e0cec_00_00> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
/* 0C */ unk32 mUnk_0C;
|
||||
|
||||
UnkStruct_027e0cec_00_00() :
|
||||
mUnk_0C(0) {}
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cec_00 : public UnkStruct_027e0cec_00_00 {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 10 */ void *mUnk_10;
|
||||
/* 14 */ unk32 mUnk_14;
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_027e0cec_00(void *param1);
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0cec_18_04 {
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x3C);
|
||||
/* 3C */ unk32 mUnk_3C;
|
||||
/* 40 */ unk32 mUnk_40;
|
||||
/* 44 */ void *mUnk_44;
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_02054a78();
|
||||
void func_ov000_02054a88();
|
||||
void func_ov000_0205498c(void *pFile);
|
||||
void func_ov000_02054998(void *param1);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cec_18 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */ UnkStruct_027e0cec_18_04 *mUnk_04;
|
||||
/* 08 */ unk16 mUnk_08;
|
||||
/* 0A */ unk16 mUnk_0A; // pad?
|
||||
/* 0C */
|
||||
|
||||
UnkStruct_027e0cec_18(UnkFileSystem1 *param1, bool param2, unk32 param3);
|
||||
|
||||
// data_ov001_020c2fcc
|
||||
/* 00 */ virtual ~UnkStruct_027e0cec_18();
|
||||
/* 08 */
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020a0460();
|
||||
|
||||
// overlay 1
|
||||
static void *func_ov001_020bf0a0(size_t length);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0cec : public AutoInstance<UnkStruct_027e0cec> {
|
||||
public:
|
||||
/* 00 */ UnkStruct_027e0cec_00 mUnk_00;
|
||||
/* 18 */ UnkStruct_027e0cec_18 *mUnk_18[2];
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */
|
||||
|
||||
UnkStruct_027e0cec();
|
||||
~UnkStruct_027e0cec();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_0209feac(unk32 param1, VecFx32 *param2, unk32 param3, unk32 param4, unk32 param5);
|
||||
void func_ov000_0209ff24(unk32 param1, VecFx32 *param2, VecFx16 *param3, unk32 param4);
|
||||
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, VecFx32 *param3, unk32 param4);
|
||||
@@ -16,10 +80,13 @@ public:
|
||||
unk32 param6);
|
||||
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
|
||||
void func_ov000_020a0220(void *param1, void *param2);
|
||||
void func_ov001_020bf028();
|
||||
|
||||
// overlay 1
|
||||
const char *func_ov001_020bef98();
|
||||
void func_ov001_020bf028();
|
||||
|
||||
static UnkStruct_027e0cec *Create();
|
||||
static void func_ov001_020bed34();
|
||||
};
|
||||
|
||||
extern UnkStruct_027e0cec *data_027e0cec;
|
||||
|
||||
@@ -16,6 +16,8 @@ struct UnkStruct_027e0d00_00 {
|
||||
/* 20 */ unk32 mUnk_20;
|
||||
/* 24 */ unk32 mUnk_24;
|
||||
/* 28 */
|
||||
|
||||
UnkStruct_027e0d00_00(unk32 param1, unk32 param2, unk32 param3, u8 param4);
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0d00_10 {
|
||||
@@ -38,25 +40,43 @@ public:
|
||||
|
||||
/* 00 */ virtual ~UnkStruct_027e0d00_20() override {}
|
||||
|
||||
void func_ov024_020d4fa0(unk32 param1, unk32 param2);
|
||||
void func_ov024_020d4fa0(void *param1, unk32 param2);
|
||||
void func_ov024_020d5174();
|
||||
|
||||
static void func_ov024_020d4e9c(wchar_t *param1, unk32 param2, bool param3);
|
||||
static void func_ov024_020d4edc(wchar_t *param1, wchar_t *param2, unk32 param3);
|
||||
};
|
||||
|
||||
class UnkStruct_027e0d00_E0 : public MapObjectProfile_Derived2_20_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 94 */ STRUCT_PAD(0x94, 0xA8);
|
||||
/* A8 */
|
||||
|
||||
UnkStruct_027e0d00_E0(bool hasRecruitUniform);
|
||||
|
||||
// overlay 26
|
||||
void func_ov026_020fb964();
|
||||
void func_ov026_020fba3c();
|
||||
};
|
||||
|
||||
struct UnkStruct_027e0d00_FC {
|
||||
/* 000 */ STRUCT_PAD(0x00, 0xD30);
|
||||
/* D30 */
|
||||
};
|
||||
|
||||
class UnkStruct_027e0d00 : public AutoInstance<UnkStruct_027e0d00> {
|
||||
public:
|
||||
/* 000 */ UnkStruct_027e0d00_00 *mUnk_000[MAX_TRAIN_PARTS];
|
||||
/* 010 */ UnkStruct_027e0d00_10 *mUnk_010[MAX_TRAIN_PARTS];
|
||||
/* 020 */ UnkStruct_027e0d00_20 *mUnk_020[MAX_TRAIN_PARTS][MAX_TRAIN_SETS];
|
||||
/* 0A0 */ unk32 mUnk_0A0[MAX_TRAIN_PARTS];
|
||||
/* 0A0 */ void *mUnk_0A0[MAX_TRAIN_PARTS];
|
||||
/* 0B0 */ MapObjectProfile_Derived5 *mUnk_0B0[12]; // train parts models
|
||||
/* 0E0 */ unk32 mUnk_0E0;
|
||||
/* 0E0 */ UnkStruct_027e0d00_E0 *mUnk_0E0;
|
||||
/* 0E4 */ UnkStruct_027e0d00_20 *mUnk_0E4[MAX_TRAIN_PARTS];
|
||||
/* 0F4 */ MapObjectProfile_Derived5 *mUnk_0F4; // cargo models
|
||||
/* 0F8 */ UnkStruct_027e0d00_00 *mUnk_0F8;
|
||||
/* 0FC */ void *mUnk_0FC;
|
||||
/* 0FC */ UnkStruct_027e0d00_FC *mUnk_0FC;
|
||||
/* 100 */ MapObjectProfile_Derived5 *mUnk_100;
|
||||
/* 104 */ bool mUnk_104;
|
||||
/* 104 */ unk8 mUnk_105;
|
||||
@@ -84,9 +104,20 @@ public:
|
||||
UnkStruct_027e0d00();
|
||||
~UnkStruct_027e0d00();
|
||||
|
||||
// overlay 0
|
||||
static UnkStruct_027e0d00 *GetInstance();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bf530();
|
||||
void func_ov001_020bf568();
|
||||
void func_ov001_020bf590();
|
||||
void func_ov001_020bf69c();
|
||||
void func_ov001_020bf730();
|
||||
void func_ov001_020bf750();
|
||||
void func_ov001_020bf768();
|
||||
void func_ov001_020bf7b8();
|
||||
|
||||
static void Destroy();
|
||||
|
||||
// overlay 24
|
||||
unk32 func_ov024_020d485c(unk32 param1, unk32 param2);
|
||||
u8 func_ov024_020d48c8(unk32 param1);
|
||||
|
||||
@@ -3,12 +3,10 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov020_020e8544 {
|
||||
class UnkStruct_ov020_020e8544_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
|
||||
UnkStruct_ov020_020e8544();
|
||||
~UnkStruct_ov020_020e8544();
|
||||
/* 04 */
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
@@ -21,4 +19,22 @@ public:
|
||||
/* 20 */ virtual unk32 vfunc_20();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov020_020e8544 *data_ov020_020e8544;
|
||||
class UnkStruct_ov020_020e8544_Derived1 : public UnkStruct_ov020_020e8544_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x30);
|
||||
/* 30 */
|
||||
|
||||
UnkStruct_ov020_020e8544_Derived1();
|
||||
};
|
||||
|
||||
class UnkStruct_ov020_020e8544_Derived2 : public UnkStruct_ov020_020e8544_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x2E4);
|
||||
/* 2E4 */
|
||||
|
||||
UnkStruct_ov020_020e8544_Derived2();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov020_020e8544_Base *data_ov020_020e8544;
|
||||
|
||||
@@ -0,0 +1,65 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov001_020c46f4_Base {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 */
|
||||
|
||||
UnkStruct_ov001_020c46f4_Base() {}
|
||||
|
||||
// data_ov023_020f1b5c
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */
|
||||
};
|
||||
|
||||
class UnkStruct_ov001_020c46f4_Derived1 : public UnkStruct_ov001_020c46f4_Base {
|
||||
public:
|
||||
/* 04 */ bool mUnk_04;
|
||||
/* 08 */
|
||||
|
||||
UnkStruct_ov001_020c46f4_Derived1() :
|
||||
mUnk_04(false) {}
|
||||
|
||||
// data_ov023_020f1b5c
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
class UnkStruct_ov001_020c46f4_Derived2 : public UnkStruct_ov001_020c46f4_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 04 */
|
||||
|
||||
UnkStruct_ov001_020c46f4_Derived2() {}
|
||||
|
||||
// data_ov023_020f1b74
|
||||
/* 00 */ virtual void vfunc_00() override;
|
||||
/* 04 */ virtual void vfunc_04() override;
|
||||
/* 08 */ virtual void vfunc_08() override;
|
||||
/* 0C */ virtual void vfunc_0C() override;
|
||||
};
|
||||
|
||||
extern UnkStruct_ov001_020c46f4_Base *data_ov001_020c46f4;
|
||||
|
||||
class UnkStruct_ov023_020f1d94 {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 04 */ UnkStruct_ov001_020c46f4_Base *mUnk_04;
|
||||
/* 08 */
|
||||
|
||||
UnkStruct_ov023_020f1d94();
|
||||
~UnkStruct_ov023_020f1d94();
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bfeb0();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov023_020f1d94 data_ov023_020f1d94;
|
||||
@@ -7,9 +7,11 @@
|
||||
|
||||
// start of thumb region, using thumb instructions
|
||||
#define THUMB_BEGIN _Pragma("thumb on")
|
||||
#define ARM_END THUMB_BEGIN
|
||||
|
||||
// end of thumb region, using arm instructions
|
||||
#define THUMB_END _Pragma("thumb off")
|
||||
#define ARM_BEGIN THUMB_END
|
||||
|
||||
// `override` was added in C++11 before the DS, so we only use the keyword to indicate overriden functions
|
||||
#define override
|
||||
@@ -52,6 +54,13 @@
|
||||
// to force things in .data to align properly
|
||||
#define DATA_ALIGN_FIX() int DF_UNIQUE_IDENT(__data_align_fix)
|
||||
|
||||
// for cases where `DATA_ALIGN_FIX` doesn't work
|
||||
#define DATA_ALIGN_FIX2() \
|
||||
static const int DF_UNIQUE_IDENT(__data_align_fix) = 0; \
|
||||
void DF_UNIQUE_IDENT(__data_align_fix_func)() { \
|
||||
*(int *) &DF_UNIQUE_IDENT(__data_align_fix) = 0; \
|
||||
}
|
||||
|
||||
#ifndef typeof
|
||||
#define typeof __typeof__
|
||||
#endif
|
||||
@@ -103,4 +112,11 @@
|
||||
} \
|
||||
(void) 0
|
||||
|
||||
#define DELETE_ARRAY2(ptr) \
|
||||
{ \
|
||||
::operator delete[](ptr); \
|
||||
ptr = NULL; \
|
||||
} \
|
||||
(void) 0
|
||||
|
||||
#endif
|
||||
|
||||
@@ -73,4 +73,21 @@ template <typename T> struct StaticInstance {
|
||||
|
||||
#endif
|
||||
|
||||
//! TODO: move elsewhere
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
typedef struct SPAHeader {
|
||||
/* 00 */ u32 magic; // always 'SPA '
|
||||
/* 04 */ unk32 mUnk_04;
|
||||
/* 08 */ u16 mUnk_08;
|
||||
/* 0A */ char pad[0x18 - 0x0A];
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
} SPAHeader;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user