mirror of
https://github.com/zeldaret/st
synced 2026-07-03 13:00:15 -04:00
Decompile overlay 1 (Part 4) (#97)
* UnkStruct_027e095c_001 OK * UnkStruct_027e095c_001 OK (JP) * SysNew_001 OK * SaveManager_001 98% * UnkStruct_027e09bc_001 OK * MapObjectManager_001 OK * ActorManager_001 OK * remove useless thumb pragmas * ItemManager_001 OK * fix regressions * fix build issues
This commit is contained in:
@@ -156,9 +156,9 @@ public:
|
||||
/* 0C */ virtual unk8 vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10(VecFx32 *param1);
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual bool vfunc_18(unk32 param1);
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual void vfunc_20();
|
||||
/* 18 */ virtual bool vfunc_18(unk32 param1); // Init?
|
||||
/* 1C */ virtual void vfunc_1C(); // Setup
|
||||
/* 20 */ virtual void vfunc_20(); // Update?
|
||||
/* 24 */ virtual void vfunc_24();
|
||||
/* 28 */ virtual void vfunc_28();
|
||||
/* 2C */ virtual void vfunc_2C(unk32 param1);
|
||||
|
||||
@@ -26,7 +26,6 @@ public:
|
||||
|
||||
/* 4C */ virtual ~ActorUnkPMST() override;
|
||||
|
||||
void func_ov077_02159db4(void);
|
||||
void func_ov077_02159ddc(void);
|
||||
void func_ov077_02159e14(void);
|
||||
void func_ov077_02159e40(void);
|
||||
@@ -47,6 +46,8 @@ public:
|
||||
void func_ov077_0215aa20(void);
|
||||
void func_ov077_0215aa44(void);
|
||||
void func_ov077_0215aa88(void);
|
||||
|
||||
static void func_ov077_02159db4(void);
|
||||
};
|
||||
|
||||
class ActorProfileUnkPMST : public ActorProfile_Derived1 {
|
||||
|
||||
@@ -26,7 +26,6 @@ public:
|
||||
|
||||
/* 4C */ virtual ~ActorUnkPMTT() override;
|
||||
|
||||
void func_ov042_0212d8a4(void);
|
||||
void func_ov042_0212d8cc(void);
|
||||
void func_ov042_0212d904(void);
|
||||
void func_ov042_0212d930(void);
|
||||
@@ -44,6 +43,8 @@ public:
|
||||
void func_ov042_0212e4d8(void);
|
||||
void func_ov042_0212e4f8(void);
|
||||
void func_ov042_0212e53c(void);
|
||||
|
||||
static void func_ov042_0212d8a4(void);
|
||||
};
|
||||
|
||||
class ActorProfileUnkPMTT : public ActorProfile {
|
||||
|
||||
@@ -94,8 +94,8 @@ enum SceneIndex_ {
|
||||
/* 75 */ SceneIndex_tekiya05 = 0x4B, // take em all on?
|
||||
/* 76 */ SceneIndex_tekiya06 = 0x4C, // take em all on?
|
||||
/* 77 */ SceneIndex_tekiya07 = 0x4D, // take em all on?
|
||||
/* 78 */ SceneIndex_tekiya08 = 0x4E, // take em all on?
|
||||
/* 79 */ SceneIndex_tekiya09 = 0x4F, // take em all on?
|
||||
/* 78 */ SceneIndex_tekiya08 = 0x4E, // take em all on - fire boss
|
||||
/* 79 */ SceneIndex_tekiya09 = 0x4F, // take em all on - sand boss
|
||||
/* 80 */ SceneIndex_demo_train = 0x50, // title screen?
|
||||
/* 81 */ SceneIndex_e3_train = 0x51, // ?
|
||||
/* 82 */ SceneIndex_e3_dungeon = 0x52, // ?
|
||||
|
||||
@@ -33,7 +33,7 @@ public:
|
||||
/* 04 */ GameModeCreateCallback createCallback;
|
||||
/* 08 */ GameUnkCallback1 mUnk_08; // seems related to entering and leaving houses/grottos??
|
||||
/* 0C */ unk32 mFrameCounter;
|
||||
/* 10 */ SaveSlot *mpSaveSlot;
|
||||
/* 10 */ GameSaveSlot *mpSaveSlot;
|
||||
/* 14 */ GameUnkCallback2 mUnk_14; // only set for wireless stuff?
|
||||
/* 18 */ GameUnkCallback3 mUnk_18; // same as above
|
||||
/* 1C */ UnkStruct_02049a2c_1C mUnk_1C;
|
||||
|
||||
@@ -5,6 +5,7 @@
|
||||
|
||||
#define MAX_KEYS 8
|
||||
#define MAX_TEARS_OF_LIGHT 3
|
||||
#define MAX_RUPEES 9999
|
||||
|
||||
#define CAPACITY_QUIVER_TIER_1 20
|
||||
#define CAPACITY_QUIVER_TIER_2 30
|
||||
|
||||
+104
-19
@@ -54,8 +54,23 @@ public:
|
||||
bool func_ov031_020db8f8();
|
||||
};
|
||||
|
||||
class ItemManager {
|
||||
public:
|
||||
struct InvImportData {
|
||||
/* 00 */ u32 quiverCapacity : 2;
|
||||
/* */ u32 bombBagCapacity : 2;
|
||||
/* */ u32 arrowAmount : 6;
|
||||
/* */ u32 bombsAmount : 6;
|
||||
/* */ u32 pad : 12;
|
||||
/* */ u32 potion1 : 2;
|
||||
/* */ u32 potion2 : 2;
|
||||
/* 04 */ u32 flags[2];
|
||||
/* 0C */ u16 numRupees;
|
||||
/* 0E */ u16 unk_0E;
|
||||
/* 10 */ s8 equippedItem;
|
||||
/* 14 */
|
||||
};
|
||||
|
||||
class Inventory {
|
||||
private:
|
||||
/* 00 */ ItemFlag mEquippedItem;
|
||||
/* 04 */ ItemFlag mForcedItem;
|
||||
/* 08 */ u32 mFlags[2]; // inventory items bitfield & collection/equipment bitfield
|
||||
@@ -69,25 +84,47 @@ public:
|
||||
/* 1A */ u8 mArrowAmount;
|
||||
/* 1B */ u8 mBombAmount;
|
||||
/* 1C */ u8 mPotions[MAX_POTIONS];
|
||||
/* 1E */ unk16 mUnk_1E;
|
||||
/* 20 */ UnkStruct_ItemManager_20 *mUnk_20;
|
||||
/* 24 */ unk8 mUnk_24;
|
||||
/* 24 */ unk8 mUnk_25;
|
||||
/* 24 */ unk8 mUnk_26;
|
||||
/* 24 */ unk8 mUnk_27;
|
||||
/* 28 */
|
||||
/* 1E */ unk16 mUnk_1E; // pad?
|
||||
/* 20 */
|
||||
|
||||
u8 GetTearsAmount() const {
|
||||
return this->mTearsAmount;
|
||||
public:
|
||||
// clang-format off
|
||||
const ItemFlag GetCurrentItem() const { return this->mEquippedItem; }
|
||||
const bool HasItem(int flag) const { return GET_FLAG(this->mFlags, flag); }
|
||||
const u16 GetNumRupees() const { return this->mNumRupees; }
|
||||
const u16 GetRestrictions() const { return this->mItemRestrictions; }
|
||||
const bool HasUnk12(int value) const { return (this->mUnk_12 & value) != 0; }
|
||||
const bool HasRestriction(int flag) const { return IS_ITEM_RESTRICTED(this->mItemRestrictions, flag); }
|
||||
const u8 GetTearsAmount() const { return this->mTearsAmount; }
|
||||
const u8 GetKeyAmount() const { return this->mKeyAmount; }
|
||||
const UpgradeCapacity GetQuiverCap() const { return this->mQuiverCapacity; }
|
||||
const UpgradeCapacity GetBombsCap() const { return this->mBombBagCapacity; }
|
||||
const UpgradeCapacity GetArrowAmount() const { return this->mArrowAmount; }
|
||||
const UpgradeCapacity GetBombAmount() const { return this->mBombAmount; }
|
||||
|
||||
void FlipUnk12(int value) { this->mUnk_12 ^= value; }
|
||||
// clang-format on
|
||||
|
||||
void SetNextQuiverCapacity() {
|
||||
if (this->mQuiverCapacity < UpgradeCapacity_Tier3) {
|
||||
this->mQuiverCapacity++;
|
||||
}
|
||||
|
||||
this->mArrowAmount = this->GetQuiverCapacity();
|
||||
}
|
||||
|
||||
u8 GetKeyAmount() const {
|
||||
return this->mKeyAmount;
|
||||
void SetNextBombBagCapacity() {
|
||||
if (this->mBombBagCapacity < UpgradeCapacity_Tier3) {
|
||||
this->mBombBagCapacity++;
|
||||
}
|
||||
|
||||
this->mBombAmount = this->GetBombBagCapacity();
|
||||
}
|
||||
|
||||
ItemManager();
|
||||
~ItemManager();
|
||||
Inventory();
|
||||
~Inventory();
|
||||
|
||||
// overlay 0
|
||||
void SetFlag(ItemFlag itemFlag);
|
||||
void ClearFlag(ItemFlag itemFlag);
|
||||
bool HasRecruitUniform();
|
||||
@@ -105,8 +142,55 @@ public:
|
||||
bool HasPurplePotion();
|
||||
void RemovePurplePotion();
|
||||
bool PotionSlotsFull();
|
||||
static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag);
|
||||
static ItemFlag GetEquippedItemFlag(ItemId itemId);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020bb8bc(const InvImportData *pSrc);
|
||||
void func_ov001_020bb9f8();
|
||||
void func_ov001_020bba54();
|
||||
void func_ov001_020bba6c();
|
||||
|
||||
// overlay 96
|
||||
void func_ov096_02179b20();
|
||||
|
||||
// overlay 110
|
||||
bool func_ov110_02184a40(ItemId itemId);
|
||||
};
|
||||
|
||||
class ItemManager {
|
||||
private:
|
||||
/* 00 */ Inventory mInventory;
|
||||
/* 20 */ UnkStruct_ItemManager_20 *mUnk_20;
|
||||
/* 24 */ unk8 mUnk_24;
|
||||
/* 24 */ unk8 mUnk_25;
|
||||
/* 24 */ unk8 mUnk_26;
|
||||
/* 24 */ unk8 mUnk_27;
|
||||
/* 28 */
|
||||
|
||||
public:
|
||||
// clang-format off
|
||||
Inventory* GetInventory() { return &this->mInventory; }
|
||||
const Inventory* GetInventory() const { return &this->mInventory; }
|
||||
|
||||
const ItemFlag GetCurrentItem() const { return this->GetInventory()->GetCurrentItem(); }
|
||||
const bool HasItem(int flag) const { return this->GetInventory()->HasItem(flag); }
|
||||
const u16 GetNumRupees() const { return this->GetInventory()->GetNumRupees(); }
|
||||
const u16 GetRestrictions() const { return this->GetInventory()->GetRestrictions(); }
|
||||
const bool HasUnk12(int value) const { return this->GetInventory()->HasUnk12(value); }
|
||||
const bool HasRestriction(int flag) const { return this->GetInventory()->HasRestriction(flag); }
|
||||
const u8 GetTearsAmount() const { return this->GetInventory()->GetTearsAmount(); }
|
||||
const u8 GetKeyAmount() const { return this->GetInventory()->GetKeyAmount(); }
|
||||
const UpgradeCapacity GetQuiverCap() const { return this->GetInventory()->GetQuiverCap(); }
|
||||
const UpgradeCapacity GetBombsCap() const { return this->GetInventory()->GetBombsCap(); }
|
||||
const UpgradeCapacity GetArrowAmount() const { return this->GetInventory()->GetArrowAmount(); }
|
||||
const UpgradeCapacity GetBombAmount() const { return this->GetInventory()->GetBombAmount(); }
|
||||
|
||||
void FlipUnk12(int value) { this->GetInventory()->FlipUnk12(value); }
|
||||
// clang-format on
|
||||
|
||||
ItemManager();
|
||||
~ItemManager() {}
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020a89bc();
|
||||
bool func_ov000_020a89d4();
|
||||
bool func_ov000_020a8a0c();
|
||||
@@ -117,9 +201,10 @@ public:
|
||||
unk32 func_ov000_020a8ab8();
|
||||
unk32 func_ov000_020a8acc();
|
||||
|
||||
void func_ov001_020bb9f8();
|
||||
static UnkStruct_ov000_020afc48 *func_ov000_020a8974(ItemFlag itemFlag);
|
||||
static ItemFlag GetEquippedItemFlag(ItemId itemId);
|
||||
|
||||
bool func_ov110_02184a40(ItemId itemId);
|
||||
// overlay 110
|
||||
static u32 GetBmgIDFromItem(ItemId itemId);
|
||||
static AdventureFlag GetAdvFlagFromItem(ItemId itemId);
|
||||
};
|
||||
|
||||
@@ -132,8 +132,8 @@ public:
|
||||
/* 40 */
|
||||
|
||||
// data_ov000_020b3590
|
||||
/* 00 */ virtual bool vfunc_00(); // Init? the newly-created map object is deleted if this returns false
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 00 */ virtual bool vfunc_00(); // Init
|
||||
/* 04 */ virtual void vfunc_04(); // Setup
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
|
||||
@@ -24,8 +24,8 @@ public:
|
||||
/* 04 */ MapObject **mMapObjTableEnd;
|
||||
/* 08 */ MapObject **mUnk_08; // pointer to first available slot?
|
||||
/* 0C */ s16 **mUnk_0C; // unknown table
|
||||
/* 10 */ void **mUnk_10; // unknown table end
|
||||
/* 14 */ void *mUnk_14;
|
||||
/* 10 */ s16 **mUnk_10; // unknown table end
|
||||
/* 14 */ s16 *mUnk_14;
|
||||
/* 18 */ unk16 mUnk_18;
|
||||
/* 1A */ unk16 mUnk_1A;
|
||||
/* 1C */ unk16 mUnk_1C;
|
||||
@@ -47,7 +47,7 @@ public:
|
||||
// overlay 0
|
||||
MapObjectId func_ov000_0209c3a8(Vec2bCpp *param1);
|
||||
void func_ov000_0209c3e8();
|
||||
void func_ov000_0209c444();
|
||||
void func_ov000_0209c444(unk32 param1);
|
||||
MapObject *AllocateMapObject(MapObjectId mapObjId, Vec2b param2, u16 param3, unk32 param4, u8 param5);
|
||||
|
||||
static void func_ov000_0209c490();
|
||||
@@ -59,9 +59,9 @@ public:
|
||||
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_020baea0(u16 *param1);
|
||||
void func_ov001_020baf28();
|
||||
|
||||
static MapObjectManager *Create();
|
||||
|
||||
@@ -26,7 +26,7 @@ public:
|
||||
/* 10 */ MapObjectId mMapObjId;
|
||||
/* 14 */ MapObjectId mUnk_14;
|
||||
/* 18 */ unk32 mUnk_18;
|
||||
/* 1C */ unk8 mUnk_1C;
|
||||
/* 1C */ u8 mUnk_1C;
|
||||
/* 1D */ unk8 mUnk_1D;
|
||||
/* 1E */ u16 mUnk_1E;
|
||||
/* 20 */
|
||||
@@ -48,6 +48,7 @@ public:
|
||||
|
||||
static unk32 func_ov000_0209c820();
|
||||
static void func_ov000_0209c8ec(MapObjectProfile *thisx);
|
||||
void func_ov000_0209c8ec();
|
||||
};
|
||||
|
||||
class MapObjectProfile_Derived1 : public MapObjectProfile {
|
||||
|
||||
@@ -332,6 +332,14 @@ struct SaveFile_00000_2600_Data {
|
||||
/* 80 */
|
||||
};
|
||||
|
||||
struct GameSaveSlot {
|
||||
/* 0000 */ SaveInfoData mInfoData;
|
||||
/* 0E00 */ SaveTreasureData mTreasureData;
|
||||
/* 0E80 */ SaveFile_00000_2600_Data mUnk_2600;
|
||||
/* 0F00 */ SaveFile_00000_1D00_Data mUnk_1D00;
|
||||
/* 1300 */
|
||||
};
|
||||
|
||||
class SaveSlot {
|
||||
public:
|
||||
/* 0000 */ SaveInfoData mInfoData[COUNT_DATA];
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
#include <nitro/card.h>
|
||||
#include <nitro/mi.h>
|
||||
|
||||
#define SAVE_DATA_SIZE (sizeof(SaveSlot) + sizeof(u8) * NUM_UNK_BLOCKS * SIZE_UNK_BLOCK)
|
||||
@@ -36,23 +37,37 @@ struct SaveManager_00 {
|
||||
unk_B78(param1) {}
|
||||
};
|
||||
|
||||
class SaveManager_244 {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x7E);
|
||||
/* 7E */ u16 mUnk_7E;
|
||||
/* 80 */
|
||||
|
||||
SaveManager_244();
|
||||
};
|
||||
|
||||
class SaveManager {
|
||||
public:
|
||||
/* 000 */ SaveManager_00 *mUnk_000; // related to mUnk_184, allocated from func_ov001_020ba670
|
||||
/* 004 */ unk32 mUnk_004;
|
||||
/* 008 */ STRUCT_PAD(0x08, 0x204);
|
||||
/* 204 */ unk16 mUnk_204;
|
||||
/* 206 */ unk16 mUnk_206;
|
||||
/* 204 */ u16 mCardId;
|
||||
/* 206 */ s16 mUnk_206; // this is a save slot index?
|
||||
/* 208 */ unk16 mUnk_208;
|
||||
/* 20A */ u8 mUnk_20A; // bool?
|
||||
/* 20B */ unk8 mUnk_20B;
|
||||
/* 20C */ unk32 mUnk_20C;
|
||||
/* 20C */ CARDResult mResultCode;
|
||||
/* 210 */ unk32 mUnk_210;
|
||||
/* 214 */ unk32 mUnk_214;
|
||||
/* 218 */ SaveFile *mpSaveFile;
|
||||
/* 21C */ SaveFile_00000_0000_Data_D9C mUnk_21C;
|
||||
/* 23C */ PTMF<SaveFile>::PTMFCallback mUnk_23C;
|
||||
/* 244 */ void *mUnk_244;
|
||||
/* 244 */ SaveManager_244 *mUnk_244;
|
||||
/* 248 */
|
||||
|
||||
const size_t GetOffset() const {
|
||||
return mUnk_206 * 0x7A700;
|
||||
}
|
||||
|
||||
bool IsUnk20A() {
|
||||
return this->mUnk_20A == 0;
|
||||
@@ -94,6 +109,7 @@ public:
|
||||
void func_ov019_020d09dc(u16 saveSlotIndex);
|
||||
void func_ov019_020d0a04(u16 saveSlotIndex);
|
||||
void func_ov019_020d0ae0(unk32 param1);
|
||||
void func_ov001_020ba858(void);
|
||||
|
||||
static void func_ov019_020d086c(u16 param1);
|
||||
static void func_ov019_020d0a2c(u16 param1);
|
||||
|
||||
@@ -387,21 +387,24 @@ public:
|
||||
/* 00 */ OverlayIndex mLoadedOverlays[OverlaySlot_COUNT];
|
||||
/* 48 */
|
||||
|
||||
bool IsPlayerSub() {
|
||||
return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub;
|
||||
}
|
||||
// clang-format off
|
||||
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; }
|
||||
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 IsPirateHideout() const { return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_FldAjito; }
|
||||
|
||||
bool IsMapA6() {
|
||||
return this->mLoadedOverlays[OverlaySlot_13] == OverlayIndex_MapA6;
|
||||
}
|
||||
const bool IsASR() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_ASR; }
|
||||
const bool IsPlayerSub() const { return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_PlayerSub; }
|
||||
|
||||
bool IsPirateHideout() {
|
||||
return this->mLoadedOverlays[OverlaySlot_8] == OverlayIndex_FldAjito;
|
||||
}
|
||||
const bool IsPlayerZelda() const { return this->mLoadedOverlays[OverlaySlot_10] == OverlayIndex_PlayerZelda; }
|
||||
|
||||
bool IsASR() {
|
||||
return this->mLoadedOverlays[OverlaySlot_9] == OverlayIndex_ASR;
|
||||
}
|
||||
const bool IsMapA6() const { return this->mLoadedOverlays[OverlaySlot_13] == OverlayIndex_MapA6; }
|
||||
|
||||
const bool IsMapB3() const { return this->mLoadedOverlays[OverlaySlot_14] == OverlayIndex_MapB3; }
|
||||
// clang-format on
|
||||
|
||||
void Load(OverlaySlot slot, OverlayIndex index);
|
||||
void LoadIfNotLoaded(OverlaySlot slot, OverlayIndex index);
|
||||
|
||||
@@ -35,7 +35,9 @@ enum HeapIndex_ {
|
||||
};
|
||||
|
||||
void *operator new(size_t length, u32 id, u32 idLength = 4);
|
||||
void *operator new[](size_t length, u32 id, u32 idLength = 4);
|
||||
inline void *operator new[](size_t length, u32 id, u32 idLength = 4) {
|
||||
return ::operator new(length, id, idLength);
|
||||
}
|
||||
|
||||
class UnkStruct_02011e10_Sub1 {
|
||||
public:
|
||||
@@ -53,15 +55,29 @@ public:
|
||||
/* 2C */ unk8 mUnk_2C[0x60 - 0x2C];
|
||||
};
|
||||
|
||||
class UnkStruct_02011e10_2C {
|
||||
public:
|
||||
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00;
|
||||
/* 04 */ STRUCT_PAD(0x04, 0x18);
|
||||
/* 18 */
|
||||
|
||||
UnkStruct_02011e10_2C();
|
||||
|
||||
// main
|
||||
void func_020144cc(unk32 param1, unk32 param2, unk32 param3);
|
||||
void func_02014538();
|
||||
};
|
||||
|
||||
class UnkStruct_02011e10 {
|
||||
public:
|
||||
/* 00 */ UnkStruct_02011e10_Sub1 *mUnk_00[HeapIndex_Max]; // the pointer seems to match arena lo
|
||||
/* 24 */ unk32 mUnk_24[2];
|
||||
/* 28 */ STRUCT_PAD(0x2C, 0x5C);
|
||||
/* 2C */ UnkStruct_02011e10_2C mUnk_2C;
|
||||
/* 44 */ UnkStruct_02011e10_2C mUnk_44;
|
||||
/* 5C */ unk32 mUnk_5C;
|
||||
/* 60 */ unk32 mUnk_60;
|
||||
/* 64 */ unk32 mUnk_64;
|
||||
/* 68 */ unk32 mUnk_68;
|
||||
/* 64 */ void *mUnk_64;
|
||||
/* 68 */ void *mUnk_68;
|
||||
/* 6C */ unk32 mUnk_6C;
|
||||
/* 70 */ unk32 mUnk_70;
|
||||
/* 74 */ unk32 mUnk_74;
|
||||
@@ -75,12 +91,26 @@ public:
|
||||
/* 82 */ unk8 mUnk_82;
|
||||
/* 83 */ unk8 mUnk_83;
|
||||
|
||||
UnkStruct_02011e10() {}
|
||||
~UnkStruct_02011e10();
|
||||
|
||||
// main
|
||||
unk32 func_02013014();
|
||||
bool func_02013070();
|
||||
void func_020130d4(unk32 param1);
|
||||
|
||||
// overlay 1
|
||||
void func_ov001_020ba588(unk32 param1, unk32 param2);
|
||||
void func_ov001_020ba59c();
|
||||
void func_ov001_020ba5ac(unk32 param1, unk32 param2);
|
||||
void func_ov001_020ba5c0();
|
||||
void func_ov001_020ba5d0();
|
||||
void func_ov001_020ba608();
|
||||
void func_ov001_020ba620();
|
||||
void func_ov001_020ba640();
|
||||
void func_ov001_020ba658();
|
||||
|
||||
// overlay 18
|
||||
void func_ov018_020c4980();
|
||||
void func_ov018_020c4a5c();
|
||||
};
|
||||
|
||||
@@ -1210,3 +1210,13 @@ public:
|
||||
// data_ov000_020b2940
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
|
||||
class UnkSystem9 : public LinkList<UnkSystem9> {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
/* 04 (base) */
|
||||
/* 0C */
|
||||
|
||||
// data_ov000_020b24c4
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
};
|
||||
|
||||
@@ -15,6 +15,7 @@ public:
|
||||
UnkStruct_02049b80();
|
||||
void func_02013ecc(unk32 param1, UnkCallback param2, unk32 param3);
|
||||
void func_02013ee8(unk32 param1, unk32 param2);
|
||||
void func_02013f80(unk32 param1);
|
||||
};
|
||||
|
||||
extern UnkStruct_02049b80 data_02049b80;
|
||||
|
||||
@@ -1,12 +1,31 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "math.hpp"
|
||||
#include "types.h"
|
||||
#include "versions.h"
|
||||
|
||||
class UnkStruct_027e095c : public AutoInstance<UnkStruct_027e095c> {
|
||||
public:
|
||||
/* 000 */ unk32 mUnk_000;
|
||||
#if IS_JP
|
||||
/* 000 */ VecFx32 mUnk_000[64];
|
||||
/* 300 */ unk32 mUnk_2F4;
|
||||
/* 304 */ STRUCT_PAD(0x304, 0x900);
|
||||
/* 900 */ void *mUnk_8DC;
|
||||
/* 904 */ unk32 mUnk_8E0;
|
||||
/* 908 */ STRUCT_PAD(0x908, 0x964);
|
||||
/* 960 */ void *mUnk_940;
|
||||
/* 968 */
|
||||
#else
|
||||
/* 000 */ VecFx32 mUnk_000[63];
|
||||
/* 2F4 */ unk32 mUnk_2F4;
|
||||
/* 2F8 */ STRUCT_PAD(0x2F8, 0x8DC);
|
||||
/* 8DC */ void *mUnk_8DC;
|
||||
/* 8E0 */ unk32 mUnk_8E0;
|
||||
/* 8E4 */ STRUCT_PAD(0x8E4, 0x940);
|
||||
/* 940 */ void *mUnk_940;
|
||||
/* 944 */
|
||||
#endif
|
||||
|
||||
UnkStruct_027e095c();
|
||||
~UnkStruct_027e095c() {}
|
||||
|
||||
@@ -12,6 +12,7 @@ struct UnkStruct_func_ov000_020702a8 {
|
||||
/* 10 */ Vec2s mUnk_10;
|
||||
/* 14 */ STRUCT_PAD(0x14, 0x20);
|
||||
/* 20 */ unk16 mUnk_20;
|
||||
/* 22 */ unk16 mUnk_22;
|
||||
};
|
||||
|
||||
class CourseInitBinary {
|
||||
|
||||
@@ -1,33 +1,70 @@
|
||||
#pragma once
|
||||
|
||||
#include "Unknown/Common.hpp"
|
||||
#include "Unknown/UnkStruct_0204a060.hpp"
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_027e09bc_0C {
|
||||
public:
|
||||
/* 00 */ STRUCT_PAD(0x00, 0x34);
|
||||
/* 34 */ VecFx32 mUnk_34;
|
||||
/* 000 (vtable) */
|
||||
/* 004 */ STRUCT_PAD(0x04, 0x34);
|
||||
/* 034 */ VecFx32 mUnk_034;
|
||||
/* 040 */ STRUCT_PAD(0x40, 0x264);
|
||||
/* 264 */ unk32 mUnk_264;
|
||||
/* 268 */ STRUCT_PAD(0x268, 0x280);
|
||||
/* 280 */ unk32 mUnk_280;
|
||||
/* 284 */
|
||||
|
||||
UnkStruct_027e09bc_0C(unk32 param1);
|
||||
|
||||
// data_ov000_020b24b4
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual ~UnkStruct_027e09bc_0C();
|
||||
/* 10 */
|
||||
|
||||
// itcm
|
||||
bool func_01ffd640(VecFx32 *param1);
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_02078230(unk32 param1);
|
||||
bool func_ov000_0207834c(VecFx32 *param1, unk32 param2, unk32 param3);
|
||||
bool func_ov000_02078764(VecFx32 *param1, void *param2, unk32 param3);
|
||||
void func_ov000_02078ba4();
|
||||
void func_ov000_02078cec();
|
||||
};
|
||||
|
||||
class UnkStruct_027e09bc_24 : public UnkStruct_0204a060_Base {
|
||||
public:
|
||||
/* 00 (base) */
|
||||
/* 24 */
|
||||
|
||||
UnkStruct_027e09bc_24();
|
||||
|
||||
// data_ov000_020b2488
|
||||
/* 0C */ virtual bool vfunc_0C(void) override;
|
||||
};
|
||||
|
||||
class UnkStruct_027e09bc : public AutoInstance<UnkStruct_027e09bc> {
|
||||
public:
|
||||
/* 00 */ unk32 mUnk_00;
|
||||
/* 00 (vtable) */
|
||||
/* 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;
|
||||
/* 10 */ UnkStruct_027e09bc_0C *mUnk_10;
|
||||
/* 14 */ UnkStruct_027e09bc_0C *mUnk_14[4];
|
||||
/* 24 */ UnkStruct_027e09bc_24 mUnk_24;
|
||||
/* 48 */ UnkSystem9 mUnk_48;
|
||||
|
||||
UnkStruct_027e09bc();
|
||||
~UnkStruct_027e09bc();
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
|
||||
// overlay 0
|
||||
void func_ov000_020771b8(unk32 param1);
|
||||
void func_ov000_020771c8();
|
||||
|
||||
// overlay 1
|
||||
|
||||
@@ -30,6 +30,8 @@ public:
|
||||
|
||||
MapObjectProfile *GetProfileFromId(MapObjectId mapObjId);
|
||||
MapObject *CreateMapObject(MapObjectId mapObjId);
|
||||
MapObjectProfile **func_ov000_0209c6a0();
|
||||
MapObjectProfile **func_ov000_0209c6ac();
|
||||
|
||||
static unk32 func_ov000_0209c718(u32 param1);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
#pragma once
|
||||
|
||||
#include "global.h"
|
||||
#include "types.h"
|
||||
|
||||
class UnkStruct_ov020_020e8544 {
|
||||
public:
|
||||
/* 00 (vtable) */
|
||||
|
||||
UnkStruct_ov020_020e8544();
|
||||
~UnkStruct_ov020_020e8544();
|
||||
|
||||
/* 00 */ virtual void vfunc_00();
|
||||
/* 04 */ virtual void vfunc_04();
|
||||
/* 08 */ virtual void vfunc_08();
|
||||
/* 0C */ virtual void vfunc_0C();
|
||||
/* 10 */ virtual void vfunc_10();
|
||||
/* 14 */ virtual void vfunc_14();
|
||||
/* 18 */ virtual void vfunc_18();
|
||||
/* 1C */ virtual void vfunc_1C();
|
||||
/* 20 */ virtual unk32 vfunc_20();
|
||||
};
|
||||
|
||||
extern UnkStruct_ov020_020e8544 *data_ov020_020e8544;
|
||||
Reference in New Issue
Block a user